{"version":3,"file":"script.min.js","sources":["../../../../block-editor/blocks/cards-slider/script.js"],"sourcesContent":["class CardsSlider {\n\tconstructor( node, opts = {} ) {\n\t\tthis.node = node;\n\n\t\tthis.opts = Object.assign( {\n\t\t\tcards : '.cards-slider__cards',\n\t\t\twrap : '.cards-slider__cards-wrap',\n\t\t\tkards : '.kard',\n\t\t\tselectedClass : 'cards-slider__card--selected',\n\t\t\tactiveClass : 'cards-slider--active',\n\t\t\tnavClass : 'cards-slider__nav',\n\t\t\tnavPrevClass : 'cards-slider__prev',\n\t\t\tnavNextClass : 'cards-slider__next',\n\t\t\toffscreenClass: 'cards-slider__card--offscreen',\n\t\t}, opts );\n\n\t\tthis.cards = this.node.querySelector( this.opts.cards );\n\t\tthis.wrap = this.cards.querySelector( this.opts.wrap );\n\t\tthis.kards = Array.from( this.wrap.querySelectorAll( this.opts.kards ) );\n\t\tthis.selected = -1;\n\t\tthis.mode = this.getMode();\n\n\t\tthis.next = this.next.bind(this);\n\t\tthis.prev = this.prev.bind(this);\n\t\tthis.resize = this.resize.bind(this);\n\t\tthis.onFocus = this.onFocus.bind(this);\n\n\t\tthis.lastEventType = null;\n\n\t\t[ 'mousedown', 'keydown' ].forEach( evt => document.addEventListener( evt, e => this.lastEventType = e.type ) )\n\n\t\tif ( this.kards.length > 1 ) {\n\t\t\tthis.nav = document.createElement('nav');\n\t\t\tthis.nav.className = this.opts.navClass;\n\t\t\tthis.cards.parentNode.appendChild(this.nav);\n\n\t\t\tthis.navPrev = document.createElement('button');\n\t\t\tthis.navPrev.type = 'button';\n\t\t\tthis.navPrev.className = this.opts.navPrevClass;\n\t\t\tthis.navPrev.innerHTML = 'Previous';\n\t\t\tthis.navPrev.addEventListener( 'click', this.prev );\n\t\t\tthis.nav.appendChild(this.navPrev);\n\n\t\t\tthis.navNext = document.createElement('button');\n\t\t\tthis.navNext.type = 'button';\n\t\t\tthis.navNext.className = this.opts.navNextClass;\n\t\t\tthis.navNext.innerHTML = 'Next';\n\t\t\tthis.navNext.addEventListener( 'click', this.next );\n\t\t\tthis.nav.appendChild(this.navNext);\n\n\t\t\tif ( document.readyState === 'complete' ) {\n\t\t\t\tthis.select( 0 );\n\t\t\t} else {\n\t\t\t\twindow.addEventListener('load', () => this.select(0) );\n\t\t\t}\n\n\t\t\tthis.node.addEventListener( 'focus', this.onFocus, true );\n\t\t}\n\n\t\twindow.addEventListener('resize', this.resize);\n\t\tthis.resize();\n\t}\n\n\tonFocus(e) {\n\t\tif ( this.lastEventType !== 'keydown' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet node = e.target;\n\n\t\twhile( node !== this.node ) {\n\t\t\tlet index = this.kards.indexOf( node );\n\n\t\t\tif ( index > -1 && ! this.kards[ index ].classList.contains( this.selectedClass ) ) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn this.select( index );\n\t\t\t}\n\n\t\t\tnode = node.parentNode;\n\t\t}\n\t}\n\n\tgetMode() {\n\t\tif ( window.matchMedia( '(min-width: 1024px').matches ) {\n\t\t\treturn 'desktop';\n\t\t}\n\n\t\tif ( window.matchMedia( '(min-width: 768px').matches ) {\n\t\t\treturn 'tablet';\n\t\t}\n\n\t\treturn 'mobile';\n\t}\n\n\tresize() {\n\t\tlet mode = this.getMode();\n\n\t\tif ( this.mode !== mode ) {\n\t\t\tswitch( mode ) {\n\t\t\t\tcase 'desktop':\n\t\t\t\tcase 'tablet':\n\t\t\t\t\tthis.select(0);\n\t\t\t\t\tthis.wrap.scrollTo(0, 0);\n\t\t\t\tbreak;\n\t\t\t\tcase 'mobile':\n\t\t\t\t\tthis.wrap.removeAttribute('style');\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tthis.mode = mode;\n\t\t}\n\t}\n\n\tselect( index ) {\n\t\tif ( index === this.selected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.selected > -1 ) {\n\t\t\tthis.kards[ this.selected ].classList.remove( this.opts.selectedClass );\n\t\t}\n\t\tthis.selected = index;\n\n\t\tthis.kards[ this.selected ].classList.add( this.opts.selectedClass );\n\n\t\tif ( this.selected > 0 ) {\n\t\t\tthis.node.classList.add( this.opts.activeClass );\n\t\t} else {\n\t\t\tthis.node.classList.remove( this.opts.activeClass );\n\t\t}\n\n\t\tif ( this.selected === 0 ) {\n\t\t\tthis.navPrev.disabled = true;\n\t\t\tthis.navNext.disabled = false;\n\t\t} else if ( this.selected === this.kards.length - 1 ) {\n\t\t\tthis.navPrev.disabled = false;\n\t\t\tthis.navNext.disabled = true;\n\t\t} else {\n\t\t\tthis.navPrev.disabled = false;\n\t\t\tthis.navNext.disabled = false;\n\t\t}\n\n\t\tlet ontransitionend = () => {\n\t\t\tthis.kards.forEach( ( kard, kardIndex ) => {\n\t\t\t\tif ( 'desktop' === this.mode ) {\n\t\t\t\t\tif ( kardIndex === index ) {\n\t\t\t\t\t\tkard.classList.remove( this.opts.offscreenClass );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst rect = kard.getBoundingClientRect();\n\n\t\t\t\t\tif ( rect.left < 0 || rect.left + rect.width > document.body.offsetWidth ) {\n\t\t\t\t\t\tkard.classList.add( this.opts.offscreenClass );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tkard.classList.remove( this.opts.offscreenClass );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tkard.classList.remove( this.opts.offscreenClass );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.wrap.removeEventListener( 'transitionend', ontransitionend );\n\t\t}\n\n\t\tthis.wrap.addEventListener( 'transitionend', ontransitionend );\n\n\t\tconst itemStyle = window.getComputedStyle( this.kards[ this.selected ] );\n\t\tthis.wrap.style.transform = `translateX(-${ (parseInt( itemStyle.marginLeft, 10 ) + this.kards[this.selected].offsetWidth + parseInt( itemStyle.marginRight, 10 ) ) * this.selected }px)`;\n\t}\n\n\tnext() {\n\t\tif ( this.selected < this.kards.length - 1 ) {\n\t\t\tthis.select( this.selected + 1 );\n\t\t}\n\t}\n\n\tprev() {\n\t\tif ( this.selected > 0 ) {\n\t\t\tthis.select( this.selected - 1 );\n\t\t}\n\t}\n}\n\nif ( ! CardsSlider.instances ) {\n\tCardsSlider.instances = Array.from( document.querySelectorAll( '.cards-slider' ) ).map( node => new CardsSlider( node ) );\n}\n\nexport default CardsSlider;\n"],"names":["CardsSlider","node","opts","this","Object","assign","cards","wrap","kards","selectedClass","activeClass","navClass","navPrevClass","navNextClass","offscreenClass","querySelector","Array","from","querySelectorAll","selected","mode","getMode","next","bind","prev","resize","onFocus","lastEventType","forEach","evt","document","addEventListener","e","type","length","nav","createElement","className","parentNode","appendChild","navPrev","innerHTML","navNext","readyState","select","window","let","target","index","indexOf","classList","contains","preventDefault","prototype","matchMedia","matches","scrollTo","removeAttribute","remove","add","disabled","ontransitionend","kard","kardIndex","const","rect","getBoundingClientRect","left","width","body","offsetWidth","removeEventListener","itemStyle","getComputedStyle","style","transform","parseInt","marginLeft","marginRight","instances","map"],"mappings":"iLAAM,IAAAA,EACL,SAAaC,EAAMC,6BAAO,CAAA,GACzBC,KAAKF,KAAOA,EAEZE,KAAKD,KAAOE,OAAOC,OAAQ,CAC1BC,MAAgB,uBAChBC,KAAgB,4BAChBC,MAAgB,QAChBC,cAAgB,+BAChBC,YAAgB,uBAChBC,SAAgB,oBAChBC,aAAgB,qBAChBC,aAAgB,qBAChBC,eAAgB,iCACdZ,GAEHC,KAAKG,MAAWH,KAAKF,KAAKc,cAAeZ,KAAKD,KAAKI,OACnDH,KAAKI,KAAWJ,KAAKG,MAAMS,cAAeZ,KAAKD,KAAKK,MACpDJ,KAAKK,MAAWQ,MAAMC,KAAMd,KAAKI,KAAKW,iBAAkBf,KAAKD,KAAKM,QAClEL,KAAKgB,UAAY,EACjBhB,KAAKiB,KAAWjB,KAAKkB,UAErBlB,KAAKmB,KAAUnB,KAAKmB,KAAKC,KAAKpB,MAC9BA,KAAKqB,KAAUrB,KAAKqB,KAAKD,KAAKpB,MAC9BA,KAAKsB,OAAUtB,KAAKsB,OAAOF,KAAKpB,MAChCA,KAAKuB,QAAUvB,KAAKuB,QAAQH,KAAKpB,MAEjCA,KAAKwB,cAAgB,KAErB,CAAE,YAAa,WAAYC,SAAS,SAAAC,GAAO,OAAAC,SAASC,iBAAkBF,GAAG,SAAEG,GAAC,OAAI7B,EAAKwB,cAAgBK,EAAEC,IAAI,OAEtG9B,KAAKK,MAAM0B,OAAS,IACxB/B,KAAKgC,IAAML,SAASM,cAAc,OAClCjC,KAAKgC,IAAIE,UAAYlC,KAAKD,KAAKS,SAC/BR,KAAKG,MAAMgC,WAAWC,YAAYpC,KAAKgC,KAEvChC,KAAKqC,QAAUV,SAASM,cAAc,UACtCjC,KAAKqC,QAAQP,KAAO,SACpB9B,KAAKqC,QAAQH,UAAYlC,KAAKD,KAAKU,aACnCT,KAAKqC,QAAQC,UAAY,qNACzBtC,KAAKqC,QAAQT,iBAAkB,QAAS5B,KAAKqB,MAC7CrB,KAAKgC,IAAII,YAAYpC,KAAKqC,SAE1BrC,KAAKuC,QAAUZ,SAASM,cAAc,UACtCjC,KAAKuC,QAAQT,KAAO,SACpB9B,KAAKuC,QAAQL,UAAYlC,KAAKD,KAAKW,aACnCV,KAAKuC,QAAQD,UAAY,oPACzBtC,KAAKuC,QAAQX,iBAAkB,QAAS5B,KAAKmB,MAC7CnB,KAAKgC,IAAII,YAAYpC,KAAKuC,SAEG,aAAxBZ,SAASa,WACbxC,KAAKyC,OAAQ,GAEbC,OAAOd,iBAAiB,QAAQ,WAAA,OAAM5B,EAAKyC,OAAO,EAAC,IAGpDzC,KAAKF,KAAK8B,iBAAkB,QAAS5B,KAAKuB,SAAS,IAGpDmB,OAAOd,iBAAiB,SAAU5B,KAAKsB,QACvCtB,KAAKsB,QACN,qBAEAC,QAAO,SAACM,GACP,GAA4B,YAAvB7B,KAAKwB,cAMV,IAFAmB,IAAI7C,EAAO+B,EAAEe,OAEN9C,IAASE,KAAKF,MAAO,CAC3B6C,IAAIE,EAAQ7C,KAAKK,MAAMyC,QAAShD,GAEhC,GAAK+C,GAAS,IAAO7C,KAAKK,MAAOwC,GAAQE,UAAUC,SAAUhD,KAAKM,eAEjE,OADAuB,EAAEoB,iBACKjD,KAAKyC,OAAQI,GAGrB/C,EAAOA,EAAKqC,UACZ,CACF,EAEAtC,EAAAqD,UAAAhC,QAAA,WACC,OAAKwB,OAAOS,WAAY,sBAAsBC,QACtC,UAGHV,OAAOS,WAAY,qBAAqBC,QACrC,SAGD,QACR,EAEAvD,EAAAqD,UAAA5B,OAAA,WACCqB,IAAI1B,EAAOjB,KAAKkB,UAEhB,GAAKlB,KAAKiB,OAASA,EAAO,CACzB,OAAQA,GACP,IAAK,UACL,IAAK,SACJjB,KAAKyC,OAAO,GACZzC,KAAKI,KAAKiD,SAAS,EAAG,GACvB,MACA,IAAK,SACJrD,KAAKI,KAAKkD,gBAAgB,SAI5BtD,KAAKiB,KAAOA,CACZ,CACF,cAEAwB,OAAM,SAAEI,cACP,GAAKA,IAAU7C,KAAKgB,SAApB,CAIKhB,KAAKgB,UAAY,GACrBhB,KAAKK,MAAOL,KAAKgB,UAAW+B,UAAUQ,OAAQvD,KAAKD,KAAKO,eAEzDN,KAAKgB,SAAW6B,EAEhB7C,KAAKK,MAAOL,KAAKgB,UAAW+B,UAAUS,IAAKxD,KAAKD,KAAKO,eAEhDN,KAAKgB,SAAW,EACpBhB,KAAKF,KAAKiD,UAAUS,IAAKxD,KAAKD,KAAKQ,aAEnCP,KAAKF,KAAKiD,UAAUQ,OAAQvD,KAAKD,KAAKQ,aAGhB,IAAlBP,KAAKgB,UACThB,KAAKqC,QAAQoB,UAAW,EACxBzD,KAAKuC,QAAQkB,UAAW,GACbzD,KAAKgB,WAAahB,KAAKK,MAAM0B,OAAS,GACjD/B,KAAKqC,QAAQoB,UAAW,EACxBzD,KAAKuC,QAAQkB,UAAW,IAExBzD,KAAKqC,QAAQoB,UAAW,EACxBzD,KAAKuC,QAAQkB,UAAW,GAGzBd,IAAIe,EAAe,WAClB1D,EAAKK,MAAMoB,kBAAWkC,EAAMC,GAC3B,GAAK,YAAc5D,EAAKiB,KAAO,CAC9B,GAAK2C,IAAcf,EAElB,YADAc,EAAKZ,UAAUQ,OAAQvD,EAAKD,KAAKY,gBAIlCkD,IAAMC,EAAOH,EAAKI,wBAEbD,EAAKE,KAAO,GAAKF,EAAKE,KAAOF,EAAKG,MAAQtC,SAASuC,KAAKC,YAC5DR,EAAKZ,UAAUS,IAAKxD,EAAKD,KAAKY,gBAE9BgD,EAAKZ,UAAUQ,OAAQvD,EAAKD,KAAKY,eAEvC,MACKgD,EAAKZ,UAAUQ,OAAQvD,EAAKD,KAAKY,eAEtC,IAEGX,EAAKI,KAAKgE,oBAAqB,gBAAiBV,EAChD,EAED1D,KAAKI,KAAKwB,iBAAkB,gBAAiB8B,GAE7CG,IAAMQ,EAAY3B,OAAO4B,iBAAkBtE,KAAKK,MAAOL,KAAKgB,WAC5DhB,KAAKI,KAAKmE,MAAMC,UAAY,gBAAiBC,SAAUJ,EAAUK,WAAY,IAAO1E,KAAKK,MAAML,KAAKgB,UAAUmD,YAAcM,SAAUJ,EAAUM,YAAa,KAAS3E,KAAKgB,cApD1K,CAqDF,EAEAnB,EAAAqD,UAAA/B,KAAA,WACMnB,KAAKgB,SAAWhB,KAAKK,MAAM0B,OAAS,GACxC/B,KAAKyC,OAAQzC,KAAKgB,SAAW,EAE/B,EAEAnB,EAAAqD,UAAA7B,KAAA,WACMrB,KAAKgB,SAAW,GACpBhB,KAAKyC,OAAQzC,KAAKgB,SAAW,EAE/B,EAGMnB,EAAY+E,YAClB/E,EAAY+E,UAAY/D,MAAMC,KAAMa,SAASZ,iBAAkB,kBAAoB8D,KAAG,SAAE/E,GAAI,OAAI,IAAID,EAAaC,EAAM"}