{"version":3,"file":"2184.253a1366.js","mappings":"mvHAWA,IAAMA,EAAmB,CACrBC,KAAM,oBACNC,OAAQ,4BACRC,cAAe,oCACfC,QAAS,6BACTC,KAAM,0BACNC,eAAgB,qCAChBC,MAAO,2BACPC,SAAU,+BACVC,SAAU,2BAGRC,EAAiB,CACnBC,gBAAgB,EAChBC,cAAc,EACdC,eAAe,EACfC,aAAc,CAAC,EACfC,iBAAiB,EACjBC,UAAW,kBAAM,CAAI,EACrBC,SAAU,WAAO,GAGd,SAASC,IAA6D,IAAxDC,EAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGV,EAAgBa,EAASH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGpB,GACvDwB,EAAAA,EAAAA,IAAOD,EAAUtB,MAAM,SAAUwB,IAS9B,SAA2BA,GAAqE,IAC/FC,EADuCP,EAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGV,EAAgBa,EAASH,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGpB,EAE7E2B,EAAiB,KACjBtB,GAAOuB,EAAAA,EAAAA,IAAOL,EAAUlB,KAAMoB,GAC9BI,EAAcC,SAAS,IAAIC,IAAIC,SAASC,MAAMC,aAAaC,IAAI,UAAY,EAC3EC,EAAe,CAACP,EAAaA,GAgFjC,SAASQ,EAAKC,EAAKC,EAAQC,EAAQC,EAAYC,EAAchB,GACzDa,EAASA,GAAU,MAGnB,IAAII,EAAUL,EAEVnB,EAAQP,cACRgC,QAAQC,aAAaD,QAAQE,MAAOC,SAASC,MAAOP,GAAcH,GAItEE,EAAOS,OAAO,UAAWjB,SAASkB,UAEL,QAAzBX,EAAOY,gBACPX,EAAOS,OAAO,OAAQ,GAGtBX,EAAMc,EAAqBd,EAAKE,KAGpCa,EAAAA,EAAAA,IAAgB,UAAUzB,EAAAA,EAAAA,IAAOL,EAAUnB,QAASqB,IAEpD,IAAI6B,EAAUC,IAAKC,EAAC,CAChBjB,OAAQA,EACRD,IAAKK,EACLc,QAAOD,EAAA,CACH,OAAU,WACV,gBAAiB,YACdrC,EAAQL,eAEc,QAAzByB,EAAOY,cAA0B,CACjCX,OAAQ,IAAIkB,gBAAgBlB,IAC5B,CACAmB,KAAM,IAAID,gBAAgBlB,MA2ClC,OAvCAoB,EAAAA,EAAAA,IAAY,kBAAmBN,EAAS7B,GAExC6B,EAAQO,MAAK,SAAAC,GAAY,IAAVH,EAAIG,EAAJH,KACPA,EAAKI,UACDrB,GACqB,WAAjBA,GACAO,EAAAA,EAAAA,IAAOU,EAAKK,QAAS,CAAC,GAAGpC,EAAAA,EAAAA,IAAOL,EAAUpB,cAAesB,KAEzDwC,EAAAA,EAAAA,IAAQN,EAAKK,QAAS,CAAC,GAAGpC,EAAAA,EAAAA,IAAOL,EAAUpB,cAAesB,KAG9DyC,EAAAA,EAAAA,KAAetC,EAAAA,EAAAA,IAAOL,EAAUpB,cAAesB,GAAa0C,aAC5DC,EAAAA,EAAAA,KAAYxC,EAAAA,EAAAA,IAAOL,EAAUpB,cAAesB,GAAa0C,eAEzDvC,EAAAA,EAAAA,IAAOL,EAAUrB,OAAQuB,GAAa4C,UAAYV,EAAKK,QAEvD3D,GAAOuB,EAAAA,EAAAA,IAAOL,EAAUlB,KAAMoB,IAE9ByC,EAAAA,EAAAA,KAAetC,EAAAA,EAAAA,IAAOL,EAAUrB,OAAQuB,KACxC2C,EAAAA,EAAAA,KAAYxC,EAAAA,EAAAA,IAAOL,EAAUrB,OAAQuB,MAGzC6C,EAAAA,EAAAA,IAAa,UAAU,GAAM1C,EAAAA,EAAAA,IAAOL,EAAUnB,QAASqB,IAEnDC,IACAA,EAAI6C,aACJ7C,EAAI8C,iBAGa,WAAjB9B,EACAN,EAAa,GAAKA,EAAa,GAAK,EAEpCA,EAAa,GAAKA,EAAa,GAAK,EA4KxD,SAAoBX,EAAaW,EAAcqC,IACvC7C,EAAAA,EAAAA,IAAO,6DAA8DH,KACjEW,EAAa,GAAKqC,IAClBpB,EAAAA,EAAAA,IAAgB,UAAUzB,EAAAA,EAAAA,IAAO,6DAA8DH,KAC/F6C,EAAAA,EAAAA,IAAa,YAAclC,EAAa,GAAK,GAAIR,EAAAA,EAAAA,IAAO,6DAA8DH,MAEtH6C,EAAAA,EAAAA,IAAa,UAAU,GAAM1C,EAAAA,EAAAA,IAAO,6DAA8DH,MAItGG,EAAAA,EAAAA,IAAO,8DAA+DH,KAClEW,EAAa,GAAK,IAClBiB,EAAAA,EAAAA,IAAgB,UAAUzB,EAAAA,EAAAA,IAAO,8DAA+DH,KAChG6C,EAAAA,EAAAA,IAAa,YAAclC,EAAa,GAAK,GAAIR,EAAAA,EAAAA,IAAO,8DAA+DH,MAEvH6C,EAAAA,EAAAA,IAAa,UAAU,GAAM1C,EAAAA,EAAAA,IAAO,8DAA+DH,IAG/G,CA3LgBiD,CAAWjD,EAAaW,EAAcuB,EAAKc,YAEnD,IAEOnB,CACX,CAEA,SAASqB,EAAWtE,EAAMuE,GACtB,IAAIC,EACAC,EAWJ,YATWxD,IAARsD,GAAqBA,EAAIG,WACxBF,EAAYD,EAAIG,WACHC,aAAa,gBACtBF,EAASD,EAAUG,aAAa,eAGpCF,EAASG,EAAgB5E,GAGtB6E,EACHJ,EACAzE,EAAK8E,QAAQ5C,QAAUlC,EAAK2E,aAAa,UAGjD,CAEA,SAASE,EAAOJ,EAAQvC,EAAQsC,GAC5BC,EAASA,GAAUG,EAAgB5E,GACnCkC,EAASA,GAAUlC,EAAK8E,QAAQ5C,QAAUlC,EAAK2E,aAAa,UAGxC,IAAII,SAAQ,SAAUC,EAASC,GAC3C3D,GAAkBA,EAAe4D,OACjC5D,EAAe4D,QACf5D,EAAc,MAAO0D,GACrB1D,EAAiB,MAEjB0D,GAER,IAEcxB,MAAK,WACf,GAAiC,mBAAtB1C,EAAQH,WAA6BG,EAAQH,UAAU,CAC9DS,YAAAA,EACApB,KAAAA,IAFJ,EAOAmF,EAAAA,EAAAA,IAAQ,mBAAoB/D,GAE5BqD,EAASA,GAAUG,EAAgB5E,GACnCkC,EAASA,GAAUlC,EAAK8E,QAAQ5C,QAAUlC,EAAK2E,aAAa,UAC5D,IAAIS,EAAkBC,IAClBlD,EAAS,IAAIkB,gBAAgB+B,GAEjCtE,EAAQF,SAAS,CACb0E,QAASlE,EACTN,QAAAA,EACAyE,UAuCQC,EAlBM,CAACxF,GAAIyF,OAAAC,GAAKC,EAAAA,EAAAA,IAAUzE,EAAUjB,eAAgBmB,KAmBpEmE,EAAW,IAAIK,SACnBJ,EAAMK,KAAI,SAAA7F,GAAQ,IACwB8F,EADxBC,EAAAC,GACGZ,EAAAA,EAAAA,GAAgBpF,IAAK,IAAtC,IAAA+F,EAAAE,MAAAH,EAAAC,EAAAG,KAAAC,MAAwC,KAA/BC,EAAIN,EAAAO,MACTd,EAAS3C,OAAM0D,MAAff,EAAQG,EAAWU,GACvB,CAAC,OAAAG,GAAAR,EAAAS,EAAAD,EAAA,SAAAR,EAAAU,GAAA,CACL,IAEOlB,KA5CC,IAAItD,EAAM,IAAIP,IAAIC,SAASC,MAC3BK,EAAIJ,aAAY,OAAQ,QACxBI,EAAMc,EAAqBd,EAAKE,GAEhCJ,EAAe,CAAC,EAAG,IACnBT,EAAiBU,EAAKyC,EAAQvC,EAAQC,EAAQF,IAGzCuB,MAAK,kBAAMlC,EAAiB,IAAI,IAAC,OAC3B,SAACoF,GACCA,GAAwB,eAAfA,EAAMC,OAChBrF,EAAiB,KAEzB,GA5BJ,CAgCR,IAmBoBkE,EAChBD,CAvBA,GACJ,CAMA,SAASF,IACL,OAyBuBG,EAzBM,CAACxF,GAAIyF,OAAAC,GAAKC,EAAAA,EAAAA,IAAUzE,EAAUjB,eAAgBmB,KA0B3EwF,EAAgB,GAEpBpB,EAAMK,KAAI,SAAA7F,GAEN,IAAIkB,GAAYyE,EAAAA,EAAAA,IAAU,8CAA+C3F,GACrE6G,EAAgB,GAGhBC,EAAU9G,EAAK+G,qBAAqB,WAExC7F,EAAY,GAAHuE,OAAAC,EAAOxE,GAASwE,EAAKoB,KAEpBjB,KAAI,SAASmB,GACnBH,EAAcI,KAAKD,EAASL,KAChC,IAAG,IAEmCO,EAFnCC,EAAAnB,GAEcZ,EAAAA,EAAAA,GAAgBpF,IAAK,IAAtC,IAAAmH,EAAAlB,MAAAiB,EAAAC,EAAAjB,KAAAC,MAAwC,KAA/BC,EAAIc,EAAAb,MACTO,EAAcK,KAAKb,EACvB,CAAC,OAAAG,GAAAY,EAAAX,EAAAD,EAAA,SAAAY,EAAAV,GAAA,CAED,IAAIW,EAAgBR,EAAcf,KAAI,SAAAwB,GAAK,OAAIA,EAAM,EAAE,KACvDR,EAAanB,EAAO,IAAI4B,IAAIT,KAEdU,SAAQ,SAAUZ,GAC5B,IAAIa,EAAW,CAACb,EAAM,IAClBS,EAAcK,SAASd,GAGvBC,EAAcc,QAAO,SAAAC,GAAI,OAAIA,IAASH,CAAQ,IAF9CZ,EAAcK,KAAKO,EAI3B,GACJ,IAEOZ,EAlCX,IAA+BpB,EACvBoB,CAzBJ,CA5OA9F,EAAOqC,EAAAA,EAAAA,EAAA,GACA9C,GACAS,GAuSX,WAA+C,IACvC8G,EAAkBzE,EAAA,GADcpC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,GAGxC,GAAI6G,EAAmBnH,aACnB,IACImH,EAAmBnH,aAAeoH,KAAKC,MAAMF,EAAmBnH,aACpE,CAAE,MAAO+F,GACLoB,EAAmBnH,aAAe,CAAC,CACvC,CAOJ,OAJImH,EAAmBlH,kBACnBkH,EAAmBlH,kBAA4D,SAAvCkH,EAAmBlH,kBAAqE,IAAvCkH,EAAmBlH,kBAGzGkH,CACX,CAtTWG,EAAwBC,EAAAA,EAAAA,GAAmB,YAAa5G,KAG3D6G,WAAW,sBAAsBC,UACjC/G,EAAAA,EAAAA,IAAOD,EAAUpB,eAAe,SAAUqI,GACtC9G,EAAM,IAAI+G,EAAAA,GAAgB7G,EAAAA,EAAAA,IAAOL,EAAUpB,cAAesB,GAAc,CACpEiH,WAAW,EAEXC,eAAgB,EAChBC,YAAY,GAEpB,KAIJpH,EAAAA,EAAAA,IAAOD,EAAUlB,MAAM,SAAUA,GAC7B,IAAMwI,EAAgB,SAAAjE,GAClBA,EAAIkE,iBACJlE,EAAImE,2BACJpE,EAAWtE,EAAMuE,EACrB,EAEMoE,GAAgBC,EAAAA,EAAAA,WAAS,WAC3BtE,EAAWtE,EACf,GAAG,KAQH,OANA6I,EAAAA,EAAAA,IAAG,SAAUL,EAAexI,GAExBc,EAAQR,iBACRuI,EAAAA,EAAAA,IAAG,SAAUF,EAAe3I,GAGzB,YACH8I,EAAAA,EAAAA,IAAI,SAAUN,EAAexI,IAC7B8I,EAAAA,EAAAA,IAAI,SAAUH,EAAe3I,EACjC,CACJ,GAAGoB,IAEHD,EAAAA,EAAAA,IAAOD,EAAUf,UAAU,SAAC4I,GACxB,IAAIC,EAAwD,WAA7CD,EAAKpE,aAAa,uBAAsCnD,EAAc,EAAIA,EAAc,EAIvG,SAASyH,EAAiB1E,GACtBA,EAAIkE,iBAEJ,IAAIS,GAAcC,EAAAA,EAAAA,IAAQ,OAAQJ,GAE9BtE,EAASyE,EAActE,EAAgBsE,GAAelJ,EAAK8E,QAAQL,QAAUzE,EAAK2E,aAAa,UAC/FS,EAAkBC,IAClBlD,EAAS,IAAIkB,gBAAgB+B,GACjCjD,EAAOS,OAAO,OAAQmG,EAAKpE,aAAa,cAExC,IAAI1C,EAAM,IAAIP,IAAIC,SAASC,MAC3BK,EAAMc,EAAqBd,EAAKE,IAEhCb,EAAiBU,EAAKyC,EAAQ,MAAOtC,EAAQF,EAAK8G,EAAKpE,aAAa,uBAAwBtD,IAGvFmC,MAAK,kBAAMlC,EAAiB,IAAI,IAAC,OAC3B,SAACoF,GACEA,GAAwB,eAAfA,EAAMC,OACjBrF,EAAiB,KAEzB,GACR,CAIA,OA5BA2C,EAAAA,EAAAA,IAAa,YAAa+E,EAAUD,IA0BpCF,EAAAA,EAAAA,IAAG,QAASI,EAAkBF,GAEvB,YACHD,EAAAA,EAAAA,IAAI,QAASG,EAAkBF,EACnC,CACJ,GAAG3H,EAkKP,CA5PQgI,CACIhI,EAAW+B,EAAAA,EAAA,GACP9C,GAAmBS,GAAOqC,EAAAA,EAAA,GAC1BxD,GAAqBuB,GAEjC,GACJ,CAwPA,SAAS6B,EAAqBd,EAAKJ,GAC/BI,EAAM,IAAIP,IAAIO,EAAKN,SAAS0H,QAE5B,IAAIC,EAAoBC,MAAMC,KAAK3H,GAInC,OAHAyH,EAAkB/B,SAAQ,SAAAkC,GAAA,IAAE9C,EAAF+C,EAAAD,EAAA,GAAM,UAAMxH,EAAIJ,aAAY,OAAQ8E,EAAK,IACnE2C,EAAkB/B,SAAQ,SAAAoC,GAAA,IAAAC,EAAAF,EAAAC,EAAA,GAAEhD,EAAIiD,EAAA,GAAEvD,EAAKuD,EAAA,UAAM3H,EAAIJ,aAAae,OAAO+D,EAAMN,EAAM,IAE1EpE,CACX,CAoEA,SAAS2C,EAAgB5E,GACrB,OAAOA,EAAK8E,QAAQL,QAAUzE,EAAK2E,aAAa,WAAahD,SAASkB,QAC1E,C","sources":["webpack://projectInit/./public/static/js/scripts/infinite-grid.js"],"sourcesContent":["import {initInScope, cleanUpInScope, onFind} from \"@elements/init-modules-in-scope\";\nimport {getPrefixedDataSet} from \"@elements/data-set-utils\";\n// import {onEnterViewPort} from \"@elements/viewport-utils\";\nimport OSB_MasonryGrid from '@offensichtbar-codestock/es6-flex-masonry-grid';\nimport 'url-polyfill';\nimport 'url-search-params-polyfill'; // Edge Polyfill\nimport {debounce} from \"debounce\";\nimport formDataEntries from 'form-data-entries';\nimport {findAllIn, findIn, on, off, trigger, triggerWith, setAttribute, removeAttribute, closest, append, prepend} from \"@elements/dom-utils\";\nimport axios from \"axios\";\n\nconst defaultSelectors = {\n base: '.js-infinite-grid',\n result: '.js-infinite-grid__result',\n resultContent: '.js-infinite-grid__result-content',\n loading: '.js-infinite-grid__loading',\n form: '.js-infinite-grid__form',\n additionalForm: '.js-infinite-grid__additional-form',\n retry: '.js-infinite-grid__retry',\n loadMore: '.js-infinite-grid__load-more',\n gridItem: '.js-infinite-grid__item'\n};\n\nconst defaultOptions = {\n submitOnChange: false,\n addUrlParams: true,\n submitOnReset: false,\n fetchHeaders: {},\n allowScriptTags: false,\n validator: () => true,\n onSubmit: () => {}\n};\n\nexport function init(options = defaultOptions, selectors = defaultSelectors) {\n onFind(selectors.base, function (baseElement) {\n createInfinitGrid(\n baseElement,\n {...defaultOptions, ...options},\n {...defaultSelectors, ...selectors}\n );\n });\n}\n\nexport function createInfinitGrid(baseElement, options = defaultOptions, selectors = defaultSelectors) {\n let osb;\n let pendingRequest = null;\n let form = findIn(selectors.form, baseElement);\n let currentPage = parseInt(new URL(location.href).searchParams.get('page')) || 1;\n let visibleRange = [currentPage, currentPage];\n\n options = {\n ...defaultOptions,\n ...options,\n ...transformDataSetOptions(getPrefixedDataSet('ajax-form', baseElement))\n };\n\n if (matchMedia('(min-width: 768px)').matches) {\n onFind(selectors.resultContent, function (contentElement) {\n osb = new OSB_MasonryGrid(findIn(selectors.resultContent, baseElement), {\n animation: true,\n // animationType: 'fade',\n animationDelay: 0,\n observeDOM: true\n });\n });\n }\n\n // form\n onFind(selectors.form, function (form) {\n const submitHandler = evt => {\n evt.preventDefault();\n evt.stopImmediatePropagation(); // otherwise .on('submit.ajax-form') would be called twice\n submitForm(form, evt);\n };\n\n const changeHandler = debounce(() => {\n submitForm(form);\n }, 200);\n\n on('submit', submitHandler, form);\n\n if (options.submitOnChange) {\n on('change', changeHandler, form);\n }\n\n return () => {\n off('submit', submitHandler, form);\n off('change', changeHandler, form);\n }\n }, baseElement);\n\n onFind(selectors.loadMore, (link) => {\n let pageLink = link.getAttribute('data-load-more-type') === 'append' ? currentPage + 1 : currentPage - 1;\n // setAttribute('href', '?page=' + pageLink + '', link);\n setAttribute('data-page', pageLink, link);\n\n function linkClickHandler(evt) {\n evt.preventDefault();\n\n let closestForm = closest('form', link);\n\n let action = closestForm ? getActionByForm(closestForm) : form.dataset.action || form.getAttribute('action');\n let formDataEntries = getFormDataEntries();\n let params = new URLSearchParams(formDataEntries);\n params.append('page', link.getAttribute('data-page'));\n\n let url = new URL(location.href);\n url = addSearchParamsToUrl(url, params);\n\n pendingRequest = load(action, 'GET', params, url, link.getAttribute('data-load-more-type'), osb);\n\n pendingRequest\n .then(() => pendingRequest = null)\n .catch((error) => {\n if ((!error || error.name !== 'AbortError')) {\n pendingRequest = null;\n }\n });\n }\n\n on('click', linkClickHandler, link);\n\n return () => {\n off('click', linkClickHandler, link);\n }\n }, baseElement);\n\n let lastLoadParams = null; // for retry\n function load(url, method, params, historyUrl, loadMoreType, osb) {\n method = method || \"GET\";\n lastLoadParams = [url, method, params, historyUrl];\n\n let baseUrl = url;\n\n if (options.addUrlParams) {\n history.replaceState(history.state, document.title, historyUrl || url);\n }\n\n // add base url to params (path)\n params.append('baseUrl', location.pathname);\n\n if (method.toUpperCase() === \"GET\") {\n params.append('ajax', 1);\n // Add ajax param to differentiate between and ajax requests and page request.\n // Otherwise Chrome caches these results as normal pages and returns them from cache if the back button is pressed\n url = addSearchParamsToUrl(url, params);\n }\n\n removeAttribute('hidden', findIn(selectors.loading, baseElement));\n\n let request = axios({\n method: method,\n url: baseUrl,\n headers: {\n 'pragma': 'no-cache',\n 'cache-control': 'no-cache',\n ...options.fetchHeaders\n },\n ...(method.toUpperCase() === \"GET\" ? {\n params: new URLSearchParams(params)\n } : {\n data: new URLSearchParams(params)\n })\n });\n\n triggerWith('fetch.ajax-form', request, baseElement);\n\n request.then(({data}) => {\n if (data.success) {\n if (loadMoreType) {\n if (loadMoreType === 'append') {\n append(data.content, {}, findIn(selectors.resultContent, baseElement));\n } else {\n prepend(data.content, {}, findIn(selectors.resultContent, baseElement));\n }\n\n cleanUpInScope(findIn(selectors.resultContent, baseElement).parentNode)\n initInScope(findIn(selectors.resultContent, baseElement).parentNode)\n } else {\n findIn(selectors.result, baseElement).innerHTML = data.content;\n\n form = findIn(selectors.form, baseElement);\n\n cleanUpInScope(findIn(selectors.result, baseElement))\n initInScope(findIn(selectors.result, baseElement))\n }\n\n setAttribute('hidden', true, findIn(selectors.loading, baseElement));\n\n if (osb) {\n osb._initCards();\n osb._animateCards();\n }\n\n if (loadMoreType === 'append') {\n visibleRange[1] = visibleRange[1] + 1;\n } else {\n visibleRange[0] = visibleRange[0] - 1;\n }\n\n setButtons(baseElement, visibleRange, data.totalPages);\n }\n });\n\n return request;\n }\n\n function submitForm(form, evt) {\n let submitBtn;\n let action;\n\n if(evt !== undefined && evt.submitter){\n submitBtn = evt.submitter;\n if(submitBtn.getAttribute('formaction')){\n action = submitBtn.getAttribute('formaction');\n }\n }else{\n action = getActionByForm(form);\n }\n\n return submit(\n action,\n form.dataset.method || form.getAttribute('method'),\n submitBtn\n )\n }\n\n function submit(action, method, submitBtn) {\n action = action || getActionByForm(form);\n method = method || form.dataset.method || form.getAttribute('method');\n\n // create promise to resolve/reject in right order (important for loading-indicator with multiple submissions)\n let readyToSubmit = new Promise(function (resolve, reject) {\n if (pendingRequest && pendingRequest.abort) {\n pendingRequest.abort();\n pendingRequest.catch(resolve);\n pendingRequest = null;\n } else {\n resolve();\n }\n });\n\n readyToSubmit.then(function () {\n if (typeof options.validator === \"function\" && !options.validator({\n baseElement,\n form\n })) {\n return;\n }\n\n trigger('submit.ajax-form', baseElement);\n\n action = action || getActionByForm(form);\n method = method || form.dataset.method || form.getAttribute('method');\n let formDataEntries = getFormDataEntries();\n let params = new URLSearchParams(formDataEntries);\n\n options.onSubmit({\n element: baseElement,\n options,\n formData: getFormData()\n });\n\n let url = new URL(location.href);\n url.searchParams.delete('page');\n url = addSearchParamsToUrl(url, params);\n\n visibleRange = [1, 1];\n pendingRequest = load(action, method, params, url);\n\n pendingRequest\n .then(() => pendingRequest = null)\n .catch((error) => {\n if (!error || error.name !== 'AbortError') {\n pendingRequest = null;\n }\n });\n });\n }\n\n function getFormData() {\n return createFormData([form, ...findAllIn(selectors.additionalForm, baseElement)]);\n }\n\n function getFormDataEntries() {\n return createFormDataEntries([form, ...findAllIn(selectors.additionalForm, baseElement)]);\n }\n}\n\nfunction addSearchParamsToUrl(url, searchParams) {\n url = new URL(url, location.origin);\n\n let searchParamsArray = Array.from(searchParams);\n searchParamsArray.forEach(([name]) => url.searchParams.delete(name));\n searchParamsArray.forEach(([name, value]) => url.searchParams.append(name, value));\n\n return url;\n}\n\nfunction createFormData(forms) {\n let formData = new FormData();\n forms.map(form => {\n for (var pair of formDataEntries(form)) {\n formData.append(...pair);\n }\n });\n\n return formData;\n}\n\nfunction createFormDataEntries(forms) {\n let formDataArray = [];\n\n forms.map(form => {\n // unchecked checkboxes and radios needs to be added manually to formDataArray\n let selectors = findAllIn('input[type=\"radio\"], input[type=\"checkbox\"]', form);\n let selectorNames = [];\n\n // selects needs to be added manually to formDataArray\n let selects = form.getElementsByTagName(\"SELECT\");\n\n selectors = [...selectors, ...selects];\n\n selectors.map(function(selector) {\n selectorNames.push(selector.name);\n });\n\n for (var pair of formDataEntries(form)) {\n formDataArray.push(pair);\n }\n\n let existingNames = formDataArray.map(entry => entry[0]);\n selectorNames = [...new Set(selectorNames)];\n\n selectorNames.forEach(function (name) {\n let newEntry = [name, \"\"];\n if(!existingNames.includes(name)) {\n formDataArray.push(newEntry);\n } else {\n formDataArray.filter(item => item !== newEntry);\n }\n });\n });\n\n return formDataArray;\n}\n\nfunction transformDataSetOptions(options = {}) {\n let transformedOptions = {...options};\n\n if (transformedOptions.fetchHeaders) {\n try {\n transformedOptions.fetchHeaders = JSON.parse(transformedOptions.fetchHeaders)\n } catch (e) {\n transformedOptions.fetchHeaders = {};\n }\n }\n\n if (transformedOptions.allowScriptTags) {\n transformedOptions.allowScriptTags = !!(transformedOptions.allowScriptTags === \"true\" || transformedOptions.allowScriptTags === true)\n }\n\n return transformedOptions;\n}\n\nfunction getActionByForm(form) {\n return form.dataset.action || form.getAttribute('action') || location.pathname\n}\n\nfunction setButtons(baseElement, visibleRange, totalPages) {\n if (findIn('.js-infinite-grid__load-more[data-load-more-type=\"append\"]', baseElement)) {\n if (visibleRange[1] < totalPages) {\n removeAttribute('hidden', findIn('.js-infinite-grid__load-more[data-load-more-type=\"append\"]', baseElement));\n setAttribute('data-page', (visibleRange[1] + 1), findIn('.js-infinite-grid__load-more[data-load-more-type=\"append\"]', baseElement));\n } else {\n setAttribute('hidden', true, findIn('.js-infinite-grid__load-more[data-load-more-type=\"append\"]', baseElement));\n }\n }\n\n if (findIn('.js-infinite-grid__load-more[data-load-more-type=\"prepend\"]', baseElement)) {\n if (visibleRange[0] > 1) {\n removeAttribute('hidden', findIn('.js-infinite-grid__load-more[data-load-more-type=\"prepend\"]', baseElement));\n setAttribute('data-page', (visibleRange[0] - 1), findIn('.js-infinite-grid__load-more[data-load-more-type=\"prepend\"]', baseElement));\n } else {\n setAttribute('hidden', true, findIn('.js-infinite-grid__load-more[data-load-more-type=\"prepend\"]', baseElement));\n }\n }\n}"],"names":["defaultSelectors","base","result","resultContent","loading","form","additionalForm","retry","loadMore","gridItem","defaultOptions","submitOnChange","addUrlParams","submitOnReset","fetchHeaders","allowScriptTags","validator","onSubmit","init","options","arguments","length","undefined","selectors","onFind","baseElement","osb","pendingRequest","findIn","currentPage","parseInt","URL","location","href","searchParams","get","visibleRange","load","url","method","params","historyUrl","loadMoreType","baseUrl","history","replaceState","state","document","title","append","pathname","toUpperCase","addSearchParamsToUrl","removeAttribute","request","axios","_objectSpread","headers","URLSearchParams","data","triggerWith","then","_ref","success","content","prepend","cleanUpInScope","parentNode","initInScope","innerHTML","setAttribute","_initCards","_animateCards","totalPages","setButtons","submitForm","evt","submitBtn","action","submitter","getAttribute","getActionByForm","submit","dataset","Promise","resolve","reject","abort","trigger","formDataEntries","getFormDataEntries","element","formData","forms","concat","_toConsumableArray","findAllIn","FormData","map","_step","_iterator","_createForOfIteratorHelper","s","n","done","pair","value","apply","err","e","f","error","name","formDataArray","selectorNames","selects","getElementsByTagName","selector","push","_step2","_iterator2","existingNames","entry","Set","forEach","newEntry","includes","filter","item","transformedOptions","JSON","parse","transformDataSetOptions","getPrefixedDataSet","matchMedia","matches","contentElement","OSB_MasonryGrid","animation","animationDelay","observeDOM","submitHandler","preventDefault","stopImmediatePropagation","changeHandler","debounce","on","off","link","pageLink","linkClickHandler","closestForm","closest","createInfinitGrid","origin","searchParamsArray","Array","from","_ref2","_slicedToArray","_ref4","_ref5"],"sourceRoot":""}