{"version":3,"file":"script.min.js","sources":["../../../../block-editor/blocks/tabs/abstract.js","../../../../block-editor/blocks/tabs/script.js"],"sourcesContent":["class Abstract {\n\n\tconstructor(node, config = {}) {\n\t\tthis.index = -1;\n\t\tthis.node = node;\n\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\tnavItemActiveClass : 'tabs__nav-item--active',\n\t\t\tnavLinkClass : 'tabs__nav-link',\n\t\t}, config );\n\n\t\tif ( ! this.node || this.node.classList.contains( this.config.interactiveClass ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hashMap = {};\n\n\t\tthis.nav = this.node.querySelector( `.${this.config.navClass}` );\n\t\tconst navItems = Array.from( this.node.querySelectorAll( `.${this.config.navItemClass}` ) );\n\t\tconst navLinks = Array.from( this.node.querySelectorAll( `.${this.config.navLinkClass}` ) );\n\n\t\tthis.tabs = Array.from( this.node.querySelectorAll( `.${this.config.contentsClass}` ) ).map( ( content, index ) => {\n\t\t\tconst link = navLinks[ index ];\n\t\t\tconst navItem = navItems[ index ];\n\t\t\tconst hash = link.getAttribute('href').replace( /^#/, '' );\n\n\t\t\tcontent.setAttribute( 'role', 'tabpanel' );\n\t\t\tcontent.setAttribute( 'tabindex', -1 );\n\n\t\t\tthis.hashMap[ hash ] = index;\n\n\t\t\treturn {\n\t\t\t\topened: false,\n\t\t\t\tcontent,\n\t\t\t\thash,\n\t\t\t\tlink,\n\t\t\t\tnavItem,\n\t\t\t}\n\t\t} );\n\n\t\tthis.nav.addEventListener( 'click', (e) => {\n\t\t\tlet target = e.target;\n\n\t\t\twhile ( target && target !== this.nav ) {\n\t\t\t\tif ( target.classList.contains( this.config.navLinkClass ) && target.hash ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.goToHash( target.hash );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\ttarget = target.parentNode;\n\t\t\t}\n\t\t});\n\n\t\tif ( window.location.hash ) {\n\t\t\tthis.goToHash( window.location.hash );\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\tgoToHash( hash ) {\n\t\thash = hash.replace( /^#/, '' );\n\n\t\tif ( this.hashMap[ hash ] > -1 ) {\n\t\t\tthis.goTo( this.hashMap[ hash ] );\n\t\t}\n\t}\n\n\tgoTo( index ) {\n\t\tif ( this.index > -1 ) {\n\t\t\tif ( this.tabs[ this.index ].navItem ) {\n\t\t\t\tthis.tabs[ this.index ].navItem.classList.remove( this.config.navItemActiveClass );\n\t\t\t}\n\n\t\t\tthis.tabs[ this.index ].content.classList.remove( this.config.contentsActiveClass );\n\t\t\tthis.tabs[ this.index ].content.setAttribute( 'tabindex', '-1' );\n\t\t\tthis.tabs[ this.index ].content.removeAttribute( 'aria-selected' );\n\t\t}\n\n\t\tthis.index = index;\n\n\t\tif ( ! this.tabs[ this.index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.tabs[ this.index ].navItem ) {\n\t\t\tthis.tabs[ this.index ].navItem.classList.add( this.config.navItemActiveClass );\n\t\t}\n\n\t\tthis.tabs[ this.index ].content.classList.add( this.config.contentsActiveClass );\n\t\tthis.tabs[ this.index ].content.setAttribute( 'aria-selected', 'true' );\n\t\tthis.tabs[ this.index ].content.removeAttribute( 'tabindex', '-1' );\n\t\tthis.tabs[ this.index ].content.focus();\n\n\t\twindow.dispatchEvent( new CustomEvent( 'resize' ) );\n\t}\n}\n\nexport default Abstract;\n","import Abstract from './abstract.js';\n\nclass Tabs extends Abstract {\n\n\tconstructor(node, config = {}) {\n\t\tconfig = Object.assign( {\n\t\t\tcontentsOpenClass: 'tabs__tab--open',\n\t\t\ttitleClass : 'tabs__title',\n\t\t}, config );\n\n\t\tsuper( node, config );\n\n\t\tthis.open( this.index );\n\n\t\tthis.titles = Array.from( this.node.querySelectorAll( `.${this.config.titleClass}` ) ).map( ( title, index ) => {\n\t\t\ttitle.addEventListener( 'click', (e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.toggle( index );\n\t\t\t} );\n\n\t\t\treturn title;\n\t\t} );\n\t}\n\n\tgoToHash( hash ) {\n\t\tsuper.goToHash( hash );\n\n\t\tif ( this.hashMap[ hash ] > -1 ) {\n\t\t\tthis.open( this.hashMap[ hash ] );\n\t\t}\n\t}\n\n\topen( index ) {\n\t\tthis.tabs[ index ].opened = true;\n\t\tthis.tabs[ index ].content.classList.add( this.config.contentsOpenClass );\n\t\tthis.goTo( index );\n\t}\n\n\tclose( index ) {\n\t\tthis.tabs[ index ].opened = false;\n\t\tthis.tabs[ index ].content.classList.remove( this.config.contentsOpenClass );\n\t}\n\n\ttoggle( index ) {\n\t\treturn this.tabs[ index ].opened ? this.close( index ) : this.open( index );\n\t}\n\n}\n\nTabs.instances = Array.from( document.querySelectorAll( '.tabs' ) ).map( n => new Tabs( n ) );\n\nexport default Tabs;\n"],"names":["Abstract","node","config","this","index","Object","assign","contentsActiveClass","contentsClass","interactiveClass","navClass","navItemClass","navItemActiveClass","navLinkClass","classList","contains","hashMap","nav","querySelector","const","navItems","Array","from","querySelectorAll","navLinks","tabs","map","content","link","navItem","hash","getAttribute","replace","setAttribute","opened","addEventListener","e","let","target","preventDefault","goToHash","parentNode","window","location","goTo","add","remove","removeAttribute","focus","dispatchEvent","CustomEvent","Tabs","contentsOpenClass","titleClass","super","open","titles","title","toggle","prototype","constructor","call","close","instances","document","n"],"mappings":"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"}