{"version":3,"file":"./block-editor/blocks/card-grid/view-script.js","mappings":"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","sources":["webpack://welocalize-theme/webpack/bootstrap","webpack://welocalize-theme/webpack/runtime/define property getters","webpack://welocalize-theme/webpack/runtime/hasOwnProperty shorthand","webpack://welocalize-theme/webpack/runtime/make namespace object","webpack://welocalize-theme/./block-editor/blocks/card-grid/view-script.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","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":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","init","node","config","arguments","length","undefined","wrap","next","prev","items","querySelector","Array","from","querySelectorAll","allImages","cardGrid","closest","isSlider","classList","contains","interval","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","forEach","img","setAttribute","matchMedia","query","matches","setTimeout","instances","document"],"sourceRoot":""}