{"version":3,"file":"script.min.js","sources":["../../../../../block-editor/blocks/tabs/script.js"],"sourcesContent":["class Tabs {\n\n\tconstructor(node, config = {}) {\n\t\tthis.index = -1;\n\t\tthis.node = node;\n\t\tthis.config = Object.assign( {\n\t\t\tcontentsActiveClass: 'tabs__tab--active',\n\t\t\tcontentsClass : 'tabs__tab',\n\t\t\tinteractiveClass : 'tabs--interactive',\n\t\t\tnavClass : 'tabs__nav',\n\t\t\tnavItemClass : 'tabs__nav-item',\n\t\t\tnavItemsClass : 'tabs__nav-items',\n\t\t\tnavLinkActiveClass : 'tabs__nav-link--active',\n\t\t\tnavLinkClass : 'tabs__nav-link',\n\t\t\tnavNextClass : 'tabs__nav-next',\n\t\t\tnavNextPath : 'M6 15l5-5-5-5 1-2 7 7-7 7z',\n\t\t\tnavPrevClass : 'tabs__nav-prev',\n\t\t\tnavPrevPath : 'M14 5l-5 5 5 5-1 2-7-7 7-7z',\n\t\t\tnavWrapClass : 'tabs__nav-wrap',\n\t\t}, config );\n\n\t\tif ( ! this.node ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.tabContents = Array.from(this.node.querySelectorAll(`.${this.config.contentsClass}`)).map((tab) => {\n\t\t\ttab.setAttribute('role', 'tabpanel');\n\t\t\ttab.setAttribute('tabindex', -1);\n\t\t\ttab.hidden = true;\n\t\t\treturn tab;\n\t\t});\n\n\t\tthis.nav = document.createElement('div');\n\t\tthis.nav.className = this.config.navClass;\n\t\tthis.nav.innerHTML = `\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t`.trim();\n\t\tthis.node.insertBefore(this.nav, this.node.firstChild);\n\n\t\tthis.prevArrow = this.nav.querySelector(`.${this.config.navPrevClass}`);\n\t\tthis.nextArrow = this.nav.querySelector(`.${this.config.navNextClass}`);\n\t\tthis.navItems = this.nav.querySelector(`.${this.config.navItemsClass}`);\n\t\tthis.navLinks = Array.from(this.nav.querySelectorAll(`.${this.config.navLinkClass}`));\n\n\t\tthis.nav.addEventListener('click', (e) => {\n\t\t\tlet node = e.target;\n\n\t\t\twhile ( node && node !== this.nav ) {\n\t\t\t\tif ( node.classList.contains( this.config.navLinkClass ) && node.getAttribute('data-index') ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.goTo( parseInt( node.getAttribute('data-index', 10 ) ) );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( node.classList.contains( this.config.navNextClass ) ) {\n\t\t\t\t\tthis.next()\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( node.classList.contains( this.config.navPrevClass ) ) {\n\t\t\t\t\tthis.prev()\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tnode = node.parentNode;\n\t\t\t}\n\t\t});\n\n\t\tif ( window.location.hash ) {\n\t\t\tfor ( let i = 0; i < this.navLinks.length; i++ ) {\n\t\t\t\tif ( this.navLinks[i].hash === window.location.hash ) {\n\t\t\t\t\tthis.goTo(i);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( this.index === -1 ) {\n\t\t\tthis.goTo(0);\n\t\t}\n\n\t\tthis.node.classList.add(this.config.interactiveClass);\n\t}\n\n\tnext() {\n\t\tif ( this.index < this.navLinks.length - 1 ) {\n\t\t\tthis.goTo( this.index + 1 );\n\t\t\tthis.scrollItems();\n\t\t}\n\t}\n\n\tprev() {\n\t\tif ( this.index > 0 ) {\n\t\t\tthis.goTo( this.index - 1 );\n\t\t\tthis.scrollItems();\n\t\t}\n\t}\n\n\tscrollItems() {\n\t\tif ( this.navItems.scrollWidth > this.navItems.offsetWidth ) {\n\t\t\tlet scrollTo = this.navLinks.reduce( (sum, item, index) => {\n\t\t\t\treturn sum + ( index < this.index ? item.offsetWidth : 0 );\n\t\t\t}, 0 );\n\n\t\t\tif ( ! Number.isNaN( scrollTo ) ) {\n\t\t\t\tthis.navItems.scrollTo( scrollTo, 0 );\n\t\t\t}\n\t\t}\n\t}\n\n\tgoTo(index) {\n\t\tif ( this.index > -1 ) {\n\t\t\tthis.navLinks[this.index].classList.remove(this.config.navLinkActiveClass);\n\t\t\tthis.tabContents[this.index].classList.remove(this.config.contentsActiveClass);\n\t\t\tthis.tabContents[this.index].setAttribute('tabindex', '-1');\n\t\t\tthis.tabContents[this.index].removeAttribute('aria-selected');\n\t\t\tthis.tabContents[this.index].hidden = true;\n\t\t}\n\n\t\tthis.index = index;\n\n\t\tthis.navLinks[this.index].classList.add(this.config.navLinkActiveClass);\n\t\tthis.tabContents[this.index].classList.add(this.config.contentsActiveClass);\n\t\tthis.tabContents[this.index].setAttribute('aria-selected', 'true');\n\t\tthis.tabContents[this.index].removeAttribute('tabindex', '-1');\n\t\tthis.tabContents[this.index].focus();\n\t\tthis.tabContents[this.index].hidden = false;\n\n\t\tif ( this.index === this.navLinks.length - 1 ) {\n\t\t\tthis.nextArrow.setAttribute('disabled', 'disabled');\n\t\t} else {\n\t\t\tthis.nextArrow.removeAttribute('disabled');\n\t\t}\n\n\t\tif ( this.index === 0 ) {\n\t\t\tthis.prevArrow.setAttribute('disabled', 'disabled');\n\t\t} else {\n\t\t\tthis.prevArrow.removeAttribute('disabled');\n\t\t}\n\n\t\t// allow flickity to resize itself when inside a tab\n\t\twindow.dispatchEvent( new CustomEvent('resize') );\n\t}\n}\n\nTabs.instances = Array.from(document.querySelectorAll('.tabs')).map( n => new Tabs(n));\n\nexport default Tabs;\n"],"names":["Tabs","node","config","index","Object","assign","contentsActiveClass","contentsClass","interactiveClass","navClass","navItemClass","navItemsClass","navLinkActiveClass","navLinkClass","navNextClass","navNextPath","navPrevClass","navPrevPath","navWrapClass","this","tabContents","Array","from","querySelectorAll","map","tab","setAttribute","hidden","nav","document","createElement","className","innerHTML","title","querySelector","_this","innerText","toLowerCase","replace","trim","join","insertBefore","firstChild","prevArrow","nextArrow","navItems","navLinks","addEventListener","e","target","classList","contains","getAttribute","preventDefault","goTo","parseInt","next","prev","parentNode","window","location","hash","i","length","add","scrollItems","scrollWidth","offsetWidth","scrollTo","reduce","sum","item","_this2","Number","isNaN","remove","removeAttribute","focus","dispatchEvent","CustomEvent","instances","n"],"mappings":"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"}