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/info-helper/dist/ |
Upload File : |
{"version":3,"file":"info-helper.bundle.js","sources":["../src/actions.js","../src/types/providers-type.js","../src/provider-request-factory.js","../src/providers/base-provider.js","../src/providers/slider-provider.js","../src/analytics.js","../src/providers/popup-provider.js","../src/feature-promoter.js","../src/feature-promoters-registry.js","../src/feature-promoter-auto-binder.js","../src/export.js","../src/info-helper.js"],"sourcesContent":["import { ajax, Extension, Uri } from 'main.core';\nimport { sendData } from 'ui.analytics';\nimport { FeaturePromotersRegistry } from 'ui.info-helper';\nimport { SliderProvider } from './providers/slider-provider';\n\nexport class Actions\n{\n\tstatic ClosePage()\n\t{\n\t\tBX.SidePanel.Instance.getTopSlider()?.close();\n\t\tBX.UI.InfoHelper.close();\n\t}\n\n\tstatic openPage()\n\t{\n\t\twindow.location.href = BX.UI.InfoHelper.frameUrl;\n\t}\n\n\tstatic openPageInNewTab()\n\t{\n\t\twindow.open(BX.UI.InfoHelper.frameUrl, '_blank');\n\t}\n\n\tstatic reloadParent()\n\t{\n\t\tBX.UI.InfoHelper.reloadParent();\n\t}\n\n\tstatic openSlider(data)\n\t{\n\t\ttop.BX.SidePanel.Instance.open(data.url);\n\t}\n\n\tstatic openPriceTable(): void\n\t{\n\t\tActions.openSlider({ url: '/settings/license_all.php' });\n\t}\n\n\tstatic openChatWithHead(data): void\n\t{\n\t\tconst opener = top.BX.Messenger.Public.openChat();\n\t\tconst analyticData = {\n\t\t\ttool: 'InfoHelper',\n\t\t\tc_section: document.location.href,\n\t\t\tevent: 'create_chatforrequest',\n\t\t};\n\n\t\tif (data.toolId)\n\t\t{\n\t\t\tajax.runAction('intranet.tools.tool.createHeadChat', {\n\t\t\t\tdata: {\n\t\t\t\t\ttoolId: data.toolId,\n\t\t\t\t},\n\t\t\t}).then((response) => {\n\t\t\t\topener.then(() => {\n\t\t\t\t\ttop.BX.Messenger.Public.openChat(`chat${response.data.chatId}`);\n\t\t\t\t});\n\t\t\t\tanalyticData.type = data.toolId;\n\t\t\t\tanalyticData.category = 'tool_off';\n\t\t\t\tsendData(analyticData);\n\t\t\t});\n\t\t}\n\n\t\tif (data.featureCode)\n\t\t{\n\t\t\tajax.runAction('bitrix24.license.upgraderequest.createHeadChat', {\n\t\t\t\tdata: {\n\t\t\t\t\tcode: data.featureCode,\n\t\t\t\t},\n\t\t\t}).then((response) => {\n\t\t\t\topener.then(() => {\n\t\t\t\t\ttop.BX.Messenger.Public.openChat(`chat${response.data.chatId}`);\n\t\t\t\t});\n\t\t\t\tanalyticData.type = data.featureCode;\n\t\t\t\tanalyticData.category = 'limit';\n\t\t\t\tsendData(analyticData);\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic openCheckout(data): void\n\t{\n\t\tif (data.mpSubscribe && Extension.getSettings('ui.info-helper').licenseType)\n\t\t{\n\t\t\tconst url = Uri.addParam('/settings/order/make.php', {\n\t\t\t\tproduct: Extension.getSettings('ui.info-helper').licenseType + '12',\n\t\t\t\tsubscr: 'o',\n\t\t\t});\n\t\t\tActions.openSlider({ url: url });\n\t\t}\n\t\telse if (data.tariff)\n\t\t{\n\t\t\tconst url = Uri.addParam('/settings/order/make.php', {\n\t\t\t\tproduct: data.period ? data.tariff + data.period : data.tariff + '12',\n\t\t\t\tsubscr: data.mpSubscribe ? 'o' : null,\n\t\t\t});\n\t\t\tActions.openSlider({ url: url });\n\t\t}\n\t}\n\n\tstatic openToolsSettings(): void\n\t{\n\t\tActions.openSlider({ url: Extension.getSettings('ui.info-helper').settingsUrl + '?page=tools' });\n\t}\n\n\tstatic openInformer(data)\n\t{\n\t\ttop.BX.UI.InfoHelper.__showExternal(\n\t\t\tdata.code,\n\t\t\tdata.option,\n\t\t);\n\t}\n\n\tstatic activateDemoSubscription(data)\n\t{\n\t\tif (data.licenseAgreed === 'Y')\n\t\t{\n\t\t\tconst ajaxRestPath = '/bitrix/tools/rest.php';\n\t\t\tconst callback = (result) => {\n\t\t\t\tconst slider = BX.SidePanel.Instance.getTopSlider();\n\n\t\t\t\tif (slider && result.error)\n\t\t\t\t{\n\t\t\t\t\tBX.UI.InfoHelper.sliderProviderForOldFormat?.getFrame().contentWindow.postMessage(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction: 'onActivateDemoSubscriptionResult',\n\t\t\t\t\t\t\tresult: result,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'*',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (!result.error)\n\t\t\t\t{\n\t\t\t\t\tconst settings = Extension.getSettings('ui.info-helper');\n\n\t\t\t\t\tif (settings.region === 'ru' && settings.licenseNeverPayed)\n\t\t\t\t\t{\n\t\t\t\t\t\tActions.openInformer({ code: 'limit_market_trial_active' });\n\t\t\t\t\t}\n\t\t\t\t\telse if (settings.marketUrl)\n\t\t\t\t\t{\n\t\t\t\t\t\tActions.openSlider({ url: settings.marketUrl });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tBX.ajax(\n\t\t\t\t{\n\t\t\t\t\tdataType: 'json',\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\turl: ajaxRestPath,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'activate_demo',\n\t\t\t\t\t\tsessid: BX.bitrix_sessid(),\n\t\t\t\t\t},\n\t\t\t\t\tonsuccess: callback,\n\t\t\t\t\tonfailure: function(error_type, error)\n\t\t\t\t\t{\n\t\t\t\t\t\tcallback({ error: error_type + (error ? `: ${error}` : '') });\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\n\tstatic activateDemoLicense(): void\n\t{\n\t\tajax.runAction('ui.infoHelper.activateDemoLicense').then((response) => {\n\t\t\tconst slider = BX.SidePanel.Instance.getTopSlider();\n\t\t\tconst promoter = FeaturePromotersRegistry.getLastPromoter();\n\t\t\tconst provider = promoter?.getProvider();\n\n\t\t\tif (slider)\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\tprovider instanceof SliderProvider\n\t\t\t\t\t&& promoter.getCode() === 'limit_demo'\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tprovider?.getFrame().contentWindow.postMessage(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction: 'onActivateDemoLicenseResult',\n\t\t\t\t\t\t\tresult: response,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'*',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tBX.UI.InfoHelper.sliderProviderForOldFormat?.getFrame().contentWindow.postMessage(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction: 'onActivateDemoLicenseResult',\n\t\t\t\t\t\t\tresult: response,\n\t\t\t\t\t\t},\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\tif (response.data.success === 'Y')\n\t\t\t{\n\t\t\t\tBX.onCustomEvent('BX.UI.InfoHelper:onActivateDemoLicenseSuccess', {\n\t\t\t\t\tresult: response,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic openBuySubscriptionPage(): void\n\t{\n\t\tajax.runAction('ui.infoHelper.getBuySubscriptionUrl').then((response) => {\n\t\t\tif (!!response.data && !!response.data.url)\n\t\t\t{\n\t\t\t\tif (response.data.action === 'blank')\n\t\t\t\t{\n\t\t\t\t\twindow.open(response.data.url, '_blank');\n\t\t\t\t}\n\t\t\t\telse if (response.data.action === 'redirect')\n\t\t\t\t{\n\t\t\t\t\twindow.location.href = response.data.url;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic activateTrialFeature(data): void\n\t{\n\t\tajax.runAction(\n\t\t\t'ui.infoHelper.activateTrialFeature',\n\t\t\t{\n\t\t\t\tdata: {\n\t\t\t\t\tfeatureId: data.featureId,\n\t\t\t\t},\n\t\t\t},\n\t\t).then((response) => {\n\t\t\tconst slider = BX.SidePanel.Instance.getTopSlider();\n\t\t\tif (slider)\n\t\t\t{\n\t\t\t\tBX.UI.InfoHelper.sliderProviderForOldFormat?.getFrame().contentWindow.postMessage(\n\t\t\t\t\t{\n\t\t\t\t\t\taction: 'onActivateTrialFeature',\n\t\t\t\t\t\tresult: response,\n\t\t\t\t\t},\n\t\t\t\t\t'*',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (response.data.success === 'Y')\n\t\t\t{\n\t\t\t\tBX.onCustomEvent('BX.UI.InfoHelper:onActivateTrialFeatureSuccess', {\n\t\t\t\t\tresult: response,\n\t\t\t\t\tfeatureId: data.featureId,\n\t\t\t\t\t// featureId: this.featureId\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n","export class ProvidersType\n{\n\tstatic SLIDER: string = 'slider';\n\tstatic POPUP: string = 'popup';\n}\n","import { ajax } from 'main.core';\nimport { ProviderRequestFactoryConfiguration } from './types/configurations';\nimport { ProvidersType } from './types/providers-type';\n\nexport class ProviderRequestFactory\n{\n\t#type: ProvidersType.SLIDER | ProvidersType.POPUP ;\n\t#code: ?string;\n\t#featureId: ?string;\n\tstatic controller: string = 'ui.infoHelper.getInitParams';\n\n\tconstructor(configuration: ProviderRequestFactoryConfiguration)\n\t{\n\t\tif ((configuration.type === ProvidersType.SLIDER) || (configuration.type === ProvidersType.POPUP))\n\t\t{\n\t\t\tthis.#type = configuration.type;\n\t\t\tthis.#code = configuration.code ?? null;\n\t\t\tthis.#featureId = configuration.featureId ?? null;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Invalid parameter 'type'\");\n\t\t}\n\t}\n\n\tgetRequest(): Promise\n\t{\n\t\treturn ajax.runAction(ProviderRequestFactory.controller, {\n\t\t\tdata: {\n\t\t\t\ttype: this.#type,\n\t\t\t\tcode: this.#code,\n\t\t\t\tcurrentUrl: window.location.href,\n\t\t\t\tfeatureId: this.#featureId,\n\t\t\t},\n\t\t});\n\t}\n}","export class BaseProvider\n{\n\tshow(code, params): void\n\t{\n\t\tthrow new Error('Must be implemented in a child class');\n\t}\n\n\tclose(): void\n\t{\n\t\tthrow new Error('Must be implemented in a child class');\n\t}\n}\n","import { Type, Uri, Event } from 'main.core';\nimport { Loader } from 'main.loader';\nimport { Actions } from '../actions';\nimport { ProviderRequestFactory } from '../provider-request-factory';\nimport { ProvidersType } from '../types/providers-type';\nimport { BaseProvider } from './base-provider';\nimport { FeaturePromotersRegistry } from 'ui.info-helper';\n\nexport class SliderProvider extends BaseProvider\n{\n\tconstructor(params = {})\n\t{\n\t\tsuper();\n\t\tthis.frameUrlTemplate = params.frameUrlTemplate || '';\n\t\tthis.frameUrl = Type.isStringFilled(params.frameUrl) ? params.frameUrl : '';\n\t\tthis.width = Type.isNumber(params.width) ? params.width : 700;\n\t\tthis.constructorParams = params;\n\n\t\tif (params.dataSource && params.dataSource instanceof Promise)\n\t\t{\n\t\t\tthis.dataSource = params.dataSource;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst providerRequestFactoryConfiguration = {\n\t\t\t\ttype: ProvidersType.SLIDER,\n\t\t\t\tcode: null,\n\t\t\t\tfeatureId: params.featureId,\n\t\t\t};\n\t\t\tthis.dataSource = (new ProviderRequestFactory(providerRequestFactoryConfiguration)).getRequest();\n\t\t}\n\t}\n\n\t__showExternal(code, option): void\n\t{\n\t\tlet width = 700;\n\t\tconst sliderId = `${this.getId()}:${code}`;\n\t\tconst frame = this.#createFrameNode();\n\t\tif (!!option && !!option.width && option.width > 0)\n\t\t{\n\t\t\twidth = option.width;\n\t\t}\n\n\t\tconst contentCallback = (slider) => {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst providerRequestFactoryConfiguration = {\n\t\t\t\t\ttype: ProvidersType.SLIDER,\n\t\t\t\t};\n\t\t\t\t(new ProviderRequestFactory(providerRequestFactoryConfiguration)).getRequest()\n\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\tframe.src = this.#buildUrl(code);\n\n\t\t\t\t\t\treturn this.#createContainerNode(this.getLoader(), frame);\n\t\t\t\t\t})\n\t\t\t\t\t.then((content) => resolve(content));\n\t\t\t});\n\t\t};\n\n\t\tconst provider = FeaturePromotersRegistry.getPromoter({ code }).getProvider();\n\n\t\tthis.#openSlider({\n\t\t\tid: sliderId,\n\t\t\tcontentCallback: contentCallback.bind(this),\n\t\t\twidth: width,\n\t\t\tevents: {\n\t\t\t\tonLoad: () => {\n\t\t\t\t\tprovider.frameNode = frame;\n\t\t\t\t\tprovider.frameUrl = frame.src;\n\t\t\t\t\tthis.showFrame(frame);\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tshow(code, params): void\n\t{\n\t\tif (this.isOpen())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (!Type.isPlainObject(params))\n\t\t{\n\t\t\tparams = {};\n\t\t}\n\n\t\tif (!code && !params.featureId && !this.constructorParams.featureId && !this.constructorParams.dataSource)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.contentCallback = (slider) => {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tif (this.hasOpen)\n\t\t\t\t{\n\t\t\t\t\tresolve(this.getContent());\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.dataSource\n\t\t\t\t\t\t.then((response) => {\n\t\t\t\t\t\t\tconst { data } = response;\n\t\t\t\t\t\t\tif (data.code)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcode = data.code;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.frameUrlTemplate = data.frameUrlTemplate;\n\t\t\t\t\t\t\tthis.frameUrl = this.#buildUrl(code, params, data);\n\n\t\t\t\t\t\t\tif (this.getFrame().src !== this.frameUrl)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.getFrame().src = this.frameUrl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.bindEvent(data.availableDomainList);\n\t\t\t\t\t\t\tthis.hasOpen = true;\n\n\t\t\t\t\t\t\treturn resolve(this.getContent());\n\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tthis.#openSlider({\n\t\t\tid: this.getId(),\n\t\t\tcontentCallback: this.contentCallback,\n\t\t\twidth: this.width,\n\t\t\tevents: {\n\t\t\t\tonLoad: () => this.showFrame(),\n\t\t\t\tonClose: () => {\n\t\t\t\t\tEvent.unbindAll(window, 'message');\n\t\t\t\t\tif (this.frameNode)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.frameNode.contentWindow?.postMessage({ action: 'onCloseWidget' }, '*');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tbindEvent(availableDomainList): void\n\t{\n\t\tBX.bind(top.window, 'message', BX.proxy(function(event)\n\t\t{\n\t\t\tif (!event.origin || (!!event.origin && !availableDomainList.includes(event.origin)))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!event.data || !Type.isObject(event.data))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst action = Actions[event.data.action];\n\n\t\t\tif (Type.isFunction(action))\n\t\t\t{\n\t\t\t\taction(event.data);\n\t\t\t}\n\t\t}, this));\n\t}\n\n\t#openSlider(params): void\n\t{\n\t\tBX.SidePanel.Instance.open(\n\t\t\tparams.id,\n\t\t\t{\n\t\t\t\tcontentCallback: params.contentCallback,\n\t\t\t\twidth: params.width,\n\t\t\t\tloader: 'default-loader',\n\t\t\t\tcacheable: false,\n\t\t\t\tcustomRightBoundary: 0,\n\t\t\t\tevents: params.events,\n\t\t\t},\n\t\t);\n\t}\n\n\t#buildUrl(code, params = {}, data = null): string\n\t{\n\t\tlet url = this.frameUrlTemplate.replace(/code/, code);\n\n\t\tif (params.featureId && Type.isArray(data.trialableFeatureList))\n\t\t{\n\t\t\turl = Uri.addParam(url, {\n\t\t\t\tfeatureId: params.featureId,\n\t\t\t\ttrialableFeatureList: data.trialableFeatureList.join(','),\n\t\t\t});\n\t\t}\n\n\t\treturn url;\n\t}\n\n\tclose(): void\n\t{\n\t\tconst slider = this.getSlider();\n\t\tif (slider && slider.isOpen())\n\t\t{\n\t\t\tslider.close();\n\t\t}\n\t}\n\n\tgetContent(): HTMLElement\n\t{\n\t\tif (this.content)\n\t\t{\n\t\t\treturn this.content;\n\t\t}\n\t\tthis.content = this.#createContainerNode(this.getLoader(), this.getFrame());\n\n\t\treturn this.content;\n\t}\n\n\t#createContainerNode(loader, frame): HTMLElement\n\t{\n\t\treturn BX.create('div', {\n\t\t\tattrs: {\n\t\t\t\tclassName: 'info-helper-container',\n\t\t\t\tid: 'info-helper-container',\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tloader,\n\t\t\t\tframe,\n\t\t\t],\n\t\t});\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn 'ui:info_helper';\n\t}\n\n\tgetFrame(): HTMLElement\n\t{\n\t\tif (this.frameNode)\n\t\t{\n\t\t\treturn this.frameNode;\n\t\t}\n\n\t\tthis.frameNode = this.#createFrameNode();\n\n\t\treturn this.frameNode;\n\t}\n\n\thasFrameNode(): boolean\n\t{\n\t\treturn Type.isElementNode(this.frameNode);\n\t}\n\n\t#createFrameNode(): HTMLElement\n\t{\n\t\treturn BX.create('iframe', {\n\t\t\tattrs: {\n\t\t\t\tclassName: 'info-helper-panel-iframe',\n\t\t\t\tsrc: 'about:blank',\n\t\t\t},\n\t\t});\n\t}\n\n\tshowFrame(frame): void\n\t{\n\t\tif (!frame)\n\t\t{\n\t\t\tframe = this.getFrame();\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tframe.classList.add('info-helper-panel-iframe-show');\n\t\t}, 600);\n\t}\n\n\tgetSlider(): BX.SidePanel.Slider\n\t{\n\t\treturn BX.SidePanel.Instance.getSlider(this.getId());\n\t}\n\n\tisOpen(): boolean\n\t{\n\t\treturn this.getSlider() && this.getSlider().isOpen();\n\t}\n\n\tgetLoader(): Loader\n\t{\n\t\tif (this.popupLoader)\n\t\t{\n\t\t\treturn this.popupLoader;\n\t\t}\n\n\t\tconst loader = new Loader({\n\t\t\ttarget: BX('info-helper-container'),\n\t\t\tsize: 100,\n\t\t});\n\n\t\tloader.show();\n\t\tthis.popupLoader = loader.data.container;\n\n\t\treturn this.popupLoader;\n\t}\n}\n","import { Uri } from 'main.core';\nimport { sendData } from 'ui.analytics';\n\nexport class Analytics\n{\n\t#code: string;\n\t#category: string;\n\n\tconstructor(code: string, category: string)\n\t{\n\t\tthis.#code = code;\n\t\tthis.#category = category;\n\t}\n\n\tsendByEventName(event: string, additionalParameter: ?string = null): void\n\t{\n\t\tsendData({\n\t\t\ttool: 'InfoHelper',\n\t\t\tcategory: this.#category,\n\t\t\ttype: this.#code,\n\t\t\tevent: event,\n\t\t\tc_section: (new Uri(document.location.href)).getPath(),\n\t\t\tp1: additionalParameter,\n\t\t});\n\t}\n}","import { Type } from 'main.core';\nimport { PopupWithHeader, SaleTemplate } from 'ui.popup-with-header';\nimport { ProviderRequestFactory } from '../provider-request-factory';\nimport type { PopupProviderConfiguration } from '../types/configurations';\nimport { ProvidersType } from '../types/providers-type';\nimport { Analytics } from '../analytics';\nimport { BaseProvider } from './base-provider';\n\nexport class PopupProvider extends BaseProvider\n{\n\t#dataSource: Promise;\n\t#bindElement: HTMLElement;\n\t#popup: PopupWithHeader;\n\t#code: string;\n\t#analytics: Analytics;\n\n\tconstructor(config: PopupProviderConfiguration)\n\t{\n\t\tsuper();\n\n\t\tif (Type.isDomNode(config.bindElement))\n\t\t{\n\t\t\tthis.#bindElement = config.bindElement;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Invalid parameter 'bindElement'\");\n\t\t}\n\n\t\tif (Type.isString(config.code))\n\t\t{\n\t\t\tthis.#code = config.code;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow new Error(\"Invalid parameter 'code'\");\n\t\t}\n\n\t\tif (config.dataSource && config.dataSource instanceof Promise)\n\t\t{\n\t\t\tthis.#dataSource = config.dataSource;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst providerRequestFactoryConfiguration = {\n\t\t\t\ttype: ProvidersType.POPUP,\n\t\t\t\tcode: this.#code,\n\t\t\t\tfeatureId: config.featureId,\n\t\t\t};\n\t\t\tthis.#dataSource = (new ProviderRequestFactory(providerRequestFactoryConfiguration)).getRequest();\n\t\t}\n\n\t\tthis.#analytics = new Analytics(this.#code, ProvidersType.POPUP);\n\t}\n\n\tshow(code, params): void\n\t{\n\t\tthis.#getPopup().show();\n\t\tthis.#analytics.sendByEventName('show');\n\t}\n\n\tclose()\n\t{\n\t\tthis.#getPopup().close();\n\t\tthis.#analytics.sendByEventName('close');\n\t}\n\n\t#getPopup(): PopupWithHeader\n\t{\n\t\tif (!this.#popup)\n\t\t{\n\t\t\tthis.#popup = new PopupWithHeader({\n\t\t\t\ttarget: this.#bindElement,\n\t\t\t\tid: `demo-popup-components-maker-${Math.random(8)}`,\n\t\t\t\twidth: 344,\n\t\t\t\tcontent: [],\n\t\t\t\tasyncData: this.#dataSource,\n\t\t\t\ttemplate: new SaleTemplate(),\n\t\t\t\tanalyticsCallback: (event, additionalParameter) => {\n\t\t\t\t\tif (this.#analytics)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.#analytics.sendByEventName(event, additionalParameter);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\treturn this.#popup;\n\t}\n}\n","import { Extension, Type } from 'main.core';\nimport { InfoHelper } from 'ui.info-helper';\nimport { BaseProvider } from './providers/base-provider';\nimport { PopupProvider } from './providers/popup-provider';\nimport { SliderProvider } from './providers/slider-provider';\nimport type { FeaturePromoterConfiguration } from './types/configurations';\n\nexport class FeaturePromoter\n{\n\t#code: string;\n\t#provider: BaseProvider;\n\t#options: FeaturePromoterConfiguration;\n\n\tconstructor(options: FeaturePromoterConfiguration)\n\t{\n\t\tif (!options.code && !options.featureId)\n\t\t{\n\t\t\tthrow new Error(\"Either the 'code' parameter or the 'featureId' parameter is required\");\n\t\t}\n\n\t\tthis.#options = options;\n\t\tthis.#options.bindElement = options.bindElement ?? null;\n\t\tthis.#code = options.code ?? '';\n\n\t\tconst settings = Extension.getSettings('ui.info-helper');\n\t\tthis.#provider = this.#createProvider(settings);\n\t}\n\n\tgetOptions(): FeaturePromoterConfiguration\n\t{\n\t\treturn this.#options;\n\t}\n\n\tgetCode(): string\n\t{\n\t\treturn this.#code;\n\t}\n\n\tgetProvider(): BaseProvider\n\t{\n\t\treturn this.#provider;\n\t}\n\n\tshow(): void\n\t{\n\t\treturn this.#provider.show(this.#code, {});\n\t}\n\n\tclose(): void\n\t{\n\t\treturn this.#provider.close();\n\t}\n\n\tgetBindElement(): ?HTMLElement\n\t{\n\t\treturn this.getOptions().bindElement;\n\t}\n\n\t#createProvider(settings: Object): BaseProvider\n\t{\n\t\tif (\n\t\t\tType.isObject(settings)\n\t\t\t&& settings.popupProviderEnabled\n\t\t\t&& Type.isDomNode(this.getOptions().bindElement)\n\t\t\t&& (!this.getOptions().featureId || !settings.isUpgradeTariffAvailable)\n\t\t)\n\t\t{\n\t\t\treturn new PopupProvider({\n\t\t\t\tbindElement: this.getOptions().bindElement,\n\t\t\t\tcode: this.#code,\n\t\t\t\tfeatureId: this.getOptions().featureId ?? null,\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst provider = new SliderProvider({ featureId: this.getOptions().featureId ?? null });\n\t\t\tInfoHelper.sliderProviderForOldFormat ??= provider;\n\n\t\t\treturn provider;\n\t\t}\n\t}\n}","import { FeaturePromoter } from './feature-promoter';\nimport type { FeaturePromoterConfiguration } from './types/configurations';\n\nexport class FeaturePromotersRegistry\n{\n\tstatic #promoters: Array<FeaturePromoter> = [];\n\n\tstatic register(promoter: FeaturePromoter): void\n\t{\n\t\tif (!FeaturePromotersRegistry.exist(promoter))\n\t\t{\n\t\t\tFeaturePromotersRegistry.#promoters.push(promoter);\n\t\t}\n\t}\n\n\tstatic exist(promoter: FeaturePromoter): boolean\n\t{\n\t\treturn FeaturePromotersRegistry.#promoters.find((savedPromoter) => savedPromoter === promoter);\n\t}\n\n\tstatic getPromoter(config: FeaturePromoterConfiguration): FeaturePromoter\n\t{\n\t\tlet promoter;\n\n\t\tFeaturePromotersRegistry.#promoters.forEach((savedPromoter) => {\n\t\t\tlet isSavedPromoter = true;\n\n\t\t\tObject.keys(savedPromoter.getOptions()).forEach((key) => {\n\t\t\t\tif (savedPromoter.getOptions()[key] !== config[key])\n\t\t\t\t{\n\t\t\t\t\tisSavedPromoter = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (isSavedPromoter)\n\t\t\t{\n\t\t\t\tpromoter = savedPromoter;\n\t\t\t}\n\t\t});\n\n\t\tif (promoter instanceof FeaturePromoter)\n\t\t{\n\t\t\treturn promoter;\n\t\t}\n\n\t\tpromoter = new FeaturePromoter(config);\n\t\tFeaturePromotersRegistry.register(promoter);\n\n\t\treturn promoter;\n\t}\n\n\tstatic getLastPromoter(): ?FeaturePromoter\n\t{\n\t\tconst count = this.#promoters.length;\n\n\t\treturn this.#promoters[count - 1] ?? null;\n\t}\n}","import { Event } from 'main.core';\nimport { FeaturePromotersRegistry } from './export';\n\nexport class FeaturePromoterAutoBinder\n{\n\tstatic #elements: ?NodeList;\n\tstatic #isLaunch: boolean;\n\tstatic #attributeName: string = 'data-feature-promoter';\n\n\tstatic launch(): void\n\t{\n\t\tif (!FeaturePromoterAutoBinder.#isLaunch)\n\t\t{\n\t\t\tFeaturePromoterAutoBinder.getElements().forEach((element) => {\n\t\t\t\tEvent.bind(element, 'click', (event) => {\n\t\t\t\t\tconst code = event.target?.attributes?.getNamedItem(FeaturePromoterAutoBinder.#attributeName)?.value;\n\n\t\t\t\t\tif (code)\n\t\t\t\t\t{\n\t\t\t\t\t\tFeaturePromotersRegistry.getPromoter({\n\t\t\t\t\t\t\tcode: code,\n\t\t\t\t\t\t\tbindElement: element,\n\t\t\t\t\t\t}).show();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\tFeaturePromoterAutoBinder.#isLaunch = true;\n\t\t}\n\t}\n\n\tstatic getElements(): NodeList\n\t{\n\t\tif (!FeaturePromoterAutoBinder.#elements)\n\t\t{\n\t\t\tFeaturePromoterAutoBinder.#elements = document.querySelectorAll(`[${FeaturePromoterAutoBinder.#attributeName}]`);\n\t\t}\n\n\t\treturn FeaturePromoterAutoBinder.#elements;\n\t}\n}\n","import { InfoHelper } from './info-helper';\nimport { FeaturePromoter } from './feature-promoter';\nimport { FeaturePromotersRegistry } from './feature-promoters-registry';\nimport { FeaturePromoterAutoBinder } from './feature-promoter-auto-binder';\nimport './info-helper.css';\n\nexport {\n\tInfoHelper,\n\tFeaturePromoter,\n\tFeaturePromotersRegistry,\n};\n\nFeaturePromoterAutoBinder.launch();\n","import { Type } from 'main.core';\nimport { SliderProvider } from './providers/slider-provider';\n\nexport class InfoHelper\n{\n\tstatic frameUrlTemplate : '';\n\tstatic frameNode : null;\n\tstatic popupLoader : null;\n\tstatic availableDomainList : null;\n\tstatic frameUrl: '';\n\tstatic inited: false;\n\tstatic sliderProviderForOldFormat: null;\n\n\tstatic init(params): void\n\t{\n\t\tthis.sliderProviderForOldFormat = new SliderProvider({\n\t\t\twidth: 700,\n\t\t\tframeUrlTemplate: params.frameUrlTemplate,\n\t\t});\n\t}\n\n\tstatic __showExternal(code, option): void\n\t{\n\t\tthis.sliderProviderForOldFormat?.__showExternal(code, option);\n\t}\n\n\tstatic show(code, params): void\n\t{\n\t\tif (!Type.isPlainObject(params))\n\t\t{\n\t\t\tparams = {};\n\t\t}\n\n\t\tthis.init({});\n\t\tthis.sliderProviderForOldFormat?.show(code, params);\n\t}\n\n\tstatic close(): void\n\t{\n\t\tthis.sliderProviderForOldFormat?.close();\n\t}\n\n\tstatic getContent()\n\t{\n\t\treturn this.sliderProviderForOldFormat?.getContent();\n\t}\n\n\tstatic getFrame()\n\t{\n\t\treturn this.sliderProviderForOldFormat?.getFrame();\n\t}\n\n\tstatic showFrame(frame)\n\t{\n\t\tthis.sliderProviderForOldFormat?.showFrame(frame);\n\t}\n\n\tstatic getLoader()\n\t{\n\t\treturn this.sliderProviderForOldFormat?.getLoader();\n\t}\n\n\tstatic getSliderId(): string\n\t{\n\t\treturn this.sliderProviderForOldFormat?.getId();\n\t}\n\n\tstatic getSlider()\n\t{\n\t\treturn this.sliderProviderForOldFormat?.getSlider();\n\t}\n\n\tstatic reloadParent(): void\n\t{\n\t\tlet slider = false;\n\t\tconst sliderTop = BX.SidePanel.Instance.getTopSlider();\n\n\t\tif (sliderTop)\n\t\t{\n\t\t\tslider = BX.SidePanel.Instance.getPreviousSlider(sliderTop);\n\t\t}\n\n\t\tif (slider)\n\t\t{\n\t\t\tslider.reload();\n\t\t}\n\t\telse\n\t\t{\n\t\t\twindow.location.reload();\n\t\t}\n\t}\n\n\tstatic isOpen(): boolean\n\t{\n\t\treturn this.sliderProviderForOldFormat?.isOpen();\n\t}\n\n\tstatic isInited(): boolean\n\t{\n\t\treturn this.inited;\n\t}\n}"],"names":["Actions","[object Object]","BX","SidePanel","Instance","getTopSlider","_BX$SidePanel$Instanc","close","UI","InfoHelper","window","location","href","frameUrl","open","reloadParent","data","top","url","openSlider","opener","Messenger","Public","openChat","analyticData","tool","c_section","document","event","toolId","ajax","runAction","then","response","chatId","type","category","sendData","featureCode","code","mpSubscribe","Extension","getSettings","licenseType","Uri","addParam","product","subscr","tariff","period","settingsUrl","__showExternal","option","licenseAgreed","ajaxRestPath","callback","result","error","sliderProviderForOldFormat","_BX$UI$InfoHelper$sli","getFrame","contentWindow","postMessage","action","settings","region","licenseNeverPayed","openInformer","marketUrl","dataType","method","sessid","bitrix_sessid","onsuccess","onfailure","error_type","slider","promoter","FeaturePromotersRegistry","getLastPromoter","provider","getProvider","SliderProvider","getCode","_BX$UI$InfoHelper$sli2","success","onCustomEvent","featureId","_BX$UI$InfoHelper$sli3","ProvidersType","SLIDER","POPUP","ProviderRequestFactory","constructor","configuration","Object","writable","value","Error","babelHelpers","getRequest","controller","this","currentUrl","BaseProvider","show","params","super","frameUrlTemplate","Type","isStringFilled","width","isNumber","constructorParams","dataSource","Promise","providerRequestFactoryConfiguration","sliderId","getId","frame","getPromoter","id","contentCallback","resolve","reject","src","getLoader","content","bind","events","onLoad","frameNode","showFrame","isOpen","isPlainObject","hasOpen","getContent","bindEvent","availableDomainList","onClose","Event","unbindAll","_this$frameNode$conte","proxy","origin","includes","isObject","isFunction","getSlider","hasFrameNode","isElementNode","setTimeout","classList","add","popupLoader","loader","Loader","target","size","container","cacheable","customRightBoundary","replace","isArray","trialableFeatureList","join","create","attrs","className","children","Analytics","sendByEventName","additionalParameter","getPath","p1","PopupProvider","config","isDomNode","bindElement","isString","PopupWithHeader","Math","random","asyncData","template","SaleTemplate","analyticsCallback","FeaturePromoter","options","getOptions","getBindElement","popupProviderEnabled","isUpgradeTariffAvailable","exist","push","find","savedPromoter","forEach","isSavedPromoter","keys","key","register","count","length","FeaturePromoterAutoBinder","getElements","element","_event$target","attributes","_event$target$attribu","getNamedItem","_event$target$attribu2","querySelectorAll","launch","_this$sliderProviderF","init","_this$sliderProviderF2","_this$sliderProviderF3","_this$sliderProviderF4","_this$sliderProviderF5","_this$sliderProviderF6","_this$sliderProviderF7","_this$sliderProviderF8","_this$sliderProviderF9","sliderTop","getPreviousSlider","reload","_this$sliderProviderF10","inited"],"mappings":"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"}