{"version":3,"file":"script.min.js","sources":["../../../../block-editor/blocks/card-slider/script.js"],"sourcesContent":["export function init(node, config = {}) {\n\tconfig = {\n\t\twrap: \".card-slider__slides\",\n\t\tnext: \".card-slider__next\",\n\t\tprev: \".card-slider__prev\",\n\t\titems: \".card-slider__slides .card\",\n\t\t...config,\n\t};\n\n\tconst wrap = node.querySelector(config.wrap);\n\tconst items = Array.from(node.querySelectorAll(config.items));\n\tconst next = node.querySelector(config.next);\n\tconst prev = node.querySelector(config.prev);\n\n\tif (!wrap || !items || (!prev && !next)) {\n\t\treturn;\n\t}\n\n\tconst allImages = node\n\t\t.querySelector(config.items)\n\t\t.querySelectorAll('[loading=\"lazy\"]');\n\tconst cardGrid = wrap.closest(config.wrap);\n\n\tlet interval = null;\n\n\tif (items.length > 3) {\n\t\tcardGrid.classList.add(\"has-slider-nav\");\n\t}\n\n\tconst getCurrentScrollIndex = () => {\n\t\treturn items\n\t\t\t.map((item) => Math.abs(item.offsetLeft - wrap.scrollLeft - wrap.offsetLeft))\n\t\t\t.reduce((closest, left, i, lefts) => {\n\t\t\t\treturn left < lefts[closest] ? i : closest;\n\t\t\t}, items.length - 1);\n\t};\n\n\tconst setScrollIndex = (index, behavior = \"smooth\") => {\n\t\tif (index <= items.length) {\n\t\t\twrap.scrollTo({\n\t\t\t\tleft: items[index].offsetLeft - wrap.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\tconst windowWidth = window.innerWidth;\n\t\tconst lastItemOffsetRight = windowWidth - items[items.length - 1].getBoundingClientRect().right;\n\t\tconst wrapOffsetRight = windowWidth - wrap.getBoundingClientRect().right;\n\t\tif (\n\t\t\tlastItemOffsetRight >= wrapOffsetRight &&\n next\n\t\t) {\n\t\t\tnext.disabled = true;\n\t\t} else if ( next ) {\n\t\t\tnext.removeAttribute(\"disabled\");\n\t\t}\n\n\t\t// first item is is view\n\t\tif ( items[0].offsetLeft - wrap.scrollLeft - wrap.offsetLeft >= 0 && prev ) {\n\t\t\tprev.disabled = true;\n\t\t} else if ( prev ) {\n\t\t\tprev.removeAttribute(\"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(\n\t\t\tMath.min(getCurrentScrollIndex() + 1, items.length - 1)\n\t\t);\n\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\t//switch to Eager loading due to image loading issues\n\tallImages.forEach((img) => {\n\t\timg.setAttribute(\"loading\", \"eager\");\n\t});\n\tsetScrollIndex(0);\n\tsetState();\n\n\tconst matchMedia = window.matchMedia(\"(max-width: 600px)\");\n\n\tmatchMedia.addEventListener(\"change\", (query) => {\n\t\tif (query.matches) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetState();\n\t\t\t}, 100);\n\t\t}\n\t});\n\n\treturn node;\n}\n\nexport const instances = Array.from(\n\tdocument.querySelectorAll(\".card-slider\")\n).map(init);\n"],"names":["init","node","config","wrap","next","prev","items","querySelector","Array","from","querySelectorAll","allImages","cardGrid","closest","interval","length","classList","add","getCurrentScrollIndex","map","item","Math","abs","offsetLeft","scrollLeft","reduce","left","i","lefts","setScrollIndex","index","behavior","scrollTo","top","clearInterval","setState","windowWidth","window","innerWidth","getBoundingClientRect","right","disabled","removeAttribute","scrollPrev","round","max","scrollNext","min","mouseout","this","removeEventListener","mousedown","cb","delay","setInterval","addEventListener","mouseup","call","forEach","img","setAttribute","matchMedia","query","matches","setTimeout","instances","document"],"mappings":"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"}