{"version":3,"file":"chunk.9891.b75be1f763cfc90deef6.9e42620e.js","mappings":"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","sources":["webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/UserList/commits/url.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/UserList/commits/items.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/UserList/commits/filters.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/UserList/commits/paginator.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/UserList/index.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/UserList/Dispatcher.js","webpack:///../jarvis/app/assets/javascripts/site/widgets/PaginatorWidget/components/Items.tsx","webpack:///../jarvis/app/assets/javascripts/site/widgets/PaginatorWidget/components/BtnNext.tsx","webpack:///../jarvis/app/assets/javascripts/site/widgets/PaginatorWidget/components/BtnToTop.tsx","webpack:///../jarvis/app/assets/javascripts/site/widgets/PaginatorWidget/commits/setup.ts","webpack:///../jarvis/app/assets/javascripts/core/utils/object/compact.ts","webpack:///../jarvis/app/assets/javascripts/site/widgets/PaginatorWidget/commits/nextPage.ts","webpack:///../jarvis/app/assets/javascripts/site/widgets/PaginatorWidget/commits/prevPage.ts","webpack:///../jarvis/app/assets/javascripts/site/widgets/PaginatorWidget/commits/changePage.ts","webpack:///../jarvis/app/assets/javascripts/site/widgets/PaginatorWidget/index.tsx","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/plugins/PaginatorPlugin.ts"],"sourcesContent":["export default function COMMIT_URL(state, url) {\n return { ...state, url }\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}\n","export default function COMMIT_PAGINATOR(state, paginator) {\n return { ...state, paginator }\n}\n","import Dispatcher from './Dispatcher';\n\nimport createList from '../../createList';\n\nimport UrlPlugin from '../../plugins/UrlPlugin';\nimport ItemsPlugin from '../../plugins/ItemsPlugin';\nimport FiltersPlugin from '../../plugins/FiltersPlugin';\nimport PaginatorPlugin from '../../plugins/PaginatorPlugin';\n\nexport let UserList = createList(Dispatcher)\n\nexport {\n UrlPlugin,\n ItemsPlugin,\n FiltersPlugin,\n PaginatorPlugin\n}\n","import Store from 'core/services/Store';\n\nimport cond from 'core/utils/cond';\n\nimport COMMIT_URL from './commits/url';\nimport COMMIT_ITEMS from './commits/items';\nimport COMMIT_FILTERS from './commits/filters';\nimport COMMIT_PAGINATOR from './commits/paginator';\n\nimport { serializeFilters } from '../../plugins/FiltersPlugin';\n\nimport Loader from '../../Loader';\n\nexport default function Dispatcher({\n loadUrl,\n\n initialState,\n\n deps: {\n mediator: {\n dispatch,\n subscribe\n }\n },\n\n callbacks: {\n onScrollToTop,\n onBeforeLoad,\n onAfterLoad\n }\n}) {\n let loader = Loader({\n callbacks: {\n onBeforeLoad,\n onAfterLoad\n }\n })\n\n let store = Store({\n props: {\n initialState: {\n url: null,\n items: [],\n filters: {},\n paginator: {},\n }\n },\n\n callbacks: {\n CALLBACK_AFTER_COMMIT: (state, commitFn, [_, { action, silent = false } = {}]) => {\n if (silent) return;\n\n cond(\n when => commitFn === COMMIT_ITEMS,\n to => dispatch('ItemsPlugin <~ replace', state.items),\n\n when => commitFn === COMMIT_FILTERS,\n to => dispatch('FiltersPlugin <~ update', state.filters),\n\n when => commitFn === COMMIT_PAGINATOR,\n to => dispatch('PaginatorPlugin <~ update', state.paginator),\n\n when => commitFn === COMMIT_URL && action,\n to => dispatch(`UrlPlugin <~ ${action}`, { url: state.url, state: { loadUrl: state.url } }),\n )\n }\n }\n });\n\n /*\n Поменялись фильтры\n */\n\n subscribe('FiltersPlugin ~> changed', async newFilters => {\n store.commit(COMMIT_FILTERS, newFilters);\n\n let state = store.getState();\n\n let {\n url,\n items,\n paginator,\n } = await loader.load(loadUrl, {\n format: 'json', ...serializeFilters(state.filters)\n });\n\n store.commit(COMMIT_URL, url, { action: 'push' });\n store.commit(COMMIT_ITEMS, items);\n store.commit(COMMIT_PAGINATOR, paginator);\n\n onScrollToTop();\n })\n\n /*\n Поменялся урл\n */\n\n subscribe('UrlPlugin ~> changed', async ({ loadUrl }) => {\n onScrollToTop();\n\n let {\n url: newUrl,\n items,\n filters,\n paginator,\n } = await loader.load(loadUrl, {\n format: 'json'\n });\n\n store.commit(COMMIT_URL, newUrl, { silent: true });\n store.commit(COMMIT_ITEMS, items);\n store.commit(COMMIT_FILTERS, filters);\n store.commit(COMMIT_PAGINATOR, paginator);\n })\n\n /*\n Изменилась страница\n */\n\n subscribe('PaginatorPlugin ~> changed', async page => {\n onScrollToTop();\n\n let state = store.getState();\n\n let {\n url,\n items,\n paginator,\n } = await loader.load(loadUrl, {\n format: 'json', page, ...serializeFilters(state.filters)\n });\n\n store.commit(COMMIT_URL, url, { action: 'push' });\n store.commit(COMMIT_ITEMS, items);\n store.commit(COMMIT_PAGINATOR, paginator);\n })\n\n /*\n Инициализация\n */\n\n return {\n connect() {\n store.commit(COMMIT_URL, initialState.url, { action: 'replace' });\n store.commit(COMMIT_ITEMS, initialState.items, { silent: true });\n store.commit(COMMIT_FILTERS, initialState.filters);\n store.commit(COMMIT_PAGINATOR, initialState.paginator);\n }\n }\n}\n","import { h } from 'core/services/VDOM';\nimport cond from 'core/utils/cond';\nfunction Items({ state, onPrevPage, onChangePage, onNextPage }) {\n const hasPrevPage = state.currentPage > 1;\n const hasNextPage = state.currentPage < state.pagesCount;\n const meanOfRange = Math.ceil(state.pagesRangeSize / 2);\n const offset = cond(state.currentPage <= meanOfRange, () => 1, state.currentPage > state.pagesCount - meanOfRange, () => {\n return state.pagesCount - state.pagesRangeSize + 1;\n }, true, () => state.currentPage - meanOfRange + 1);\n const pages = [...Array(state.pagesRangeSize)].map((_, i) => {\n const page = i + offset;\n return { isActive: state.currentPage === page, page };\n });\n const handleChangePage = (page) => () => onChangePage(page);\n return (h(\"div\", { class: 'b-Paginator_items' },\n hasPrevPage && h(\"span\", { class: '_prev', onClick: onPrevPage }),\n pages.map(({ isActive, page }) => (h(\"span\", { class: `_item ${isActive && 'is-active'}`, onClick: handleChangePage(page) }, page))),\n hasNextPage && h(\"span\", { class: '_next', onClick: onNextPage })));\n}\nexport default Items;\n","import { h } from 'core/services/VDOM';\nimport htmlClassNames from 'core/utils/htmlClassNames';\nexport function BtnNext({ state, onNextPage }) {\n const isLastPage = state.currentPage === state.pagesCount;\n const isFlat = document.querySelector('.s-flat-ProductPreview_b-flat-Price');\n const classes = htmlClassNames('b-Paginator_btn-next', {\n 'is-disabled': isLastPage,\n '__flat': isFlat\n });\n return (h(\"div\", { class: classes, onClick: onNextPage }, \"\\u0421\\u043B\\u0435\\u0434\\u0443\\u044E\\u0449\\u0430\\u044F \\u0441\\u0442\\u0440\\u0430\\u043D\\u0438\\u0446\\u0430\"));\n}\nexport default BtnNext;\n","import { h } from 'core/services/VDOM';\nfunction BtnToTop({ onTop }) {\n const isFlat = document.querySelector('.s-flat-ProductPreview_b-flat-Price');\n return (h(\"div\", { class: `b-Paginator_btn-to-top ${isFlat && `__flat`}`, onClick: onTop }, \"\\u041D\\u0430\\u0432\\u0435\\u0440\\u0445\"));\n}\nexport default BtnToTop;\n","import compactObject from 'core/utils/object/compact';\nexport default function COMMIT_SETUP(state, { itemsCount, itemsPerPage, currentPage, maxPagesRangeSize }) {\n state = {\n ...state,\n ...compactObject({\n itemsCount,\n currentPage,\n itemsPerPage,\n maxPagesRangeSize\n })\n };\n let pagesCount = Math.ceil(state.itemsCount / state.itemsPerPage);\n let pagesRangeSize = Math.min(pagesCount, state.maxPagesRangeSize);\n state = {\n ...state,\n pagesCount,\n pagesRangeSize\n };\n return state;\n}\n","export default function compact(object) {\n return Object.entries(object)\n .filter(([_key, value]) => value != undefined)\n .reduce((object, [key, value]) => ({ ...object, [key]: value }), {});\n}\n","export default function COMMIT_NEXT_PAGE(state) {\n return { ...state, currentPage: state.currentPage + 1 };\n}\n","export default function COMMIT_PREV_PAGE(state) {\n return { ...state, currentPage: state.currentPage - 1 };\n}\n","export default function COMMIT_CHANGE_PAGE(state, { page }) {\n return { ...state, currentPage: page };\n}\n","import { createVDOMRenderer, h } from 'core/services/VDOM';\nimport Store from 'core/services/Store';\nimport scrollWindowTo from 'core/utils/scrollWindowTo';\nimport Items from './components/Items';\nimport BtnNext from './components/BtnNext';\nimport BtnToTop from './components/BtnToTop';\nimport COMMIT_SETUP from './commits/setup';\nimport COMMIT_NEXT_PAGE from './commits/nextPage';\nimport COMMIT_PREV_PAGE from './commits/prevPage';\nimport COMMIT_CHANGE_PAGE from './commits/changePage';\nimport { dispatchCustomEvent } from 'core/utils/events';\nfunction PaginatorWidget($widget, { callbacks: { CALLBACK_CHANGE_PAGE } }) {\n const store = Store({\n props: {\n initialState: {\n itemsCount: null,\n currentPage: null,\n itemsPerPage: null,\n maxPagesRangeSize: null,\n pagesCount: null,\n pagesRangeSize: null\n }\n }\n });\n const setup = ({ itemsCount, itemsPerPage, currentPage, maxPagesRangeSize }) => {\n store.commit(COMMIT_SETUP, {\n itemsCount,\n currentPage,\n itemsPerPage,\n maxPagesRangeSize\n });\n };\n const handleTop = () => {\n scrollWindowTo(0, 800);\n };\n const handleNextPage = () => {\n store.commit(COMMIT_NEXT_PAGE);\n };\n const handlePrevPage = () => {\n store.commit(COMMIT_PREV_PAGE);\n };\n const handleChangePage = (page) => {\n store.commit(COMMIT_CHANGE_PAGE, { page });\n };\n const renderer = createVDOMRenderer($widget[0], () => {\n const state = store.getState();\n return state.pagesCount > 1 && (h(\"div\", null,\n h(\"div\", { class: 'b-Paginator_row b-Paginator_head' },\n h(BtnNext, { state: state, onNextPage: handleNextPage }),\n h(BtnToTop, { onTop: handleTop })),\n h(\"div\", { class: 'b-Paginator_row' },\n h(Items, { state: state, onChangePage: handleChangePage, onNextPage: handleNextPage, onPrevPage: handlePrevPage }))));\n });\n store.on('afterCommit', renderer.render);\n const afterCommitFunctions = [COMMIT_NEXT_PAGE, COMMIT_PREV_PAGE, COMMIT_CHANGE_PAGE];\n store.on('afterCommit', (state, commitFunc) => {\n if (afterCommitFunctions.includes(commitFunc)) {\n CALLBACK_CHANGE_PAGE(state.currentPage);\n dispatchCustomEvent($widget.get(0), 'PaginatorWidget:changed');\n }\n });\n return { setup };\n}\nexport default PaginatorWidget;\n","/**\n * @TODO write plugin description\n*/\nimport PaginatorWidget from 'site/widgets/PaginatorWidget';\nexport default function (config) {\n return function PaginatorPlugin({ deps: { mediator } }) {\n let wPaginator = PaginatorWidget(config.$slot, {\n callbacks: {\n CALLBACK_CHANGE_PAGE(page) {\n mediator.dispatch('PaginatorPlugin ~> changed', page);\n }\n }\n });\n let handleUpdate = (state) => {\n wPaginator.setup({\n ...state,\n maxPagesRangeSize: config.maxPagesRangeSize\n });\n };\n return {\n connect() {\n mediator.subscribe('PaginatorPlugin <~ update', handleUpdate);\n },\n disconnect() {\n mediator.unsubscribe('PaginatorPlugin <~ update', handleUpdate);\n }\n };\n };\n}\n"],"names":["COMMIT_URL","state","url","_objectSpread","COMMIT_ITEMS","items","COMMIT_FILTERS","filters","COMMIT_PAGINATOR","paginator","UserList","createList","_ref","loadUrl","initialState","_ref$deps$mediator","deps","mediator","dispatch","subscribe","_ref$callbacks","callbacks","onScrollToTop","onBeforeLoad","onAfterLoad","loader","Loader","store","Store","props","CALLBACK_AFTER_COMMIT","commitFn","_ref2","_ref3","_ref3$","action","_ref3$$silent","silent","cond","when","to","concat","_ref4","_asyncToGenerator","_regeneratorRuntime","_callee","newFilters","_yield$loader$load","_context","prev","next","commit","getState","load","format","serializeFilters","sent","stop","_x","apply","arguments","_ref6","_callee2","_ref5","_yield$loader$load2","newUrl","_context2","_x2","_ref7","_callee3","page","_yield$loader$load3","_context3","_x3","connect","onPrevPage","onChangePage","onNextPage","hasPrevPage","currentPage","hasNextPage","pagesCount","meanOfRange","Math","ceil","pagesRangeSize","offset","pages","Array","map","_","i","isActive","handleChangePage","h","class","onClick","isLastPage","isFlat","document","querySelector","classes","htmlClassNames","onTop","COMMIT_SETUP","object","itemsCount","itemsPerPage","maxPagesRangeSize","Object","entries","filter","_slicedToArray","undefined","reduce","key","value","_defineProperty","min","COMMIT_NEXT_PAGE","COMMIT_PREV_PAGE","COMMIT_CHANGE_PAGE","$widget","CALLBACK_CHANGE_PAGE","handleTop","scrollWindowTo","handleNextPage","handlePrevPage","renderer","createVDOMRenderer","BtnNext","BtnToTop","Items","on","render","afterCommitFunctions","commitFunc","includes","dispatchCustomEvent","get","setup","config","wPaginator","PaginatorWidget","$slot","handleUpdate","disconnect","unsubscribe"],"sourceRoot":""}