Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/tour/dist/ |
Upload File : |
{"version":3,"file":"tour.bundle.js","sources":["../src/guide-condition-color.js","../src/step.js","../src/guide.js","../src/manager.js"],"sourcesContent":["/**\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\tstatic COPILOT = '--condition-copilot';\n}\n","import { Dom, Event, Reflection, Type } 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\t|| Type.isFunction(options.target)\n\t\t\t|| Type.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.linkTitle = options.linkTitle || null;\n\t\tthis.rounded = options.rounded || false;\n\t\tthis.title = options.title || null;\n\t\tthis.iconSrc = options.iconSrc || null;\n\t\tthis.article = options.article || null;\n\t\tthis.articleAnchor = options.articleAnchor || null;\n\t\tthis.infoHelperCode = options.infoHelperCode || 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 (const 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\tgetLinkTitle(): ?string\n\t{\n\t\treturn this.linkTitle;\n\t}\n\n\tgetTitle()\n\t{\n\t\treturn this.title;\n\t}\n\n\tgetIconSrc(): ?string\n\t{\n\t\treturn this.iconSrc;\n\t}\n\n\tgetPosition()\n\t{\n\t\treturn this.position;\n\t}\n\n\tgetArticle(): string\n\t{\n\t\treturn this.article;\n\t}\n\n\tgetArticleAnchor(): string\n\t{\n\t\treturn this.articleAnchor;\n\t}\n\n\tgetInfoHelperCode(): ?string\n\t{\n\t\treturn this.infoHelperCode;\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\n\t\t\treturn;\n\t\t}\n\n\t\tthis.getTarget().dispatchEvent(new MouseEvent(this.targetEvent));\n\t}\n}\n","import { Dom, Event, Loc, Reflection, Tag, Text, Type, userOptions } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Popup, PopupWindowButton } from 'main.popup';\n\nimport 'ui.design-tokens';\nimport GuideConditionColor from './guide-condition-color';\nimport { Step } from './step.js';\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\tcloseIcon: { right : '0', top : '0' },\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\t\tthis.targetContainer = Type.isDomNode(options.targetContainer) ? options.targetContainer : null;\n\t\tthis.overlay = Type.isBoolean(options.overlay) ? options.overlay : true;\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\tif (this.overlay)\n\t\t{\n\t\t\tthis.setOverlay();\n\t\t}\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}, 200);\n\t\t}\n\n\t\tif (this.overlay)\n\t\t{\n\t\t\tthis.setOverlayElementForm();\n\t\t}\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 targetPosWindow = Dom.getPosition(currentStep.getTarget());\n\t\t\tif (!this.isTargetVisible(targetPosWindow))\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\tif (this.targetContainer)\n\t\t{\n\t\t\tDom.append(this.layout.overlay, this.targetContainer);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.append(this.layout.overlay, document.body);\n\t\t}\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\ttargetContainer: this.targetContainer,\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,\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 iconNode = '';\n\t\t\tif (this.getCurrentStep().getIconSrc())\n\t\t\t{\n\t\t\t\ticonNode = Tag.render`\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"ui-tour-popup-icon\"\n\t\t\t\t\t\tstyle=\"background-image: url(${encodeURI(this.getCurrentStep().getIconSrc())});\"\n\t\t\t\t\t></div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\tlet linkNode = '';\n\t\t\tif (\n\t\t\t\tthis.steps.some((step): Step => step.getLink())\n\t\t\t\t|| this.steps.some((step): Step => step.getArticle())\n\t\t\t\t|| this.steps.some((step): Step => step.getInfoHelperCode())\n\t\t\t)\n\t\t\t{\n\t\t\t\tlinkNode = this.getLink();\n\t\t\t}\n\n\t\t\tthis.layout.content = Tag.render`\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ui-tour-popup ${this.simpleMode ? 'ui-tour-popup-simple' : ''} ${this.onEvents ? 'ui-tour-popup-events' : ''}\"\n\t\t\t\t\tstyle=\"${iconNode ? 'padding-left: 13px;' : ''};\"\n\t\t\t\t>\n\t\t\t\t\t${iconNode}\n\t\t\t\t\t<div>\n\t\t\t\t\t\t${this.getTitle()}\n\t\t\t\t\t\t<div class=\"ui-tour-popup-content\">\n\t\t\t\t\t\t\t${this.getText()}\n\t\t\t\t\t\t\t${linkNode}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t${linkNode}\n\t\t\t\t\t\t<div class=\"ui-tour-popup-footer\">\n\t\t\t\t\t\t\t<div class=\"ui-tour-popup-index\">\n\t\t\t\t\t\t\t\t${this.onEvents ? '' : this.getCounterItems()}\n\t\t\t\t\t\t\t\t${this.onEvents ? '' : this.getCurrentCounter()}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t${this.onEvents ? '' : this.getBtnContainer()}\n\t\t\t\t\t\t</div>\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 (\n\t\t\tthis.getCurrentStep().getArticle()\n\t\t\t|| this.getCurrentStep().getLink()\n\t\t\t|| this.getCurrentStep().getInfoHelperCode()\n\t\t)\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\t\t\telse if (this.getCurrentStep().getInfoHelperCode())\n\t\t\t{\n\t\t\t\tEvent.bind(this.layout.link, 'click', this.handleInfoHelperCodeClickLink.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\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\tconst article = this.getCurrentStep().getArticle();\n\t\tconst anchor = this.getCurrentStep().getArticleAnchor();\n\n\t\t// eslint-disable-next-line sonarjs/no-nested-template-literals\n\t\tconst url = `redirect=detail&code=${article}${anchor ? `&anchor=${anchor}` : ''}`;\n\n\t\tthis.helper.show(url);\n\n\t\tif (this.helper.isOpen())\n\t\t{\n\t\t\tthis.getPopup().setAutoHide(false);\n\t\t}\n\n\t\tEventEmitter.subscribe(this.helper.getSlider(), 'SidePanel.Slider:onCloseComplete', () => {\n\t\t\tthis.getPopup().setAutoHide(true);\n\t\t});\n\t}\n\n\thandleInfoHelperCodeClickLink(): void\n\t{\n\t\tevent.preventDefault();\n\n\t\tif (Reflection.getClass('BX.UI.InfoHelper.show'))\n\t\t{\n\t\t\tconst helper = top.BX.UI.InfoHelper;\n\t\t\thelper.show(this.getCurrentStep().getInfoHelperCode());\n\n\t\t\tif (helper.isOpen())\n\t\t\t{\n\t\t\t\tthis.getPopup().setAutoHide(false);\n\t\t\t}\n\n\t\t\tEventEmitter.subscribe(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\tconst title = this.steps[this.currentStepIndex].getLinkTitle() ?? Loc.getMessage('JS_UI_TOUR_LINK');\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${title}\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 --final\">\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.autoStartQueue.push(guide);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.currentGuide = guide;\n\t\t\tguide.start();\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();\n"],"names":["GuideConditionColor","WARNING","ALERT","PRIMARY","COPILOT","Step","Event","EventEmitter","constructor","options","target","Type","isString","isFunction","isDomNode","id","text","areaPadding","link","linkTitle","rounded","title","iconSrc","article","articleAnchor","infoHelperCode","position","cursorMode","targetEvent","buttons","condition","events","isPlainObject","eventName","callback","Reflection","getClass","subscribe","getFullEventName","getCondition","getTarget","document","querySelector","getTargetPos","Dom","getPosition","getId","getButtons","getAreaPadding","getRounded","getText","getLink","getLinkTitle","getTitle","getIconSrc","getArticle","getArticleAnchor","getInfoHelperCode","getCursorMode","getTargetEvent","shortName","setTarget","initTargetEvent","dispatchEvent","MouseEvent","Guide","steps","Array","isArray","forEach","step","push","length","Error","Text","getRandom","setId","autoSave","popup","layout","overlay","element","closeIcon","right","top","btnContainer","nextBtn","backBtn","content","finalContent","counter","currentCounter","counterItems","onEvents","currentStepIndex","targetPos","clickOnBackBtn","helper","BX","Helper","targetContainer","isBoolean","finalStep","finalText","finalTitle","simpleMode","setAutoSave","cb","bind","window","handleResizeWindow","getAutoSave","mode","save","optionName","userOptions","Math","floor","Date","now","send","start","emit","guide","setOverlay","getPopup","show","getPopupContainer","removeClass","showStep","addClass","getCurrentStep","close","closeStep","destroy","cursor","remove","increaseCurrentStepIndex","body","classList","adjustEvents","setTimeout","style","display","setOverlayElementForm","setCoords","setPopupData","showNextStep","showCursor","currentStep","clickEvent","e","isTrusted","unbind","targetPosWindow","isTargetVisible","scrollToTarget","setPopupPosition","setBindElement","setOffset","offsetLeft","offsetTop","setAngle","adjustPosition","angleOffset","anglePosition","bindOptions","forceTop","forceLeft","forceBindPosition","popupWidth","offsetWidth","clientWidth","documentElement","width","height","left","getAttribute","bindElement","offset","Tag","render","append","node","getBoundingClientRect","setAttribute","padding","textContent","Loc","getMessage","reduceCurrentStepIndex","className","toLowerCase","isObject","color","item","PopupWindowButton","click","event","Popup","getContent","autoHide","noAllPaddings","onPopupClose","destroyed","conditionNodeTop","conditionNodeBottom","getContentContainer","bottom","iconNode","encodeURI","linkNode","some","getCounterItems","getCurrentCounter","getBtnContainer","unbindAll","innerHTML","handleClickLink","handleInfoHelperCodeClickLink","replace","i","preventDefault","anchor","url","isOpen","setAutoHide","getSlider","UI","InfoHelper","handleClickOnNextBtn","handleClickOnBackBtn","getPreviousStep","setFinalStep","hasClass","finalPopup","getFinalPopup","getFinalContent","maxWidth","minWidth","getFinalBtn","btn","class","innerHeight","clientHeight","innerWidth","scrollTo","y","setCursorPos","animateCursor","getCursor","cursorPaddingTop","adjust","adjustment","transform","ConditionColor","Manager","guides","Map","autoStartQueue","currentGuide","create","get","set","add","handleTourFinish","delete","getCurrentGuide","autoStartGuide","shift"],"mappings":"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"}