{"version":3,"file":"script.min.js","sources":["../../../../block-editor/blocks/post-slider/script.js","../../../../assets/js/modules/_post-slider.js"],"sourcesContent":["import { slider } from \"../../../assets/js/modules/_post-slider.js\";\n\nconst config = {\n\twrap: '.post-slider__wrap',\n\tnext: '.post-slider__next',\n\tprev: '.post-slider__prev',\n\titems: '.post-slider__wrap',\n};\n\nexport const instances = Array.from(\n\tdocument.querySelectorAll( '.post-slider' )\n).map( node => slider( node, config ) );\n","export function slider( node, config = {} ) {\n\tconfig = {\n\t\twrap: '.slider__wrap',\n\t\tnext: '.slider__next',\n\t\tprev: '.slider__prev',\n\t\t// we'll use wrap.children instead of post-slider__wrap .card/.excerpt\n\t\titems: '.slider__item',\n\t\t...config\n\t};\n\n\tconst wrap = node.querySelector( config.wrap );\n\tconst items = [ ...wrap.children];\n\tconst next = node.querySelector( config.next );\n\tconst prev = node.querySelector( config.prev );\n\n\tif ( ! wrap || ! items ) {\n\t\treturn;\n\t}\n\n\tlet interval = null;\n\n\tconst getCurrentScrollIndex = () => {\n\t\treturn items.map( item => Math.abs( item.offsetLeft - wrap.scrollLeft ) ).reduce( ( closest, left, i, lefts ) => {\n\t\t\treturn left < lefts[ closest ] ? i : closest;\n\t\t}, items.length - 1 );\n\t};\n\n\tconst setScrollIndex = ( index, behavior = 'smooth' ) => {\n\t\tconst viewable = getComputedStyle(wrap).getPropertyValue('--viewable');\n\n\t\tif ( index <= items.length - viewable ) {\n\t\t\twrap.scrollTo( {\n\t\t\t\tleft: items[ index ].offsetLeft,\n\t\t\t\ttop: 0,\n\t\t\t\tbehavior\n\t\t\t} );\n\t\t} else if ( interval > 0 ) {\n\t\t\tclearInterval( interval );\n\t\t\tinterval = null;\n\t\t}\n\t};\n\n\tconst setState = () => {\n\t\tif (!items.length || !wrap) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstItemInView = items[0].offsetLeft >= wrap.scrollLeft;\n\t\tconst lastItemInView =\n\t\t\titems[items.length - 1].offsetLeft <=\n\t\t\twrap.scrollLeft + wrap.offsetWidth - items[items.length - 1].offsetWidth;\n\n\t\t// Handle \"next\" button state\n\t\tif (lastItemInView) {\n\t\t\t// next.disabled = true;\n\t\t\tnext.classList.add('is-disabled');\n\t\t} else {\n\t\t\t// next.disabled = false;\n\t\t\tnext.classList.remove('is-disabled');\n\t\t}\n\n\t\t// Handle \"prev\" button state\n\t\tif (firstItemInView) {\n\t\t\t// prev.disabled = true;\n\t\t\tprev.classList.add('is-disabled');\n\t\t} else {\n\t\t\t// prev.disabled = false;\n\t\t\tprev.classList.remove('is-disabled');\n\t\t}\n\t};\n\n\tconst scrollPrev = () => {\n\t\tconst index = Math.round( Math.max( getCurrentScrollIndex() - 1, 0 ) );\n\t\tsetScrollIndex( index );\n\n\t\tif ( interval && index <= 0 ) {\n\t\t\tclearInterval( interval );\n\t\t\tinterval = null;\n\t\t}\n\t};\n\n\tconst scrollNext = () => {\n\t\tconst index = Math.round( Math.min( getCurrentScrollIndex() + 1, items.length - 1 ) );\n\t\tsetScrollIndex( index );\n\n\t\tif ( interval !== null && index === items.length - 1 ) {\n\t\t\tclearInterval( interval );\n\t\t\tinterval = null;\n\t\t}\n\t};\n\n\tconst mouseout = function() {\n\t\tthis.removeEventListener( 'mouseout', mouseout );\n\t}\n\n\tconst mousedown = function( cb, delay = 200 ) {\n\t\tif ( null !== interval ) {\n\t\t\tclearInterval( interval );\n\t\t}\n\n\t\tinterval = setInterval( cb, delay );\n\t\tthis.addEventListener( 'mouseup', mouseup );\n\t\tthis.addEventListener( 'mouseout', mouseout );\n\t}\n\n\tconst mouseup = function() {\n\t\tthis.removeEventListener( 'mouseup', mouseup );\n\t\twindow.clearInterval( interval );\n\t\tinterval = null;\n\t}\n\n\tif ( prev ) {\n\t\tprev.addEventListener( 'mousedown', () => mousedown.call( prev, scrollPrev ) );\n\t\tprev.addEventListener( 'click', scrollPrev );\n\t}\n\n\tif ( next ) {\n\t\tnext.addEventListener( 'mousedown', () => mousedown.call( next, scrollNext ) );\n\t\tnext.addEventListener( 'click', scrollNext );\n\t}\n\n\twrap.addEventListener( 'scroll', setState );\n\twindow.addEventListener( 'resize', () => {\n\t\tsetScrollIndex( getCurrentScrollIndex() );\n\t\tsetState();\n\n\t\tif ( typeof config.resize === 'function' ) {\n\t\t\tconfig.resize();\n\t\t}\n\t} );\n\tsetScrollIndex( 0 );\n\tsetState();\n\n\treturn node;\n}\n"],"names":["config","wrap","next","prev","items","instances","Array","from","document","querySelectorAll","map","node","querySelector","children","interval","getCurrentScrollIndex","item","Math","abs","offsetLeft","scrollLeft","reduce","closest","left","i","lefts","length","setScrollIndex","index","behavior","viewable","getComputedStyle","getPropertyValue","scrollTo","top","clearInterval","setState","firstItemInView","offsetWidth","classList","add","remove","scrollPrev","round","max","scrollNext","min","mouseout","this","removeEventListener","mousedown","cb","delay","setInterval","addEventListener","mouseup","window","call","resize","slider"],"mappings":"+DAEA,MAAMA,EAAS,CACdC,KAAM,qBACNC,KAAM,qBACNC,KAAM,qBACNC,MAAO,sBAGKC,EAAYC,MAAMC,KAC9BC,SAASC,iBAAkB,iBAC1BC,KAAKC,GCXA,SAAiBA,EAAMX,EAAS,IACtCA,EAAS,CACRC,KAAM,gBACNC,KAAM,gBACNC,KAAM,gBAENC,MAAO,mBACJJ,GAGJ,MAAMC,EAAQU,EAAKC,cAAeZ,EAAOC,MACnCG,EAAQ,IAAKH,EAAKY,UAClBX,EAAQS,EAAKC,cAAeZ,EAAOE,MACnCC,EAAQQ,EAAKC,cAAeZ,EAAOG,MAEzC,IAAOF,IAAUG,EAChB,OAGD,IAAIU,EAAW,KAEf,MAAMC,EAAwBA,IACtBX,EAAMM,KAAKM,GAAQC,KAAKC,IAAKF,EAAKG,WAAalB,EAAKmB,cAAeC,QAAQ,CAAEC,EAASC,EAAMC,EAAGC,IAC9FF,EAAOE,EAAOH,GAAYE,EAAIF,GACnClB,EAAMsB,OAAS,GAGbC,EAAiBA,CAAEC,EAAOC,EAAW,YAC1C,MAAMC,EAAWC,iBAAiB9B,GAAM+B,iBAAiB,cAEpDJ,GAASxB,EAAMsB,OAASI,EAC5B7B,EAAKgC,SAAU,CACdV,KAAMnB,EAAOwB,GAAQT,WACrBe,IAAK,EACLL,aAEUf,EAAW,IACtBqB,cAAerB,GACfA,EAAW,KACZ,EAGKsB,EAAWA,KAChB,IAAKhC,EAAMsB,SAAWzB,EACrB,OAGD,MAAMoC,EAAkBjC,EAAM,GAAGe,YAAclB,EAAKmB,WAEnDhB,EAAMA,EAAMsB,OAAS,GAAGP,YACxBlB,EAAKmB,WAAanB,EAAKqC,YAAclC,EAAMA,EAAMsB,OAAS,GAAGY,YAK7DpC,EAAKqC,UAAUC,IAAI,eAGnBtC,EAAKqC,UAAUE,OAAO,eAInBJ,EAEHlC,EAAKoC,UAAUC,IAAI,eAGnBrC,EAAKoC,UAAUE,OAAO,cACvB,EAGKC,EAAaA,KAClB,MAAMd,EAAQX,KAAK0B,MAAO1B,KAAK2B,IAAK7B,IAA0B,EAAG,IACjEY,EAAgBC,GAEXd,GAAYc,GAAS,IACzBO,cAAerB,GACfA,EAAW,KACZ,EAGK+B,EAAaA,KAClB,MAAMjB,EAAQX,KAAK0B,MAAO1B,KAAK6B,IAAK/B,IAA0B,EAAGX,EAAMsB,OAAS,IAChFC,EAAgBC,GAEE,OAAbd,GAAqBc,IAAUxB,EAAMsB,OAAS,IAClDS,cAAerB,GACfA,EAAW,KACZ,EAGKiC,EAAW,WAChBC,KAAKC,oBAAqB,WAAYF,IAGjCG,EAAY,SAAUC,EAAIC,EAAQ,KAClC,OAAStC,GACbqB,cAAerB,GAGhBA,EAAWuC,YAAaF,EAAIC,GAC5BJ,KAAKM,iBAAkB,UAAWC,GAClCP,KAAKM,iBAAkB,WAAYP,IAG9BQ,EAAU,WACfP,KAAKC,oBAAqB,UAAWM,GACrCC,OAAOrB,cAAerB,GACtBA,EAAW,MAyBZ,OAtBKX,IACJA,EAAKmD,iBAAkB,aAAa,IAAMJ,EAAUO,KAAMtD,EAAMuC,KAChEvC,EAAKmD,iBAAkB,QAASZ,IAG5BxC,IACJA,EAAKoD,iBAAkB,aAAa,IAAMJ,EAAUO,KAAMvD,EAAM2C,KAChE3C,EAAKoD,iBAAkB,QAAST,IAGjC5C,EAAKqD,iBAAkB,SAAUlB,GACjCoB,OAAOF,iBAAkB,UAAU,KAClC3B,EAAgBZ,KAChBqB,IAE8B,mBAAlBpC,EAAO0D,QAClB1D,EAAO0D,QACR,IAED/B,EAAgB,GAChBS,IAEOzB,CACR,CD3HegD,CAAQhD,EAAMX"}