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/cvetdv.ru/bitrix/js/ui/promo-video-popup/dist/ |
Upload File : |
{"version":3,"file":"promo-video-popup.bundle.js","sources":["../src/promo-video-popup.js"],"sourcesContent":["import { Loc, Tag, Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Popup } from 'main.popup';\nimport { Icon, Main as MainIconSet, Set } from 'ui.icon-set.api.core';\nimport { Button, ButtonColor, ButtonSize } from 'ui.buttons';\n\nimport 'ui.icon-set.main';\n\nimport './promo-video-popup.css';\n\nexport const AnglePosition = Object.freeze({\n\tTOP: 'top',\n\tLEFT: 'left',\n\tBOTTOM: 'bottom',\n\tRIGHT: 'right',\n});\n\nexport const PromoVideoPopupEvents = Object.freeze({\n\tACCEPT: 'accept',\n\tHIDE: 'hide',\n});\n\nexport type PromoVideoPopupOptions = {\n\tvideoSrc: string;\n\tvideoContainerMinHeight: number;\n\twidth?: number;\n\ttitle?: string;\n\ttext?: string;\n\ticon?: string;\n\tcolors?: PromoVideoPopupOptionsColors;\n\ttargetOptions: PromoVideoPopupTargetOptions;\n\tangleOptions?: PromoVideoPopupAngleOptions;\n\toffset?: PromoVideoPopupOffset;\n\tbutton?: PromoVideoPopupButtonOptions;\n\tuseOverlay?: boolean;\n}\n\nexport const PromoVideoPopupButtonPosition = Object.freeze({\n\tLEFT: 'left',\n\tRIGHT: 'right',\n\tCENTER: 'center',\n});\n\nexport type PromoVideoPopupButtonOptions = {\n\tcolor?: ButtonColor;\n\ttext?: string;\n\tsize?: ButtonSize;\n\tposition: PromoVideoPopupButtonPosition.LEFT\n\t\t| PromoVideoPopupButtonPosition.RIGHT\n\t\t| PromoVideoPopupButtonPosition.CENTER;\n}\n\ntype PromoVideoPopupOffset = {\n\ttop: number;\n\tleft: number;\n}\n\ntype PromoVideoPopupTargetOptions = HTMLElement | { top: number, left: number };\n\ntype PromoVideoPopupAngleOptions = {\n\tposition: AnglePosition.TOP | AnglePosition.BOTTOM | AnglePosition.LEFT | AnglePosition.RIGHT;\n\toffset?: number;\n}\n\ntype PromoVideoPopupOptionsColors = {\n\ticonBackground: string;\n\ttitle: string;\n\t/**\n\t * @deprecated Use button option from PromoVideoPopupOptions instead\n\t */\n\tbutton: ButtonColor,\n}\n\nexport class PromoVideoPopup extends EventEmitter\n{\n\t#videoSrc: string;\n\t#title: string;\n\t#width: number;\n\t#text: string;\n\t#icon: string;\n\t#colors: PromoVideoPopupOptionsColors;\n\t#targetOptions: ?PromoVideoPopupTargetOptions;\n\t#angleOptions: PromoVideoPopupAngleOptions;\n\t#offset: ?PromoVideoPopupOffset;\n\t#videoContainerMinHeight: number = 255;\n\t#buttonOptions: PromoVideoPopupButtonOptions = null;\n\t#useOverlay: boolean;\n\n\t#popup: ?Popup;\n\n\tconstructor(options: PromoVideoPopupOptions)\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('UI.PromoVideoPopup');\n\n\t\tthis.#validateOptions(options);\n\n\t\tthis.#videoSrc = options.videoSrc;\n\t\tthis.#title = options.title;\n\t\tthis.#width = options.width ?? PromoVideoPopup.getWidth();\n\t\tthis.#text = options.text;\n\t\tthis.#icon = this.#isIconExist(options.icon) ? options.icon : MainIconSet.B_24;\n\t\tthis.#colors = options.colors;\n\t\tthis.#targetOptions = options.targetOptions ?? null;\n\t\tthis.#angleOptions = options.angleOptions || false;\n\t\tthis.#offset = options.offset;\n\t\tthis.#videoContainerMinHeight = options.videoContainerMinHeight;\n\t\tthis.#buttonOptions = options.button ?? null;\n\t\tthis.#useOverlay = options.useOverlay === true;\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tstatic getWidth(): number\n\t{\n\t\treturn 498;\n\t}\n\n\tshow(): void\n\t{\n\t\tif (!this.#popup)\n\t\t{\n\t\t\tthis.#iniPopup();\n\t\t}\n\n\t\tif (this.#popup.isShown())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#popup.show();\n\t}\n\n\thide(): void\n\t{\n\t\tthis.#popup?.close();\n\t}\n\n\tisShown(): boolean\n\t{\n\t\treturn Boolean(this.#popup?.isShown());\n\t}\n\n\tadjustPosition(): void\n\t{\n\t\tthis.#popup?.adjustPosition({\n\t\t\tforceBindPosition: true,\n\t\t});\n\t}\n\n\tgetWidth(): number\n\t{\n\t\treturn this.#width;\n\t}\n\n\tsetTargetOptions(targetOptions: PromoVideoPopupTargetOptions): this\n\t{\n\t\tthis.#targetOptions = targetOptions;\n\n\t\tif (this.#popup)\n\t\t{\n\t\t\tthis.#popup.setBindElement(targetOptions);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t#iniPopup(): void\n\t{\n\t\tconst styles = getComputedStyle(document.body);\n\t\tconst backgroundPrimary = styles.getPropertyValue('--ui-color-background-primary');\n\t\tconst backgroundPrimaryRgb = styles.getPropertyValue('--ui-color-background-primary-rgb');\n\n\t\tthis.#popup = new Popup({\n\t\t\tbindElement: this.#targetOptions,\n\t\t\tcacheable: false,\n\t\t\twidth: this.#width,\n\t\t\tborderRadius: '16px',\n\t\t\tangle: this.#angleOptions,\n\t\t\tcontent: this.#renderPopupContent(),\n\t\t\tcloseByEsc: true,\n\t\t\tautoHide: true,\n\t\t\tcloseIcon: true,\n\t\t\tbackground: `rgba(${backgroundPrimaryRgb}, 0.5)`,\n\t\t\tcontentBackground: backgroundPrimary,\n\t\t\tcontentPadding: 12,\n\t\t\tcontentBorderRadius: '8px',\n\t\t\toverlay: this.#getPopupOverlay(),\n\t\t\tclassName: this.#getPopupClassname(),\n\t\t\tevents: {\n\t\t\t\tonPopupClose: () => {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.emit(PromoVideoPopupEvents.HIDE);\n\t\t\t\t\t\tthis.#popup.destroy();\n\t\t\t\t\t\tthis.#popup = null;\n\t\t\t\t\t}, 300);\n\t\t\t\t},\n\t\t\t},\n\t\t\tanimation: {\n\t\t\t\tshowClassName: '--show',\n\t\t\t\tcloseClassName: this.#getAnimationCloseClassName(),\n\t\t\t\tcloseAnimationType: 'animation',\n\t\t\t},\n\t\t});\n\n\t\tthis.#popup.setOffset({\n\t\t\toffsetTop: this.#offset?.top,\n\t\t\toffsetLeft: this.#offset?.left,\n\t\t});\n\t}\n\n\t#getPopupClassname(): string\n\t{\n\t\tlet classNames = ['ui__promo-video-popup'];\n\n\t\tif (this.#angleOptions?.position === AnglePosition.RIGHT)\n\t\t{\n\t\t\tclassNames = [...classNames, '--from-right'];\n\t\t}\n\n\t\tif (this.#angleOptions?.position === AnglePosition.TOP)\n\t\t{\n\t\t\tclassNames = [...classNames, '--from-top'];\n\t\t}\n\n\t\treturn classNames.join(' ');\n\t}\n\n\t#getAnimationCloseClassName(): string\n\t{\n\t\tswitch (this.#angleOptions?.position)\n\t\t{\n\t\t\tcase AnglePosition.RIGHT:\n\t\t\t{\n\t\t\t\treturn '--close-left';\n\t\t\t}\n\n\t\t\tcase AnglePosition.TOP:\n\t\t\t{\n\t\t\t\treturn '--close-bottom';\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t{\n\t\t\t\treturn '--close';\n\t\t\t}\n\t\t}\n\t}\n\n\t#renderPopupContent(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div\n\t\t\t\tclass=\"ui__promo-video-popup-content\"\n\t\t\t\tstyle=\"${this.#getPopupContentVariablesStyles()}\"\n\t\t\t>\n\t\t\t\t<div class=\"ui__promo-video-popup-content_header\">\n\t\t\t\t\t<div class=\"ui__promo-video-popup-content_header-icon\">\n\t\t\t\t\t\t${this.#renderIcon()}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui__promo-video-popup-content_header-title\">\n\t\t\t\t\t\t${this.#title}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui__promo-video-popup-content_promo-text\">\n\t\t\t\t\t${this.#text}\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ui__promo-video-popup-content_promo-video-wrapper\"\n\t\t\t\t\tstyle=\"min-height: ${`${this.#videoContainerMinHeight}px`}\"\n\t\t\t\t>\n\t\t\t\t\t${this.#renderVideo()}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"${this.#getPopupFooterElementClassname()}\">\n\t\t\t\t\t${this.#renderAcceptButton()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderVideo(): HTMLElement\n\t{\n\t\tconst videoElement = Tag.render`\n\t\t\t<video\n\t\t\t\tsrc=\"${this.#videoSrc}\"\n\t\t\t\tautoplay\n\t\t\t\tpreload\n\t\t\t\tloop\n\t\t\t\tclass=\"ui__promo-video-popup-content_promo-video\"\n\t\t\t></video>\n\t\t`;\n\n\t\t// eslint-disable-next-line @bitrix24/bitrix24-rules/no-native-events-binding\n\t\tvideoElement.addEventListener('canplay', () => {\n\t\t\tvideoElement.muted = true;\n\t\t\tvideoElement.play();\n\t\t});\n\n\t\treturn videoElement;\n\t}\n\n\t#renderAcceptButton(): HTMLElement\n\t{\n\t\tconst buttonOptions = this.#getButtonOptions();\n\n\t\tconst btn = new Button({\n\t\t\tcolor: buttonOptions.color,\n\t\t\ttext: buttonOptions.text,\n\t\t\tsize: buttonOptions.size,\n\t\t\tround: true,\n\t\t\tonclick: () => {\n\t\t\t\tthis.emit(PromoVideoPopupEvents.ACCEPT);\n\t\t\t},\n\t\t});\n\n\t\treturn btn.render();\n\t}\n\n\t#renderIcon(): HTMLElement\n\t{\n\t\tconst color = getComputedStyle(document.body).getPropertyValue('--ui-color-on-primary');\n\n\t\tconst icon = new Icon({\n\t\t\tcolor,\n\t\t\tsize: 18,\n\t\t\ticon: this.#icon,\n\t\t});\n\n\t\treturn icon.render();\n\t}\n\n\t#getPopupContentVariablesStyles(): string\n\t{\n\t\tconst cssVariables = {};\n\n\t\tif (this.#getOptionsTitleColor())\n\t\t{\n\t\t\tcssVariables['--ui__promo-video-popup_title-color'] = this.#getOptionsTitleColor();\n\t\t}\n\n\t\tif (this.#getOptionsIconColor())\n\t\t{\n\t\t\tcssVariables['--ui__promo-video-popup_icon-color'] = this.#getOptionsIconColor();\n\t\t}\n\n\t\treturn Object.entries(cssVariables).map(([variable, value]) => {\n\t\t\treturn `${variable}: ${value}`;\n\t\t}).join(';');\n\t}\n\n\t#getOptionsTitleColor(): string\n\t{\n\t\treturn this.#colors?.title;\n\t}\n\n\t#getOptionsIconColor(): string\n\t{\n\t\treturn this.#colors?.iconBackground;\n\t}\n\n\t#getOptionsButtonColor(): ?string\n\t{\n\t\treturn this.#colors?.button;\n\t}\n\n\t// eslint-disable-next-line sonarjs/cognitive-complexity\n\t#validateOptions(options: PromoVideoPopupOptions): void\n\t{\n\t\tconst title = options?.title;\n\t\tconst text = options?.text;\n\t\tconst video = options?.videoSrc;\n\t\tconst iconColor = options?.colors?.iconBackground;\n\t\tconst titleColor = options?.colors?.title;\n\t\tconst buttonColor = options?.colors?.button;\n\t\tconst targetOptions = options?.targetOptions;\n\t\tconst offset = options?.offset;\n\t\tconst videoContainerMinHeight = options?.videoContainerMinHeight;\n\n\t\tif (!options)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: options are required for constructor');\n\t\t}\n\n\t\tif (!targetOptions)\n\t\t{\n\t\t\tthrow new Error('UI.PromoVideoPopup: targetOptions is required option');\n\t\t}\n\n\t\tif (title && Type.isString(title) === false)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: title option must be string');\n\t\t}\n\n\t\tif (iconColor && Type.isStringFilled(iconColor) === false)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: colors.icon option must be string');\n\t\t}\n\n\t\tif (titleColor && Type.isStringFilled(titleColor) === false)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: colors.title option must be string');\n\t\t}\n\n\t\tif (buttonColor && Object.values(ButtonColor).includes(buttonColor) === false)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: colors.button option must be from ButtonColor from ui.buttons');\n\t\t}\n\n\t\tif (text && Type.isString(text) === false)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: description option must be string');\n\t\t}\n\n\t\tif (!video)\n\t\t{\n\t\t\tthrow new Error('UI.PromoVideoPopup: videoSrc is required option');\n\t\t}\n\n\t\tif (video && Type.isStringFilled(video) === false)\n\t\t{\n\t\t\tthrow new Error('UI.PromoVideoPopup: videoSrc must be string');\n\t\t}\n\n\t\tif (offset && Type.isPlainObject(offset) === false)\n\t\t{\n\t\t\tthrow new Error('UI.PromoVideoPopup: offset options must be plain object with top and left properties');\n\t\t}\n\n\t\tif (offset?.top && Type.isNumber(offset?.top) === false)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: offset.top option must be number');\n\t\t}\n\n\t\tif (offset?.left && Type.isNumber(offset?.left) === false)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: offset.left option must be number');\n\t\t}\n\n\t\tif (videoContainerMinHeight && Type.isNumber(videoContainerMinHeight) === false)\n\t\t{\n\t\t\tthrow new TypeError('UI.PromoVideoPopup: videoContainerMinHeight option must be number');\n\t\t}\n\t}\n\n\t#isIconExist(icon: string): boolean\n\t{\n\t\treturn Object.values(Set).includes(icon);\n\t}\n\n\t#getButtonOptions(): PromoVideoPopupButtonOptions\n\t{\n\t\tconst defaultOptions = this.#getDefaultButtonOptions();\n\n\t\treturn {\n\t\t\ttext: this.#buttonOptions?.text ?? defaultOptions.text,\n\t\t\tcolor: this.#buttonOptions?.color ?? defaultOptions.color,\n\t\t\tsize: this.#buttonOptions?.size ?? defaultOptions.size,\n\t\t\tposition: this.#buttonOptions?.position ?? defaultOptions.position,\n\t\t};\n\t}\n\n\t#getDefaultButtonOptions(): PromoVideoPopupButtonOptions\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('PROMO_VIDEO_POPUP_ACCEPT'),\n\t\t\tsize: ButtonSize.SMALL,\n\t\t\tcolor: this.#getOptionsButtonColor() || ButtonColor.PRIMARY,\n\t\t\tposition: PromoVideoPopupButtonPosition.LEFT,\n\t\t};\n\t}\n\n\t#getPopupOverlay(): { backgroundColor: string } | false\n\t{\n\t\treturn this.#useOverlay ? { backgroundColor: 'rgba(0, 0, 0, 0.4)' } : false;\n\t}\n\n\t#getPopupFooterElementClassname(): string\n\t{\n\t\tlet buttonAlignModifier = '';\n\n\t\tif (this.#getButtonOptions().position === PromoVideoPopupButtonPosition.CENTER)\n\t\t{\n\t\t\tbuttonAlignModifier = '--align-center';\n\t\t}\n\n\t\tif (this.#getButtonOptions().position === PromoVideoPopupButtonPosition.RIGHT)\n\t\t{\n\t\t\tbuttonAlignModifier = '--align-right';\n\t\t}\n\n\t\treturn `ui__promo-video-popup-content_footer ${buttonAlignModifier}`;\n\t}\n}\n"],"names":["AnglePosition","Object","freeze","TOP","LEFT","BOTTOM","RIGHT","PromoVideoPopupEvents","ACCEPT","HIDE","PromoVideoPopupButtonPosition","CENTER","PromoVideoPopup","EventEmitter","constructor","options","setEventNamespace","videoSrc","title","width","getWidth","text","icon","MainIconSet","B_24","colors","targetOptions","angleOptions","offset","videoContainerMinHeight","button","useOverlay","show","isShown","hide","close","Boolean","adjustPosition","forceBindPosition","setTargetOptions","setBindElement","styles","getComputedStyle","document","body","backgroundPrimary","getPropertyValue","backgroundPrimaryRgb","Popup","bindElement","cacheable","borderRadius","angle","content","closeByEsc","autoHide","closeIcon","background","contentBackground","contentPadding","contentBorderRadius","overlay","className","events","onPopupClose","setTimeout","emit","destroy","animation","showClassName","closeClassName","closeAnimationType","setOffset","offsetTop","top","offsetLeft","left","classNames","position","join","Tag","render","videoElement","addEventListener","muted","play","buttonOptions","btn","Button","color","size","round","onclick","Icon","cssVariables","entries","map","variable","value","iconBackground","video","iconColor","titleColor","buttonColor","TypeError","Error","Type","isString","isStringFilled","values","ButtonColor","includes","isPlainObject","isNumber","Set","defaultOptions","Loc","getMessage","ButtonSize","SMALL","PRIMARY","backgroundColor","buttonAlignModifier"],"mappings":"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"}