meshviewer/lib/tabs.js

64 lines
1.3 KiB
JavaScript
Raw Normal View History

2016-05-27 21:59:01 +00:00
define(function () {
'use strict';
2016-05-27 21:59:01 +00:00
2015-03-25 23:33:11 +00:00
return function () {
var self = this;
2015-03-25 23:33:11 +00:00
var tabs = document.createElement('ul');
tabs.classList.add('tabs');
2015-03-25 23:33:11 +00:00
var container = document.createElement('div');
2015-03-25 23:33:11 +00:00
2015-03-29 19:44:05 +00:00
function gotoTab(li) {
for (var i = 0; i < tabs.children.length; i++) {
tabs.children[i].classList.remove('visible');
}
while (container.firstChild) {
container.removeChild(container.firstChild);
}
2015-03-25 23:33:11 +00:00
li.classList.add('visible');
var tab = document.createElement('div');
tab.classList.add('tab');
container.appendChild(tab);
li.child.render(tab);
2015-03-29 19:44:05 +00:00
}
function switchTab() {
gotoTab(this);
2015-03-25 23:33:11 +00:00
return false;
2015-03-25 23:33:11 +00:00
}
self.add = function add(title, d) {
var li = document.createElement('li');
2017-01-28 14:33:13 +00:00
li.textContent = _.t(title);
li.onclick = switchTab;
li.child = d;
tabs.appendChild(li);
var anyVisible = false;
for (var i = 0; i < tabs.children.length; i++) {
if (tabs.children[i].classList.contains('visible')) {
anyVisible = true;
break;
}
}
if (!anyVisible) {
gotoTab(li);
}
};
2015-03-25 23:33:11 +00:00
self.render = function render(el) {
el.appendChild(tabs);
el.appendChild(container);
};
2015-03-25 23:33:11 +00:00
return self;
};
});