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/rest/market-expired/dist/ |
Upload File : |
{"version":3,"file":"market-expired.bundle.js","sources":["../src/component/market-item.js","../src/component/market-list.js","../src/component/discount-ear.js","../src/type/popup-type.js","../src/type/popup-category.js","../src/analytic.js","../src/popup/market-expired-popup.js","../src/button/market-popup-button.js","../src/button/subscribe-button.js","../src/button/hide-button.js","../src/popup/market-trial-popup.js","../src/popup/market-subscription-popup.js","../src/component/discount-ear-subscription.js","../src/component/discount-ear-transition.js","../src/button/trial-button.js","../src/popup/market-transition-popup.js","../src/popup/popup-factory.js","../src/type/curtain-page.js","../src/curtain/market-expired-curtain.js","../src/curtain/market-trial-curtain.js","../src/curtain/market-subscription-curtain.js","../src/curtain/market-transition-curtain.js","../src/curtain/curtain-factory.js","../src/market-expired.js"],"sourcesContent":["import { Tag, Dom } from 'main.core';\n\nexport type MarketItemOptions = {\n\tname: string,\n\turi: string,\n\ticon: ?string,\n}\n\nexport class MarketItem\n{\n\t#name: string;\n\t#icon: string;\n\n\tconstructor(options: MarketItemOptions)\n\t{\n\t\tthis.#name = options.name;\n\t\tthis.#icon = options.icon;\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<span class=\"rest-market-item\">\n\t\t\t\t${this.renderIcon()}\n\t\t\t\t<span class=\"rest-market-item__name\" title=\"${this.getName()}\">${this.getName()}</span>\n\t\t\t</span>\n\t\t`;\n\t}\n\n\trenderTo(node: HTMLElement): void\n\t{\n\t\tDom.append(this.getContainer(), node);\n\t}\n\n\tgetName(): string\n\t{\n\t\treturn this.#name;\n\t}\n\n\trenderIcon(): HTMLElement\n\t{\n\t\tif (!this.#icon)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"rest-market-item__icon-container\">\n\t\t\t\t\t<div class=\"ui-icon-set --cube-plus rest-market-item__icon\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-item__icon-container\" \n\t\t\t\tstyle=\"\n\t\t\t\t\tbackground-image: url(${this.#icon});\n\t\t\t\t\tbackground-size: cover;\n\t\t\t\t\">\n\t\t\t</div>\n\t\t`;\n\t}\n}\n","import { Tag, Type, Loc } from 'main.core';\nimport { MarketItem } from './market-item';\n\nexport type MarketListOptions = {\n\titems: Array<MarketItem>,\n\ttitle: ?string,\n\tlink: ?string,\n\tcount: number,\n\tonClick: func,\n};\n\nexport class MarketList\n{\n\t#items: Array<MarketItem>;\n\t#title: string;\n\t#link: string;\n\t#count: number;\n\t#onClick: func;\n\n\tconstructor(options: MarketListOptions)\n\t{\n\t\tthis.#items = Type.isArray(options.items) ? options.items : [];\n\t\tthis.#title = options.title;\n\t\tthis.#link = options.link;\n\t\tthis.#count = options.count;\n\t\tthis.#onClick = options.onClick;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-list\">\n\t\t\t\t<div class=\"rest-market-list__header\">\n\t\t\t\t\t<span class=\"rest-market-list__title\">${this.#title}</span>\n\t\t\t\t\t<a class=\"rest-market-list__link\" href=\"${this.#link}\" onclick=\"${this.#onClick}\">\n\t\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_MARKET_LIST_LINK', {\n\t\t\t\t\t\t\t'#COUNT#': this.#count,\n\t\t\t\t\t\t})}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t${this.#renderList()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderList(): HTMLElement\n\t{\n\t\tif (this.#items.length === 0)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst listContainer = Tag.render`\n\t\t\t<div class=\"rest-market-list__container\"></div>\n\t\t`;\n\n\t\tthis.#items.forEach((item: MarketItem) => {\n\t\t\titem.renderTo(listContainer);\n\t\t});\n\n\t\treturn listContainer;\n\t}\n}\n","export class DiscountEar\n{\n\tgetContainer(): HTMLElement\n\t{\n\t\tthrow new Error('Not implemented');\n\t}\n}\n","export default class PopupType\n{\n\tstatic FINAL = 'FINAL';\n\tstatic WARNING = 'WARNING';\n}\n","export default class PopupCategory\n{\n\tstatic TRANSITION = 'transition';\n\tstatic SUBSCRIPTION = 'subscription';\n\tstatic TRIAL = 'trial';\n}\n","import { AnalyticsOptions, sendData } from 'ui.analytics';\nimport PopupType from './type/popup-type';\nimport PopupCategory from './type/popup-category';\n\nexport type AnalyticContext = {\n\twithDiscount: boolean,\n\tpopupType: PopupType,\n\tpopupCategory: PopupCategory,\n}\n\nexport class Analytic\n{\n\tconstructor(context: AnalyticContext)\n\t{\n\t\tthis.context = context;\n\t}\n\n\tsendShow(): void\n\t{\n\t\tthis.#send({\n\t\t\ttool: 'infohelper',\n\t\t\tcategory: 'market',\n\t\t\tevent: 'show_popup',\n\t\t});\n\t}\n\n\tsendClickButton(button: string): void\n\t{\n\t\tthis.#send({\n\t\t\ttool: 'infohelper',\n\t\t\tcategory: 'market',\n\t\t\tevent: 'click_button',\n\t\t\tc_element: button,\n\t\t});\n\t}\n\n\tsendDemoActivated(): void\n\t{\n\t\tthis.#send({\n\t\t\ttool: 'intranet',\n\t\t\tcategory: 'demo',\n\t\t\tevent: 'market_demo_activated',\n\t\t});\n\t}\n\n\t#send(options: AnalyticsOptions): void\n\t{\n\t\tsendData({\n\t\t\t...options,\n\t\t\ttype: this.#getType(),\n\t\t\tp1: this.#getP1(),\n\t\t});\n\t}\n\n\t#getType(): string\n\t{\n\t\tlet type = this.context.popupType === PopupType.WARNING\n\t\t\t? 'pre_disconnection_alert'\n\t\t\t: 'post_disconnection_notice';\n\n\t\tif (this.context.popupCategory === PopupCategory.TRIAL)\n\t\t{\n\t\t\ttype = `${type}_demo`;\n\t\t}\n\n\t\treturn type;\n\t}\n\n\t#getP1(): string\n\t{\n\t\treturn `discount_${this.context.withDiscount ? 'Y' : 'N'}`;\n\t}\n}\n","import { Tag, Dom } from 'main.core';\nimport { PopupWindowManager } from 'main.popup';\nimport { MarketList } from '../component/market-list';\nimport { EventEmitter } from 'main.core.events';\nimport { DiscountEar } from '../component/discount-ear';\nimport 'main.polyfill.intersectionobserver';\nimport { Analytic } from '../analytic';\nimport PopupType from '../type/popup-type';\nimport PopupCategory from '../type/popup-category';\n\nexport type MarketExpiredPopupOptions = {\n\texpireDate: string,\n\tappList: ?MarketList,\n\tintegrationList: ?MarketList,\n\tmarketSubscriptionUrl: string,\n\twithDemo: boolean,\n\tolWidgetCode: string,\n\tanalytic: Analytic,\n\ttype: PopupType,\n\tdiscountEar: ?DiscountEar;\n\texpireDays: string;\n\tisRenamedMarket: boolean;\n};\n\nexport class MarketExpiredPopup extends EventEmitter\n{\n\texpireDate: string;\n\texpireDays: string;\n\t#popup: ?Popup = null;\n\t#container: ?HTMLElement = null;\n\t#appList: ?MarketList;\n\t#integrationList: ?MarketList;\n\twithDemo: boolean;\n\tolWidgetCode: string;\n\t#analytic: Analytic;\n\tdiscountEar: ?DiscountEar;\n\tmarketLabel: boolean;\n\n\tconstructor(options: MarketExpiredPopupOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('Rest.MarketExpired:Popup');\n\t\tthis.expireDate = options.expireDate;\n\t\tthis.#appList = options.appList;\n\t\tthis.#integrationList = options.integrationList;\n\t\tthis.withDemo = options.withDemo;\n\t\tthis.olWidgetCode = options.olWidgetCode;\n\t\tthis.#analytic = options.analytic;\n\t\tthis.type = options.type;\n\t\tthis.expireDays = options.expireDays;\n\t\tthis.discountEar = options.discountEar;\n\t\tthis.marketLabel = options.isRenamedMarket ? '' : '_MARKET_PLUS';\n\t}\n\n\tgetTitle(): string\n\t{\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tgetCategory(): PopupCategory\n\t{\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tshow(): void\n\t{\n\t\tthis.#popup ??= PopupWindowManager.create(\n\t\t\t`marketExpiredPopup_${this.getCategory()}_${this.type}`,\n\t\t\tnull,\n\t\t\t{\n\t\t\t\tanimation: {\n\t\t\t\t\tshowClassName: 'rest-market-expired-popup__show',\n\t\t\t\t\tcloseAnimationType: 'animation',\n\t\t\t\t},\n\t\t\t\toverlay: true,\n\t\t\t\tcontent: this.#getContent(),\n\t\t\t\tdisableScroll: true,\n\t\t\t\tpadding: 0,\n\t\t\t\tclassName: 'rest-market-expired-popup-wrapper',\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tevents: {\n\t\t\t\t\tonClose: this.onClose.bind(this),\n\t\t\t\t\tonShow: this.onOpen.bind(this),\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\n\t\tconst observerCallback = (entries, observer) => {\n\t\t\tentries.forEach((entry) => {\n\t\t\t\tif (!entry.isIntersecting)\n\t\t\t\t{\n\t\t\t\t\tthis.#popup.setDisableScroll(false);\n\t\t\t\t\tobserver.unobserve(entry.target);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tconst observer = new IntersectionObserver(observerCallback, {\n\t\t\troot: null,\n\t\t\trootMargin: '0px',\n\t\t\tthreshold: [0, 1],\n\t\t});\n\t\tobserver.observe(this.#popup.getContentContainer().querySelector('.rest-market-expired-popup__close-icon'));\n\t\tobserver.observe(this.#popup.getContentContainer().querySelector('.rest-market-expired-popup__button-container'));\n\n\t\tthis.#popup?.show();\n\t\tthis.#analytic?.sendShow();\n\n\t\t// hack for blur\n\t\tif (this.discountEar)\n\t\t{\n\t\t\tif (this.#popup.getContentContainer().querySelector('.rest-market-expired-popup__content-wrapper').offsetHeight < window.innerHeight)\n\t\t\t{\n\t\t\t\tDom.style(\n\t\t\t\t\tthis.#getContainer(),\n\t\t\t\t\t{\n\t\t\t\t\t\tmaxHeight: `${this.discountEar.getContainer().offsetHeight}px`,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tDom.style(\n\t\t\t\t\tthis.#popup.getContentContainer().parentNode,\n\t\t\t\t\t{\n\t\t\t\t\t\t'backdrop-filter': 'none',\n\t\t\t\t\t\t'-webkit-backdrop-filter': 'none',\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.#popup.adjustPosition();\n\t\t}\n\t}\n\n\tclose(): void\n\t{\n\t\tthis.#popup.close();\n\t}\n\n\tonClose(): void\n\t{\n\t\tthis.emit('onClose');\n\t}\n\n\tonOpen(): void\n\t{\n\t\tthis.emit('onOpen');\n\t}\n\n\trenderDescription(): HTMLElement\n\t{\n\t\treturn null;\n\t}\n\n\trenderButtons(): HTMLElement\n\t{\n\t\treturn null;\n\t}\n\n\trenderAboutLink(): HTMLElement\n\t{\n\t\treturn '';\n\t}\n\n\tgetAnalytic(): ?Analytic\n\t{\n\t\treturn this.#analytic;\n\t}\n\n\t#getContent(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup\">\n\t\t\t\t${this.#getContainer()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#getContainer(): HTMLElement\n\t{\n\t\tthis.#container ??= Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__container\">\n\t\t\t\t${this.discountEar?.getContainer()}\n\t\t\t\t<div class=\"rest-market-expired-popup__content-wrapper\">\n\t\t\t\t\t<div class=\"rest-market-expired-popup__content\">\n\t\t\t\t\t\t<span class=\"rest-market-expired-popup__title\">${this.getTitle()}</span>\n\t\t\t\t\t\t${this.renderDescription()}\n\t\t\t\t\t\t${this.renderAboutLink()}\n\t\t\t\t\t\t${this.renderButtons()}\n\t\t\t\t\t</div>\n\t\t\t\t\t${this.#renderMarketList()}\n\t\t\t\t\t${this.#renderCloseIcon()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\treturn this.#container;\n\t}\n\n\t#renderCloseIcon(): HTMLElement\n\t{\n\t\tconst onClick = () => {\n\t\t\tthis.#popup.close();\n\t\t\tthis.#analytic?.sendClickButton('cancel');\n\t\t};\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__close-icon ui-icon-set --cross-30\" onclick=\"${onClick}\"></div>\n\t\t`;\n\t}\n\n\t#renderMarketList(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<aside class=\"rest-market-expired-popup__aside\">\n\t\t\t\t${this.#appList?.render()}\n\t\t\t\t${this.#integrationList?.render()}\n\t\t\t</aside>\n\t\t`;\n\t}\n}\n","import { Button } from 'ui.buttons';\nimport { EventEmitter } from 'main.core.events';\nimport { Analytic} from '../analytic';\n\nexport class MarketPopupButton extends EventEmitter\n{\n\tconstructor(options: {\n\t\ttext: string,\n\t\tonSuccess: fn,\n\t\tanalytic: Analytic,\n\t})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Rest.MarketExpired.Button');\n\n\t\tthis.text = options.text;\n\t\tthis.onSuccess = options.onSuccess;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn this.getButton().render();\n\t}\n\n\tgetButtonConfig(): Object\n\t{\n\t\treturn {};\n\t}\n\n\tonClick(): void\n\t{\n\t\tthis.onSuccess?.();\n\t}\n\n\tgetButton(): Button\n\t{\n\t\tthis.button ??= new Button({\n\t\t\t...this.getButtonConfig(),\n\t\t\tclassName: 'rest-market-expired-popup__button',\n\t\t\ttext: this.text,\n\t\t\tonclick: this.onClick.bind(this),\n\t\t});\n\n\t\treturn this.button;\n\t}\n}\n","import { Button } from 'ui.buttons';\nimport { MarketPopupButton } from './market-popup-button';\nimport { Extension } from 'main.core';\n\nexport class SubscribeButton extends MarketPopupButton\n{\n\tgetButtonConfig(): Object\n\t{\n\t\treturn {\n\t\t\tid: 'marketExpiredPopup_button_subscribe',\n\t\t\tsize: Button.Size.MEDIUM,\n\t\t\tcolor: Button.Color.SUCCESS,\n\t\t\tnoCaps: true,\n\t\t\tround: true,\n\t\t\ttag: Button.Tag.LINK,\n\t\t\tlink: this.#getSubscribeLink(),\n\t\t};\n\t}\n\n\tonClick(): void\n\t{\n\t\tthis.analytic?.sendClickButton('buy');\n\t\tsuper.onClick();\n\t}\n\n\t#getSubscribeLink(): string\n\t{\n\t\treturn Extension.getSettings('rest.market-expired')?.marketSubscriptionUrl ?? '';\n\t}\n}\n","import { Button } from 'ui.buttons';\nimport { MarketPopupButton } from './market-popup-button';\n\nexport class HideButton extends MarketPopupButton\n{\n\tgetButtonConfig(): Object\n\t{\n\t\treturn {\n\t\t\tid: 'marketExpiredPopup_button_hide',\n\t\t\tsize: Button.Size.EXTRA_SMALL,\n\t\t\tcolor: Button.Color.LINK,\n\t\t\tnoCaps: true,\n\t\t};\n\t}\n\n\tonClick(): void\n\t{\n\t\tthis.analytic?.sendClickButton('ok');\n\t\tsuper.onClick();\n\t}\n}\n","import { Loc, Tag } from 'main.core';\nimport { MarketExpiredPopup } from './market-expired-popup';\nimport { SubscribeButton } from '../button/subscribe-button';\nimport { HideButton } from '../button/hide-button';\nimport PopupCategory from '../type/popup-category';\nimport PopupType from '../type/popup-type';\n\nexport class MarketTrialPopup extends MarketExpiredPopup\n{\n\tgetCategory(): PopupCategory\n\t{\n\t\treturn PopupCategory.TRIAL;\n\t}\n\n\trenderDescription(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__description\">\n\t\t\t\t<p class=\"rest-market-expired-popup__description-text\">\n\t\t\t\t\t${Loc.getMessage(`REST_MARKET_EXPIRED_POPUP_DESCRIPTION_TRIAL${this.marketLabel}`)}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetTitle(): string\n\t{\n\t\treturn Loc.getMessage(`REST_MARKET_EXPIRED_POPUP_TITLE_TRIAL_${this.type}${this.marketLabel}`, {\n\t\t\t'#DAYS#': this.expireDays,\n\t\t});\n\t}\n\n\trenderButtons(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__buttons-wrapper\">\n\t\t\t\t<div class=\"rest-market-expired-popup__button-container\">\n\t\t\t\t\t${this.#getSubscribeButton().render()}\n\t\t\t\t\t${this.#getHideButton().render()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tonOpen(): void\n\t{\n\t\tif (this.type === PopupType.FINAL)\n\t\t{\n\t\t\tBX.userOptions.save('rest', 'marketSubscriptionPopupDismiss', null, 'Y');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tBX.userOptions.save('rest', 'marketSubscriptionPopupTs', null, Math.floor(Date.now() / 1000));\n\t\t}\n\n\t\tsuper.onOpen();\n\t}\n\n\trenderAboutLink(): HTMLElement\n\t{\n\t\tconst onclick = () => {\n\t\t\tBX.Helper.show('redirect=detail&code=17451118');\n\t\t\tthis.getAnalytic()?.sendClickButton('details');\n\t\t};\n\n\t\treturn Tag.render`\n\t\t\t<span class=\"rest-market-expired-popup__details\">\n\t\t\t\t<a\n\t\t\t\t\tclass=\"ui-link rest-market-expired-popup__link\"\n\t\t\t\t\thref=\"#\"\n\t\t\t\t\tonclick=\"${onclick}\"\n\t\t\t\t>\n\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_DETAILS')}\n\t\t\t\t</a>\n\t\t\t</span>\n\t\t`;\n\t}\n\n\t#getSubscribeButton(): SubscribeButton\n\t{\n\t\treturn new SubscribeButton({\n\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_SUBSCRIBE'),\n\t\t\tanalytic: this.getAnalytic(),\n\t\t});\n\t}\n\n\t#getHideButton(): HideButton\n\t{\n\t\treturn new HideButton({\n\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_NEVER_SHOW_AGAIN'),\n\t\t\tonSuccess: () => {\n\t\t\t\tBX.userOptions.save('rest', 'marketSubscriptionPopupDismiss', null, 'Y');\n\t\t\t\tthis.close();\n\t\t\t},\n\t\t\tanalytic: this.getAnalytic(),\n\t\t});\n\t}\n}\n","import { Loc, Tag } from 'main.core';\nimport { MarketExpiredPopup } from './market-expired-popup';\nimport { SubscribeButton } from '../button/subscribe-button';\nimport { HideButton } from '../button/hide-button';\nimport PopupCategory from '../type/popup-category';\nimport PopupType from '../type/popup-type';\n\nexport class MarketSubscriptionPopup extends MarketExpiredPopup\n{\n\tgetCategory(): PopupCategory\n\t{\n\t\treturn PopupCategory.SUBSCRIPTION;\n\t}\n\n\tgetTitle(): string\n\t{\n\t\tconst replacements = { '#DAYS#': this.expireDays };\n\t\tconst marketLabel = this.type === PopupType.WARNING ? this.marketLabel : '';\n\n\t\treturn Loc.getMessage(`REST_MARKET_EXPIRED_POPUP_TITLE_SUBSCRIPTION_${this.type}${marketLabel}`, replacements);\n\t}\n\n\trenderDescription(): HTMLElement\n\t{\n\t\tconst replacements = { '#DATE#': this.expireDate };\n\t\tconst marketLabel = this.type === PopupType.FINAL ? this.marketLabel : '';\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__description\">\n\t\t\t\t<p class=\"rest-market-expired-popup__description-text\">\n\t\t\t\t\t${\n\t\t\t\t\t\tLoc.getMessage(`REST_MARKET_EXPIRED_POPUP_DESCRIPTION_SUBSCRIPTION_${this.type}${marketLabel}`, replacements)\n\t\t\t\t\t}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderButtons(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__buttons-wrapper\">\n\t\t\t\t<div class=\"rest-market-expired-popup__button-container\">\n\t\t\t\t\t${this.#getSubscribeButton().render()}\n\t\t\t\t\t${this.#getHideButton().render()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tonOpen(): void\n\t{\n\t\tif (this.type === PopupType.FINAL)\n\t\t{\n\t\t\tBX.userOptions.save('rest', 'marketSubscriptionPopupDismiss', null, 'Y');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tBX.userOptions.save('rest', 'marketSubscriptionPopupTs', null, Math.floor(Date.now() / 1000));\n\t\t}\n\n\t\tsuper.onOpen();\n\t}\n\n\trenderAboutLink(): HTMLElement\n\t{\n\t\tconst onclick = () => {\n\t\t\tBX.Helper.show('redirect=detail&code=17451118');\n\t\t\tthis.getAnalytic()?.sendClickButton('details');\n\t\t};\n\n\t\treturn Tag.render`\n\t\t\t<span class=\"rest-market-expired-popup__details\">\n\t\t\t\t<a\n\t\t\t\t\tclass=\"ui-link rest-market-expired-popup__link\"\n\t\t\t\t\thref=\"#\"\n\t\t\t\t\tonclick=\"${onclick}\"\n\t\t\t\t>\n\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_DETAILS')}\n\t\t\t\t</a>\n\t\t\t</span>\n\t\t`;\n\t}\n\n\t#getSubscribeButton(): SubscribeButton\n\t{\n\t\treturn new SubscribeButton({\n\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_RENEW_SUBSCRIPTION'),\n\t\t\tanalytic: this.getAnalytic(),\n\t\t});\n\t}\n\n\t#getHideButton(): HideButton\n\t{\n\t\treturn new HideButton({\n\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_NEVER_SHOW_AGAIN'),\n\t\t\tonSuccess: () => {\n\t\t\t\tBX.userOptions.save('rest', 'marketSubscriptionPopupDismiss', null, 'Y');\n\t\t\t\tthis.close();\n\t\t\t},\n\t\t\tanalytic: this.getAnalytic(),\n\t\t});\n\t}\n}\n","import { Tag, Loc } from 'main.core';\nimport { DiscountEar } from './discount-ear';\n\nexport class DiscountEarSubscription extends DiscountEar\n{\n\tconstructor(props)\n\t{\n\t\tsuper(props);\n\n\t\tthis.discountPercentage = props?.discountPercentage ?? null;\n\t\tthis.termsUrl = props?.termsUrl ?? null;\n\t\tthis.marketLabel = props?.marketLabel ?? '';\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\tthis.container ??= Tag.render`\n\t\t\t<aside class=\"rest-market-expired-popup__discount rest-market-expired-popup__discount--subscription\">\n\t\t\t\t${this.#renderDiscountPercent()}\n\t\t\t\t<p class=\"rest-market-expired-popup__discount-description\">\n\t\t\t\t\t${Loc.getMessage(`REST_MARKET_EXPIRED_POPUP_DISCOUNT_SUBSCRIPTION_DESCRIPTION${this.marketLabel}`)}\n\t\t\t\t</p>\n\t\t\t\t${this.#renderTermsOfPromotion()}\n\t\t\t</aside>\n\t\t`;\n\n\t\treturn this.container;\n\t}\n\n\t#renderDiscountPercent(): HTMLElement\n\t{\n\t\tif (this.discountPercentage)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<p class=\"rest-market-expired-popup__discount-percentage\">\n\t\t\t\t\t- ${this.discountPercentage}%\n\t\t\t\t</p>\n\t\t\t`;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#renderTermsOfPromotion(): HTMLElement\n\t{\n\t\tif (this.termsUrl)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<a href=\"${this.termsUrl}\" target=\"_blank\" class=\"ui-link rest-market-expired-popup__discount-terms\">\n\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_TERMS_OF_PROMOTION')}\n\t\t\t\t</a>\n\t\t\t`;\n\t\t}\n\n\t\treturn '';\n\t}\n}\n","import { Tag, Loc } from 'main.core';\nimport { DiscountEar } from './discount-ear';\n\nexport class DiscountEarTransition extends DiscountEar\n{\n\tgetContainer(): HTMLElement\n\t{\n\t\tthis.container ??= Tag.render`\n\t\t\t<aside class=\"rest-market-expired-popup__discount\">\n\t\t\t\t<p class=\"rest-market-expired-popup__discount-description\">\n\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_DISCOUNT_DESCRIPTION', {\n\t\t\t\t\t\t'[white-span]': '<span class=\"rest-market-expired-popup__discount-description-white\">',\n\t\t\t\t\t\t'[/white-span]': '</span>',\n\t\t\t\t\t})}\n\t\t\t\t</p>\n\t\t\t</aside>\n\t\t`;\n\n\t\treturn this.container;\n\t}\n}\n","import { Button } from 'ui.buttons';\nimport { MarketPopupButton } from './market-popup-button';\nimport { ajax } from 'main.core';\nimport { UI } from 'ui.notification';\nimport { FeaturePromotersRegistry } from 'ui.info-helper';\n\nexport class TrialButton extends MarketPopupButton\n{\n\tgetButtonConfig(): Object\n\t{\n\t\treturn {\n\t\t\tid: 'marketExpiredPopup_button_demo',\n\t\t\tsize: Button.Size.MEDIUM,\n\t\t\tcolor: Button.Color.LIGHT_BORDER,\n\t\t\tnoCaps: true,\n\t\t\tround: true,\n\t\t};\n\t}\n\n\tonClick(): void\n\t{\n\t\tthis.getButton().unbindEvent('click');\n\t\tthis.getButton().setState(Button.State.WAITING);\n\t\tthis.analytic?.sendClickButton('demo');\n\n\t\tajax({\n\t\t\turl: '/bitrix/tools/rest.php',\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\tdata: {\n\t\t\t\tsessid: BX.bitrix_sessid(),\n\t\t\t\taction: 'activate_demo',\n\t\t\t},\n\t\t\tonsuccess: (result) => {\n\t\t\t\tthis.onSuccess();\n\n\t\t\t\tif (result.error)\n\t\t\t\t{\n\t\t\t\t\tUI.Notification.Center.notify({\n\t\t\t\t\t\tcontent: result.error,\n\t\t\t\t\t\tcategory: 'demo_subscribe_error',\n\t\t\t\t\t\tposition: 'top-right',\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\tthis.analytic?.sendDemoActivated();\n\t\t\t\t\tFeaturePromotersRegistry.getPromoter({ code: 'limit_market_trial_active' }).show();\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n}\n","import { Loc, Tag, Type, Dom } from 'main.core';\nimport { MarketExpiredPopup } from './market-expired-popup';\nimport { TrialButton } from '../button/trial-button';\nimport { SubscribeButton } from '../button/subscribe-button';\nimport { HideButton } from '../button/hide-button';\nimport PopupType from '../type/popup-type';\nimport PopupCategory from '../type/popup-category';\n\nexport class MarketTransitionPopup extends MarketExpiredPopup\n{\n\tgetCategory(): PopupCategory\n\t{\n\t\treturn PopupCategory.TRANSITION;\n\t}\n\n\tgetTitle(): string\n\t{\n\t\treturn Loc.getMessage(`REST_MARKET_EXPIRED_POPUP_TITLE_${this.type}`);\n\t}\n\n\trenderDescription(): HTMLElement\n\t{\n\t\tconst descriptionContainer = Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__description\">\n\t\t\t\t<p class=\"rest-market-expired-popup__description-text\">\n\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_DESCRIPTION_1')}\n\t\t\t\t</p>\n\t\t\t\t<p class=\"rest-market-expired-popup__description-text\">\n\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_DESCRIPTION_2')}\n\t\t\t\t</p>\n\t\t\t\t<p class=\"rest-market-expired-popup__description-text\">\n\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_DESCRIPTION_3')}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t`;\n\n\t\tif (this.type === 'FINAL')\n\t\t{\n\t\t\tDom.append(\n\t\t\t\tTag.render`\n\t\t\t\t\t<p class=\"rest-market-expired-popup__description-text\">\n\t\t\t\t\t\t${Loc.getMessage(`REST_MARKET_EXPIRED_POPUP_DESCRIPTION_FINAL${this.marketLabel}`)}\n\t\t\t\t\t</p>\n\t\t\t\t`,\n\t\t\t\tdescriptionContainer,\n\t\t\t);\n\t\t}\n\n\t\tDom.append(\n\t\t\tTag.render`\n\t\t\t\t<p class=\"rest-market-expired-popup__description-text\">\n\t\t\t\t\t${Loc.getMessage(\n\t\t\t\t\t\t`REST_MARKET_EXPIRED_POPUP_${this.type}_DESCRIPTION${this.withDemo ? '_DEMO' : ''}`,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'#DATE#': this.expireDate,\n\t\t\t\t\t\t},\n\t\t\t\t\t)}\n\t\t\t\t</p>\n\t\t\t`,\n\t\t\tdescriptionContainer,\n\t\t);\n\n\t\treturn descriptionContainer;\n\t}\n\n\trenderButtons(): HTMLElement\n\t{\n\t\tif (this.type === PopupType.WARNING)\n\t\t{\n\t\t\treturn this.#renderButtonsForWarning();\n\t\t}\n\n\t\treturn this.#renderButtonsForFinal();\n\t}\n\n\tshow(): void\n\t{\n\t\tsuper.show();\n\n\t\tif (\n\t\t\tType.isStringFilled(this.olWidgetCode)\n\t\t\t&& (!this.withDemo || this.type === 'FINAL')\n\t\t)\n\t\t{\n\t\t\tthis.#showOpenLinesWidget(window, document, `https://bitrix24.team/upload/crm/site_button/loader_${this.olWidgetCode}.js`);\n\t\t}\n\t}\n\n\tonClose(): void\n\t{\n\t\tBX.SiteButton?.hide();\n\t\tBX.userOptions.save('rest', 'marketTransitionPopupTs', null, Math.floor(Date.now() / 1000));\n\t\tsuper.onClose();\n\t}\n\n\trenderAboutLink(): HTMLElement\n\t{\n\t\tconst onclick = () => {\n\t\t\tthis.getAnalytic()?.sendClickButton('details');\n\t\t};\n\n\t\treturn Tag.render`\n\t\t\t<span class=\"rest-market-expired-popup__details\">\n\t\t\t\t<a\n\t\t\t\t\tclass=\"ui-link rest-market-expired-popup__link\"\n\t\t\t\t\thref=\"FEATURE_PROMOTER=${this.#getFeatureCode()}\"\n\t\t\t\t\tonclick=\"${onclick}\"\n\t\t\t\t>\n\t\t\t\t\t${Loc.getMessage('REST_MARKET_EXPIRED_POPUP_DETAILS')}\n\t\t\t\t</a>\n\t\t\t</span>\n\t\t`;\n\t}\n\n\t#getDemoButton(): TrialButton\n\t{\n\t\treturn new TrialButton({\n\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_DEMO'),\n\t\t\tonSuccess: this.close.bind(this),\n\t\t\tanalytic: this.getAnalytic(),\n\t\t});\n\t}\n\n\t#getSubscribeButton(): SubscribeButton\n\t{\n\t\treturn new SubscribeButton({\n\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_SUBSCRIBE'),\n\t\t\tanalytic: this.getAnalytic(),\n\t\t});\n\t}\n\n\t#getHideButton(): HideButton\n\t{\n\t\treturn new HideButton({\n\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_HIDE'),\n\t\t\tonSuccess: () => {\n\t\t\t\tBX.userOptions.save('rest', 'marketTransitionPopupDismiss', null, 'Y');\n\t\t\t\tthis.close();\n\t\t\t},\n\t\t\tanalytic: this.getAnalytic(),\n\t\t});\n\t}\n\n\t#renderButtonsForWarning(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__buttons-wrapper\">\n\t\t\t\t<div class=\"rest-market-expired-popup__button-container\">\n\t\t\t\t\t${this.#getSubscribeButton().render()}\n\t\t\t\t\t${this.withDemo ? this.#getDemoButton().render() : ''}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderButtonsForFinal(): HTMLElement\n\t{\n\t\tif (this.withDemo)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"rest-market-expired-popup__buttons-wrapper\">\n\t\t\t\t\t${this.#getSubscribeButton().render()}\n\t\t\t\t\t<div class=\"rest-market-expired-popup__button-container\">\n\t\t\t\t\t\t${this.#getDemoButton().render()}\n\t\t\t\t\t\t${this.#getHideButton().render()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"rest-market-expired-popup__buttons-wrapper\">\n\t\t\t\t<div class=\"rest-market-expired-popup__button-container\">\n\t\t\t\t\t${this.#getSubscribeButton().render()}\n\t\t\t\t\t${this.#getHideButton().render()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t/**\n\t * limit_v2_nosubscription_marketplace_withapplications_off\n\t * limit_v2_nosubscription_marketplace_withapplications_off_no_demo\n\t * limit_v2_nosubscription_marketplace_withapplications_nodiscount_off\n\t * limit_v2_nosubscription_marketplace_withapplications_nodiscount_off_no_demo\n\t */\n\t#getFeatureCode(): string\n\t{\n\t\treturn `\n\t\t\tlimit_v2_nosubscription_marketplace_withapplications\n\t\t\t${this.withDiscount ? '' : '_nodiscount'}\n\t\t\t_off\n\t\t\t${this.withDemo ? '' : '_no_demo'}\n\t\t`;\n\t}\n\n\t#showOpenLinesWidget(w, d, u): void\n\t{\n\t\t// eslint-disable-next-line unicorn/prefer-math-trunc\n\t\tconst s = d.createElement('script'); s.async = true; s.src = `${u}?${Date.now() / 60000 | 0}`;\n\t\t// eslint-disable-next-line @bitrix24/bitrix24-rules/no-native-dom-methods\n\t\tconst h = d.getElementsByTagName('script')[0]; h.parentNode.insertBefore(s, h);\n\t}\n}\n","import { MarketExpiredPopup } from './market-expired-popup';\nimport PopupCategory from '../type/popup-category';\nimport { MarketTrialPopup } from './market-trial-popup';\nimport { MarketSubscriptionPopup } from './market-subscription-popup';\nimport { Analytic } from '../analytic';\nimport type { DiscountEar } from '../component/discount-ear';\nimport { DiscountEarSubscription } from '../component/discount-ear-subscription';\nimport { DiscountEarTransition } from '../component/discount-ear-transition';\nimport { ajax, Loc } from 'main.core';\nimport type { PopupConfig } from '../type/popup-config';\nimport { MarketTransitionPopup } from './market-transition-popup';\nimport { MarketItem } from '../component/market-item';\nimport { MarketList } from '../component/market-list';\n\nexport class PopupFactory\n{\n\tconfig: PopupConfig;\n\n\tconstructor(config: PopupConfig)\n\t{\n\t\tthis.config = config;\n\t}\n\n\tasync createPopup(): ?MarketExpiredPopup\n\t{\n\t\tlet popup = null;\n\t\tconst analytic = this.#getAnalytic();\n\t\tconst listItemCount = this.#getListItemCount();\n\t\tconst { appList, integrationList } = await this.#getMarketList(listItemCount, analytic);\n\n\t\tif (appList || integrationList)\n\t\t{\n\t\t\tconst discountEar = this.#getDiscountEar();\n\t\t\tconst PopupClass = this.#getPopupClass();\n\n\t\t\tpopup = new PopupClass({\n\t\t\t\tappList,\n\t\t\t\tintegrationList,\n\t\t\t\tanalytic,\n\t\t\t\tdiscountEar,\n\t\t\t\texpireDate: this.config.expireDate,\n\t\t\t\tmarketSubscriptionUrl: this.config.marketSubscriptionUrl,\n\t\t\t\twithDemo: this.config.withDemo,\n\t\t\t\tolWidgetCode: this.config.olWidgetCode,\n\t\t\t\ttype: this.config.type,\n\t\t\t\texpireDays: this.config.expireDays,\n\t\t\t});\n\t\t}\n\n\t\treturn popup;\n\t}\n\n\t#getPopupClass(): string\n\t{\n\t\tswitch (this.config.category)\n\t\t{\n\t\t\tcase PopupCategory.TRIAL:\n\t\t\t\treturn MarketTrialPopup;\n\t\t\tcase PopupCategory.SUBSCRIPTION:\n\t\t\t\treturn MarketSubscriptionPopup;\n\t\t\tcase PopupCategory.TRANSITION:\n\t\t\tdefault:\n\t\t\t\treturn MarketTransitionPopup;\n\t\t}\n\t}\n\n\t#getAnalytic(): Analytic\n\t{\n\t\treturn new Analytic({\n\t\t\twithDiscount: this.config.discount?.isAvailable ?? false,\n\t\t\tpopupType: this.config.type,\n\t\t\tpopupCategory: this.config.category,\n\t\t});\n\t}\n\n\t#getListItemCount(): number\n\t{\n\t\tswitch (this.config.category)\n\t\t{\n\t\t\tcase PopupCategory.TRIAL:\n\t\t\tcase PopupCategory.SUBSCRIPTION:\n\t\t\t\treturn 2;\n\n\t\t\tcase PopupCategory.TRANSITION:\n\t\t\tdefault:\n\t\t\t\treturn 3;\n\t\t}\n\t}\n\n\t#getDiscountEar(): ?DiscountEar\n\t{\n\t\tconst discountConfig = this.config.discount;\n\n\t\tif (!discountConfig?.isAvailable)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tswitch (this.config.category)\n\t\t{\n\t\t\tcase PopupCategory.TRIAL:\n\t\t\tcase PopupCategory.SUBSCRIPTION:\n\t\t\t\treturn new DiscountEarSubscription({\n\t\t\t\t\tdiscountPercentage: discountConfig.percentage,\n\t\t\t\t\ttermsUrl: discountConfig.termsUrl,\n\t\t\t\t\tmarketLabel: this.config.isRenamedMarket ? '' : '_MARKET_PLUS',\n\t\t\t\t});\n\n\t\t\tcase PopupCategory.TRANSITION:\n\t\t\tdefault:\n\t\t\t\treturn new DiscountEarTransition();\n\t\t}\n\t}\n\n\tasync #getMarketList(limit: number, analytic: Analytic)\n\t{\n\t\tconst getMarketListFromResponse = (response, moreLink, title, onClick): ?MarketList => {\n\t\t\tif (!response || !response.data)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst { items, count } = response.data;\n\t\t\tconst marketList = [];\n\n\t\t\tif (items.length === 0 || count < 1)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tObject.values(items).forEach((item) => {\n\t\t\t\tmarketList.push(new MarketItem({\n\t\t\t\t\tname: item.name,\n\t\t\t\t\ticon: item.icon,\n\t\t\t\t}));\n\t\t\t});\n\n\t\t\treturn new MarketList({\n\t\t\t\ttitle,\n\t\t\t\tcount,\n\t\t\t\titems: marketList,\n\t\t\t\tlink: moreLink,\n\t\t\t\tonClick,\n\t\t\t});\n\t\t};\n\n\t\tlet appList = null;\n\t\tlet integrationList = null;\n\n\t\tawait Promise.all([\n\t\t\tajax.runAction('rest.integration.getApplicationList', { data: { limit } }),\n\t\t\tajax.runAction('rest.integration.getIntegrationList', { data: { limit } }),\n\t\t]).then(([appsResponse, integrationsResponse]) => {\n\t\t\tappList = getMarketListFromResponse(\n\t\t\t\tappsResponse,\n\t\t\t\t'/market/installed/',\n\t\t\t\tLoc.getMessage('REST_MARKET_EXPIRED_POPUP_MARKET_LIST_TITLE_APPS'),\n\t\t\t\t() => {\n\t\t\t\t\tanalytic.sendClickButton('view_all_apps');\n\t\t\t\t},\n\t\t\t);\n\t\t\tintegrationList = getMarketListFromResponse(\n\t\t\t\tintegrationsResponse,\n\t\t\t\t'/devops/list/',\n\t\t\t\tLoc.getMessage('REST_MARKET_EXPIRED_POPUP_MARKET_LIST_TITLE_INTEGRATIONS'),\n\t\t\t\t() => {\n\t\t\t\t\tanalytic.sendClickButton('view_all_integrations');\n\t\t\t\t},\n\t\t\t);\n\t\t}).catch((error) => {\n\t\t\tconsole.log(error);\n\t\t});\n\n\t\treturn { appList, integrationList };\n\t}\n}\n","export default class CurtainPage\n{\n\tstatic INTEGRATION = 'Integration';\n\tstatic APPLICATION = 'Application';\n\tstatic ANY_PAGE = 'AnyPage';\n}\n","import { BannerDispatcher } from 'ui.banner-dispatcher';\nimport { NotificationPanel } from 'ui.notification-panel';\nimport { Icon, Main } from 'ui.icon-set.api.core';\nimport { sendData } from 'ui.analytics';\nimport 'ui.icon-set.main';\nimport CurtainPage from '../type/curtain-page';\nimport PopupType from '../type/popup-type';\nimport { Tag } from 'main.core';\n\nexport type MarketExpiredCurtainOptions = {\n\tmarketSubscriptionUrl: string,\n\ttype: PopupType,\n\texpireDays: string;\n\tcurtainPage: CurtainPage;\n};\n\nexport class MarketExpiredCurtain\n{\n\t#panel: NotificationPanel = null;\n\n\tconstructor(options: MarketExpiredCurtainOptions)\n\t{\n\t\tthis.options = options;\n\t}\n\n\t#getPanel(onDone: function): NotificationPanel\n\t{\n\t\tthis.#panel ??= new NotificationPanel({\n\t\t\tcontent: Tag.render`\n\t\t\t\t<span class=\"rest-market-expired-curtain\">${this.getContent()}</span>\n\t\t\t`,\n\t\t\tbackgroundColor: '#E89B06',\n\t\t\tcrossColor: '#FFFFFF',\n\t\t\tleftIcon: new Icon({\n\t\t\t\ticon: Main.MARKET_1,\n\t\t\t\tcolor: '#FFFFFF',\n\t\t\t}),\n\t\t\trightButtons: this.getRightButtons(),\n\t\t\tevents: {\n\t\t\t\tonHide: () => {\n\t\t\t\t\tonDone();\n\t\t\t\t\tthis.onHide();\n\t\t\t\t},\n\t\t\t},\n\t\t\tzIndex: 1001,\n\t\t});\n\n\t\treturn this.#panel;\n\t}\n\n\tshow(): void\n\t{\n\t\tBannerDispatcher.critical.toQueue((onDone) => {\n\t\t\tconst panel = this.#getPanel(onDone);\n\t\t\tpanel.show();\n\t\t\tthis.#sendAnalytics('show_notification_panel');\n\t\t});\n\t}\n\n\tgetRightButtons(): []\n\t{\n\t\treturn [];\n\t}\n\n\tgetContent(): string\n\t{\n\t\tthrow new Error('Not Implemented');\n\t}\n\n\tonRightButtonClick(): void\n\t{\n\t\tthis.#getPanel().hide();\n\t\tthis.#sendAnalytics('click_button');\n\t}\n\n\tonHide(): void\n\t{}\n\n\t#sendAnalytics(event: string): void\n\t{\n\t\tconst params = {\n\t\t\ttool: 'infohelper',\n\t\t\tcategory: 'market',\n\t\t\tevent,\n\t\t\ttype: 'notification_panel',\n\t\t};\n\n\t\tsendData(params);\n\t}\n}\n","import { MarketExpiredCurtain } from './market-expired-curtain';\nimport { Button } from 'ui.buttons';\nimport { Loc } from 'main.core';\nimport PopupType from '../type/popup-type';\n\nexport class MarketTrialCurtain extends MarketExpiredCurtain\n{\n\tgetRightButtons(): []\n\t{\n\t\treturn [\n\t\t\tnew Button({\n\t\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_SUBSCRIBE'),\n\t\t\t\tsize: Button.Size.EXTRA_SMALL,\n\t\t\t\tcolor: Button.Color.CURTAIN_WARNING,\n\t\t\t\ttag: Button.Tag.LINK,\n\t\t\t\tnoCaps: true,\n\t\t\t\tround: true,\n\t\t\t\tprops: {\n\t\t\t\t\thref: this.options.marketSubscriptionUrl,\n\t\t\t\t},\n\t\t\t\tonclick: () => super.onRightButtonClick.bind(this),\n\t\t\t}),\n\t\t];\n\t}\n\n\tgetContent(): string\n\t{\n\t\treturn this.options.type === PopupType.FINAL\n\t\t\t? Loc.getMessage(`REST_MARKET_EXPIRED_CURTAIN_TRIAL_FINAL_TEXT${this.marketLabel}`)\n\t\t\t: Loc.getMessage(`REST_MARKET_EXPIRED_CURTAIN_TRIAL_WARNING_TEXT${this.marketLabel}`, {\n\t\t\t\t'#DAYS#': this.options.expireDays,\n\t\t\t});\n\t}\n\n\tonHide()\n\t{\n\t\tif (this.options.type === PopupType.FINAL)\n\t\t{\n\t\t\tBX.userOptions.save('rest', `marketSubscriptionCurtain${this.options.curtainPage}Dismiss`, null, 'Y');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tBX.userOptions.save('rest', `marketSubscriptionCurtain${this.options.curtainPage}Ts`, null, Math.floor(Date.now() / 1000));\n\t\t}\n\t}\n}\n","import { MarketExpiredCurtain } from './market-expired-curtain';\nimport { Button } from 'ui.buttons';\nimport { Loc } from 'main.core';\nimport PopupType from '../type/popup-type';\n\nexport class MarketSubscriptionCurtain extends MarketExpiredCurtain\n{\n\tgetRightButtons(): []\n\t{\n\t\treturn [\n\t\t\tnew Button({\n\t\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_POPUP_BUTTON_RENEW_SUBSCRIPTION'),\n\t\t\t\tsize: Button.Size.EXTRA_SMALL,\n\t\t\t\tcolor: Button.Color.CURTAIN_WARNING,\n\t\t\t\ttag: Button.Tag.LINK,\n\t\t\t\tnoCaps: true,\n\t\t\t\tround: true,\n\t\t\t\tprops: {\n\t\t\t\t\thref: this.options.marketSubscriptionUrl,\n\t\t\t\t},\n\t\t\t\tonclick: () => super.onRightButtonClick.bind(this),\n\t\t\t}),\n\t\t];\n\t}\n\n\tgetContent(): string\n\t{\n\t\treturn this.options.type === PopupType.FINAL\n\t\t\t? Loc.getMessage(`REST_MARKET_EXPIRED_CURTAIN_SUBSCRIPTION_FINAL_TEXT${this.marketLabel}`)\n\t\t\t: Loc.getMessage(`REST_MARKET_EXPIRED_CURTAIN_SUBSCRIPTION_WARNING_TEXT${this.marketLabel}`, {\n\t\t\t\t'#DAYS#': this.options.expireDays,\n\t\t\t});\n\t}\n\n\tonHide()\n\t{\n\t\tif (this.options.type === PopupType.FINAL)\n\t\t{\n\t\t\tBX.userOptions.save('rest', `marketSubscriptionCurtain${this.options.curtainPage}Dismiss`, null, 'Y');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tBX.userOptions.save('rest', `marketSubscriptionCurtain${this.options.curtainPage}Ts`, null, Math.floor(Date.now() / 1000));\n\t\t}\n\t}\n}\n","import { MarketExpiredCurtain } from './market-expired-curtain';\nimport { Button } from 'ui.buttons';\nimport { Loc } from 'main.core';\n\nexport class MarketTransitionCurtain extends MarketExpiredCurtain\n{\n\tgetRightButtons(): []\n\t{\n\t\treturn [\n\t\t\tnew Button({\n\t\t\t\ttext: Loc.getMessage('REST_MARKET_EXPIRED_CURTAIN_TRANSITION_BUTTON'),\n\t\t\t\tsize: Button.Size.EXTRA_SMALL,\n\t\t\t\tcolor: Button.Color.CURTAIN_WARNING,\n\t\t\t\ttag: Button.Tag.LINK,\n\t\t\t\tnoCaps: true,\n\t\t\t\tround: true,\n\t\t\t\tprops: {\n\t\t\t\t\thref: 'FEATURE_PROMOTER=limit_v2_nosubscription_marketplace_withapplications_off',\n\t\t\t\t},\n\t\t\t\tonclick: () => super.onRightButtonClick.bind(this),\n\t\t\t}),\n\t\t];\n\t}\n\n\tgetContent(): string\n\t{\n\t\treturn Loc.getMessage('REST_MARKET_EXPIRED_CURTAIN_TRANSITION_TEXT');\n\t}\n\n\tonHide()\n\t{\n\t\tBX.userOptions.save('rest', `marketTransitionCurtain${this.options.curtainPage}Ts`, null, Math.floor(Date.now() / 1000));\n\t}\n}\n","import type { PopupConfig } from '../type/popup-config';\nimport type { MarketExpiredCurtain } from './market-expired-curtain';\nimport PopupCategory from '../type/popup-category';\nimport { MarketTrialCurtain } from './market-trial-curtain';\nimport { MarketSubscriptionCurtain } from './market-subscription-curtain';\nimport { MarketTransitionCurtain } from './market-transition-curtain';\nimport CurtainPage from '../type/curtain-page';\n\nexport class CurtainFactory\n{\n\tconfig: PopupConfig;\n\n\tconstructor(config: PopupConfig)\n\t{\n\t\tthis.config = config;\n\t}\n\n\tcreateCurtain(curtainPage: CurtainPage): MarketExpiredCurtain\n\t{\n\t\tconst CurtainClass = this.#getCurtainClass();\n\n\t\treturn new CurtainClass({\n\t\t\tmarketSubscriptionUrl: this.config.marketSubscriptionUrl,\n\t\t\ttype: this.config.type,\n\t\t\texpireDays: this.config.expireDays,\n\t\t\tcurtainPage,\n\t\t});\n\t}\n\n\t#getCurtainClass(): string\n\t{\n\t\tswitch (this.config.category)\n\t\t{\n\t\t\tcase PopupCategory.TRIAL:\n\t\t\t\treturn MarketTrialCurtain;\n\t\t\tcase PopupCategory.SUBSCRIPTION:\n\t\t\t\treturn MarketSubscriptionCurtain;\n\t\t\tcase PopupCategory.TRANSITION:\n\t\t\tdefault:\n\t\t\t\treturn MarketTransitionCurtain;\n\t\t}\n\t}\n}\n","import { MarketExpiredPopup } from './popup/market-expired-popup';\nimport { Extension } from 'main.core';\nimport type { PopupConfig } from './type/popup-config';\nimport { PopupFactory } from './popup/popup-factory';\nimport './style.css';\nimport type { MarketExpiredCurtain } from './curtain/market-expired-curtain';\nimport { CurtainFactory } from './curtain/curtain-factory';\nimport CurtainPage from './type/curtain-page';\n\nexport {\n\tCurtainPage,\n};\n\nexport class MarketExpired\n{\n\tconfig: PopupConfig;\n\n\tconstructor(config: PopupConfig)\n\t{\n\t\tthis.config = config;\n\t}\n\n\tstatic async getPopup(config: PopupConfig = null): ?MarketExpiredPopup\n\t{\n\t\tconst popupConfig = config ?? Extension.getSettings('rest.market-expired');\n\t\tconst manager = new PopupFactory(popupConfig);\n\n\t\treturn manager.createPopup();\n\t}\n\n\tstatic getCurtain(curtainPage: CurtainPage, config: PopupConfig = null): ?MarketExpiredCurtain\n\t{\n\t\tconst curtainConfig = config ?? Extension.getSettings('rest.market-expired');\n\t\tconst manager = new CurtainFactory(curtainConfig);\n\n\t\treturn manager.createCurtain(curtainPage);\n\t}\n}\n"],"names":["MarketItem","constructor","options","name","icon","getContainer","Tag","render","renderIcon","getName","renderTo","node","Dom","append","MarketList","Type","isArray","items","title","link","count","onClick","Loc","getMessage","length","listContainer","forEach","item","DiscountEar","Error","PopupType","FINAL","WARNING","PopupCategory","TRANSITION","SUBSCRIPTION","TRIAL","Analytic","context","sendShow","tool","category","event","sendClickButton","button","c_element","sendDemoActivated","sendData","type","p1","popupType","popupCategory","withDiscount","MarketExpiredPopup","EventEmitter","setEventNamespace","expireDate","appList","integrationList","withDemo","olWidgetCode","analytic","expireDays","discountEar","marketLabel","isRenamedMarket","getTitle","getCategory","show","PopupWindowManager","create","animation","showClassName","closeAnimationType","overlay","content","disableScroll","padding","className","closeByEsc","events","onClose","bind","onShow","onOpen","observerCallback","entries","observer","entry","isIntersecting","setDisableScroll","unobserve","target","IntersectionObserver","root","rootMargin","threshold","observe","getContentContainer","querySelector","offsetHeight","window","innerHeight","style","maxHeight","parentNode","adjustPosition","close","emit","renderDescription","renderButtons","renderAboutLink","getAnalytic","MarketPopupButton","text","onSuccess","getButton","getButtonConfig","Button","onclick","SubscribeButton","id","size","Size","MEDIUM","color","Color","SUCCESS","noCaps","round","tag","LINK","Extension","getSettings","marketSubscriptionUrl","HideButton","EXTRA_SMALL","MarketTrialPopup","BX","userOptions","save","Math","floor","Date","now","Helper","MarketSubscriptionPopup","replacements","DiscountEarSubscription","props","discountPercentage","termsUrl","container","DiscountEarTransition","TrialButton","LIGHT_BORDER","unbindEvent","setState","State","WAITING","ajax","url","method","dataType","data","sessid","bitrix_sessid","action","onsuccess","result","error","UI","Notification","Center","notify","position","FeaturePromotersRegistry","getPromoter","code","MarketTransitionPopup","descriptionContainer","isStringFilled","document","SiteButton","hide","w","d","u","s","createElement","async","src","h","getElementsByTagName","insertBefore","PopupFactory","config","createPopup","popup","listItemCount","PopupClass","discount","isAvailable","discountConfig","percentage","limit","getMarketListFromResponse","response","moreLink","marketList","Object","values","push","Promise","all","runAction","then","appsResponse","integrationsResponse","catch","console","log","CurtainPage","INTEGRATION","APPLICATION","ANY_PAGE","MarketExpiredCurtain","BannerDispatcher","critical","toQueue","onDone","panel","getRightButtons","getContent","onRightButtonClick","onHide","NotificationPanel","backgroundColor","crossColor","leftIcon","Icon","Main","MARKET_1","rightButtons","zIndex","params","MarketTrialCurtain","CURTAIN_WARNING","href","curtainPage","MarketSubscriptionCurtain","MarketTransitionCurtain","CurtainFactory","createCurtain","CurtainClass","MarketExpired","getPopup","popupConfig","manager","getCurtain","curtainConfig"],"mappings":"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"}