{"version":3,"file":"chunk.5658.5dda60bf5ebe29771dab.aaed49bf.js","mappings":"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","sources":["webpack:///../jarvis/app/assets/javascripts/core/services/GTM/handlers/postScroll.ts","webpack:///../jarvis/app/assets/javascripts/core/utils/loaderSpinner.ts","webpack:///../jarvis/app/assets/javascripts/site/controllers/Postable/utils/applyMeta.ts","webpack:///../jarvis/app/assets/javascripts/site/controllers/Postable/utils/initScrollStats.ts","webpack:///../jarvis/app/assets/javascripts/site/controllers/Postable/utils/resetMediaSlots.ts","webpack:///../jarvis/app/assets/javascripts/site/controllers/Postable/services/PaginationPointService.ts","webpack:///../jarvis/app/assets/javascripts/core/services/GTM/ContainerScrollHandler.js"],"sourcesContent":["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","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 { 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","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"],"names":["POINTS","mapper","points","map","_ref","event","post","scrollPercent","percent","ContainerScrollHandler","selector","cond","test","document","location","pathname","addLoader","el","size","arguments","length","undefined","parentNode","requestAnimationFrame","loader","createElement","classList","add","style","display","innerHTML","Array","fill","join","insertBefore","nextSibling","removeLoader","_a","_b","querySelector","remove","applyMeta","title","url","documentDispatch","RELOAD_ADMIN_PANEL","history","pushState","_type","id","initScrollStats","targetEl","nextElementSibling","contains","LOADED_MOD","SELECTOR","prefix","concat","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","querySelectorAll","forEach","node","addEventListener","connect","parentElement","window","setTimeout","t0","WayPointService","watch","preloadWatcher","changeWatcher","key","value","unwatch","offsetTop","getBoundingClientRect","top","innerHeight","_this2","getPoint","elPageYOffset","onDown","onUp","once","_this3","__triggered","__points","handleScroll","rAFThrottle","pageYOffset","scrolledPoints","$el","$","position","offset","height","calcPoints","filter","point","indexOf","isTriggered","push","setTriggered","pushToDataLayer","passive"],"sourceRoot":""}