{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/common/ProgressBar.vue?df96","webpack:///./src/App.vue?158f","webpack:///./src/store/modules/filter/mutation-types.ts","webpack:///./src/store/modules/filter/action-types.ts","webpack:///./src/store/modules/product/action-types.ts","webpack:///./src/services/CatalogService.ts","webpack:///./src/store/modules/filter/state.ts","webpack:///./src/store/modules/filter/actions.ts","webpack:///./src/store/modules/product/mutation-types.ts","webpack:///./src/store/modules/filter/getters.ts","webpack:///./src/store/modules/filter/mutations.ts","webpack:///./src/store/modules/filter/index.ts","webpack:///./src/store/modules/product/state.ts","webpack:///./src/store/modules/product/actions.ts","webpack:///./src/store/modules/product/getters.ts","webpack:///./src/store/modules/product/mutations.ts","webpack:///./src/store/modules/product/index.ts","webpack:///./src/store/index.ts","webpack:///./src/components/filter/FilterHolder.vue?a1c8","webpack:///./src/components/filter/FilterSection.vue?40e9","webpack:///./src/components/filter/FilterSlide.vue?b862","webpack:///./src/components/filter/FilterSlide.vue","webpack:///./src/components/filter/FilterSlide.vue?0905","webpack:///./src/components/filter/FilterCheck.vue?688f","webpack:///./src/components/filter/FilterCheck.vue","webpack:///./src/components/filter/FilterCheck.vue?ba7f","webpack:///./src/components/filter/FilterSection.vue","webpack:///./src/components/filter/FilterSection.vue?9d33","webpack:///./src/components/filter/FilterHolder.vue","webpack:///./src/components/filter/FilterHolder.vue?22a1","webpack:///./src/components/filter/FilterSelection.vue?babb","webpack:///./src/components/filter/FilterSelection.vue","webpack:///./src/components/filter/FilterSelection.vue?bdb8","webpack:///./src/components/controls/CategorySort.vue?ea64","webpack:///./src/components/controls/CategorySort.vue","webpack:///./src/components/controls/CategorySort.vue?37c2","webpack:///./src/components/products/ProductList.vue?c984","webpack:///./src/components/products/ProductItem.vue?26dc","webpack:///./src/components/products/ProductItem.vue","webpack:///./src/components/products/ProductItem.vue?5e66","webpack:///./src/components/common/ProgressBar.vue?3c13","webpack:///./src/components/common/ProgressBar.vue?3c01","webpack:///./src/components/common/ProgressBar.vue?9f82","webpack:///./src/components/products/ProductList.vue","webpack:///./src/components/products/ProductList.vue?8aeb","webpack:///./src/components/controls/Pager.vue?3494","webpack:///./src/components/controls/Pager.vue","webpack:///./src/components/controls/Pager.vue?ab46","webpack:///./src/App.vue","webpack:///./src/App.vue?97f5","webpack:///./src/main.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_hoisted_1","style","ref","_hoisted_2","_hoisted_3","class","_hoisted_4","render","_ctx","_cache","$props","$setup","$data","$options","_component_FilterHolder","_component_FilterSelection","_component_CategorySort","_component_ProductList","_component_Pager","isLoading","FilterMutationTypes","FilterActionTypes","ProductActionTypes","devMode","apiClient","a","baseURL","location","origin","withCredentials","headers","Accept","prepareFilterData","pageSrc","pathname","search","then","response","getFilterData","url","queryParams","params","URLSearchParams","append","getProductList","productsTotal","totalProductCount","products","pager","items","nextPageUrl","writeHistory","filteredParams","delete","toString","history","pushState","filterTitle","cancelFilterLabel","sections","sort","resultsTotalCount","resultsTotalLabel","showMoreLabel","showLessLabel","ProductMutationTypes","actions","SET_FILTER","commit","SET_DATA","SORT_PRODUCTS","sortType","dispatch","SET_SORT","PROCESS_FILTER","CHANGE_PARAMETER","controlData","getters","control","getFilterControl","CHANGE_SLIDE_VALUE","slideData","slide","getFilterSlide","type","nameMin","minValue","nameMax","maxValue","CLEAR_FILTRATION","CLEAR_CHECKS","CLEAR_SLIDES","getFilterSelection","getChangedSlides","REFETCH_FILTER","getBaseUrl","getUrlQuery","options","SET_LOADING","CatalogService","SET_PRODUCTS","catch","error","console","log","finally","getFilterTitle","state","getCancelFilterLabel","getSort","getResultsCount","getResultsTotalLabel","controlIdentifier","forEach","filterSection","undefined","find","filterControl","slideIdentifier","slideSection","section","getSlideMinMax","controlsArray","filter","checked","slidesArray","minParam","maxParam","indexOf","substring","selected","slides","Array","isArray","getShowLessLabel","getShowMoreLabel","mutations","filters","filterType","groups","filterGroup","values","available","sortBtn","startsWith","totalProductLabel","selectedChecks","changedSlides","max","nextPageLabel","backToTopLabel","SET_PAGER","SET_LOADING_STATUS","LOAD_PRODUCTS","appendProducts","APPEND_PRODUCTS","Component","initComponents","getPager","getNextPageUrl","getNextPageLabel","getBackToTopLabel","newProducts","productData","product","useStore","width","height","xmlns","viewBox","fill","_component_FilterSection","onClick","$event","clearFilter","cancelLabel","this","title","index","controlType","hidden","allVisible","visibleCount","getHiddenCount","toggleVisibility","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","step","rangeStep","min","getMinimum","getMaximum","onChange","changeValue","onInput","handleSlide","onMouseup","number","rangeIndicatorStyle","handleInputChange","lazy","unit","props","required","setup","Math","store","slideValue","e","input","target","hasAttribute","valueAsNumber","parseInt","subscribe","mutation","setTimeout","computed","diff","abs","left","__exports__","count","handleChange","label","Boolean","default","methods","components","FilterSlide","FilterCheck","check","FilterSection","toLocaleString","clearSelected","sortProduct","productCount","productTotalLabel","_component_ProgressBar","_component_ProductItem","productItem","id","source","html","innerHTML","processedSource","String","div","document","createElement","childNodes","node","nodeType","Node","TEXT_NODE","parentNode","removeChild","firstChild","replaceWith","role","ProductItem","ProgressBar","overflow","preserveAspectRatio","scrollTop","loadMore","pagerBtn","text","changePage","href","icon","scrollTo","top","behavior","loadProducts","FilterHolder","FilterSelection","CategorySort","ProductList","Pager","root","preloadedProducts","preloadedProductsForVue","App","use","mount"],"mappings":"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","file":"js/app.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ProgressBar.vue?vue&type=style&index=0&id=c8fbfd5e&lang=scss&scoped=true\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = {\n style: {\"display\":\"contents\"},\n ref: \"root\"\n}\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = {\n key: 1,\n class: \"ProductCategory-content\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"div\", { \"data-slot\": \"recommended-list\" }, null, -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FilterHolder = _resolveComponent(\"FilterHolder\")!\n const _component_FilterSelection = _resolveComponent(\"FilterSelection\")!\n const _component_CategorySort = _resolveComponent(\"CategorySort\")!\n const _component_ProductList = _resolveComponent(\"ProductList\")!\n const _component_Pager = _resolveComponent(\"Pager\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_FilterHolder),\n (_ctx.isLoading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, \"Načítáme produkty...\"))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _hoisted_4,\n _createVNode(_component_FilterSelection),\n _createVNode(_component_CategorySort),\n _createVNode(_component_ProductList),\n _createVNode(_component_Pager)\n ]))\n ], 512))\n}","export enum FilterMutationTypes {\r\n SET_DATA = 'SET_DATA',\r\n SET_SORT = 'SET_SORT',\r\n CHANGE_PARAMETER = 'CHANGE_PARAMETER',\r\n CHANGE_SLIDE_VALUE = 'CHANGE_SLIDE_VALUE',\r\n CLEAR_CHECKS = 'CLEAR_CHECKS',\r\n CLEAR_SLIDES = 'CLEAR_SLIDES'\r\n}","export enum FilterActionTypes {\r\n SET_FILTER = 'SET_FILTER',\r\n SORT_PRODUCTS = 'SORT_PRODUCTS',\r\n PROCESS_FILTER = 'PROCESS_FILTER',\r\n CHANGE_PARAMETER = 'CHANGE_PARAMETER',\r\n CHANGE_SLIDE_VALUE = 'CHANGE_SLIDE_VALUE',\r\n CLEAR_FILTRATION = 'CLEAR_FILTRATION',\r\n REFETCH_FILTER = 'REFETCH_FILTER'\r\n}","export enum ProductActionTypes {\r\n SET_PRODUCTS = 'SET_PRODUCTS',\r\n SET_LOADING = 'SET_LOADING',\r\n LOAD_PRODUCTS = 'LOAD_PRODUCTS',\r\n}","import axios, {AxiosRequestConfig, AxiosResponse} from 'axios'\r\nimport {FilterData, ProductData} from \"@/types\";\r\n\r\nconst devMode = process.env.NODE_ENV !== 'production';\r\nconst apiClient = axios.create({\r\n baseURL: devMode ? 'http://clevero.dev.poski.loc' : window.location.origin,\r\n withCredentials: false,\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json'\r\n }\r\n})\r\n\r\nexport default {\r\n prepareFilterData(): Promise {\r\n const pageSrc = window.location.pathname + window.location.search + (window.location.search === \"\" ? \"?\" : \"&\") + \"renderfilter=json\";\r\n return apiClient.get(devMode ? '/eshop/clevero-10003/?renderfilter=json' : pageSrc)\r\n .then(response => {\r\n return response.data as FilterData;\r\n });\r\n },\r\n getFilterData(url: string, queryParams?: URLSearchParams): Promise {\r\n const params = queryParams ?? new URLSearchParams();\r\n params?.append('renderfilter', 'json');\r\n\r\n return apiClient.get(url, { params: params })\r\n .then(response => {\r\n return response.data as FilterData;\r\n });\r\n },\r\n // TODO: volat pouze json s produkty (optimalizace ???)\r\n getProductList(url: string, queryParams?: URLSearchParams | Record): Promise {\r\n const params = queryParams ?? new URLSearchParams();\r\n params?.append('renderfilter', 'json');\r\n\r\n return apiClient.get(url, { params: params })\r\n .then(response => {\r\n const result = response.data as FilterData;\r\n return {\r\n productsTotal: result.totalProductCount,\r\n products: result.products,\r\n pager: result.pager.items,\r\n nextPageUrl: result.nextPageUrl\r\n } as ProductData;\r\n });\r\n },\r\n writeHistory(url: string, params?: URLSearchParams) {\r\n let filteredParams = '';\r\n if (params && params instanceof URLSearchParams) {\r\n params.delete('renderfilter');\r\n filteredParams = '?' + params.toString();\r\n }\r\n\r\n history.pushState(null, '', url + filteredParams);\r\n }\r\n}","import { FilterSection, FilterSort } from '@/types';\r\n\r\nexport type State = {\r\n filterTitle: string;\r\n cancelFilterLabel: string;\r\n sections: FilterSection[];\r\n sort: FilterSort | null;\r\n url: string;\r\n resultsTotalCount: number;\r\n resultsTotalLabel: string;\r\n showMoreLabel: string;\r\n showLessLabel: string;\r\n}\r\n\r\nexport const state: State = {\r\n filterTitle: \"\",\r\n cancelFilterLabel: \"\",\r\n sections: [],\r\n sort: null,\r\n url: \"\",\r\n resultsTotalCount: 0,\r\n resultsTotalLabel: \"\",\r\n showMoreLabel: \"\",\r\n showLessLabel: \"\"\r\n};\r\n","import { ActionTree, ActionContext } from 'vuex';\r\nimport CatalogService from \"@/services/CatalogService\";\r\n\r\nimport { RootState } from '@/store';\r\nimport { State } from './state';\r\nimport { Mutations } from './mutations';\r\nimport { FilterMutationTypes } from './mutation-types';\r\nimport { FilterActionTypes } from './action-types';\r\nimport { ProductActionTypes } from './../product/action-types';\r\n\r\nimport {\r\n FilterControlIdentifier,\r\n FilterData,\r\n FilterSlideData,\r\n FilterSlideIdentifier,\r\n ProductsLoadOptions\r\n} from \"@/types\";\r\n\r\ntype AugmentedActionContext = {\r\n commit(\r\n key: K,\r\n payload?: Parameters[1],\r\n ): ReturnType;\r\n} & Omit, 'commit'>\r\n\r\nexport interface Actions {\r\n [FilterActionTypes.SET_FILTER](\r\n { commit }: AugmentedActionContext,\r\n data: FilterData\r\n ): void;\r\n\r\n [FilterActionTypes.SORT_PRODUCTS](\r\n { commit }: AugmentedActionContext,\r\n sortType: string\r\n ): void;\r\n\r\n [FilterActionTypes.CHANGE_PARAMETER](\r\n { commit }: AugmentedActionContext,\r\n controlData?: FilterControlIdentifier | null\r\n ): void;\r\n\r\n [FilterActionTypes.CHANGE_SLIDE_VALUE](\r\n { commit }: AugmentedActionContext,\r\n slideValue: FilterSlideIdentifier | null\r\n ): void;\r\n\r\n [FilterActionTypes.CLEAR_FILTRATION](\r\n { commit }: AugmentedActionContext,\r\n controlData?: FilterControlIdentifier | FilterSlideIdentifier | null\r\n ): void;\r\n\r\n [FilterActionTypes.PROCESS_FILTER](\r\n { dispatch }: AugmentedActionContext\r\n ): void;\r\n\r\n [FilterActionTypes.REFETCH_FILTER](\r\n {commit}: AugmentedActionContext,\r\n options: ProductsLoadOptions\r\n ): Promise;\r\n}\r\n\r\nexport const actions: ActionTree & Actions = {\r\n [FilterActionTypes.SET_FILTER]({ commit }, data: FilterData) {\r\n commit(FilterMutationTypes.SET_DATA, data);\r\n },\r\n [FilterActionTypes.SORT_PRODUCTS]({commit, dispatch}, sortType: string) {\r\n commit(FilterMutationTypes.SET_SORT, sortType);\r\n dispatch(FilterActionTypes.PROCESS_FILTER);\r\n },\r\n [FilterActionTypes.CHANGE_PARAMETER]({commit, dispatch, getters}, controlData: FilterControlIdentifier) {\r\n const control = getters.getFilterControl(controlData);\r\n if (control) {\r\n commit(FilterMutationTypes.CHANGE_PARAMETER, control);\r\n dispatch(FilterActionTypes.PROCESS_FILTER)\r\n }\r\n },\r\n [FilterActionTypes.CHANGE_SLIDE_VALUE]({commit, dispatch, getters}, slideData: FilterSlideIdentifier) {\r\n const slide: FilterSlideData | undefined = getters.getFilterSlide(slideData);\r\n if (slide && ((slideData.type === slide.nameMin && slideData.value !== slide.minValue)\r\n || (slideData.type === slide.nameMax && slideData.value !== slide.maxValue))) {\r\n commit(FilterMutationTypes.CHANGE_SLIDE_VALUE, {...slideData, control: slide});\r\n dispatch(FilterActionTypes.PROCESS_FILTER);\r\n }\r\n },\r\n [FilterActionTypes.CLEAR_FILTRATION]({commit, dispatch, getters}, controlData: FilterControlIdentifier | FilterSlideIdentifier) {\r\n if (!controlData) {\r\n commit(FilterMutationTypes.CLEAR_CHECKS, getters.getFilterSelection);\r\n commit(FilterMutationTypes.CLEAR_SLIDES, getters.getChangedSlides);\r\n } else if (Object.prototype.hasOwnProperty.call(controlData, 'name')) {\r\n commit(FilterMutationTypes.CLEAR_CHECKS, [getters.getFilterControl(controlData)]);\r\n } else if (Object.prototype.hasOwnProperty.call(controlData, 'type')) {\r\n commit(FilterMutationTypes.CLEAR_SLIDES, [getters.getFilterSlide(controlData)]);\r\n }\r\n dispatch(FilterActionTypes.PROCESS_FILTER);\r\n },\r\n [FilterActionTypes.PROCESS_FILTER]({dispatch, getters}) {\r\n dispatch(FilterActionTypes.REFETCH_FILTER, {\r\n url: getters.getBaseUrl,\r\n queryParams: getters.getUrlQuery\r\n });\r\n },\r\n async [FilterActionTypes.REFETCH_FILTER]({commit, dispatch}, options: ProductsLoadOptions) {\r\n dispatch(ProductActionTypes.SET_LOADING);\r\n return CatalogService.getFilterData(options.url, options.queryParams)\r\n .then((response: FilterData) => {\r\n dispatch(FilterActionTypes.SET_FILTER, response);\r\n dispatch(ProductActionTypes.SET_PRODUCTS, response);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n })\r\n .finally(() => {\r\n dispatch(ProductActionTypes.SET_LOADING);\r\n CatalogService.writeHistory(options.url, options.queryParams);\r\n })\r\n },\r\n};","export enum ProductMutationTypes {\r\n SET_LOADING_STATUS = 'SET_LOADING_STATUS',\r\n SET_PRODUCTS = 'SET_PRODUCTS',\r\n APPEND_PRODUCTS = 'APPEND_PRODUCTS',\r\n SET_PAGER = 'SET_PAGER',\r\n SET_SORT = 'SET_SORT'\r\n}","import { GetterTree } from 'vuex';\r\n\r\nimport { RootState } from '@/store';\r\nimport { State } from './state';\r\nimport {\r\n FilterCheckData,\r\n FilterControlIdentifier,\r\n FilterSection,\r\n FilterSectionCheck, FilterSectionSlide,\r\n FilterSlideData, FilterSlideIdentifier, FilterSlideRange,\r\n FilterSort\r\n} from \"@/types\";\r\n\r\nexport type Getters = {\r\n getFilterTitle(state: State): string;\r\n getCancelFilterLabel(state: State): string;\r\n getSort(state: State): FilterSort | null;\r\n getResultsCount(state: State): number;\r\n getResultsTotalLabel(state: State): string;\r\n getFilterControl(state: State): (controlIdentifier: FilterControlIdentifier) => FilterCheckData | undefined;\r\n getFilterSlide(state: State): (slideIdentifier: FilterSlideIdentifier) => FilterSlideData | undefined;\r\n getSlideMinMax(state: State): (slideData: FilterSlideData) => number;\r\n getFilterSelection(state: State): FilterCheckData[] | [];\r\n getChangedSlides(state: State): FilterSlideData[] | [];\r\n getBaseUrl(state: State): string;\r\n getUrlQuery(state: State, getters: Getters): URLSearchParams;\r\n getShowLessLabel(state: State): string;\r\n getShowMoreLabel(state: State): string;\r\n}\r\n\r\nexport const getters: GetterTree & Getters = {\r\n getFilterTitle: state => state.filterTitle,\r\n getCancelFilterLabel: state => state.cancelFilterLabel,\r\n getSort: state => state.sort,\r\n getResultsCount: state => state.resultsTotalCount,\r\n getResultsTotalLabel: state => state.resultsTotalLabel,\r\n getFilterControl: (state) => (controlIdentifier: FilterControlIdentifier) => {\r\n let control: FilterCheckData | undefined;\r\n state.sections.forEach((filterSection: FilterSection) => {\r\n if (control === undefined && filterSection.type === \"check\") {\r\n control = filterSection.data.find((filterControl: FilterCheckData) => {\r\n return controlIdentifier.name === filterControl.name && (controlIdentifier.value ? controlIdentifier.value === filterControl.value : true)\r\n });\r\n }\r\n });\r\n\r\n return control;\r\n },\r\n getFilterSlide: (state) => (slideIdentifier: FilterSlideIdentifier) => {\r\n const slideSection = state.sections.find((section: FilterSection) => section.type === \"slide\");\r\n if (slideSection?.type === \"slide\") {\r\n return slideSection.data.find(slide => slide.nameMin === slideIdentifier.type || slide.nameMax === slideIdentifier.type);\r\n }\r\n\r\n return undefined;\r\n },\r\n getSlideMinMax: (state) => (slideData: FilterSlideData) => {\r\n return slideData.minValue\r\n },\r\n getFilterSelection: (state) => {\r\n let controlsArray: FilterCheckData[] | [] = [];\r\n state.sections.forEach((filterSection: FilterSection) => {\r\n if (filterSection.type === \"check\") {\r\n controlsArray = [\r\n ...controlsArray,\r\n ...filterSection.data.filter((filterControl: FilterCheckData) => filterControl.checked)\r\n ];\r\n }\r\n });\r\n\r\n return controlsArray;\r\n },\r\n getChangedSlides: (state) => {\r\n let slidesArray: FilterSlideData[] | [] = [];\r\n state.sections.forEach((filterSection: FilterSection) => {\r\n if (filterSection.type === \"slide\") {\r\n slidesArray = [\r\n ...slidesArray,\r\n ...filterSection.data.filter((slide: FilterSlideData) => slide.minParam || slide.maxParam)\r\n ];\r\n }\r\n });\r\n\r\n return slidesArray;\r\n },\r\n getBaseUrl: (state) => {\r\n const url = state.url\r\n return url.indexOf(\"?\") > 0 ? url.substring(0, url.indexOf('?')) : url;\r\n },\r\n getUrlQuery: (state, getters) => {\r\n const queryParams = new URLSearchParams({});\r\n\r\n if (state.sort) {\r\n queryParams.append(state.sort.name, state.sort.selected);\r\n }\r\n\r\n const slides = getters.getChangedSlides;\r\n Array.isArray(slides) && slides.forEach((slide: FilterSlideData) => {\r\n queryParams.append(slide.nameMin, slide.minParam.toString());\r\n queryParams.append(slide.nameMax, slide.maxParam.toString());\r\n });\r\n\r\n const checked = getters.getFilterSelection;\r\n Array.isArray(checked) && checked.forEach((control: FilterCheckData) => {\r\n queryParams.append(control.name, control.value);\r\n });\r\n\r\n return queryParams;\r\n },\r\n getShowLessLabel: state => state.showLessLabel,\r\n getShowMoreLabel: state => state.showMoreLabel\r\n};\r\n","import { MutationTree } from \"vuex\";\r\n\r\nimport { State } from \"./state\";\r\nimport { FilterMutationTypes as MutationTypes } from \"./mutation-types\";\r\nimport {FilterCheckData, FilterData, FilterSlideData, FilterSlideIdentifier} from \"@/types\";\r\n\r\nexport type Mutations = {\r\n [MutationTypes.SET_DATA](state: S, payload: FilterData): void;\r\n [MutationTypes.SET_SORT](state: S, payload: string): void;\r\n [MutationTypes.CHANGE_PARAMETER](state: S, payload: FilterCheckData): void;\r\n [MutationTypes.CHANGE_SLIDE_VALUE](state: S, payload: FilterSlideIdentifier): void;\r\n [MutationTypes.CLEAR_CHECKS](state: S, payload: FilterCheckData[] | []): void;\r\n [MutationTypes.CLEAR_SLIDES](state: S, payload: FilterSlideData[] | []): void;\r\n};\r\n\r\nexport const mutations: MutationTree & Mutations = {\r\n [MutationTypes.SET_DATA](state: State, data: FilterData) {\r\n state.filterTitle = data.filterTitle;\r\n state.cancelFilterLabel = data.cancelFilterLabel;\r\n\r\n state.sections = [];\r\n data.filters?.forEach((filterType) => {\r\n filterType.data.groups.length &&\r\n filterType.data.groups.forEach((filterGroup) => {\r\n if (!Array.isArray(filterGroup.data) && filterGroup.type === \"check\") {\r\n filterGroup.data = Object.values(filterGroup.data);\r\n }\r\n state.sections = [...state.sections, filterGroup];\r\n });\r\n });\r\n\r\n state.sort = data.sort ? {\r\n ...data.sort,\r\n available: data.sort.available.filter((sortBtn) => !sortBtn.value.startsWith(\"n\")) } : null;\r\n\r\n state.resultsTotalCount = data.totalProductCount;\r\n state.resultsTotalLabel = data.totalProductLabel;\r\n state.url = data.url;\r\n\r\n state.showLessLabel = data.showLessLabel;\r\n state.showMoreLabel = data.showMoreLabel;\r\n },\r\n [MutationTypes.SET_SORT](state: State, sortType: string) {\r\n if (state.sort) {\r\n state.sort.selected = sortType;\r\n }\r\n },\r\n [MutationTypes.CHANGE_PARAMETER](state: State, control: FilterCheckData) {\r\n if (control && Object.hasOwnProperty.call(control, \"checked\")) {\r\n control.checked = !control.checked;\r\n }\r\n },\r\n [MutationTypes.CHANGE_SLIDE_VALUE](state: State, slideData: FilterSlideIdentifier) {\r\n const slide = slideData.control;\r\n if (slide?.nameMin === slideData.type && slideData.value !== undefined) {\r\n slide.minValue = slide.minParam = slideData.value;\r\n } else if (slide?.nameMax === slideData.type && slideData.value !== undefined) {\r\n slide.maxValue = slide.maxParam = slideData.value;\r\n }\r\n },\r\n [MutationTypes.CLEAR_CHECKS](state: State, selectedChecks: FilterCheckData[] | []) {\r\n selectedChecks.forEach((control) => {\r\n if (control && Object.hasOwnProperty.call(control, \"checked\")) {\r\n control.checked = false\r\n }\r\n });\r\n },\r\n [MutationTypes.CLEAR_SLIDES](state: State, changedSlides: FilterSlideData[] | []) {\r\n changedSlides.forEach((slide) => {\r\n slide.minValue = slide.minParam = slide.maxParam = 0;\r\n slide.maxValue = slide.max;\r\n });\r\n },\r\n};","import {\r\n Store as VuexStore,\r\n CommitOptions,\r\n DispatchOptions,\r\n Module,\r\n} from 'vuex';\r\n\r\nimport {RootState} from \"@/store\";\r\n\r\nimport { state } from \"./state\";\r\nimport { actions, Actions } from \"./actions\";\r\nimport { getters, Getters } from './getters';\r\nimport { mutations, Mutations } from './mutations';\r\n\r\nimport type { State } from './state';\r\nexport { State };\r\n\r\nexport type FilterStore = Omit, 'getters' | 'commit' | 'dispatch'>\r\n& {\r\n commit[1]>(\r\n key: K,\r\n payload: P,\r\n options?: CommitOptions\r\n ): ReturnType;\r\n} & {\r\n dispatch(\r\n key: K,\r\n payload?: Parameters[1],\r\n options?: DispatchOptions\r\n ): Promise>;\r\n} & {\r\n getters: {\r\n [K in keyof Getters]: ReturnType\r\n };\r\n};\r\n\r\nexport const store: Module = {\r\n state,\r\n mutations,\r\n actions,\r\n getters,\r\n};\r\n","import { Product, PagerItem } from '@/types';\r\n\r\nexport type State = {\r\n isLoading: boolean;\r\n items: Product[] | [];\r\n pager: PagerItem[];\r\n nextPageUrl: string | null;\r\n nextPageLabel: string;\r\n backToTopLabel: string;\r\n}\r\n\r\nexport const state: State = {\r\n isLoading: false,\r\n items: [],\r\n pager: [],\r\n nextPageUrl: null,\r\n nextPageLabel: \"\",\r\n backToTopLabel: \"\"\r\n};\r\n","import {ActionTree, ActionContext} from 'vuex';\r\nimport CatalogService from \"@/services/CatalogService\";\r\n\r\nimport {RootState} from '@/store';\r\n\r\nimport {State} from './state';\r\nimport {Mutations} from './mutations';\r\nimport {ProductMutationTypes} from './mutation-types';\r\nimport {ProductActionTypes} from './action-types';\r\n\r\nimport {FilterData, ProductData, ProductsLoadOptions} from \"@/types\";\r\n\r\ntype AugmentedActionContext = {\r\n commit(\r\n key: K,\r\n payload?: Parameters[1],\r\n ): ReturnType;\r\n} & Omit, 'commit'>\r\n\r\nexport interface Actions {\r\n [ProductActionTypes.SET_PRODUCTS](\r\n {commit}: AugmentedActionContext,\r\n data: FilterData\r\n ): void;\r\n\r\n [ProductActionTypes.SET_LOADING](\r\n {commit}: AugmentedActionContext,\r\n ): void;\r\n\r\n [ProductActionTypes.LOAD_PRODUCTS](\r\n {commit}: AugmentedActionContext,\r\n options: ProductsLoadOptions\r\n ): Promise;\r\n}\r\n\r\nexport const actions: ActionTree & Actions = {\r\n [ProductActionTypes.SET_PRODUCTS]({commit}, data: FilterData) {\r\n commit(ProductMutationTypes.SET_PRODUCTS, data.products);\r\n commit(ProductMutationTypes.SET_PAGER, {\r\n pager: data.pager.items,\r\n nextPageUrl: data.nextPageUrl,\r\n nextPageLabel: data.nextPageLabel,\r\n backToTopLabel: data.backToTopLabel\r\n });\r\n },\r\n [ProductActionTypes.SET_LOADING]({commit}) {\r\n commit(ProductMutationTypes.SET_LOADING_STATUS);\r\n },\r\n async [ProductActionTypes.LOAD_PRODUCTS]({commit}, options: ProductsLoadOptions) {\r\n commit(ProductMutationTypes.SET_LOADING_STATUS);\r\n return CatalogService.getProductList(options.url, options.queryParams)\r\n .then((response: ProductData) => {\r\n console.log(response);\r\n commit(ProductMutationTypes.SET_PAGER, response);\r\n commit(options.appendProducts ? ProductMutationTypes.APPEND_PRODUCTS : ProductMutationTypes.SET_PRODUCTS, response.products);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n })\r\n .finally(() => {\r\n commit(ProductMutationTypes.SET_LOADING_STATUS);\r\n // @ts-ignore\r\n Component.initComponents(); // TODO: jak naobcházet TS ???\r\n CatalogService.writeHistory(options.url, options.queryParams);\r\n })\r\n },\r\n};","import { GetterTree } from 'vuex';\r\n\r\nimport { RootState } from '@/store';\r\nimport { State } from './state';\r\nimport { PagerItem } from \"@/types\";\r\n\r\nexport type Getters = {\r\n getPager(state: State): PagerItem[] | [];\r\n getNextPageUrl(state: State): string | null;\r\n getNextPageLabel(state: State): string;\r\n getBackToTopLabel(state: State): string;\r\n}\r\n\r\nexport const getters: GetterTree & Getters = {\r\n getPager: state => state.pager,\r\n getNextPageUrl: state => state.nextPageUrl,\r\n getNextPageLabel: state => state.nextPageLabel,\r\n getBackToTopLabel: state => state.backToTopLabel\r\n};\r\n","import { MutationTree } from 'vuex';\r\n\r\nimport type {Product, PagerData, ProductData} from '@/types';\r\n\r\nimport { State } from './state';\r\nimport { ProductMutationTypes as MutationTypes } from './mutation-types';\r\n\r\nexport type Mutations = {\r\n [MutationTypes.SET_LOADING_STATUS](state: S): void;\r\n [MutationTypes.SET_PRODUCTS](state: S, payload: Product[]): void;\r\n [MutationTypes.APPEND_PRODUCTS](state: S, payload: Product[]): void;\r\n [MutationTypes.SET_PAGER](state: S, payload: PagerData): void;\r\n}\r\n\r\nexport const mutations: MutationTree & Mutations = {\r\n [MutationTypes.SET_LOADING_STATUS](state: State) {\r\n state.isLoading = !state.isLoading;\r\n },\r\n [MutationTypes.SET_PRODUCTS](state: State, newProducts: Product[]) {\r\n state.items = newProducts;\r\n },\r\n [MutationTypes.APPEND_PRODUCTS](state: State, newProducts: Product[]) {\r\n state.items = [...state.items, ...newProducts];\r\n },\r\n [MutationTypes.SET_PAGER](state: State, productData: PagerData) {\r\n state.pager = productData.pager;\r\n state.nextPageUrl = productData.nextPageUrl;\r\n if (productData.nextPageLabel) state.nextPageLabel = productData.nextPageLabel;\r\n if (productData.backToTopLabel) state.backToTopLabel = productData.backToTopLabel;\r\n }\r\n};","import {\r\n Store as VuexStore,\r\n DispatchOptions,\r\n CommitOptions,\r\n Module,\r\n} from 'vuex';\r\n\r\nimport { RootState } from '@/store';\r\n\r\nimport { state } from './state';\r\nimport { actions, Actions } from './actions';\r\nimport { getters, Getters } from './getters';\r\nimport { mutations, Mutations } from './mutations';\r\n\r\nimport type { State } from './state';\r\nexport { State };\r\n\r\nexport type ProductStore = Omit, 'commit' | 'dispatch'>\r\n& {\r\n commit[1]>(\r\n key: K,\r\n payload: P,\r\n options?: CommitOptions\r\n ): ReturnType;\r\n} & {\r\n dispatch(\r\n key: K,\r\n payload?: Parameters[1],\r\n options?: DispatchOptions\r\n ): Promise>;\r\n} & {\r\n getters: {\r\n [K in keyof Getters]: ReturnType\r\n };\r\n};\r\n\r\nexport const store: Module = {\r\n state,\r\n mutations,\r\n actions,\r\n getters\r\n};","import { createStore } from \"vuex\";\r\nimport { store as filter, FilterStore, State as FilterState } from \"./modules/filter/index\";\r\nimport { store as product, ProductStore, State as ProductState } from \"./modules/product/index\";\r\n\r\nexport type RootState = {\r\n filter: FilterState;\r\n product: ProductState;\r\n};\r\n\r\nexport type Store = FilterStore>\r\n & ProductStore>;\r\n\r\nexport const store = createStore({\r\n modules: {\r\n filter,\r\n product,\r\n },\r\n});\r\n\r\nexport function useStore(): Store {\r\n return store as Store;\r\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"CategoryFilter ProductCategory-filter\" }\nconst _hoisted_2 = { class: \"CategoryFilter\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"16\",\n height: \"16\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 320 512\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M207.6 256l107.72-107.72c6.23-6.23 6.23-16.34 0-22.58l-25.03-25.03c-6.23-6.23-16.34-6.23-22.58 0L160 208.4 52.28 100.68c-6.23-6.23-16.34-6.23-22.58 0L4.68 125.7c-6.23 6.23-6.23 16.34 0 22.58L112.4 256 4.68 363.72c-6.23 6.23-6.23 16.34 0 22.58l25.03 25.03c6.23 6.23 16.34 6.23 22.58 0L160 303.6l107.72 107.72c6.23 6.23 16.34 6.23 22.58 0l25.03-25.03c6.23-6.23 6.23-16.34 0-22.58L207.6 256z\"\n })\n], -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_FilterSection = _resolveComponent(\"FilterSection\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h2\", _hoisted_2, _toDisplayString(_ctx.filterTitle), 1),\n (_ctx.changedSlides.length || _ctx.selectedChecks.length)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.clearFilter(null))),\n class: \"CategoryFilter-reset\",\n type: \"button\"\n }, [\n _hoisted_3,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.cancelLabel), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(this.filter.sections, (filterSection) => {\n return (_openBlock(), _createBlock(_component_FilterSection, {\n key: filterSection.name,\n section: filterSection\n }, null, 8, [\"section\"]))\n }), 128))\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveDynamicComponent as _resolveDynamicComponent, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"CategoryFilterSection\" }\nconst _hoisted_2 = { class: \"CategoryFilterSection-title\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _createElementVNode(\"h3\", _hoisted_2, _toDisplayString(_ctx.section.title), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.section.data, (control, index) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.controlType), {\n key: control.name ?? control.nameMin,\n data: control,\n hidden: !_ctx.allVisible && index >= _ctx.visibleCount\n }, null, 8, [\"data\", \"hidden\"]))\n }), 128)),\n (_ctx.getHiddenCount())\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"CategoryFilterSection-more\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.toggleVisibility()))\n }, _toDisplayString(_ctx.allVisible ? _ctx.showLessLabel : `${_ctx.showMoreLabel} (${_ctx.getHiddenCount()})`), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}","import { vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, normalizeStyle as _normalizeStyle, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"CategoryFilterItemSlide\" }\nconst _hoisted_2 = { class: \"RangeSliderBase\" }\nconst _hoisted_3 = [\"step\", \"min\", \"max\"]\nconst _hoisted_4 = [\"step\", \"min\", \"max\"]\nconst _hoisted_5 = { class: \"CategoryFilterItemSlide-inputs\" }\nconst _hoisted_6 = [\"name\", \"min\"]\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"span\", null, \"-\", -1)\nconst _hoisted_8 = [\"name\", \"max\"]\nconst _hoisted_9 = { class: \"CategoryFilterItemSlide-unit\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives(_createElementVNode(\"input\", {\n \"aria-label\": \"minmax\",\n type: \"range\",\n step: _ctx.rangeStep,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.min) = $event)),\n min: _ctx.getMinimum(),\n max: _ctx.getMaximum(),\n onChange: _cache[1] || (_cache[1] = ($event: any) => (_ctx.changeValue({ type: _ctx.data.nameMin, value: _ctx.min }))),\n onInput: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleSlide('min'))),\n onMouseup: _cache[3] || (_cache[3] = ($event: any) => (_ctx.changeValue({ type: _ctx.data.nameMin, value: _ctx.min })))\n }, null, 40, _hoisted_3), [\n [\n _vModelText,\n _ctx.min,\n void 0,\n { number: true }\n ]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n \"aria-label\": \"minmax\",\n type: \"range\",\n step: _ctx.rangeStep,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.max) = $event)),\n min: _ctx.getMinimum(),\n max: _ctx.getMaximum(),\n onChange: _cache[5] || (_cache[5] = ($event: any) => (_ctx.changeValue({ type: _ctx.data.nameMax, value: _ctx.max }))),\n onInput: _cache[6] || (_cache[6] = ($event: any) => (_ctx.handleSlide('max'))),\n onMouseup: _cache[7] || (_cache[7] = ($event: any) => (_ctx.changeValue({ type: _ctx.data.nameMax, value: _ctx.max })))\n }, null, 40, _hoisted_4), [\n [\n _vModelText,\n _ctx.max,\n void 0,\n { number: true }\n ]\n ]),\n _createElementVNode(\"span\", {\n style: _normalizeStyle(_ctx.rangeIndicatorStyle)\n }, null, 4)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _withDirectives(_createElementVNode(\"input\", {\n \"aria-label\": \"min\",\n type: \"number\",\n name: _ctx.data.nameMin,\n \"onUpdate:modelValue\": _cache[8] || (_cache[8] = ($event: any) => ((_ctx.min) = $event)),\n min: _ctx.getMinimum(),\n onChange: _cache[9] || (_cache[9] = \n//@ts-ignore\n(...args) => (this.handleInputChange && this.handleInputChange(...args)))\n }, null, 40, _hoisted_6), [\n [\n _vModelText,\n _ctx.min,\n void 0,\n {\n number: true,\n lazy: true\n }\n ]\n ]),\n _hoisted_7,\n _withDirectives(_createElementVNode(\"input\", {\n \"aria-label\": \"max\",\n type: \"number\",\n name: _ctx.data.nameMax,\n \"onUpdate:modelValue\": _cache[10] || (_cache[10] = ($event: any) => ((_ctx.max) = $event)),\n max: _ctx.getMaximum(),\n onChange: _cache[11] || (_cache[11] = \n//@ts-ignore\n(...args) => (this.handleInputChange && this.handleInputChange(...args)))\n }, null, 40, _hoisted_8), [\n [\n _vModelText,\n _ctx.max,\n void 0,\n {\n number: true,\n lazy: true\n }\n ]\n ]),\n _createElementVNode(\"div\", _hoisted_9, _toDisplayString(_ctx.data.unit), 1)\n ])\n ]))\n}","\r\nimport { defineComponent, ref, Ref } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport { FilterSlideIdentifier } from \"@/types\";\r\n\r\nexport default defineComponent({\r\n name: \"FilterSlide\",\r\n props: {\r\n data: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const min: Ref = ref(props.data.minValue),\r\n max: Ref = ref(props.data.maxValue);\r\n\r\n const getMinimum = (): number => {\r\n return Math.min(props.data.min, props.data.minValue);\r\n }\r\n\r\n const getMaximum = (): number => {\r\n return Math.max(props.data.max, props.data.maxValue);\r\n }\r\n\r\n const store = useStore();\r\n const changeValue = (slideValue: FilterSlideIdentifier) => store.dispatch('CHANGE_SLIDE_VALUE', slideValue);\r\n\r\n const handleInputChange = (e: Event): void => {\r\n const input = e.target as HTMLInputElement;\r\n if (!input) return;\r\n\r\n if (input.hasAttribute(\"min\")) {\r\n if (input.valueAsNumber < parseInt(input.min))\r\n min.value = parseInt(input.min);\r\n\r\n if (input.valueAsNumber > max.value)\r\n min.value = max.value;\r\n\r\n if (min.value !== input.valueAsNumber)\r\n input.value = min.value.toString();\r\n\r\n changeValue({ type: props.data.nameMin, value: min.value });\r\n }\r\n\r\n if (input.hasAttribute(\"max\")) {\r\n if (input.valueAsNumber > parseInt(input.max))\r\n max.value = parseInt(input.max);\r\n\r\n if (input.valueAsNumber < min.value)\r\n max.value = min.value;\r\n\r\n if (max.value !== input.valueAsNumber)\r\n input.value = max.value.toString();\r\n\r\n changeValue({ type: props.data.nameMax, value: max.value });\r\n }\r\n }\r\n\r\n const handleSlide = (type: \"min\" | \"max\"): void => {\r\n if (min.value <= max.value)\r\n return;\r\n\r\n if (type === \"min\") {\r\n min.value = max.value;\r\n } else {\r\n max.value = min.value;\r\n }\r\n }\r\n\r\n store.subscribe((mutation) => {\r\n if (mutation.type !== 'CLEAR_FILTRATION' && mutation.type !== 'SET_DATA')\r\n return;\r\n\r\n setTimeout((): void => {\r\n min.value = props.data.minParam !== 0 ? props.data.minParam : props.data.min;\r\n max.value = props.data.maxParam !== 0 ? props.data.maxParam : props.data.max;\r\n });\r\n });\r\n\r\n return {\r\n min,\r\n max,\r\n getMinimum,\r\n getMaximum,\r\n changeValue,\r\n handleInputChange,\r\n handleSlide\r\n }\r\n },\r\n computed: {\r\n rangeStep() {\r\n return this.getMaximum() - this.getMinimum() > 10 ? 10 : 1;\r\n },\r\n rangeIndicatorStyle() {\r\n const diff = this.getMaximum() - this.getMinimum();\r\n\r\n return {\r\n width: Math.min(Math.abs((this.min - this.max) / diff * 100), 100) + '%',\r\n left: Math.abs((this.min - this.getMinimum()) / diff * 100) + '%'\r\n }\r\n }\r\n }\r\n})\r\n","import { render } from \"./FilterSlide.vue?vue&type=template&id=5087fbf0&ts=true\"\nimport script from \"./FilterSlide.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterSlide.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"name\", \"value\", \"checked\"]\nconst _hoisted_2 = [\"data-count\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"label\", {\n class: _normalizeClass([\"CategoryFilterItemCheck\", {'is-disabled': _ctx.data.count === 0, 'is-hidden': _ctx.hidden && !_ctx.data.checked }])\n }, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n name: _ctx.data.name,\n value: _ctx.data.value,\n checked: _ctx.data.checked,\n onChange: _cache[0] || (_cache[0] = ($event: any) => (_ctx.handleChange({ name: _ctx.data.name, value: _ctx.data.value }))),\n class: \"CheckboxBase\"\n }, null, 40, _hoisted_1),\n _createElementVNode(\"span\", {\n \"data-count\": _ctx.data.count !== null ? '(' + _ctx.data.count + ')' : ''\n }, _toDisplayString(_ctx.data.label), 9, _hoisted_2)\n ], 2))\n}","\r\nimport {defineComponent, ref, Ref} from \"vue\";\r\nimport { mapActions } from \"vuex\";\r\n\r\nexport default defineComponent({\r\n name: \"FilterCheck\",\r\n props: {\r\n data: {\r\n type: Object,\r\n required: true\r\n },\r\n hidden: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n methods: mapActions({\r\n handleChange: 'CHANGE_PARAMETER'\r\n })\r\n})\r\n","import { render } from \"./FilterCheck.vue?vue&type=template&id=3bac8beb&ts=true\"\nimport script from \"./FilterCheck.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterCheck.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent, Ref, ref } from \"vue\";\r\nimport FilterSlide from \"./FilterSlide.vue\";\r\nimport FilterCheck from \"./FilterCheck.vue\";\r\nimport { FilterCheckData } from \"@/types\";\r\nimport {mapGetters} from \"vuex\";\r\n\r\nexport default defineComponent({\r\n name: \"FilterSection\",\r\n components: {\r\n FilterSlide,\r\n FilterCheck,\r\n },\r\n computed: mapGetters({\r\n showLessLabel: 'getShowLessLabel',\r\n showMoreLabel: 'getShowMoreLabel'\r\n }),\r\n props: {\r\n section: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const controlType = props.section.type === 'slide' ? FilterSlide : FilterCheck,\r\n visibleCount: Ref = ref(5);\r\n\r\n let allVisible: Ref = ref(false);\r\n\r\n const toggleVisibility = (): void => {\r\n allVisible.value = !allVisible.value;\r\n };\r\n\r\n const getHiddenCount = (): number => {\r\n return props.section.data.filter((check: FilterCheckData, index: number) => {\r\n return index >= visibleCount.value && !check.checked;\r\n }).length;\r\n }\r\n\r\n return {\r\n controlType,\r\n visibleCount,\r\n allVisible,\r\n toggleVisibility,\r\n getHiddenCount\r\n }\r\n }\r\n});\r\n","import { render } from \"./FilterSection.vue?vue&type=template&id=66bde31e&ts=true\"\nimport script from \"./FilterSection.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterSection.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapActions, mapGetters, mapState } from \"vuex\";\r\nimport FilterSection from \"./FilterSection.vue\";\r\n\r\nexport default defineComponent({\r\n name: \"FilterHolder\",\r\n components: {\r\n FilterSection\r\n },\r\n computed: {\r\n ...mapState(['filter']),\r\n ...mapGetters({\r\n filterTitle: 'getFilterTitle',\r\n cancelLabel: 'getCancelFilterLabel',\r\n changedSlides: 'getChangedSlides',\r\n selectedChecks: 'getFilterSelection'\r\n })\r\n },\r\n methods: mapActions({\r\n clearFilter: 'CLEAR_FILTRATION'\r\n })\r\n});\r\n","import { render } from \"./FilterHolder.vue?vue&type=template&id=37f307e8&ts=true\"\nimport script from \"./FilterHolder.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterHolder.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"CategoryFilterBar\"\n}\nconst _hoisted_2 = { class: \"CategoryFilterBarItem-value\" }\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 320 512\",\n width: \"10\",\n height: \"10\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M207.6 256l107.72-107.72c6.23-6.23 6.23-16.34 0-22.58l-25.03-25.03c-6.23-6.23-16.34-6.23-22.58 0L160 208.4 52.28 100.68c-6.23-6.23-16.34-6.23-22.58 0L4.68 125.7c-6.23 6.23-6.23 16.34 0 22.58L112.4 256 4.68 363.72c-6.23 6.23-6.23 16.34 0 22.58l25.03 25.03c6.23 6.23 16.34 6.23 22.58 0L160 303.6l107.72 107.72c6.23 6.23 16.34 6.23 22.58 0l25.03-25.03c6.23-6.23 6.23-16.34 0-22.58L207.6 256z\"\n })\n], -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = { class: \"CategoryFilterBarItem-value\" }\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 320 512\",\n width: \"10\",\n height: \"10\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M207.6 256l107.72-107.72c6.23-6.23 6.23-16.34 0-22.58l-25.03-25.03c-6.23-6.23-16.34-6.23-22.58 0L160 208.4 52.28 100.68c-6.23-6.23-16.34-6.23-22.58 0L4.68 125.7c-6.23 6.23-6.23 16.34 0 22.58L112.4 256 4.68 363.72c-6.23 6.23-6.23 16.34 0 22.58l25.03 25.03c6.23 6.23 16.34 6.23 22.58 0L160 303.6l107.72 107.72c6.23 6.23 16.34 6.23 22.58 0l25.03-25.03c6.23-6.23 6.23-16.34 0-22.58L207.6 256z\"\n })\n], -1)\nconst _hoisted_9 = [\n _hoisted_8\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.changedSlides || _ctx.selectedChecks)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.changedSlides, (slide) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: slide.nameMin + '|' + slide.nameMax,\n class: \"CategoryFilterBarItem\"\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(slide.minValue.toLocaleString() + \" - \" + slide.maxValue.toLocaleString() + \" \" + slide.unit), 1),\n _createElementVNode(\"button\", {\n class: \"CategoryFilterBarItem-remove\",\n onClick: ($event: any) => (_ctx.clearSelected({ type: slide.nameMin }))\n }, _hoisted_5, 8, _hoisted_3)\n ]))\n }), 128)),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.selectedChecks, (check) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: check.name + '=' + check.value,\n class: \"CategoryFilterBarItem\"\n }, [\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(check.label), 1),\n _createElementVNode(\"button\", {\n class: \"CategoryFilterBarItem-remove\",\n onClick: ($event: any) => (_ctx.clearSelected({ name: check.name, value: check.value }))\n }, _hoisted_9, 8, _hoisted_7)\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n}","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapActions, mapGetters } from \"vuex\";\r\n\r\nexport default defineComponent({\r\n name: \"FilterSelection\",\r\n computed: mapGetters({\r\n changedSlides: 'getChangedSlides',\r\n selectedChecks: 'getFilterSelection'\r\n }),\r\n methods: mapActions({\r\n clearSelected: 'CLEAR_FILTRATION'\r\n })\r\n});\r\n","import { render } from \"./FilterSelection.vue?vue&type=template&id=4d7c134a&ts=true\"\nimport script from \"./FilterSelection.vue?vue&type=script&lang=ts\"\nexport * from \"./FilterSelection.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"CategorySort\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"CategorySort-links\"\n}\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = { class: \"CategorySort-label\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n (_ctx.sort)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.sort.available, (sortBtn) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: _normalizeClass({ 'CategorySort-link': true, 'is-active': sortBtn.value === _ctx.sort.selected }),\n key: sortBtn.value,\n onClick: ($event: any) => (_ctx.sortProduct(sortBtn.value)),\n type: \"button\"\n }, _toDisplayString(sortBtn.label), 11, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(_ctx.productCount) + \" \" + _toDisplayString(_ctx.productTotalLabel), 1)\n ]))\n}","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapActions, mapGetters } from \"vuex\";\r\n\r\nexport default defineComponent({\r\n name: \"CategorySort\",\r\n computed: mapGetters({\r\n sort: 'getSort',\r\n productCount: 'getResultsCount',\r\n productTotalLabel: 'getResultsTotalLabel'\r\n }),\r\n methods: mapActions({\r\n sortProduct: 'SORT_PRODUCTS'\r\n })\r\n});\r\n","import { render } from \"./CategorySort.vue?vue&type=template&id=39aebe45&ts=true\"\nimport script from \"./CategorySort.vue?vue&type=script&lang=ts\"\nexport * from \"./CategorySort.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ProgressBar = _resolveComponent(\"ProgressBar\")!\n const _component_ProductItem = _resolveComponent(\"ProductItem\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_ProgressBar, {\n class: _normalizeClass({'is-visible': _ctx.product.isLoading})\n }, null, 8, [\"class\"]),\n (_ctx.product.items)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"ProductList ProductList--col3\", {'is-loading': _ctx.product.isLoading}])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.product.items, (productItem) => {\n return (_openBlock(), _createBlock(_component_ProductItem, {\n key: productItem.id,\n source: productItem.html\n }, null, 8, [\"source\"]))\n }), 128))\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"innerHTML\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"ProductItem\",\n \"data-cy\": \"product-item\",\n innerHTML: _ctx.processedSource\n }, null, 8, _hoisted_1))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"ProductItem\",\r\n props: {\r\n source: {\r\n type: String,\r\n required: true\r\n }\r\n },\r\n computed: {\r\n processedSource() {\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = this.source;\r\n div.childNodes.forEach(node => {\r\n if (node.nodeType == Node.TEXT_NODE) {\r\n node.parentNode?.removeChild(node);\r\n }\r\n });\r\n\r\n div.firstChild?.replaceWith(...div.firstChild.childNodes);\r\n return div.innerHTML;\r\n }\r\n }\r\n});\r\n","import { render } from \"./ProductItem.vue?vue&type=template&id=619f641b&ts=true\"\nimport script from \"./ProductItem.vue?vue&type=script&lang=ts\"\nexport * from \"./ProductItem.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-c8fbfd5e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n role: \"progressbar\",\n class: \"ProgressBar\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"ProgressBar-bar ProgressBar-bar--primary\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"ProgressBar-inner\" })\n], -1))\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"ProgressBar-bar ProgressBar-bar--secondary\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"ProgressBar-inner\" })\n], -1))\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _hoisted_4))\n}","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"ProgressBar\"\r\n});\r\n","import { render } from \"./ProgressBar.vue?vue&type=template&id=c8fbfd5e&scoped=true&ts=true\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=ts\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=ts\"\n\nimport \"./ProgressBar.vue?vue&type=style&index=0&id=c8fbfd5e&lang=scss&scoped=true\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c8fbfd5e\"]])\n\nexport default __exports__","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapState } from \"vuex\";\r\n\r\nimport ProductItem from \"./ProductItem.vue\";\r\nimport ProgressBar from \"./../common/ProgressBar.vue\";\r\n\r\nexport default defineComponent({\r\n name: \"ProductList\",\r\n components: {\r\n ProductItem,\r\n ProgressBar\r\n },\r\n computed: {\r\n ...mapState(['product'])\r\n }\r\n});\r\n","import { render } from \"./ProductList.vue?vue&type=template&id=2c8a7e7e&ts=true\"\nimport script from \"./ProductList.vue?vue&type=script&lang=ts\"\nexport * from \"./ProductList.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"AppPager\"\n}\nconst _hoisted_2 = { class: \"AppPager-scrollTop\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n overflow: \"visible\",\n preserveAspectRatio: \"none\",\n viewBox: \"0 0 24 24\",\n width: \"22\",\n height: \"22\",\n fill: \"currentColor\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\",\n \"vector-effect\": \"non-scaling-stroke\"\n })\n], -1)\nconst _hoisted_4 = { class: \"AppPager-btnHolder\" }\nconst _hoisted_5 = { class: \"AppPager-pager\" }\nconst _hoisted_6 = [\"onClick\", \"title\"]\nconst _hoisted_7 = [\"innerHTML\"]\nconst _hoisted_8 = { key: 1 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.pager.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.scrollTop()))\n }, [\n _hoisted_3,\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.backToTopLabel), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (_ctx.nextPageUrl)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.loadMore(_ctx.nextPageUrl))),\n type: \"button\",\n class: \"ButtonBase ButtonBase--sm\"\n }, _toDisplayString(_ctx.nextPageLabel), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.pager, (pagerBtn) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n key: pagerBtn.text,\n class: _normalizeClass(pagerBtn.class),\n onClick: ($event: any) => (_ctx.changePage(pagerBtn.href)),\n title: pagerBtn.icon ? pagerBtn.text : null,\n type: \"button\"\n }, [\n (pagerBtn.icon)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n innerHTML: pagerBtn.icon,\n class: \"icon\"\n }, null, 8, _hoisted_7))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_8, _toDisplayString(pagerBtn.text), 1))\n ], 10, _hoisted_6))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","\r\nimport { defineComponent } from \"vue\";\r\nimport { mapActions, mapGetters } from \"vuex\";\r\n\r\nexport default defineComponent({\r\n name: \"Pager\",\r\n computed: mapGetters({\r\n pager: 'getPager',\r\n nextPageUrl: 'getNextPageUrl',\r\n nextPageLabel: 'getNextPageLabel',\r\n backToTopLabel: 'getBackToTopLabel'\r\n }),\r\n setup() {\r\n const scrollTop = (): void => {\r\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });\r\n }\r\n\r\n return {\r\n scrollTop\r\n }\r\n },\r\n methods: {\r\n ...mapActions({\r\n loadProducts: 'LOAD_PRODUCTS'\r\n }),\r\n changePage(url: string) {\r\n this.loadProducts({url: url})\r\n },\r\n loadMore(url: string) {\r\n this.loadProducts({url: url, appendProducts: true})\r\n }\r\n }\r\n});\r\n","import { render } from \"./Pager.vue?vue&type=template&id=2edcc152&ts=true\"\nimport script from \"./Pager.vue?vue&type=script&lang=ts\"\nexport * from \"./Pager.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport {defineComponent, onMounted, onBeforeMount, Ref, ref} from \"vue\";\r\n\r\nimport CatalogService from \"@/services/CatalogService\";\r\nimport {useStore} from './store';\r\nimport {FilterActionTypes} from './store/modules/filter/action-types';\r\nimport {ProductActionTypes} from \"./store/modules/product/action-types\";\r\n\r\nimport FilterHolder from \"./components/filter/FilterHolder.vue\";\r\nimport FilterSelection from \"./components/filter/FilterSelection.vue\";\r\nimport CategorySort from \"./components/controls/CategorySort.vue\";\r\nimport ProductList from \"./components/products/ProductList.vue\";\r\nimport Pager from \"./components/controls/Pager.vue\";\r\n\r\ndeclare global {\r\n interface Window {\r\n preloadedProductsForVue: any | null\r\n }\r\n}\r\n\r\nexport default defineComponent({\r\n name: \"StoreCatalog\",\r\n components: {\r\n FilterHolder,\r\n FilterSelection,\r\n CategorySort,\r\n ProductList,\r\n Pager\r\n },\r\n setup() {\r\n const root: Ref = ref(null)\r\n const isLoading: Ref = ref(true)\r\n const store = useStore();\r\n\r\n onMounted(() => {\r\n const preloadedProducts = window?.preloadedProductsForVue\r\n if (preloadedProducts) {\r\n store.dispatch(ProductActionTypes.SET_PRODUCTS, preloadedProducts).then(() => isLoading.value = false);\r\n }\r\n })\r\n\r\n CatalogService.prepareFilterData()\r\n .then(result => {\r\n store.dispatch(FilterActionTypes.SET_FILTER, result);\r\n if (isLoading.value) {\r\n store.dispatch(ProductActionTypes.SET_PRODUCTS, result).then(() => isLoading.value = false);\r\n }\r\n })\r\n .catch(error => console.error(error))\r\n\r\n return {\r\n root,\r\n isLoading,\r\n }\r\n }\r\n});\r\n","import { render } from \"./App.vue?vue&type=template&id=036556aa&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Vyvoj\\\\temporary\\\\htdocs\\\\dev.poski.loc\\\\clevero.cz\\\\trunk\\\\www\\\\frontend\\\\CID\\\\poski\\\\klasik-2020\\\\js\\\\libraries\\\\store-catalog\\\\node_modules\\\\@vue\\\\cli-service\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport { store } from \"./store\";\r\n\r\ncreateApp(App).use(store).mount(\"[data-store-catalog]\");"],"sourceRoot":""}