| Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/tour/dist/ |
| Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/tour/dist/tour.bundle.js.map |
{"version":3,"file":"tour.bundle.js","sources":["../src/step.js","../src/guide-condition-color.js","../src/guide.js","../src/manager.js"],"sourcesContent":["import {Type, Reflection, Event, Dom} from 'main.core';\n\nexport class Step extends Event.EventEmitter\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t\tthis.target = null;\n\t\tif (\n\t\t\tType.isString(options.target) && options.target !== '' ||\n\t\t\tType.isFunction(options.target) ||\n\t\t\tType.isDomNode(options.target)\n\t\t)\n\t\t{\n\t\t\tthis.target = options.target;\n\t\t}\n\n\t\tthis.id = options.id || null;\n\t\tthis.text = options.text;\n\t\tthis.areaPadding = options.areaPadding;\n\t\tthis.link = options.link || \"\";\n\t\tthis.rounded = options.rounded || false;\n\t\tthis.title = options.title || null;\n\t\tthis.article = options.article || null;\n\t\tthis.position = options.position || null;\n\t\tthis.cursorMode = options.cursorMode || false;\n\t\tthis.targetEvent = options.targetEvent || null;\n\t\tthis.buttons = options.buttons || [];\n\t\tthis.condition = options.condition || null;\n\n\t\tconst events = Type.isPlainObject(options.events) ? options.events : {};\n\n\t\tfor (let eventName in events)\n\t\t{\n\t\t\tconst callback = Type.isFunction(events[eventName]) ? events[eventName] : Reflection.getClass(events[eventName]);\n\t\t\tif (callback)\n\t\t\t{\n\t\t\t\tthis.subscribe(this.constructor.getFullEventName(eventName), () => {\n\t\t\t\t\tcallback();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tgetCondition()\n\t{\n\t\treturn this.condition;\n\t}\n\n\tgetTarget()\n\t{\n\t\tif (Type.isString(this.target) && this.target !== '')\n\t\t{\n\t\t\treturn document.querySelector(this.target);\n\t\t}\n\n\t\tif (Type.isFunction(this.target))\n\t\t{\n\t\t\treturn this.target();\n\t\t}\n\n\t\treturn this.target;\n\t}\n\n\tgetTargetPos()\n\t{\n\t\tif (Type.isDomNode(this.target))\n\t\t{\n\t\t\treturn Dom.getPosition(this.target);\n\t\t}\n\t}\n\n\tgetId()\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetButtons()\n\t{\n\t\treturn this.buttons;\n\t}\n\n\tgetAreaPadding()\n\t{\n\t\treturn this.areaPadding;\n\t}\n\n\tgetRounded()\n\t{\n\t\treturn this.rounded;\n\t}\n\n\tgetText()\n\t{\n\t\treturn this.text;\n\t}\n\n\tgetLink()\n\t{\n\t\treturn this.link;\n\t}\n\n\tgetTitle()\n\t{\n\t\treturn this.title;\n\t}\n\n\tgetPosition()\n\t{\n\t\treturn this.position;\n\t}\n\n\tgetArticle()\n\t{\n\t\treturn this.article;\n\t}\n\n\tgetCursorMode()\n\t{\n\t\treturn this.cursorMode;\n\t}\n\n\tgetTargetEvent()\n\t{\n\t\treturn this.targetEvent;\n\t}\n\n\tstatic getFullEventName(shortName)\n\t{\n\t\treturn \"Step:\" + shortName;\n\t}\n\n\tsetTarget(target)\n\t{\n\t\tthis.target = target;\n\t}\n\n\tinitTargetEvent()\n\t{\n\t\tif(Type.isFunction(this.targetEvent))\n\t\t{\n\t\t\tthis.targetEvent();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getTarget().dispatchEvent(new MouseEvent(this.targetEvent))\n\t}\n}\n","/**\n * @namespace {BX.UI}\n */\nexport default class GuideConditionColor\n{\n\tstatic WARNING = '--condition-warning';\n\tstatic ALERT = '--condition-alert';\n\tstatic PRIMARY = '--condition-primary';\n\n}","import { Type, Dom, Reflection, Event, Tag, Text, userOptions, Loc } from 'main.core';\nimport { Popup, PopupWindowButton } from 'main.popup';\nimport { EventEmitter } from 'main.core.events';\nimport { Step } from './step.js';\nimport GuideConditionColor from './guide-condition-color';\n\nimport 'ui.design-tokens';\nimport './style.css';\n\nexport class Guide extends Event.EventEmitter\n{\n\tstatic ConditionColor = GuideConditionColor;\n\n\tconstructor(options = {})\n\t{\n\t\tsuper(options);\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\n\t\t/** @var {Step[]}*/\n\t\tthis.steps = [];\n\t\tif (Array.isArray(options.steps))\n\t\t{\n\t\t\toptions.steps.forEach(step => {\n\t\t\t\tthis.steps.push(new Step(step));\n\t\t\t});\n\t\t}\n\n\t\tif (this.steps.length < 1)\n\t\t{\n\t\t\tthrow new Error(\"BX.UI.Tour.Guide: 'steps' argument is required.\");\n\t\t}\n\n\t\tthis.id = \"ui-tour-guide-\" + Text.getRandom();\n\t\tthis.setId(options.id);\n\n\t\tthis.autoSave = false;\n\n\t\tthis.popup = null;\n\t\tthis.layout = {\n\t\t\toverlay: null,\n\t\t\telement: null,\n\t\t\ttitle: null,\n\t\t\ttext: null,\n\t\t\tlink: null,\n\t\t\tbtnContainer: null,\n\t\t\tnextBtn: null,\n\t\t\tbackBtn: null,\n\t\t\tcontent: null,\n\t\t\tfinalContent: null,\n\t\t\tcounter: null,\n\t\t\tcurrentCounter: null,\n\t\t\tcounterItems: []\n\t\t};\n\t\tthis.buttons = options.buttons || \"\";\n\t\tthis.onEvents = options.onEvents || false;\n\t\tthis.currentStepIndex = 0;\n\t\tthis.targetPos = null;\n\t\tthis.clickOnBackBtn = false;\n\t\tthis.helper = top.BX.Helper;\n\n\t\tthis.finalStep = options.finalStep || false;\n\t\tthis.finalText = options.finalText || \"\";\n\t\tthis.finalTitle = options.finalTitle || \"\";\n\n\t\tthis.simpleMode = options.simpleMode || false;\n\n\t\tthis.setAutoSave(options.autoSave);\n\n\t\tconst events = Type.isPlainObject(options.events) ? options.events : {};\n\t\tfor (let eventName in events)\n\t\t{\n\t\t\tlet cb = Type.isFunction(events[eventName]) ? events[eventName] : Reflection.getClass(events[eventName]);\n\t\t\tif (cb)\n\t\t\t{\n\t\t\t\tthis.subscribe(this.constructor.getFullEventName(eventName), () => {\n\t\t\t\t\tcb();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tEvent.bind(window, \"resize\", this.handleResizeWindow.bind(this));\n\t}\n\n\t/**\n\t * @public\n\t * @returns {string}\n\t */\n\tgetId()\n\t{\n\t\treturn this.id;\n\t}\n\n\tsetId(id)\n\t{\n\t\tif (Type.isString(id) && id !== '')\n\t\t{\n\t\t\tthis.id = id;\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t * @returns {Boolean}\n\t */\n\tgetAutoSave()\n\t{\n\t\treturn this.autoSave;\n\t}\n\n\tsetAutoSave(mode)\n\t{\n\t\tif (Type.isBoolean(mode))\n\t\t{\n\t\t\tthis.autoSave = mode;\n\t\t}\n\t}\n\n\tsave()\n\t{\n\t\tconst optionName = \"view_date_\" + this.getId();\n\t\tuserOptions.save(\"ui-tour\", optionName, null, Math.floor(Date.now() / 1000));\n\t\tuserOptions.send(null);\n\t}\n\n\t/**\n\t * @public\n\t */\n\tstart()\n\t{\n\t\tthis.emit(this.constructor.getFullEventName(\"onStart\"), {guide: this});\n\n\t\tif (this.getAutoSave())\n\t\t{\n\t\t\tthis.save();\n\t\t}\n\n\t\tthis.setOverlay();\n\n\t\tconst popup = this.getPopup();\n\t\tpopup.show();\n\n\t\tif (this.popup.getPopupContainer())\n\t\t{\n\t\t\tDom.removeClass(this.popup.getPopupContainer(), \"popup-window-ui-tour-opacity\");\n\t\t}\n\n\n\t\tthis.showStep();\n\n\t\tDom.addClass(this.layout.backBtn, \"ui-tour-popup-btn-hidden\");\n\n\t\tif (this.getCurrentStep().getTarget())\n\t\t{\n\t\t\tDom.addClass(this.getCurrentStep().getTarget(), \"ui-tour-selector\");\n\t\t}\n\n\t}\n\n\t/**\n\t * @public\n\t */\n\tclose()\n\t{\n\t\tif (this.currentStepIndex === this.steps.length && this.onEvents)\n\t\t\treturn;\n\n\t\tthis.closeStep();\n\n\t\tthis.emit(this.constructor.getFullEventName(\"onFinish\"), { guide: this});\n\n\t\tif (this.popup)\n\t\t{\n\t\t\tthis.popup.destroy();\n\t\t}\n\n\t\tif (this.layout.cursor)\n\t\t{\n\t\t\tDom.remove(this.layout.cursor);\n\t\t\tthis.layout.cursor = null;\n\t\t}\n\n\t\tif (this.onEvents)\n\t\t{\n\t\t\tthis.increaseCurrentStepIndex();\n\t\t}\n\n\t\tDom.remove(this.layout.overlay);\n\t\tDom.removeClass(document.body, \"ui-tour-body-overflow\");\n\n\t\tif (this.getCurrentStep() && this.getCurrentStep().getTarget())\n\t\t{\n\t\t\tthis.getCurrentStep().getTarget().classList.remove(\"ui-tour-selector\");\n\t\t}\n\n\t\tthis.layout.overlay = null;\n\t\tthis.layout.element = null;\n\t\tthis.layout.title = null;\n\t\tthis.layout.text = null;\n\t\tthis.layout.link = null;\n\t\tthis.layout.btnContainer = null;\n\t\tthis.layout.nextBtn = null;\n\t\tthis.layout.backBtn = null;\n\t\tthis.layout.content = null;\n\t\tthis.layout.finalContent = null;\n\t\tthis.layout.counter = null;\n\t\tthis.layout.currentCounter = null;\n\t\tthis.layout.counterItems = [];\n\t\tthis.popup = null;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tshowStep()\n\t{\n\t\tthis.adjustEvents();\n\n\t\tDom.removeClass(this.popup.getPopupContainer(), \"popup-window-ui-tour-opacity\");\n\n\t\tif (this.layout.element)\n\t\t{\n\t\t\tDom.removeClass(this.layout.element, \"ui-tour-overlay-element-opacity\");\n\t\t}\n\n\t\tif (this.layout.backBtn)\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.layout.backBtn.style.display = \"block\";\n\t\t\t}, 10);\n\t\t}\n\n\t\tthis.setOverlayElementForm();\n\n\t\tif(this.getCurrentStep())\n\t\t{\n\t\t\tthis.setCoords(this.getCurrentStep().getTarget());\n\t\t}\n\t\tthis.setPopupData();\n\t}\n\n\t/**\n\t * @public\n\t */\n\tshowNextStep()\n\t{\n\t\tif (this.currentStepIndex === this.steps.length)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.getCurrentStep().getCursorMode())\n\t\t{\n\t\t\tthis.showCursor();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst popup = this.getPopup();\n\t\t\tpopup.show();\n\n\t\t\tif (popup.getPopupContainer())\n\t\t\t{\n\t\t\t\tDom.removeClass(popup.getPopupContainer(), \"popup-window-ui-tour-opacity\");\n\t\t\t}\n\n\t\t\tif(this.getCurrentStep())\n\t\t\t{\n\t\t\t\tthis.setCoords(this.getCurrentStep().getTarget());\n\t\t\t}\n\t\t\tthis.setPopupData();\n\t\t}\n\n\t\tthis.adjustEvents();\n\n\t\tif (this.getCurrentStep() && this.getCurrentStep().getTarget())\n\t\t{\n\t\t\tDom.addClass(this.getCurrentStep().getTarget(), 'ui-tour-selector');\n\t\t}\n\t}\n\t/**\n\t * @private\n\t */\n\tadjustEvents()\n\t{\n\t\tlet currentStep = this.getCurrentStep();\n\t\tcurrentStep.emit(currentStep.constructor.getFullEventName(\"onShow\"), {\n\t\t\tstep : currentStep,\n\t\t\tguide: this\n\t\t});\n\n\t\tif (currentStep.getTarget())\n\t\t{\n\t\t\tlet close = this.close.bind(this);\n\t\t\tconst clickEvent = (e) => {\n\t\t\t\tif (e.isTrusted) {\n\t\t\t\t\tclose();\n\t\t\t\t}\n\t\t\t\tEventEmitter.emit('UI.Tour.Guide:clickTarget', this);\n\t\t\t\tEvent.unbind(currentStep.getTarget(), 'click', clickEvent);\n\t\t\t};\n\n\t\t\tEvent.bind(currentStep.getTarget(), 'click', clickEvent);\n\n\t\t\tthis.subscribe('UI.Tour.Guide:onFinish', () => {\n\t\t\t\tEvent.unbind(currentStep.getTarget(), 'click', close);\n\t\t\t});\n\n\t\t\tconst targetPos = currentStep.getTarget().getBoundingClientRect();\n\t\t\tconst targetPosWindow = Dom.getPosition(currentStep.getTarget());\n\t\t\tif (!this.isTargetVisible(targetPos))\n\t\t\t{\n\t\t\t\tthis.scrollToTarget(targetPosWindow);\n\t\t\t}\n\t\t}\n\t}\n\t/**\n\t * @private\n\t */\n\tcloseStep()\n\t{\n\t\tconst currentStep = this.getCurrentStep();\n\t\tif (currentStep)\n\t\t{\n\t\t\tcurrentStep.emit(currentStep.constructor.getFullEventName(\"onClose\"), {\n\t\t\t\tstep : currentStep,\n\t\t\t\tguide: this\n\t\t\t});\n\n\t\t\tconst target = currentStep.getTarget();\n\t\t\tif (target)\n\t\t\t{\n\t\t\t\tDom.removeClass(target, \"ui-tour-selector\")\n\t\t\t}\n\t\t}\n\t}\n\n\tsetPopupPosition()\n\t{\n\t\tif (!this.getCurrentStep().getTarget()\n\t\t\t|| this.targetPos === null\n\t\t\t|| this.getCurrentStep().getPosition() === 'center')\n\t\t{\n\t\t\tthis.getPopup().setBindElement(null);\n\t\t\tthis.getPopup().setOffset({ offsetLeft: 0, offsetTop: 0});\n\t\t\tthis.getPopup().setAngle(false);\n\t\t\tthis.getPopup().adjustPosition();\n\n\t\t\treturn;\n\t\t}\n\n\t\tlet offsetLeft = 0;\n\t\tlet offsetTop = -15;\n\t\tlet angleOffset = 0;\n\t\tlet anglePosition = \"top\";\n\n\t\tconst bindOptions = {\n\t\t\tforceTop: true,\n\t\t\tforceLeft: true,\n\t\t\tforceBindPosition: true\n\t\t};\n\n\t\tconst popupWidth = this.getPopup().getPopupContainer().offsetWidth;\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\n\t\tif (this.getCurrentStep().getPosition() === \"right\")\n\t\t{\n\t\t\tanglePosition = \"left\";\n\t\t\toffsetLeft = this.targetPos.width + 30;\n\t\t\toffsetTop = this.targetPos.height + this.getAreaPadding();\n\n\t\t\tif ((this.targetPos.left + offsetLeft + popupWidth) > clientWidth)\n\t\t\t{\n\t\t\t\tlet left = this.targetPos.left - popupWidth;\n\t\t\t\tif (left > 0)\n\t\t\t\t{\n\t\t\t\t\toffsetLeft = -popupWidth - 30;\n\t\t\t\t\tanglePosition = \"right\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (this.getCurrentStep().getPosition() === \"left\")\n\t\t{\n\t\t\tanglePosition = \"right\";\n\t\t\toffsetLeft = - this.targetPos.width - (popupWidth - this.targetPos.width) - 40;\n\t\t\toffsetTop = this.targetPos.height + this.getAreaPadding();\n\n\t\t\tif ((this.targetPos.right + offsetLeft + popupWidth) < clientWidth)\n\t\t\t{\n\t\t\t\tlet left = this.targetPos.left - popupWidth;\n\t\t\t\tif (left < 0)\n\t\t\t\t{\n\t\t\t\t\toffsetLeft = this.targetPos.width + 40;\n\t\t\t\t\tanglePosition = \"left\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse // top || bottom\n\t\t{\n\t\t\tbindOptions.forceLeft = false;\n\t\t\tbindOptions.forceTop = false;\n\n\t\t\tif (this.getCurrentStep().getRounded())\n\t\t\t{\n\t\t\t\tif (!this.onEvents)\n\t\t\t\t{\n\t\t\t\t\toffsetTop = - (this.layout.element.getAttribute(\"r\") - this.targetPos.height / 2 + 10);\n\t\t\t\t}\n\t\t\t\tangleOffset = 0;\n\t\t\t\toffsetLeft = this.targetPos.width / 2;\n\t\t\t}\n\t\t\telse if (this.targetPos.width < 30)\n\t\t\t{\n\t\t\t\toffsetLeft = this.targetPos.width / 2;\n\t\t\t\toffsetTop = -15;\n\t\t\t\tangleOffset = 0;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\toffsetLeft = 25;\n\n\t\t\t\tif (!this.onEvents)\n\t\t\t\t{\n\t\t\t\t\toffsetTop = - (this.layout.element.getAttribute(\"height\") / 2 - this.targetPos.height / 2 + 10);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\toffsetTop = 0;\n\t\t\t\t}\n\n\t\t\t\tangleOffset = 0;\n\t\t\t}\n\t\t}\n\n\t\tlet bindElement = this.getCurrentStep().getTarget();\n\n\t\tif(this.getCurrentStep().getPosition() === 'center')\n\t\t\tbindElement = window;\n\n\t\tthis.getPopup().setBindElement(bindElement);\n\t\tthis.getPopup().setOffset({offsetLeft: offsetLeft, offsetTop: -offsetTop});\n\t\tthis.getPopup().setAngle({position: anglePosition, offset: angleOffset});\n\t\tthis.getPopup().adjustPosition(bindOptions);\n\n\t}\n\n\t/**\n\t * @private\n\t */\n\tsetOverlay()\n\t{\n\t\tthis.layout.overlay = Tag.render`\n\t\t\t<svg class=\"ui-tour-overlay\" xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\" preserveAspectRatio=\"none\">\n\t\t\t\t<mask id=\"hole\">\n\t\t\t\t\t<defs>\n\t\t\t\t\t\t<filter id=\"ui-tour-filter\">\n\t\t\t\t\t\t\t<feGaussianBlur stdDeviation=\"0\"/>\n\t\t\t\t\t\t</filter>\n\t\t\t\t\t</defs>\n\t\t\t\t\t<rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"white\"></rect>\n\t\t\t\t\t<rect id=\"rect\" class=\"ui-tour-overlay-element ui-tour-overlay-element-rect\" x=\"1035.5\" y=\"338\" width=\"422\" rx=\"2\" ry=\"2\" height=\"58\" filter=\"url(#ui-tour-filter)\"></rect>\n\t\t\t\t\t<circle id=\"circle\" class=\"ui-tour-overlay-element ui-tour-overlay-element-circle\" cx=\"10\" cy=\"10\" r=\"10\" filter=\"url(#ui-tour-filter)\"></circle>\n\t\t\t\t</mask>\n\t\t\t\t<rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"#000\" mask=\"url(#hole)\"></rect>\n\t\t\t</svg>\n\t\t`;\n\n\t\tDom.addClass(document.body, 'ui-tour-body-overflow');\n\t\tDom.append(this.layout.overlay, document.body);\n\n\t\tthis.setOverlayElementForm();\n\t}\n\n\tsetOverlayElementForm()\n\t{\n\t\tif (this.getCurrentStep().getRounded())\n\t\t{\n\t\t\tthis.layout.overlay.querySelector(\".ui-tour-overlay-element-rect\").style.display = \"none\";\n\t\t\tthis.layout.overlay.querySelector(\".ui-tour-overlay-element-circle\").style.display = \"block\";\n\t\t\tthis.layout.element = this.layout.overlay.querySelector(\".ui-tour-overlay-element-circle\");\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.layout.overlay.querySelector(\".ui-tour-overlay-element-circle\").style.display = \"none\";\n\t\t\tthis.layout.overlay.querySelector(\".ui-tour-overlay-element-rect\").style.display = \"block\";\n\t\t\tthis.layout.element = this.layout.overlay.querySelector(\".ui-tour-overlay-element-rect\");\n\t\t}\n\n\t\treturn this.layout.element;\n\t}\n\n\thandleResizeWindow()\n\t{\n\t\tif (this.layout.element && this.getCurrentStep())\n\t\t{\n\t\t\tthis.setCoords(this.getCurrentStep().getTarget());\n\t\t}\n\n\t}\n\n\t/**\n\t * @private\n\t * @param {Element} node\n\t */\n\tsetCoords(node)\n\t{\n\t\tif (!node)\n\t\t{\n\t\t\tif(this.layout.element)\n\t\t\t{\n\t\t\t\tthis.layout.element.style.display = \"none\";\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.targetPos = node.getBoundingClientRect();\n\n\t\tif (this.layout.element)\n\t\t{\n\t\t\tthis.layout.element.style.display = \"block\";\n\n\t\t\tif (this.getCurrentStep().getRounded())\n\t\t\t{\n\t\t\t\tthis.layout.element.setAttribute('cx', this.targetPos.left + this.targetPos.width / 2);\n\t\t\t\tthis.layout.element.setAttribute('cy', this.targetPos.top + this.targetPos.height / 2);\n\t\t\t\tthis.layout.element.setAttribute('r', this.targetPos.width / 2 + this.getAreaPadding());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.layout.element.setAttribute('x', this.targetPos.left - this.getAreaPadding());\n\t\t\t\tthis.layout.element.setAttribute('y', this.targetPos.top - this.getAreaPadding());\n\t\t\t\tthis.layout.element.setAttribute('width', this.targetPos.width + this.getAreaPadding()*2);\n\t\t\t\tthis.layout.element.setAttribute('height', this.targetPos.height + this.getAreaPadding()*2);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetAreaPadding()\n\t{\n\t\tlet padding = 15;\n\t\tif (this.getCurrentStep().getAreaPadding() >= 0)\n\t\t{\n\t\t\tpadding = this.getCurrentStep().getAreaPadding();\n\t\t}\n\n\t\treturn padding;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tincreaseCurrentStepIndex()\n\t{\n\t\tthis.currentStepIndex++;\n\n\t\tif (this.currentStepIndex + 1 === this.steps.length && !this.finalStep && !this.onEvents)\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.layout.nextBtn.textContent = Loc.getMessage(\"JS_UI_TOUR_BUTTON_CLOSE\");\n\t\t\t}, 200);\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\treduceCurrentStepIndex()\n\t{\n\t\tif (this.currentStepIndex === 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.currentStepIndex < this.steps.length && !this.finalStep)\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.layout.nextBtn.textContent = Loc.getMessage(\"JS_UI_TOUR_BUTTON\");\n\t\t\t}, 200);\n\t\t}\n\n\t\tthis.currentStepIndex--;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetPopup()\n\t{\n\t\tif (!this.popup)\n\t\t{\n\t\t\tlet bindElement = this.getCurrentStep()\n\t\t\t\t? this.getCurrentStep().getTarget()\n\t\t\t\t: window;\n\n\t\t\tlet className = 'popup-window-ui-tour popup-window-ui-tour-opacity';\n\n\t\t\tif (this.getCurrentStep().getCondition())\n\t\t\t{\n\t\t\t\tif (Type.isString(this.getCurrentStep().getCondition()))\n\t\t\t\t{\n\t\t\t\t\tclassName = className + ' --condition-' + this.getCurrentStep().getCondition().toLowerCase();\n\t\t\t\t}\n\n\t\t\t\tif (Type.isObject(this.getCurrentStep().getCondition()))\n\t\t\t\t{\n\t\t\t\t\tclassName = className + ' --condition-' + this.getCurrentStep().getCondition()?.color.toLowerCase();\n\t\t\t\t}\n\n\t\t\t\tif (this.getCurrentStep().getCondition()?.top !== false)\n\t\t\t\t{\n\t\t\t\t\tclassName = className + ' --condition';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.onEvents\n\t\t\t\t? className = className + ' popup-window-ui-tour-animate'\n\t\t\t\t: null;\n\n\t\t\tlet buttons = [];\n\n\t\t\tif(this.getCurrentStep() && this.getCurrentStep().getButtons().length > 0)\n\t\t\t{\n\t\t\t\tthis.getCurrentStep().getButtons().forEach((item)=> {\n\t\t\t\t\tbuttons.push(new PopupWindowButton({\n\t\t\t\t\t\ttext: item.text,\n\t\t\t\t\t\tclassName: 'ui-btn ui-btn-sm ui-btn-primary ui-btn-round',\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tclick: Type.isFunction(item.event) ? item.event : null\n\t\t\t\t\t\t}\n\t\t\t\t\t}))\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst popupWidth = this.onEvents ? 280 : 420;\n\n\t\t\tthis.popup = new Popup({\n\t\t\t\tcontent: this.getContent(),\n\t\t\t\tbindElement: bindElement,\n\t\t\t\tclassName: className,\n\t\t\t\tautoHide: this.onEvents ? false : true,\n\t\t\t\toffsetTop: 15,\n\t\t\t\twidth: popupWidth,\n\t\t\t\tcloseIcon: true,\n\t\t\t\tnoAllPaddings: true,\n\t\t\t\tbindOptions: {\n\t\t\t\t\tforceTop: true,\n\t\t\t\t\tforceLeft: true,\n\t\t\t\t\tforceBindPosition: true\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose : (popup) => {\n\t\t\t\t\t\tif(popup.destroyed === false && this.onEvents)\n\t\t\t\t\t\t\tEventEmitter.emit('UI.Tour.Guide:onPopupClose', this);\n\n\t\t\t\t\t\tthis.close();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tbuttons: buttons\n\t\t\t});\n\n\t\t\tconst conditionNodeTop = Tag.render`\n\t\t\t\t<div class=\"ui-tour-popup-condition-top\">\n\t\t\t\t\t<div class=\"ui-tour-popup-condition-angle\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tconst conditionNodeBottom = Tag.render`\n\t\t\t\t<div class=\"ui-tour-popup-condition-bottom\"></div>\n\t\t\t`;\n\n\t\t\tif (Type.isString(this.getCurrentStep().getCondition()))\n\t\t\t{\n\t\t\t\tDom.append(conditionNodeTop, this.popup.getContentContainer());\n\t\t\t}\n\n\t\t\tif (Type.isObject(this.getCurrentStep().getCondition()))\n\t\t\t{\n\t\t\t\tif (this.getCurrentStep().getCondition()?.top !== false)\n\t\t\t\t{\n\t\t\t\t\tDom.append(conditionNodeTop, this.popup.getContentContainer());\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif (this.getCurrentStep().getCondition()?.bottom !== false)\n\t\t\t{\n\t\t\t\tDom.append(conditionNodeBottom, this.popup.getContentContainer());\n\t\t\t}\n\t\t}\n\n\t\treturn this.popup;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tgetContent()\n\t{\n\t\tif (!this.layout.content)\n\t\t{\n\t\t\tlet linkNode = '';\n\t\t\tif(this.getCurrentStep().getLink() || this.getCurrentStep().getArticle())\n\t\t\t{\n\t\t\t\tlinkNode = this.getLink();\n\t\t\t}\n\t\t\tthis.layout.content = Tag.render`\n\t\t\t\t<div class=\"ui-tour-popup ${this.simpleMode ? 'ui-tour-popup-simple' : ''} ${this.onEvents ? 'ui-tour-popup-events' : ''}\" >\n\t\t\t\t\t${this.getTitle()}\n\t\t\t\t\t<div class=\"ui-tour-popup-content\">\n\t\t\t\t\t\t${this.getText()}\n\t\t\t\t\t\t${linkNode}\n\t\t\t\t\t</div>\n\t\t\t\t\t${linkNode}\n\t\t\t\t\t<div class=\"ui-tour-popup-footer\">\n\t\t\t\t\t\t<div class=\"ui-tour-popup-index\">\n\t\t\t\t\t\t\t${this.onEvents ? '' : this.getCounterItems()}\n\t\t\t\t\t\t\t${this.onEvents ? '' : this.getCurrentCounter()}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t${this.onEvents ? '' : this.getBtnContainer()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.content;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tsetPopupData()\n\t{\n\t\tEvent.unbindAll(this.layout.link, 'click');\n\n\t\tthis.getTitle().innerHTML = this.getCurrentStep().getTitle();\n\t\tthis.getText().innerHTML = this.getCurrentStep().getText();\n\n\t\tif (this.getCurrentStep().getArticle() || this.getCurrentStep().getLink())\n\t\t{\n\t\t\tDom.removeClass(this.layout.link, \"ui-tour-popup-link-hide\");\n\n\t\t\tif (this.getCurrentStep().getArticle())\n\t\t\t{\n\t\t\t\tEvent.bind(this.layout.link, \"click\", this.handleClickLink.bind(this));\n\t\t\t}\n\n\t\t\tif (this.getCurrentStep().getLink())\n\t\t\t{\n\t\t\t\tthis.getLink().setAttribute('href', this.getCurrentStep().getLink());\n\t\t\t}\n\n\t\t}\n\t\telse {\n\t\t\tDom.addClass(this.layout.link, \"ui-tour-popup-link-hide\");\n\t\t}\n\n\t\tthis.getCurrentCounter().textContent = Loc.getMessage(\"JS_UI_TOUR_STEP_INDEX_TEXT\")\n\t\t\t.replace('#NUMBER#', this.currentStepIndex + 1)\n\t\t\t.replace('#NUMBER_TOTAL#', this.steps.length);\n\n\t\tfor (let i = 0; i < this.steps.length; i++)\n\t\t{\n\t\t\tif (this.layout.counterItems[i])\n\t\t\t{\n\t\t\t\tDom.removeClass(this.layout.counterItems[i], 'ui-tour-popup-index-item-current');\n\t\t\t\tDom.removeClass(this.layout.counterItems[i], 'ui-tour-popup-index-item-passed');\n\t\t\t}\n\n\t\t\tif (i === this.currentStepIndex)\n\t\t\t{\n\t\t\t\tDom.addClass(this.layout.counterItems[i], 'ui-tour-popup-index-item-current');\n\t\t\t}\n\t\t\telse if (i < this.currentStepIndex)\n\t\t\t{\n\t\t\t\tDom.addClass(this.layout.counterItems[i], 'ui-tour-popup-index-item-passed')\n\t\t\t}\n\t\t}\n\n\t\tthis.setPopupPosition();\n\t}\n\n\t/**\n\t * @public\n\t */\n\thandleClickLink()\n\t{\n\t\tevent.preventDefault();\n\n\t\tif(!this.helper)\n\t\t{\n\t\t\tthis.helper = top.BX.Helper;\n\t\t}\n\n\t\tthis.helper.show(\"redirect=detail&code=\" + this.getCurrentStep().getArticle());\n\n\t\tif(this.onEvent)\n\t\t{\n\t\t\tif(this.helper.isOpen())\n\t\t\t\tthis.getPopup().setAutoHide(false);\n\n\t\t\tEventEmitter.subscribe(this.helper.getSlider(), 'SidePanel.Slider:onCloseComplete', () => {\n\t\t\t\tthis.getPopup().setAutoHide(true);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetTitle()\n\t{\n\t\tif (this.layout.title === null)\n\t\t{\n\t\t\tthis.layout.title = Tag.render`\n\t\t\t\t<div class=\"ui-tour-popup-title\"></div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.title;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetText()\n\t{\n\t\tif (this.layout.text === null)\n\t\t{\n\t\t\tthis.layout.text = Tag.render`\n\t\t\t\t<div class=\"ui-tour-popup-text\"></div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.text;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetLink()\n\t{\n\t\tif (!this.layout.link)\n\t\t{\n\t\t\tthis.layout.link = Tag.render`\n\t\t\t\t<a target=\"_blank\" href=\"\" class=\"ui-tour-popup-link\">\n\t\t\t\t\t${Loc.getMessage(\"JS_UI_TOUR_LINK\")}\n\t\t\t\t</a>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.link;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetCurrentCounter()\n\t{\n\t\tif (this.layout.currentCounter === null)\n\t\t{\n\t\t\tthis.layout.currentCounter = Tag.render`\n\t\t\t\t<span class=\"ui-tour-popup-counter\">\n\t\t\t\t\t${Loc.getMessage(\"JS_UI_TOUR_STEP_INDEX_TEXT\")\n\t\t\t\t\t\t.replace('#NUMBER#', this.currentStepIndex + 1)\n\t\t\t\t\t\t.replace('#NUMBER_TOTAL#', this.steps.length)}\n\t\t\t\t</span>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.currentCounter;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tgetBtnContainer()\n\t{\n\t\tif (this.layout.btnContainer === null)\n\t\t{\n\t\t\tthis.layout.btnContainer = Tag.render`\n\t\t\t\t<div class=\"ui-tour-popup-btn-block\"></div>\n\t\t\t`;\n\n\t\t\tthis.layout.nextBtn = Tag.render`\n\t\t\t\t<button id=\"next\" class=\"ui-tour-popup-btn-next\">\n\t\t\t\t\t${this.simpleMode ? Loc.getMessage(\"JS_UI_TOUR_BUTTON_SIMPLE\") : Loc.getMessage(\"JS_UI_TOUR_BUTTON\")}\n\t\t\t\t</button>\n\t\t\t`;\n\n\n\t\t\tthis.layout.backBtn = Tag.render`\n\t\t\t\t<button id=\"back\" class=\"ui-tour-popup-btn-back\">\n\t\t\t\t</button>\n\t\t\t`;\n\n\t\t\tDom.append(this.layout.backBtn, this.layout.btnContainer);\n\t\t\tDom.append(this.layout.nextBtn, this.layout.btnContainer);\n\n\t\t\tEvent.bind(this.layout.nextBtn, \"click\", this.handleClickOnNextBtn.bind(this));\n\t\t\tEvent.bind(this.layout.backBtn, \"click\", this.handleClickOnBackBtn.bind(this));\n\n\t\t}\n\n\t\treturn this.layout.btnContainer;\n\t}\n\n\tgetCounterItems()\n\t{\n\t\tif (this.layout.counter === null)\n\t\t{\n\t\t\tthis.layout.counter = Tag.render`\n\t\t\t\t<span class=\"ui-tour-popup-index-items\">\n\t\t\t\t</span>\n\t\t\t`;\n\t\t}\n\n\t\tthis.layout.counterItems = [];\n\n\t\tfor (let i = 0; i < this.steps.length; i++)\n\t\t{\n\t\t\tconst currentStepIndex = Tag.render`\n\t\t\t\t<span class=\"ui-tour-popup-index-item\">\n\t\t\t\t</span>\n\t\t\t`;\n\n\t\t\tthis.layout.counterItems.push(currentStepIndex);\n\t\t\tDom.append(currentStepIndex, this.layout.counter);\n\t\t}\n\n\t\treturn this.layout.counter;\n\t}\n\n\t/**\n\t * @returns {Step}\n\t */\n\tgetCurrentStep()\n\t{\n\t\treturn this.steps[this.currentStepIndex];\n\t}\n\n\t/**\n\t * @returns {Step}\n\t */\n\tgetPreviousStep()\n\t{\n\t\tif (this.steps[this.currentStepIndex - 1])\n\t\t{\n\t\t\treturn this.steps[this.currentStepIndex - 1];\n\t\t}\n\t}\n\n\thandleClickOnNextBtn()\n\t{\n\t\tDom.addClass(this.layout.element, \"ui-tour-overlay-element-opacity\");\n\t\tDom.addClass(this.popup.getPopupContainer(), \"popup-window-ui-tour-opacity\");\n\n\t\tthis.clickOnBackBtn = false;\n\t\tif (this.getCurrentStep())\n\t\t{\n\t\t\tthis.closeStep();\n\t\t}\n\n\t\tthis.increaseCurrentStepIndex();\n\n\t\tif (this.getCurrentStep() && this.getCurrentStep().getTarget())\n\t\t{\n\t\t\tDom.addClass(this.getCurrentStep().getTarget(), 'ui-tour-selector');\n\t\t}\n\n\t\tif (this.currentStepIndex === this.steps.length)\n\t\t{\n\t\t\tif (this.finalStep)\n\t\t\t{\n\t\t\t\tthis.setFinalStep()\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.showStep();\n\t\t\t}, 200);\n\n\t\t\tif (Dom.hasClass(this.layout.backBtn, 'ui-tour-popup-btn-hidden'))\n\t\t\t{\n\t\t\t\tDom.removeClass(this.layout.backBtn, 'ui-tour-popup-btn-hidden');\n\t\t\t}\n\t\t}\n\n\t}\n\n\thandleClickOnBackBtn()\n\t{\n\t\tDom.addClass(this.layout.element, \"ui-tour-overlay-element-opacity\");\n\t\tDom.addClass(this.popup.getPopupContainer(), \"popup-window-ui-tour-opacity\");\n\n\t\tthis.closeStep();\n\t\tthis.reduceCurrentStepIndex();\n\n\t\tif (this.currentStepIndex === 0)\n\t\t{\n\t\t\tDom.addClass(this.layout.backBtn, 'ui-tour-popup-btn-hidden');\n\t\t}\n\n\t\tthis.clickOnBackBtn = true;\n\t\tsetTimeout(() => {\n\t\t\tthis.layout.backBtn.style.display = \"none\";\n\t\t\tthis.showStep();\n\t\t}, 200);\n\n\t\tif (this.getCurrentStep().getTarget())\n\t\t{\n\t\t\tDom.addClass(this.getCurrentStep().getTarget(), 'ui-tour-selector');\n\t\t}\n\t}\n\n\tsetFinalStep()\n\t{\n\t\tthis.layout.element.style.display = \"none\";\n\t\tthis.getPopup().destroy();\n\n\t\tconst finalPopup = this.getFinalPopup();\n\t\tfinalPopup.show();\n\t\tDom.addClass(finalPopup.getPopupContainer(), \"popup-window-ui-tour-final-show\");\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetFinalPopup()\n\t{\n\t\tthis.popup = new Popup({\n\t\t\tcontent: this.getFinalContent(),\n\t\t\tclassName: 'popup-window-ui-tour-final',\n\t\t\toffsetTop: this.onEvents ? 0 : 15,\n\t\t\toffsetLeft: 35,\n\t\t\tmaxWidth: 430,\n\t\t\tminWidth: 300\n\t\t});\n\n\t\treturn this.popup;\n\t}\n\n\tgetFinalContent()\n\t{\n\t\tif (!this.layout.finalContent)\n\t\t{\n\t\t\tthis.layout.finalContent = Tag.render`\n\t\t\t\t<div class=\"ui-tour-popup\">\n\t\t\t\t\t<div class=\"ui-tour-popup-title\">\n\t\t\t\t\t\t${this.finalTitle}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-tour-popup-content\">\n\t\t\t\t\t\t<div class=\"ui-tour-popup-text\">\n\t\t\t\t\t\t\t${this.finalText}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-tour-popup-footer-btn\">\n\t\t\t\t\t\t${this.getFinalBtn()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.finalContent;\n\t}\n\n\tgetFinalBtn()\n\t{\n\t\tconst buttons = [];\n\n\t\tif (this.buttons !== \"\")\n\t\t{\n\t\t\tfor (let i = 0; i < this.buttons.length; i++)\n\t\t\t{\n\t\t\t\tlet btn = Tag.render`\n\t\t\t\t\t<button class=\"${this.buttons[i].class}\" onclick=\"${this.buttons[i].events.click}\">\n\t\t\t\t\t${this.buttons[i].text}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\n\t\t\t\tbuttons.push(btn);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlet btn = Tag.render`\n\t\t\t\t<button class=\"ui-btn ui-btn-sm ui-btn-primary ui-btn-round\" onclick=\"${this.close.bind(this)}\">\n\t\t\t\t${Loc.getMessage(\"JS_UI_TOUR_BUTTON_CLOSE\")}\n\t\t\t\t</button>\n\t\t\t`;\n\n\t\t\tbuttons.push(btn);\n\t\t}\n\n\t\treturn buttons;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tisTargetVisible(node)\n\t{\n\t\treturn (\n\t\t\tnode.top >= 0 &&\n\t\t\tnode.left >= 0 &&\n\t\t\tnode.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n\t\t\tnode.right <= (window.innerWidth || document.documentElement.clientWidth)\n\t\t);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tscrollToTarget(target)\n\t{\n\t\twindow.scrollTo(0, target.y - this.getAreaPadding());\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic getFullEventName(shortName)\n\t{\n\t\treturn \"UI.Tour.Guide:\" + shortName;\n\t}\n\n\tshowCursor()\n\t{\n\t\tthis.setCursorPos();\n\n\t\tsetTimeout(() => {\n\t\t\tthis.animateCursor();\n\t\t}, 1000);\n\t}\n\n\tgetCursor()\n\t{\n\t\tif (!this.layout.cursor)\n\t\t{\n\t\t\tthis.layout.cursor = Tag.render`\n\t\t\t\t<div class=\"ui-tour-cursor\"></div>\n\t\t\t`;\n\t\t\tEvent.bind(this.layout.cursor, 'transitionend', () => {\n\t\t\t\tthis.getCurrentStep().initTargetEvent();\n\t\t\t});\n\t\t\tDom.append(this.layout.cursor, document.body);\n\t\t}\n\n\t\treturn this.layout.cursor;\n\t}\n\n\tsetCursorPos()\n\t{\n\t\tconst targetPos = this.getCurrentStep().getTargetPos();\n\n\t\tlet left = targetPos.left + targetPos.width / 2;\n\n\t\tif (left < 0)\n\t\t{\n\t\t\tleft = 0;\n\t\t}\n\n\t\tthis.cursorPaddingTop = 30;\n\t\tlet top = targetPos.bottom + this.cursorPaddingTop;\n\n\t\tif (top < 0)\n\t\t{\n\t\t\ttop = 0;\n\t\t}\n\n\t\tDom.adjust(this.getCursor(), {\n\t\t\tstyle: {\n\t\t\t\ttop: top + 'px',\n\t\t\t\tleft: left + 'px'\n\t\t\t}\n\t\t});\n\n\t}\n\n\tanimateCursor()\n\t{\n\t\tconst adjustment = this.cursorPaddingTop + this.getCurrentStep().getTargetPos().height / 2;\n\t\tthis.layout.cursor.style.transform = 'translateY(-' + adjustment + 'px)';\n\t}\n}\n","import { Type} from 'main.core';\nimport { Guide } from './guide.js';\n\nclass Manager {\n\n\tconstructor()\n\t{\n\t\tthis.guides = new Map();\n\t\tthis.autoStartQueue = [];\n\t\tthis.currentGuide = null;\n\t}\n\n\tcreate(options)\n\t{\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\n\t\tconst id = options.id;\n\t\tif (!Type.isString(id) && id !== '')\n\t\t{\n\t\t\tthrow new Error(\"'id' parameter is required.\")\n\t\t}\n\n\t\tif (this.get(id))\n\t\t{\n\t\t\tthrow new Error(\"The tour instance with the same 'id' already exists.\");\n\t\t}\n\n\t\tconst guide = new Guide(options);\n\t\tthis.guides.set(guide, true);\n\n\t\treturn guide;\n\t}\n\n\tadd(options)\n\t{\n\t\tconst guide = this.create(options);\n\n\t\tguide.subscribe(\"UI.Tour.Guide:onFinish\", () => {\n\t\t\tthis.handleTourFinish(guide);\n\t\t});\n\n\t\tif (!this.currentGuide)\n\t\t{\n\t\t\tthis.currentGuide = guide;\n\t\t\tguide.start();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.autoStartQueue.push(guide);\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} id\n\t * @returns {Guide|null}\n\t */\n\tget(id)\n\t{\n\t\treturn this.guides.get(id);\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} id\n\t */\n\tremove(id)\n\t{\n\t\tthis.guides.delete(id);\n\t}\n\n\t/**\n\t * @public\n\t * @returns {Guide|null}\n\t */\n\tgetCurrentGuide()\n\t{\n\t\treturn this.currentGuide;\n\t}\n\n\t/**\n\t * @private\n\t * @param {Guide} guide\n\t */\n\thandleTourFinish(guide)\n\t{\n\t\tthis.currentGuide = null;\n\t\tthis.remove(guide.getId());\n\n\t\tconst autoStartGuide = this.autoStartQueue.shift();\n\t\tif (autoStartGuide)\n\t\t{\n\t\t\tthis.currentGuide = autoStartGuide;\n\t\t\tautoStartGuide.start();\n\t\t}\n\t}\n}\n\nexport default new Manager();"],"names":["Step","options","target","Type","isString","isFunction","isDomNode","id","text","areaPadding","link","rounded","title","article","position","cursorMode","targetEvent","buttons","condition","events","isPlainObject","eventName","callback","Reflection","getClass","subscribe","constructor","getFullEventName","document","querySelector","Dom","getPosition","getTarget","dispatchEvent","MouseEvent","shortName","Event","EventEmitter","GuideConditionColor","Guide","steps","Array","isArray","forEach","step","push","length","Error","Text","getRandom","setId","autoSave","popup","layout","overlay","element","btnContainer","nextBtn","backBtn","content","finalContent","counter","currentCounter","counterItems","onEvents","currentStepIndex","targetPos","clickOnBackBtn","helper","top","BX","Helper","finalStep","finalText","finalTitle","simpleMode","setAutoSave","cb","bind","window","handleResizeWindow","mode","isBoolean","optionName","getId","userOptions","save","Math","floor","Date","now","send","emit","guide","getAutoSave","setOverlay","getPopup","show","getPopupContainer","removeClass","showStep","addClass","getCurrentStep","closeStep","destroy","cursor","remove","increaseCurrentStepIndex","body","classList","adjustEvents","setTimeout","style","display","setOverlayElementForm","setCoords","setPopupData","getCursorMode","showCursor","currentStep","close","clickEvent","e","isTrusted","unbind","getBoundingClientRect","targetPosWindow","isTargetVisible","scrollToTarget","setBindElement","setOffset","offsetLeft","offsetTop","setAngle","adjustPosition","angleOffset","anglePosition","bindOptions","forceTop","forceLeft","forceBindPosition","popupWidth","offsetWidth","clientWidth","documentElement","width","height","getAreaPadding","left","right","getRounded","getAttribute","bindElement","offset","Tag","render","append","node","setAttribute","padding","textContent","Loc","getMessage","className","getCondition","toLowerCase","isObject","color","getButtons","item","PopupWindowButton","click","event","Popup","getContent","autoHide","closeIcon","noAllPaddings","onPopupClose","destroyed","conditionNodeTop","conditionNodeBottom","getContentContainer","bottom","linkNode","getLink","getArticle","getTitle","getText","getCounterItems","getCurrentCounter","getBtnContainer","unbindAll","innerHTML","handleClickLink","replace","i","setPopupPosition","preventDefault","onEvent","isOpen","setAutoHide","getSlider","handleClickOnNextBtn","handleClickOnBackBtn","setFinalStep","hasClass","reduceCurrentStepIndex","finalPopup","getFinalPopup","getFinalContent","maxWidth","minWidth","getFinalBtn","btn","innerHeight","clientHeight","innerWidth","scrollTo","y","setCursorPos","animateCursor","initTargetEvent","getTargetPos","cursorPaddingTop","adjust","getCursor","adjustment","transform","Manager","guides","Map","autoStartQueue","currentGuide","get","set","create","handleTourFinish","start","autoStartGuide","shift"],"mappings":"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"}