PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.7
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.7
2.0.13 2.0.12 2.0.11 2.0.10 2.0.9 trunk 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8
blockenberg / blocks / course-curriculum / frontend.js

frontend.js in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.7, at blocks/course-curriculum/frontend.js

43 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function () {
2 function initCurriculum(card) {
3 var expandAll = card.dataset.expandAll === '1';
4 var defaultOpen = parseInt(card.dataset.defaultOpen, 10) || 0;
5
6 var sections = card.querySelectorAll('.bkbg-cc-section');
7
8 sections.forEach(function (section, idx) {
9 var hdr = section.querySelector('.bkbg-cc-sec-hdr');
10 var lessons = section.querySelector('.bkbg-cc-lessons');
11 if (!hdr || !lessons) return;
12
13 var shouldOpen = expandAll || idx === defaultOpen;
14 hdr.setAttribute('aria-expanded', shouldOpen ? 'true' : 'false');
15 lessons.setAttribute('aria-hidden', shouldOpen ? 'false' : 'true');
16
17 hdr.addEventListener('click', function () {
18 var isOpen = hdr.getAttribute('aria-expanded') === 'true';
19 hdr.setAttribute('aria-expanded', isOpen ? 'false' : 'true');
20 lessons.setAttribute('aria-hidden', isOpen ? 'true' : 'false');
21 });
22
23 hdr.addEventListener('keydown', function (e) {
24 if (e.key === 'Enter' || e.key === ' ') {
25 e.preventDefault();
26 hdr.click();
27 }
28 });
29 });
30 }
31
32 function init() {
33 var cards = document.querySelectorAll('.bkbg-cc-card');
34 cards.forEach(initCurriculum);
35 }
36
37 if (document.readyState === 'loading') {
38 document.addEventListener('DOMContentLoaded', init);
39 } else {
40 init();
41 }
42 })();
43