{"version":3,"sources":["webpack://Unipol/./src/config.js","webpack://Unipol/./src/general/js/enums.ts","webpack://Unipol/./src/general/js/device.js","webpack://Unipol/./src/general/js/dynamic-styles-service.ts","webpack://Unipol/./src/general/js/scrollbar-handler.js","webpack://Unipol/./src/general/js/app.ts","webpack://Unipol/./src/index.js"],"names":["module","exports","viewports","tablet","desktop","containerMaxWidth","constants","Object","freeze","CONTAINER_MAX_WIDTH","VIEWPORT_WIDTH_DESKTOP_WIDE","VIEWPORT_WIDTH_DESKTOP","VIEWPORT_WIDTH_TABLET","deviceObserver","ACTIVE_CLASS","MAX_PAGES_MOBILE","MAX_PAGES_DESKTOP","DeviceObserver","init","mobile","dynamicStylesService","constructor","document","head","createElement","id","selector","css","this","elements","_updateTag","tag","innerHTML","keys","map","key","join","parent","appendChild","scrollbarHandler","container","documentElement","scrollbarSize","_getScrollbarSize","hasScrollBar","body","scrollHeight","clientHeight","getScrollbarSize","scrollDiv","style","cssText","offsetWidth","clientWidth","removeChild","nanoid","window","appConfig","matches","innerHeight","dcFactory","_setScrollbarSize","_watchViewport","_setViewportSize"],"mappings":"6EAAAA,EAAOC,QAAU,CACbC,UAAW,CACP,cAAe,IACfC,OAAQ,IACRC,QAAS,KACT,eAAgB,KAChB,gBAAiB,MAErBC,kBAAmB,O,wECNhB,MAAMC,EAAYC,OAAOC,OAAO,CACnCC,oBAAqBJ,oBACrBK,4BAA6BR,4BAC7BS,uBAAwBT,oBACxBU,sBAAuBV,qBCHrBW,GDMuBN,OAAOC,OAAO,CACvCM,aAAc,cAGMP,OAAOC,OAAO,CAClCO,iBAAkB,EAClBC,kBAAmB,KCZA,IAAIC,K,wHAE3BJ,EAAeK,KAAK,CAChBC,OAAQ,EACRhB,OAAQG,EAAUM,sBAClBR,QAASE,EAAUK,uBACnB,eAAgBL,EAAUI,8BCsBvB,MAAMU,EAAuB,IA/BpC,MAOIC,cAAc,gBANKC,SAASC,MAMd,aAJAD,SAASE,cAAc,UAIvB,kBAF0D,IAE1D,oBAIF,EAAGC,KAAIC,WAAUC,UACzBC,KAAKC,SAASJ,GAAM,CAAEC,WAAUC,OAChCC,KAAKE,gBANK,qBASD,KACT,MAAM,SAAED,GAAaD,KACrBA,KAAKG,IAAIC,UAAYzB,OAAO0B,KAAKJ,GAC5BK,KAAKC,GAAS,GAAEN,EAASM,GAAKT,cAAcG,EAASM,GAAKR,UAC1DS,KAAK,QAbA,iBAgBJX,IACFG,KAAKC,SAASJ,YACPG,KAAKC,SAASJ,GACrBG,KAAKE,iBAlBTF,KAAKS,OAAOC,YAAYV,KAAKG,OCiBxBQ,EAAmB,IAzBhC,MACIlB,cACIO,KAAKY,UAAYlB,SAASmB,gBAC1Bb,KAAKc,cAAgBd,KAAKe,oBAG9BC,eACI,OAAOtB,SAASuB,KAAKC,aAAexB,SAASmB,gBAAgBM,aAGjEC,mBACI,OAAOpB,KAAKc,cAGhBC,oBACI,MAAMM,EAAY3B,SAASE,cAAc,OACzCyB,EAAUC,MAAMC,QACZ,iFACJ7B,SAASuB,KAAKP,YAAYW,GAC1B,MAAMP,EAAgBO,EAAUG,YAAcH,EAAUI,YAExD,OADA/B,SAASuB,KAAKS,YAAYL,GACnBP,I,yHC+BI,IAnCnB,MAAU,2BACOa,QAAO,KADd,gBAGUC,OAAOC,WAAa,IAH9B,kBAKYnC,SAASmB,gBAAgBiB,QAAQ,eAL7C,2BAkBqB,KACvBtC,YAA+B,CAC3BK,GAAIG,KAAKH,GAAK,IACdC,SAAU,QACVC,IAAM,sBAAqB6B,OAAOG,sBAtBpC,4BA0BsB,KACxBvC,YAA+B,CAC3BK,GAAIG,KAAKH,GAAK,IACdC,SAAU,QACVC,IAAM,gBAAeY,EAAiBS,6BAvBvC9B,OACH0C,YACAhC,KAAKiC,oBACLjC,KAAKkC,iBAGDA,iBACJlC,KAAKmC,mBACLlD,oBAAiCe,KAAKmC,qBC9B1C7C,S","file":"app.3f80b6d1cb53ed5510ec.js","sourcesContent":["module.exports = {\n viewports: {\n 'mobile-wide': 580,\n tablet: 768,\n desktop: 1024,\n 'desktop-wide': 1280,\n 'desktop-ultra': 1440,\n },\n containerMaxWidth: 1170,\n};\n","import { viewports, containerMaxWidth } from '../../config';\n\nexport const constants = Object.freeze({\n CONTAINER_MAX_WIDTH: containerMaxWidth,\n VIEWPORT_WIDTH_DESKTOP_WIDE: viewports['desktop-wide'],\n VIEWPORT_WIDTH_DESKTOP: viewports.desktop,\n VIEWPORT_WIDTH_TABLET: viewports.tablet,\n});\n\nexport const defaultValues = Object.freeze({\n ACTIVE_CLASS: 'is-active',\n});\n\nexport const maxPages = Object.freeze({\n MAX_PAGES_MOBILE: 6,\n MAX_PAGES_DESKTOP: 10,\n});\n","import { DeviceObserver } from '@deleteagency/device-observer';\nimport { constants } from './enums';\n\nconst deviceObserver = new DeviceObserver();\n\ndeviceObserver.init({\n mobile: 0,\n tablet: constants.VIEWPORT_WIDTH_TABLET,\n desktop: constants.VIEWPORT_WIDTH_DESKTOP,\n 'desktop-wide': constants.VIEWPORT_WIDTH_DESKTOP_WIDE\n});\n\nexport { deviceObserver };\n","class DynamicStylesService {\n protected parent = document.head;\n\n private tag = document.createElement('style');\n\n private elements: { [id: string]: { selector: string; css: string } } = {};\n\n constructor() {\n this.parent.appendChild(this.tag);\n }\n\n setStyles = ({ id, selector, css }: { id: string; selector: string; css: string }): void => {\n this.elements[id] = { selector, css };\n this._updateTag();\n };\n\n _updateTag = (): void => {\n const { elements } = this;\n this.tag.innerHTML = Object.keys(elements)\n .map((key) => `${elements[key].selector} { ${elements[key].css} }`)\n .join(' ');\n };\n\n remove = (id: string): void => {\n if (this.elements[id]) {\n delete this.elements[id];\n this._updateTag();\n }\n };\n}\n\nexport const dynamicStylesService = new DynamicStylesService();\n","class ScrollbarHandler {\n constructor() {\n this.container = document.documentElement;\n this.scrollbarSize = this._getScrollbarSize();\n }\n\n hasScrollBar() {\n return document.body.scrollHeight > document.documentElement.clientHeight;\n }\n\n getScrollbarSize() {\n return this.scrollbarSize;\n }\n\n _getScrollbarSize() {\n const scrollDiv = document.createElement('div');\n scrollDiv.style.cssText =\n 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n document.body.appendChild(scrollDiv);\n const scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarSize;\n }\n}\n\nexport const scrollbarHandler = new ScrollbarHandler();\n","// @ts-ignore\nimport { dcFactory } from '@deleteagency/dc';\nimport { nanoid } from 'nanoid';\nimport { deviceObserver } from './device';\nimport { dynamicStylesService } from './dynamic-styles-service';\nimport { scrollbarHandler } from './scrollbar-handler';\n\ndeclare global {\n interface Window {\n appConfig: {\n captchaSiteKey: string;\n portalId: string;\n gaMeasurementID: string;\n };\n }\n}\n\nclass App {\n private id = nanoid(10);\n\n public config = window.appConfig || {};\n\n public isTouch = !document.documentElement.matches('.can-hover');\n\n public init(): void {\n dcFactory.init();\n this._setScrollbarSize();\n this._watchViewport();\n }\n\n private _watchViewport(): void {\n this._setViewportSize();\n deviceObserver.subscribeOnResize(this._setViewportSize);\n }\n\n private _setViewportSize = (): void => {\n dynamicStylesService.setStyles({\n id: this.id + 'v',\n selector: '.body',\n css: `--viewport-height: ${window.innerHeight}px;`,\n });\n };\n\n private _setScrollbarSize = (): void => {\n dynamicStylesService.setStyles({\n id: this.id + 's',\n selector: '.body',\n css: `--scrollbar: ${scrollbarHandler.getScrollbarSize()}px;`,\n });\n };\n}\n\nexport const app = new App();\n","import { app } from './general/js/app';\n\napp.init();\n"],"sourceRoot":""}