PluginProbe
AI Builder – Generate pages, blocks, images & translate with AI / 2.1.2
AI Builder – Generate pages, blocks, images & translate with AI v2.1.2
2.7.10 2.7.9 2.7.8 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.3.10 All 122 releases
ai-builder / assets / js / tabs-frontend.js

tabs-frontend.js in AI Builder – Generate pages, blocks, images & translate with AI 2.1.2, at assets/js/tabs-frontend.js

57 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function () {
2 function init(root) {
3 // Build header from child panels' data-title, then show panels
4 var panels = root.querySelectorAll(".aibui-tab-panel");
5 if (!panels.length) return;
6 var header = document.createElement("div");
7 header.className = "aibui-tabs-header";
8 var buttons = [];
9 for (var i = 0; i < panels.length; i++) {
10 var title = panels[i].getAttribute("data-title") || "Tab " + (i + 1);
11 var btn = document.createElement("button");
12 btn.className = "aibui-tab-btn";
13 btn.textContent = title;
14 header.appendChild(btn);
15 buttons.push(btn);
16 }
17 root.insertBefore(header, root.firstChild);
18 var panelsWrap = document.createElement("div");
19 panelsWrap.className = "aibui-tabs-panels";
20 for (var j = 0; j < panels.length; j++) {
21 panelsWrap.appendChild(panels[j]);
22 }
23 root.appendChild(panelsWrap);
24
25 var active = 0;
26 var active = parseInt(root.getAttribute("data-active") || "0", 10) || 0;
27 function activate(i) {
28 for (var b = 0; b < buttons.length; b++) {
29 buttons[b].classList.toggle("is-active", b === i);
30 }
31 for (var p = 0; p < panels.length; p++) {
32 panels[p].classList.toggle("is-active", p === i);
33 }
34 root.setAttribute("data-active", i);
35 }
36 for (var i = 0; i < buttons.length; i++) {
37 (function (idx) {
38 buttons[idx].addEventListener("click", function () {
39 activate(idx);
40 });
41 })(i);
42 }
43 activate(Math.max(0, Math.min(active, panels.length - 1)));
44 }
45 function boot() {
46 var roots = document.querySelectorAll(".wp-block-ai-builder-aibui-tabs");
47 for (var i = 0; i < roots.length; i++) {
48 init(roots[i]);
49 }
50 }
51 if (document.readyState === "loading") {
52 document.addEventListener("DOMContentLoaded", boot);
53 } else {
54 boot();
55 }
56 })();
57