ahdjs 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://AHDjs/webpack/universalModuleDefinition","webpack://AHDjs/./src/lib/plugins/beacons/Beacons.js","webpack://AHDjs/./src/lib/plugins/information/Information.js","webpack://AHDjs/./src/lib/utils/isSvgElement.js","webpack://AHDjs/./src/lib/utils/isNodeList.js","webpack://AHDjs/./src/lib/utils/domTemplate.js","webpack://AHDjs/./src/lib/utils/isHtmlElement.js","webpack://AHDjs/./src/lib/plugins/beacons/templates/beacon.html","webpack://AHDjs/./src/lib/plugins/information/templates/information.html","webpack://AHDjs/./node_modules/lodash/_Symbol.js","webpack://AHDjs/./node_modules/lodash/_arrayMap.js","webpack://AHDjs/./node_modules/lodash/_baseGetTag.js","webpack://AHDjs/./node_modules/lodash/_baseToString.js","webpack://AHDjs/./node_modules/lodash/_freeGlobal.js","webpack://AHDjs/./node_modules/lodash/_getRawTag.js","webpack://AHDjs/./node_modules/lodash/_objectToString.js","webpack://AHDjs/./node_modules/lodash/_root.js","webpack://AHDjs/./node_modules/lodash/isArray.js","webpack://AHDjs/./node_modules/lodash/isNull.js","webpack://AHDjs/./node_modules/lodash/isObjectLike.js","webpack://AHDjs/./node_modules/lodash/isSymbol.js","webpack://AHDjs/./node_modules/lodash/isUndefined.js","webpack://AHDjs/./node_modules/lodash/toString.js","webpack://AHDjs/./node_modules/lodash/uniqueId.js","webpack://AHDjs/webpack/bootstrap","webpack://AHDjs/webpack/runtime/compat get default export","webpack://AHDjs/webpack/runtime/define property getters","webpack://AHDjs/webpack/runtime/global","webpack://AHDjs/webpack/runtime/hasOwnProperty shorthand","webpack://AHDjs/webpack/runtime/make namespace object","webpack://AHDjs/./src/lib/GuideChimp.js","webpack://AHDjs/./src/lib/templates/fake-step.html","webpack://AHDjs/./src/lib/templates/preloader.html","webpack://AHDjs/./src/lib/templates/overlay.html","webpack://AHDjs/./src/lib/templates/interaction.html","webpack://AHDjs/./src/lib/templates/control.html","webpack://AHDjs/./src/lib/templates/tooltip.html","webpack://AHDjs/./src/lib/templates/close.html","webpack://AHDjs/./src/lib/templates/progressbar.html","webpack://AHDjs/./src/lib/templates/title.html","webpack://AHDjs/./src/lib/templates/description.html","webpack://AHDjs/./src/lib/templates/custom-buttons.html","webpack://AHDjs/./src/lib/templates/pagination.html","webpack://AHDjs/./src/lib/templates/previous.html","webpack://AHDjs/./src/lib/templates/next.html","webpack://AHDjs/./src/lib/templates/copyright.html","webpack://AHDjs/./src/lib/templates/notification.html","webpack://AHDjs/./src/lib/plugins/information/index.js","webpack://AHDjs/./src/lib/plugins/beacons/index.js","webpack://AHDjs/./src/lib/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AHDjs\"] = factory();\n\telse\n\t\troot[\"AHDjs\"] = factory();\n})(self, () => {\nreturn ","/* eslint-disable class-methods-use-this */\r\n/**\r\n * Copyright (C) 2020 Labs64 GmbH\r\n *\r\n * This source code is licensed under the European Union Public License, version 1.2\r\n * located in the LICENSE file\r\n */\r\n// utils\r\nimport domTemplate from \"../../utils/domTemplate\";\r\n\r\n// templates\r\nimport beaconTpl from \"./templates/beacon.html\";\r\n\r\nexport default class Beacons {\r\n constructor(beacons, options = {}) {\r\n this.beacons = [];\r\n\r\n this.options = {};\r\n\r\n // observers\r\n this.observers = {};\r\n\r\n if (typeof ResizeObserver !== \"undefined\") {\r\n this.observers.elementResizeObserver = new ResizeObserver(() =>\r\n this.refresh()\r\n );\r\n }\r\n\r\n this.cache = new Map();\r\n this.elements = new Map();\r\n\r\n this.setOptions(options);\r\n this.setBeacons(beacons);\r\n\r\n this.init();\r\n }\r\n\r\n /**\r\n * Called after construction, this hook allows you to add some extra setup\r\n * logic without having to override the constructor.\r\n */\r\n init() { }\r\n\r\n /**\r\n * Default options\r\n * @return {Object}\r\n */\r\n static getDefaultOptions() {\r\n return {\r\n position: \"center\",\r\n boundary: \"inner\",\r\n };\r\n }\r\n\r\n static getFixedClass() {\r\n return \"gc-beacon-fixed\";\r\n }\r\n\r\n static getBeaconDataPrefix() {\r\n return \"data-beacon\";\r\n }\r\n\r\n /**\r\n * Check if el or his parent has fixed position\r\n * @param el\r\n * @return {boolean}\r\n */\r\n static isFixed(el) {\r\n const { parentNode } = el;\r\n\r\n if (!parentNode || parentNode.nodeName === \"HTML\") {\r\n return false;\r\n }\r\n\r\n const elStyle = getComputedStyle(el);\r\n\r\n if (elStyle.getPropertyValue(\"position\") === \"fixed\") {\r\n return true;\r\n }\r\n\r\n return this.isFixed(parentNode);\r\n }\r\n\r\n /**\r\n * Set beacons options\r\n * @param options\r\n * @return {this}\r\n */\r\n setOptions(options) {\r\n this.options = { ...this.constructor.getDefaultOptions(), ...options };\r\n return this;\r\n }\r\n\r\n setBeacons(beacons) {\r\n // cleanup for previous beacons\r\n this.removeAll();\r\n // debugger;\r\n this.beacons =\r\n !beacons ||\r\n typeof beacons === \"string\" ||\r\n (Array.isArray(beacons) && beacons.every((v) => typeof v === \"string\"))\r\n ? this.getDataBeacons(beacons)\r\n : this.getJsBeacons(beacons);\r\n\r\n if (this.beacons.length) {\r\n this.beacons.forEach((beacon) => {\r\n const { element } = beacon;\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const el = this.getEl(element);\r\n\r\n if (!el) {\r\n return;\r\n }\r\n\r\n const beaconEl = this.createBeaconEl(beacon);\r\n beaconEl.hidden = true;\r\n\r\n if (this.constructor.isFixed(el)) {\r\n beaconEl.classList.add(this.constructor.getFixedClass());\r\n }\r\n\r\n const parentEl =\r\n !el.parentElement || el.parentElement === document.body\r\n ? document.body\r\n : el.parentElement;\r\n\r\n parentEl.append(beaconEl);\r\n this.elements.set(beacon, beaconEl);\r\n this.setBeaconPosition(el, beaconEl, beacon);\r\n\r\n // fire observers\r\n this.observeResizing(el);\r\n });\r\n\r\n this.addOnWindowResizeListener();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n getBeacons() {\r\n return this.beacons;\r\n }\r\n\r\n getBeacon(id, def) {\r\n const [beacon] =\r\n id && typeof id === \"object\"\r\n ? [id]\r\n : this.beacons.filter((v) => v.id === id);\r\n return beacon || def;\r\n }\r\n\r\n getDataBeacons(ids) {\r\n const beaconsIds =\r\n typeof ids === \"string\" ? ids.split(\",\").map((v) => v.trim()) : ids;\r\n\r\n let beaconsSelector = [`[${this.constructor.getBeaconDataPrefix()}]`];\r\n\r\n if (beaconsIds) {\r\n beaconsSelector = [];\r\n\r\n beaconsIds.forEach((id) => {\r\n beaconsSelector.push(\r\n `[${this.constructor.getBeaconDataPrefix()}*='${id}']`\r\n );\r\n });\r\n }\r\n\r\n const beaconsEl = Array.from(\r\n document.querySelectorAll(beaconsSelector.join(\",\"))\r\n );\r\n const dataGlobalRegExp = new RegExp(\r\n `^${this.constructor.getBeaconDataPrefix()}-([^-]+)$`\r\n );\r\n\r\n const beacons = [];\r\n\r\n beaconsEl.forEach((el) => {\r\n const { value: beaconsIdsAttrValue } =\r\n el.attributes[this.constructor.getBeaconDataPrefix()];\r\n\r\n if (!beaconsIdsAttrValue) {\r\n return;\r\n }\r\n\r\n const elBeaconsIds = beaconsIdsAttrValue.split(\",\");\r\n\r\n elBeaconsIds.forEach((id) => {\r\n if (beaconsIds && !beaconsIds.includes(id)) {\r\n return;\r\n }\r\n\r\n const globalBeaconAttrs = {};\r\n const beaconAttrs = {};\r\n\r\n const dataBeaconRegExp = new RegExp(\r\n `^${this.constructor.getBeaconDataPrefix()}-${id}-([^-]+)$`\r\n );\r\n\r\n // parse attributes\r\n for (let j = 0; j < el.attributes.length; j++) {\r\n const { name: attrName, value: attrValue } = el.attributes[j];\r\n\r\n const isGlobalAttr = dataGlobalRegExp.test(attrName);\r\n const isBeaconAttr = dataBeaconRegExp.test(attrName);\r\n\r\n if (isGlobalAttr) {\r\n const [, shortAttrName] = attrName.match(dataGlobalRegExp);\r\n\r\n globalBeaconAttrs[shortAttrName] = attrValue;\r\n } else if (isBeaconAttr) {\r\n const [, shortAttrName] = attrName.match(dataBeaconRegExp);\r\n\r\n beaconAttrs[shortAttrName] = attrValue;\r\n }\r\n }\r\n\r\n const beacon = {\r\n id,\r\n position: this.options.position,\r\n ...globalBeaconAttrs,\r\n ...beaconAttrs,\r\n element: el,\r\n };\r\n\r\n // change onclick event\r\n const onClick = beacon.onclick || beacon.onClick;\r\n\r\n if (onClick) {\r\n delete beacon.onclick;\r\n\r\n beacon.onClick = (e) => {\r\n // eslint-disable-next-line no-eval\r\n const onClickCode = eval(onClick);\r\n\r\n if (typeof onClickCode === \"function\") {\r\n onClickCode.call(e, beacon);\r\n }\r\n };\r\n }\r\n\r\n beacons.push(beacon);\r\n });\r\n });\r\n\r\n return beacons;\r\n }\r\n\r\n getJsBeacons(beacons) {\r\n // cast to array\r\n const array = !Array.isArray(beacons) ? [beacons] : beacons;\r\n\r\n return array.map((v, i) => ({ ...v, id: v.id || i }));\r\n }\r\n\r\n getBeaconTpl() {\r\n return beaconTpl;\r\n }\r\n\r\n createBeaconEl(beacon) {\r\n const data = { ...beacon };\r\n\r\n data.onClick = (e) => {\r\n e.stopPropagation();\r\n if (beacon.onClick) {\r\n beacon.onClick.call(this, e, beacon);\r\n }\r\n };\r\n\r\n return domTemplate(this.getBeaconTpl(), { beacon: data });\r\n }\r\n\r\n getEl(selector) {\r\n return selector instanceof HTMLElement\r\n ? selector\r\n : document.querySelector(selector);\r\n }\r\n\r\n setBeaconPosition(el, beaconEl, options = {}) {\r\n let { position, boundary } = options;\r\n\r\n position = position || this.options.position;\r\n boundary = boundary || this.options.boundary;\r\n boundary = boundary === \"inner\" ? \"inner\" : \"outer\";\r\n\r\n const {\r\n offsetLeft: elLeft,\r\n offsetTop: elTop,\r\n offsetWidth: elWidth,\r\n offsetHeight: elHeight,\r\n } = el;\r\n const { style: beaconStyle } = beaconEl;\r\n let { width: beaconWidth, height: beaconHeight } =\r\n getComputedStyle(beaconEl);\r\n\r\n beaconWidth = parseInt(beaconWidth, 10);\r\n beaconHeight = parseInt(beaconHeight, 10);\r\n\r\n beaconEl.removeAttribute(\"data-beacon-position\");\r\n beaconEl.removeAttribute(\"data-beacon-boundary\");\r\n\r\n beaconEl.setAttribute(\"data-beacon-position\", position);\r\n beaconEl.setAttribute(\"data-beacon-boundary\", boundary);\r\n\r\n switch (position) {\r\n case \"top-left\": {\r\n if (boundary === \"inner\") {\r\n beaconStyle.left = `${elLeft}px`;\r\n beaconStyle.top = `${elTop}px`;\r\n } else {\r\n beaconStyle.left = `${elLeft - beaconWidth}px`;\r\n beaconStyle.top = `${elTop - beaconHeight}px`;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"top\": {\r\n beaconStyle.left = `${elLeft + (elWidth - beaconWidth) / 2}px`;\r\n beaconStyle.top =\r\n boundary === \"inner\" ? `${elTop}px` : `${elTop - beaconHeight}px`;\r\n\r\n break;\r\n }\r\n\r\n case \"top-right\": {\r\n if (boundary === \"inner\") {\r\n beaconStyle.left = `${elWidth + elLeft - beaconWidth}px`;\r\n beaconStyle.top = `${elTop}px`;\r\n } else {\r\n beaconStyle.left = `${elWidth + elLeft}px`;\r\n beaconStyle.top = `${elTop - beaconHeight}px`;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"left\": {\r\n beaconStyle.left =\r\n boundary === \"inner\" ? `${elLeft}px` : `${elLeft - beaconWidth}px`;\r\n beaconStyle.top = `${elTop + (elHeight - beaconHeight) / 2}px`;\r\n\r\n break;\r\n }\r\n\r\n case \"right\": {\r\n beaconStyle.left =\r\n boundary === \"inner\"\r\n ? `${elLeft + elWidth - beaconWidth}px`\r\n : `${elLeft + elWidth}px`;\r\n beaconStyle.top = `${elTop + (elHeight - beaconHeight) / 2}px`;\r\n\r\n break;\r\n }\r\n\r\n case \"bottom-left\": {\r\n if (boundary === \"inner\") {\r\n beaconStyle.left = `${elLeft}px`;\r\n beaconStyle.top = `${elTop + elHeight - beaconHeight}px`;\r\n } else {\r\n beaconStyle.left = `${elLeft - beaconWidth}px`;\r\n beaconStyle.top = `${elTop + elHeight}px`;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"bottom\": {\r\n beaconStyle.left = `${elLeft + (elWidth - beaconWidth) / 2}px`;\r\n beaconStyle.top =\r\n boundary === \"inner\"\r\n ? `${elTop + elHeight - beaconHeight}px`\r\n : `${elTop + elHeight}px`;\r\n\r\n break;\r\n }\r\n\r\n case \"bottom-right\": {\r\n if (boundary === \"inner\") {\r\n beaconStyle.left = `${elWidth + elLeft - beaconWidth}px`;\r\n beaconStyle.top = `${elTop + elHeight - beaconHeight}px`;\r\n } else {\r\n beaconStyle.left = `${elWidth + elLeft}px`;\r\n beaconStyle.top = `${elTop + elHeight}px`;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"center\":\r\n default: {\r\n beaconEl.setAttribute(\"data-beacon-position\", \"center\");\r\n beaconStyle.left = `${elLeft + (elWidth - beaconWidth) / 2}px`;\r\n beaconStyle.top = `${elTop + (elHeight - beaconHeight) / 2}px`;\r\n\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n isCanShowBeacon({ canShow }) {\r\n if (canShow !== undefined) {\r\n if (!canShow || (typeof canShow === \"function\" && canShow() === false)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n showAll(force = false) {\r\n this.beacons.forEach((beacon) => {\r\n this.show(beacon, force);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n show(id, force = false) {\r\n const beacon = this.getBeacon(id);\r\n\r\n if (beacon) {\r\n const beaconEl = this.elements.get(beacon);\r\n\r\n if (beaconEl) {\r\n if (force || this.isCanShowBeacon(beacon)) {\r\n beaconEl.hidden = false;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n hideAll() {\r\n this.beacons.forEach((beacon) => {\r\n this.hide(beacon);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n hide(id) {\r\n const beacon = this.getBeacon(id);\r\n\r\n if (beacon) {\r\n const el = this.elements.get(beacon);\r\n\r\n if (el) {\r\n el.hidden = true;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n removeAll() {\r\n this.beacons.forEach((beacon) => {\r\n this.remove(beacon);\r\n });\r\n\r\n this.beacons = [];\r\n this.unobserveResizeAllElements();\r\n this.removeOnWindowResizeListener();\r\n\r\n return this;\r\n }\r\n\r\n remove(id) {\r\n const beacon = this.getBeacon(id);\r\n\r\n const beaconEl = this.elements.get(beacon);\r\n\r\n if (beaconEl) {\r\n beaconEl.parentNode.removeChild(beaconEl);\r\n const beaconIndex = this.beacons.indexOf(beacon);\r\n\r\n if (beaconIndex !== -1) {\r\n this.beacons.splice(this.beacons.indexOf(beacon), 1);\r\n }\r\n\r\n this.elements.delete(beacon);\r\n\r\n const el = this.getEl(beacon.element);\r\n\r\n if (el) {\r\n this.unobserveResizing(el);\r\n }\r\n }\r\n\r\n if (!this.beacons.length) {\r\n this.removeOnWindowResizeListener();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n refresh() {\r\n this.beacons.forEach((beacon) => {\r\n const { element } = beacon;\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const el = this.getEl(element);\r\n const beaconEl = this.elements.get(beacon);\r\n\r\n if (el && beaconEl) {\r\n this.setBeaconPosition(el, beaconEl, beacon);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Add window resize event listener\r\n * @return {this}\r\n */\r\n addOnWindowResizeListener() {\r\n this.cache.set(\"onWindowResizeListener\", this.getOnWindowResizeListener());\r\n window.addEventListener(\r\n \"resize\",\r\n this.cache.get(\"onWindowResizeListener\"),\r\n true\r\n );\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Return on window resize event listener function\r\n * @returns {function}\r\n */\r\n getOnWindowResizeListener() {\r\n return () => this.refresh();\r\n }\r\n\r\n /**\r\n * Remove window resize event listener\r\n * @return {this}\r\n */\r\n removeOnWindowResizeListener() {\r\n if (this.cache.has(\"onWindowResizeListener\")) {\r\n window.removeEventListener(\r\n \"resize\",\r\n this.cache.get(\"onWindowResizeListener\"),\r\n true\r\n );\r\n this.cache.delete(\"onWindowResizeListener\");\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Observe resize step element\r\n * @return {this}\r\n */\r\n observeResizing(el, options = { box: \"border-box\" }) {\r\n const { elementResizeObserver: observer } = this.observers;\r\n\r\n if (observer) {\r\n observer.observe(el, options);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Unobserve resize step element\r\n * @param el\r\n * @return {this}\r\n */\r\n unobserveResizing(el) {\r\n const { elementResizeObserver: observer } = this.observers;\r\n\r\n if (observer) {\r\n observer.unobserve(el);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Unobserve all resize steps elements\r\n * @return {this}\r\n */\r\n unobserveResizeAllElements() {\r\n const { elementResizeObserver: observer } = this.observers;\r\n\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n","/* eslint-disable class-methods-use-this */\r\n/**\r\n * Copyright (C) 2020 Labs64 GmbH\r\n *\r\n * This source code is licensed under the European Union Public License, version 1.2\r\n * located in the LICENSE file\r\n */\r\n// utils\r\nimport domTemplate from \"../../utils/domTemplate\";\r\n\r\n// templates\r\nimport informationTpl from \"./templates/information.html\";\r\n\r\nexport default class Information {\r\n constructor(informations, options = {}) {\r\n this.informations = [];\r\n\r\n this.options = {};\r\n\r\n // observers\r\n this.observers = {};\r\n\r\n if (typeof ResizeObserver !== \"undefined\") {\r\n this.observers.elementResizeObserver = new ResizeObserver(() =>\r\n this.refresh()\r\n );\r\n }\r\n\r\n this.cache = new Map();\r\n this.elements = new Map();\r\n\r\n this.setOptions(options);\r\n this.setInformations(informations);\r\n\r\n this.init();\r\n }\r\n\r\n /**\r\n * Called after construction, this hook allows you to add some extra setup\r\n * logic without having to override the constructor.\r\n */\r\n init() {}\r\n\r\n /**\r\n * Default options\r\n * @return {Object}\r\n */\r\n static getDefaultOptions() {\r\n return {\r\n position: \"center\",\r\n boundary: \"inner\",\r\n };\r\n }\r\n\r\n static getFixedClass() {\r\n return \"gc-information-fixed\";\r\n }\r\n\r\n static getInformationDataPrefix() {\r\n return \"data-information\";\r\n }\r\n\r\n /**\r\n * Check if el or his parent has fixed position\r\n * @param el\r\n * @return {boolean}\r\n */\r\n static isFixed(el) {\r\n const { parentNode } = el;\r\n\r\n if (!parentNode || parentNode.nodeName === \"HTML\") {\r\n return false;\r\n }\r\n\r\n const elStyle = getComputedStyle(el);\r\n\r\n if (elStyle.getPropertyValue(\"position\") === \"fixed\") {\r\n return true;\r\n }\r\n\r\n return this.isFixed(parentNode);\r\n }\r\n\r\n /**\r\n * Set informations options\r\n * @param options\r\n * @return {this}\r\n */\r\n setOptions(options) {\r\n this.options = { ...this.constructor.getDefaultOptions(), ...options };\r\n return this;\r\n }\r\n\r\n setInformations(informations) {\r\n // cleanup for previous informations\r\n this.removeAll();\r\n this.informations =\r\n !informations ||\r\n typeof informations === \"string\" ||\r\n (Array.isArray(informations) &&\r\n informations.every((v) => typeof v === \"string\"))\r\n ? this.getDataInformations(informations)\r\n : this.getJsInformations(informations);\r\n\r\n if (this.informations.length) {\r\n this.informations.forEach((information) => {\r\n const { element } = information;\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const el = this.getEl(element);\r\n\r\n if (!el) {\r\n return;\r\n }\r\n\r\n const informationEl = this.createInformationEl(information);\r\n informationEl.hidden = true;\r\n\r\n if (this.constructor.isFixed(el)) {\r\n informationEl.classList.add(this.constructor.getFixedClass());\r\n }\r\n\r\n const parentEl =\r\n !el.parentElement || el.parentElement === document.body\r\n ? document.body\r\n : el.parentElement;\r\n\r\n parentEl.append(informationEl);\r\n this.elements.set(information, informationEl);\r\n this.setInformationPosition(el, informationEl, information);\r\n\r\n // fire observers\r\n this.observeResizing(el);\r\n });\r\n\r\n this.addOnWindowResizeListener();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n getInformations() {\r\n return this.informations;\r\n }\r\n\r\n getInformation(id, def) {\r\n const [information] =\r\n id && typeof id === \"object\"\r\n ? [id]\r\n : this.informations.filter((v) => v.id === id);\r\n return information || def;\r\n }\r\n\r\n getDataInformations(ids) {\r\n const informationsIds =\r\n typeof ids === \"string\" ? ids.split(\",\").map((v) => v.trim()) : ids;\r\n\r\n let informationsSelector = [\r\n `[${this.constructor.getInformationDataPrefix()}]`,\r\n ];\r\n\r\n if (informationsIds) {\r\n informationsSelector = [];\r\n\r\n informationsIds.forEach((id) => {\r\n informationsSelector.push(\r\n `[${this.constructor.getInformationDataPrefix()}*='${id}']`\r\n );\r\n });\r\n }\r\n\r\n const informationsEl = Array.from(\r\n document.querySelectorAll(informationsSelector.join(\",\"))\r\n );\r\n const dataGlobalRegExp = new RegExp(\r\n `^${this.constructor.getInformationDataPrefix()}-([^-]+)$`\r\n );\r\n\r\n const informations = [];\r\n\r\n informationsEl.forEach((el) => {\r\n const { value: informationsIdsAttrValue } =\r\n el.attributes[this.constructor.getInformationDataPrefix()];\r\n\r\n if (!informationsIdsAttrValue) {\r\n return;\r\n }\r\n\r\n const elInformationsIds = informationsIdsAttrValue.split(\",\");\r\n\r\n elInformationsIds.forEach((id) => {\r\n if (informationsIds && !informationsIds.includes(id)) {\r\n return;\r\n }\r\n\r\n const globalInformationAttrs = {};\r\n const informationAttrs = {};\r\n\r\n const dataInformationRegExp = new RegExp(\r\n `^${this.constructor.getInformationDataPrefix()}-${id}-([^-]+)$`\r\n );\r\n\r\n // parse attributes\r\n for (let j = 0; j < el.attributes.length; j++) {\r\n const { name: attrName, value: attrValue } = el.attributes[j];\r\n\r\n const isGlobalAttr = dataGlobalRegExp.test(attrName);\r\n const isInformationAttr = dataInformationRegExp.test(attrName);\r\n\r\n if (isGlobalAttr) {\r\n const [, shortAttrName] = attrName.match(dataGlobalRegExp);\r\n\r\n globalInformationAttrs[shortAttrName] = attrValue;\r\n } else if (isInformationAttr) {\r\n const [, shortAttrName] = attrName.match(dataInformationRegExp);\r\n\r\n informationAttrs[shortAttrName] = attrValue;\r\n }\r\n }\r\n\r\n const information = {\r\n id,\r\n position: this.options.position,\r\n ...globalInformationAttrs,\r\n ...informationAttrs,\r\n element: el,\r\n };\r\n\r\n // change onclick event\r\n const onClick = information.onclick || information.onClick;\r\n\r\n if (onClick) {\r\n delete information.onclick;\r\n\r\n information.onClick = (e) => {\r\n // eslint-disable-next-line no-eval\r\n const onClickCode = eval(onClick);\r\n\r\n if (typeof onClickCode === \"function\") {\r\n onClickCode.call(e, information);\r\n }\r\n };\r\n }\r\n\r\n informations.push(information);\r\n });\r\n });\r\n\r\n return informations;\r\n }\r\n\r\n getJsInformations(informations) {\r\n // cast to array\r\n const array = !Array.isArray(informations) ? [informations] : informations;\r\n\r\n return array.map((v, i) => ({ ...v, id: v.id || i }));\r\n }\r\n\r\n getInformationTpl() {\r\n return informationTpl;\r\n }\r\n\r\n createInformationEl(information) {\r\n const data = { ...information };\r\n\r\n data.onClick = (e) => {\r\n e.stopPropagation();\r\n if (information.onClick) {\r\n information.onClick.call(this, e, information);\r\n }\r\n };\r\n\r\n return domTemplate(this.getInformationTpl(), { information: data });\r\n }\r\n\r\n getEl(selector) {\r\n return selector instanceof HTMLElement\r\n ? selector\r\n : document.querySelector(selector);\r\n }\r\n\r\n setInformationPosition(el, informationEl, options = {}) {\r\n let { position, boundary } = options;\r\n\r\n position = position || this.options.position;\r\n boundary = boundary || this.options.boundary;\r\n boundary = boundary === \"inner\" ? \"inner\" : \"outer\";\r\n\r\n const {\r\n offsetLeft: elLeft,\r\n offsetTop: elTop,\r\n offsetWidth: elWidth,\r\n offsetHeight: elHeight,\r\n } = el;\r\n const { style: informationStyle } = informationEl;\r\n let { width: informationWidth, height: informationHeight } =\r\n getComputedStyle(informationEl);\r\n\r\n informationWidth = parseInt(informationWidth, 10);\r\n informationHeight = parseInt(informationHeight, 10);\r\n\r\n informationEl.removeAttribute(\"data-information-position\");\r\n informationEl.removeAttribute(\"data-information-boundary\");\r\n\r\n informationEl.setAttribute(\"data-information-position\", position);\r\n informationEl.setAttribute(\"data-information-boundary\", boundary);\r\n\r\n switch (position) {\r\n case \"top-left\": {\r\n if (boundary === \"inner\") {\r\n informationStyle.left = `${elLeft}px`;\r\n informationStyle.top = `${elTop}px`;\r\n } else {\r\n informationStyle.left = `${elLeft - informationWidth}px`;\r\n informationStyle.top = `${elTop - informationHeight}px`;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"top\": {\r\n informationStyle.left = `${\r\n elLeft + (elWidth - informationWidth) / 2\r\n }px`;\r\n informationStyle.top =\r\n boundary === \"inner\"\r\n ? `${elTop}px`\r\n : `${elTop - informationHeight}px`;\r\n\r\n break;\r\n }\r\n\r\n case \"top-right\": {\r\n if (boundary === \"inner\") {\r\n informationStyle.left = `${elWidth + elLeft - informationWidth}px`;\r\n informationStyle.top = `${elTop}px`;\r\n } else {\r\n informationStyle.left = `${elWidth + elLeft}px`;\r\n informationStyle.top = `${elTop - informationHeight}px`;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"left\": {\r\n informationStyle.left =\r\n boundary === \"inner\"\r\n ? `${elLeft}px`\r\n : `${elLeft - informationWidth}px`;\r\n informationStyle.top = `${\r\n elTop + (elHeight - informationHeight) / 2\r\n }px`;\r\n\r\n break;\r\n }\r\n\r\n case \"right\": {\r\n informationStyle.left =\r\n boundary === \"inner\"\r\n ? `${elLeft + elWidth - informationWidth}px`\r\n : `${elLeft + elWidth}px`;\r\n informationStyle.top = `${\r\n elTop + (elHeight - informationHeight) / 2\r\n }px`;\r\n\r\n break;\r\n }\r\n\r\n case \"bottom-left\": {\r\n if (boundary === \"inner\") {\r\n informationStyle.left = `${elLeft}px`;\r\n informationStyle.top = `${elTop + elHeight - informationHeight}px`;\r\n } else {\r\n informationStyle.left = `${elLeft - informationWidth}px`;\r\n informationStyle.top = `${elTop + elHeight}px`;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"bottom\": {\r\n informationStyle.left = `${\r\n elLeft + (elWidth - informationWidth) / 2\r\n }px`;\r\n informationStyle.top =\r\n boundary === \"inner\"\r\n ? `${elTop + elHeight - informationHeight}px`\r\n : `${elTop + elHeight}px`;\r\n\r\n break;\r\n }\r\n\r\n case \"bottom-right\": {\r\n if (boundary === \"inner\") {\r\n informationStyle.left = `${elWidth + elLeft - informationWidth}px`;\r\n informationStyle.top = `${elTop + elHeight - informationHeight}px`;\r\n } else {\r\n informationStyle.left = `${elWidth + elLeft}px`;\r\n informationStyle.top = `${elTop + elHeight}px`;\r\n }\r\n\r\n break;\r\n }\r\n\r\n case \"center\":\r\n default: {\r\n informationEl.setAttribute(\"data-information-position\", \"center\");\r\n informationStyle.left = `${\r\n elLeft + (elWidth - informationWidth) / 2\r\n }px`;\r\n informationStyle.top = `${\r\n elTop + (elHeight - informationHeight) / 2\r\n }px`;\r\n\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n isCanShowInformation({ canShow }) {\r\n if (canShow !== undefined) {\r\n if (!canShow || (typeof canShow === \"function\" && canShow() === false)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n showAll(force = false) {\r\n this.informations.forEach((information) => {\r\n this.show(information, force);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n show(id, force = false) {\r\n const information = this.getInformation(id);\r\n\r\n if (information) {\r\n const informationEl = this.elements.get(information);\r\n\r\n if (informationEl) {\r\n if (force || this.isCanShowInformation(information)) {\r\n informationEl.hidden = false;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n hideAll() {\r\n this.informations.forEach((information) => {\r\n this.hide(information);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n hide(id) {\r\n const information = this.getInformation(id);\r\n\r\n if (information) {\r\n const el = this.elements.get(information);\r\n\r\n if (el) {\r\n el.hidden = true;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n removeAll() {\r\n this.informations.forEach((information) => {\r\n this.remove(information);\r\n });\r\n\r\n this.informations = [];\r\n this.unobserveResizeAllElements();\r\n this.removeOnWindowResizeListener();\r\n\r\n return this;\r\n }\r\n\r\n remove(id) {\r\n const information = this.getInformation(id);\r\n\r\n const informationEl = this.elements.get(information);\r\n\r\n if (informationEl) {\r\n informationEl.parentNode.removeChild(informationEl);\r\n const informationIndex = this.informations.indexOf(information);\r\n\r\n if (informationIndex !== -1) {\r\n this.informations.splice(this.informations.indexOf(information), 1);\r\n }\r\n\r\n this.elements.delete(information);\r\n\r\n const el = this.getEl(information.element);\r\n\r\n if (el) {\r\n this.unobserveResizing(el);\r\n }\r\n }\r\n\r\n if (!this.informations.length) {\r\n this.removeOnWindowResizeListener();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n refresh() {\r\n this.informations.forEach((information) => {\r\n const { element } = information;\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const el = this.getEl(element);\r\n const informationEl = this.elements.get(information);\r\n\r\n if (el && informationEl) {\r\n this.setInformationPosition(el, informationEl, information);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Add window resize event listener\r\n * @return {this}\r\n */\r\n addOnWindowResizeListener() {\r\n this.cache.set(\"onWindowResizeListener\", this.getOnWindowResizeListener());\r\n window.addEventListener(\r\n \"resize\",\r\n this.cache.get(\"onWindowResizeListener\"),\r\n true\r\n );\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Return on window resize event listener function\r\n * @returns {function}\r\n */\r\n getOnWindowResizeListener() {\r\n return () => this.refresh();\r\n }\r\n\r\n /**\r\n * Remove window resize event listener\r\n * @return {this}\r\n */\r\n removeOnWindowResizeListener() {\r\n if (this.cache.has(\"onWindowResizeListener\")) {\r\n window.removeEventListener(\r\n \"resize\",\r\n this.cache.get(\"onWindowResizeListener\"),\r\n true\r\n );\r\n this.cache.delete(\"onWindowResizeListener\");\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Observe resize step element\r\n * @return {this}\r\n */\r\n observeResizing(el, options = { box: \"border-box\" }) {\r\n const { elementResizeObserver: observer } = this.observers;\r\n\r\n if (observer) {\r\n observer.observe(el, options);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Unobserve resize step element\r\n * @param el\r\n * @return {this}\r\n */\r\n unobserveResizing(el) {\r\n const { elementResizeObserver: observer } = this.observers;\r\n\r\n if (observer) {\r\n observer.unobserve(el);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Unobserve all resize steps elements\r\n * @return {this}\r\n */\r\n unobserveResizeAllElements() {\r\n const { elementResizeObserver: observer } = this.observers;\r\n\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n","export default (el) => (el instanceof SVGElement || /^\\[object SVG(.+)Element\\]$/.test(`${el}`));\r\n","export default (el) => /^[object NodeList]$/.test(`${el}`);\n","/**\r\n * Lodash\r\n * @see https://lodash.com/docs\r\n */\r\nimport _isUndefined from 'lodash/isUndefined';\r\nimport _isNull from 'lodash/isNull';\r\n\r\n// utils\r\nimport isHtmlElement from './isHtmlElement';\r\nimport isSvgElement from './isSvgElement';\r\nimport isNodeList from './isNodeList';\r\n\r\nexport default (tpl, data = {}) => {\r\n const parser = new DOMParser();\r\n\r\n let template = tpl.replace(/<template/g, '<gc-template');\r\n template = template.replace(/<\\/template/g, '</gc-template');\r\n\r\n const sourceDoc = parser.parseFromString(template, 'text/html');\r\n const renderedDoc = document.implementation.createHTMLDocument();\r\n\r\n const pattern = /{{([^}}]+)?}}/gm;\r\n const eventPattern = /^@(.+)$/;\r\n\r\n const ifEnded = new Map();\r\n\r\n const render = (node, replacements = {}, parent = renderedDoc.body) => {\r\n let handler = parent;\r\n\r\n const keys = Object.keys(replacements);\r\n const values = Object.values(replacements);\r\n\r\n // eslint-disable-next-line no-new-func\r\n const getValue = (key) => (new Function(...keys, `return ${key};`))(...values);\r\n\r\n if (node) {\r\n if (node.nodeType === Node.ELEMENT_NODE) {\r\n if (node.hasAttribute('if')) {\r\n ifEnded.set(node.parentNode, false);\r\n\r\n if (!getValue(node.getAttribute('if'))) {\r\n return;\r\n }\r\n\r\n ifEnded.set(node.parentNode, true);\r\n }\r\n\r\n if (node.hasAttribute('elseif')) {\r\n if (ifEnded.get(node.parentNode) || !getValue(node.getAttribute('elseif'))) {\r\n return;\r\n }\r\n\r\n ifEnded.set(node.parentNode, true);\r\n }\r\n\r\n if (node.hasAttribute('else')) {\r\n if (ifEnded.get(node.parentNode)) {\r\n return;\r\n }\r\n\r\n ifEnded.set(node.parentNode, true);\r\n }\r\n\r\n if (node.hasAttribute('for')) {\r\n const forPieces = node.getAttribute('for').split(' in ');\r\n const [firstPiece, secondPiece] = forPieces;\r\n\r\n node.removeAttribute('for');\r\n\r\n let [param, index] = firstPiece.replace(/\\(|\\)/g, '').split(',');\r\n param = param.trim();\r\n index = (index) ? index.trim() : '';\r\n\r\n const source = getValue(secondPiece.trim());\r\n\r\n const isSourceArray = Array.isArray(source);\r\n\r\n Object.keys(source).forEach((k) => {\r\n const r = { ...replacements, [param]: source[k] };\r\n\r\n if (index) {\r\n r[index] = (isSourceArray) ? parseInt(k, 10) : k;\r\n }\r\n\r\n render(node, r, handler);\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (node !== node.ownerDocument.body && node.tagName !== 'GC-TEMPLATE') {\r\n handler = node.cloneNode();\r\n parent.append(handler);\r\n }\r\n\r\n [...node.attributes].forEach((attr) => {\r\n const { name, value } = attr;\r\n\r\n const eventMatch = eventPattern.exec(name);\r\n\r\n if (eventMatch) {\r\n const [, eventName] = eventMatch;\r\n\r\n // eslint-disable-next-line no-new-func\r\n handler.addEventListener(eventName, (e) => new Function(\r\n ...[...keys, '$event'],\r\n `return ${value}${(/\\(.+\\)/.test(value)) ? '' : '()'};`,\r\n )(...[...values, e]));\r\n\r\n handler.removeAttribute(name);\r\n\r\n return;\r\n }\r\n\r\n let match = pattern.exec(value);\r\n let index = 0;\r\n let rValue = '';\r\n\r\n while (match) {\r\n rValue += value.slice(index, match.index);\r\n\r\n let [replacement, key] = match;\r\n key = key.trim();\r\n\r\n try {\r\n replacement = getValue(key);\r\n\r\n if (_isUndefined(replacement) || _isNull(replacement)) {\r\n replacement = '';\r\n }\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.error(e);\r\n }\r\n\r\n rValue += replacement;\r\n\r\n index = match.index + match[0].length;\r\n match = pattern.exec(value);\r\n }\r\n\r\n rValue += value.substr(index, value.length - index);\r\n\r\n if (name === 'html') {\r\n handler.innerHTML = rValue;\r\n handler.removeAttribute(name);\r\n } else if (['if', 'else', 'elseif'].includes(name)) {\r\n handler.removeAttribute(name);\r\n } else {\r\n handler.setAttribute(name, rValue);\r\n }\r\n });\r\n } else if (node.nodeType === Node.TEXT_NODE) {\r\n let match = pattern.exec(node.nodeValue);\r\n\r\n if (match) {\r\n let index = 0;\r\n while (match) {\r\n handler.append(document.createTextNode(node.nodeValue.slice(index, match.index)));\r\n\r\n let [replacement, key] = match;\r\n key = key.trim();\r\n\r\n try {\r\n replacement = getValue(key);\r\n\r\n if (_isUndefined(replacement) || _isNull(replacement)) {\r\n replacement = '';\r\n }\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.error(e);\r\n }\r\n\r\n if (isHtmlElement(replacement) || isSvgElement(replacement)) {\r\n handler.append(replacement);\r\n } else if (isNodeList(replacement)) {\r\n replacement.forEach((v) => {\r\n handler.append(v);\r\n });\r\n } else {\r\n handler.append(document.createTextNode(replacement));\r\n }\r\n\r\n index = match.index + match[0].length;\r\n match = pattern.exec(node.nodeValue);\r\n }\r\n\r\n handler.append(document.createTextNode(node.nodeValue.slice(index, node.nodeValue.length)));\r\n } else {\r\n handler.append(node.cloneNode());\r\n }\r\n }\r\n\r\n const { childNodes = [] } = node;\r\n\r\n if (childNodes.length) {\r\n childNodes.forEach((v) => {\r\n render(v, replacements, handler);\r\n });\r\n }\r\n }\r\n };\r\n\r\n render(sourceDoc.body, data, renderedDoc.body);\r\n\r\n return renderedDoc.body.firstElementChild;\r\n};\r\n","export default (el) => (el instanceof HTMLElement || /^\\[object HTML(.+)Element\\]$/.test(`${el}`));\r\n","// Module\nvar code = \"<div class=\\\"gc-beacon {{ beacon.class }}\\\" @click=\\\"beacon.onClick($event)\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-information {{ information.class }}\\\" @click=\\\"information.onClick($event)\\\"></div> \";\n// Exports\nexport default code;","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nmodule.exports = isNull;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Lodash functions\n * @see https://lodash.com/docs\n */\nimport _uniqueId from \"lodash/uniqueId\";\n\n// utils\nimport domTemplate from \"./utils/domTemplate\";\nimport isHtmlElement from \"./utils/isHtmlElement\";\n\n// templates\nimport overlayTmpl from \"./templates/overlay.html\";\nimport preloaderTmpl from \"./templates/preloader.html\";\nimport interactionTmpl from \"./templates/interaction.html\";\nimport controlTmpl from \"./templates/control.html\";\nimport tooltipTmpl from \"./templates/tooltip.html\";\nimport progressbarTmpl from \"./templates/progressbar.html\";\nimport titleTmpl from \"./templates/title.html\";\nimport descriptionTmpl from \"./templates/description.html\";\nimport customButtonsTmpl from \"./templates/custom-buttons.html\";\nimport previousTmpl from \"./templates/previous.html\";\nimport paginationTmpl from \"./templates/pagination.html\";\nimport nextTmpl from \"./templates/next.html\";\nimport closeTmpl from \"./templates/close.html\";\nimport copyrightTmpl from \"./templates/copyright.html\";\nimport notificationTmpl from \"./templates/notification.html\";\nimport fakeStepTmpl from \"./templates/fake-step.html\";\n\nexport default class GuideChimp {\n /**\n * GuideChimp constructor\n * @param tour\n * @param options\n */\n constructor(tour, options = {}) {\n Object.defineProperty(this, \"uid\", {\n value: _uniqueId(),\n enumerable: false,\n configurable: false,\n writable: false,\n });\n\n this.setDefaults();\n\n this.cache = new Map();\n\n this.listeners = {};\n\n this.observers = {};\n\n this.options = {};\n this.setOptions(options);\n\n this.tour = null;\n this.setTour(tour);\n\n this.notifications = [];\n\n this.elements = new Map();\n\n this.init();\n }\n\n /**\n * Called after construction, this hook allows you to add some extra setup\n * logic without having to override the constructor.\n */\n init() {}\n\n /**\n * Default options\n * @return {Object}\n */\n static getDefaultOptions() {\n return {\n position: \"bottom\",\n useKeyboard: true,\n exitEscape: true,\n exitOverlay: true,\n showPagination: true,\n showNavigation: true,\n showProgressbar: true,\n paginationTheme: \"circles\",\n paginationCirclesMaxItems: 10,\n interaction: true,\n padding: 8,\n scrollPadding: 10,\n scrollBehavior: \"auto\",\n };\n }\n\n static getDefaultKeyboardCodes() {\n const escCode = 27;\n const arrowLeftCode = 37;\n const arrowRightCode = 39;\n const enterCode = 13;\n const spaceCode = 32;\n\n return {\n previous: [arrowLeftCode],\n next: [arrowRightCode, enterCode, spaceCode],\n stop: [escCode],\n };\n }\n\n static getEventListenersPriorities() {\n return [\"low\", \"medium\", \"high\", \"critical\"];\n }\n\n static getBodyClass() {\n return \"gc\";\n }\n\n static getLoadingClass() {\n return \"gc-loading\";\n }\n\n static getHighlightClass() {\n return \"gc-highlight\";\n }\n\n static getFixedClass() {\n return \"gc-fixed\";\n }\n\n static getRelativePositionClass() {\n return \"gc-relative\";\n }\n\n /**\n * Get element offset\n * @param el\n * @return {{top: number, left: number, width: number, height: number}}\n */\n static getOffset(el) {\n const { body, documentElement, defaultView: view } = el.ownerDocument;\n const scrollTop =\n view.pageYOffset || documentElement.scrollTop || body.scrollTop;\n const scrollLeft =\n view.pageXOffset || documentElement.scrollLeft || body.scrollLeft;\n const { top, right, bottom, left, width, height, x, y } =\n el.getBoundingClientRect();\n return {\n right,\n bottom,\n width,\n height,\n x,\n y,\n top: top + scrollTop,\n left: left + scrollLeft,\n };\n }\n\n /**\n * Check if el or his parent has fixed position\n * @param el\n * @return {boolean}\n */\n static isFixed(el) {\n const { parentNode } = el;\n\n if (!parentNode || parentNode.nodeName === \"HTML\") {\n return false;\n }\n\n const elStyle = getComputedStyle(el);\n\n if (elStyle.getPropertyValue(\"position\") === \"fixed\") {\n return true;\n }\n\n return this.isFixed(parentNode);\n }\n\n setDefaults() {\n this.previousStep = null;\n this.currentStep = null;\n this.nextStep = null;\n this.fromStep = null;\n this.toStep = null;\n\n this.previousStepIndex = -1;\n this.currentStepIndex = -1;\n this.nextStepIndex = -1;\n this.fromStepIndex = -1;\n this.toStepIndex = -1;\n\n this.steps = [];\n\n this.isDisplayed = false;\n\n return this;\n }\n\n /**\n * Set tour name or steps\n * @param tour\n * @return {this}\n */\n setTour(tour) {\n this.tour = tour;\n return this;\n }\n\n /**\n * Get tour name or steps\n */\n getTour() {\n return this.tour;\n }\n\n /**\n * Set tour options\n * @param options\n * @return {this}\n */\n setOptions(options) {\n this.options = { ...this.constructor.getDefaultOptions(), ...options };\n return this;\n }\n\n /**\n * Get tour options\n */\n getOptions() {\n return this.options;\n }\n\n /**\n * Start tour\n * @param number step number or it index\n * @param useIndex whether to use step number or index\n * @return {Promise<boolean>}\n */\n async start(number = 0, useIndex = true, ...args) {\n this.isDisplayed = true;\n\n this.mountOverlayEl();\n\n this.startPreloader();\n\n // emit start event\n await this.emit(\"onStart\", ...args);\n\n this.stopPreloader();\n\n if (!this.tour || !this.tour.length) {\n this.removeOverlayEl();\n this.isDisplayed = false;\n return false;\n }\n\n this.steps = this.sortSteps(this.getSteps(this.tour));\n\n if (!this.steps.length) {\n this.removeOverlayEl();\n this.isDisplayed = false;\n return false;\n }\n\n // add a class that increase the specificity of the classes\n document.body.classList.add(this.constructor.getBodyClass());\n\n const isStarted = await this.go(number, useIndex, ...args);\n\n this.isDisplayed = isStarted;\n\n document.body.classList.toggle(this.constructor.getBodyClass(), isStarted);\n\n if (isStarted) {\n // turn on keyboard navigation\n if (this.options.useKeyboard) {\n this.addOnKeydownListener();\n }\n\n // on window resize\n this.addOnWindowResizeListener();\n\n // on window scroll\n this.addOnWindowScrollListener();\n }\n\n return isStarted;\n }\n\n /**\n * Go to step\n * @param number step number or it index\n * @param useIndex whether to use step number or index\n * @param args\n * @return {Promise<boolean>}\n */\n async go(number, useIndex = true, ...args) {\n if (!this.isDisplayed || !this.steps.length) {\n return false;\n }\n\n const stepNumber = useIndex ? parseInt(number, 10) : number;\n\n if (this.currentStep) {\n // skip if this step is already displayed\n const isSameStep = useIndex\n ? this.currentStepIndex === stepNumber\n : this.currentStep.step === stepNumber;\n\n if (isSameStep) {\n return false;\n }\n }\n\n const fromStep = this.currentStep;\n const fromStepIndex = this.currentStepIndex;\n\n const currentStep = useIndex\n ? this.steps[stepNumber]\n : this.steps.filter(({ step }) => step === stepNumber)[0];\n\n if (!currentStep) {\n return false;\n }\n\n const currentStepIndex = this.steps.indexOf(currentStep);\n\n const toStep = currentStep;\n const toStepIndex = currentStepIndex;\n\n const { onBeforeChange, onAfterChange } = toStep;\n\n this.startPreloader();\n\n let abort = false;\n\n if (onBeforeChange) {\n if (\n (await Promise.resolve().then(() =>\n onBeforeChange.call(this, toStep, fromStep, ...args)\n )) === false\n ) {\n abort = true;\n }\n }\n\n if (\n (await this.emit(\"onBeforeChange\", toStep, fromStep, ...args)).some(\n (r) => r === false\n )\n ) {\n abort = true;\n }\n\n this.stopPreloader();\n\n if (abort) {\n return false;\n }\n\n this.beforeChangeStep({\n toStep,\n toStepIndex,\n currentStep,\n currentStepIndex,\n fromStep,\n fromStepIndex,\n });\n\n this.toStep = toStep;\n this.toStepIndex = toStepIndex;\n\n this.currentStep = currentStep;\n this.currentStepIndex = currentStepIndex;\n\n this.fromStep = fromStep;\n this.fromStepIndex = fromStepIndex;\n\n this.previousStep = this.steps[this.currentStepIndex - 1] || null;\n this.previousStepIndex = this.previousStep ? this.currentStepIndex - 1 : -1;\n\n this.nextStep = this.steps[this.currentStepIndex + 1] || null;\n this.nextStepIndex = this.nextStep ? this.currentStepIndex + 1 : -1;\n\n const { scrollBehavior } = this.options;\n const { scrollPadding = this.options.scrollPadding } = this.currentStep;\n\n // scroll to element\n this.scrollParentsToStepEl();\n this.scrollTo(\n this.getStepEl(this.currentStep, true),\n scrollBehavior,\n scrollPadding\n );\n\n this.mountStep();\n\n setTimeout(() => {\n if (this.getEl(\"tooltip\")) {\n this.scrollTo(this.getEl(\"tooltip\"), scrollBehavior, scrollPadding);\n }\n }, 300);\n\n if (onAfterChange) {\n onAfterChange.call(this, this.toStep, this.fromStep, ...args);\n }\n\n this.emit(\"onAfterChange\", this.toStep, this.fromStep, ...args);\n\n return true;\n }\n\n async previous(...args) {\n if (!this.isDisplayed || !this.currentStep || !this.previousStep) {\n return false;\n }\n\n const { onPrevious } = this.currentStep;\n\n this.startPreloader();\n\n if (onPrevious) {\n if (\n (await Promise.resolve().then(() =>\n onPrevious.call(this, this.previousStep, this.currentStep, ...args)\n )) === false\n ) {\n this.stopPreloader();\n return false;\n }\n }\n\n if (\n (\n await this.emit(\n \"onPrevious\",\n this.previousStep,\n this.currentStep,\n ...args\n )\n ).some((r) => r === false)\n ) {\n this.stopPreloader();\n return false;\n }\n\n this.stopPreloader();\n\n return this.go(this.previousStepIndex, true, ...args);\n }\n\n async next(...args) {\n if (!this.isDisplayed || !this.currentStep || !this.nextStep) {\n return false;\n }\n\n const { onNext } = this.currentStep;\n\n this.startPreloader();\n\n if (onNext) {\n if (\n (await Promise.resolve().then(() =>\n onNext.call(this, this.nextStep, this.currentStep, ...args)\n )) === false\n ) {\n this.stopPreloader();\n return false;\n }\n }\n\n if (\n (\n await this.emit(\"onNext\", this.nextStep, this.currentStep, ...args)\n ).some((r) => r === false)\n ) {\n this.stopPreloader();\n return false;\n }\n\n this.stopPreloader();\n\n return this.go(this.nextStepIndex, true, ...args);\n }\n\n async stop(...args) {\n if (!this.isDisplayed) {\n return this;\n }\n\n if (this.currentStepIndex === this.steps.length - 1) {\n this.startPreloader();\n await this.emit(\"onComplete\", ...args);\n this.stopPreloader();\n }\n\n this.startPreloader();\n\n // emit stop event\n await this.emit(\"onStop\", ...args);\n\n this.stopPreloader();\n\n // remove the class that increase the specificity of the classes\n document.body.classList.remove(this.constructor.getBodyClass());\n\n // remove events listeners\n this.removeListeners();\n\n // disconnect observers\n this.unobserveStep();\n\n // remove all layers and keys\n this.unmountStep();\n\n // remove overlay\n this.removeOverlayEl();\n\n this.cache.clear();\n this.elements.clear();\n\n // set step variables to defaults\n this.setDefaults();\n\n return this;\n }\n\n getSteps(tour) {\n if (!tour || !tour.length) {\n return [];\n }\n\n return typeof tour === \"string\"\n ? this.getDataSteps(tour)\n : this.getJsSteps(tour);\n }\n\n getDataSteps(tour) {\n const dataPrefix = \"data-guidechimp\";\n let tourStepsEl = Array.from(\n document.querySelectorAll(`[${dataPrefix}-tour*='${tour}']`)\n );\n\n // filter steps by tour name\n tourStepsEl = tourStepsEl.filter((v) => {\n const tours = v.getAttribute(`${dataPrefix}-tour`).split(\",\");\n return tours.includes(this.tour);\n });\n\n const dataTourRegExp = new RegExp(`^${dataPrefix}-${tour}-[^-]+$`);\n const dataGlobalRegExp = new RegExp(`^${dataPrefix}-[^-]+$`);\n\n return tourStepsEl.map((el, i) => {\n const stepAttrs = {};\n\n for (let j = 0; j < el.attributes.length; j++) {\n const { name: attrName, value: attrValue } = el.attributes[j];\n\n const isTourAttr = dataTourRegExp.test(attrName);\n const isGlobalAttr = isTourAttr\n ? false\n : dataGlobalRegExp.test(attrName);\n\n if (isTourAttr || isGlobalAttr) {\n const attrShortName = isTourAttr\n ? attrName.replace(`${dataPrefix}-${tour}-`, \"\")\n : attrName.replace(`${dataPrefix}-`, \"\");\n\n if (attrShortName !== \"tour\") {\n if (isTourAttr || (isGlobalAttr && !stepAttrs[attrShortName])) {\n stepAttrs[attrShortName] = attrValue;\n }\n }\n }\n }\n\n return {\n step: i,\n title: \"\",\n description: \"\",\n position: this.options.position,\n interaction: this.options.interaction,\n ...stepAttrs,\n element: el,\n };\n });\n }\n\n getJsSteps(tour) {\n return tour.map((v, i) => ({ ...v, step: v.step || i }));\n }\n\n sortSteps(steps) {\n const copy = [...steps];\n\n return copy.sort((a, b) => {\n if (a.step < b.step) {\n return -1;\n }\n if (a.step > b.step) {\n return 1;\n }\n return 0;\n });\n }\n\n getStepEl(step) {\n const { element } = step || {};\n\n if (!element) {\n return this.mountFakeStepEl();\n }\n\n const getEl = (selector, def = null) => {\n const el =\n typeof selector === \"string\"\n ? document.querySelector(selector)\n : selector;\n return el || def;\n };\n\n let el = getEl(element);\n\n if (\n !el ||\n el.style.display === \"none\" ||\n el.style.visibility === \"hidden\"\n ) {\n el = this.getEl(\"fakeStep\")\n ? this.getEl(\"fakeStep\")\n : this.mountFakeStepEl();\n }\n\n return el;\n }\n\n scrollParentsToStepEl() {\n const { scrollPadding = this.options.scrollPadding } = this.currentStep;\n return this.scrollParentsToEl(\n this.getStepEl(this.currentStep),\n scrollPadding\n );\n }\n\n getScrollableParentsEls(el) {\n const parents = [];\n let htmlEl = el;\n\n while (htmlEl && htmlEl !== htmlEl.ownerDocument.body) {\n htmlEl = this.getScrollableParentEl(htmlEl);\n parents.push(htmlEl);\n }\n\n return parents;\n }\n\n getScrollableParentEl(el) {\n const regex = /(auto|scroll)/;\n const elStyle = getComputedStyle(el);\n const elDocument = el.ownerDocument;\n\n const getClosestScrollableParent = (parent) => {\n if (!parent || parent === elDocument.body) {\n return elDocument.body;\n }\n\n const parentStyle = getComputedStyle(parent);\n\n if (\n elStyle.getPropertyValue(\"position\") === \"fixed\" &&\n parentStyle.getPropertyValue(\"position\") === \"static\"\n ) {\n return getClosestScrollableParent(parent.parentElement);\n }\n\n const overflowX = parentStyle.getPropertyValue(\"overflow-x\");\n const overflowY = parentStyle.getPropertyValue(\"overflow-y\");\n\n if (regex.test(overflowX) || regex.test(overflowY)) {\n return parent;\n }\n\n return getClosestScrollableParent(parent.parentElement);\n };\n\n return elStyle.getPropertyValue(\"position\") === \"fixed\"\n ? elDocument.body\n : getClosestScrollableParent(el.parentElement);\n }\n\n scrollParentsToEl(el, scrollPadding = 0) {\n // get all scrollable parents\n const parents = this.getScrollableParentsEls(el);\n\n parents.forEach((parent) => {\n if (parent !== document.body) {\n // eslint-disable-next-line no-param-reassign\n parent.scrollTop = el.offsetTop - parent.offsetTop - scrollPadding;\n // eslint-disable-next-line no-param-reassign\n parent.scrollLeft = el.offsetLeft - parent.offsetLeft - scrollPadding;\n }\n });\n\n return this;\n }\n\n scrollTo(el, behavior = \"auto\", scrollPadding = 0) {\n const { top, bottom, left, right } = el.getBoundingClientRect();\n const { innerWidth, innerHeight } = window;\n\n if (!(left >= 0 && right <= innerWidth)) {\n window.scrollBy({ behavior, left: left - scrollPadding });\n }\n\n if (!(top >= 0 && bottom <= innerHeight)) {\n window.scrollBy({ behavior, top: top - scrollPadding });\n }\n\n return this;\n }\n\n highlightStepEl(animation = false) {\n const el = this.getStepEl(this.currentStep);\n\n const overlay = this.getEl(\"overlay\");\n\n if (overlay) {\n const path = overlay.querySelector(\"path\");\n const animate = path.querySelector(\"animate\");\n\n const isCurrentElFake = this.isEl(el, \"fakeStep\");\n\n const to = isCurrentElFake\n ? this.getOverlayDocumentPath()\n : this.getOverlayStepPath(this.currentStep);\n\n path.setAttribute(\"d\", to);\n\n if (animate) {\n const lock = animate.getAttribute(\"lock\");\n\n if (!lock) {\n animate.setAttribute(\"from\", to);\n animate.setAttribute(\"to\", to);\n }\n\n if (animation) {\n const isFromElFake = this.isEl(\n this.getStepEl(this.fromStep),\n \"fakeStep\"\n );\n\n const from =\n this.fromStep && !isFromElFake && !isCurrentElFake\n ? this.getOverlayStepPath(this.fromStep)\n : null;\n\n if (from) {\n animate.setAttribute(\"from\", from);\n animate.setAttribute(\"to\", to);\n }\n\n animate.setAttribute(\"lock\", \"true\");\n }\n\n animate.onend = () => {\n animate.removeAttribute(\"lock\");\n };\n\n animate.beginElement();\n }\n }\n\n const elStyle = getComputedStyle(el);\n\n if (\n ![\"absolute\", \"relative\", \"fixed\"].includes(\n elStyle.getPropertyValue(\"position\")\n )\n ) {\n el.classList.add(this.constructor.getRelativePositionClass());\n }\n\n el.classList.add(this.constructor.getHighlightClass());\n\n el.setAttribute(`data-guidechimp-${this.uid}`, \"highlight\");\n this.elements.set(\"highlight\", el);\n\n return this;\n }\n\n resetHighlightStepEl() {\n const overlay = this.getEl(\"overlay\");\n\n if (overlay) {\n const path = overlay.querySelector(\"path\");\n const animate = overlay.querySelector(\"animate\");\n\n path.setAttribute(\"d\", this.getOverlayDocumentPath());\n\n if (animate) {\n animate.removeAttribute(\"from\");\n animate.removeAttribute(\"to\");\n }\n }\n\n const el = this.getStepEl(this.currentStep);\n\n el.classList.remove(this.constructor.getRelativePositionClass());\n el.classList.remove(this.constructor.getHighlightClass());\n\n el.removeAttribute(`data-guidechimp-${this.uid}`);\n this.elements.delete(\"highlight\");\n\n return this;\n }\n\n setInteractionPosition(interactionEl) {\n const el = this.getStepEl(this.currentStep);\n\n if (!interactionEl || !el) {\n return this;\n }\n\n let { padding } = this.options;\n\n const elStyle = getComputedStyle(el);\n\n if (elStyle.getPropertyValue(\"position\") === \"floating\") {\n padding = 0;\n }\n\n const { width, height, top, left } = this.constructor.getOffset(el);\n\n interactionEl.classList.toggle(\n this.constructor.getFixedClass(),\n this.constructor.isFixed(el)\n );\n\n const { style } = interactionEl;\n\n // set new position\n style.cssText = `width: ${width + padding}px;\n height: ${height + padding}px;\n top: ${top - padding / 2}px;\n left: ${left - padding / 2}px;`;\n\n return this;\n }\n\n setControlPosition(controlEl) {\n const el = this.getStepEl(this.currentStep);\n\n if (!controlEl || !el) {\n return this;\n }\n\n let { padding } = this.options;\n\n const elStyle = getComputedStyle(el);\n\n if (elStyle.getPropertyValue(\"position\") === \"floating\") {\n padding = 0;\n }\n\n const { pageXOffset } = el.ownerDocument.defaultView;\n const { width: docElWidth } =\n el.ownerDocument.documentElement.getBoundingClientRect();\n const {\n height: elHeight,\n top: elTop,\n left: elLeft,\n right: elRight,\n } = this.constructor.getOffset(el);\n\n const height = elHeight + padding;\n const top = elTop - padding / 2;\n const left =\n pageXOffset < pageXOffset + (elLeft - padding / 2)\n ? pageXOffset\n : elLeft - padding / 2;\n const width =\n pageXOffset + docElWidth > pageXOffset + (elRight + padding / 2)\n ? docElWidth\n : elRight + padding / 2;\n\n controlEl.classList.toggle(\n this.constructor.getFixedClass(),\n this.constructor.isFixed(el)\n );\n\n const { style } = controlEl;\n\n // set new position\n style.cssText = `width: ${width}px;\n height: ${height}px;\n top: ${top}px;\n left: ${left}px;`;\n\n return this;\n }\n\n setTooltipPosition(tooltipEl, options = {}) {\n if (!this.currentStep) {\n return this;\n }\n\n const el = this.getStepEl(this.currentStep);\n\n if (!tooltipEl || !el) {\n return this;\n }\n\n let { boundary, position: pos } = options;\n let { padding } = this.options;\n\n boundary = boundary || window;\n\n pos = pos || this.currentStep.position;\n pos = pos || this.options.position;\n\n let [position, alignment] = pos.split(\"-\");\n\n const elStyle = getComputedStyle(el);\n\n if (elStyle.getPropertyValue(\"position\") === \"floating\") {\n padding = 0;\n }\n\n const { style: tooltipStyle } = tooltipEl;\n\n // reset tooltip styles\n tooltipStyle.top = null;\n tooltipStyle.right = null;\n tooltipStyle.bottom = null;\n tooltipStyle.left = null;\n tooltipStyle.transform = null;\n\n const {\n top: elTop,\n bottom: elBottom,\n left: elLeft,\n right: elRight,\n width: elWidth,\n height: elHeight,\n } = el.getBoundingClientRect();\n\n const { height: tooltipHeight, width: tooltipWith } =\n tooltipEl.getBoundingClientRect();\n\n // find out min tooltip width\n const cloneTooltip = tooltipEl.cloneNode(true);\n cloneTooltip.style.visibility = \"hidden\";\n cloneTooltip.innerHTML = \"\";\n\n tooltipEl.parentElement.appendChild(cloneTooltip);\n\n const { width: minTooltipWidth } = cloneTooltip.getBoundingClientRect();\n\n cloneTooltip.parentElement.removeChild(cloneTooltip);\n\n let boundaryRect = new DOMRect(0, 0, window.innerWidth, window.innerHeight);\n\n if (!(boundary instanceof Window)) {\n const { x, y } = boundary.getBoundingClientRect();\n boundaryRect = new DOMRect(\n x,\n y,\n boundary.scrollWidth,\n boundary.scrollHeight\n );\n }\n\n const {\n top: boundaryTop,\n bottom: boundaryBottom,\n left: boundaryLeft,\n right: boundaryRight,\n } = boundaryRect;\n\n // if the element is default element, skip position and alignment calculation\n if (this.isEl(el, \"fakeStep\")) {\n position = \"floating\";\n } else {\n // calculate position\n const positions = [\"bottom\", \"right\", \"left\", \"top\"];\n\n let {\n marginTop: tooltipMarginTop,\n marginLeft: tooltipMarginLeft,\n marginRight: tooltipMarginRight,\n marginBottom: tooltipMarginBottom,\n } = getComputedStyle(tooltipEl);\n\n tooltipMarginTop = parseInt(tooltipMarginTop, 10);\n tooltipMarginLeft = parseInt(tooltipMarginLeft, 10);\n tooltipMarginRight = parseInt(tooltipMarginRight, 10);\n tooltipMarginBottom = parseInt(tooltipMarginBottom, 10);\n\n // check if the tooltip can be placed on top\n if (\n tooltipHeight + tooltipMarginTop + tooltipMarginBottom >\n elTop - boundaryTop\n ) {\n positions.splice(positions.indexOf(\"top\"), 1);\n }\n\n // check if the tooltip can be placed on bottom\n if (\n tooltipHeight + tooltipMarginTop + tooltipMarginBottom >\n boundaryBottom - elBottom\n ) {\n positions.splice(positions.indexOf(\"bottom\"), 1);\n }\n\n // check if the tooltip can be placed on left\n if (\n minTooltipWidth + tooltipMarginLeft + tooltipMarginRight >\n elLeft - boundaryLeft\n ) {\n positions.splice(positions.indexOf(\"left\"), 1);\n }\n\n // check if the tooltip can be placed on right\n if (\n minTooltipWidth + tooltipMarginLeft + tooltipMarginRight >\n boundaryRight - elRight\n ) {\n positions.splice(positions.indexOf(\"right\"), 1);\n }\n\n if (positions.length) {\n position = positions.includes(position) ? position : positions[0];\n } else {\n position = \"floating\";\n }\n\n if (position === \"top\" || position === \"bottom\") {\n const alignments = [\"left\", \"right\", \"middle\"];\n\n // valid left space must be at least tooltip width\n if (boundaryRight - elLeft < minTooltipWidth) {\n alignments.splice(alignments.indexOf(\"left\"), 1);\n }\n\n // valid right space must be at least tooltip width\n if (elRight - boundaryLeft < minTooltipWidth) {\n alignments.splice(alignments.indexOf(\"right\"), 1);\n }\n\n // valid middle space must be at least half width from both sides\n if (\n elLeft + elWidth / 2 - boundaryLeft < minTooltipWidth / 2 ||\n boundaryRight - (elRight - elWidth / 2) < minTooltipWidth / 2\n ) {\n alignments.splice(alignments.indexOf(\"middle\"), 1);\n }\n\n if (alignments.length) {\n alignment = alignments.includes(alignment)\n ? alignment\n : alignments[0];\n } else {\n alignment = \"middle\";\n }\n }\n }\n\n tooltipEl.setAttribute(\"data-guidechimp-position\", position);\n\n const root = document.documentElement;\n\n switch (position) {\n case \"top\":\n tooltipStyle.bottom = `${elHeight + padding}px`;\n break;\n case \"right\":\n tooltipStyle.left = `${elRight + padding / 2 - root.clientLeft}px`;\n break;\n case \"left\":\n tooltipStyle.right = `${root.clientWidth - (elLeft - padding / 2)}px`;\n break;\n case \"bottom\":\n tooltipStyle.top = `${elHeight + padding}px`;\n break;\n default: {\n tooltipStyle.left = \"50%\";\n tooltipStyle.top = \"50%\";\n tooltipStyle.transform = \"translate(-50%,-50%)\";\n }\n }\n\n tooltipEl.removeAttribute(\"data-guidechimp-alignment\");\n\n if (alignment) {\n tooltipEl.setAttribute(\"data-guidechimp-alignment\", alignment);\n\n switch (alignment) {\n case \"left\": {\n tooltipStyle.left = `${elLeft - padding / 2}px`;\n break;\n }\n case \"right\": {\n tooltipStyle.right = `${root.clientWidth - elRight - padding / 2}px`;\n break;\n }\n default: {\n if (\n elLeft + elWidth / 2 < tooltipWith / 2 ||\n elLeft + elWidth / 2 + tooltipWith / 2 > root.clientWidth\n ) {\n tooltipStyle.left = `${root.clientWidth / 2 - tooltipWith / 2}px`;\n } else {\n tooltipStyle.left = `${elLeft + elWidth / 2 - tooltipWith / 2}px`;\n }\n }\n }\n }\n\n return this;\n }\n\n startPreloader() {\n document.body.classList.add(this.constructor.getLoadingClass());\n\n const overlay = this.getEl(\"overlay\");\n\n if (overlay) {\n const path = overlay.querySelector(\"path\");\n const animate = overlay.querySelector(\"animate\");\n\n const preloaderCache = new Map();\n preloaderCache.set(\"d\", path.getAttribute(\"d\"));\n\n path.setAttribute(\"d\", this.getOverlayDocumentPath());\n\n if (animate) {\n preloaderCache.set(\"from\", animate.getAttribute(\"from\"));\n preloaderCache.set(\"to\", animate.getAttribute(\"to\"));\n\n animate.removeAttribute(\"from\");\n animate.removeAttribute(\"to\");\n }\n\n this.cache.set(\"preloaderCache\", preloaderCache);\n }\n\n const preloader = this.mountPreloaderEl();\n preloader.hidden = true;\n\n setTimeout(() => {\n preloader.hidden = false;\n }, 100);\n\n return this;\n }\n\n stopPreloader() {\n document.body.classList.remove(this.constructor.getLoadingClass());\n\n const overlay = this.getEl(\"overlay\");\n\n if (overlay) {\n const path = overlay.querySelector(\"path\");\n const animate = overlay.querySelector(\"animate\");\n\n const preloaderCache = this.cache.get(\"preloaderCache\") || new Map();\n\n if (preloaderCache.has(\"d\")) {\n path.setAttribute(\"d\", preloaderCache.get(\"d\"));\n }\n\n if (animate) {\n if (preloaderCache.has(\"from\")) {\n animate.setAttribute(\"from\", preloaderCache.get(\"from\"));\n }\n\n if (preloaderCache.has(\"to\")) {\n animate.setAttribute(\"to\", preloaderCache.get(\"to\"));\n }\n }\n\n this.cache.delete(\"preloaderCache\");\n }\n\n this.removePreloaderEl();\n return this;\n }\n\n getDefaultTmplData() {\n return {\n previousStep: this.previousStep,\n currentStep: this.currentStep,\n nextStep: this.nextStep,\n fromStep: this.fromStep,\n toStep: this.toStep,\n\n previousStepIndex: this.previousStepIndex,\n currentStepIndex: this.currentStepIndex,\n nextStepIndex: this.nextStepIndex,\n fromStepIndex: this.fromStepIndex,\n toStepIndex: this.toStepIndex,\n\n steps: this.steps,\n\n go: (...args) => this.go(...args),\n previous: (...args) => this.previous(...args),\n next: (...args) => this.next(...args),\n stop: (...args) => this.stop(...args),\n };\n }\n\n mountStep() {\n const interactionEl = this.mountInteractionEl();\n const controlEl = this.mountControlEl();\n\n this.setInteractionPosition(interactionEl);\n this.setControlPosition(controlEl);\n this.setTooltipPosition(this.getEl(\"tooltip\"));\n\n this.observeStep();\n\n this.highlightStepEl(true);\n\n return this;\n }\n\n unmountStep() {\n this.resetHighlightStepEl();\n\n this.removeInteractionEl();\n this.removeControlEl();\n this.removePreloaderEl();\n this.removeFakeStepEl();\n\n return this;\n }\n\n createEl(name, tmpl, data = {}) {\n const el = domTemplate(tmpl, data);\n\n if (el) {\n el.setAttribute(`data-quidechimp-${this.uid}`, name);\n }\n\n return el;\n }\n\n getEl(key, def = null) {\n let el = this.elements.get(key);\n\n if (!el) {\n el = document.querySelector(`[data-quidechimp-${this.uid}=\"${key}\"]`);\n }\n\n return el || def;\n }\n\n mountEl(el, parent) {\n if (el) {\n const els = el.querySelectorAll(`[data-quidechimp-${this.uid}]`);\n\n [el, ...els].forEach((v) => {\n const key = v.getAttribute(`data-quidechimp-${this.uid}`);\n if (key) {\n this.removeEl(key);\n this.elements.set(key, v);\n }\n });\n\n parent.appendChild(el);\n }\n\n return el;\n }\n\n removeEl(key) {\n const el = this.getEl(key);\n\n if (el) {\n el.parentElement.removeChild(el);\n }\n\n this.elements.delete(key);\n\n return this;\n }\n\n isEl(el, key) {\n return this.getEl(key)\n ? el === this.getEl(key)\n : el.getAttribute(`data-quidechimp-${this.uid}`) === key;\n }\n\n getFakeStepTmpl() {\n return fakeStepTmpl;\n }\n\n createFakeStepEl(data = {}) {\n return this.createEl(\"fakeStep\", this.getFakeStepTmpl(), {\n ...this.getDefaultTmplData(),\n ...data,\n });\n }\n\n mountFakeStepEl(data = {}) {\n return this.mountEl(this.createFakeStepEl(data), document.body);\n }\n\n removeFakeStepEl() {\n return this.removeEl(\"fakeStep\");\n }\n\n getPreloaderTmpl() {\n return preloaderTmpl;\n }\n\n createPreloaderEl(data = {}) {\n return this.createEl(\"preloader\", this.getPreloaderTmpl(), data);\n }\n\n mountPreloaderEl(data = {}) {\n return this.mountEl(this.createPreloaderEl(data), document.body);\n }\n\n removePreloaderEl() {\n return this.removeEl(\"preloader\");\n }\n\n getOverlayDocumentPath() {\n const { innerWidth, innerHeight } = window;\n const {\n body: { scrollWidth, scrollHeight },\n } = document;\n\n const width = innerWidth > scrollWidth ? innerWidth : scrollWidth;\n const height = innerHeight > scrollHeight ? innerHeight : scrollHeight;\n\n return `M 0 0 H ${width} V ${height} H 0 V 0 Z`;\n }\n\n getOverlayStepPath(step) {\n return this.getOverlayElPath(this.getStepEl(step));\n }\n\n getOverlayElPath(el) {\n let { padding } = this.options;\n padding = padding ? padding / 2 : 0;\n\n const { left, top, width, height } = el.getBoundingClientRect();\n const r = 4;\n\n let path = this.getOverlayDocumentPath();\n\n path += `M ${left - padding + r} ${top - padding}\n a ${r},${r} 0 0 0 -${r},${r}\n V ${height + top + padding - r}\n a ${r},${r} 0 0 0 ${r},${r}\n H ${width + left + padding - r}\n a ${r},${r} 0 0 0 ${r},-${r}\n V ${top - padding + r}\n a ${r},${r} 0 0 0 -${r},-${r}Z`;\n\n return path;\n }\n\n getOverlayTmpl() {\n return overlayTmpl;\n }\n\n createOverlayEl(data = {}) {\n const defaults = {\n stop: async (...args) => {\n if (this.options.exitOverlay) {\n await this.stop(...args);\n }\n },\n path: this.getOverlayDocumentPath(),\n };\n\n return this.createEl(\"overlay\", this.getOverlayTmpl(), {\n ...defaults,\n ...data,\n });\n }\n\n mountOverlayEl(data = {}) {\n return this.mountEl(this.createOverlayEl(data), document.body);\n }\n\n removeOverlayEl() {\n return this.removeEl(\"overlay\");\n }\n\n getInteractionTmpl() {\n return interactionTmpl;\n }\n\n createInteractionEl(data = {}) {\n let { interaction } = this.options;\n\n if (typeof this.currentStep.interaction === \"boolean\") {\n interaction = this.currentStep.interaction;\n }\n\n const defaults = {\n ...this.getDefaultTmplData(),\n interaction,\n };\n\n return this.createEl(\"interaction\", this.getInteractionTmpl(), {\n ...defaults,\n ...data,\n });\n }\n\n mountInteractionEl(data = {}) {\n return this.mountEl(this.createInteractionEl(data), document.body);\n }\n\n removeInteractionEl() {\n return this.removeEl(\"interaction\");\n }\n\n getControlTmpl() {\n return controlTmpl;\n }\n\n createControlEl(data = {}) {\n return this.createEl(\"control\", this.getControlTmpl(), {\n ...this.getDefaultTmplData(),\n tooltipEl: this.createTooltipEl(data),\n ...data,\n });\n }\n\n mountControlEl(data = {}) {\n return this.mountEl(this.createControlEl(data), document.body);\n }\n\n removeControlEl() {\n return this.removeEl(\"control\");\n }\n\n getTooltipTmpl() {\n return tooltipTmpl;\n }\n\n createTooltipEl(data = {}) {\n const defaults = {\n ...this.getDefaultTmplData(),\n progressbar: this.createProgressbarEl(data),\n title: this.createTitleEl(data),\n description: this.createDescriptionEl(data),\n close: this.createCloseEl(data),\n customButtons: this.createCustomButtonsEl(data),\n previous: this.createPreviousEl(data),\n pagination: this.createPaginationEl(data),\n next: this.createNextEl(data),\n copyright: this.createCopyrightEl(data),\n notification: this.createNotificationEl(data),\n };\n\n return this.createEl(\"tooltip\", this.getTooltipTmpl(), {\n ...defaults,\n ...data,\n });\n }\n\n getCloseTmpl() {\n return closeTmpl;\n }\n\n createCloseEl(data = {}) {\n return this.createEl(\"close\", this.getCloseTmpl(), {\n ...this.getDefaultTmplData(),\n ...data,\n });\n }\n\n getProgressbarTmpl() {\n return progressbarTmpl;\n }\n\n createProgressbarEl(data = {}) {\n let { showProgressbar } = this.options;\n\n if (typeof this.currentStep.showProgressbar === \"boolean\") {\n showProgressbar = this.currentStep.showProgressbar;\n }\n\n const progressMax = 100;\n const progressMin = 0;\n const progress = ((this.currentStepIndex + 1) / this.steps.length) * 100;\n\n const defaults = {\n ...this.getDefaultTmplData(),\n showProgressbar,\n progressMax,\n progressMin,\n progress,\n };\n\n return this.createEl(\"progressbar\", this.getProgressbarTmpl(), {\n ...defaults,\n ...data,\n });\n }\n\n getTitleTmpl() {\n return titleTmpl;\n }\n\n createTitleEl(data = {}) {\n const { title = \"\" } = this.currentStep;\n return this.createEl(\"title\", this.getTitleTmpl(), {\n ...this.getDefaultTmplData(),\n title,\n ...data,\n });\n }\n\n getDescriptionTmpl() {\n return descriptionTmpl;\n }\n\n createDescriptionEl(data = {}) {\n const { description = \"\" } = this.currentStep;\n\n return this.createEl(\"description\", this.getDescriptionTmpl(), {\n ...this.getDefaultTmplData(),\n description,\n ...data,\n });\n }\n\n getCustomButtonsTmpl() {\n return customButtonsTmpl;\n }\n\n createCustomButtonsEl(data = {}) {\n const buttons = [];\n\n if (this.currentStep.buttons) {\n this.currentStep.buttons.forEach((button) => {\n let buttonEl = button;\n\n if (!isHtmlElement(buttonEl)) {\n const {\n onClick,\n tagName = \"button\",\n title = \"\",\n class: className,\n } = button;\n\n buttonEl = document.createElement(tagName);\n buttonEl.innerHTML = title;\n\n if (className) {\n buttonEl.className = className;\n }\n\n if (onClick) {\n buttonEl.addEventListener(\"click\", (e) => {\n onClick.call(this, e);\n });\n }\n }\n\n buttons.push(buttonEl);\n });\n }\n\n return this.createEl(\"customButtons\", this.getCustomButtonsTmpl(), {\n ...this.getDefaultTmplData(),\n buttons,\n ...data,\n });\n }\n\n getPaginationTmpl() {\n return paginationTmpl;\n }\n\n createPaginationEl(data = {}) {\n const {\n paginationTheme = this.options.paginationTheme,\n paginationCirclesMaxItems = this.options.paginationCirclesMaxItems,\n } = this.currentStep;\n\n let { showPagination } = this.options;\n\n if (typeof this.currentStep.showPagination === \"boolean\") {\n showPagination = this.currentStep.showPagination;\n }\n\n return this.createEl(\"pagination\", this.getPaginationTmpl(), {\n ...this.getDefaultTmplData(),\n showPagination,\n paginationTheme,\n paginationCirclesMaxItems,\n ...data,\n });\n }\n\n getPreviousTmpl() {\n return previousTmpl;\n }\n\n createPreviousEl(data = {}) {\n let { showNavigation } = this.options;\n\n if (typeof this.currentStep.showNavigation === \"boolean\") {\n showNavigation = this.currentStep.showNavigation;\n }\n\n return this.createEl(\"previous\", this.getPreviousTmpl(), {\n ...this.getDefaultTmplData(),\n showNavigation,\n ...data,\n });\n }\n\n getNextTmpl() {\n return nextTmpl;\n }\n\n createNextEl(data = {}) {\n let { showNavigation } = this.options;\n\n if (typeof this.currentStep.showNavigation === \"boolean\") {\n showNavigation = this.currentStep.showNavigation;\n }\n\n return this.createEl(\"next\", this.getNextTmpl(), {\n ...this.getDefaultTmplData(),\n showNavigation,\n ...data,\n });\n }\n\n getCopyrightTmpl() {\n return copyrightTmpl;\n }\n\n createCopyrightEl(data = {}) {\n return this.createEl(\"copyright\", this.getCopyrightTmpl(), {\n ...this.getDefaultTmplData(),\n ...data,\n });\n }\n\n getNotificationTmpl() {\n return notificationTmpl;\n }\n\n createNotificationEl(data = {}) {\n return this.createEl(\"notification\", this.getNotificationTmpl(), {\n ...this.getDefaultTmplData(),\n messages: this.notifications,\n ...data,\n });\n }\n\n notify(message) {\n this.notifications.push(message);\n\n const notificationEl = this.getEl(\"notification\");\n\n if (notificationEl) {\n this.mountEl(this.createNotificationEl(), notificationEl.parentElement);\n }\n\n return this;\n }\n\n /**\n * Register an event listener for a tour event.\n *\n * Event names can be comma-separated to register multiple events.\n *\n * @param {string} event The name of the event to listen for.\n * @param {function} listener The event listener, accepts context.\n * @param {object} options Listener options\n * @return {this}\n */\n on(event, listener, options = {}) {\n // priorities from low to high\n const priorities = this.constructor.getEventListenersPriorities();\n\n let [priority] = priorities;\n\n if (options.priority && priorities.includes(options.priority)) {\n priority = options.priority;\n }\n\n const e = event.trim();\n\n this.listeners[e] = this.listeners[e] || {};\n this.listeners[e][priority] = this.listeners[e][priority] || [];\n this.listeners[e][priority].push(listener);\n\n return this;\n }\n\n /**\n * Emits an event by name to all registered listeners on that event.\n * Listeners will be called in the order that they were added. If a listener\n * returns `false`, no other listeners will be called.\n *\n * @param {string} event The name of the event to emit.\n * @param args The context args of the event, passed to listeners.\n * @returns {Promise}\n */\n emit(event, ...args) {\n // from high to low\n const priorities = [\n ...this.constructor.getEventListenersPriorities(),\n ].reverse();\n\n const e = event.trim();\n\n let result = [];\n let promise = Promise.resolve(result);\n\n if (this.listeners[e]) {\n priorities.forEach((priority) => {\n const { [priority]: listeners } = this.listeners[e];\n\n if (listeners) {\n promise = promise\n .then(() =>\n Promise.all(\n listeners.map((f) =>\n Promise.resolve().then(() => f.apply(this, args))\n )\n )\n )\n .then((r) => {\n result = [...result, ...r];\n return result;\n });\n }\n });\n }\n\n return promise;\n }\n\n /**\n * Add keydown event listener\n * @return {this}\n */\n addOnKeydownListener() {\n // turn on keyboard navigation\n this.cache.set(\"onKeydownListener\", this.getOnKeydownListener());\n window.addEventListener(\n \"keydown\",\n this.cache.get(\"onKeydownListener\"),\n true\n );\n\n return this;\n }\n\n /**\n * Return on key down event listener function\n * @returns {function}\n */\n getOnKeydownListener() {\n return (event) => {\n const { keyCode } = event;\n\n const {\n previous: previousCodes,\n next: nextCodes,\n stop: stopCodes,\n } = {\n ...this.constructor.getDefaultKeyboardCodes(),\n ...this.options.useKeyboard,\n };\n\n // stop tour\n if (stopCodes && stopCodes.includes(keyCode)) {\n this.stop({ event });\n return;\n }\n\n // go to the previous step\n if (previousCodes && previousCodes.includes(keyCode)) {\n this.previous({ event });\n return;\n }\n\n // go to the next step\n if (nextCodes && nextCodes.includes(keyCode)) {\n this.next({ event });\n }\n };\n }\n\n /**\n * Remove keydown event listener\n * @return {this}\n */\n removeOnKeydownListener() {\n if (this.cache.has(\"onKeydownListener\")) {\n window.removeEventListener(\n \"keydown\",\n this.cache.get(\"onKeydownListener\"),\n true\n );\n this.cache.delete(\"onKeydownListener\");\n }\n\n return this;\n }\n\n /**\n * Add window resize event listener\n * @return {this}\n */\n addOnWindowResizeListener() {\n // turn on keyboard navigation\n this.cache.set(\"onWindowResizeListener\", this.getOnWindowResizeListener());\n window.addEventListener(\n \"resize\",\n this.cache.get(\"onWindowResizeListener\"),\n true\n );\n\n return this;\n }\n\n /**\n * Return on window resize event listener function\n * @returns {function}\n */\n getOnWindowResizeListener() {\n return () => this.refresh();\n }\n\n /**\n * Remove window resize event listener\n * @return {this}\n */\n removeOnWindowResizeListener() {\n if (this.cache.has(\"onWindowResizeListener\")) {\n window.removeEventListener(\n \"resize\",\n this.cache.get(\"onWindowResizeListener\"),\n true\n );\n this.cache.delete(\"onWindowResizeListener\");\n }\n\n return this;\n }\n\n /**\n * Add window scroll event listener\n * @returns {GuideChimp}\n */\n addOnWindowScrollListener() {\n this.cache.set(\"onWindowScrollListener\", this.getOnWindowScrollListener());\n window.addEventListener(\n \"scroll\",\n this.cache.get(\"onWindowScrollListener\"),\n true\n );\n\n return this;\n }\n\n /**\n * Return on window scroll event listener function\n * @returns {function}\n */\n getOnWindowScrollListener() {\n return () => this.refresh();\n }\n\n /**\n * Remove window resize event listener\n * @return {this}\n */\n removeOnWindowScrollListener() {\n if (this.cache.has(\"onWindowScrollListener\")) {\n window.removeEventListener(\n \"scroll\",\n this.cache.get(\"onWindowScrollListener\"),\n true\n );\n this.cache.delete(\"onWindowScrollListener\");\n }\n\n return this;\n }\n\n removeListeners() {\n this.removeOnKeydownListener();\n this.removeOnWindowResizeListener();\n this.removeOnWindowScrollListener();\n }\n\n observeStep() {\n this.observeResizing();\n this.observeMutation();\n }\n\n observeResizing(options = { box: \"border-box\" }) {\n let { resizingObserver: observer } = this.observers;\n\n if (!observer && typeof ResizeObserver !== \"undefined\") {\n observer = new ResizeObserver(() => {\n if (!this && !this.currentStep) {\n return;\n }\n this.refresh();\n });\n\n this.observers.resizingObserver = observer;\n }\n\n if (observer) {\n // observe elements\n observer.observe(this.getStepEl(this.currentStep), options);\n return true;\n }\n\n return false;\n }\n\n unobserveResizing() {\n const { resizingObserver: observer } = this.observers;\n\n if (observer) {\n observer.disconnect();\n return true;\n }\n\n return false;\n }\n\n observeMutation() {\n let { mutationObserver: observer } = this.observers;\n\n if (!observer) {\n observer = new MutationObserver((mutations) => {\n if (!this && !this.currentStep) {\n return;\n }\n\n const { element } = this.currentStep;\n\n if (!element) {\n return;\n }\n\n let el = this.getStepEl(this.currentStep);\n\n const isElExists = () => el && !this.isEl(el, \"fakeStep\");\n\n mutations.forEach((record) => {\n if (isElExists()) {\n if (record.type === \"childList\" && record.removedNodes.length) {\n record.removedNodes.forEach((node) => {\n if (node === el || node.contains(el)) {\n el = this.getStepEl(this.currentStep);\n this.scrollParentsToStepEl();\n this.refresh();\n }\n });\n }\n } else if (record.type === \"childList\" && record.addedNodes.length) {\n el = this.getStepEl(this.currentStep);\n\n if (isElExists()) {\n this.scrollParentsToStepEl();\n this.refresh();\n }\n }\n });\n });\n\n this.observers.mutationObserver = observer;\n }\n\n observer.observe(this.getStepEl(this.currentStep).ownerDocument.body, {\n childList: true,\n subtree: true,\n });\n\n return true;\n }\n\n unobserveMutation() {\n const { mutationObserver: observer } = this.observers;\n\n if (observer) {\n observer.disconnect();\n return true;\n }\n\n return false;\n }\n\n unobserveStep() {\n this.unobserveResizing();\n this.unobserveMutation();\n }\n\n beforeChangeStep() {\n this.unmountStep();\n this.unobserveStep();\n }\n\n /**\n * Refresh layers position\n * @returns {this}\n */\n refresh() {\n if (!this.currentStep) {\n return this;\n }\n\n this.highlightStepEl();\n\n this.setControlPosition(this.getEl(\"control\"));\n this.setInteractionPosition(this.getEl(\"interaction\"));\n this.setTooltipPosition(this.getEl(\"tooltip\"));\n\n return this;\n }\n}\n","// Module\nvar code = \"<div class=\\\"gc-fake-step\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-preloader\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-overlay\\\" @click=\\\"stop({ event: $event })\\\"> <svg class=\\\"svg-overlay\\\"> <path d=\\\"{{path}}\\\"> <animate attributeName=\\\"d\\\" dur=\\\"200ms\\\"/> </path> </svg> </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"!interaction\\\" class=\\\"gc-interaction gc-disable\\\"> </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-control\\\"> {{ tooltipEl }} </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-tooltip\\\"> <div class=\\\"gc-tooltip-tail\\\"></div> {{ progressbar }} {{ title }} {{ description }} {{ close }} {{ customButtons }} <div if=\\\"previous || pagination || next\\\" class=\\\"gc-navigation\\\"> {{ previous }} {{ pagination }} {{ next }} </div> {{ copyright }} {{ notification }} </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-close\\\" @click=\\\"stop({ event: $event })\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"showProgressbar\\\" class=\\\"gc-progressbar\\\" role=\\\"progressbar\\\" aria-valuemin=\\\"{{ progressMin }}\\\" aria-valuemax=\\\"{{ progressMax }}\\\" aria-valuenow=\\\"{{ progress }}\\\" style=\\\"width:{{ progress }}%;\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"title\\\" html=\\\"{{ title }}\\\" class=\\\"gc-title\\\"> </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"description\\\" html=\\\"{{ description }}\\\" class=\\\"gc-description\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"buttons.length\\\" class=\\\"gc-custom-buttons\\\"> <template for=\\\"button in buttons\\\"> {{ button }} </template> </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"showPagination && steps.length > 1\\\" class=\\\"gc-pagination\\\"> <template if=\\\"paginationTheme === 'numbers' || steps.length >= paginationCirclesMaxItems\\\"> <ul class=\\\"gc-pagination-theme-numbers\\\"> <template for=\\\"(step, index) in steps\\\"> <template if=\\\"index === 0\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> <template if=\\\"currentStepIndex < 3\\\"> <template if=\\\"index > 0 && index < 5\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> <li elseif=\\\"index === 5 && index !== steps.length - 1\\\" class=\\\"gc-pagination-dots\\\"> ... </li> </template> <template elseif=\\\"steps.length - currentStepIndex < 5\\\"> <template if=\\\"steps.length - index < 6 && steps.length - 1 !== index\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> <li elseif=\\\"steps.length - index === 6 && index !== 0\\\" class=\\\"gc-pagination-dots\\\"> ... </li> </template> <template else> <li if=\\\"currentStepIndex - index === 3 && index !== 0\\\" class=\\\"gc-pagination-dots\\\"> ... </li> <template elseif=\\\"(currentStepIndex - index >= 0 && currentStepIndex - index < 3)\\n || ( index - currentStepIndex >= 0 && index - currentStepIndex < 3)\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> <li elseif=\\\"index - currentStepIndex === 3 && steps.length -1 !== index\\\" class=\\\"gc-pagination-dots\\\"> ... </li> </template> <template if=\\\"index + 1 === steps.length\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> </template> </ul> </template> <template else> <div class=\\\"gc-pagination-theme-circles\\\"> <template for=\\\"(step, index) in steps\\\"> <div if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\"></div> <div elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"></div> <div elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"></div> <div else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"></div> </template> </div> </template> </div> \";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-navigation-prev {{ (!previousStep || !showNavigation) ? 'gc-hidden': '' }}\\\" @click=\\\"previous({ event: $event })\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-navigation-next {{ (!nextStep || !showNavigation) ? 'gc-hidden': '' }}\\\" @click=\\\"next({ event: $event })\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-copyright\\\">Made with AHD.JS</div> \";\n// Exports\nexport default code;","// Module\nvar code = \"<div html=\\\"{{ messages[0] }}\\\" class=\\\"gc-notification\\\"></div>\";\n// Exports\nexport default code;","import Information from \"./Information\";\nimport \"./assets/style.scss\";\n\nexport default (Class, factory) => {\n // eslint-disable-next-line no-param-reassign\n factory.information = (informations, options = {}) =>\n new (class extends Information {\n getDataInformation(ids) {\n const data = super.getDataInformation(ids);\n\n data.forEach((information) => {\n const { id, element: el } = information;\n\n let tour = \"\";\n\n const dataGlobalTourAttrName = `${this.constructor.getInformationDataPrefix()}-tour`;\n const dataInformationTourAttrName = `${this.constructor.getInformationDataPrefix()}-${id}-tour`;\n\n if (el.attributes[dataGlobalTourAttrName]) {\n const { value } = el.attributes[dataGlobalTourAttrName];\n tour = value;\n }\n\n if (el.attributes[dataInformationTourAttrName]) {\n const { value } = el.attributes[dataInformationTourAttrName];\n tour = value;\n }\n\n if (tour) {\n // eslint-disable-next-line no-param-reassign\n information.tour = tour;\n information\n }\n });\n\n return data;\n }\n\n createInformationEl(information) {\n const el = super.createInformationEl(information);\n\n if (information.tour) {\n el.addEventListener(\"click\", () => {\n let guide = null;\n\n if (typeof information.tour === \"string\" || Array.isArray(information.tour)) {\n guide = new Class(information.tour);\n } else if (information.tour instanceof Class) {\n guide = information.tour;\n } else if (typeof information.tour === \"object\") {\n const { steps, options: tourOptions } = information.tour;\n guide = new Class(steps, tourOptions);\n }\n\n if (guide) {\n guide.start();\n }\n });\n }\n\n return el;\n }\n })(informations, options);\n};\n","/**\n * Copyright (C) 2020 Labs64 GmbH\n *\n * This source code is licensed under the European Union Public License, version 1.2\n * located in the LICENSE file\n */\nimport Beacons from \"./Beacons\";\nimport \"./assets/style.scss\";\n\nexport default (Class, factory) => {\n // eslint-disable-next-line no-param-reassign\n factory.beacons = (beacons, options = {}) =>\n new (class extends Beacons {\n getDataBeacons(ids) {\n const data = super.getDataBeacons(ids);\n\n data.forEach((beacon) => {\n const { id, element: el } = beacon;\n\n let tour = \"\";\n\n const dataGlobalTourAttrName = `${this.constructor.getBeaconDataPrefix()}-tour`;\n const dataBeaconTourAttrName = `${this.constructor.getBeaconDataPrefix()}-${id}-tour`;\n\n if (el.attributes[dataGlobalTourAttrName]) {\n const { value } = el.attributes[dataGlobalTourAttrName];\n tour = value;\n }\n\n if (el.attributes[dataBeaconTourAttrName]) {\n const { value } = el.attributes[dataBeaconTourAttrName];\n tour = value;\n }\n\n if (tour) {\n // eslint-disable-next-line no-param-reassign\n beacon.tour = tour;\n }\n });\n\n return data;\n }\n\n createBeaconEl(beacon) {\n const el = super.createBeaconEl(beacon);\n\n if (beacon.tour) {\n el.addEventListener(\"click\", () => {\n let guide = null;\n\n if (typeof beacon.tour === \"string\" || Array.isArray(beacon.tour)) {\n guide = new Class(beacon.tour);\n } else if (beacon.tour instanceof Class) {\n guide = beacon.tour;\n } else if (typeof beacon.tour === \"object\") {\n const { steps, options: tourOptions } = beacon.tour;\n guide = new Class(steps, tourOptions);\n }\n\n if (guide) {\n guide.start();\n }\n });\n }\n\n return el;\n }\n })(beacons, options);\n};\n","import GuideChimp from \"./GuideChimp\";\n//import Beacons from \"./plugins/beacons\";\nimport \"./index.scss\";\nimport Information from \"./plugins/information\";\nimport Beacons from \"./plugins/beacons\";\nclass AHDjs {\n private guideChimp: any;\n private appId: string;\n private contextToursMapData: any;\n constructor(applicationId: any, tour: any, options: any) {\n this.appId = applicationId;\n //@ts-ignore\n this.guideChimp = new GuideChimp(tour, options);\n\n this.guideChimp.prototype = GuideChimp.prototype;\n this.guideChimp.plugins = new Set();\n\n //@ts-ignore\n // this.guideChimp.extend = (plugin, ...args) => {\n // if (!this.guideChimp.plugins.has(plugin)) {\n // this.guideChimp.plugins.add(plugin);\n // plugin(GuideChimp, this.guideChimp, ...args);\n // }\n // return this.guideChimp;\n // };\n\n // test beacon extension\n // @ts-ignore\n const pluginsToLoad = [Beacons, Information];\n pluginsToLoad.forEach((pluginClass) => {\n const plugin = pluginClass;\n if (!this.guideChimp.plugins.has(plugin)) {\n this.guideChimp.plugins.add(plugin);\n // @ts-ignore\n plugin(GuideChimp, this.guideChimp, tour, options);\n }\n });\n }\n\n updatePageUrl = async (url: string, refetch: boolean) => {\n await this.stop();\n // todo: local caching and use https://github.com/pillarjs/path-to-regexp to find exact match\n const respons: any = await fetch(\n `https://ahd-be-jggub5n6qq-em.a.run.app/api/tenant/${this.appId}/contexttour?filter[isActive]=true`\n ).then((res) => res.json());\n\n this.contextToursMapData = respons.rows;\n //if there is anything to open onload\n const onboardTour = respons.rows\n .filter((row: any) => !!row.content)\n .map((row: any) => {\n return {\n element: row.selector,\n title: row.content.title,\n description: row.content.content,\n tour: [\n {\n title: \"Multi Feature\",\n description: \"Multi Feature beacon clicked.\",\n },\n ],\n };\n });\n this.setTour(onboardTour);\n this.start();\n };\n\n setTour = (tour: any) => {\n this.guideChimp.setTour(tour);\n };\n beacons = (...args: any) => {\n // @ts-ignore\n // this.guideChimp.beacon = new Beacons(...args);\n\n const tourBeacons = this.contextToursMapData\n .filter((row: any) => !!row.content)\n .map((row: any) => {\n return {\n element: row.selector,\n title: row.content.title,\n description: row.content.content,\n tour: [\n {\n title: \"BC Multi Feature\",\n description: \"BC Multi Feature beacon clicked.\",\n },\n {\n title: \"B2C Multi Feature\",\n description: \"B2C Multi Feature beacon clicked.\",\n },\n ],\n };\n });\n\n const b = this.guideChimp.beacons(tourBeacons);\n setTimeout(() => {\n b.showAll();\n }, 1000);\n };\n start = (...args: any) => {\n this.guideChimp.start(...args);\n };\n stop = async (...args: any) => {\n await this.guideChimp.stop(...args);\n };\n showInformation = (...args: any) => {\n // @ts-ignore\n // this.guideChimp.beacon = new Beacons(...args);\n const b = this.guideChimp.information(...args);\n setTimeout(() => {\n b.showAll();\n }, 1000);\n };\n // guideChimp.prototype = GuideChimp.prototype;\n // guideChimp.plugins = new Set();\n\n // guideChimp.extend = (plugin, ...args) => {\n // if (!guideChimp.plugins.has(plugin)) {\n // guideChimp.plugins.add(plugin);\n // plugin(GuideChimp, guideChimp, ...args);\n // }\n // return guideChimp;\n // };\n\n // module.exports = guideChimp;\n}\n\nexport default AHDjs;\n"],"names":["root","factory","exports","module","define","amd","self","Beacons","beacons","options","this","observers","ResizeObserver","elementResizeObserver","refresh","cache","Map","elements","setOptions","setBeacons","init","constructor","getDefaultOptions","removeAll","Array","isArray","every","v","getDataBeacons","getJsBeacons","length","forEach","beacon","element","el","getEl","beaconEl","createBeaconEl","hidden","isFixed","classList","add","getFixedClass","parentElement","document","body","append","set","setBeaconPosition","observeResizing","addOnWindowResizeListener","id","def","filter","ids","beaconsIds","split","map","trim","beaconsSelector","getBeaconDataPrefix","push","beaconsEl","from","querySelectorAll","join","dataGlobalRegExp","RegExp","beaconsIdsAttrValue","attributes","value","elBeaconsIds","includes","globalBeaconAttrs","beaconAttrs","dataBeaconRegExp","j","attrName","name","attrValue","isGlobalAttr","test","isBeaconAttr","match","shortAttrName","position","onClick","onclick","e","onClickCode","eval","call","i","beaconTpl","data","stopPropagation","domTemplate","getBeaconTpl","selector","HTMLElement","querySelector","boundary","elLeft","offsetLeft","elTop","offsetTop","elWidth","offsetWidth","elHeight","offsetHeight","beaconStyle","style","getComputedStyle","beaconWidth","width","beaconHeight","height","parseInt","removeAttribute","setAttribute","left","top","canShow","undefined","force","show","getBeacon","get","isCanShowBeacon","hide","remove","unobserveResizeAllElements","removeOnWindowResizeListener","parentNode","removeChild","indexOf","splice","unobserveResizing","getOnWindowResizeListener","window","addEventListener","has","removeEventListener","box","observer","observe","unobserve","disconnect","nodeName","getPropertyValue","Information","informations","setInformations","getDataInformations","getJsInformations","information","informationEl","createInformationEl","setInformationPosition","informationsIds","informationsSelector","getInformationDataPrefix","informationsEl","informationsIdsAttrValue","elInformationsIds","globalInformationAttrs","informationAttrs","dataInformationRegExp","isInformationAttr","informationTpl","getInformationTpl","informationStyle","informationWidth","informationHeight","getInformation","isCanShowInformation","SVGElement","tpl","parser","DOMParser","template","replace","sourceDoc","parseFromString","renderedDoc","implementation","createHTMLDocument","pattern","eventPattern","ifEnded","render","node","replacements","parent","handler","keys","Object","values","getValue","key","Function","nodeType","Node","ELEMENT_NODE","hasAttribute","getAttribute","forPieces","firstPiece","secondPiece","param","index","source","isSourceArray","k","r","ownerDocument","tagName","cloneNode","attr","eventMatch","exec","eventName","rValue","slice","replacement","_isUndefined","_isNull","console","error","substr","innerHTML","TEXT_NODE","nodeValue","createTextNode","isHtmlElement","isSvgElement","isNodeList","childNodes","firstElementChild","Symbol","array","iteratee","result","getRawTag","objectToString","symToStringTag","toStringTag","arrayMap","isSymbol","symbolProto","prototype","symbolToString","toString","baseToString","freeGlobal","g","objectProto","hasOwnProperty","nativeObjectToString","isOwn","tag","unmasked","freeSelf","baseGetTag","isObjectLike","idCounter","prefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","globalThis","obj","prop","GuideChimp","tour","_uniqueId","configurable","writable","setDefaults","listeners","setTour","notifications","previousStep","currentStep","nextStep","fromStep","toStep","previousStepIndex","currentStepIndex","nextStepIndex","fromStepIndex","toStepIndex","steps","isDisplayed","number","useIndex","mountOverlayEl","startPreloader","args","emit","stopPreloader","removeOverlayEl","sortSteps","getSteps","getBodyClass","go","isStarted","toggle","useKeyboard","addOnKeydownListener","addOnWindowScrollListener","stepNumber","step","onBeforeChange","onAfterChange","abort","Promise","resolve","then","some","beforeChangeStep","scrollBehavior","scrollPadding","scrollParentsToStepEl","scrollTo","getStepEl","mountStep","setTimeout","onPrevious","onNext","removeListeners","unobserveStep","unmountStep","clear","getDataSteps","getJsSteps","dataPrefix","tourStepsEl","dataTourRegExp","stepAttrs","isTourAttr","attrShortName","title","description","interaction","sort","b","mountFakeStepEl","display","visibility","scrollParentsToEl","parents","htmlEl","getScrollableParentEl","regex","elStyle","elDocument","getClosestScrollableParent","parentStyle","overflowX","overflowY","getScrollableParentsEls","scrollTop","scrollLeft","behavior","getBoundingClientRect","bottom","right","innerWidth","innerHeight","scrollBy","animation","overlay","path","animate","isCurrentElFake","isEl","to","getOverlayDocumentPath","getOverlayStepPath","lock","isFromElFake","onend","beginElement","getRelativePositionClass","getHighlightClass","uid","interactionEl","padding","getOffset","cssText","controlEl","pageXOffset","defaultView","docElWidth","documentElement","elRight","tooltipEl","pos","alignment","tooltipStyle","transform","elBottom","tooltipHeight","tooltipWith","cloneTooltip","appendChild","minTooltipWidth","boundaryRect","DOMRect","Window","x","y","scrollWidth","scrollHeight","boundaryTop","boundaryBottom","boundaryLeft","boundaryRight","positions","tooltipMarginTop","marginTop","tooltipMarginLeft","marginLeft","tooltipMarginRight","marginRight","tooltipMarginBottom","marginBottom","alignments","clientLeft","clientWidth","getLoadingClass","preloaderCache","preloader","mountPreloaderEl","removePreloaderEl","previous","next","stop","mountInteractionEl","mountControlEl","setInteractionPosition","setControlPosition","setTooltipPosition","observeStep","highlightStepEl","resetHighlightStepEl","removeInteractionEl","removeControlEl","removeFakeStepEl","tmpl","els","removeEl","createEl","getFakeStepTmpl","getDefaultTmplData","mountEl","createFakeStepEl","getPreloaderTmpl","createPreloaderEl","getOverlayElPath","defaults","exitOverlay","getOverlayTmpl","createOverlayEl","getInteractionTmpl","createInteractionEl","getControlTmpl","createTooltipEl","createControlEl","progressbar","createProgressbarEl","createTitleEl","createDescriptionEl","close","createCloseEl","customButtons","createCustomButtonsEl","createPreviousEl","pagination","createPaginationEl","createNextEl","copyright","createCopyrightEl","notification","createNotificationEl","getTooltipTmpl","getCloseTmpl","showProgressbar","progressMax","progressMin","progress","getProgressbarTmpl","getTitleTmpl","getDescriptionTmpl","buttons","button","buttonEl","className","createElement","getCustomButtonsTmpl","paginationTheme","paginationCirclesMaxItems","showPagination","getPaginationTmpl","showNavigation","getPreviousTmpl","getNextTmpl","getCopyrightTmpl","getNotificationTmpl","messages","message","notificationEl","event","listener","priorities","getEventListenersPriorities","priority","reverse","promise","all","f","apply","getOnKeydownListener","keyCode","getDefaultKeyboardCodes","previousCodes","nextCodes","stopCodes","getOnWindowScrollListener","removeOnKeydownListener","removeOnWindowScrollListener","observeMutation","resizingObserver","mutationObserver","MutationObserver","mutations","isElExists","record","type","removedNodes","contains","addedNodes","childList","subtree","unobserveMutation","exitEscape","view","pageYOffset","Class","dataGlobalTourAttrName","dataInformationTourAttrName","guide","tourOptions","start","dataBeaconTourAttrName","applicationId","url","refetch","fetch","appId","res","json","respons","contextToursMapData","rows","onboardTour","row","content","guideChimp","tourBeacons","showAll","plugins","Set","pluginClass","plugin"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://AHDjs/webpack/universalModuleDefinition","webpack://AHDjs/./node_modules/lodash/_Symbol.js","webpack://AHDjs/./node_modules/lodash/_arrayMap.js","webpack://AHDjs/./node_modules/lodash/_baseGetTag.js","webpack://AHDjs/./node_modules/lodash/_baseToString.js","webpack://AHDjs/./node_modules/lodash/_freeGlobal.js","webpack://AHDjs/./node_modules/lodash/_getRawTag.js","webpack://AHDjs/./node_modules/lodash/_objectToString.js","webpack://AHDjs/./node_modules/lodash/_root.js","webpack://AHDjs/./node_modules/lodash/isArray.js","webpack://AHDjs/./node_modules/lodash/isNull.js","webpack://AHDjs/./node_modules/lodash/isObjectLike.js","webpack://AHDjs/./node_modules/lodash/isSymbol.js","webpack://AHDjs/./node_modules/lodash/isUndefined.js","webpack://AHDjs/./node_modules/lodash/toString.js","webpack://AHDjs/./node_modules/lodash/uniqueId.js","webpack://AHDjs/webpack/bootstrap","webpack://AHDjs/webpack/runtime/compat get default export","webpack://AHDjs/webpack/runtime/define property getters","webpack://AHDjs/webpack/runtime/global","webpack://AHDjs/webpack/runtime/hasOwnProperty shorthand","webpack://AHDjs/webpack/runtime/make namespace object","webpack://AHDjs/./src/lib/utils/isHtmlElement.js","webpack://AHDjs/./src/lib/utils/isSvgElement.js","webpack://AHDjs/./src/lib/utils/isNodeList.js","webpack://AHDjs/./src/lib/utils/domTemplate.js","webpack://AHDjs/./src/lib/GuideChimp.js","webpack://AHDjs/./src/lib/templates/fake-step.html","webpack://AHDjs/./src/lib/templates/preloader.html","webpack://AHDjs/./src/lib/templates/overlay.html","webpack://AHDjs/./src/lib/templates/interaction.html","webpack://AHDjs/./src/lib/templates/control.html","webpack://AHDjs/./src/lib/templates/tooltip.html","webpack://AHDjs/./src/lib/templates/close.html","webpack://AHDjs/./src/lib/templates/progressbar.html","webpack://AHDjs/./src/lib/templates/title.html","webpack://AHDjs/./src/lib/templates/description.html","webpack://AHDjs/./src/lib/templates/custom-buttons.html","webpack://AHDjs/./src/lib/templates/pagination.html","webpack://AHDjs/./src/lib/templates/previous.html","webpack://AHDjs/./src/lib/templates/next.html","webpack://AHDjs/./src/lib/templates/copyright.html","webpack://AHDjs/./src/lib/templates/notification.html","webpack://AHDjs/./src/lib/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AHDjs\"] = factory();\n\telse\n\t\troot[\"AHDjs\"] = factory();\n})(self, () => {\nreturn ","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nmodule.exports = isNull;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default (el) => (el instanceof HTMLElement || /^\\[object HTML(.+)Element\\]$/.test(`${el}`));\r\n","export default (el) => (el instanceof SVGElement || /^\\[object SVG(.+)Element\\]$/.test(`${el}`));\r\n","export default (el) => /^[object NodeList]$/.test(`${el}`);\n","/**\r\n * Lodash\r\n * @see https://lodash.com/docs\r\n */\r\nimport _isUndefined from 'lodash/isUndefined';\r\nimport _isNull from 'lodash/isNull';\r\n\r\n// utils\r\nimport isHtmlElement from './isHtmlElement';\r\nimport isSvgElement from './isSvgElement';\r\nimport isNodeList from './isNodeList';\r\n\r\nexport default (tpl, data = {}) => {\r\n const parser = new DOMParser();\r\n\r\n let template = tpl.replace(/<template/g, '<gc-template');\r\n template = template.replace(/<\\/template/g, '</gc-template');\r\n\r\n const sourceDoc = parser.parseFromString(template, 'text/html');\r\n const renderedDoc = document.implementation.createHTMLDocument();\r\n\r\n const pattern = /{{([^}}]+)?}}/gm;\r\n const eventPattern = /^@(.+)$/;\r\n\r\n const ifEnded = new Map();\r\n\r\n const render = (node, replacements = {}, parent = renderedDoc.body) => {\r\n let handler = parent;\r\n\r\n const keys = Object.keys(replacements);\r\n const values = Object.values(replacements);\r\n\r\n // eslint-disable-next-line no-new-func\r\n const getValue = (key) => (new Function(...keys, `return ${key};`))(...values);\r\n\r\n if (node) {\r\n if (node.nodeType === Node.ELEMENT_NODE) {\r\n if (node.hasAttribute('if')) {\r\n ifEnded.set(node.parentNode, false);\r\n\r\n if (!getValue(node.getAttribute('if'))) {\r\n return;\r\n }\r\n\r\n ifEnded.set(node.parentNode, true);\r\n }\r\n\r\n if (node.hasAttribute('elseif')) {\r\n if (ifEnded.get(node.parentNode) || !getValue(node.getAttribute('elseif'))) {\r\n return;\r\n }\r\n\r\n ifEnded.set(node.parentNode, true);\r\n }\r\n\r\n if (node.hasAttribute('else')) {\r\n if (ifEnded.get(node.parentNode)) {\r\n return;\r\n }\r\n\r\n ifEnded.set(node.parentNode, true);\r\n }\r\n\r\n if (node.hasAttribute('for')) {\r\n const forPieces = node.getAttribute('for').split(' in ');\r\n const [firstPiece, secondPiece] = forPieces;\r\n\r\n node.removeAttribute('for');\r\n\r\n let [param, index] = firstPiece.replace(/\\(|\\)/g, '').split(',');\r\n param = param.trim();\r\n index = (index) ? index.trim() : '';\r\n\r\n const source = getValue(secondPiece.trim());\r\n\r\n const isSourceArray = Array.isArray(source);\r\n\r\n Object.keys(source).forEach((k) => {\r\n const r = { ...replacements, [param]: source[k] };\r\n\r\n if (index) {\r\n r[index] = (isSourceArray) ? parseInt(k, 10) : k;\r\n }\r\n\r\n render(node, r, handler);\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (node !== node.ownerDocument.body && node.tagName !== 'GC-TEMPLATE') {\r\n handler = node.cloneNode();\r\n parent.append(handler);\r\n }\r\n\r\n [...node.attributes].forEach((attr) => {\r\n const { name, value } = attr;\r\n\r\n const eventMatch = eventPattern.exec(name);\r\n\r\n if (eventMatch) {\r\n const [, eventName] = eventMatch;\r\n\r\n // eslint-disable-next-line no-new-func\r\n handler.addEventListener(eventName, (e) => new Function(\r\n ...[...keys, '$event'],\r\n `return ${value}${(/\\(.+\\)/.test(value)) ? '' : '()'};`,\r\n )(...[...values, e]));\r\n\r\n handler.removeAttribute(name);\r\n\r\n return;\r\n }\r\n\r\n let match = pattern.exec(value);\r\n let index = 0;\r\n let rValue = '';\r\n\r\n while (match) {\r\n rValue += value.slice(index, match.index);\r\n\r\n let [replacement, key] = match;\r\n key = key.trim();\r\n\r\n try {\r\n replacement = getValue(key);\r\n\r\n if (_isUndefined(replacement) || _isNull(replacement)) {\r\n replacement = '';\r\n }\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.error(e);\r\n }\r\n\r\n rValue += replacement;\r\n\r\n index = match.index + match[0].length;\r\n match = pattern.exec(value);\r\n }\r\n\r\n rValue += value.substr(index, value.length - index);\r\n\r\n if (name === 'html') {\r\n handler.innerHTML = rValue;\r\n handler.removeAttribute(name);\r\n } else if (['if', 'else', 'elseif'].includes(name)) {\r\n handler.removeAttribute(name);\r\n } else {\r\n handler.setAttribute(name, rValue);\r\n }\r\n });\r\n } else if (node.nodeType === Node.TEXT_NODE) {\r\n let match = pattern.exec(node.nodeValue);\r\n\r\n if (match) {\r\n let index = 0;\r\n while (match) {\r\n handler.append(document.createTextNode(node.nodeValue.slice(index, match.index)));\r\n\r\n let [replacement, key] = match;\r\n key = key.trim();\r\n\r\n try {\r\n replacement = getValue(key);\r\n\r\n if (_isUndefined(replacement) || _isNull(replacement)) {\r\n replacement = '';\r\n }\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.error(e);\r\n }\r\n\r\n if (isHtmlElement(replacement) || isSvgElement(replacement)) {\r\n handler.append(replacement);\r\n } else if (isNodeList(replacement)) {\r\n replacement.forEach((v) => {\r\n handler.append(v);\r\n });\r\n } else {\r\n handler.append(document.createTextNode(replacement));\r\n }\r\n\r\n index = match.index + match[0].length;\r\n match = pattern.exec(node.nodeValue);\r\n }\r\n\r\n handler.append(document.createTextNode(node.nodeValue.slice(index, node.nodeValue.length)));\r\n } else {\r\n handler.append(node.cloneNode());\r\n }\r\n }\r\n\r\n const { childNodes = [] } = node;\r\n\r\n if (childNodes.length) {\r\n childNodes.forEach((v) => {\r\n render(v, replacements, handler);\r\n });\r\n }\r\n }\r\n };\r\n\r\n render(sourceDoc.body, data, renderedDoc.body);\r\n\r\n return renderedDoc.body.firstElementChild;\r\n};\r\n","/* eslint-disable class-methods-use-this */\n/**\n * Copyright (C) 2020 Labs64 GmbH\n *\n * This source code is licensed under the European Union Public License, version 1.2\n * located in the LICENSE file\n */\n\n/**\n * Lodash functions\n * @see https://lodash.com/docs\n */\nimport _uniqueId from 'lodash/uniqueId';\n\n// utils\nimport domTemplate from './utils/domTemplate';\nimport isHtmlElement from './utils/isHtmlElement';\n\n// templates\nimport overlayTmpl from './templates/overlay.html';\nimport preloaderTmpl from './templates/preloader.html';\nimport interactionTmpl from './templates/interaction.html';\nimport controlTmpl from './templates/control.html';\nimport tooltipTmpl from './templates/tooltip.html';\nimport progressbarTmpl from './templates/progressbar.html';\nimport titleTmpl from './templates/title.html';\nimport descriptionTmpl from './templates/description.html';\nimport customButtonsTmpl from './templates/custom-buttons.html';\nimport previousTmpl from './templates/previous.html';\nimport paginationTmpl from './templates/pagination.html';\nimport nextTmpl from './templates/next.html';\nimport closeTmpl from './templates/close.html';\nimport copyrightTmpl from './templates/copyright.html';\nimport notificationTmpl from './templates/notification.html';\nimport fakeStepTmpl from './templates/fake-step.html';\n\nexport default class GuideChimp {\n /**\n * GuideChimp constructor\n * @param tour\n * @param options\n */\n constructor(tour, options = {}) {\n Object.defineProperty(this, 'uid', {\n value: _uniqueId(),\n enumerable: false,\n configurable: false,\n writable: false,\n });\n\n this.setDefaults();\n\n this.cache = new Map();\n\n this.listeners = {};\n\n this.observers = {};\n\n this.options = {};\n this.setOptions(options);\n\n this.tour = null;\n this.setTour(tour);\n\n this.notifications = [];\n\n this.elements = new Map();\n\n this.init();\n }\n\n /**\n * Called after construction, this hook allows you to add some extra setup\n * logic without having to override the constructor.\n */\n init() {\n\n }\n\n /**\n * Default options\n * @return {Object}\n */\n static getDefaultOptions() {\n return {\n position: 'bottom',\n useKeyboard: true,\n exitEscape: true,\n exitOverlay: true,\n showPagination: true,\n showNavigation: true,\n showProgressbar: true,\n paginationTheme: 'circles',\n paginationCirclesMaxItems: 10,\n interaction: true,\n padding: 8,\n scrollPadding: 10,\n scrollBehavior: 'auto',\n };\n }\n\n static getDefaultKeyboardCodes() {\n const escCode = 27;\n const arrowLeftCode = 37;\n const arrowRightCode = 39;\n const enterCode = 13;\n const spaceCode = 32;\n\n return {\n previous: [arrowLeftCode],\n next: [arrowRightCode, enterCode, spaceCode],\n stop: [escCode],\n };\n }\n\n static getEventListenersPriorities() {\n return ['low', 'medium', 'high', 'critical'];\n }\n\n static getBodyClass() {\n return 'gc';\n }\n\n static getLoadingClass() {\n return 'gc-loading';\n }\n\n static getHighlightClass() {\n return 'gc-highlight';\n }\n\n static getFixedClass() {\n return 'gc-fixed';\n }\n\n static getRelativePositionClass() {\n return 'gc-relative';\n }\n\n /**\n * Get element offset\n * @param el\n * @return {{top: number, left: number, width: number, height: number}}\n */\n static getOffset(el) {\n const { body, documentElement, defaultView: view } = el.ownerDocument;\n const scrollTop = view.pageYOffset || documentElement.scrollTop || body.scrollTop;\n const scrollLeft = view.pageXOffset || documentElement.scrollLeft || body.scrollLeft;\n const { top, right, bottom, left, width, height, x, y } = el.getBoundingClientRect();\n return { right, bottom, width, height, x, y, top: top + scrollTop, left: left + scrollLeft };\n }\n\n /**\n * Check if el or his parent has fixed position\n * @param el\n * @return {boolean}\n */\n static isFixed(el) {\n const { parentNode } = el;\n\n if (!parentNode || parentNode.nodeName === 'HTML') {\n return false;\n }\n\n const elStyle = getComputedStyle(el);\n\n if (elStyle.getPropertyValue('position') === 'fixed') {\n return true;\n }\n\n return this.isFixed(parentNode);\n }\n\n setDefaults() {\n this.previousStep = null;\n this.currentStep = null;\n this.nextStep = null;\n this.fromStep = null;\n this.toStep = null;\n\n this.previousStepIndex = -1;\n this.currentStepIndex = -1;\n this.nextStepIndex = -1;\n this.fromStepIndex = -1;\n this.toStepIndex = -1;\n\n this.steps = [];\n\n this.isDisplayed = false;\n\n return this;\n }\n\n /**\n * Set tour name or steps\n * @param tour\n * @return {this}\n */\n setTour(tour) {\n this.tour = tour;\n return this;\n }\n\n /**\n * Get tour name or steps\n */\n getTour() {\n return this.tour;\n }\n\n /**\n * Set tour options\n * @param options\n * @return {this}\n */\n setOptions(options) {\n this.options = { ...this.constructor.getDefaultOptions(), ...options };\n return this;\n }\n\n /**\n * Get tour options\n */\n getOptions() {\n return this.options;\n }\n\n /**\n * Start tour\n * @param number step number or it index\n * @param useIndex whether to use step number or index\n * @return {Promise<boolean>}\n */\n async start(number = 0, useIndex = true, ...args) {\n this.isDisplayed = true;\n\n this.mountOverlayEl();\n\n this.startPreloader();\n\n // emit start event\n await this.emit('onStart', ...args);\n\n this.stopPreloader();\n\n if (!this.tour || !this.tour.length) {\n this.removeOverlayEl();\n this.isDisplayed = false;\n return false;\n }\n\n this.steps = this.sortSteps(this.getSteps(this.tour));\n\n if (!this.steps.length) {\n this.removeOverlayEl();\n this.isDisplayed = false;\n return false;\n }\n\n // add a class that increase the specificity of the classes\n document.body.classList.add(this.constructor.getBodyClass());\n\n const isStarted = await this.go(number, useIndex, ...args);\n\n this.isDisplayed = isStarted;\n\n document.body.classList.toggle(this.constructor.getBodyClass(), isStarted);\n\n if (isStarted) {\n // turn on keyboard navigation\n if (this.options.useKeyboard) {\n this.addOnKeydownListener();\n }\n\n // on window resize\n this.addOnWindowResizeListener();\n\n // on window scroll\n this.addOnWindowScrollListener();\n }\n\n return isStarted;\n }\n\n /**\n * Go to step\n * @param number step number or it index\n * @param useIndex whether to use step number or index\n * @param args\n * @return {Promise<boolean>}\n */\n async go(number, useIndex = true, ...args) {\n if (!this.isDisplayed || !this.steps.length) {\n return false;\n }\n\n const stepNumber = (useIndex) ? parseInt(number, 10) : number;\n\n if (this.currentStep) {\n // skip if this step is already displayed\n const isSameStep = (useIndex)\n ? (this.currentStepIndex === stepNumber)\n : (this.currentStep.step === stepNumber);\n\n if (isSameStep) {\n return false;\n }\n }\n\n const fromStep = this.currentStep;\n const fromStepIndex = this.currentStepIndex;\n\n const currentStep = (useIndex)\n ? this.steps[stepNumber]\n : this.steps.filter(({ step }) => step === stepNumber)[0];\n\n if (!currentStep) {\n return false;\n }\n\n const currentStepIndex = this.steps.indexOf(currentStep);\n\n const toStep = currentStep;\n const toStepIndex = currentStepIndex;\n\n const { onBeforeChange, onAfterChange } = toStep;\n\n this.startPreloader();\n\n let abort = false;\n\n if (onBeforeChange) {\n if (await Promise.resolve().then(() => onBeforeChange.call(this, toStep, fromStep, ...args)) === false) {\n abort = true;\n }\n }\n\n if ((await this.emit('onBeforeChange', toStep, fromStep, ...args)).some((r) => r === false)) {\n abort = true;\n }\n\n this.stopPreloader();\n\n if (abort) {\n return false;\n }\n\n this.beforeChangeStep({ toStep, toStepIndex, currentStep, currentStepIndex, fromStep, fromStepIndex });\n\n this.toStep = toStep;\n this.toStepIndex = toStepIndex;\n\n this.currentStep = currentStep;\n this.currentStepIndex = currentStepIndex;\n\n this.fromStep = fromStep;\n this.fromStepIndex = fromStepIndex;\n\n this.previousStep = this.steps[this.currentStepIndex - 1] || null;\n this.previousStepIndex = (this.previousStep) ? this.currentStepIndex - 1 : -1;\n\n this.nextStep = this.steps[this.currentStepIndex + 1] || null;\n this.nextStepIndex = (this.nextStep) ? this.currentStepIndex + 1 : -1;\n\n const { scrollBehavior } = this.options;\n const { scrollPadding = this.options.scrollPadding } = this.currentStep;\n\n // scroll to element\n this.scrollParentsToStepEl();\n this.scrollTo(this.getStepEl(this.currentStep, true), scrollBehavior, scrollPadding);\n\n this.mountStep();\n\n setTimeout(() => {\n if (this.getEl('tooltip')) {\n this.scrollTo(this.getEl('tooltip'), scrollBehavior, scrollPadding);\n }\n }, 300);\n\n if (onAfterChange) {\n onAfterChange.call(this, this.toStep, this.fromStep, ...args);\n }\n\n this.emit('onAfterChange', this.toStep, this.fromStep, ...args);\n\n return true;\n }\n\n async previous(...args) {\n if (!this.isDisplayed || !this.currentStep || !this.previousStep) {\n return false;\n }\n\n const { onPrevious } = this.currentStep;\n\n this.startPreloader();\n\n if (onPrevious) {\n if (await Promise.resolve()\n .then(() => onPrevious.call(this, this.previousStep, this.currentStep, ...args)) === false) {\n this.stopPreloader();\n return false;\n }\n }\n\n if ((await this.emit('onPrevious', this.previousStep, this.currentStep, ...args)).some((r) => r === false)) {\n this.stopPreloader();\n return false;\n }\n\n this.stopPreloader();\n\n return this.go(this.previousStepIndex, true, ...args);\n }\n\n async next(...args) {\n if (!this.isDisplayed || !this.currentStep || !this.nextStep) {\n return false;\n }\n\n const { onNext } = this.currentStep;\n\n this.startPreloader();\n\n if (onNext) {\n if (await Promise.resolve()\n .then(() => onNext.call(this, this.nextStep, this.currentStep, ...args)) === false) {\n this.stopPreloader();\n return false;\n }\n }\n\n if ((await this.emit('onNext', this.nextStep, this.currentStep, ...args)).some((r) => r === false)) {\n this.stopPreloader();\n return false;\n }\n\n this.stopPreloader();\n\n return this.go(this.nextStepIndex, true, ...args);\n }\n\n async stop(...args) {\n if (!this.isDisplayed) {\n return this;\n }\n\n if (this.currentStepIndex === this.steps.length - 1) {\n this.startPreloader();\n await this.emit('onComplete', ...args);\n this.stopPreloader();\n }\n\n this.startPreloader();\n\n // emit stop event\n await this.emit('onStop', ...args);\n\n this.stopPreloader();\n\n // remove the class that increase the specificity of the classes\n document.body.classList.remove(this.constructor.getBodyClass());\n\n // remove events listeners\n this.removeListeners();\n\n // disconnect observers\n this.unobserveStep();\n\n // remove all layers and keys\n this.unmountStep();\n\n // remove overlay\n this.removeOverlayEl();\n\n this.cache.clear();\n this.elements.clear();\n\n // set step variables to defaults\n this.setDefaults();\n\n return this;\n }\n\n getSteps(tour) {\n if (!tour || !tour.length) {\n return [];\n }\n\n return (typeof tour === 'string')\n ? this.getDataSteps(tour)\n : this.getJsSteps(tour);\n }\n\n getDataSteps(tour) {\n const dataPrefix = 'data-guidechimp';\n let tourStepsEl = Array.from(document.querySelectorAll(`[${dataPrefix}-tour*='${tour}']`));\n\n // filter steps by tour name\n tourStepsEl = tourStepsEl.filter((v) => {\n const tours = v.getAttribute(`${dataPrefix}-tour`).split(',');\n return tours.includes(this.tour);\n });\n\n const dataTourRegExp = new RegExp(`^${dataPrefix}-${tour}-[^-]+$`);\n const dataGlobalRegExp = new RegExp(`^${dataPrefix}-[^-]+$`);\n\n return tourStepsEl.map((el, i) => {\n const stepAttrs = {};\n\n for (let j = 0; j < el.attributes.length; j++) {\n const { name: attrName, value: attrValue } = el.attributes[j];\n\n const isTourAttr = dataTourRegExp.test(attrName);\n const isGlobalAttr = (isTourAttr) ? false : dataGlobalRegExp.test(attrName);\n\n if (isTourAttr || isGlobalAttr) {\n const attrShortName = (isTourAttr)\n ? attrName.replace(`${dataPrefix}-${tour}-`, '')\n : attrName.replace(`${dataPrefix}-`, '');\n\n if (attrShortName !== 'tour') {\n if (isTourAttr || (isGlobalAttr && !stepAttrs[attrShortName])) {\n stepAttrs[attrShortName] = attrValue;\n }\n }\n }\n }\n\n return {\n step: i,\n title: '',\n description: '',\n position: this.options.position,\n interaction: this.options.interaction,\n ...stepAttrs,\n element: el,\n };\n });\n }\n\n getJsSteps(tour) {\n return tour.map((v, i) => ({ ...v, step: v.step || i }));\n }\n\n sortSteps(steps) {\n const copy = [...steps];\n\n return copy.sort((a, b) => {\n if (a.step < b.step) {\n return -1;\n }\n if (a.step > b.step) {\n return 1;\n }\n return 0;\n });\n }\n\n getStepEl(step) {\n const { element } = step || {};\n\n if (!element) {\n return this.mountFakeStepEl();\n }\n\n const getEl = (selector, def = null) => {\n const el = (typeof selector === 'string')\n ? document.querySelector(selector)\n : selector;\n return el || def;\n };\n\n let el = getEl(element);\n\n if (!el || el.style.display === 'none' || el.style.visibility === 'hidden') {\n el = this.getEl('fakeStep') ? this.getEl('fakeStep') : this.mountFakeStepEl();\n }\n\n return el;\n }\n\n scrollParentsToStepEl() {\n const { scrollPadding = this.options.scrollPadding } = this.currentStep;\n return this.scrollParentsToEl(this.getStepEl(this.currentStep), scrollPadding);\n }\n\n getScrollableParentsEls(el) {\n const parents = [];\n let htmlEl = el;\n\n while (htmlEl && htmlEl !== htmlEl.ownerDocument.body) {\n htmlEl = this.getScrollableParentEl(htmlEl);\n parents.push(htmlEl);\n }\n\n return parents;\n }\n\n getScrollableParentEl(el) {\n const regex = /(auto|scroll)/;\n const elStyle = getComputedStyle(el);\n const elDocument = el.ownerDocument;\n\n const getClosestScrollableParent = (parent) => {\n if (!parent || parent === elDocument.body) {\n return elDocument.body;\n }\n\n const parentStyle = getComputedStyle(parent);\n\n if (elStyle.getPropertyValue('position') === 'fixed'\n && parentStyle.getPropertyValue('position') === 'static') {\n return getClosestScrollableParent(parent.parentElement);\n }\n\n const overflowX = parentStyle.getPropertyValue('overflow-x');\n const overflowY = parentStyle.getPropertyValue('overflow-y');\n\n if (regex.test(overflowX) || regex.test(overflowY)) {\n return parent;\n }\n\n return getClosestScrollableParent(parent.parentElement);\n };\n\n return (elStyle.getPropertyValue('position') === 'fixed')\n ? elDocument.body\n : getClosestScrollableParent(el.parentElement);\n }\n\n scrollParentsToEl(el, scrollPadding = 0) {\n // get all scrollable parents\n const parents = this.getScrollableParentsEls(el);\n\n parents.forEach((parent) => {\n if (parent !== document.body) {\n // eslint-disable-next-line no-param-reassign\n parent.scrollTop = el.offsetTop - parent.offsetTop - scrollPadding;\n // eslint-disable-next-line no-param-reassign\n parent.scrollLeft = el.offsetLeft - parent.offsetLeft - scrollPadding;\n }\n });\n\n return this;\n }\n\n scrollTo(el, behavior = 'auto', scrollPadding = 0) {\n const { top, bottom, left, right } = el.getBoundingClientRect();\n const { innerWidth, innerHeight } = window;\n\n if (!(left >= 0 && right <= innerWidth)) {\n window.scrollBy({ behavior, left: left - scrollPadding });\n }\n\n if (!(top >= 0 && bottom <= innerHeight)) {\n window.scrollBy({ behavior, top: top - scrollPadding });\n }\n\n return this;\n }\n\n highlightStepEl(animation = false) {\n const el = this.getStepEl(this.currentStep);\n\n const overlay = this.getEl('overlay');\n\n if (overlay) {\n const path = overlay.querySelector('path');\n const animate = path.querySelector('animate');\n\n const isCurrentElFake = this.isEl(el, 'fakeStep');\n\n const to = (isCurrentElFake)\n ? this.getOverlayDocumentPath()\n : this.getOverlayStepPath(this.currentStep);\n\n path.setAttribute('d', to);\n\n if (animate) {\n const lock = animate.getAttribute('lock');\n\n if (!lock) {\n animate.setAttribute('from', to);\n animate.setAttribute('to', to);\n }\n\n if (animation) {\n const isFromElFake = this.isEl(this.getStepEl(this.fromStep), 'fakeStep');\n\n const from = (this.fromStep && !isFromElFake && !isCurrentElFake)\n ? this.getOverlayStepPath(this.fromStep)\n : null;\n\n if (from) {\n animate.setAttribute('from', from);\n animate.setAttribute('to', to);\n }\n\n animate.setAttribute('lock', 'true');\n }\n\n animate.onend = () => {\n animate.removeAttribute('lock');\n };\n\n animate.beginElement();\n }\n }\n\n const elStyle = getComputedStyle(el);\n\n if (!['absolute', 'relative', 'fixed'].includes(elStyle.getPropertyValue('position'))) {\n el.classList.add(this.constructor.getRelativePositionClass());\n }\n\n el.classList.add(this.constructor.getHighlightClass());\n\n el.setAttribute(`data-guidechimp-${this.uid}`, 'highlight');\n this.elements.set('highlight', el);\n\n return this;\n }\n\n resetHighlightStepEl() {\n const overlay = this.getEl('overlay');\n\n if (overlay) {\n const path = overlay.querySelector('path');\n const animate = overlay.querySelector('animate');\n\n path.setAttribute('d', this.getOverlayDocumentPath());\n\n if (animate) {\n animate.removeAttribute('from');\n animate.removeAttribute('to');\n }\n }\n\n const el = this.getStepEl(this.currentStep);\n\n el.classList.remove(this.constructor.getRelativePositionClass());\n el.classList.remove(this.constructor.getHighlightClass());\n\n el.removeAttribute(`data-guidechimp-${this.uid}`);\n this.elements.delete('highlight');\n\n return this;\n }\n\n setInteractionPosition(interactionEl) {\n const el = this.getStepEl(this.currentStep);\n\n if (!interactionEl || !el) {\n return this;\n }\n\n let { padding } = this.options;\n\n const elStyle = getComputedStyle(el);\n\n if (elStyle.getPropertyValue('position') === 'floating') {\n padding = 0;\n }\n\n const { width, height, top, left } = this.constructor.getOffset(el);\n\n interactionEl.classList.toggle(this.constructor.getFixedClass(), this.constructor.isFixed(el));\n\n const { style } = interactionEl;\n\n // set new position\n style.cssText = `width: ${width + padding}px;\n height: ${height + padding}px;\n top: ${top - (padding / 2)}px;\n left: ${left - (padding / 2)}px;`;\n\n return this;\n }\n\n setControlPosition(controlEl) {\n const el = this.getStepEl(this.currentStep);\n\n if (!controlEl || !el) {\n return this;\n }\n\n let { padding } = this.options;\n\n const elStyle = getComputedStyle(el);\n\n if (elStyle.getPropertyValue('position') === 'floating') {\n padding = 0;\n }\n\n const { pageXOffset } = el.ownerDocument.defaultView;\n const { width: docElWidth } = el.ownerDocument.documentElement.getBoundingClientRect();\n const { height: elHeight, top: elTop, left: elLeft, right: elRight } = this.constructor.getOffset(el);\n\n const height = elHeight + padding;\n const top = elTop - (padding / 2);\n const left = (pageXOffset < pageXOffset + (elLeft - (padding / 2))) ? pageXOffset : (elLeft - (padding / 2));\n const width = (pageXOffset + docElWidth > pageXOffset + (elRight + (padding / 2)))\n ? docElWidth\n : (elRight + (padding / 2));\n\n controlEl.classList.toggle(this.constructor.getFixedClass(), this.constructor.isFixed(el));\n\n const { style } = controlEl;\n\n // set new position\n style.cssText = `width: ${width}px;\n height: ${height}px;\n top: ${top}px;\n left: ${left}px;`;\n\n return this;\n }\n\n setTooltipPosition(tooltipEl, options = {}) {\n if (!this.currentStep) {\n return this;\n }\n\n const el = this.getStepEl(this.currentStep);\n\n if (!tooltipEl || !el) {\n return this;\n }\n\n let { boundary, position: pos } = options;\n let { padding } = this.options;\n\n boundary = boundary || window;\n\n pos = pos || this.currentStep.position;\n pos = pos || this.options.position;\n\n let [position, alignment] = pos.split('-');\n\n const elStyle = getComputedStyle(el);\n\n if (elStyle.getPropertyValue('position') === 'floating') {\n padding = 0;\n }\n\n const { style: tooltipStyle } = tooltipEl;\n\n // reset tooltip styles\n tooltipStyle.top = null;\n tooltipStyle.right = null;\n tooltipStyle.bottom = null;\n tooltipStyle.left = null;\n tooltipStyle.transform = null;\n\n const {\n top: elTop,\n bottom: elBottom,\n left: elLeft,\n right: elRight,\n width: elWidth,\n height: elHeight,\n } = el.getBoundingClientRect();\n\n const { height: tooltipHeight, width: tooltipWith } = tooltipEl.getBoundingClientRect();\n\n // find out min tooltip width\n const cloneTooltip = tooltipEl.cloneNode(true);\n cloneTooltip.style.visibility = 'hidden';\n cloneTooltip.innerHTML = '';\n\n tooltipEl.parentElement.appendChild(cloneTooltip);\n\n const { width: minTooltipWidth } = cloneTooltip.getBoundingClientRect();\n\n cloneTooltip.parentElement.removeChild(cloneTooltip);\n\n let boundaryRect = new DOMRect(0, 0, window.innerWidth, window.innerHeight);\n\n if (!(boundary instanceof Window)) {\n const { x, y } = boundary.getBoundingClientRect();\n boundaryRect = new DOMRect(x, y, boundary.scrollWidth, boundary.scrollHeight);\n }\n\n const {\n top: boundaryTop,\n bottom: boundaryBottom,\n left: boundaryLeft,\n right: boundaryRight,\n } = boundaryRect;\n\n // if the element is default element, skip position and alignment calculation\n if (this.isEl(el, 'fakeStep')) {\n position = 'floating';\n } else {\n // calculate position\n const positions = ['bottom', 'right', 'left', 'top'];\n\n let {\n marginTop: tooltipMarginTop,\n marginLeft: tooltipMarginLeft,\n marginRight: tooltipMarginRight,\n marginBottom: tooltipMarginBottom,\n } = getComputedStyle(tooltipEl);\n\n tooltipMarginTop = parseInt(tooltipMarginTop, 10);\n tooltipMarginLeft = parseInt(tooltipMarginLeft, 10);\n tooltipMarginRight = parseInt(tooltipMarginRight, 10);\n tooltipMarginBottom = parseInt(tooltipMarginBottom, 10);\n\n // check if the tooltip can be placed on top\n if (tooltipHeight + tooltipMarginTop + tooltipMarginBottom > (elTop - boundaryTop)) {\n positions.splice(positions.indexOf('top'), 1);\n }\n\n // check if the tooltip can be placed on bottom\n if (tooltipHeight + tooltipMarginTop + tooltipMarginBottom > boundaryBottom - elBottom) {\n positions.splice(positions.indexOf('bottom'), 1);\n }\n\n // check if the tooltip can be placed on left\n if (minTooltipWidth + tooltipMarginLeft + tooltipMarginRight > elLeft - boundaryLeft) {\n positions.splice(positions.indexOf('left'), 1);\n }\n\n // check if the tooltip can be placed on right\n if (minTooltipWidth + tooltipMarginLeft + tooltipMarginRight > boundaryRight - elRight) {\n positions.splice(positions.indexOf('right'), 1);\n }\n\n if (positions.length) {\n position = positions.includes(position) ? position : positions[0];\n } else {\n position = 'floating';\n }\n\n if (position === 'top' || position === 'bottom') {\n const alignments = ['left', 'right', 'middle'];\n\n // valid left space must be at least tooltip width\n if (boundaryRight - elLeft < minTooltipWidth) {\n alignments.splice(alignments.indexOf('left'), 1);\n }\n\n // valid right space must be at least tooltip width\n if (elRight - boundaryLeft < minTooltipWidth) {\n alignments.splice(alignments.indexOf('right'), 1);\n }\n\n // valid middle space must be at least half width from both sides\n if (((elLeft + (elWidth / 2)) - boundaryLeft) < (minTooltipWidth / 2)\n || (boundaryRight - (elRight - (elWidth / 2))) < (minTooltipWidth / 2)) {\n alignments.splice(alignments.indexOf('middle'), 1);\n }\n\n if (alignments.length) {\n alignment = alignments.includes(alignment) ? alignment : alignments[0];\n } else {\n alignment = 'middle';\n }\n }\n }\n\n tooltipEl.setAttribute('data-guidechimp-position', position);\n\n const root = document.documentElement;\n\n switch (position) {\n case 'top':\n tooltipStyle.bottom = `${elHeight + padding}px`;\n break;\n case 'right':\n tooltipStyle.left = `${(elRight + (padding / 2)) - root.clientLeft}px`;\n break;\n case 'left':\n tooltipStyle.right = `${root.clientWidth - (elLeft - (padding / 2))}px`;\n break;\n case 'bottom':\n tooltipStyle.top = `${elHeight + padding}px`;\n break;\n default: {\n tooltipStyle.left = '50%';\n tooltipStyle.top = '50%';\n tooltipStyle.transform = 'translate(-50%,-50%)';\n }\n }\n\n tooltipEl.removeAttribute('data-guidechimp-alignment');\n\n if (alignment) {\n tooltipEl.setAttribute('data-guidechimp-alignment', alignment);\n\n switch (alignment) {\n case 'left': {\n tooltipStyle.left = `${elLeft - (padding / 2)}px`;\n break;\n }\n case 'right': {\n tooltipStyle.right = `${root.clientWidth - elRight - (padding / 2)}px`;\n break;\n }\n default: {\n if ((elLeft + (elWidth / 2)) < (tooltipWith / 2)\n || (elLeft + (elWidth / 2) + (tooltipWith / 2)) > root.clientWidth) {\n tooltipStyle.left = `${((root.clientWidth) / 2) - (tooltipWith / 2)}px`;\n } else {\n tooltipStyle.left = `${elLeft + (elWidth / 2) - (tooltipWith / 2)}px`;\n }\n }\n }\n }\n\n return this;\n }\n\n startPreloader() {\n document.body.classList.add(this.constructor.getLoadingClass());\n\n const overlay = this.getEl('overlay');\n\n if (overlay) {\n const path = overlay.querySelector('path');\n const animate = overlay.querySelector('animate');\n\n const preloaderCache = new Map();\n preloaderCache.set('d', path.getAttribute('d'));\n\n path.setAttribute('d', this.getOverlayDocumentPath());\n\n if (animate) {\n preloaderCache.set('from', animate.getAttribute('from'));\n preloaderCache.set('to', animate.getAttribute('to'));\n\n animate.removeAttribute('from');\n animate.removeAttribute('to');\n }\n\n this.cache.set('preloaderCache', preloaderCache);\n }\n\n const preloader = this.mountPreloaderEl();\n preloader.hidden = true;\n\n setTimeout(() => {\n preloader.hidden = false;\n }, 100);\n\n return this;\n }\n\n stopPreloader() {\n document.body.classList.remove(this.constructor.getLoadingClass());\n\n const overlay = this.getEl('overlay');\n\n if (overlay) {\n const path = overlay.querySelector('path');\n const animate = overlay.querySelector('animate');\n\n const preloaderCache = this.cache.get('preloaderCache') || new Map();\n\n if (preloaderCache.has('d')) {\n path.setAttribute('d', preloaderCache.get('d'));\n }\n\n if (animate) {\n if (preloaderCache.has('from')) {\n animate.setAttribute('from', preloaderCache.get('from'));\n }\n\n if (preloaderCache.has('to')) {\n animate.setAttribute('to', preloaderCache.get('to'));\n }\n }\n\n this.cache.delete('preloaderCache');\n }\n\n this.removePreloaderEl();\n return this;\n }\n\n getDefaultTmplData() {\n return {\n previousStep: this.previousStep,\n currentStep: this.currentStep,\n nextStep: this.nextStep,\n fromStep: this.fromStep,\n toStep: this.toStep,\n\n previousStepIndex: this.previousStepIndex,\n currentStepIndex: this.currentStepIndex,\n nextStepIndex: this.nextStepIndex,\n fromStepIndex: this.fromStepIndex,\n toStepIndex: this.toStepIndex,\n\n steps: this.steps,\n\n go: (...args) => this.go(...args),\n previous: (...args) => this.previous(...args),\n next: (...args) => this.next(...args),\n stop: (...args) => this.stop(...args),\n };\n }\n\n mountStep() {\n const interactionEl = this.mountInteractionEl();\n const controlEl = this.mountControlEl();\n\n this.setInteractionPosition(interactionEl);\n this.setControlPosition(controlEl);\n this.setTooltipPosition(this.getEl('tooltip'));\n\n this.observeStep();\n\n this.highlightStepEl(true);\n\n return this;\n }\n\n unmountStep() {\n this.resetHighlightStepEl();\n\n this.removeInteractionEl();\n this.removeControlEl();\n this.removePreloaderEl();\n this.removeFakeStepEl();\n\n return this;\n }\n\n createEl(name, tmpl, data = {}) {\n const el = domTemplate(tmpl, data);\n\n if (el) {\n el.setAttribute(`data-quidechimp-${this.uid}`, name);\n }\n\n return el;\n }\n\n getEl(key, def = null) {\n let el = this.elements.get(key);\n\n if (!el) {\n el = document.querySelector(`[data-quidechimp-${this.uid}=\"${key}\"]`);\n }\n\n return el || def;\n }\n\n mountEl(el, parent) {\n if (el) {\n const els = el.querySelectorAll(`[data-quidechimp-${this.uid}]`);\n\n [el, ...els].forEach((v) => {\n const key = v.getAttribute(`data-quidechimp-${this.uid}`);\n if (key) {\n this.removeEl(key);\n this.elements.set(key, v);\n }\n });\n\n parent.appendChild(el);\n }\n\n return el;\n }\n\n removeEl(key) {\n const el = this.getEl(key);\n\n if (el) {\n el.parentElement.removeChild(el);\n }\n\n this.elements.delete(key);\n\n return this;\n }\n\n isEl(el, key) {\n return (this.getEl(key))\n ? el === this.getEl(key)\n : el.getAttribute(`data-quidechimp-${this.uid}`) === key;\n }\n\n getFakeStepTmpl() {\n return fakeStepTmpl;\n }\n\n createFakeStepEl(data = {}) {\n return this.createEl('fakeStep', this.getFakeStepTmpl(), { ...this.getDefaultTmplData(), ...data });\n }\n\n mountFakeStepEl(data = {}) {\n return this.mountEl(this.createFakeStepEl(data), document.body);\n }\n\n removeFakeStepEl() {\n return this.removeEl('fakeStep');\n }\n\n getPreloaderTmpl() {\n return preloaderTmpl;\n }\n\n createPreloaderEl(data = {}) {\n return this.createEl('preloader', this.getPreloaderTmpl(), data);\n }\n\n mountPreloaderEl(data = {}) {\n return this.mountEl(this.createPreloaderEl(data), document.body);\n }\n\n removePreloaderEl() {\n return this.removeEl('preloader');\n }\n\n getOverlayDocumentPath() {\n const { innerWidth, innerHeight } = window;\n const { body: { scrollWidth, scrollHeight } } = document;\n\n const width = (innerWidth > scrollWidth) ? innerWidth : scrollWidth;\n const height = (innerHeight > scrollHeight) ? innerHeight : scrollHeight;\n\n return `M 0 0 H ${width} V ${height} H 0 V 0 Z`;\n }\n\n getOverlayStepPath(step) {\n return this.getOverlayElPath(this.getStepEl(step));\n }\n\n getOverlayElPath(el) {\n let { padding } = this.options;\n padding = (padding) ? padding / 2 : 0;\n\n const { left, top, width, height } = el.getBoundingClientRect();\n const r = 4;\n\n let path = this.getOverlayDocumentPath();\n\n path += `M ${left - padding + r} ${top - padding}\n a ${r},${r} 0 0 0 -${r},${r}\n V ${height + top + padding - r}\n a ${r},${r} 0 0 0 ${r},${r}\n H ${width + left + padding - r}\n a ${r},${r} 0 0 0 ${r},-${r}\n V ${top - padding + r}\n a ${r},${r} 0 0 0 -${r},-${r}Z`;\n\n return path;\n }\n\n getOverlayTmpl() {\n return overlayTmpl;\n }\n\n createOverlayEl(data = {}) {\n const defaults = {\n stop: async (...args) => {\n if (this.options.exitOverlay) {\n await this.stop(...args);\n }\n },\n path: this.getOverlayDocumentPath(),\n };\n\n return this.createEl('overlay', this.getOverlayTmpl(), { ...defaults, ...data });\n }\n\n mountOverlayEl(data = {}) {\n return this.mountEl(this.createOverlayEl(data), document.body);\n }\n\n removeOverlayEl() {\n return this.removeEl('overlay');\n }\n\n getInteractionTmpl() {\n return interactionTmpl;\n }\n\n createInteractionEl(data = {}) {\n let { interaction } = this.options;\n\n if (typeof this.currentStep.interaction === 'boolean') {\n interaction = this.currentStep.interaction;\n }\n\n const defaults = {\n ...this.getDefaultTmplData(),\n interaction,\n };\n\n return this.createEl('interaction', this.getInteractionTmpl(), { ...defaults, ...data });\n }\n\n mountInteractionEl(data = {}) {\n return this.mountEl(this.createInteractionEl(data), document.body);\n }\n\n removeInteractionEl() {\n return this.removeEl('interaction');\n }\n\n getControlTmpl() {\n return controlTmpl;\n }\n\n createControlEl(data = {}) {\n return this.createEl(\n 'control',\n this.getControlTmpl(),\n { ...this.getDefaultTmplData(), tooltipEl: this.createTooltipEl(data), ...data },\n );\n }\n\n mountControlEl(data = {}) {\n return this.mountEl(this.createControlEl(data), document.body);\n }\n\n removeControlEl() {\n return this.removeEl('control');\n }\n\n getTooltipTmpl() {\n return tooltipTmpl;\n }\n\n createTooltipEl(data = {}) {\n const defaults = {\n ...this.getDefaultTmplData(),\n progressbar: this.createProgressbarEl(data),\n title: this.createTitleEl(data),\n description: this.createDescriptionEl(data),\n close: this.createCloseEl(data),\n customButtons: this.createCustomButtonsEl(data),\n previous: this.createPreviousEl(data),\n pagination: this.createPaginationEl(data),\n next: this.createNextEl(data),\n copyright: this.createCopyrightEl(data),\n notification: this.createNotificationEl(data),\n };\n\n return this.createEl('tooltip', this.getTooltipTmpl(), { ...defaults, ...data });\n }\n\n getCloseTmpl() {\n return closeTmpl;\n }\n\n createCloseEl(data = {}) {\n return this.createEl('close', this.getCloseTmpl(), { ...this.getDefaultTmplData(), ...data });\n }\n\n getProgressbarTmpl() {\n return progressbarTmpl;\n }\n\n createProgressbarEl(data = {}) {\n let { showProgressbar } = this.options;\n\n if (typeof this.currentStep.showProgressbar === 'boolean') {\n showProgressbar = this.currentStep.showProgressbar;\n }\n\n const progressMax = 100;\n const progressMin = 0;\n const progress = ((this.currentStepIndex + 1) / this.steps.length) * 100;\n\n const defaults = {\n ...this.getDefaultTmplData(),\n showProgressbar,\n progressMax,\n progressMin,\n progress,\n };\n\n return this.createEl('progressbar', this.getProgressbarTmpl(), { ...defaults, ...data });\n }\n\n getTitleTmpl() {\n return titleTmpl;\n }\n\n createTitleEl(data = {}) {\n const { title = '' } = this.currentStep;\n return this.createEl('title', this.getTitleTmpl(), { ...this.getDefaultTmplData(), title, ...data });\n }\n\n getDescriptionTmpl() {\n return descriptionTmpl;\n }\n\n createDescriptionEl(data = {}) {\n const { description = '' } = this.currentStep;\n\n return this.createEl(\n 'description',\n this.getDescriptionTmpl(),\n { ...this.getDefaultTmplData(), description, ...data },\n );\n }\n\n getCustomButtonsTmpl() {\n return customButtonsTmpl;\n }\n\n createCustomButtonsEl(data = {}) {\n const buttons = [];\n\n if (this.currentStep.buttons) {\n this.currentStep.buttons.forEach((button) => {\n let buttonEl = button;\n\n if (!isHtmlElement(buttonEl)) {\n const { onClick, tagName = 'button', title = '', class: className } = button;\n\n buttonEl = document.createElement(tagName);\n buttonEl.innerHTML = title;\n\n if (className) {\n buttonEl.className = className;\n }\n\n if (onClick) {\n buttonEl.addEventListener('click', (e) => {\n onClick.call(this, e);\n });\n }\n }\n\n buttons.push(buttonEl);\n });\n }\n\n return this.createEl(\n 'customButtons',\n this.getCustomButtonsTmpl(),\n { ...this.getDefaultTmplData(), buttons, ...data },\n );\n }\n\n getPaginationTmpl() {\n return paginationTmpl;\n }\n\n createPaginationEl(data = {}) {\n const {\n paginationTheme = this.options.paginationTheme,\n paginationCirclesMaxItems = this.options.paginationCirclesMaxItems,\n } = this.currentStep;\n\n let { showPagination } = this.options;\n\n if (typeof this.currentStep.showPagination === 'boolean') {\n showPagination = this.currentStep.showPagination;\n }\n\n return this.createEl(\n 'pagination',\n this.getPaginationTmpl(),\n {\n ...this.getDefaultTmplData(),\n showPagination,\n paginationTheme,\n paginationCirclesMaxItems,\n ...data,\n },\n );\n }\n\n getPreviousTmpl() {\n return previousTmpl;\n }\n\n createPreviousEl(data = {}) {\n let { showNavigation } = this.options;\n\n if (typeof this.currentStep.showNavigation === 'boolean') {\n showNavigation = this.currentStep.showNavigation;\n }\n\n return this.createEl(\n 'previous',\n this.getPreviousTmpl(),\n { ...this.getDefaultTmplData(), showNavigation, ...data },\n );\n }\n\n getNextTmpl() {\n return nextTmpl;\n }\n\n createNextEl(data = {}) {\n let { showNavigation } = this.options;\n\n if (typeof this.currentStep.showNavigation === 'boolean') {\n showNavigation = this.currentStep.showNavigation;\n }\n\n return this.createEl(\n 'next',\n this.getNextTmpl(),\n { ...this.getDefaultTmplData(), showNavigation, ...data },\n );\n }\n\n getCopyrightTmpl() {\n return copyrightTmpl;\n }\n\n createCopyrightEl(data = {}) {\n return this.createEl('copyright', this.getCopyrightTmpl(), { ...this.getDefaultTmplData(), ...data });\n }\n\n getNotificationTmpl() {\n return notificationTmpl;\n }\n\n createNotificationEl(data = {}) {\n return this.createEl(\n 'notification',\n this.getNotificationTmpl(),\n { ...this.getDefaultTmplData(), messages: this.notifications, ...data },\n );\n }\n\n notify(message) {\n this.notifications.push(message);\n\n const notificationEl = this.getEl('notification');\n\n if (notificationEl) {\n this.mountEl(this.createNotificationEl(), notificationEl.parentElement);\n }\n\n return this;\n }\n\n /**\n * Register an event listener for a tour event.\n *\n * Event names can be comma-separated to register multiple events.\n *\n * @param {string} event The name of the event to listen for.\n * @param {function} listener The event listener, accepts context.\n * @param {object} options Listener options\n * @return {this}\n */\n on(event, listener, options = {}) {\n // priorities from low to high\n const priorities = this.constructor.getEventListenersPriorities();\n\n let [priority] = priorities;\n\n if (options.priority && priorities.includes(options.priority)) {\n priority = options.priority;\n }\n\n const e = event.trim();\n\n this.listeners[e] = this.listeners[e] || {};\n this.listeners[e][priority] = this.listeners[e][priority] || [];\n this.listeners[e][priority].push(listener);\n\n return this;\n }\n\n /**\n * Emits an event by name to all registered listeners on that event.\n * Listeners will be called in the order that they were added. If a listener\n * returns `false`, no other listeners will be called.\n *\n * @param {string} event The name of the event to emit.\n * @param args The context args of the event, passed to listeners.\n * @returns {Promise}\n */\n emit(event, ...args) {\n // from high to low\n const priorities = [...this.constructor.getEventListenersPriorities()].reverse();\n\n const e = event.trim();\n\n let result = [];\n let promise = Promise.resolve(result);\n\n if (this.listeners[e]) {\n priorities.forEach((priority) => {\n const { [priority]: listeners } = this.listeners[e];\n\n if (listeners) {\n promise = promise\n .then(() => Promise.all(\n listeners.map((f) => Promise.resolve().then(() => f.apply(this, args))),\n ))\n .then((r) => {\n result = [...result, ...r];\n return result;\n });\n }\n });\n }\n\n return promise;\n }\n\n /**\n * Add keydown event listener\n * @return {this}\n */\n addOnKeydownListener() {\n // turn on keyboard navigation\n this.cache.set('onKeydownListener', this.getOnKeydownListener());\n window.addEventListener('keydown', this.cache.get('onKeydownListener'), true);\n\n return this;\n }\n\n /**\n * Return on key down event listener function\n * @returns {function}\n */\n getOnKeydownListener() {\n return (event) => {\n const { keyCode } = event;\n\n const { previous: previousCodes, next: nextCodes, stop: stopCodes } = {\n ...this.constructor.getDefaultKeyboardCodes(),\n ...this.options.useKeyboard,\n };\n\n // stop tour\n if (stopCodes && stopCodes.includes(keyCode)) {\n this.stop({ event });\n return;\n }\n\n // go to the previous step\n if (previousCodes && previousCodes.includes(keyCode)) {\n this.previous({ event });\n return;\n }\n\n // go to the next step\n if (nextCodes && nextCodes.includes(keyCode)) {\n this.next({ event });\n }\n };\n }\n\n /**\n * Remove keydown event listener\n * @return {this}\n */\n removeOnKeydownListener() {\n if (this.cache.has('onKeydownListener')) {\n window.removeEventListener('keydown', this.cache.get('onKeydownListener'), true);\n this.cache.delete('onKeydownListener');\n }\n\n return this;\n }\n\n /**\n * Add window resize event listener\n * @return {this}\n */\n addOnWindowResizeListener() {\n // turn on keyboard navigation\n this.cache.set('onWindowResizeListener', this.getOnWindowResizeListener());\n window.addEventListener('resize', this.cache.get('onWindowResizeListener'), true);\n\n return this;\n }\n\n /**\n * Return on window resize event listener function\n * @returns {function}\n */\n getOnWindowResizeListener() {\n return () => this.refresh();\n }\n\n /**\n * Remove window resize event listener\n * @return {this}\n */\n removeOnWindowResizeListener() {\n if (this.cache.has('onWindowResizeListener')) {\n window.removeEventListener('resize', this.cache.get('onWindowResizeListener'), true);\n this.cache.delete('onWindowResizeListener');\n }\n\n return this;\n }\n\n /**\n * Add window scroll event listener\n * @returns {GuideChimp}\n */\n addOnWindowScrollListener() {\n this.cache.set('onWindowScrollListener', this.getOnWindowScrollListener());\n window.addEventListener('scroll', this.cache.get('onWindowScrollListener'), true);\n\n return this;\n }\n\n /**\n * Return on window scroll event listener function\n * @returns {function}\n */\n getOnWindowScrollListener() {\n return () => this.refresh();\n }\n\n /**\n * Remove window resize event listener\n * @return {this}\n */\n removeOnWindowScrollListener() {\n if (this.cache.has('onWindowScrollListener')) {\n window.removeEventListener('scroll', this.cache.get('onWindowScrollListener'), true);\n this.cache.delete('onWindowScrollListener');\n }\n\n return this;\n }\n\n removeListeners() {\n this.removeOnKeydownListener();\n this.removeOnWindowResizeListener();\n this.removeOnWindowScrollListener();\n }\n\n observeStep() {\n this.observeResizing();\n this.observeMutation();\n }\n\n observeResizing(options = { box: 'border-box' }) {\n let { resizingObserver: observer } = this.observers;\n\n if (!observer && typeof ResizeObserver !== 'undefined') {\n observer = new ResizeObserver(() => {\n if (!this && !this.currentStep) {\n return;\n }\n this.refresh();\n });\n\n this.observers.resizingObserver = observer;\n }\n\n if (observer) {\n // observe elements\n observer.observe(this.getStepEl(this.currentStep), options);\n return true;\n }\n\n return false;\n }\n\n unobserveResizing() {\n const { resizingObserver: observer } = this.observers;\n\n if (observer) {\n observer.disconnect();\n return true;\n }\n\n return false;\n }\n\n observeMutation() {\n let { mutationObserver: observer } = this.observers;\n\n if (!observer) {\n observer = new MutationObserver((mutations) => {\n if (!this && !this.currentStep) {\n return;\n }\n\n const { element } = this.currentStep;\n\n if (!element) {\n return;\n }\n\n let el = this.getStepEl(this.currentStep);\n\n const isElExists = () => el && !this.isEl(el, 'fakeStep');\n\n mutations.forEach((record) => {\n if (isElExists()) {\n if (record.type === 'childList' && record.removedNodes.length) {\n record.removedNodes.forEach((node) => {\n if (node === el || node.contains(el)) {\n el = this.getStepEl(this.currentStep);\n this.scrollParentsToStepEl();\n this.refresh();\n }\n });\n }\n } else if (record.type === 'childList' && record.addedNodes.length) {\n el = this.getStepEl(this.currentStep);\n\n if (isElExists()) {\n this.scrollParentsToStepEl();\n this.refresh();\n }\n }\n });\n });\n\n this.observers.mutationObserver = observer;\n }\n\n observer.observe(this.getStepEl(this.currentStep).ownerDocument.body, {\n childList: true,\n subtree: true,\n });\n\n return true;\n }\n\n unobserveMutation() {\n const { mutationObserver: observer } = this.observers;\n\n if (observer) {\n observer.disconnect();\n return true;\n }\n\n return false;\n }\n\n unobserveStep() {\n this.unobserveResizing();\n this.unobserveMutation();\n }\n\n beforeChangeStep() {\n this.unmountStep();\n this.unobserveStep();\n }\n\n /**\n * Refresh layers position\n * @returns {this}\n */\n refresh() {\n if (!this.currentStep) {\n return this;\n }\n\n this.highlightStepEl();\n\n this.setControlPosition(this.getEl('control'));\n this.setInteractionPosition(this.getEl('interaction'));\n this.setTooltipPosition(this.getEl('tooltip'));\n\n return this;\n }\n}","// Module\nvar code = \"<div class=\\\"gc-fake-step\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-preloader\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-overlay\\\" @click=\\\"stop({ event: $event })\\\"> <svg class=\\\"svg-overlay\\\"> <path d=\\\"{{path}}\\\"> <animate attributeName=\\\"d\\\" dur=\\\"200ms\\\"/> </path> </svg> </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"!interaction\\\" class=\\\"gc-interaction gc-disable\\\"> </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-control\\\"> {{ tooltipEl }} </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-tooltip\\\"> <div class=\\\"gc-tooltip-tail\\\"></div> {{ progressbar }} {{ title }} {{ description }} {{ close }} {{ customButtons }} <div if=\\\"previous || pagination || next\\\" class=\\\"gc-navigation\\\"> {{ previous }} {{ pagination }} {{ next }} </div> {{ copyright }} {{ notification }} </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-close\\\" @click=\\\"stop({ event: $event })\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"showProgressbar\\\" class=\\\"gc-progressbar\\\" role=\\\"progressbar\\\" aria-valuemin=\\\"{{ progressMin }}\\\" aria-valuemax=\\\"{{ progressMax }}\\\" aria-valuenow=\\\"{{ progress }}\\\" style=\\\"width:{{ progress }}%;\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"title\\\" html=\\\"{{ title }}\\\" class=\\\"gc-title\\\"> </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"description\\\" html=\\\"{{ description }}\\\" class=\\\"gc-description\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"buttons.length\\\" class=\\\"gc-custom-buttons\\\"> <template for=\\\"button in buttons\\\"> {{ button }} </template> </div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div if=\\\"showPagination && steps.length > 1\\\" class=\\\"gc-pagination\\\"> <template if=\\\"paginationTheme === 'numbers' || steps.length >= paginationCirclesMaxItems\\\"> <ul class=\\\"gc-pagination-theme-numbers\\\"> <template for=\\\"(step, index) in steps\\\"> <template if=\\\"index === 0\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> <template if=\\\"currentStepIndex < 3\\\"> <template if=\\\"index > 0 && index < 5\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> <li elseif=\\\"index === 5 && index !== steps.length - 1\\\" class=\\\"gc-pagination-dots\\\"> ... </li> </template> <template elseif=\\\"steps.length - currentStepIndex < 5\\\"> <template if=\\\"steps.length - index < 6 && steps.length - 1 !== index\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> <li elseif=\\\"steps.length - index === 6 && index !== 0\\\" class=\\\"gc-pagination-dots\\\"> ... </li> </template> <template else> <li if=\\\"currentStepIndex - index === 3 && index !== 0\\\" class=\\\"gc-pagination-dots\\\"> ... </li> <template elseif=\\\"(currentStepIndex - index >= 0 && currentStepIndex - index < 3)\\n || ( index - currentStepIndex >= 0 && index - currentStepIndex < 3)\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> <li elseif=\\\"index - currentStepIndex === 3 && steps.length -1 !== index\\\" class=\\\"gc-pagination-dots\\\"> ... </li> </template> <template if=\\\"index + 1 === steps.length\\\"> <li if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"> {{ index + 1 }} </li> <li elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"> {{ index + 1 }} </li> <li else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"> {{ index + 1 }} </li> </template> </template> </ul> </template> <template else> <div class=\\\"gc-pagination-theme-circles\\\"> <template for=\\\"(step, index) in steps\\\"> <div if=\\\"index === currentStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-current gc-pagination-active\\\"></div> <div elseif=\\\"index === previousStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-previous\\\" @click=\\\"previous({ event: $event })\\\"></div> <div elseif=\\\"index === nextStepIndex\\\" class=\\\"gc-pagination-item gc-pagination-item-next\\\" @click=\\\"next({ event: $event })\\\"></div> <div else class=\\\"gc-pagination-item\\\" @click=\\\"go(index, true, { event: $event })\\\"></div> </template> </div> </template> </div> \";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-navigation-prev {{ (!previousStep || !showNavigation) ? 'gc-hidden': '' }}\\\" @click=\\\"previous({ event: $event })\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-navigation-next {{ (!nextStep || !showNavigation) ? 'gc-hidden': '' }}\\\" @click=\\\"next({ event: $event })\\\"></div>\";\n// Exports\nexport default code;","// Module\nvar code = \"<div class=\\\"gc-copyright\\\">Made with AHD.JS</div> \";\n// Exports\nexport default code;","// Module\nvar code = \"<div html=\\\"{{ messages[0] }}\\\" class=\\\"gc-notification\\\"></div>\";\n// Exports\nexport default code;","import GuideChimp from \"./GuideChimp\";\n//import Beacons from \"./plugins/beacons\";\nimport \"./index.scss\";\n// import Information from \"./plugins/information\";\n// import Beacons from \"./plugins/beacons\";\n// class AHDjs {\n// private guideChimp: any;\n// private appId: string;\n// private contextToursMapData: any;\n// constructor(applicationId: any, tour: any, options: any) {\n// this.appId = applicationId;\n// //@ts-ignore\n// this.guideChimp = new GuideChimp(tour, options);\n\n// this.guideChimp.prototype = GuideChimp.prototype;\n// this.guideChimp.plugins = new Set();\n\n// //@ts-ignore\n// // this.guideChimp.extend = (plugin, ...args) => {\n// // if (!this.guideChimp.plugins.has(plugin)) {\n// // this.guideChimp.plugins.add(plugin);\n// // plugin(GuideChimp, this.guideChimp, ...args);\n// // }\n// // return this.guideChimp;\n// // };\n\n// // test beacon extension\n// // @ts-ignore\n// const pluginsToLoad = [Beacons, Information];\n// pluginsToLoad.forEach((pluginClass) => {\n// const plugin = pluginClass;\n// if (!this.guideChimp.plugins.has(plugin)) {\n// this.guideChimp.plugins.add(plugin);\n// // @ts-ignore\n// plugin(GuideChimp, this.guideChimp, tour, options);\n// }\n// });\n// }\n\n// updatePageUrl = async (url: string, refetch: boolean) => {\n// await this.stop();\n// // todo: local caching and use https://github.com/pillarjs/path-to-regexp to find exact match\n// const respons: any = await fetch(\n// `https://ahd-be-jggub5n6qq-em.a.run.app/api/tenant/${this.appId}/contexttour?filter[isActive]=true`\n// ).then((res) => res.json());\n\n// this.contextToursMapData = respons.rows;\n// //if there is anything to open onload\n// const onboardTour = respons.rows\n// .filter((row: any) => !!row.content)\n// .map((row: any) => {\n// return {\n// element: row.selector,\n// title: row.content.title,\n// description: row.content.content,\n// tour: [\n// {\n// title: \"Multi Feature\",\n// description: \"Multi Feature beacon clicked.\",\n// },\n// ],\n// };\n// });\n// this.setTour(onboardTour);\n// this.start();\n// };\n\n// setTour = (tour: any) => {\n// this.guideChimp.setTour(tour);\n// };\n// beacons = (...args: any) => {\n// // @ts-ignore\n// // this.guideChimp.beacon = new Beacons(...args);\n\n// const tourBeacons = this.contextToursMapData\n// .filter((row: any) => !!row.content)\n// .map((row: any) => {\n// return {\n// element: row.selector,\n// title: row.content.title,\n// description: row.content.content,\n// tour: [\n// {\n// title: \"BC Multi Feature\",\n// description: \"BC Multi Feature beacon clicked.\",\n// },\n// {\n// title: \"B2C Multi Feature\",\n// description: \"B2C Multi Feature beacon clicked.\",\n// },\n// ],\n// };\n// });\n\n// const b = this.guideChimp.beacons(tourBeacons);\n// setTimeout(() => {\n// b.showAll();\n// }, 1000);\n// };\n// start = (...args: any) => {\n// this.guideChimp.start(...args);\n// };\n// stop = async (...args: any) => {\n// await this.guideChimp.stop(...args);\n// };\n// showInformation = (...args: any) => {\n// // @ts-ignore\n// // this.guideChimp.beacon = new Beacons(...args);\n// const b = this.guideChimp.information(...args);\n// setTimeout(() => {\n// b.showAll();\n// }, 1000);\n// };\n// // guideChimp.prototype = GuideChimp.prototype;\n// // guideChimp.plugins = new Set();\n\n// // guideChimp.extend = (plugin, ...args) => {\n// // if (!guideChimp.plugins.has(plugin)) {\n// // guideChimp.plugins.add(plugin);\n// // plugin(GuideChimp, guideChimp, ...args);\n// // }\n// // return guideChimp;\n// // };\n\n// // module.exports = guideChimp;\n// }\n\nclass AHDjs {\n private guideChimp;\n constructor(...args: any) {\n // @ts-ignore\n this.guideChimp = new GuideChimp(...args);\n }\n public start(...args: any) {\n this.guideChimp.start(...args);\n }\n}\nexport default AHDjs;\n"],"names":["root","factory","exports","module","define","amd","self","Symbol","array","iteratee","index","length","result","Array","getRawTag","objectToString","symToStringTag","toStringTag","undefined","value","Object","arrayMap","isArray","isSymbol","symbolProto","prototype","symbolToString","toString","baseToString","call","freeGlobal","g","objectProto","hasOwnProperty","nativeObjectToString","isOwn","tag","unmasked","e","freeSelf","Function","baseGetTag","isObjectLike","idCounter","prefix","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","defineProperty","enumerable","get","globalThis","this","window","obj","prop","r","el","HTMLElement","test","SVGElement","tpl","data","parser","DOMParser","template","replace","sourceDoc","parseFromString","renderedDoc","document","implementation","createHTMLDocument","pattern","eventPattern","ifEnded","Map","render","node","replacements","parent","body","handler","keys","values","getValue","nodeType","Node","ELEMENT_NODE","hasAttribute","set","parentNode","getAttribute","forPieces","split","firstPiece","secondPiece","removeAttribute","param","trim","source","isSourceArray","forEach","k","parseInt","ownerDocument","tagName","cloneNode","append","attributes","attr","name","eventMatch","exec","eventName","addEventListener","match","rValue","slice","replacement","_isUndefined","_isNull","console","error","substr","innerHTML","includes","setAttribute","TEXT_NODE","nodeValue","createTextNode","isHtmlElement","isSvgElement","isNodeList","v","childNodes","firstElementChild","GuideChimp","tour","options","_uniqueId","configurable","writable","setDefaults","cache","listeners","observers","setOptions","setTour","notifications","elements","init","previousStep","currentStep","nextStep","fromStep","toStep","previousStepIndex","currentStepIndex","nextStepIndex","fromStepIndex","toStepIndex","steps","isDisplayed","constructor","getDefaultOptions","number","useIndex","mountOverlayEl","startPreloader","args","emit","stopPreloader","removeOverlayEl","sortSteps","getSteps","classList","add","getBodyClass","go","isStarted","toggle","useKeyboard","addOnKeydownListener","addOnWindowResizeListener","addOnWindowScrollListener","stepNumber","step","filter","indexOf","onBeforeChange","onAfterChange","abort","Promise","resolve","then","some","beforeChangeStep","scrollBehavior","scrollPadding","scrollParentsToStepEl","scrollTo","getStepEl","mountStep","setTimeout","getEl","onPrevious","onNext","remove","removeListeners","unobserveStep","unmountStep","clear","getDataSteps","getJsSteps","dataPrefix","tourStepsEl","from","querySelectorAll","dataTourRegExp","RegExp","dataGlobalRegExp","map","i","stepAttrs","j","attrName","attrValue","isTourAttr","isGlobalAttr","attrShortName","title","description","position","interaction","element","sort","b","mountFakeStepEl","selector","def","querySelector","style","display","visibility","scrollParentsToEl","parents","htmlEl","getScrollableParentEl","push","regex","elStyle","getComputedStyle","elDocument","getPropertyValue","getClosestScrollableParent","parentStyle","parentElement","overflowX","overflowY","getScrollableParentsEls","scrollTop","offsetTop","scrollLeft","offsetLeft","behavior","getBoundingClientRect","top","bottom","left","right","innerWidth","innerHeight","scrollBy","animation","overlay","path","animate","isCurrentElFake","isEl","to","getOverlayDocumentPath","getOverlayStepPath","lock","isFromElFake","onend","beginElement","getRelativePositionClass","getHighlightClass","uid","interactionEl","padding","getOffset","width","height","getFixedClass","isFixed","cssText","controlEl","pageXOffset","defaultView","docElWidth","documentElement","elHeight","elTop","elLeft","elRight","tooltipEl","boundary","pos","alignment","tooltipStyle","transform","elBottom","elWidth","tooltipHeight","tooltipWith","cloneTooltip","appendChild","minTooltipWidth","removeChild","boundaryRect","DOMRect","Window","x","y","scrollWidth","scrollHeight","boundaryTop","boundaryBottom","boundaryLeft","boundaryRight","positions","tooltipMarginTop","marginTop","tooltipMarginLeft","marginLeft","tooltipMarginRight","marginRight","tooltipMarginBottom","marginBottom","splice","alignments","clientLeft","clientWidth","getLoadingClass","preloaderCache","preloader","mountPreloaderEl","hidden","has","removePreloaderEl","previous","next","stop","mountInteractionEl","mountControlEl","setInteractionPosition","setControlPosition","setTooltipPosition","observeStep","highlightStepEl","resetHighlightStepEl","removeInteractionEl","removeControlEl","removeFakeStepEl","tmpl","domTemplate","els","removeEl","createEl","getFakeStepTmpl","getDefaultTmplData","mountEl","createFakeStepEl","getPreloaderTmpl","createPreloaderEl","getOverlayElPath","defaults","exitOverlay","getOverlayTmpl","createOverlayEl","getInteractionTmpl","createInteractionEl","getControlTmpl","createTooltipEl","createControlEl","progressbar","createProgressbarEl","createTitleEl","createDescriptionEl","close","createCloseEl","customButtons","createCustomButtonsEl","createPreviousEl","pagination","createPaginationEl","createNextEl","copyright","createCopyrightEl","notification","createNotificationEl","getTooltipTmpl","getCloseTmpl","showProgressbar","progressMax","progressMin","progress","getProgressbarTmpl","getTitleTmpl","getDescriptionTmpl","buttons","button","buttonEl","onClick","className","createElement","getCustomButtonsTmpl","paginationTheme","paginationCirclesMaxItems","showPagination","getPaginationTmpl","showNavigation","getPreviousTmpl","getNextTmpl","getCopyrightTmpl","getNotificationTmpl","messages","message","notificationEl","event","listener","priorities","getEventListenersPriorities","priority","reverse","promise","all","f","apply","getOnKeydownListener","keyCode","getDefaultKeyboardCodes","previousCodes","nextCodes","stopCodes","removeEventListener","getOnWindowResizeListener","refresh","getOnWindowScrollListener","removeOnKeydownListener","removeOnWindowResizeListener","removeOnWindowScrollListener","observeResizing","observeMutation","box","observer","resizingObserver","ResizeObserver","observe","disconnect","mutationObserver","MutationObserver","mutations","isElExists","record","type","removedNodes","contains","addedNodes","childList","subtree","unobserveResizing","unobserveMutation","exitEscape","view","pageYOffset","nodeName","guideChimp","start"],"sourceRoot":""}