| Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/tutor/dist/ |
| Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/tutor/dist/tutor.bundle.js.map |
{"version":3,"file":"tutor.bundle.js","sources":["../src/step.js","../src/manager.js","../src/scenario.js"],"sourcesContent":["import { Type, Event } from 'main.core';\n\nexport class Step extends Event.EventEmitter\n{\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.UI.Tutor.Step');\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\n\t\tthis.id = options.id || null;\n\t\tthis.title = options.title || null;\n\t\tthis.description = options.description || null;\n\t\tthis.url = options.url || '';\n\t\tthis.isCompleted = options.isCompleted || false;\n\t\tthis.video = options.video || null;\n\t\tthis.helpLink = options.helpLink || null;\n\t\tthis.highlight = options.highlight || null;\n\t\tthis.isActive = options.isActive === true;\n\t\tthis.isShownForSlider = options.isShownForSlider || false;\n\t\tthis.initOptions = options;\n\n\t\tthis.videoObj = null;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {string}\n\t */\n\tgetTitle()\n\t{\n\t\treturn this.title;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {Object}\n\t */\n\tgetVideoObj()\n\t{\n\t\treturn this.videoObj;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetHighlightOptions()\n\t{\n\t\treturn this.highlight;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {string}\n\t */\n\tgetDescription()\n\t{\n\t\treturn this.description;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {string}\n\t */\n\tgetUrl()\n\t{\n\t\treturn this.url;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {Boolean}\n\t */\n\tgetCompleted()\n\t{\n\t\treturn this.isCompleted;\n\t}\n\n\tgetVideo()\n\t{\n\t\treturn this.video;\n\t}\n\n\tgetHelpLink()\n\t{\n\t\treturn this.helpLink;\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\t/**\n\t * @public\n\t * @returns {Object}\n\t */\n\tgetInitOptions()\n\t{\n\t\treturn this.initOptions;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tactivate()\n\t{\n\t\tthis.isActive = true;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetShownForSlider()\n\t{\n\t\treturn this.isShownForSlider;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tdeactivate()\n\t{\n\t\tthis.isActive = false;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic getFullEventName(shortName)\n\t{\n\t\treturn shortName;\n\t}\n}","import { Dom, Event, Tag, Loc, Type } from 'main.core';\nimport { Scenario } from './scenario';\nimport { Step } from './step';\nimport { Guide } from 'ui.tour';\nimport { Loader } from \"main.loader\";\nimport 'ui.feedback.form';\n\nexport class Manager extends Event.EventEmitter\n{\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.UI.Tutor.Manager');\n\t}\n\n\tsetOptions(options, domain, feedbackFormId)\n\t{\n\t\toptions = options || {};\n\n\t\tthis.tutorialData = options.tutorialData || {};\n\t\tthis.eventService = options.eventService || {};\n\t\tthis.lastCheckTime = options.lastCheckTime || 0;\n\t\tthis.domain = options.domain || '';\n\t\tthis.feedbackFormId = options.feedbackFormId || '';\n\t\tif(Type.isString(domain) && domain.length > 0)\n\t\t{\n\t\t\tthis.domain = domain;\n\t\t}\n\t\tif(Type.isString(feedbackFormId) && feedbackFormId.length > 0)\n\t\t{\n\t\t\tthis.feedbackFormId = feedbackFormId;\n\t\t}\n\t}\n\n\tshowFeedbackForm()\n\t{\n\t\tif (this.feedbackFormId)\n\t\t{\n\t\t\tthis.feedBackForm = BX.UI.Feedback.Form.getById(this.feedbackFormId);\n\t\t\tif (this.feedBackForm)\n\t\t\t{\n\t\t\t\tthis.feedBackForm.openPanel();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetDomain()\n\t{\n\t\treturn this.domain;\n\t}\n\n\tgetCurrentTutorialData()\n\t{\n\t\treturn this.tutorialData;\n\t}\n\n\tgetCurrentEventService()\n\t{\n\t\treturn this.eventService;\n\t}\n\n\tgetCurrentLastCheckTime()\n\t{\n\t\treturn this.lastCheckTime;\n\t}\n\n\t/**\n\t * @return {Manager}\n\t */\n\tstatic getInstance()\n\t{\n\t\treturn this.instance;\n\t}\n\n\t/**\n\t * @return {Scenario}\n\t */\n\tstatic getScenarioInstance()\n\t{\n\t\treturn this.scenarioInstance;\n\t}\n\n\tstatic init(options, domain, feedbackFormId)\n\t{\n\t\tlet instance = this.getInstance();\n\t\tif (!(instance instanceof Manager))\n\t\t{\n\t\t\tthis.instance = new Manager();\n\t\t\tinstance = this.getInstance();\n\t\t\tthis.emit('onInitManager');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tinstance = this.getInstance();\n\t\t}\n\t\tinstance.setOptions(options, domain, feedbackFormId);\n\n\t\treturn instance;\n\t}\n\n\tstatic initScenario(options)\n\t{\n\t\tlet instance = this.getScenarioInstance();\n\t\tif (!(instance instanceof Scenario))\n\t\t{\n\t\t\tthis.scenarioInstance = new Scenario();\n\t\t\tinstance = this.getScenarioInstance();\n\t\t\tthis.emit('onInitScenario');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tinstance = this.getScenarioInstance();\n\t\t}\n\t\tinstance.setOptions(options);\n\n\t\treturn instance;\n\t}\n\n\tstatic showButton(animation)\n\t{\n\t\treturn this.getImButton(animation);\n\t}\n\n\tstatic getRootImButton()\n\t{\n\t\treturn document.getElementById('ui-tutor-btn-wrap');\n\t}\n\n\tstatic hasImButton()\n\t{\n\t\treturn !!this.getRootImButton();\n\t}\n\n\tstatic getImButton(animation)\n\t{\n\t\tif(!this.layout.imButton)\n\t\t{\n\t\t\tlet buttonWrapper = this.getRootImButton();\n\t\t\tif(buttonWrapper)\n\t\t\t{\n\t\t\t\tlet buttonInner = Tag.render`\n\t\t\t\t\t<div class=\"ui-tutor-btn\"></div>\n\t\t\t\t`;\n\t\t\t\tif (animation)\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(buttonWrapper, 'ui-tutor-btn-wrap-animate');\n\t\t\t\t}\n\t\t\t\tDom.append(buttonInner, buttonWrapper);\n\t\t\t\tDom.addClass(buttonWrapper, 'ui-tutor-btn-wrap-show');\n\t\t\t\tthis.layout.imButton = buttonWrapper;\n\t\t\t\tEvent.bind(this.layout.imButton, \"click\", () => {\n\t\t\t\t\tthis.emit('clickImButton');\n\t\t\t\t});\n\n\t\t\t\tlet usersPanel = document.querySelector('.bx-im-users-wrap');\n\t\t\t\tif (document.querySelector('#bx-im-btn-call'))\n\t\t\t\t{\n\t\t\t\t\tusersPanel.style.bottom = '175px';\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tusersPanel.style.bottom = '120px';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.layout.imButton;\n\t}\n\n\tstatic showSmallPopup(text)\n\t{\n\t\tthis.smallPopupText = text;\n\t\tthis.getSmallPopup().style.display = 'block';\n\t\tthis.smallPopupText = '';\n\n\t\tif (Dom.hasClass(this.getSmallPopup(), 'ui-tutor-popup-welcome-hide'))\n\t\t{\n\t\t\tDom.removeClass(this.getSmallPopup(), 'ui-tutor-popup-welcome-hide');\n\t\t}\n\t}\n\n\tstatic hideSmallPopup(skipAnimation)\n\t{\n\t\tskipAnimation = skipAnimation === true;\n\t\tconst removeHandler = function() {\n\t\t\tDom.remove(this.getSmallPopup());\n\t\t\tif(this.hasOwnProperty('smallPopup'))\n\t\t\t{\n\t\t\t\tdelete this.smallPopup;\n\t\t\t}\n\t\t\tthis.emit('onCompleteHideSmallPopup');\n\t\t}.bind(this);\n\t\tDom.removeClass(this.getSmallPopup(), 'ui-tutor-popup-welcome-show');\n\t\tDom.addClass(this.getSmallPopup(), 'ui-tutor-popup-welcome-hide');\n\t\tif(skipAnimation)\n\t\t{\n\t\t\tremoveHandler();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsetTimeout(removeHandler, 300);\n\t\t}\n\t}\n\n\tstatic showWelcomePopup(text)\n\t{\n\t\tthis.emit('onShowWelcomePopup');\n\t\tthis.showSmallPopup(text);\n\t}\n\n\tstatic hideWelcomePopup()\n\t{\n\t\tthis.emit('onBeforeHideWelcomePopup');\n\t\tthis.hideSmallPopup();\n\t\tthis.emit('onAfterHideWelcomePopup');\n\t}\n\n\tstatic showNoticePopup(text)\n\t{\n\t\tthis.emit('onShowNoticePopup');\n\t\tthis.showSmallPopup(text);\n\t}\n\n\tstatic hideNoticePopup()\n\t{\n\t\tthis.emit('onBeforeHideNoticePopup');\n\t\tthis.hideSmallPopup();\n\t\tthis.emit('onAfterHideNoticePopup');\n\t}\n\n\tstatic getSmallPopup()\n\t{\n\t\tconst clickSmallPopupHandler = () => {\n\t\t\tthis.emit('onClickSmallPopupBtn');\n\t\t};\n\t\tif (!this.smallPopup)\n\t\t{\n\t\t\tthis.smallPopup =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup\" onclick=\"${clickSmallPopupHandler.bind(this)}\">\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-header\">\n\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-icon\"></span>\n\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-title-wrap\">\n\t\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-title\">${Loc.getMessage('JS_UI_TUTOR_TITLE')}</span> \n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-content\">\n\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-text\">${this.smallPopupText}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-icon-angle\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\tthis.emit('onCreateSmallPopupNode');\n\t\t\tDom.addClass(this.smallPopup, 'ui-tutor-popup-welcome-show');\n\t\t\tthis.emit('onBeforeAppendSmallPopupNode');\n\t\t\tDom.append(this.smallPopup, document.body);\n\t\t\tthis.emit('onAfterAppendSmallPopupNode');\n\t\t}\n\n\t\treturn this.smallPopup;\n\t}\n\n\tstatic showStartPopup(title, text)\n\t{\n\t\tthis.emit('onShowStartPopup');\n\t\tthis.startTitle = title;\n\t\tthis.startText = text;\n\t\tDom.addClass(this.getStartPopup(), 'ui-tutor-popup-show');\n\t\tthis.startPopup.style.display = 'flex';\n\t\tthis.startTitle = '';\n\t\tthis.startText = '';\n\t};\n\n\tstatic closeStartPopup()\n\t{\n\t\tDom.remove(this.getStartPopup());\n\t\tdelete this.startPopup;\n\t}\n\n\tstatic getStartPopup()\n\t{\n\t\tif (!this.startPopup)\n\t\t{\n\t\t\tthis.startPopup =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup ui-tutor-popup-start\">\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-header\">\n\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-icon\"></span>\n\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-title-wrap\">\n\t\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-title\">${Loc.getMessage('JS_UI_TUTOR_TITLE')}</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-content\">\n\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-title\">${this.startTitle}</div>\n\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-text\">${this.startText}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-footer\">\n\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-btn\">\n\t\t\t\t\t\t\t\t${this.getBeginBtn()}\n\t\t\t\t\t\t\t\t${this.getDeferBtn()}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-icon-angle\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\tthis.emit('onCreateStartPopupNode');\n\t\t\tDom.append(this.startPopup, document.body);\n\t\t\tthis.emit('onAfterAppendStartPopupNode');\n\t\t}\n\n\t\treturn this.startPopup;\n\t}\n\n\tstatic getBeginBtn()\n\t{\n\t\tif (!this.beginBtn)\n\t\t{\n\t\t\tthis.beginBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-primary ui-btn-round\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_BEGIN')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\n\t\t\tEvent.bind(this.beginBtn, \"click\", ()=> {\n\t\t\t\tthis.emit('clickBeginBtn');\n\t\t\t});\n\t\t}\n\n\t\treturn this.beginBtn;\n\t}\n\n\tstatic getDeferBtn()\n\t{\n\t\tif (!this.deferBtn)\n\t\t{\n\t\t\tthis.deferBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-link\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_CLOSE_POPUP_BTN')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\n\t\t\tEvent.bind(this.deferBtn, \"click\", () => {\n\t\t\t\tthis.emit('clickDeferBtn');\n\t\t\t});\n\t\t}\n\n\t\treturn this.deferBtn;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic getFullEventName(shortName)\n\t{\n\t\treturn shortName;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tstatic getInformer()\n\t{\n\t\tif (!this.informer)\n\t\t{\n\t\t\tthis.informer =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-informer\" id=\"ui-tutor-informer\"></div>\n\t\t\t\t`;\n\t\t\tlet informerParentNode = this.getImButton();\n\t\t\tif(this.isCollapsedShow)\n\t\t\t{\n\t\t\t\tinformerParentNode = this.getCollapseBlock();\n\t\t\t}\n\t\t\tif(informerParentNode)\n\t\t\t{\n\t\t\t\tDom.append(this.informer, informerParentNode);\n\t\t\t}\n\t\t}\n\n\t\treturn this.informer;\n\t}\n\n\tstatic setCount(num)\n\t{\n\t\tthis.emit('onBeforeSetCount');\n\t\tif (num < 1)\n\t\t{\n\t\t\tthis.removeInformer();\n\t\t\tdelete this.informer;\n\t\t\tthis.isInformerShow = false;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getInformer().textContent = num;\n\t\t\tthis.isInformerShow = true;\n\t\t}\n\t\tthis.emit('onAfterSetCount');\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic removeInformer()\n\t{\n\t\tif(this.isInformerShow)\n\t\t{\n\t\t\tDom.remove(this.getInformer());\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tstatic showCollapsedBlock(step, withGuide, showAfterAnimation)\n\t{\n\t\twithGuide = withGuide !== false;\n\t\tshowAfterAnimation = showAfterAnimation !== false;\n\t\tthis.emit('onBeforeShowCollapsedBlock');\n\t\tif(!this.isCollapsedShow)\n\t\t{\n\t\t\tthis.emit('onStartShowCollapsedBlock');\n\t\t\tif(!(step instanceof Step))\n\t\t\t{\n\t\t\t\tstep = new Step(step);\n\t\t\t}\n\t\t\tthis.collapsedStep = step;\n\n\t\t\tlet collapsedBlock = this.getCollapseBlock();\n\t\t\tlet showFunction = function() {\n\t\t\t\tcollapsedBlock.style.display = 'flex';\n\t\t\t};\n\t\t\tif(showAfterAnimation)\n\t\t\t{\n\t\t\t\tsetTimeout(showFunction.bind(this), 300);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tshowFunction.call(this);\n\t\t\t}\n\t\t\tthis.getCollapseTitle().innerHTML = step.getTitle();\n\t\t\tif(this.isInformerShow)\n\t\t\t{\n\t\t\t\tDom.append(this.getInformer(), collapsedBlock);\n\t\t\t}\n\t\t\tthis.isCollapsedShow = true;\n\t\t\tthis.emit('onShowCollapsedBlock');\n\t\t}\n\n\t\tif (withGuide)\n\t\t{\n\t\t\tthis.showGuide();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.checkButtonsState();\n\t\t}\n\t}\n\n\tstatic setCollapsedInvisible()\n\t{\n\t\tthis.hideNode(this.getCollapseBlock());\n\t}\n\n\tstatic setCollapsedVisible()\n\t{\n\t\tthis.showNode(this.getCollapseBlock());\n\t}\n\n\tstatic checkButtonsState()\n\t{\n\t\tthis.emit('onCheckButtonsState');\n\t\tlet step = this.collapsedStep;\n\t\tif(!step)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif(step.getCompleted())\n\t\t{\n\t\t\tif(this.activeGuide)\n\t\t\t{\n\t\t\t\tthis.hideNode(this.getRepeatBtn());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.showNode(this.getRepeatBtn());\n\t\t\t}\n\t\t\tthis.hideNode(this.getCompletedBtn());\n\t\t\tthis.hideNode(this.getStartBtn());\n\t\t}\n\t\telse if(step.isActive)\n\t\t{\n\t\t\tthis.showNode(this.getCompletedBtn());\n\t\t\tif(this.activeGuide || !this.isShowRepeatWithCompleted)\n\t\t\t{\n\t\t\t\tthis.hideNode(this.getRepeatBtn());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.showNode(this.getRepeatBtn());\n\t\t\t}\n\t\t\tthis.hideNode(this.getStartBtn());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.showNode(this.getStartBtn());\n\t\t\tthis.hideNode(this.getRepeatBtn());\n\t\t\tthis.hideNode(this.getCompletedBtn());\n\t\t}\n\t}\n\n\tstatic showGuide()\n\t{\n\t\tthis.emit('onBeforeShowGuide');\n\t\tlet step = this.collapsedStep;\n\t\tif (!this.activeGuide && step)\n\t\t{\n\t\t\tthis.emit('onStartShowGuide');\n\t\t\tthis.activeGuide = new Guide({\n\t\t\t\tsimpleMode: true,\n\t\t\t\tsteps: [\n\t\t\t\t\tstep.getHighlightOptions()\n\t\t\t\t],\n\t\t\t});\n\t\t\tthis.activeGuide.subscribe(Guide.getFullEventName(\"onFinish\"), this.finishGuide.bind(this));\n\t\t\tthis.activeGuide.start();\n\t\t\tDom.remove(this.activeGuide.getPopup().closeIcon);\n\t\t\tthis.emit('showCollapseWithGuide');\n\t\t\tthis.checkButtonsState();\n\t\t}\n\t}\n\n\tstatic closeGuide()\n\t{\n\t\tif(this.activeGuide instanceof Guide)\n\t\t{\n\t\t\tthis.activeGuide.close();\n\t\t\tthis.emit('onAfterGuide');\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tstatic getCollapseBlock()\n\t{\n\t\tif (!this.layout.collapseBlock)\n\t\t{\n\t\t\tthis.layout.collapseBlock =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup ui-tutor-popup-collapse\" onclick=\"${this.clickCollapseBlockHandler.bind(this)}\">\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-content\">\n\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-step-subject\">${Loc.getMessage('JS_UI_TUTOR_STEP_TITLE')}</div>\n\t\t\t\t\t\t\t${this.getCollapseTitle()}\n\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-collapse-btn\">\n\t\t\t\t\t\t\t\t${this.getStartBtn()}\n\t\t\t\t\t\t\t\t${this.getRepeatBtn()}\n\t\t\t\t\t\t\t\t${this.getCompletedBtn()}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\tthis.emit('onCreateCollapsedBlockNode');\n\t\t\tDom.append(this.layout.collapseBlock, document.body);\n\t\t\tthis.emit('onAfterAppendCollapsedBlockNode');\n\t\t}\n\n\t\treturn this.layout.collapseBlock;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tstatic getStartBtn()\n\t{\n\t\tif (!this.startBtn)\n\t\t{\n\t\t\tthis.startBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-primary ui-btn-round ui-btn-xs\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_START')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\n\t\t\tEvent.bind(this.startBtn, \"click\", (event) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tthis.emit('clickStartBtn');\n\t\t\t});\n\t\t}\n\n\t\treturn this.startBtn;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tstatic getRepeatBtn()\n\t{\n\t\tif (!this.repeatBtn)\n\t\t{\n\t\t\tthis.repeatBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-primary ui-btn-round ui-btn-xs\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_REPEAT')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\n\t\t\tEvent.bind(this.repeatBtn, \"click\", (event) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tthis.emit('clickRepeatBtn');\n\t\t\t});\n\t\t}\n\n\t\treturn this.repeatBtn;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tstatic getCompletedBtn()\n\t{\n\t\tif (!this.completedBtn)\n\t\t{\n\t\t\tthis.completedBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-success ui-btn-round ui-btn-xs\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_COMPLETED_SHORT')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\n\t\t\tEvent.bind(this.completedBtn, \"click\", (event) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tthis.emit('clickCompletedBtn');\n\t\t\t});\n\t\t}\n\n\t\treturn this.completedBtn;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tstatic getCollapseTitle()\n\t{\n\t\tif (!this.layout.collapseTitle)\n\t\t{\n\t\t\tthis.layout.collapseTitle =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-step-title\"></div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.collapseTitle;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tstatic closeCollapsePopup(event)\n\t{\n\t\tthis.closeCollapseEntity();\n\t\tthis.emit('clickCloseCollapseBlock');\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic clickCollapseBlockHandler()\n\t{\n\t\tthis.emit('clickCollapseBlock');\n\t}\n\n\tstatic finishGuide()\n\t{\n\t\tdelete this.activeGuide;\n\t\tthis.checkButtonsState();\n\t\tthis.emit('completeCloseGuide');\n\t}\n\n\tstatic closeCollapseEntity()\n\t{\n\t\tthis.emit('onBeforeHideCollapsedBlock');\n\t\tthis.getCollapseBlock().style.display = 'none';\n\t\tthis.getImButton().style.display = 'block';\n\t\tif(this.activeGuide instanceof Guide)\n\t\t{\n\t\t\tthis.activeGuide.close();\n\t\t}\n\t\tif(this.isInformerShow)\n\t\t{\n\t\t\tDom.append(this.getInformer(), this.getImButton());\n\t\t}\n\t\tdelete this.collapsedStep;\n\t\tthis.isCollapsedShow = false;\n\t\tthis.emit('onHideCollapsedBlock');\n\t}\n\n\tstatic showLoader()\n\t{\n\t\tthis.emit('onBeforeShowLoader');\n\t\tthis.startTitle = '';\n\t\tthis.startText = '';\n\t\tthis.layout.loader = new Loader({\n\t\t\ttarget: this.getStartPopup(),\n\t\t\tsize: 85\n\t\t});\n\t\tthis.layout.loader.show();\n\t\tthis.getStartPopup().style.display = 'flex';\n\t\tDom.addClass(this.getStartPopup(), \"ui-tutor-popup-load\");\n\t\tthis.emit('onAfterShowLoader');\n\t}\n\n\tstatic hideLoader()\n\t{\n\t\tif (this.layout.loader)\n\t\t{\n\t\t\tthis.layout.loader.destroy();\n\t\t\tthis.getStartPopup().style.display = 'none';\n\t\t}\n\t}\n\n\tstatic showCollapsedLoader()\n\t{\n\t\tthis.emit('onBeforeShowCollapsedLoader');\n\t\tthis.layout.collapseLoader = new Loader({\n\t\t\ttarget: this.getCollapseBlock(),\n\t\t\tsize: 34\n\t\t});\n\t\tthis.layout.collapseLoader.show();\n\t\tthis.getCollapseBlock().style.display = 'flex';\n\t\tDom.addClass(this.getCollapseBlock(), \"ui-tutor-popup-collapse-load\");\n\t\tthis.emit('onAfterShowCollapsedLoader');\n\t}\n\n\tstatic hideCollapsedLoader()\n\t{\n\t\tthis.emit('onBeforeHideCollapsedLoader');\n\t\tif (this.layout.collapseLoader)\n\t\t{\n\t\t\tthis.layout.collapseLoader.destroy();\n\t\t\tDom.removeClass(this.getCollapseBlock(), \"ui-tutor-popup-collapse-load\");\n\t\t\tthis.getCollapseBlock().style.display = 'none';\n\t\t}\n\t\tthis.emit('onAfterHideCollapsedLoader');\n\t}\n\n\tstatic showNode (node)\n\t{\n\t\tnode.style.display = 'block';\n\t}\n\n\tstatic hideNode (node)\n\t{\n\t\tnode.style.display = 'none';\n\t}\n\n\tstatic checkFollowLink(step, scenario)\n\t{\n\t\tthis.emit('onStartCheckFollowLink');\n\t\tstep = step || this.collapsedStep;\n\t\tif(step instanceof Step)\n\t\t{\n\t\t\tscenario = scenario || {};\n\t\t\tif (!(window.location.pathname === step.getUrl()))\n\t\t\t{\n\t\t\t\tlet beforeEvent = 'onBeforeRedirectToActionPage';\n\t\t\t\tif(scenario instanceof Scenario)\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(scenario.getStartBtn(), 'ui-btn-wait');\n\t\t\t\t\tscenario.fireCurrentStepEvent(beforeEvent);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(this.getStartBtn(), 'ui-btn-wait');\n\t\t\t\t\tthis.emit(beforeEvent, {step});\n\t\t\t\t}\n\t\t\t\twindow.location = step.getUrl();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif(scenario instanceof Scenario)\n\t\t\t\t{\n\t\t\t\t\tscenario.showCollapseBlock(step);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tstep.activate();\n\t\t\t\t\tthis.showCollapsedBlock(step);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.emit('onFinishCheckFollowLink');\n\t}\n\n\tstatic fireEvent(eventName)\n\t{\n\t\tthis.emit(eventName);\n\t}\n}\n\n/**\n * @private\n */\nManager.instance = null;\nManager.scenarioInstance = null;\nManager.activeGuide = null;\nManager.isShowRepeatWithCompleted = true;\nManager.layout = {\n\timButton: null,\n\tcollapseBlock: null,\n\tcollapseTitle: null,\n};","import { Type, Dom, Event, Tag, Loc } from 'main.core';\nimport {Step} from './step.js';\nimport {Manager} from './manager.js';\n\nexport class Scenario extends Event.EventEmitter {\n\tconstructor(options = {}) {\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.UI.Tutor.Scenario');\n\n\t\tthis.stepPopup = null;\n\t\tthis.arrowTimer = null;\n\t\tthis.guide = null;\n\t\tthis.loader = null;\n\n\t\tthis.arrowWrap = null;\n\t\tthis.prevArrow = null;\n\t\tthis.nextArrow = null;\n\n\t\tthis.currentStepIndex = 0;\n\t\tthis.currentStep = null;\n\t\tthis.isAddedSteps = false;\n\t\tthis.hasArrows = false;\n\n\t\tthis.isLoading = true;\n\n\t\tthis.setOptions(options);\n\n\t\tthis.btn = document.getElementById('ui-tutor-btn-wrap');\n\t\tthis.informer = document.getElementById('ui-tutor-informer');\n\n\t\tthis.layout = {\n\t\t\tstepBlock: null,\n\t\t\tprogress: null,\n\t\t\tcounter: null,\n\t\t\tcounterContainer: null,\n\t\t\ttitle: null,\n\t\t\tdescription: null,\n\t\t\tcollapseBlock: null,\n\t\t\tcollapseTitle: null,\n\t\t\tcollapseDescription: null,\n\t\t\tcontent: null,\n\t\t\tcontentInner: null,\n\t\t\tcontentBlock: null,\n\t\t\turl: null,\n\t\t\ttarget: null,\n\t\t\tstartBtn: null,\n\t\t\tnextBtn: null,\n\t\t\trepeatBtn: null,\n\t\t\tdeferBtn: null,\n\t\t\thelp: null,\n\t\t\tcompletedBtn: null,\n\t\t\tcompletedBlock: null,\n\t\t\tfinishedBlock: null,\n\t\t\tsupportLink: null\n\t\t};\n\n\t\tthis.sections = [\n\t\t\t'settings',\n\t\t\t'scenario',\n\t\t\t'work'\n\t\t];\n\n\t\tthis.loadYoutubeApiScript();\n\n\t\tthis.subscribe(\"onYouTubeReady\", () => {\n\t\t\tthis.setVideoItems();\n\t\t});\n\t}\n\n\tloadYoutubeApiScript()\n\t{\n\t\tconst onYouTubeReadyEvent = function() {\n\t\t\tthis.emit(\"onYouTubeReady\", { scenario: this});\n\t\t}.bind(this);\n\n\t\tif (!window.YT)\n\t\t{\n\t\t\tlet isNeedCheckYT = true;\n\t\t\tconst tag = document.createElement('script');\n\t\t\ttag.src = \"https://www.youtube.com/iframe_api\";\n\t\t\tconst firstScriptTag = document.getElementsByTagName('script')[0];\n\t\t\tfirstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n\t\t\tlet ytCheckerTimer = setInterval(function() {\n\t\t\t\tif (isNeedCheckYT)\n\t\t\t\t{\n\t\t\t\t\tif (window.YT && Type.isFunction(window.YT.Player))\n\t\t\t\t\t{\n\t\t\t\t\t\tclearInterval(ytCheckerTimer);\n\t\t\t\t\t\tonYouTubeReadyEvent();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 200);\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tclearInterval(ytCheckerTimer);\n\t\t\t\tisNeedCheckYT = false;\n\t\t\t}, 2000);\n\t\t}\n\t\telse {\n\t\t\tsetTimeout(function() {\n\t\t\t\tonYouTubeReadyEvent();\n\t\t\t}.bind(this), 100);\n\t\t}\n\n\t}\n\n\tsetOptions (options)\n\t{\n\t\tthis.fireCurrentStepEvent('onBeforeSetOptions', false);\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\t\tlet currentStep = this.getCurrentStep();\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\t\tif (currentStep instanceof Step)\n\t\t{\n\t\t\tlet stepInList = this.findStepById(currentStep.getId());\n\t\t\tif (stepInList)\n\t\t\t{\n\t\t\t\tcurrentStep = stepInList;\n\t\t\t}\n\t\t}\n\t\telse if (Type.isString(options.currentStepId) && options.currentStepId.length > 0)\n\t\t{\n\t\t\tlet stepInList = this.findStepById(options.currentStepId);\n\t\t\tif (stepInList)\n\t\t\t{\n\t\t\t\tcurrentStep = stepInList;\n\t\t\t\tif(options.currentStepIsActive === true)\n\t\t\t\t{\n\t\t\t\t\tcurrentStep.activate();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!currentStep)\n\t\t{\n\t\t\tlet uncompletedStep = this.getFirstUncompletedStep();\n\t\t\tif (uncompletedStep)\n\t\t\t{\n\t\t\t\tcurrentStep = uncompletedStep;\n\t\t\t}\n\t\t}\n\t\tif (!currentStep && this.steps && this.steps[0])\n\t\t{\n\t\t\tcurrentStep = this.steps[0];\n\t\t}\n\t\tthis.setCurrentStep(currentStep);\n\n\t\tif (options)\n\t\t{\n\t\t\tthis.isLoading = false;\n\t\t}\n\n\t\tthis.title = options.title || '';\n\t\tthis.supportLink = options.supportLink || '';\n\t\tthis.isFinished = options.isFinished || false;\n\t\tthis.fireCurrentStepEvent('onAfterSetOptions', false);\n\t}\n\n\t/**\n\t * @param {Step} step\n\t */\n\tsetCurrentStep(step)\n\t{\n\t\tif (step instanceof Step)\n\t\t{\n\t\t\tthis.currentStep = step;\n\t\t\tlet steps = this.steps;\n\n\t\t\tif (Type.isArray(steps))\n\t\t\t{\n\t\t\t\tthis.currentStepIndex = steps.indexOf(step);\n\t\t\t}\n\t\t\tthis.fireCurrentStepEvent('onStartStep');\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t */\n\tstart(complexAnimation)\n\t{\n\t\tthis.emit(\"onStart\", { scenario: this});\n\n\t\tif (complexAnimation) // animate transition from collapsed popup to step popup\n\t\t{\n\t\t\tthis.complexAnimation = true;\n\t\t}\n\t\tthis.showPopup(this.getStepPopup());\n\t\tthis.toggleCompletedState();\n\t\tthis.toggleNavBtn();\n\t\tthis.setPopupData();\n\n\t\tif (this.isAddedSteps)\n\t\t{\n\t\t\tthis.hideFinalState();\n\t\t}\n\n\t\tif (!this.hasArrows)\n\t\t{\n\t\t\tthis.initArrows();\n\t\t}\n\n\t\tthis.complexAnimation = false;\n\t\tthis.fireCurrentStepEvent('onShowComplete');\n\t}\n\n\tfindStepById(stepId)\n\t{\n\t\tfor (let i = 0; i < this.steps.length; i++)\n\t\t{\n\t\t\tconst step = this.steps[i];\n\t\t\tif (step.getId() === stepId)\n\t\t\t{\n\t\t\t\treturn step;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetStepPopup()\n\t{\n\t\tconst clickOnCloseIcon = () => {\n\t\t\tthis.emit(\"onClickOnCloseIcon\", { scenario: this});\n\t\t};\n\n\t\tif (!this.stepPopup)\n\t\t{\n\t\t\tthis.stepPopup =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup ui-tutor-popup-step\">\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-header\">\n\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-icon\"></span>\n\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-title\">\n\t\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-counter\">\n\t\t\t\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_TITLE')}.\n\t\t\t\t\t\t\t\t\t${this.getCounterContainer()}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-header-subtitle\">${this.title}</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t${this.getDeferLink()}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-content\">\n\t\t\t\t\t\t\t${this.getContentBlock()}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-step-wrap\">\n\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-step-inner\">\n\t\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-arrow-wrap\"></div>\n\t\t\t\t\t\t\t\t<div class=\"ui-tutor-popup-step-list-wrap\">\n\t\t\t\t\t\t\t\t\t${this.getStepBlock()}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-icon-close\" onclick=\"${clickOnCloseIcon.bind(this)}\"></div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-icon-angle\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\tthis.fireCurrentStepEvent('onCreateStepPopupNode');\n\t\t\tDom.append(this.stepPopup, document.body);\n\t\t\tthis.fireCurrentStepEvent('onAfterAppendStepPopupNode');\n\t\t}\n\n\t\treturn this.stepPopup;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetContentBlock()\n\t{\n\t\tif (!this.layout.contentBlock)\n\t\t{\n\t\t\tthis.layout.contentBlock =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-content-block\">\n\t\t\t\t\t\t${this.getContentInner()}\n\t\t\t\t\t\t${this.getFooter()}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.contentBlock;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetFooter()\n\t{\n\t\tif (!this.layout.footer)\n\t\t{\n\t\t\tthis.layout.footer =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-footer\">\n\t\t\t\t\t\t${this.getNavigation()}\n\t\t\t\t\t\t${this.getBtnContainer()}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\n\t\t\tif (Manager.getInstance().feedbackFormId) {\n\t\t\t\tDom.append(this.getSupportLink(), this.layout.footer);\n\t\t\t}\n\n\t\t}\n\n\t\treturn this.layout.footer;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetContentInner()\n\t{\n\t\tif (!this.layout.contentInner)\n\t\t{\n\t\t\tthis.layout.contentInner =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-content-inner\">\n\t\t\t\t\t\t${this.getTitle()}\n\t\t\t\t\t\t${this.getDescription()}\n\t\t\t\t\t\t${this.getHelpBlock()}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.contentInner;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetBtnContainer()\n\t{\n\t\tif (!this.layout.btnContainer)\n\t\t{\n\t\t\tthis.layout.btnContainer =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-btn\">\n\t\t\t\t\t\t${this.getStartBtn()}\n\t\t\t\t\t\t${this.getRepeatBtn()}\n\t\t\t\t\t\t${this.getCompletedBtn()}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.btnContainer;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetNavigation()\n\t{\n\t\tif (!this.layout.navigation)\n\t\t{\n\t\t\tthis.layout.navigation =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-nav\"></div>\n\t\t\t\t`;\n\n\t\t\tthis.layout.backBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"ui-tutor-popup-nav-item ui-tutor-popup-nav-item-prev\" onclick=\"${this.clickOnBackBtn.bind(this)}\"></span>\n\t\t\t\t`;\n\n\t\t\tthis.layout.nextBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"ui-tutor-popup-nav-item ui-tutor-popup-nav-item-next\" onclick=\"${this.clickOnNextBtn.bind(this)}\"></span>\n\t\t\t\t`;\n\n\t\t\tDom.append(this.layout.backBtn, this.layout.navigation);\n\t\t\tDom.append(this.layout.nextBtn, this.layout.navigation);\n\t\t}\n\n\t\treturn this.layout.navigation;\n\t}\n\n\t/**\n\t * @private\n\t * @param {HTMLElement} node\n\t */\n\tsetInformer(node)\n\t{\n\t\tthis.setInformerCount(this.steps.length - this.getCompletedSteps());\n\t}\n\n\t/**\n\t * @public\n\t * @param {Number} num\n\t */\n\tsetInformerExternal(num)\n\t{\n\t\tthis.setInformerCount(num);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tsetInformerCount(num)\n\t{\n\t\tManager.setCount(num);\n\t}\n\n\t/**\n\t * @public\n\t * @param {Event} event\n\t * @param {Boolean} complexAnimation\n\t */\n\tcloseStepPopup(event, complexAnimation)\n\t{\n\t\tif (!this.stepPopup)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif (event)\n\t\t{\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.fireCurrentStepEvent('onCloseStepPopup');\n\t\tif (complexAnimation) // animate transition from collapsed popup to step popup\n\t\t{\n\t\t\tthis.complexAnimation = true;\n\t\t}\n\t\tthis.fadeAnimation(this.getStepPopup());\n\t\tsetTimeout(function () {\n\t\t\tthis.hideNode(this.getStepPopup());\n\t\t}.bind(this), 310);\n\t\tthis.complexAnimation = false;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {number}\n\t */\n\tgetCompletedSteps()\n\t{\n\t\tlet total = 0;\n\t\tfor (let i = 0; i < this.steps.length; i += 1)\n\t\t{\n\t\t\tif (this.steps[i].isCompleted)\n\t\t\t{\n\t\t\t\ttotal += 1;\n\t\t\t}\n\t\t}\n\t\treturn total;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tsetStepCounter()\n\t{\n\t\tthis.getCounter().textContent = Loc.getMessage('JS_UI_TUTOR_COUNTER_NUMBER')\n\t\t\t.replace('#NUMBER#', this.steps.indexOf(this.getCurrentStep()) + 1)\n\t\t\t.replace('#NUMBER_TOTAL#', this.steps.length);\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetCounterContainer()\n\t{\n\t\tif (!this.layout.counterContainer)\n\t\t{\n\t\t\tthis.layout.counterContainer =\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"ui-tutor-popup-header-counter-step\">\n\t\t\t\t\t\t${this.getCounter()}\n\t\t\t\t\t</span>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.counterContainer;\n\t}\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetCounter()\n\t{\n\t\tif (!this.layout.counter)\n\t\t{\n\t\t\tthis.layout.counter =\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"ui-tutor-popup-header-counter-number\"></span>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.counter;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetDeferLink()\n\t{\n\t\tif (!this.layout.deferLink)\n\t\t{\n\t\t\tthis.layout.deferLink =\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"ui-tutor-popup-defer-link\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_DEFER')}\n\t\t\t\t\t</span>\n\t\t\t\t`;\n\n\t\t\tconst deferMenu = new BX.PopupMenuWindow({\n\t\t\t\tangle: true,\n\t\t\t\toffsetLeft: 15,\n\t\t\t\tclassName: 'ui-tutor-popup-defer-menu',\n\t\t\t\tbindElement: this.layout.deferLink,\n\t\t\t\titems: [\n\t\t\t\t\t{ text: Loc.getMessage('JS_UI_TUTOR_DEFER_MENU_HOUR'),\n\t\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\t\tthis.emit(\"onDeferOneHour\", { scenario: this});\n\t\t\t\t\t\t\tdeferMenu.close();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t},\n\t\t\t\t\t{ text: Loc.getMessage('JS_UI_TUTOR_DEFER_MENU_TOMORROW'),\n\t\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\t\tthis.emit(\"onDeferTomorrow\", { scenario: this});\n\t\t\t\t\t\t\tdeferMenu.close();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: Loc.getMessage('JS_UI_TUTOR_DEFER_MENU_WEEK'),\n\t\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\t\tthis.emit(\"onDeferWeek\", { scenario: this});\n\t\t\t\t\t\t\tdeferMenu.close();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: Loc.getMessage('JS_UI_TUTOR_DEFER_MENU_FOREVER'),\n\t\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\t\tthis.emit(\"onDeferForever\", { scenario: this});\n\t\t\t\t\t\t\tdeferMenu.close();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\n\t\t\tEvent.bind(this.layout.deferLink, \"click\", () => {\n\t\t\t\tdeferMenu.show();\n\t\t\t});\n\t\t}\n\n\t\treturn this.layout.deferLink;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetStartBtn()\n\t{\n\t\tif (!this.layout.startBtn)\n\t\t{\n\t\t\tthis.layout.startBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-primary ui-btn-round\" onclick=\"${this.clickStartHandler.bind(this)}\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_START')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.startBtn;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetCompletedBtn()\n\t{\n\t\tif (!this.layout.completedBtn)\n\t\t{\n\t\t\tthis.layout.completedBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-success ui-btn-round\" onclick=\"${this.showSuccessState.bind(this)}\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_COMPLETED')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.completedBtn;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetRepeatBtn()\n\t{\n\t\tif (!this.layout.repeatBtn)\n\t\t{\n\t\t\tthis.layout.repeatBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-primary ui-btn-round\" onclick=\"${this.repeatStep.bind(this)}\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_REPEAT')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.repeatBtn;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetDeferBtn()\n\t{\n\t\tif (!this.layout.deferBtn)\n\t\t{\n\t\t\tthis.layout.deferBtn =\n\t\t\t\tTag.render`\n\t\t\t\t\t<button class=\"ui-btn ui-btn-link ui-btn-round\" onclick=\"${this.closeStepPopup.bind(this)}\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_DEFER')}\n\t\t\t\t\t</button>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.deferBtn;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetCompletedBLock()\n\t{\n\t\tif (!this.layout.completedBlock)\n\t\t{\n\t\t\tthis.layout.completedBlock =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-completed\">\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-completed-icon\"></div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-completed-text\">${Loc.getMessage('JS_UI_TUTOR_STEP_COMPLETED')}</div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.completedBlock;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetTitle()\n\t{\n\t\tif (!this.layout.title)\n\t\t{\n\t\t\tthis.layout.title =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-step-title\"></div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.title;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetDescription()\n\t{\n\t\tif (!this.layout.description)\n\t\t{\n\t\t\tthis.layout.description =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-step-decs\"></div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.description;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetSupportLink()\n\t{\n\t\tif (!this.layout.supportLink)\n\t\t{\n\t\t\tthis.layout.supportLink =\n\t\t\t\tTag.render`\n\t\t\t\t\t<a class=\"ui-tutor-popup-support-link\" onclick=\"${this.supportLinkHandler.bind(this)}\">\n\t\t\t\t\t\t${Loc.getMessage('JS_UI_TUTOR_BTN_SUPPORT')}\n\t\t\t\t\t</a>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.supportLink;\n\t}\n\n\tsetInvisible()\n\t{\n\t\tthis.hideNode(this.getStepPopup());\n\t}\n\n\tsetVisible()\n\t{\n\t\tthis.showNode(this.getStepPopup());\n\t}\n\n\tsupportLinkHandler()\n\t{\n\t\tthis.emit('supportLinkClick');\n\t\tManager.getInstance().showFeedbackForm();\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetStepBlock()\n\t{\n\t\tif (!this.layout.stepBlock)\n\t\t{\n\t\t\tthis.layout.stepBlock =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-step-list\"></div>\n\t\t\t\t`;\n\n\t\t\tthis.layout.stepItems = [];\n\n\t\t\tfor (let i = 0; i < this.steps.length; i += 1)\n\t\t\t{\n\t\t\t\tconst currentStepIndex =\n\t\t\t\t\tTag.render`\n\t\t\t\t\t\t<span class=\"ui-tutor-popup-step-item\" data-step=${i} onclick=\"${this.switchStep.bind(this)}\">\n\t\t\t\t\t\t\t<span class=\"ui-tutor-popup-step-item-number\">${i + 1}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t`;\n\n\t\t\t\tthis.layout.stepItems.push(currentStepIndex);\n\t\t\t\tDom.append(currentStepIndex, this.layout.stepBlock);\n\t\t\t}\n\t\t\tthis.setStepItems();\n\t\t}\n\n\t\treturn this.layout.stepBlock;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tsetStepItems()\n\t{\n\t\tif (this.layout && this.layout.stepItems)\n\t\t{\n\t\t\tfor (let i = 0; i < this.steps.length; i += 1)\n\t\t\t{\n\t\t\t\tif (this.layout.stepItems[i])\n\t\t\t\t{\n\t\t\t\t\tDom.removeClass(this.layout.stepItems[i], 'ui-tutor-popup-step-item-current');\n\t\t\t\t\tif (i === this.currentStepIndex)\n\t\t\t\t\t{\n\t\t\t\t\t\tDom.addClass(this.layout.stepItems[i], 'ui-tutor-popup-step-item-current');\n\t\t\t\t\t}\n\t\t\t\t\tif (this.steps[i].isCompleted)\n\t\t\t\t\t{\n\t\t\t\t\t\tDom.addClass(this.layout.stepItems[i], 'ui-tutor-popup-step-item-completed');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetHelpBlock()\n\t{\n\t\tif (!this.layout.help)\n\t\t{\n\t\t\tthis.layout.help =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-help\">\n\t\t\t\t\t\t${this.getHelpLink()}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.help;\n\t}\n\n\tsetVideoItems()\n\t{\n\t\tfor (let i = 0; i < this.steps.length; i += 1)\n\t\t{\n\t\t\tconst currentVideo =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-video\" data-step=${i}></div>\n\t\t\t\t`;\n\t\t\tDom.prepend(currentVideo, this.getHelpBlock());\n\n\t\t\tif (window.YT && Type.isObject(window.YT) && Type.isFunction(window.YT.Player) && this.steps[i].video !== null)\n\t\t\t{\n\t\t\t\tconst playerData = {\n\t\t\t\t\tvideoId: this.steps[i].video,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\t'onReady': function(event) {\n\t\t\t\t\t\t\tevent.target.mute();\n\t\t\t\t\t\t\tevent.target.pauseVideo();\n\t\t\t\t\t\t\tevent.target.setPlaybackQuality('hd720');\n\n\t\t\t\t\t\t\tif (+event.target.getIframe().getAttribute('data-step') === this.currentStepIndex)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tDom.addClass(event.target.getIframe(), 'ui-tutor-popup-video-show');\n\t\t\t\t\t\t\t\tevent.target.playVideo();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t},\n\t\t\t\t\tplayerVars: {\n\t\t\t\t\t\tcc_load_policy: 1,\n\t\t\t\t\t\tcc_lang_pref: 'ru',\n\t\t\t\t\t\trel: 0\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tthis.fireCurrentStepEvent('onBeforeCreateVideo', true, {\n\t\t\t\t\tplayerData\n\t\t\t\t});\n\t\t\t\tthis.steps[i].videoObj = new YT.Player(currentVideo, playerData);\n\t\t\t\tthis.fireCurrentStepEvent('onAfterCreateVideo');\n\t\t\t}\n\t\t}\n\t}\n\n\tpauseCurrentVideo()\n\t{\n\t\tlet step = this.getCurrentStep();\n\n\t\tif (window.YT && step instanceof Step)\n\t\t{\n\t\t\tlet video = step.getVideoObj();\n\t\t\tif (Type.isObject(video) && video.pauseVideo)\n\t\t\t{\n\t\t\t\tvideo.pauseVideo();\n\t\t\t}\n\t\t}\n\t}\n\n\tplayCurrentVideo()\n\t{\n\t\tlet step = this.getCurrentStep();\n\n\t\tif (window.YT && step instanceof Step)\n\t\t{\n\t\t\tlet video = step.getVideoObj();\n\t\t\tif (Type.isObject(video) && video.playVideo)\n\t\t\t{\n\t\t\t\tvideo.playVideo();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHelpLink()\n\t{\n\t\tif (!this.layout.link)\n\t\t{\n\t\t\tthis.layout.link =\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"ui-tutor-popup-help-link\" onclick=\"${this.handleClickLinkHandler.bind(this)}\">\n\t\t\t\t\t\t<span class=\"ui-tutor-popup-help-link-text\">${Loc.getMessage('JS_UI_TUTOR_ARTICLE_HELP_TOPIC')}</span>\n\t\t\t\t\t</span>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.link;\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleClickLinkHandler()\n\t{\n\t\tthis.emit('helpLinkClick');\n\t}\n\n\t/**\n\t * @public\n\t * @param {HTMLElement} node\n\t */\n\tshowPopup(node)\n\t{\n\t\tthis.showAnimation(node);\n\t\tnode.style.display = 'block';\n\t}\n\n\t/**\n\t * @public\n\t * @param {HTMLElement} node\n\t */\n\tshowNode (node)\n\t{\n\t\tnode.style.display = 'block';\n\t}\n\n\t/**\n\t * @public\n\t * @param {HTMLElement} node\n\t */\n\thideNode (node)\n\t{\n\t\tnode.style.display = 'none';\n\t}\n\n\t/**\n\t * @public\n\t * @param {HTMLElement} node\n\t */\n\tremovePopup(node)\n\t{\n\t\tDom.remove(node);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tclickOnNextBtn()\n\t{\n\t\tthis.fireCurrentStepEvent('onBeforeClickNavNextBtn');\n\t\tif (this.getCompletedSteps() === this.steps.length && !this.isFinished)\n\t\t{\n\t\t\tthis.isAddedSteps = false;\n\t\t\tDom.remove(this.getNewStepsSection());\n\t\t\tDom.removeClass(this.getFinishedBlock(), 'ui-tutor-popup-finished-new');\n\t\t\tthis.showFinalState();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.getCompletedSteps() === this.steps.length && this.currentStepIndex + 1 === this.steps.length)\n\t\t{\n\t\t\tthis.currentStepIndex = -1;\n\t\t}\n\n\t\tDom.removeClass(this.getStartBtn(), 'ui-btn-wait');\n\t\tthis.increaseCurrentIndex();\n\t\tthis.showStep();\n\t\tthis.toggleNavBtn();\n\t\tthis.fireCurrentStepEvent('onAfterClickNavNextBtn');\n\t}\n\n\tclickOnBackBtn()\n\t{\n\t\tthis.fireCurrentStepEvent('onBeforeClickNavBackBtn');\n\t\tthis.reduceCurrentIndex();\n\t\tthis.toggleNavBtn();\n\t\tthis.showStep();\n\t\tthis.fireCurrentStepEvent('onAfterClickNavBackBtn');\n\t}\n\n\ttoggleNavBtn()\n\t{\n\t\tDom.removeClass(this.layout.backBtn, 'ui-tutor-popup-nav-item-disabled');\n\t\tDom.removeClass(this.layout.nextBtn, 'ui-tutor-popup-nav-item-disabled');\n\n\t\tif (this.currentStepIndex === 0)\n\t\t{\n\t\t\tDom.addClass(this.layout.backBtn, 'ui-tutor-popup-nav-item-disabled');\n\t\t}\n\t\tif (this.currentStepIndex + 1 === this.steps.length)\n\t\t{\n\t\t\tDom.addClass(this.layout.nextBtn, 'ui-tutor-popup-nav-item-disabled');\n\t\t}\n\t}\n\n\tshowStep()\n\t{\n\t\t// when last step is completed, but some steps are not\n\t\tif (this.clickOnCompletedBtn && this.currentStepIndex === this.steps.length)\n\t\t{\n\t\t\tlet nextUncompletedStep = this.getFirstUncompletedStep();\n\t\t\tif (nextUncompletedStep)\n\t\t\t{\n\t\t\t\tthis.setCurrentStep(nextUncompletedStep);\n\t\t\t}\n\t\t}\n\n\t\tthis.scrollToStep();\n\t\tthis.toggleCompletedState();\n\t\tthis.setPopupData();\n\n\t\tthis.clickOnCompletedBtn = false;\n\t\tthis.fireCurrentStepEvent('onAfterShowStep');\n\t}\n\n\n\t/**\n\t * @private\n\t */\n\tswitchStep()\n\t{\n\t\tthis.fireCurrentStepEvent('onBeforeSwitchStep');\n\t\tthis.setCurrentStep(this.steps[+window.event.target.getAttribute('data-step')]);\n\t\tthis.fireCurrentStepEvent('onAfterSwitchStep');\n\n\t\tif (this.layout.finishedBlock)\n\t\t{\n\t\t\tthis.hideFinalState();\n\t\t}\n\n\t\tthis.showStep();\n\t\tthis.toggleNavBtn();\n\t\tthis.fireCurrentStepEvent('onEndSwitchStep');\n\t}\n\n\t/**\n\t * @private\n\t */\n\tgetFirstUncompletedStep()\n\t{\n\t\tfor (let i = 0; i < this.steps.length; i += 1)\n\t\t{\n\t\t\tif (!this.steps[i].isCompleted)\n\t\t\t{\n\t\t\t\treturn this.steps[i];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @private\n\t */\n\ttoggleCompletedState()\n\t{\n\t\tconst currentStep = this.getCurrentStep();\n\t\tif (currentStep)\n\t\t{\n\t\t\tif (currentStep.getCompleted())\n\t\t\t{\n\t\t\t\tthis.showNode(this.getRepeatBtn());\n\t\t\t\tthis.hideNode(this.getStartBtn());\n\t\t\t\tthis.hideNode(this.getCompletedBtn());\n\t\t\t}\n\t\t\telse if (currentStep.isActive)\n\t\t\t{\n\t\t\t\tthis.showNode(this.getCompletedBtn());\n\t\t\t\tthis.hideNode(this.getStartBtn());\n\t\t\t\tthis.showNode(this.getRepeatBtn());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.showNode(this.getStartBtn());\n\t\t\t\tthis.hideNode(this.getCompletedBtn());\n\t\t\t\tthis.hideNode(this.getRepeatBtn());\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tsetPopupData()\n\t{\n\t\tthis.fireCurrentStepEvent('onBeforeSetPopupData');\n\t\tconst currentStep = this.getCurrentStep();\n\t\tif (currentStep)\n\t\t{\n\t\t\tthis.getTitle().innerHTML = currentStep.getTitle();\n\t\t\tthis.getDescription().innerHTML = currentStep.getDescription();\n\t\t\tManager.getCollapseTitle().innerHTML = currentStep.getTitle();\n\n\t\t\tif (this.getCurrentStep().getVideo() && window.YT)\n\t\t\t{\n\t\t\t\tthis.setCurrentVideo();\n\t\t\t}\n\n\t\t\tthis.setStepCounter();\n\t\t\tthis.setStepItems();\n\t\t}\n\t\tthis.fireCurrentStepEvent('onAfterSetPopupData');\n\t}\n\n\tsetCurrentVideo()\n\t{\n\t\tthis.fireCurrentStepEvent('onSetCurrentVideo');\n\t\tfor (let i = 0; i < this.steps.length; i += 1)\n\t\t{\n\t\t\tlet video = this.steps[i].getVideoObj();\n\t\t\tif (window.YT && i === this.currentStepIndex && video && video.playVideo)\n\t\t\t{\n\t\t\t\tDom.addClass(video.getIframe(), 'ui-tutor-popup-video-show');\n\t\t\t\tvideo.playVideo();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (video) {\n\t\t\t\t\tDom.removeClass(video.getIframe(), 'ui-tutor-popup-video-show');\n\n\t\t\t\t\tif (video.pauseVideo)\n\t\t\t\t\t{\n\t\t\t\t\t\tvideo.pauseVideo();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t * @returns {Step}\n\t */\n\tgetCurrentStep()\n\t{\n\t\treturn this.currentStep;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tincreaseCurrentIndex()\n\t{\n\t\tif (this.currentStepIndex === this.steps.length)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.currentStepIndex += 1;\n\t\tthis.setCurrentStep(this.steps[this.currentStepIndex]);\n\t}\n\n\t/**\n\t * @private\n\t */\n\treduceCurrentIndex()\n\t{\n\t\tif (this.currentStepIndex === 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.currentStepIndex -= 1;\n\t\tthis.setCurrentStep(this.steps[this.currentStepIndex]);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tshowCollapseBlock(step, withGuide)\n\t{\n\t\twithGuide = withGuide !== false;\n\t\tthis.closeStepPopup(null, true);\n\t\tManager.showCollapsedBlock(step, withGuide);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tminimize()\n\t{\n\t\tthis.pauseCurrentVideo();\n\t\tthis.fireCurrentStepEvent('onMinimize');\n\t\tthis.showCollapseBlock(this.getCurrentStep(), false);\n\t}\n\n\trepeatStep()\n\t{\n\t\tthis.followLink();\n\t}\n\n\tclickStartHandler()\n\t{\n\t\tthis.followLink();\n\t}\n\t/**\n\t * @private\n\t */\n\tfollowLink(step)\n\t{\n\t\tlet currentStep = this.getCurrentStep();\n\t\tif (step instanceof Step)\n\t\t{\n\t\t\tcurrentStep = step;\n\t\t}\n\t\tthis.pauseCurrentVideo();\n\n\t\tthis.setActiveStep(currentStep);\n\t\tManager.checkFollowLink(currentStep, this);\n\t}\n\n\tsetActiveStep(step)\n\t{\n\t\tthis.fireCurrentStepEvent('onBeforeSetActiveStep');\n\t\tif (this.currentActiveStep instanceof Step)\n\t\t{\n\t\t\tthis.currentActiveStep.deactivate();\n\t\t}\n\t\tstep.activate();\n\t\tthis.currentActiveStep = step;\n\t\tthis.fireCurrentStepEvent('onAfterSetActiveStep');\n\t}\n\n\t/**\n\t * @private\n\t */\n\tshowSuccessState()\n\t{\n\t\tconst currentStep = this.getCurrentStep();\n\t\tthis.clickOnCompletedBtn = true;\n\t\tcurrentStep.isCompleted = true;\n\t\tthis.fireCurrentStepEvent('onFinishStep');\n\n\t\tif (currentStep.getCompleted())\n\t\t{\n\t\t\tDom.addClass(this.layout.stepItems[this.currentStepIndex], 'ui-tutor-popup-step-item-completed');\n\t\t}\n\t\tDom.addClass(this.getContentBlock(), 'ui-tutor-popup-content-block-animate');\n\n\t\tsetTimeout(function () {\n\t\t\tDom.replace(this.getHelpBlock(), this.getCompletedBLock());\n\t\t\tthis.getFooter().style.display = \"none\";\n\t\t\tthis.getDescription().style.display = \"none\";\n\t\t\tthis.getTitle().style.display = \"none\";\n\t\t}.bind(this), 300);\n\n\t\tsetTimeout(function () {\n\t\t\tDom.addClass(this.getCompletedBLock(), 'ui-tutor-popup-completed-animate')\n\t\t}.bind(this), 800);\n\n\t\tsetTimeout(function () {\n\t\t\tDom.replace(this.getCompletedBLock(), this.getHelpBlock());\n\t\t\tthis.getTitle().style.display = \"block\";\n\t\t\tthis.getDescription().style.display = \"block\";\n\t\t\tthis.getFooter().style.display = \"flex\";\n\n\t\t\tthis.clickOnNextBtn();\n\t\t}.bind(this), 1500);\n\n\t\tsetTimeout(function () {\n\t\t\tDom.removeClass(this.getCompletedBLock(), 'ui-tutor-popup-completed-animate');\n\t\t\tDom.removeClass(this.getContentBlock(), 'ui-tutor-popup-content-block-animate');\n\n\t\t\tlet counter = this.stepPopup.querySelector(\".ui-tutor-popup-header-counter-number\");\n\t\t\tcounter.innerHTML = Loc.getMessage('JS_UI_TUTOR_COUNTER_NUMBER')\n\t\t\t\t.replace('#NUMBER#', this.steps.indexOf(this.getCurrentStep()) + 1)\n\t\t\t\t.replace('#NUMBER_TOTAL#', this.steps.length);\n\t\t\tthis.fireCurrentStepEvent('onAfterShowSuccessState');\n\t\t}.bind(this), 1700);\n\n\t}\n\n\tfireCurrentStepEvent(eventName, fireStepEvent, extra)\n\t{\n\t\tfireStepEvent = fireStepEvent !== false;\n\t\tconst currentStep = this.getCurrentStep();\n\n\t\tconst data = {\n\t\t\tstep : currentStep,\n\t\t\tscenario: this\n\t\t};\n\t\tif (extra)\n\t\t{\n\t\t\tdata.extra = extra;\n\t\t}\n\t\tif (currentStep && fireStepEvent)\n\t\t{\n\t\t\tcurrentStep.emit(eventName, data);\n\t\t}\n\t\tthis.emit(eventName, data);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tshowFinalState()\n\t{\n\t\tthis.fireCurrentStepEvent('onFinalState');\n\n\t\tif (this.layout.stepItems)\n\t\t{\n\t\t\tDom.removeClass(this.layout.stepItems[this.currentStepIndex], 'ui-tutor-popup-step-item-current');\n\t\t}\n\n\t\tDom.append(this.getFinishedBlock(), this.getContentInner());\n\t\tDom.replace(this.getStartBtn(), this.getFinishedNotice());\n\t\tDom.remove(this.getCompletedBtn());\n\n\t\tDom.remove(this.getSupportLink());\n\t\tDom.remove(this.getNavigation());\n\t\tDom.remove(this.getHelpBlock());\n\n\t\tDom.remove(this.getRepeatBtn());\n\t\tDom.remove(this.getTitle());\n\t\tDom.remove(this.getDescription());\n\t\tDom.remove(this.getDeferLink());\n\n\t\tthis.isFinished = true;\n\t\tthis.fireCurrentStepEvent('onAfterFinalState');\n\t}\n\n\t/**\n\t * @private\n\t */\n\thideFinalState()\n\t{\n\t\tthis.fireCurrentStepEvent('onBeforeHideFinalState');\n\t\tif (this.getCurrentStep().getCompleted())\n\t\t{\n\t\t\tDom.replace(this.getFinishedNotice(), this.getRepeatBtn());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.replace(this.getFinishedNotice(), this.getStartBtn());\n\t\t}\n\n\t\tDom.replace(this.getFinishedBlock(), this.getHelpBlock());\n\n\t\tif (Manager.getInstance().feedbackFormId) {\n\t\t\tDom.append(this.getSupportLink(), this.getFooter());\n\t\t}\n\t\tDom.prepend(this.getNavigation(), this.getFooter());\n\t\tDom.prepend(this.getDescription(), this.getContentInner());\n\t\tDom.prepend(this.getTitle(), this.getContentInner());\n\n\t\tif (this.layout.deferBtn)\n\t\t{\n\t\t\tDom.remove(this.getDeferBtn());\n\t\t\tDom.prepend(this.getStartBtn(), this.getBtnContainer());\n\t\t}\n\n\t\tconst header = this.getStepPopup().querySelector('.ui-tutor-popup-header');\n\t\tDom.append(this.getDeferLink(), header);\n\t\tthis.fireCurrentStepEvent('onAfterHideFinalState');\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetFinishedBlock()\n\t{\n\t\tif (!this.layout.finishedBlock)\n\t\t{\n\t\t\tthis.layout.finishedBlock =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-finished\">\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-finished-title\">${Loc.getMessage('JS_UI_TUTOR_FINAL_CONGRATULATIONS')}</div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-finished-icon\"></div>\n\t\t\t\t\t\t<div class=\"ui-tutor-popup-finished-text\">${Loc.getMessage('JS_UI_TUTOR_FINAL_TEXT')}</div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.finishedBlock;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetFinishedNotice()\n\t{\n\t\tif (!this.layout.finishedNotice)\n\t\t{\n\t\t\tthis.layout.finishedNotice =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-finished-notice\">${Loc.getMessage('JS_UI_TUTOR_FINAL_NOTICE')}</div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.finishedNotice;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {HTMLElement}\n\t */\n\tgetNewStepsSection()\n\t{\n\t\tif (!this.layout.newStepsSection)\n\t\t{\n\t\t\tthis.layout.newStepsSection =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-new-text\">${Loc.getMessage('JS_UI_TUTOR_STEP_NEW')}</div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.layout.newStepsSection;\n\t}\n\n\t/**\n\t * @public\n\t */\n\tshowNewSteps()\n\t{\n\t\tDom.addClass(this.getFinishedBlock(), 'ui-tutor-popup-finished-new');\n\t\tthis.showPopup(this.getStepPopup());\n\t\tthis.showFinalState();\n\n\t\tDom.append(this.getNewStepsSection(), this.getFinishedBlock());\n\t\tDom.replace(this.getFinishedNotice(), Manager.getBeginBtn());\n\t\tDom.append(this.getDeferBtn(), this.getBtnContainer());\n\n\t\tthis.setStepCounter();\n\t\tthis.initArrows();\n\t\tthis.scrollToStep();\n\n\t\tthis.isAddedSteps = true;\n\t\tthis.isFinished = false;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tinitArrows()\n\t{\n\t\tthis.stepListWrap = document.querySelector('.ui-tutor-popup-step-list-wrap');\n\t\tthis.arrowWrap = document.querySelector('.ui-tutor-popup-arrow-wrap');\n\n\t\tif (this.stepListWrap && this.stepListWrap.scrollWidth > this.stepListWrap.offsetWidth)\n\t\t{\n\t\t\tDom.append(this.getPrevArrow(), this.arrowWrap);\n\t\t\tDom.append(this.getNextArrow(), this.arrowWrap);\n\n\t\t\tthis.stepListWrap.addEventListener('scroll', this.toggleArrows.bind(this));\n\n\t\t\tthis.prevArrow.addEventListener('mouseenter', this.scrollToLeft.bind(this));\n\t\t\tthis.prevArrow.addEventListener('mouseleave', this.stopAutoScroll.bind(this));\n\t\t\tthis.nextArrow.addEventListener('mouseenter', this.scrollToRight.bind(this));\n\t\t\tthis.nextArrow.addEventListener('mouseleave', this.stopAutoScroll.bind(this));\n\n\t\t\tthis.toggleNextArrow();\n\t\t\tthis.getStepBlock().classList.add(\"ui-tutor-popup-step-list-wide\");\n\n\t\t\tthis.hasArrows = true;\n\t\t}\n\t}\n\n\tgetPrevArrow()\n\t{\n\t\tif (!this.prevArrow)\n\t\t{\n\t\t\tthis.prevArrow =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-arrow ui-tutor-popup-arrow-prev\"></div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.prevArrow;\n\t}\n\n\tgetNextArrow()\n\t{\n\t\tif (!this.nextArrow)\n\t\t{\n\t\t\tthis.nextArrow =\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"ui-tutor-popup-arrow ui-tutor-popup-arrow-next\"></div>\n\t\t\t\t`;\n\t\t}\n\n\t\treturn this.nextArrow;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tscrollToLeft()\n\t{\n\t\tthis.arrowTimer = setInterval(function() {\n\t\t\tthis.stepListWrap.scrollLeft -= 5;\n\t\t}.bind(this), 20);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tscrollToRight()\n\t{\n\t\tthis.arrowTimer = setInterval(function() {\n\t\t\tthis.stepListWrap.scrollLeft += 5;\n\t\t}.bind(this), 20);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstopAutoScroll()\n\t{\n\t\tclearInterval(this.arrowTimer);\n\t}\n\n\t/**\n\t * @private\n\t */\n\ttoggleArrows()\n\t{\n\t\tthis.togglePrevArrow();\n\t\tthis.toggleNextArrow();\n\t}\n\n\t/**\n\t * @private\n\t */\n\ttoggleNextArrow()\n\t{\n\t\tif (this.stepListWrap.scrollWidth > this.stepListWrap.offsetWidth\n\t\t\t&& (this.stepListWrap.offsetWidth + this.stepListWrap.scrollLeft) < this.stepListWrap.scrollWidth)\n\t\t{\n\t\t\tDom.addClass(this.nextArrow, 'ui-tutor-popup-arrow-show');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.nextArrow, 'ui-tutor-popup-arrow-show');\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\ttogglePrevArrow()\n\t{\n\t\tif (this.stepListWrap.scrollLeft > 0)\n\t\t{\n\t\t\tDom.addClass(this.prevArrow, 'ui-tutor-popup-arrow-show');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.prevArrow, 'ui-tutor-popup-arrow-show');\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tshowAnimation(popup)\n\t{\n\t\tDom.removeClass(popup, 'ui-tutor-popup-hide-complex');\n\t\tDom.removeClass(popup, 'ui-tutor-popup-hide');\n\n\t\tif (this.complexAnimation)\n\t\t{\n\t\t\tDom.addClass(popup, 'ui-tutor-popup-show-complex');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(popup, 'ui-tutor-popup-show');\n\t\t}\n\n\t}\n\n\t/**\n\t * @private\n\t */\n\tfadeAnimation(popup)\n\t{\n\t\tDom.removeClass(popup, 'ui-tutor-popup-show-complex');\n\t\tDom.removeClass(popup, 'ui-tutor-popup-show');\n\n\t\tif (this.complexAnimation)\n\t\t{\n\t\t\tDom.addClass(popup, 'ui-tutor-popup-hide-complex');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(popup, 'ui-tutor-popup-hide');\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tscrollToStep()\n\t{\n\t\tlet posList = null;\n\t\tlet posStep = null;\n\t\tif (this.stepListWrap)\n\t\t{\n\t\t\tposList = Dom.getPosition(this.stepListWrap);\n\t\t\tposStep = Dom.getPosition(this.stepListWrap.querySelector('[data-step=\"' + this.currentStepIndex + '\"]'));\n\t\t}\n\t\tconst offset = 7; // padding 2px and margin 5px\n\n\t\tif (!Type.isNull(posStep) && posStep.left + posStep.width > posList.left + posList.width )\n\t\t{\n\t\t\tthis.stepListWrap.scrollLeft += posStep.left - (posList.left + posList.width) + posStep.width + offset;\n\t\t}\n\n\t\tif (!Type.isNull(posStep) && posStep.left < posList.left)\n\t\t{\n\t\t\tthis.stepListWrap.scrollLeft -= posList.left - posStep.left + offset;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic getFullEventName(shortName)\n\t{\n\t\treturn shortName;\n\t}\n\n\tstatic getInstance()\n\t{\n\t\treturn Manager.getScenarioInstance();\n\t}\n\n\tstatic init(options)\n\t{\n\t\treturn Manager.initScenario(options);\n\t}\n}"],"names":["Step","options","setEventNamespace","Type","isPlainObject","id","title","description","url","isCompleted","video","helpLink","highlight","isActive","isShownForSlider","initOptions","videoObj","shortName","Event","EventEmitter","Manager","domain","feedbackFormId","tutorialData","eventService","lastCheckTime","isString","length","feedBackForm","BX","UI","Feedback","Form","getById","openPanel","instance","scenarioInstance","getInstance","emit","setOptions","getScenarioInstance","Scenario","animation","getImButton","document","getElementById","getRootImButton","layout","imButton","buttonWrapper","buttonInner","Tag","render","Dom","addClass","append","bind","usersPanel","querySelector","style","bottom","text","smallPopupText","getSmallPopup","display","hasClass","removeClass","skipAnimation","removeHandler","remove","hasOwnProperty","smallPopup","setTimeout","showSmallPopup","hideSmallPopup","clickSmallPopupHandler","Loc","getMessage","body","startTitle","startText","getStartPopup","startPopup","getBeginBtn","getDeferBtn","beginBtn","deferBtn","informer","informerParentNode","isCollapsedShow","getCollapseBlock","num","removeInformer","isInformerShow","getInformer","textContent","step","withGuide","showAfterAnimation","collapsedStep","collapsedBlock","showFunction","call","getCollapseTitle","innerHTML","getTitle","showGuide","checkButtonsState","hideNode","showNode","getCompleted","activeGuide","getRepeatBtn","getCompletedBtn","getStartBtn","isShowRepeatWithCompleted","Guide","simpleMode","steps","getHighlightOptions","subscribe","getFullEventName","finishGuide","start","getPopup","closeIcon","close","collapseBlock","clickCollapseBlockHandler","startBtn","event","stopPropagation","repeatBtn","completedBtn","collapseTitle","closeCollapseEntity","loader","Loader","target","size","show","destroy","collapseLoader","node","scenario","window","location","pathname","getUrl","beforeEvent","fireCurrentStepEvent","showCollapseBlock","activate","showCollapsedBlock","eventName","stepPopup","arrowTimer","guide","arrowWrap","prevArrow","nextArrow","currentStepIndex","currentStep","isAddedSteps","hasArrows","isLoading","btn","stepBlock","progress","counter","counterContainer","collapseDescription","content","contentInner","contentBlock","nextBtn","help","completedBlock","finishedBlock","supportLink","sections","loadYoutubeApiScript","setVideoItems","onYouTubeReadyEvent","YT","isNeedCheckYT","tag","createElement","src","firstScriptTag","getElementsByTagName","parentNode","insertBefore","ytCheckerTimer","setInterval","isFunction","Player","clearInterval","getCurrentStep","Array","isArray","forEach","push","stepInList","findStepById","getId","currentStepId","currentStepIsActive","uncompletedStep","getFirstUncompletedStep","setCurrentStep","isFinished","indexOf","complexAnimation","showPopup","getStepPopup","toggleCompletedState","toggleNavBtn","setPopupData","hideFinalState","initArrows","stepId","i","clickOnCloseIcon","getCounterContainer","getDeferLink","getContentBlock","getStepBlock","getContentInner","getFooter","footer","getNavigation","getBtnContainer","getSupportLink","getDescription","getHelpBlock","btnContainer","navigation","backBtn","clickOnBackBtn","clickOnNextBtn","setInformerCount","getCompletedSteps","setCount","fadeAnimation","total","getCounter","replace","deferLink","deferMenu","PopupMenuWindow","angle","offsetLeft","className","bindElement","items","onclick","clickStartHandler","showSuccessState","repeatStep","closeStepPopup","supportLinkHandler","showFeedbackForm","stepItems","switchStep","setStepItems","getHelpLink","currentVideo","prepend","isObject","playerData","videoId","events","mute","pauseVideo","setPlaybackQuality","getIframe","getAttribute","playVideo","playerVars","cc_load_policy","cc_lang_pref","rel","getVideoObj","link","handleClickLinkHandler","showAnimation","getNewStepsSection","getFinishedBlock","showFinalState","increaseCurrentIndex","showStep","reduceCurrentIndex","clickOnCompletedBtn","nextUncompletedStep","scrollToStep","getVideo","setCurrentVideo","setStepCounter","pauseCurrentVideo","followLink","setActiveStep","checkFollowLink","currentActiveStep","deactivate","getCompletedBLock","fireStepEvent","extra","data","getFinishedNotice","header","finishedNotice","newStepsSection","stepListWrap","scrollWidth","offsetWidth","getPrevArrow","getNextArrow","addEventListener","toggleArrows","scrollToLeft","stopAutoScroll","scrollToRight","toggleNextArrow","classList","add","scrollLeft","togglePrevArrow","popup","posList","posStep","getPosition","offset","isNull","left","width","initScenario"],"mappings":"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"}