{"version":3,"file":"chunk.5261.693067d66a4537902052.b749b0b6.js","mappings":"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","sources":["webpack:///./app/assets/javascripts/core/services/InfinityList/PluginsMediator.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/createList.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/Loader.ts","webpack:///./app/assets/javascripts/site/widgets/PaginatorWidget/components/Items.tsx","webpack:///./app/assets/javascripts/site/widgets/PaginatorWidget/commits/setup.ts","webpack:///./app/assets/javascripts/core/utils/object/compact.ts","webpack:///./app/assets/javascripts/site/widgets/PaginatorWidget/commits/nextPage.ts","webpack:///./app/assets/javascripts/site/widgets/PaginatorWidget/commits/prevPage.ts","webpack:///./app/assets/javascripts/site/widgets/PaginatorWidget/commits/changePage.ts","webpack:///./app/assets/javascripts/site/widgets/PaginatorWidget/index.tsx","webpack:///./app/assets/javascripts/core/services/InfinityList/plugins/PaginatorPlugin.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/plugins/ItemsPlugin.ts","webpack:///./app/assets/javascripts/core/services/InfinityList/plugins/UrlPlugin.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3';\nfunction PluginsMediator() {\n const eventEmitter = new EventEmitter();\n const subscribe = (eventName, callback) => {\n eventEmitter.on(eventName, callback);\n };\n const dispatch = (eventName, ...args) => setImmediate(() => {\n console.log('%c%s', 'color: white; background: green', eventName, args);\n eventEmitter.emit(eventName, ...args);\n });\n const unsubscribe = (eventName, callback) => {\n eventEmitter.off(eventName, callback);\n };\n return { subscribe, dispatch, unsubscribe };\n}\nexport default PluginsMediator;\n","import PluginsMediator from './PluginsMediator';\nexport default function createList(Dispatcher) {\n return ({ loadUrl, plugins, initialState, callbacks: { onScrollToTop, onBeforeLoad, onAfterLoad } }) => {\n const mediator = PluginsMediator();\n const dispatcher = Dispatcher({\n loadUrl,\n initialState,\n deps: {\n mediator\n },\n callbacks: {\n onScrollToTop,\n onBeforeLoad,\n onAfterLoad\n }\n });\n const pluginInstances = plugins.filter(Boolean).map((plugin) => {\n return plugin({\n deps: {\n mediator\n }\n });\n });\n return {\n connect() {\n pluginInstances.forEach(plugin => plugin.connect());\n dispatcher.connect();\n },\n disconnect() {\n pluginInstances.forEach(plugin => plugin.disconnect && plugin.disconnect());\n dispatcher.disconnect && dispatcher.disconnect();\n }\n };\n };\n}\n","import Http from 'core/services/Http';\nexport default function Loader({ callbacks: { onBeforeLoad, onAfterLoad } }) {\n const load = async (loadUrl, params = {}) => {\n onBeforeLoad();\n console.log('%c%s', 'background: blue; color: white', 'Start request...', loadUrl, params);\n Http.subscribe('afterRequest', ([response, content]) => {\n let location = content === null || content === void 0 ? void 0 : content.redirectTo;\n console.log('%c%s', 'background: orange; color: black', 'Http interceptor: afterRequest', location);\n if (location) {\n console.log('Http interceptor: redirect to ', location);\n window.location.href = location;\n return [response, content];\n }\n // Return the original response for other interceptors in the chain\n return [response, content];\n });\n const result = await Http.get(loadUrl, { params, redirect: 'manual' });\n console.log('%c%s', 'background: blue; color: white', 'End request');\n onAfterLoad(result);\n return result;\n };\n return { load };\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 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';\n// import scrollWindowTo from 'core/utils/scrollWindowTo'\nimport Items from './components/Items';\n// import BtnNext from './components/BtnNext'\n// import 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' },\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","import { connect, disconnect } from 'core/services/Controller';\n/**\n * Items plugin replaces or appends items in $slot\n * when receives appropriate event from a mediator\n */\nimport { documentDispatch } from 'core/utils/events';\nexport default function (config) {\n return function ItemsPlugin({ deps: { mediator } }) {\n const { getSlotsForItems } = config;\n const handleAppend = (items, afterEvent) => {\n getSlotsForItems(items).map(({ $slot, items }) => {\n requestAnimationFrame(() => {\n $slot[0].insertAdjacentHTML('beforeend', items.join(''));\n connect($slot[0]);\n afterEvent && documentDispatch(afterEvent);\n });\n });\n };\n const handleReplace = (items, afterEvent) => {\n getSlotsForItems(items).map(({ $slot, items }) => {\n disconnect($slot[0]);\n requestAnimationFrame(() => {\n $slot[0].innerHTML = items.join('');\n connect($slot[0]);\n afterEvent && documentDispatch(afterEvent);\n });\n });\n };\n return {\n connect() {\n mediator.subscribe('ItemsPlugin <~ replace', handleReplace);\n mediator.subscribe('ItemsPlugin <~ append', handleAppend);\n },\n disconnect() {\n mediator.unsubscribe('ItemsPlugin <~ replace', handleReplace);\n mediator.unsubscribe('ItemsPlugin <~ append', handleAppend);\n }\n };\n };\n}\n","/**\n * Url plugin listens to \"popstate\" event and dispatches it to a mediator\n * Also pushes or replaces history state when receives appropriate event from a mediator\n */\nexport default function () {\n return function UrlPlugin({ deps: { mediator } }) {\n let lastTimestamp;\n const markState = (state) => {\n const timestamp = lastTimestamp = Date.now();\n return {\n ...state,\n _timestamp: timestamp,\n _type: 'UrlPlugin'\n };\n };\n const handlePush = ({ state, url }) => {\n history.pushState(markState(state), '', url);\n };\n const handleReplace = ({ state, url }) => {\n history.replaceState(markState(state), '', url);\n };\n const handleChangeUrl = ({ state: newState }) => {\n if (!newState || lastTimestamp === newState._timestamp)\n return;\n if (newState._type === 'UrlPlugin') {\n mediator.dispatch('UrlPlugin ~> changed', newState);\n lastTimestamp = newState._timestamp;\n }\n };\n return {\n connect() {\n window.addEventListener('popstate', handleChangeUrl);\n mediator.subscribe('UrlPlugin <~ push', handlePush);\n mediator.subscribe('UrlPlugin <~ replace', handleReplace);\n },\n disconnect() {\n window.removeEventListener('popstate', handleChangeUrl);\n mediator.unsubscribe('UrlPlugin <~ push', handlePush);\n mediator.unsubscribe('UrlPlugin <~ replace', handleReplace);\n }\n };\n };\n}\n"],"names":["eventEmitter","EventEmitter","subscribe","eventName","callback","on","dispatch","_len","arguments","length","args","Array","_key","setImmediate","console","log","emit","apply","concat","unsubscribe","off","createList","Dispatcher","_ref","loadUrl","plugins","initialState","_ref$callbacks","callbacks","onScrollToTop","onBeforeLoad","onAfterLoad","mediator","PluginsMediator","dispatcher","deps","pluginInstances","filter","Boolean","map","plugin","connect","forEach","disconnect","Loader","load","_ref2","_regeneratorRuntime","_callee","params","result","_args","_context","prev","next","undefined","Http","_ref3","_ref4","response","content","location","redirectTo","window","href","get","redirect","sent","abrupt","stop","_x","state","onPrevPage","onChangePage","onNextPage","hasPrevPage","currentPage","hasNextPage","pagesCount","meanOfRange","Math","ceil","pagesRangeSize","offset","cond","pages","_","i","page","isActive","handleChangePage","h","class","onClick","COMMIT_SETUP","object","itemsCount","itemsPerPage","maxPagesRangeSize","_objectSpread","Object","entries","_slicedToArray","reduce","key","value","_defineProperty","min","COMMIT_NEXT_PAGE","COMMIT_PREV_PAGE","COMMIT_CHANGE_PAGE","$widget","CALLBACK_CHANGE_PAGE","store","Store","props","handleNextPage","commit","handlePrevPage","renderer","createVDOMRenderer","getState","Items","render","afterCommitFunctions","commitFunc","includes","dispatchCustomEvent","setup","config","wPaginator","PaginatorWidget","$slot","handleUpdate","getSlotsForItems","handleAppend","items","afterEvent","requestAnimationFrame","insertAdjacentHTML","join","documentDispatch","handleReplace","innerHTML","lastTimestamp","markState","timestamp","Date","now","_timestamp","_type","handlePush","url","history","pushState","replaceState","handleChangeUrl","newState","addEventListener","removeEventListener"],"sourceRoot":""}