{"version":3,"sources":["webpack:///./modules/Global.ts"],"names":["__webpack_require__","r","__webpack_exports__","uikit__WEBPACK_IMPORTED_MODULE_0__","uikit__WEBPACK_IMPORTED_MODULE_0___default","n","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_1__","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_2__","Global","element","_this","this","countryInfoContent","querySelector","countryInfo","countryName","querySelectorAll","mapArea","continentName","worldMapImage","accordion","infoTooltip","infoIcon","closeCountryInfoBtn","closeInfoPopupBtn","gMapApiKey","dataset","gmk","addEventListener","event","closeCountryInfo","togglePopUp","mapHover","showCountryInfo","a","multiple","animation","durartion","offset","setup","selector","Array","from","document","filter","node","moduleInitialized","forEach","prototype","elementArr","worldMapSrc","getAttribute","areaDataSrc","target","setAttribute","preventDefault","openAccordion","accordionCountryId","getElementById","parentElement","parentID","classList","contains","doScrolling","isAccordionOpen","setTimeout","click","nextItem","nextElementSibling","infoModule","miniMap","Object","createCmpScript","getAddress","address","createMapImage","innerHTML","add","nextItemcloned","cloneNode","appendChild","initSliderMobile","s","createElement","sliderMobileSelector","sliderContent","length","insertAdjacentHTML","slider","draggable","stopPropagation","remove","toggle","newAddress","replace","image","accordionItem","getElementY","query","window","pageYOffset","getBoundingClientRect","top","duration","start","startingY","elementY","diff","body","scrollHeight","innerHeight","requestAnimationFrame","step","timestamp","time","percent","Math","min","t","easing","scrollTo"],"mappings":"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","file":"./modules/Global.8889c455.js","sourcesContent":["const moduleSelector = '[data-module=\"Global\"]';\r\n\r\nimport UIkit from 'uikit';\r\nimport { isMobile } from '../helpers/helperFunctions';\r\nimport { hasClass } from \"../helpers/DOMHelpers\";\r\n\r\nexport default class Global {\r\n private countryInfoContent: HTMLElement;\r\n private countryInfo: HTMLElement;\r\n private infoTooltip: HTMLElement;\r\n private countryName: NodeList;\r\n private mapArea: NodeList;\r\n private worldMapImage: HTMLElement;\r\n private accordion: HTMLElement;\r\n private continentName: NodeList;\r\n private gMapApiKey: string;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new Global(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.countryInfoContent = this.element.querySelector('.cw-country-info');\r\n this.countryInfo = this.element.querySelector('.cw-country-info .wrapper');\r\n this.countryName = this.element.querySelectorAll('.country-name');\r\n this.mapArea = this.element.querySelectorAll('.cw-map-area');\r\n this.continentName = this.element.querySelectorAll('.cw-continent-name');\r\n this.worldMapImage = this.element.querySelector('#cw-world-map-image');\r\n this.accordion = this.element.querySelector('.cp-accordion');\r\n this.infoTooltip = this.element.querySelector('.cw-info-tooltip');\r\n const infoIcon = this.element.querySelector('.cw-info-icon');\r\n const closeCountryInfoBtn = this.element.querySelector('.cw-close-country-info');\r\n const closeInfoPopupBtn = this.element.querySelector('.cw-close-popup');\r\n this.gMapApiKey = element.dataset.gmk;\r\n\r\n closeCountryInfoBtn.addEventListener('click', (event) => this.closeCountryInfo(event));\r\n closeInfoPopupBtn.addEventListener('click', (event) => this.togglePopUp(event));\r\n infoIcon.addEventListener('click', (event) => this.togglePopUp(event));\r\n\r\n this.mapHover(this.mapArea);\r\n this.mapHover(this.continentName);\r\n this.showCountryInfo();\r\n\r\n UIkit.accordion(\".cp-accordion-list\",\r\n {\r\n multiple: false,\r\n animation: true,\r\n durartion: 100,\r\n offset: 180\r\n });\r\n }\r\n\r\n mapHover(elementArr) {\r\n Array.from(elementArr).forEach((element: HTMLElement) => {\r\n const worldMapSrc = this.worldMapImage.getAttribute('src');\r\n\r\n element.addEventListener('mouseover',\r\n (event) => {\r\n const target = event.target;\r\n const areaDataSrc = target.getAttribute('data-src');\r\n this.worldMapImage.setAttribute('src', areaDataSrc);\r\n });\r\n\r\n element.addEventListener('mouseleave',\r\n () => {\r\n this.worldMapImage.setAttribute('src', worldMapSrc);\r\n });\r\n\r\n element.addEventListener('click',\r\n (event) => {\r\n event.preventDefault();\r\n const target = event.target;\r\n const continentName = target.getAttribute('target');\r\n this.closeCountryInfo(event);\r\n this.openAccordion(continentName);\r\n });\r\n });\r\n }\r\n\r\n openAccordion(continentName) {\r\n const accordionCountryId = document.getElementById(continentName);\r\n accordionCountryId.parentElement.setAttribute('id', 'accordion-position');\r\n const parentID = accordionCountryId.parentElement.getAttribute('id');\r\n\r\n if (accordionCountryId !== null) {\r\n if (!accordionCountryId.parentElement.classList.contains('uk-open')) {\r\n this.isAccordionOpen();\r\n setTimeout(() => {\r\n this.doScrolling(`#${parentID}`, 1000);\r\n accordionCountryId.parentElement.setAttribute('id', '');\r\n accordionCountryId.click();\r\n }, 300);\r\n } else {\r\n this.doScrolling(`#${parentID}`, 1000);\r\n accordionCountryId.parentElement.setAttribute('id', '');\r\n }\r\n }\r\n }\r\n\r\n showCountryInfo() {\r\n Array.from(this.countryName).forEach((element: HTMLElement) => {\r\n element.addEventListener('click',\r\n () => {\r\n let nextItem: HTMLElement = element.nextElementSibling as HTMLElement,\r\n infoModule = nextItem.querySelectorAll('.info-module');\r\n\r\n if (nextItem) {\r\n Array.from(nextItem.querySelectorAll('.map-canvas')).forEach((miniMap: HTMLElement) => {\r\n if (!hasClass(miniMap, 'gmap--block') && !hasClass(miniMap, 'gmap--loaded')) {\r\n let getAddress: string = miniMap.dataset.address;\r\n this.createMapImage(miniMap, getAddress);\r\n }\r\n else if (hasClass(miniMap, 'gmap--block')) {\r\n this.createCmpScript(miniMap);\r\n }\r\n });\r\n\r\n this.countryInfo.innerHTML = '';\r\n this.accordion.classList.add('accordion-hidden');\r\n let nextItemcloned = nextItem.cloneNode(true);\r\n this.countryInfo.appendChild(nextItemcloned);\r\n this.countryInfoContent.classList.add('open');\r\n this.doScrolling('.cw-country-info', 1000);\r\n this.initSliderMobile(infoModule);\r\n }\r\n });\r\n });\r\n }\r\n\r\n createCmpScript(element: HTMLElement): void {\r\n var s: HTMLScriptElement = document.createElement('script'),\r\n js: string = 'Array.from(document.querySelectorAll(\".map-canvas\")).forEach(a=>{if(!a.classList.contains(\"gmap--loaded\")){a.classList.remove(\"gmap--block\");var c=a.dataset.address.replace(/\\s/g,\"+\"),d=`https://maps.googleapis.com/maps/api/staticmap?center=${c}&maptype=roadmap&zoom=15&size=470x235&markers=size:mid%7Ccolor:red%7C${c}&key=${document.querySelector(\".cw-global\").dataset.gmk}`,b=document.createElement(\"img\");b.setAttribute(\"class\",\"map\"),b.setAttribute(\"src\",d),a.append(b),a.classList.add(\"gmap--loaded\")}})';\r\n s.setAttribute('type', 'text/plain');\r\n s.setAttribute('data-cmp-preview', '600x600');\r\n s.setAttribute('data-cmp-preview-connect', 'cmplazyload__googlemaps');\r\n s.setAttribute('data-cmp-vendor', 's1104');\r\n s.setAttribute('class', 'cmplazyload cmplazyload__googlemaps');\r\n s.innerHTML = js;\r\n element.appendChild(s);\r\n\r\n }\r\n\r\n initSliderMobile(infoModule) {\r\n const sliderMobileSelector = document.querySelector('.cw-country-content'),\r\n sliderContent = this.element.querySelector('.info-container'),\r\n sliderNavMobile = `
\r\n
    \r\n
    `;\r\n\r\n if (isMobile() && infoModule.length > 1) {\r\n sliderContent.classList.add('uk-slider-items');\r\n sliderMobileSelector.insertAdjacentHTML(\"beforeend\", sliderNavMobile);\r\n\r\n UIkit.slider(sliderMobileSelector, {\r\n draggable: true,\r\n });\r\n }\r\n }\r\n\r\n closeCountryInfo(event) {\r\n event.stopPropagation();\r\n this.accordion.classList.remove('accordion-hidden');\r\n this.countryInfo.innerHTML = '';\r\n this.countryInfoContent.classList.remove('open');\r\n }\r\n\r\n togglePopUp(event) {\r\n event.stopPropagation();\r\n this.infoTooltip.classList.toggle('cw-popup-open');\r\n }\r\n\r\n createMapImage(element: HTMLElement, address: string) {\r\n\r\n if (element.querySelector('.map'))\r\n return;\r\n\r\n let newAddress = address.replace(/\\s/g, '+');\r\n const miniMapUrl = `//maps.googleapis.com/maps/api/staticmap?center=${(newAddress)}&maptype=roadmap&zoom=15&size=470x235&markers=size:mid%7Ccolor:red%7C${(newAddress)}&key=${this.gMapApiKey}`;\r\n\r\n let image = ``;\r\n element.innerHTML = image;\r\n element.classList.add('gmap--loaded');\r\n }\r\n\r\n isAccordionOpen() {\r\n const accordionItem = document.querySelector('.cw-accordion-item.uk-open a');\r\n if (accordionItem) {\r\n accordionItem.click();\r\n }\r\n }\r\n\r\n getElementY(query) {\r\n return window.pageYOffset - 92 + document.querySelector(query).getBoundingClientRect().top;\r\n }\r\n\r\n doScrolling(element, duration) {\r\n let startingY = window.pageYOffset;\r\n let elementY = this.getElementY(element);\r\n let targetY = document.body.scrollHeight - elementY < window.innerHeight ? document.body.scrollHeight - window.innerHeight : elementY;\r\n let diff = targetY - startingY;\r\n let easing = function (t) { return t < .5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1 };\r\n let start;\r\n\r\n if (!diff) return;\r\n\r\n window.requestAnimationFrame(function step(timestamp) {\r\n if (!start) start = timestamp;\r\n let time = timestamp - start;\r\n let percent = Math.min(time / duration, 1);\r\n\r\n percent = easing(percent);\r\n window.scrollTo(0, startingY + diff * percent);\r\n\r\n if (time < duration) {\r\n window.requestAnimationFrame(step);\r\n }\r\n });\r\n }\r\n}\r\n\r\nnew Global.setup();"],"sourceRoot":""}