{"version":3,"file":"chunk.5658.1cfda143715041272683.54ae603e.js","mappings":"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","sources":["webpack:///./app/assets/javascripts/core/utils/loaderSpinner.ts","webpack:///./app/assets/javascripts/core/services/GTM/handlers/postScroll.ts","webpack:///./app/assets/javascripts/core/services/GTM/ContainerScrollHandler.js","webpack:///./app/assets/javascripts/site/controllers/Postable/utils/applyMeta.ts","webpack:///./app/assets/javascripts/site/controllers/Postable/utils/initScrollStats.ts","webpack:///./app/assets/javascripts/site/controllers/Postable/utils/resetMediaSlots.ts","webpack:///./app/assets/javascripts/site/controllers/Postable/services/PaginationPointService.ts"],"sourcesContent":["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 ContainerScrollHandler from '../ContainerScrollHandler';\nexport const POINTS = [10, 30, 70, 100];\nexport const mapper = (points) => {\n return points.map(({ percent }) => ({\n event: 'postScroll',\n post: {\n scrollPercent: percent\n }\n }));\n};\nContainerScrollHandler({\n selector: '.b-Article',\n points: POINTS,\n cond() {\n return /^\\/(posts|products\\/offers)\\/\\d+/.test(document.location.pathname);\n },\n mapper\n});\n","import { pushToDataLayer } from 'core/services/GTM'\n\nimport rAFThrottle from 'core/utils/rAFThrottle'\n\nfunction ContainerScrollHandler({ selector, cond, points, mapper }) {\n if (!cond()) return\n\n let __triggered = []\n let __points = []\n\n let calcPoints = () => {\n if (__points.length) return __points\n\n let $el = $(selector)\n let position = (($el.offset() ? $el.offset().top : 0) + $el.height()) / 100\n let offset = window.innerHeight / 2\n\n __points = points.map(percent => ({\n percent: percent,\n position: position * percent - offset\n }))\n\n return __points\n }\n\n let isTriggered = point => {\n return __triggered.indexOf(point) > -1\n }\n\n let setTriggered = point => {\n __triggered.push(point)\n }\n\n let handleScroll = rAFThrottle(() => {\n let pageYOffset = window.pageYOffset\n\n let scrolledPoints = calcPoints()\n .filter(point => !isTriggered(point))\n .filter(point => pageYOffset > point.position)\n\n scrolledPoints.forEach(point => setTriggered(point))\n\n if (scrolledPoints.length) {\n pushToDataLayer(mapper(scrolledPoints))\n }\n }, 300)\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n}\n\nexport default ContainerScrollHandler\n","import { documentDispatch } from 'core/utils/events';\nimport { RELOAD_ADMIN_PANEL } from 'site/controllers/AdminPanel';\nexport function applyMeta({ title, url }) {\n document.title = title;\n documentDispatch(RELOAD_ADMIN_PANEL);\n history.pushState({ _type: 'PostableLoad', id: url }, '', url);\n}\n","import ContainerScrollHandler from 'core/services/GTM/ContainerScrollHandler';\nimport { POINTS, mapper } from 'core/services/GTM/handlers/postScroll';\nexport function initScrollStats(el) {\n var _a, _b;\n let targetEl;\n if ((_a = el.nextElementSibling) === null || _a === void 0 ? void 0 : _a.classList.contains('b-Article')) {\n targetEl = el.nextElementSibling;\n }\n else {\n targetEl = (_b = el.nextElementSibling) === null || _b === void 0 ? void 0 : _b.querySelector('.b-Article');\n }\n if (!targetEl)\n return;\n ContainerScrollHandler({ selector: targetEl, points: POINTS, cond: () => true, mapper });\n}\n","const PREFIXES = ['adfox', 'IMR', 'div-gpt-ad'];\nconst LOADED_MOD = '_loaded';\nconst SELECTOR = PREFIXES.map(prefix => `.b-Article [id^=\"${prefix}_\"]:not([id$=\"${LOADED_MOD}\"])`).join(', ');\nexport function resetMediaSlots() {\n document.querySelectorAll(SELECTOR).forEach(node => node.id = node.id + LOADED_MOD);\n}\n","import { HttpClient } from 'core/services/HttpClient';\nimport WayPointService from 'core/services/WayPointService';\nimport { addLoader, removeLoader } from 'core/utils/loaderSpinner';\nimport ScrollLock from 'core/utils/scrollLock';\nimport { applyMeta, initScrollStats, resetMediaSlots } from '../utils';\nimport { connect } from 'core/services/Controller';\nimport { ARTICLE_READY } from '../constants';\nconst WAY_POINT_PRECISION = 6000;\nexport class PaginationPointService {\n constructor(props, el) {\n this.watcherIds = null;\n this.nextActive = false;\n this.loadPromise = null;\n this.nextMeta = null;\n this.handleChangePrev = () => {\n if (!this.nextActive)\n return;\n this.nextActive = false;\n applyMeta(this.props.meta);\n };\n this.handlePreloadNext = async () => {\n addLoader(this.el);\n this.loadPromise = HttpClient.get(this.props.loadUrl);\n const { data: { content } } = await this.loadPromise;\n this.el.insertAdjacentHTML('afterend', content);\n };\n this.enableScroll = () => {\n removeLoader(this.el);\n ScrollLock.disable();\n };\n this.handleNextArticleReady = () => {\n document.removeEventListener(ARTICLE_READY, this.handleNextArticleReady);\n this.enableScroll();\n };\n this.handleChangeNext = async () => {\n var _a;\n if (this.nextActive)\n return;\n this.nextActive = true;\n if (this.nextMeta)\n return applyMeta(this.nextMeta);\n if (!this.loadPromise)\n this.handlePreloadNext();\n ScrollLock.enable();\n try {\n const { data: { meta, dataLayer } } = await this.loadPromise;\n this.nextMeta = meta;\n this.loadPromise = null;\n applyMeta(this.nextMeta);\n resetMediaSlots();\n document.addEventListener(ARTICLE_READY, this.handleNextArticleReady);\n connect(this.el.parentElement);\n window.dataLayer = ((_a = window.dataLayer) !== null && _a !== void 0 ? _a : []).concat(dataLayer);\n setTimeout(() => initScrollStats(this.el), 100);\n }\n catch (_b) {\n this.enableScroll();\n }\n };\n this.props = props;\n this.el = el;\n this.watcherIds = WayPointService.watch([this.preloadWatcher, this.changeWatcher]);\n }\n destroy() {\n if (this.watcherIds)\n WayPointService.unwatch(this.watcherIds);\n }\n get elPageYOffset() {\n return this.el.offsetTop + this.el.getBoundingClientRect().top - window.innerHeight;\n }\n get preloadWatcher() {\n return {\n getPoint: () => {\n return this.elPageYOffset - WAY_POINT_PRECISION;\n },\n onDown: this.handlePreloadNext,\n onUp() { },\n once: true\n };\n }\n get changeWatcher() {\n return {\n getPoint: () => this.elPageYOffset,\n onDown: this.handleChangeNext,\n onUp: this.handleChangePrev\n };\n }\n}\n"],"names":["addLoader","el","size","arguments","length","undefined","parentNode","requestAnimationFrame","loader","document","createElement","classList","add","style","display","innerHTML","Array","fill","join","insertBefore","nextSibling","removeLoader","_a","_b","querySelector","remove","POINTS","mapper","points","map","_ref","event","post","scrollPercent","percent","ContainerScrollHandler","selector","cond","test","location","pathname","__triggered","__points","handleScroll","rAFThrottle","pageYOffset","window","scrolledPoints","$el","$","position","offset","top","height","innerHeight","calcPoints","filter","point","indexOf","isTriggered","forEach","push","setTriggered","pushToDataLayer","addEventListener","passive","applyMeta","title","url","documentDispatch","RELOAD_ADMIN_PANEL","history","pushState","_type","id","initScrollStats","targetEl","nextElementSibling","contains","LOADED_MOD","SELECTOR","prefix","concat","resetMediaSlots","querySelectorAll","node","PaginationPointService","props","_this","_classCallCheck","this","watcherIds","nextActive","loadPromise","nextMeta","handleChangePrev","meta","handlePreloadNext","_asyncToGenerator","_regeneratorRuntime","_callee","_yield$_this$loadProm","content","_context","prev","next","HttpClient","get","loadUrl","sent","data","insertAdjacentHTML","stop","enableScroll","ScrollLock","disable","handleNextArticleReady","removeEventListener","ARTICLE_READY","handleChangeNext","_callee2","_yield$_this$loadProm2","_yield$_this$loadProm3","dataLayer","_context2","abrupt","enable","connect","parentElement","setTimeout","t0","WayPointService","watch","preloadWatcher","changeWatcher","key","value","unwatch","offsetTop","getBoundingClientRect","_this2","getPoint","elPageYOffset","onDown","onUp","once","_this3"],"sourceRoot":""}