|
1 | 1 | (function (global, doc, bootstrap, Translator) { |
2 | 2 | let toggleAllTimeout; |
| 3 | + const TOGGLE_TIMEOUT = 200; |
3 | 4 | const toggleAllBtns = [...doc.querySelectorAll(`[data-multi-collapse-btn-id]`)]; |
4 | 5 | const toggleMultiCollapseBtn = (btn, changeToCollapseAll) => { |
5 | 6 | const displayedText = changeToCollapseAll |
6 | | - ? /*@Desc("Collapse all)*/ 'product_type.edit.section.attribute_collapse_all' |
7 | | - : /*@Desc("Expand all)*/ 'product_type.edit.section.attribute_expand_all'; |
| 7 | + ? /*@Desc("Collapse all sections)*/ 'collapse.collapse_all' |
| 8 | + : /*@Desc("Expand all sections)*/ 'collapse.expand_all'; |
8 | 9 |
|
9 | | - btn.innerText = Translator.trans(displayedText, {}, 'ibexa_product_catalog'); |
| 10 | + btn.innerText = Translator.trans(displayedText, {}, 'ibexa_collapse'); |
10 | 11 | btn.classList.toggle('ibexa-multi-collapse__btn--expand-all-label', !changeToCollapseAll); |
11 | 12 | }; |
12 | 13 |
|
|
42 | 43 | section.addEventListener('click', () => { |
43 | 44 | const currentCollapsibleBtns = [...multiCollapseNode.querySelectorAll('[data-bs-toggle]')]; |
44 | 45 |
|
45 | | - window.clearTimeout(toggleAllTimeout); |
| 46 | + global.clearTimeout(toggleAllTimeout); |
46 | 47 |
|
47 | | - toggleAllTimeout = window.setTimeout(() => { |
| 48 | + toggleAllTimeout = global.setTimeout(() => { |
48 | 49 | const collapsedCount = currentCollapsibleBtns.filter((btn) => btn.classList.contains('collapsed')).length; |
49 | 50 | const shouldBeToggled = collapsedCount === currentCollapsibleBtns.length || collapsedCount === 0; |
50 | 51 |
|
51 | 52 | if (shouldBeToggled) { |
52 | 53 | toggleMultiCollapseBtn(currentToggleAllBtn, collapsedCount === 0); |
53 | 54 | } |
54 | | - }, 200); |
| 55 | + }, TOGGLE_TIMEOUT); |
55 | 56 | }); |
56 | 57 | }; |
57 | 58 |
|
|
83 | 84 |
|
84 | 85 | const multiCollapseBodyNode = doc.querySelector(`[data-multi-collapse-body="${collapseId}"]`); |
85 | 86 |
|
86 | | - window.clearTimeout(toggleAllTimeout); |
| 87 | + global.clearTimeout(toggleAllTimeout); |
87 | 88 |
|
88 | | - toggleAllTimeout = window.setTimeout(() => { |
| 89 | + toggleAllTimeout = global.setTimeout(() => { |
89 | 90 | const isExpandingAction = btn.classList.contains('ibexa-multi-collapse__btn--expand-all-label'); |
90 | 91 |
|
91 | 92 | handleCollapseAction(multiCollapseBodyNode, isExpandingAction); |
92 | 93 | toggleMultiCollapseBtn(btn, isExpandingAction); |
93 | | - }, 200); |
| 94 | + }, TOGGLE_TIMEOUT); |
94 | 95 | }); |
95 | 96 | }; |
96 | 97 | toggleAllBtns.forEach(attachAllElementsToggler); |
|
0 commit comments