{"version":3,"file":"chunk.3423.678ff848ab8a3060ab50.32115fdd.js","mappings":"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","sources":["webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/commits/url.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/commits/items.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/commits/filters.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/commits/loadMore.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/commits/paginator.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/commits/categoryTeasers.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/commits/serializedFilters.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/plugins/CategoryTeasersPlugin.ts","webpack:///./app/assets/javascripts/site/widgets/CategoryTeasersWidget.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/index.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/lists/ProductList/Dispatcher.ts"],"sourcesContent":["export default function COMMIT_URL(state, { loadCountUrl, url }) {\n return { ...state, url, loadCountUrl };\n}\n","export default function COMMIT_ITEMS(state, items) {\n return { ...state, items };\n}\n","export default function COMMIT_FILTERS(state, filters) {\n return { ...state,\n filters: { ...state.filters, ...filters }\n };\n}\nexport function COMMIT_QUITE_FILTERS(state, { key, fields }) {\n return { ...state, filters: { ...state.filters, [key]: fields } };\n}\n","export default function COMMIT_LOAD_MORE(state, loadMore) {\n return { ...state, loadMore };\n}\n","export default function COMMIT_PAGINATOR(state, paginator) {\n return { ...state, paginator };\n}\n","export default function COMMIT_CATEGORY_TEASERS(state, categoryTeasers) {\n return { ...state, categoryTeasers };\n}\n","export default function COMMIT_SERIALIZED_FILTERS(state, fields) {\n return { ...state, sentFields: fields };\n}\n","/**\n * @TODO write plugin description\n */\nimport CategoryTeasersWidget from 'site/widgets/CategoryTeasersWidget';\nexport default function (config) {\n return function CategoryTeasersPlugin({ deps: { mediator } }) {\n const wCategoryTeasers = CategoryTeasersWidget(config.$slot);\n const handleUpdate = (teasers) => {\n wCategoryTeasers.render(teasers);\n };\n return {\n connect() {\n mediator.subscribe('CategoryTeasersPlugin <~ update', handleUpdate);\n },\n disconnect() {\n mediator.unsubscribe('CategoryTeasersPlugin <~ update', handleUpdate);\n }\n };\n };\n}\n","import { connect } from 'core/services/Controller';\nexport default function CategoryTeasersWidget($widget) {\n return {\n render: (items) => requestAnimationFrame(() => {\n $widget[0].innerHTML = items.join('');\n connect($widget[0]);\n })\n };\n}\n","import createList from '../../createList';\nimport Dispatcher from './Dispatcher';\nimport UrlPlugin from '../../plugins/UrlPlugin';\nimport ItemsPlugin from '../../plugins/ItemsPlugin';\nimport FiltersPlugin from '../../plugins/FiltersPlugin';\nimport LoadMorePlugin from '../../plugins/LoadMorePlugin';\nimport PaginatorPlugin from '../../plugins/PaginatorPlugin';\nimport CategoryTeasersPlugin from '../../plugins/CategoryTeasersPlugin';\nexport const ProductList = createList(Dispatcher);\nexport { UrlPlugin, ItemsPlugin, FiltersPlugin, LoadMorePlugin, PaginatorPlugin, CategoryTeasersPlugin };\n","import { camelizeKeys } from 'humps';\nimport Store from 'core/services/Store';\nimport { pushToDataLayer } from 'core/services/GTM';\nimport { StandardTeaserString } from 'site/VControllers/components/SkeletonPlaceholder/templates/StandardTeaser';\nimport cond from 'core/utils/cond';\nimport COMMIT_URL from './commits/url';\nimport COMMIT_ITEMS from './commits/items';\nimport COMMIT_FILTERS, { COMMIT_QUITE_FILTERS } from './commits/filters';\nimport COMMIT_LOAD_MORE from './commits/loadMore';\nimport COMMIT_PAGINATOR from './commits/paginator';\nimport COMMIT_CATEGORY_TEASERS from './commits/categoryTeasers';\nimport { serializeFilters } from '../../plugins/FiltersPlugin';\nimport Loader from '../../Loader';\nimport COMMIT_SERIALIZED_FILTERS from './commits/serializedFilters';\nimport { FILTER_PLUGIN_SYNC_EVENT } from './constants';\nconst Dispatcher = ({ \n//#region destruct props\nloadUrl, initialState, deps: { mediator }, callbacks: { onScrollToTop, onBeforeLoad, onAfterLoad }\n//#endregion\n }) => {\n const loader = Loader({\n callbacks: {\n onBeforeLoad,\n onAfterLoad\n }\n });\n //#region Store initialization\n const store = Store({\n props: {\n initialState: {\n url: null,\n items: [],\n filters: {},\n paginator: {},\n loadMore: { page: 0, isLastPage: false },\n loadCountUrl: null,\n categoryTeasers: [],\n sentFields: {}\n }\n },\n callbacks: {\n CALLBACK_AFTER_COMMIT: (state, commitFn, [_, { action = '', silent = false } = {}]) => {\n if (silent)\n return;\n cond(_when => commitFn === COMMIT_ITEMS, _to => mediator.dispatch(`ItemsPlugin <~ ${action || 'replace'}`, state.items, 'StickySidebar:ProductList.forceUpdate'), _when => commitFn === COMMIT_FILTERS, _to => mediator.dispatch('FiltersPlugin <~ update', state.filters), _when => commitFn === COMMIT_PAGINATOR, _to => mediator.dispatch('PaginatorPlugin <~ update', state.paginator), _when => commitFn === COMMIT_LOAD_MORE, _to => mediator.dispatch('LoadMorePlugin <~ update', state.loadMore), _when => commitFn === COMMIT_CATEGORY_TEASERS, _to => mediator.dispatch('CategoryTeasersPlugin <~ update', state.categoryTeasers), _when => commitFn === COMMIT_URL, _to => {\n mediator.dispatch(`UrlPlugin <~ ${action}`, { url: state.url, state: { loadUrl: state.url } });\n mediator.dispatch(`FiltersPlugin <~ updateUrl`, state.loadCountUrl);\n });\n }\n }\n });\n //#endregion\n const syncFiltersChanged = (key, fields) => {\n store.commit(COMMIT_QUITE_FILTERS, { key, fields });\n };\n //#region Filters changed\n const handleFiltersChanged = async (newFilters) => {\n store.commit(COMMIT_FILTERS, newFilters);\n const state = store.getState();\n handleAddPlaceholders('replace', Env.version === 'desktop' ? 21 : 20);\n const scrollPromise = onScrollToTop('top');\n const { url, items, loadMore, paginator, loadCountUrl, filters, category_teasers: categoryTeasers } = await loader.load(loadUrl, {\n format: 'json', ...serializeFilters(state.filters), snapshot: state.sentFields\n });\n await scrollPromise;\n store.commit(COMMIT_URL, { url, loadCountUrl }, { action: 'push' });\n store.commit(COMMIT_PAGINATOR, paginator);\n store.commit(COMMIT_LOAD_MORE, loadMore);\n store.commit(COMMIT_FILTERS, camelizeKeys(filters));\n store.commit(COMMIT_SERIALIZED_FILTERS, serializeFilters(filters));\n store.commit(COMMIT_ITEMS, items);\n store.commit(COMMIT_CATEGORY_TEASERS, categoryTeasers);\n if (items.length > 0 && Object.keys(newFilters)[0] === 'additional') {\n pushToDataLayer({ event: 'fastFilterChangedWithResult' });\n }\n };\n //#endregion\n //#region Url changed\n const handleUrlChanged = async ({ loadUrl }) => {\n const { url: newUrl, items, filters, paginator, loadCountUrl, category_teasers: categoryTeasers } = await loader.load(loadUrl, { format: 'json' });\n store.commit(COMMIT_URL, { newUrl, loadCountUrl }, { silent: true });\n store.commit(COMMIT_FILTERS, filters);\n store.commit(COMMIT_PAGINATOR, paginator);\n store.commit(COMMIT_ITEMS, items);\n store.commit(COMMIT_CATEGORY_TEASERS, categoryTeasers);\n };\n //#endregion\n //#region Paginator changed\n const handlePaginatorChanged = async (page) => {\n const state = store.getState();\n const scrollPromise = onScrollToTop('items');\n const { url, items, loadMore, paginator, loadCountUrl, category_teasers: categoryTeasers } = await loader.load(loadUrl, {\n format: 'json', page, ...serializeFilters(state.filters)\n });\n await scrollPromise;\n store.commit(COMMIT_URL, { url, loadCountUrl }, { action: 'push' });\n store.commit(COMMIT_PAGINATOR, paginator);\n store.commit(COMMIT_LOAD_MORE, loadMore);\n store.commit(COMMIT_ITEMS, items);\n store.commit(COMMIT_CATEGORY_TEASERS, categoryTeasers);\n };\n //#endregion\n //#region Load more clicked\n const handleLoadMore = async (page) => {\n const state = store.getState();\n if (state.loadMore.isLastPage)\n return;\n handleAddPlaceholders('insert', Env.version === 'desktop' ? 9 : 8);\n const { url, items, loadMore, paginator, loadCountUrl } = await loader.load(loadUrl, {\n ...serializeFilters(state.filters),\n format: 'json',\n page\n });\n store.commit(COMMIT_LOAD_MORE, loadMore);\n store.commit(COMMIT_PAGINATOR, paginator);\n store.commit(COMMIT_ITEMS, items, { action: 'append' });\n store.commit(COMMIT_URL, { url, loadCountUrl }, { action: 'push' });\n handleRemovePlaceholders();\n };\n //#endregion\n const handleAddPlaceholders = (type, count) => {\n const itemsEl = document.querySelector('[data-el=\"ProductList/items\"]');\n const placeholders = new Array(count).fill(StandardTeaserString).join('\\n');\n switch (type) {\n case 'insert':\n itemsEl.insertAdjacentHTML('beforeend', placeholders);\n break;\n case 'replace':\n itemsEl.innerHTML = placeholders;\n break;\n }\n };\n const handleRemovePlaceholders = () => {\n const itemsEl = document.querySelector('[data-el=\"ProductList/items\"]');\n Array.from(itemsEl.children).forEach(item => {\n if (item.classList.contains('b-SkeletonPlaceholder'))\n item.remove();\n });\n };\n return {\n connect() {\n mediator.subscribe('UrlPlugin ~> changed', handleUrlChanged);\n mediator.subscribe('FiltersPlugin ~> changed', handleFiltersChanged);\n mediator.subscribe(FILTER_PLUGIN_SYNC_EVENT, syncFiltersChanged);\n mediator.subscribe('PaginatorPlugin ~> changed', handlePaginatorChanged);\n mediator.subscribe('LoadMorePlugin ~> moreRequested', handleLoadMore);\n const { loadCountUrl, url } = initialState;\n store.commit(COMMIT_URL, { loadCountUrl, url }, { action: 'replace' });\n store.commit(COMMIT_ITEMS, initialState.items, { silent: true });\n if (initialState.filters && Object.keys(initialState.filters).length > 0) {\n store.commit(COMMIT_FILTERS, initialState.filters);\n store.commit(COMMIT_SERIALIZED_FILTERS, serializeFilters(initialState.filters));\n }\n store.commit(COMMIT_LOAD_MORE, initialState.loadMore);\n store.commit(COMMIT_PAGINATOR, initialState.paginator);\n store.commit(COMMIT_CATEGORY_TEASERS, initialState.categoryTeasers, { silent: true });\n },\n disconnect() {\n mediator.unsubscribe('UrlPlugin ~> changed', handleUrlChanged);\n mediator.unsubscribe('FiltersPlugin ~> changed', handleFiltersChanged);\n mediator.unsubscribe(FILTER_PLUGIN_SYNC_EVENT, syncFiltersChanged);\n mediator.unsubscribe('PaginatorPlugin ~> changed', handlePaginatorChanged);\n mediator.unsubscribe('LoadMorePlugin ~> moreRequested', handleLoadMore);\n }\n };\n};\nexport default Dispatcher;\n"],"names":["COMMIT_URL","state","_ref","loadCountUrl","url","_objectSpread","COMMIT_ITEMS","items","COMMIT_FILTERS","filters","COMMIT_QUITE_FILTERS","key","fields","_defineProperty","COMMIT_LOAD_MORE","loadMore","COMMIT_PAGINATOR","paginator","COMMIT_CATEGORY_TEASERS","categoryTeasers","COMMIT_SERIALIZED_FILTERS","sentFields","config","$widget","mediator","deps","wCategoryTeasers","$slot","render","requestAnimationFrame","innerHTML","join","connect","handleUpdate","teasers","subscribe","disconnect","unsubscribe","ProductList","createList","loadUrl","initialState","_ref$callbacks","callbacks","onScrollToTop","onBeforeLoad","onAfterLoad","loader","Loader","store","Store","props","page","isLastPage","CALLBACK_AFTER_COMMIT","commitFn","_ref2","_ref3","_ref3$","_ref3$$action","action","_ref3$$silent","silent","cond","_when","_to","dispatch","concat","syncFiltersChanged","commit","handleFiltersChanged","_ref4","_asyncToGenerator","_regeneratorRuntime","_callee","newFilters","scrollPromise","_yield$loader$load","_context","prev","next","getState","handleAddPlaceholders","Env","version","load","format","serializeFilters","snapshot","sent","category_teasers","camelizeKeys","length","Object","keys","pushToDataLayer","event","stop","_x","apply","arguments","handleUrlChanged","_ref6","_callee2","_ref5","_yield$loader$load2","newUrl","_context2","_x2","handlePaginatorChanged","_ref7","_callee3","_yield$loader$load3","_context3","_x3","handleLoadMore","_ref8","_callee4","_yield$loader$load4","_context4","abrupt","handleRemovePlaceholders","_x4","type","count","itemsEl","document","querySelector","placeholders","Array","fill","StandardTeaserString","insertAdjacentHTML","from","children","forEach","item","classList","contains","remove","FILTER_PLUGIN_SYNC_EVENT"],"sourceRoot":""}