{"version":3,"sources":["webpack:///../jarvis/app/assets/javascripts/core/utils/object/compact.ts","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/ItemList/commits/url.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/ItemList/commits/items.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/ItemList/commits/loadMore.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/ItemList/commits/paginator.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/ItemList/index.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/lists/ItemList/Dispatcher.js","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/plugins/UrlPlugin.ts","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/plugins/ItemsPlugin.ts","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/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","webpack:///../jarvis/app/assets/javascripts/site/widgets/LoadMoreWidget.ts","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/plugins/LoadMorePlugin.ts","webpack:///../jarvis/app/assets/javascripts/core/utils/loaderSpinner.ts","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/createList.ts","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/Loader.ts","webpack:///../jarvis/app/assets/javascripts/core/services/InfinityList/PluginsMediator.ts"],"names":["compact","object","Object","entries","filter","_ref","_ref2","_slicedToArray","undefined","reduce","_ref3","_ref4","key","value","_objectSpread","_defineProperty","COMMIT_URL","state","url","COMMIT_ITEMS","items","COMMIT_LOAD_MORE","loadMore","COMMIT_PAGINATOR","paginator","ItemList","createList","loadUrl","initialState","_ref$deps$mediator","deps","mediator","dispatch","subscribe","_ref$callbacks","callbacks","onScrollToTop","onBeforeLoad","onAfterLoad","loader","Loader","store","Store","props","CALLBACK_AFTER_COMMIT","commitFn","_ref3$","action","_ref3$$silent","silent","cond","when","to","concat","_ref5","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_yield$loader$load","wrap","_context","prev","next","load","format","sent","commit","stop","_x","apply","arguments","_ref6","_callee2","page","_yield$loader$load2","_context2","_x2","_ref7","_callee3","_yield$loader$load3","_context3","_x3","connect","lastTimestamp","markState","timestamp","Date","now","_timestamp","_type","handlePush","Env","abTesting","experiment3Test","history","pushState","handleReplace","replaceState","handleChangeUrl","newState","window","addEventListener","disconnect","removeEventListener","unsubscribe","config","getSlotsForItems","handleAppend","afterEvent","map","$slot","requestAnimationFrame","insertAdjacentHTML","join","documentDispatch","innerHTML","Items","onPrevPage","onChangePage","onNextPage","hasPrevPage","currentPage","hasNextPage","pagesCount","meanOfRange","Math","ceil","pagesRangeSize","offset","pages","_toConsumableArray","Array","_","i","isActive","handleChangePage","h","class","onClick","BtnNext","isLastPage","isFlat","document","querySelector","classes","htmlClassNames","BtnToTop","onTop","COMMIT_SETUP","itemsCount","itemsPerPage","maxPagesRangeSize","compactObject","min","COMMIT_NEXT_PAGE","COMMIT_PREV_PAGE","COMMIT_CHANGE_PAGE","PaginatorWidget","$widget","CALLBACK_CHANGE_PAGE","handleTop","scrollWindowTo","handleNextPage","handlePrevPage","renderer","createVDOMRenderer","getState","on","render","afterCommitFunctions","commitFunc","includes","dispatchCustomEvent","get","setup","wPaginator","handleUpdate","LoadMoreWidget","_a","autoLoad","CALLBACK_LOAD_MORE","_ref$callbacks$GET_WA","GET_WAY_POINT","onLoad","wayWatcherIds","addWayPoints","removeWayPoints","WayPointService","watch","getPoint","precision","version","top","Infinity","onDown","onUp","once","unwatch","hide","addClass","show","removeClass","destroy","resolvePage","_config$slotElPrefix","slotElPrefix","_config$disableLoadAn","disableLoadAnimation","awaitPayload","Promise","resolve","awaitRequested","getPaginationSlot","wLoadMore","addLoader","find","removeLoader","setTimeout","el","size","length","parentNode","createElement","classList","add","style","display","fill","insertBefore","nextSibling","_b","remove","Dispatcher","plugins","PluginsMediator","dispatcher","pluginInstances","Boolean","plugin","forEach","params","result","_args","console","log","Http","abrupt","eventEmitter","EventEmitter","eventName","callback","_len","args","_key","setImmediate","emit","off"],"mappings":"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","file":"chunk.6.566ab844d74ef73305b2.77c30c84.js","sourcesContent":["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_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_LOAD_MORE(state, loadMore) {\n return { ...state, loadMore }\n}\n","export default function COMMIT_PAGINATOR(state, paginator) {\n return { ...state, paginator }\n}\n","import createList from '../../createList';\n\nimport Dispatcher from './Dispatcher';\n\nimport UrlPlugin from '../../plugins/UrlPlugin';\nimport ItemsPlugin from '../../plugins/ItemsPlugin';\nimport LoadMorePlugin from '../../plugins/LoadMorePlugin';\nimport PaginatorPlugin from '../../plugins/PaginatorPlugin';\n\nexport let ItemList = createList(Dispatcher)\n\nexport {\n UrlPlugin,\n ItemsPlugin,\n LoadMorePlugin,\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_LOAD_MORE from './commits/loadMore'\nimport COMMIT_PAGINATOR from './commits/paginator'\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: null,\n loadMore: null,\n paginator: null\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 && action,\n to => dispatch(`ItemsPlugin <~ ${action}`, state.items),\n\n when => commitFn === COMMIT_PAGINATOR,\n to => dispatch('PaginatorPlugin <~ update', state.paginator),\n\n when => commitFn === COMMIT_LOAD_MORE,\n to => dispatch('LoadMorePlugin <~ update', state.loadMore),\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 subscribe('UrlPlugin ~> changed', async ({ loadUrl }) => {\n let {\n url,\n items,\n loadMore,\n paginator,\n } = await loader.load(loadUrl, {\n format: 'json'\n })\n\n // *TODO fix listing bug/ remove if nothing breaks | Created at: 14.Jun.2019\n // await onScrollToTop('top');\n\n store.commit(COMMIT_URL, url, { silent: true })\n store.commit(COMMIT_LOAD_MORE, loadMore)\n store.commit(COMMIT_PAGINATOR, paginator)\n store.commit(COMMIT_ITEMS, items, { action: 'replace' })\n })\n\n /**\n * Изменилась страница\n */\n subscribe('PaginatorPlugin ~> changed', async page => {\n let {\n url,\n items,\n loadMore,\n paginator\n } = await loader.load(loadUrl, {\n page, format: 'json'\n })\n\n await onScrollToTop('items')\n\n store.commit(COMMIT_URL, url, { action: 'push' })\n store.commit(COMMIT_LOAD_MORE, loadMore)\n store.commit(COMMIT_PAGINATOR, paginator)\n store.commit(COMMIT_ITEMS, items, { action: 'replace' })\n })\n\n /**\n * Нажали ЗАГРУЗИТЬ ЕЩЕ\n */\n subscribe('LoadMorePlugin ~> moreRequested', async page => {\n let {\n items,\n loadMore,\n paginator\n } = await loader.load(loadUrl, {\n page\n })\n\n store.commit(COMMIT_ITEMS, items, { action: 'append' })\n store.commit(COMMIT_PAGINATOR, paginator)\n store.commit(COMMIT_LOAD_MORE, loadMore)\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_LOAD_MORE, initialState.loadMore)\n store.commit(COMMIT_PAGINATOR, initialState.paginator)\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 if (Env.abTesting.experiment3Test)\n return;\n history.pushState(markState(state), '', url);\n };\n const handleReplace = ({ state, url }) => {\n if (Env.abTesting.experiment3Test)\n return;\n history.replaceState(markState(state), '', url);\n };\n const handleChangeUrl = ({ state: newState }) => {\n if (Env.abTesting.experiment3Test)\n return;\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","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","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 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 if (Env.abTesting.experiment3Test)\n return;\n mediator.subscribe('PaginatorPlugin <~ update', handleUpdate);\n },\n disconnect() {\n if (Env.abTesting.experiment3Test)\n return;\n mediator.unsubscribe('PaginatorPlugin <~ update', handleUpdate);\n }\n };\n };\n}\n","import WayPointService from 'core/services/WayPointService';\nconst WAY_POINT_PRECISION = 1800;\nfunction LoadMoreWidget({ props: { autoLoad }, callbacks: { CALLBACK_LOAD_MORE, GET_WAY_POINT = () => undefined } }) {\n const onLoad = () => {\n CALLBACK_LOAD_MORE();\n };\n let wayWatcherIds = [];\n const addWayPoints = () => {\n if (!autoLoad)\n return;\n removeWayPoints();\n wayWatcherIds = WayPointService.watch([\n {\n getPoint: () => {\n var _a;\n const offset = (_a = GET_WAY_POINT()) === null || _a === void 0 ? void 0 : _a.offset();\n const precision = Env.version === 'mobile' ? 2 * WAY_POINT_PRECISION : WAY_POINT_PRECISION;\n return offset ? offset.top - precision : Infinity;\n },\n onDown: onLoad,\n onUp: () => { },\n once: true\n }\n ]);\n };\n const removeWayPoints = () => {\n if (autoLoad)\n WayPointService.unwatch(wayWatcherIds);\n };\n const init = () => {\n var _a;\n if (!autoLoad)\n (_a = GET_WAY_POINT()) === null || _a === void 0 ? void 0 : _a.on('click', onLoad);\n addWayPoints();\n };\n const hide = () => {\n var _a;\n (_a = GET_WAY_POINT()) === null || _a === void 0 ? void 0 : _a.addClass('is-hidden');\n removeWayPoints();\n };\n const show = () => {\n var _a;\n (_a = GET_WAY_POINT()) === null || _a === void 0 ? void 0 : _a.removeClass('is-hidden');\n };\n const destroy = () => {\n removeWayPoints();\n };\n init();\n return { hide, show, destroy, addWayPoints };\n}\nexport default LoadMoreWidget;\n","/**\n * @TODO write plugin description\n */\nimport { removeLoader, addLoader } from 'core/utils/loaderSpinner';\nimport LoadMoreWidget from 'site/widgets/LoadMoreWidget';\nexport default function (config) {\n return function LoadMorePlugin({ deps: { mediator } }) {\n const { $slot, autoLoad, slotElPrefix = 'w-LoadMore', disableLoadAnimation = false } = config;\n let currentPage = 1;\n let resolvePage;\n let awaitPayload = new Promise(resolve => resolvePage = resolve); // to add sync for handleUpdate method\n let awaitRequested = false;\n const getPaginationSlot = () => $slot[0].querySelector(`[data-el=\"${slotElPrefix}-${currentPage}\"`);\n const wLoadMore = LoadMoreWidget({\n props: { autoLoad },\n callbacks: {\n CALLBACK_LOAD_MORE: () => {\n awaitRequested = true;\n awaitPayload.finally(() => {\n awaitRequested = false;\n if (autoLoad && !disableLoadAnimation)\n addLoader(getPaginationSlot());\n mediator.dispatch('LoadMorePlugin ~> moreRequested', currentPage + 1);\n });\n },\n GET_WAY_POINT: () => $slot.find(autoLoad ? `%{${slotElPrefix}-${currentPage}}` : `%{${slotElPrefix}}`)\n }\n });\n const handleUpdate = ({ isLastPage, page }) => {\n if (!awaitRequested)\n awaitPayload = new Promise(resolve => resolvePage = resolve);\n if (isLastPage)\n wLoadMore.hide();\n else\n wLoadMore.show();\n if (autoLoad && !disableLoadAnimation)\n removeLoader(getPaginationSlot());\n currentPage = page;\n resolvePage();\n if (!isLastPage)\n setTimeout(wLoadMore.addWayPoints, 100);\n };\n return {\n connect() {\n mediator.subscribe('LoadMorePlugin <~ update', handleUpdate);\n },\n disconnect() {\n wLoadMore.destroy();\n mediator.unsubscribe('LoadMorePlugin <~ update', handleUpdate);\n }\n };\n };\n}\n","export function addLoader(el, size = 5) {\n if (!(el === null || el === void 0 ? void 0 : el.parentNode))\n return;\n requestAnimationFrame(() => {\n const loader = document.createElement('div');\n loader.classList.add('b-AjaxLoader');\n loader.style.display = 'block';\n loader.innerHTML = new Array(size).fill('
').join('\\n');\n el.parentNode.insertBefore(loader, el.nextSibling);\n });\n}\nexport function removeLoader(el) {\n requestAnimationFrame(() => {\n var _a, _b;\n (_b = (_a = el === null || el === void 0 ? void 0 : el.parentNode) === null || _a === void 0 ? void 0 : _a.querySelector('.b-AjaxLoader')) === null || _b === void 0 ? void 0 : _b.remove();\n });\n}\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 const result = await Http.get(loadUrl, { params });\n console.log('%c%s', 'background: blue; color: white', 'End request');\n onAfterLoad(result);\n return result;\n };\n return { load };\n}\n","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"],"sourceRoot":""}