{"version":3,"file":"script.min.js","sources":["../../../../block-editor/blocks/card-grid/script.js"],"sourcesContent":["export function init(node, config = {}) {\n\tconfig = {\n\t\twrap: \".card-grid__items\",\n\t\tnext: \".card-grid__next\",\n\t\tprev: \".card-grid__prev\",\n\t\titems: \".card-grid__items .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\t\n\tconst allImages = node\n\t\t.querySelector(config.items)\n\t\t.querySelectorAll('[loading=\"lazy\"]');\n\tconst cardGrid = wrap.closest(config.wrap);\n\tconst isSlider = cardGrid.classList.contains(\"is-slider-mobile\");\n\n\n\tlet interval = null;\n\n\tif (items.length > 3 && isSlider) {\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))\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\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\t// the last item is in view\n\t\tif (\n\t\t\titems[items.length - 1].offsetLeft - wrap.scrollLeft < wrap.offsetWidth && \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 >= 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\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-grid\")\n).map(init);\n"],"names":["init","node","config","wrap","next","prev","items","querySelector","Array","from","querySelectorAll","allImages","cardGrid","closest","isSlider","classList","contains","interval","length","add","getCurrentScrollIndex","map","item","Math","abs","offsetLeft","scrollLeft","reduce","left","i","lefts","setScrollIndex","index","behavior","viewable","getComputedStyle","getPropertyValue","scrollTo","top","clearInterval","setState","offsetWidth","disabled","removeAttribute","scrollPrev","round","max","scrollNext","min","mouseout","this","removeEventListener","mousedown","cb","delay","setInterval","addEventListener","mouseup","window","call","forEach","img","setAttribute","matchMedia","query","matches","setTimeout","instances","document"],"mappings":"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"}