| Current Path : /var/www/homesaver/www/bitrix/js/landing/features-popup/dist/ |
| Current File : /var/www/homesaver/www/bitrix/js/landing/features-popup/dist/features-popup.bundle.js.map |
{"version":3,"file":"features-popup.bundle.js","sources":["../src/features-popup.js"],"sourcesContent":["import { EventEmitter, BaseEvent } from 'main.core.events';\nimport { Cache, Dom, Event, Tag, Text, Type } from 'main.core';\nimport { Popup } from 'main.popup';\nimport { PageObject } from 'landing.pageobject';\n\nimport 'ui.fonts.opensans';\nimport './css/style.css';\n\ntype FeaturesPopupItemOptions = {\n\tid: string,\n\ttitle?: string,\n\ttheme?: string,\n\ticon?: {\n\t\tclassName: string,\n\t\tonClick: (event: BaseEvent) => void,\n\t},\n\tlink?: {\n\t\tlabel: string,\n\t\tonClick: (event: BaseEvent) => void,\n\t},\n\tactionButton?: {\n\t\tlabel: string,\n\t\tonClick: (event: BaseEvent) => void,\n\t},\n\tonClick?: (event: BaseEvent) => void,\n};\n\ntype FeaturesPopupOptions = {\n\tbindElement: HTMLElement,\n\titems: Array<FeaturesPopupItemOptions>,\n\tevents: {\n\t\tonShow: (event: BaseEvent) => void,\n\t\tonClose: (event: BaseEvent) => void,\n\t},\n};\n\nexport class FeaturesPopup extends EventEmitter\n{\n\t#cache = new Cache.MemoryCache();\n\n\tstatic Themes = {\n\t\tHighlight: 'highlight',\n\t};\n\n\tconstructor(options: FeaturesPopupOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Landing.FeaturesPopup');\n\t\tthis.subscribeFromOptions(options.events);\n\t\tthis.setOptions(options);\n\n\t\tEvent.bind(PageObject.getEditorWindow().document, 'click', () => {\n\t\t\tthis.hide();\n\t\t});\n\t}\n\n\tsetOptions(options: FeaturesPopupOptions)\n\t{\n\t\tthis.#cache.set('options', { ...options });\n\t}\n\n\tgetOptions(): FeaturesPopupOptions\n\t{\n\t\treturn this.#cache.get('options', {});\n\t}\n\n\t#getPopup(): Popup\n\t{\n\t\treturn this.#cache.remember('popup', () => {\n\t\t\treturn new Popup({\n\t\t\t\tid: `landing-features-popup-${Text.getRandom()}`,\n\t\t\t\tbindElement: this.getOptions().bindElement,\n\t\t\t\tcontent: this.#getContent(),\n\t\t\t\tclassName: 'landing-features-popup',\n\t\t\t\twidth: 410,\n\t\t\t\tautoHide: true,\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tnoAllPaddings: true,\n\t\t\t\tangle: {\n\t\t\t\t\tposition: 'top',\n\t\t\t\t\toffset: 115,\n\t\t\t\t},\n\t\t\t\tminWidth: 410,\n\t\t\t\tcontentBackground: 'transparent',\n\t\t\t\tbackground: '#E9EAED',\n\t\t\t});\n\t\t});\n\t}\n\n\tshow(): void\n\t{\n\t\tthis.#getPopup().show();\n\t\tthis.emit('onShow');\n\t}\n\n\thide(): void\n\t{\n\t\tthis.#getPopup().close();\n\t\tthis.emit('onClose');\n\t}\n\n\tisShown(): boolean\n\t{\n\t\treturn this.#getPopup().isShown();\n\t}\n\n\t#getContent(): HTMLDivElement\n\t{\n\t\treturn this.#cache.remember('content', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"landing-features-popup-content\">\n\t\t\t\t\t${this.getOptions().items.map((options) => {\n\t\t\t\t\t\treturn FeaturesPopup.createRow(options);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tstatic createContentBlock(options: FeaturesPopupItemOptions | Array<FeaturesPopupItemOptions>): HTMLDivElement | Array<HTMLDivElement>\n\t{\n\t\tif (Type.isArray(options))\n\t\t{\n\t\t\treturn options.map((optionsItem) => {\n\t\t\t\treturn FeaturesPopup.createContentBlock(optionsItem);\n\t\t\t});\n\t\t}\n\n\t\tconst getTitle = () => {\n\t\t\tif (Type.isStringFilled(options.title))\n\t\t\t{\n\t\t\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"landing-features-popup-content-block-text-title\">\n\t\t\t\t\t\t${Text.encode(options.title)}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\treturn '';\n\t\t};\n\n\t\tconst getLink = () => {\n\t\t\tif (\n\t\t\t\tType.isPlainObject(options.link)\n\t\t\t\t&& Type.isStringFilled(options.link.label)\n\t\t\t\t&& Type.isFunction(options.link.onClick)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn Tag.render`\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass=\"landing-features-popup-content-block-text-link\"\n\t\t\t\t\t\tonclick=\"${options.link.onClick}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${Text.encode(options.link.label)}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\treturn '';\n\t\t};\n\n\t\tconst getActionButton = () => {\n\t\t\tif (\n\t\t\t\tType.isPlainObject(options.actionButton)\n\t\t\t\t&& Type.isStringFilled(options.actionButton.label)\n\t\t\t\t&& Type.isFunction(options.actionButton.onClick)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"landing-features-popup-content-block-action\">\n\t\t\t\t\t\t<span \n\t\t\t\t\t\t\tclass=\"ui-btn ui-btn-xs ui-btn-round ui-btn-no-caps ui-btn-light-border\"\n\t\t\t\t\t\t\tonclick=\"${options.actionButton.onClick}\"\n\t\t\t\t\t\t>${Text.encode(options.actionButton.label)}</span>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\treturn '';\n\t\t};\n\n\t\tconst getTextBlock = () => {\n\t\t\tconst title = getTitle();\n\t\t\tconst link = getLink();\n\t\t\tif (title || link)\n\t\t\t{\n\t\t\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"landing-features-popup-content-block-text\">\n\t\t\t\t\t\t${getTitle()}\n\t\t\t\t\t\t${getLink()}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\treturn '';\n\t\t};\n\n\t\tconst getIcon = () => {\n\t\t\tif (Type.isPlainObject(options.icon))\n\t\t\t{\n\t\t\t\treturn Tag.render`\n\t\t\t\t\t<div class=\"landing-features-popup-content-block-icon\">\n\t\t\t\t\t\t<div class=\"ui-icon ui-icon-md ${options.icon.className}\">\n\t\t\t\t\t\t\t<i></i>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\treturn '';\n\t\t};\n\n\t\tconst blockClass = (() => {\n\t\t\tlet result = '';\n\t\t\tif (Type.isFunction(options.onClick))\n\t\t\t{\n\t\t\t\tresult += ' landing-features-popup-content-block-clickable';\n\t\t\t}\n\n\t\t\tif (Type.isStringFilled(options.theme))\n\t\t\t{\n\t\t\t\tresult += ` landing-features-popup-content-block-theme-${options.theme}`;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t})();\n\n\t\tconst block = Tag.render`\n\t\t\t<div \n\t\t\t\tclass=\"landing-features-popup-content-block${blockClass}\"\n\t\t\t\tdata-id=\"${Text.encode(options.id || Text.getRandom())}\"\n\t\t\t>\n\t\t\t\t${getIcon()}\n\t\t\t\t${getTextBlock()}\n\t\t\t\t${getActionButton()}\n\t\t\t</div>\n\t\t`;\n\n\t\tif (Type.isFunction(options.onClick))\n\t\t{\n\t\t\tEvent.bind(block, 'click', options.onClick);\n\t\t}\n\n\t\tif (Type.isStringFilled(options.backgroundColor))\n\t\t{\n\t\t\tDom.style(block, 'background-color', options.backgroundColor);\n\t\t}\n\n\t\treturn block;\n\t}\n\n\tstatic createRow(options: FeaturesPopupItemOptions): HTMLDivElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-features-popup-content-row\">\n\t\t\t\t${FeaturesPopup.createContentBlock(options)}\n\t\t\t</div>\n\t\t`;\n\t}\n}\n"],"names":["FeaturesPopup","EventEmitter","constructor","options","Cache","MemoryCache","setEventNamespace","subscribeFromOptions","events","setOptions","Event","bind","PageObject","getEditorWindow","document","hide","set","getOptions","get","show","emit","close","isShown","createContentBlock","Type","isArray","map","optionsItem","getTitle","isStringFilled","title","Tag","render","Text","encode","getLink","isPlainObject","link","label","isFunction","onClick","getActionButton","actionButton","getTextBlock","getIcon","icon","className","blockClass","result","theme","block","id","getRandom","backgroundColor","Dom","style","createRow","remember","Popup","bindElement","content","width","autoHide","closeByEsc","noAllPaddings","angle","position","offset","minWidth","contentBackground","background","items","Themes","Highlight"],"mappings":"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"}