1"use strict"; 2 3(function () { 4 function manageBreakdanceTabs() { 5 const tabContentSelector = ".bde-advanced-tabs-content"; 6 const tabsSelector = ".bde-advanced-tabs"; 7 8 function getAdvancedTabsParent(selector) { 9 return document.querySelector(selector)?.closest(tabsSelector); 10 } 11 12 function getAdvancedTabsNodeId(selector) { 13 const advancedTabsElement = getAdvancedTabsParent(selector); 14 15 if (advancedTabsElement) { 16 return advancedTabsElement.dataset?.nodeId; 17 } 18 19 return null; 20 } 21 22 function alertIfTabLinkAndTabContentDontMatch(advancedTabsNodeId) { 23 const advancedTabs = document.querySelector( 24 `[data-node-id="${advancedTabsNodeId}"]` 25 ); 26 const tabsMenu = advancedTabs.querySelectorAll(".js-tab"); 27 const tabsPanels = advancedTabs.querySelectorAll(".js-panel"); 28 29 if (!tabsMenu || !tabsPanels) return; 30 31 const tabLinksCount = tabsMenu.length; 32 const tabContentsCount = tabsPanels.length; 33 34 if (tabLinksCount > tabContentsCount) { 35 const plural = tabLinksCount - tabContentsCount > 1 ? "s" : ""; 36 37 window.parent.Breakdance.NotificationLogger.log.message( 38 `You're missing ${ 39 tabLinksCount - tabContentsCount 40 } "Tab Content" element${plural} in a "Advanced Tabs" element. `, 41 8000 42 ); 43 } 44 45 if (tabLinksCount < tabContentsCount) { 46 const plural = tabContentsCount - tabLinksCount > 1 ? "Tabs" : "Tab"; 47 48 window.parent.Breakdance.NotificationLogger.log.message( 49 `You're missing ${ 50 tabContentsCount - tabLinksCount 51 } "${plural}" in a "Advanced Tabs" element.`, 52 8000 53 ); 54 } 55 } 56 57 function activateTabFromStructurePanel(selector) { 58 const advancedTabsNodeId = getAdvancedTabsNodeId(selector); 59 60 const tabsContentElement = document 61 .querySelector(selector) 62 ?.closest(tabContentSelector); 63 64 if ( 65 window.breakdanceTabsInstances && 66 window.breakdanceTabsInstances[advancedTabsNodeId] 67 ) { 68 window.breakdanceTabsInstances[ 69 advancedTabsNodeId 70 ].updateAndActivateTabFromSelector(tabsContentElement); 71 } 72 } 73 74 function update(selector) { 75 const advancedTabsNodeId = getAdvancedTabsNodeId(selector); 76 77 if ( 78 window.breakdanceTabsInstances && 79 window.breakdanceTabsInstances[advancedTabsNodeId] 80 ) { 81 window.breakdanceTabsInstances[advancedTabsNodeId].update(); 82 } 83 } 84 85 return { 86 alertIfTabLinkAndTabContentDontMatch, 87 activateTabFromStructurePanel, 88 update, 89 }; 90 } 91 92 window.manageBreakdanceTabs = manageBreakdanceTabs; 93})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.