SysOps: voice-agy-webbuilder-backup — 2026-06-23 10:04 UTC
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
/* Tab switching — enige bron van waarheid voor zichtbaarheid (geen hidden attr) */
|
||||
(function () {
|
||||
var DEFAULT = 'overview';
|
||||
|
||||
function show(tab) {
|
||||
if (!tab) tab = DEFAULT;
|
||||
document.querySelectorAll('.doc-hub [data-tab-panel]').forEach(function (el) {
|
||||
var on = el.getAttribute('data-tab-panel') === tab;
|
||||
el.classList.toggle('tab-active', on);
|
||||
});
|
||||
document.querySelectorAll('#doc-nav .doc-nav-btn[data-tab]').forEach(function (btn) {
|
||||
btn.classList.toggle('active', btn.getAttribute('data-tab') === tab);
|
||||
});
|
||||
}
|
||||
|
||||
function onClick(ev) {
|
||||
var btn = ev.target.closest('.doc-nav-btn[data-tab]');
|
||||
if (!btn) return;
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
var tab = btn.getAttribute('data-tab');
|
||||
show(tab);
|
||||
var hub = document.querySelector('.doc-hub');
|
||||
if (hub && window.Alpine) {
|
||||
try {
|
||||
var d = Alpine.$data(hub);
|
||||
if (!d) return;
|
||||
if (d.activeTab !== tab) d.activeTab = tab;
|
||||
if (typeof d.onTabShown === 'function') d.onTabShown(tab);
|
||||
} catch (e) {
|
||||
console.warn('doc-tabs', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function bind() {
|
||||
var nav = document.getElementById('doc-nav');
|
||||
if (!nav || nav.dataset.bound) return;
|
||||
nav.dataset.bound = '1';
|
||||
nav.addEventListener('click', onClick, true);
|
||||
show(DEFAULT);
|
||||
}
|
||||
|
||||
window.DocTabs = { show: show };
|
||||
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', bind);
|
||||
} else {
|
||||
bind();
|
||||
}
|
||||
document.addEventListener('alpine:initialized', function () {
|
||||
show(window.__docActiveTab || DEFAULT);
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user