{"version":3,"sources":["webpack://fair-labour/./assets/components/header/js/page-locker.js","webpack://fair-labour/./assets/components/header/js/page-locker-index.js","webpack://fair-labour/./assets/components/header/js/_header-menu.component.js","webpack://fair-labour/./assets/components/header/js/dropdown.js","webpack://fair-labour/./assets/components/header/js/news-card-topic.js","webpack://fair-labour/./assets/components/header/index.js","webpack://fair-labour/./assets/project/general/js/array-helper.ts","webpack://fair-labour/./assets/project/general/js/scroll-observer.ts","webpack://fair-labour/./assets/project/general/js/dynamic-styles-service.ts","webpack://fair-labour/./assets/project/general/js/id-generator.ts","webpack://fair-labour/./assets/components/animate/js/enums.ts","webpack://fair-labour/./assets/components/animate/js/clip-animation.ts","webpack://fair-labour/./assets/components/animate/js/transition-animation.ts","webpack://fair-labour/./assets/components/animate/js/title-spans.tsx","webpack://fair-labour/./assets/components/animate/js/title-animation.tsx","webpack://fair-labour/./assets/components/animate/js/load-promise.ts","webpack://fair-labour/./assets/components/animate/js/animate.component.js","webpack://fair-labour/./assets/components/animate/index.js","webpack://fair-labour/./assets/project/general/js/app.js","webpack://fair-labour/./assets/init.js"],"names":["PageLocker","_classCallCheck","this","_initialScrollPosition","_retainers","_isLocked","_isCompensated","defaultOptions","target","document","documentElement","useInlineStyles","lockedClass","needCompensate","compensateClass","checkIOS","lockedClassIOS","onLock","onUnlock","options","_styleTag","_makeStyleTag","key","value","arguments","length","undefined","_objectSpread","tag","createElement","setAttribute","head","appendChild","scrollSize","getScrollbarSize","scrollbarSize","innerHTML","concat","scrollDiv","style","cssText","body","offsetWidth","clientWidth","removeChild","retainerId","_typeof","Error","_isIos","window","pageYOffset","top","classList","add","position","width","_compensate","source","_isFree","remove","scrollTo","_this","Object","keys","every","navigator","platform","match","pageLocker","HeaderMenu","_DcBaseComponent","_inherits","_super","_len","args","Array","_key","_defineProperty","_assertThisInitialized","call","apply","addListener","refs","btnMenu","_onMenuToggle","btnSearch","_searchContentToggle","overlay","_searchContentHide","scrollService","element","_autoHideHeader","currentPosition","scrollTop","lastScrollTop","htmlTag","contains","_isMobMenuOpen","_isSearchOpen","eventBus","_searchContentOpen","contentMenu","_pageLockToggle","querySelector","hideOverlay","bind","openOverlay","_addListeners","contentSearch","state","lock","unlock","DcBaseComponent","Dropdown","innerPage","_isActive","_onClickTrigger","_onKeydownTrigger","hide","open","_this2","_this3","whatInput","trigger","forEach","x","event","preventDefault","which","isExperienceEditor","content","height","offsetHeight","NewsCardTopic","template","tname","closest","tippy","allowHTML","theme","placement","interactive","maxWidth","arrow","dcFactory","isEmptyArray","array","isArray","DEFAULT_OPTIONS","threshold","ScrollObserver","_createClass","subscribers","subscribe","node","cb","intersectionObserver","observe","push","filter","subscriber","unobserve","IntersectionObserver","entries","entry","intersectionRatio","foundSubscriber","find","scrollObserver","dynamicStylesService","DynamicStylesService","parent","elements","setStyles","_ref","id","selector","css","_updateTag","map","join","ALPHABET","idGenerator","customAlphabet","toUpperCase","imagesFactorials","freeze","BOTTOM_TO_TOP","steps","left","v","right","bottom","RIGHT_TO_LEFT","LEFT_TO_RIGHT","defaultValues","TIMEOUT_IMAGE_LOAD","BLOCK_DELAY","BLOCK_STEP","CLIP_STEP","CLIP_DURATION","TITLE_STEP","TITLE_DURATION","OPTIONS_ATTR","cssClasses","ACTIVE","FADE_OUT","FINISHED","ClipAnimation","name","_ref$duration","duration","_ref$delay","delay","isActive","_init","_makeStyles","_setAnimationStyles","_getFactorials","animate","addEventListener","_onAnimationFinish","animationName","animationDuration","animationDelay","removeEventListener","_getKeyFrames","_getRect","step","_getV","factorials","clientHeight","size","side","Math","floor","offset","destroy","TransitionAnimation","_ref$transitionName","transitionName","transitionDelay","transitionDuration","willChange","requestAnimationFrame","setTimeout","TitleSpans","text","_ref$delayStart","delayStart","delayStep","parentNodeWidth","setTimeForClear","useMemo","nanoid","_useState2","useState","split","word","ref","useRef","words","setWords","useEffect","lastLineWidth","current","React","index","className","TitleAnimation","timer","clearTimeout","_onFinishAnimate","_timeForClear","isInited","ReactDOM","_this$node$textConten","textContent","trim","elemWidth","_setTimeForClear","last","isFadeOut","LAZY_LOADED_CLASS","Animations","Animation","_delay","_options","animations","hasAttribute","JSON","parse","getAttribute","_options$delay","AnimateComponent","loadAnimation","_onFinishloadAnimation","_startInit","unsubscribe","domItems","timeOut","_initAnimations","clipBlocks","_startAnimate","timeOutImageLoad","Promise","resolve","reject","callbacks","promises","_resolve","img","matches","_onLazyLoad","setLazyLoad","all","then","_this$options","clipStep","clipDelay","titleStep","titleDelay","scaleStep","scaleDelay","fadeStep","fadeDelay","_this$refs","scaleBlocks","fadeBlocks","titleBlocks","clips","titles","scales","fades","_toConsumableArray","animation","App","config","appConfig","appState","isReduceMotionEnabled","matchMedia","isEditingMode","isMobile","init"],"mappings":"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","file":"init.500a4bea35596ae2743c.js","sourcesContent":["class PageLocker {\r\n constructor() {\r\n this._initialScrollPosition = 0;\r\n this._retainers = {};\r\n this._isLocked = false;\r\n this._isCompensated = false;\r\n\r\n this.defaultOptions = {\r\n target: document.documentElement,\r\n useInlineStyles: true,\r\n lockedClass: 'is-locked',\r\n needCompensate: true,\r\n compensateClass: 'compensate-scroll',\r\n checkIOS: true,\r\n lockedClassIOS: 'is-locked-ios',\r\n onLock: null,\r\n onUnlock: null\r\n };\r\n\r\n this.options = this.defaultOptions;\r\n this._styleTag = this._makeStyleTag();\r\n }\r\n\r\n setOptions(options = {}) {\r\n this.options = { ...this.defaultOptions, ...options };\r\n }\r\n\r\n _makeStyleTag() {\r\n const tag = document.createElement('style');\r\n tag.setAttribute('type', 'text/css');\r\n document.head.appendChild(tag);\r\n return tag;\r\n }\r\n\r\n _compensate() {\r\n const scrollSize = this.getScrollbarSize();\r\n if (this.scrollbarSize !== scrollSize) {\r\n this.scrollbarSize = scrollSize;\r\n this._styleTag.innerHTML = `.${this.options.compensateClass} { padding-right: ${scrollSize}px}`;\r\n }\r\n }\r\n\r\n getScrollbarSize() {\r\n const scrollDiv = document.createElement('div');\r\n scrollDiv.style.cssText =\r\n 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\r\n document.body.appendChild(scrollDiv);\r\n const scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n document.body.removeChild(scrollDiv);\r\n return scrollbarSize;\r\n }\r\n\r\n lock(retainerId) {\r\n if (typeof retainerId === undefined) {\r\n throw new Error('You must specify the retainer which causes the lock');\r\n }\r\n\r\n this._retainers[retainerId] = true;\r\n if (!this._isLocked) {\r\n if (this.options.checkIOS && this._isIos()) {\r\n // save current scroll position in order to restore it after unlock\r\n this._initialScrollPosition = window.pageYOffset;\r\n this.options.target.style.top = -this._initialScrollPosition + 'px';\r\n this.options.target.classList.add(this.options.lockedClassIOS);\r\n if (this.options.useInlineStyles) {\r\n this.options.target.style.position = 'fixed';\r\n this.options.target.style.width = '100%';\r\n }\r\n } else {\r\n if (this.options.needCompensate && !this._isCompensated) {\r\n this._isCompensated = true;\r\n this._compensate();\r\n }\r\n }\r\n this._isLocked = true;\r\n\r\n if (this.options.onLock) {\r\n this.options.onLock();\r\n }\r\n }\r\n }\r\n\r\n unlock(source) {\r\n if (typeof source === undefined) {\r\n throw new Error('You must specify the retainer which stop the lock');\r\n }\r\n this._retainers[source] = false;\r\n if (this._isFree() && this._isLocked) {\r\n if (this.options.useInlineStyles) {\r\n this.options.target.style.cssText = null;\r\n }\r\n\r\n if (this.options.checkIOS && this._isIos()) {\r\n this.options.target.classList.remove(this.options.lockedClassIOS);\r\n window.scrollTo(0, this._initialScrollPosition);\r\n }\r\n\r\n this._isLocked = false;\r\n\r\n if (this.options.onUnlock) {\r\n this.options.onUnlock();\r\n }\r\n }\r\n }\r\n\r\n _isFree() {\r\n return Object.keys(this._retainers).every(key => this._retainers[key] === false);\r\n }\r\n\r\n _isIos() {\r\n return !!navigator.platform.match(/iPhone|iPod|iPad/);\r\n }\r\n}\r\n\r\nexport default PageLocker;\r\n","import PageLocker from './page-locker';\n\nconst pageLocker = new PageLocker();\nexport { PageLocker, pageLocker };\n","import { DcBaseComponent } from '@deleteagency/dc';\nimport { eventBus } from 'project/event-bus';\nimport { PageLocker, pageLocker } from 'components/header/js/page-locker-index';\nimport { scrollService } from 'project/general/js/scroll-service';\n\nclass HeaderMenu extends DcBaseComponent {\n constructor(...args) {\n super(...args);\n this._isSearchOpen = false;\n this.overlay = document.querySelector('.overlay');\n this.hideOverlay = this.hideOverlay.bind(this);\n this.openOverlay = this.openOverlay.bind(this);\n this._isMobMenuOpen = false;\n this.lastScrollTop = 0;\n }\n\n static getNamespace() {\n return 'header-menu';\n }\n\n static getRequiredRefs() {\n return ['btnMenu', 'contentMenu', 'btnSearch', 'contentSearch'];\n }\n\n onInit() {\n this._addListeners();\n }\n\n _addListeners = () => {\n this.addListener(this.refs.btnMenu, 'click', () => this._onMenuToggle());\n this.addListener(this.refs.btnSearch, 'click', () => this._searchContentToggle());\n this.addListener(this.overlay, 'click', () => this._searchContentHide());\n scrollService.subscribe(this.element, () => this._autoHideHeader());\n };\n\n _autoHideHeader = () => {\n const currentPosition = window.pageYOffset || document.documentElement.scrollTop;\n if (currentPosition > this.lastScrollTop) {\n // down\n const htmlTag = document.documentElement;\n if (\n !htmlTag.classList.contains('is-locked') &&\n !htmlTag.classList.contains('is-locked-ios')\n ) {\n this.element.classList.add('is-hiding');\n }\n } else {\n // up\n\n this.element.classList.remove('is-hiding');\n }\n this.lastScrollTop = currentPosition <= 0 ? 0 : currentPosition;\n };\n\n _searchContentToggle = () => {\n if (this._isMobMenuOpen) {\n this._onMenuToggle();\n }\n if (this._isSearchOpen) {\n this._searchContentHide();\n } else {\n eventBus.emit('closeAllDropdowns');\n this._searchContentOpen();\n }\n };\n\n _searchContentHide() {\n this.hideOverlay();\n this.refs.contentSearch.classList.remove('is-active');\n this.refs.btnSearch.classList.remove('is-active');\n this._isSearchOpen = false;\n this._pageLockToggle(this._isSearchOpen);\n }\n\n _searchContentOpen() {\n this.openOverlay();\n this.refs.contentSearch.classList.add('is-active');\n this.refs.btnSearch.classList.add('is-active');\n this._isSearchOpen = true;\n this._pageLockToggle(this._isSearchOpen);\n }\n\n _onMenuToggle = () => {\n if (this._isSearchOpen) {\n this._searchContentHide();\n }\n\n if (this.refs.contentMenu.classList.contains('is-active')) {\n this.refs.contentMenu.classList.remove('is-active');\n this.refs.btnMenu.classList.remove('is-active');\n this._isMobMenuOpen = false;\n this._pageLockToggle(false);\n } else {\n this.refs.contentMenu.classList.add('is-active');\n this.refs.btnMenu.classList.add('is-active');\n this._isMobMenuOpen = true;\n this._pageLockToggle(true);\n }\n };\n\n openOverlay() {\n this.overlay.classList.add('is-active');\n this._pageLockToggle(true);\n }\n\n hideOverlay() {\n this.overlay.classList.remove('is-active');\n this._pageLockToggle(false);\n }\n\n _pageLockToggle(state) {\n if (!state) {\n pageLocker.unlock('header__item--nav');\n } else {\n pageLocker.lock('header__item--nav');\n }\n }\n}\n\nexport default HeaderMenu;\n","import whatInput from 'what-input';\r\nimport { DcBaseComponent } from '@deleteagency/dc';\r\nimport { eventBus } from '../../../project/event-bus';\r\nimport { PageLocker, pageLocker } from 'components/header/js/page-locker-index';\r\n\r\nexport default class Dropdown extends DcBaseComponent {\r\n constructor(...args) {\r\n super(...args);\r\n this.overlay = document.querySelector('.overlay');\r\n this.innerPage = document.querySelector('.inner-page');\r\n this._isActive = false;\r\n\r\n this._onClickTrigger = this._onClickTrigger.bind(this);\r\n this._pageLockToggle = this._pageLockToggle.bind(this);\r\n this._onKeydownTrigger = this._onKeydownTrigger.bind(this);\r\n this.hideOverlay = this.hideOverlay.bind(this);\r\n this.openOverlay = this.openOverlay.bind(this);\r\n this.hide = this.hide.bind(this);\r\n this.open = this.open.bind(this);\r\n }\r\n\r\n static getNamespace() {\r\n return 'dropdown';\r\n }\r\n\r\n static getRequiredRefs() {\r\n return ['trigger', 'content'];\r\n }\r\n\r\n onInit() {\r\n this._addListeners();\r\n eventBus.addListener('closeAllDropdowns', () => {\r\n this.hide();\r\n });\r\n }\r\n\r\n _addListeners() {\r\n whatInput.ask();\r\n this.refs.trigger.forEach((x) => {\r\n this.addListener(x, 'click', (event) => {\r\n if (whatInput.ask() === 'touch' || whatInput.ask() === 'mouse') {\r\n if (\r\n typeof event !== 'undefined' &&\r\n typeof event.preventDefault === 'function'\r\n ) {\r\n event.preventDefault();\r\n this.element.classList.add('no-hover');\r\n }\r\n this._onClickTrigger();\r\n }\r\n });\r\n });\r\n\r\n this.addListener(this.overlay, 'click', () => this.hide());\r\n this.addListener(this.innerPage, 'click', () => this.hide());\r\n }\r\n\r\n _pageLockToggle(state) {\r\n // const pageLocker = new PageLocker();\r\n if (!state) {\r\n pageLocker.unlock('header__item--nav');\r\n } else {\r\n pageLocker.lock('header__item--nav');\r\n }\r\n }\r\n\r\n _onClickTrigger() {\r\n if (this._isActive) {\r\n this.hide();\r\n } else {\r\n eventBus.emit('closeAllDropdowns');\r\n this.open();\r\n }\r\n }\r\n\r\n _onKeydownTrigger(event) {\r\n const keyCode = event.which;\r\n\r\n switch (keyCode) {\r\n case 13:\r\n case 32:\r\n if (!this.isExperienceEditor) {\r\n this._onClickTrigger(event);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n open() {\r\n this.openOverlay();\r\n this.element.classList.remove('is-hidden');\r\n this.element.classList.add('is-opened');\r\n this.refs.content[0].classList.add('is-visible');\r\n this.refs.content[0].style.height = this.refs.content[0].offsetHeight + 'px';\r\n this._isActive = true;\r\n this._pageLockToggle(this._isActive);\r\n }\r\n\r\n hide() {\r\n this.hideOverlay();\r\n this.element.classList.remove('is-opened');\r\n this.element.classList.add('is-hidden');\r\n this.refs.content[0].classList.remove('is-visible');\r\n this.refs.content[0].style.height = 'auto';\r\n this._isActive = false;\r\n this._pageLockToggle(this._isActive);\r\n }\r\n\r\n openOverlay() {\r\n this.overlay.classList.add('is-active');\r\n this._pageLockToggle(true);\r\n }\r\n\r\n hideOverlay() {\r\n this.overlay.classList.remove('is-active');\r\n this._pageLockToggle(false);\r\n }\r\n}\r\n","import { DcBaseComponent } from '@deleteagency/dc';\nimport tippy from 'tippy.js';\nimport 'tippy.js/dist/tippy.css';\nimport 'tippy.js/themes/light-border.css';\n\nexport default class NewsCardTopic extends DcBaseComponent {\n static getNamespace() {\n return 'news-card-topic';\n }\n\n onInit() {\n const template = this.element.querySelector('[data-dc-news-card-list]');\n const tname = this.element.closest('.sublevel') !== null ? 'news-in-navigation' : 'news';\n tippy(this.element, {\n content: template.innerHTML,\n allowHTML: true,\n trigger: 'click',\n theme: tname,\n placement: 'bottom',\n interactive: true,\n maxWidth: 150,\n arrow: false,\n });\n }\n}\n","import './scss/index.scss';\n\nimport { dcFactory } from '@deleteagency/dc';\nimport HeaderMenu from './js/_header-menu.component';\nimport Dropdown from './js/dropdown';\nimport NewsCardTopic from './js/news-card-topic';\n\ndcFactory.register(HeaderMenu);\ndcFactory.register(Dropdown);\ndcFactory.register(NewsCardTopic);\n","const isEmptyArray = (array: any[]): boolean => !Array.isArray(array) || !array.length;\n\nexport { isEmptyArray };\n","import 'intersection-observer';\n\nconst DEFAULT_OPTIONS = {\n threshold: [0, 0.25, 0.5, 0.75, 1],\n};\n\nclass ScrollObserver {\n private subscribers: any[] = [];\n\n private intersectionObserver: IntersectionObserver;\n\n constructor() {\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.intersectionRatio <= 0) return;\n const foundSubscriber = this.subscribers.find(\n (subscriber) => subscriber.node === entry.target\n );\n\n if (!foundSubscriber) return;\n\n foundSubscriber.cb();\n });\n },\n {\n ...DEFAULT_OPTIONS,\n }\n );\n }\n\n public subscribe = (node: HTMLElement, cb: CallableFunction) => {\n this.intersectionObserver.observe(node);\n this.subscribers.push({\n node,\n cb,\n });\n\n return () => {\n this.subscribers = this.subscribers.filter((subscriber) => subscriber.node !== node);\n this.intersectionObserver.unobserve(node);\n };\n };\n}\n\nconst scrollObserver = new ScrollObserver();\n\n// @ts-ignore\nexport { scrollObserver };\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","import { customAlphabet } from 'nanoid';\n\nconst ALPHABET = 'abcdefghijklmnopqrstuvwxyz';\n\nexport const idGenerator = customAlphabet(ALPHABET + ALPHABET.toUpperCase(), 6);\n","import { iFactorials } from './clip-animation';\n\nconst BOTTOM_TO_TOP: iFactorials = {\n steps: ['0', '100'],\n left: {\n 0: { v: 0 },\n 100: { v: 0 },\n },\n right: {\n 0: { v: 1 },\n 100: { v: 1 },\n },\n top: {\n 0: { v: 1 },\n 100: { v: 0 },\n },\n bottom: {\n 0: { v: 1 },\n 100: { v: 1 },\n },\n};\n\nconst RIGHT_TO_LEFT: iFactorials = {\n steps: ['0', '100'],\n left: {\n 0: { v: 1 },\n 100: { v: 0 },\n },\n right: {\n 0: { v: 1 },\n 100: { v: 1 },\n },\n top: {\n 0: { v: 0 },\n 100: { v: 0 },\n },\n bottom: {\n 0: { v: 1 },\n 100: { v: 1 },\n },\n};\n\nconst LEFT_TO_RIGHT: iFactorials = {\n steps: ['0', '100'],\n left: {\n 0: { v: 0 },\n 100: { v: 0 },\n },\n right: {\n 0: { v: 0 },\n 100: { v: 1 },\n },\n top: {\n 0: { v: 0 },\n 100: { v: 0 },\n },\n bottom: {\n 0: { v: 1 },\n 100: { v: 1 },\n },\n};\n\nconst imagesFactorials = Object.freeze({\n BOTTOM_TO_TOP,\n RIGHT_TO_LEFT,\n LEFT_TO_RIGHT,\n});\n\nconst defaultValues = Object.freeze({\n TIMEOUT_IMAGE_LOAD: 2000,\n BLOCK_DELAY: 500,\n BLOCK_STEP: 250,\n CLIP_STEP: 350,\n CLIP_DURATION: 800,\n TITLE_STEP: 250,\n TITLE_DURATION: 800,\n OPTIONS_ATTR: 'data-options',\n});\n\nconst cssClasses = Object.freeze({\n ACTIVE: 'is-active-animation',\n FADE_OUT: 'fade-out',\n FINISHED: 'is-finished-animation',\n});\n\nexport { cssClasses, imagesFactorials, defaultValues };\n","import { dynamicStylesService } from 'project/general/js/dynamic-styles-service';\nimport { idGenerator } from 'project/general/js/id-generator';\nimport { cssClasses, defaultValues, imagesFactorials } from './enums';\n\ninterface iSide {\n [key: string]: {\n v: number;\n offset?: number;\n };\n}\n\ninterface iFactorials {\n steps: string[];\n top: iSide;\n right: iSide;\n bottom: iSide;\n left: iSide;\n}\n\ninterface ClipAnimationProps {\n node: HTMLElement;\n name: string;\n duration?: number;\n delay?: number;\n}\n\nclass ClipAnimation {\n private isActive = false;\n\n private node: HTMLElement;\n\n private id: string = idGenerator();\n\n private duration: number;\n\n private delay: number;\n\n private factorials: iFactorials;\n\n constructor({\n node,\n name,\n duration = defaultValues.CLIP_DURATION,\n delay = 0,\n }: ClipAnimationProps) {\n this.node = node;\n this.duration = duration;\n this.delay = delay;\n this.factorials = this._getFactorials(name);\n if (node && node.clientWidth > 0) {\n this._init();\n }\n }\n\n private _init = (): void => {\n this._makeStyles();\n this._setAnimationStyles();\n };\n\n private _getFactorials = (name: string): iFactorials => {\n switch (name) {\n case 'clipLeft':\n return imagesFactorials.RIGHT_TO_LEFT;\n case 'clipRight':\n return imagesFactorials.LEFT_TO_RIGHT;\n default:\n return imagesFactorials.BOTTOM_TO_TOP;\n }\n };\n\n public animate = (): void => {\n const { node, id } = this;\n if (node && node.clientWidth > 0) {\n node.addEventListener('animationend', this._onAnimationFinish);\n node.style.animationName = id;\n this.isActive = true;\n }\n };\n\n private _setAnimationStyles = (): void => {\n const { node, duration, delay } = this;\n if (duration !== defaultValues.CLIP_DURATION)\n node.style.animationDuration = duration + 'ms';\n if (delay > 0) node.style.animationDelay = delay + 'ms';\n };\n\n private _onAnimationFinish = (): void => {\n this.isActive = false;\n this.node.removeEventListener('animationend', this._onAnimationFinish);\n this.node.classList.add(cssClasses.FINISHED);\n this.node.style.animationName = '';\n dynamicStylesService.remove(this.id);\n };\n\n private _makeStyles = () => {\n const { id } = this;\n dynamicStylesService.setStyles({\n id,\n selector: `@keyframes ${id}`,\n css: this._getKeyFrames(),\n });\n };\n\n private _getRect = (step: string): string => {\n const { node, _getV, factorials } = this;\n const width = node.clientWidth;\n const height = node.clientHeight;\n return (\n `rect(${_getV(height, factorials.top, step)}px,` +\n `${_getV(width, factorials.right, step)}px,` +\n `${_getV(height, factorials.bottom, step)}px,` +\n `${_getV(width, factorials.left, step)}px)`\n );\n };\n\n private _getV = (size: number, side: iSide, step: string): number => {\n return Math.floor(size * side[step].v - (side[step].offset || 0));\n };\n\n private _getKeyFrames = (): string =>\n `${this.factorials.steps\n .map((step) => `${step}% { clip: ${this._getRect(step)}}`)\n .join(' ')}`;\n\n public destroy = (): void => {\n if (this.isActive) this.node.removeEventListener('animationend', this._onAnimationFinish);\n };\n}\n\nexport { iFactorials, ClipAnimation };\n","import { cssClasses } from './enums';\n\ninterface TransitionAnimationProps {\n node: HTMLElement;\n delay?: number;\n transitionName?: string;\n duration: number;\n}\n\nclass TransitionAnimation {\n private readonly transitionName: string;\n\n private readonly delay: number;\n\n private readonly duration: number;\n\n private node: HTMLElement;\n\n constructor({\n node,\n delay = 0,\n transitionName = 'opacity',\n duration,\n }: TransitionAnimationProps) {\n this.node = node;\n this.delay = delay;\n this.transitionName = transitionName;\n this.duration = duration;\n this._init();\n }\n\n _init = (): void => {\n if (this.delay > 0) this.node.style.transitionDelay = this.delay + 'ms';\n if (this.duration !== undefined) {\n this.node.style.transitionDuration = this.duration + 'ms';\n }\n };\n\n public animate = (): void => {\n this.node.style.willChange = this.transitionName;\n requestAnimationFrame(() => {\n this.node.classList.add(cssClasses.ACTIVE);\n });\n setTimeout(() => {\n this.node.style.willChange = '';\n }, this.duration);\n };\n}\n\nexport { TransitionAnimation };\n","// @ts-ignore\nimport React, { useState, useEffect, useMemo, useRef, Ref, ReactElement } from 'react';\nimport { nanoid } from 'nanoid';\n\nconst TitleSpans = ({\n text,\n delayStart = 0,\n delayStep,\n parentNodeWidth,\n setTimeForClear,\n}: iTitleSpans): ReactElement => {\n const id = useMemo(() => nanoid(10), []);\n const [words, setWords] = useState(\n // eslint-disable-next-line react-hooks/rules-of-hooks\n text\n .split(' ')\n .map((word) => ({ value: word, ref: useRef(null), delay: 0 }))\n );\n useEffect(() => {\n let lastLineWidth = 0;\n let delay = 0;\n\n words.forEach((word) => {\n const {\n ref: { current },\n } = word;\n const width = ((current as unknown) as HTMLSpanElement).clientWidth;\n if (lastLineWidth + width >= parentNodeWidth) {\n lastLineWidth = width;\n delay += delayStep;\n } else {\n lastLineWidth += width;\n }\n word.delay = delay;\n });\n setTimeForClear(delay);\n setWords(words);\n }, []);\n\n return (\n <>\n {words.map((word, index) => (\n \n \n {`${word.value}${index < words.length - 1 ? ' ' : ''}`}\n \n \n ))}\n \n );\n};\n\ninterface iTitleSpans {\n parentNodeWidth: number;\n text: string;\n delayStep: number;\n delayStart: number;\n setTimeForClear: CallableFunction;\n}\n\nexport { TitleSpans };\n","// @ts-ignore\nimport ReactDOM from 'react-dom';\n// @ts-ignore\nimport React from 'react';\nimport { TitleSpans } from './title-spans';\nimport { defaultValues, cssClasses } from './enums';\n\ninterface TitleAnimationProps {\n node: HTMLElement;\n delayStep: number;\n delay: number;\n duration: number;\n}\n\nclass TitleAnimation {\n private node: HTMLElement;\n\n private isInited: boolean | undefined;\n\n private delayStep?: number;\n\n private delay?: number;\n\n private _timeForClear: number | undefined;\n\n private duration?: number;\n\n private timer: number | undefined;\n\n constructor({ node, delayStep, delay, duration }: TitleAnimationProps) {\n this.node = node;\n this.delay = delay;\n this.delayStep = delayStep;\n this.duration = duration;\n if (node !== null) {\n this._init();\n }\n }\n\n public animate = (): void => {\n if (this.timer) {\n clearTimeout(this.timer);\n this.node.classList.remove(cssClasses.FADE_OUT);\n }\n this.timer = setTimeout(this._onFinishAnimate, this._timeForClear);\n requestAnimationFrame(() => {\n this.node.classList.add(cssClasses.ACTIVE);\n });\n };\n\n public hide = (): void => {\n setTimeout(() => this._onFinishAnimate(true), this._timeForClear);\n requestAnimationFrame(() => {\n this.node.classList.add(cssClasses.FADE_OUT);\n this.node.classList.remove(cssClasses.ACTIVE);\n });\n };\n\n public destroy = (): void => {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n if (this.isInited) ReactDOM.unmountComponentAtNode(this.node);\n };\n\n private _init = (): void => {\n this.isInited = true;\n const text = this.node.textContent?.trim();\n const elemWidth = this.node.clientWidth;\n if (text) {\n this.node.setAttribute('aria-label', text);\n this.node.innerHTML = '';\n ReactDOM.render(\n ,\n this.node\n );\n }\n };\n\n private _setTimeForClear = (last: number): void => {\n this._timeForClear = last + (this.duration || defaultValues.TITLE_DURATION);\n };\n\n private _onFinishAnimate = (isFadeOut: boolean | undefined): void => {\n if (isFadeOut) {\n this.node.classList.remove(cssClasses.FADE_OUT);\n }\n };\n}\n\nexport { TitleAnimation };\n","import { isEmptyArray } from 'project/general/js/array-helper';\nimport { defaultValues } from './enums';\n\nconst LAZY_LOADED_CLASS = 'lazyloaded';\n\nconst setLazyLoad = (node: HTMLElement, resolve: CallableFunction): CallableFunction => {\n const _onLazyLoad = () => {\n node.removeEventListener(LAZY_LOADED_CLASS, _onLazyLoad);\n resolve();\n };\n node.addEventListener(LAZY_LOADED_CLASS, _onLazyLoad);\n return () => node.removeEventListener(LAZY_LOADED_CLASS, _onLazyLoad);\n};\n\n/*\n we have used polyfill in ie, which generated duplicate img for emulate style \"objectfit\",\n so it's little hack for prevent making useless listeners\n*/\n// const _validImage = (parent) => [...parent.querySelectorAll('img')].reverse()[0];\n\nexport const loadPromise = (domItems: HTMLElement[], timeOut?: number): Promise =>\n new Promise((resolve, reject) => {\n const callbacks: CallableFunction[] = [];\n if (isEmptyArray(domItems)) reject();\n const promises = domItems.map(\n (node) =>\n new Promise((_resolve) => {\n const img = node.matches('img') ? node : node.querySelector('img');\n if (img === null || img.querySelector(`.${LAZY_LOADED_CLASS}`)) {\n _resolve();\n } else {\n callbacks.push(setLazyLoad(img, _resolve));\n }\n })\n );\n const timer = setTimeout(() => {\n callbacks.forEach((cb) => cb());\n resolve();\n }, timeOut || defaultValues.TIMEOUT_IMAGE_LOAD);\n Promise.all(promises).then(() => {\n clearTimeout(timer);\n resolve();\n });\n });\n","import { DcBaseComponent } from '@deleteagency/dc';\nimport { isEmptyArray } from 'project/general/js/array-helper';\nimport { scrollObserver } from 'project/general/js/scroll-observer';\nimport { ClipAnimation } from './clip-animation';\nimport { TransitionAnimation } from './transition-animation';\nimport { TitleAnimation } from './title-animation';\nimport { defaultValues } from './enums';\nimport { loadPromise } from './load-promise';\n\nfunction Animations(Animation, refs, step, _delay, _options) {\n if (!isEmptyArray(refs)) {\n this.animations = refs.map((node, index) => {\n const options = node.hasAttribute(defaultValues.OPTIONS_ATTR)\n ? JSON.parse(node.getAttribute(defaultValues.OPTIONS_ATTR))\n : {};\n const { delay = index * step + _delay } = options;\n return new Animation({\n ..._options,\n ...options,\n node,\n delay,\n });\n });\n this.delay = _delay;\n } else {\n this.animations = [];\n this.delay = 0;\n }\n}\n\nconst FINISHED_CLASS = 'is-finished';\nconst LOAD_ANIMATION_ATTRIBUTE = 'data-dc-load-animation';\n\nexport default class AnimateComponent extends DcBaseComponent {\n static getNamespace() {\n return 'animate';\n }\n\n onInit() {\n this.loadAnimation = document.querySelector(`[${LOAD_ANIMATION_ATTRIBUTE}]`);\n if (!this.loadAnimation || this.loadAnimation.matches(`.${FINISHED_CLASS}`)) {\n this._startInit();\n } else {\n this.loadAnimation.addEventListener('animationend', this._onFinishloadAnimation);\n }\n }\n\n _onFinishloadAnimation = () => {\n this.loadAnimation.removeEventListener('animationend', this._onFinishloadAnimation);\n this._startInit();\n };\n\n _startInit = () => {\n this.unsubscribe = scrollObserver.subscribe(this.element, () => {\n if (isEmptyArray(Object.keys(this.refs))) {\n new TransitionAnimation({ node: this.element }).animate();\n } else {\n this._initAnimations();\n if (!isEmptyArray(this.refs.clipBlocks)) {\n loadPromise(this.refs.clipBlocks, this.options.timeOutImageLoad).then(\n this._startAnimate\n );\n } else {\n this._startAnimate();\n }\n }\n this.unsubscribe();\n });\n };\n\n _initAnimations = () => {\n const {\n clipStep,\n clipDelay,\n titleStep,\n titleDelay,\n scaleStep,\n scaleDelay,\n fadeStep,\n fadeDelay,\n } = this.options;\n const { scaleBlocks, fadeBlocks, titleBlocks, clipBlocks } = this.refs;\n const clips = new Animations(\n ClipAnimation,\n clipBlocks,\n clipStep || defaultValues.CLIP_STEP,\n clipDelay || 0\n );\n const titles = new Animations(\n TitleAnimation,\n titleBlocks,\n titleStep || defaultValues.TITLE_STEP,\n titleDelay || clips.delay + defaultValues.BLOCK_DELAY\n );\n const scales = new Animations(\n TransitionAnimation,\n scaleBlocks,\n scaleStep || defaultValues.BLOCK_STEP,\n scaleDelay || clips.delay + titles.delay + defaultValues.BLOCK_DELAY,\n { name: 'transform' }\n );\n const fades = new Animations(\n TransitionAnimation,\n fadeBlocks,\n fadeStep || defaultValues.BLOCK_STEP,\n fadeDelay || clips.delay + titles.delay + scales.delay + defaultValues.BLOCK_DELAY,\n { name: 'opacity' }\n );\n this.animations = [\n ...clips.animations,\n ...titles.animations,\n ...scales.animations,\n ...fades.animations,\n ];\n };\n\n _startAnimate = () => {\n this.animations.forEach((animation) => animation.animate());\n };\n\n onDestroy = () => {\n this.animations.forEach((animation) => animation.destroy());\n this.unsubscribe();\n };\n}\n","import './scss/index.scss';\n\nimport { dcFactory } from '@deleteagency/dc';\nimport AnimateComponent from './js/animate.component';\n\ndcFactory.register(AnimateComponent);\n","import { dcFactory } from '@deleteagency/dc';\n\nclass App {\n constructor() {\n this.config = window.appConfig || {};\n this.state = window.appState || {};\n this.isReduceMotionEnabled = matchMedia(\n 'only screen and (prefers-reduced-motion: reduce)'\n ).matches;\n this.isEditingMode = document.body.classList.contains('is-editing-mode');\n this.isMobile = document.documentElement.classList.contains('is-mobile');\n }\n\n init() {\n dcFactory.init();\n }\n}\n\nconst instance = new App();\nexport default instance;\n","/* components */\nimport './components/header';\nimport './components/footer';\nimport './components/animate';\n\nimport { app } from 'project/general';\n\napp.init();\n"],"sourceRoot":""}