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/main/sidepanel/dist/ |
Upload File : |
{"version":3,"file":"side-panel.bundle.js","sources":["../src/dictionary.js","../src/label.js","../src/slider-event.js","../src/message-event.js","../src/slider.js","../src/get-instance.js","../src/toolbar-item.js","../src/toolbar.js","../src/slider-manager.js","../src/index.js"],"sourcesContent":["import { Type, type JsonObject, type JsonValue } from 'main.core';\n\nexport class Dictionary\n{\n\t#data: JsonObject = null;\n\n\tconstructor(data: JsonObject)\n\t{\n\t\tif (!Type.isPlainObject(data))\n\t\t{\n\t\t\tthrow new TypeError('The argument must be a plain object.');\n\t\t}\n\n\t\tthis.#data = data;\n\t}\n\n\tset(key: string, value: JsonValue): void\n\t{\n\t\tif (!Type.isStringFilled(key))\n\t\t{\n\t\t\tthrow new Error('The \\'key\\' must be a string.');\n\t\t}\n\n\t\tthis.#data[key] = value;\n\t}\n\n\tget(key: string): JsonValue | undefined\n\t{\n\t\treturn this.#data[key];\n\t}\n\n\tdelete(key: string): void\n\t{\n\t\tdelete this.#data[key];\n\t}\n\n\thas(key: string): boolean\n\t{\n\t\treturn key in this.#data;\n\t}\n\n\tclear(): void\n\t{\n\t\tthis.#data = {};\n\t}\n\n\tentries(): JsonObject\n\t{\n\t\treturn this.#data;\n\t}\n}\n","import { Type, Cache, Dom } from 'main.core';\n\nimport { type Slider } from './slider';\nimport { type LabelOptions } from './types/label-options';\n\nexport class Label\n{\n\tstatic MIN_LEFT_OFFSET = 25;\n\tstatic MIN_TOP_OFFSET = 17;\n\tstatic INTERVAL_TOP_OFFSET = 50;\n\n\tslider: Slider = null;\n\tcolor = null;\n\tbgColor = null;\n\ticonClass = '';\n\ticonTitle = '';\n\tonclick = null;\n\ttext = null;\n\tcache = new Cache.MemoryCache();\n\n\tconstructor(slider: Slider, labelOptions: LabelOptions)\n\t{\n\t\tthis.slider = slider;\n\t\tconst options = Type.isPlainObject(labelOptions) ? labelOptions : {};\n\t\tthis.setBgColor(options.bgColor);\n\t\tthis.setColor(options.color);\n\t\tthis.setText(options.text);\n\t\tthis.setIconClass(options.iconClass);\n\t\tthis.setIconTitle(options.iconTitle);\n\t\tthis.setOnclick(options.onclick);\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('container', () => {\n\t\t\treturn Dom.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'side-panel-label',\n\t\t\t\t},\n\t\t\t\tchildren: [\n\t\t\t\t\tthis.getIconBox(),\n\t\t\t\t\tthis.getTextContainer(),\n\t\t\t\t],\n\t\t\t\tevents: {\n\t\t\t\t\tclick: this.#handleClick.bind(this),\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tadjustLayout(): void\n\t{\n\t\tconst overlayRect = this.getSlider().getOverlay().getBoundingClientRect();\n\t\tconst containerRect = this.getSlider().getContainer().getBoundingClientRect();\n\t\tconst maxWidth = containerRect.left - overlayRect.left;\n\n\t\tif (maxWidth <= this.getSlider().getMinLeftBoundary())\n\t\t{\n\t\t\tthis.hideText();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.showText();\n\t\t}\n\n\t\tDom.style(this.getContainer(), 'max-width', `${maxWidth - this.constructor.MIN_LEFT_OFFSET}px`);\n\t}\n\n\tgetIconBox(): HTMLElement\n\t{\n\t\treturn this.cache.remember('icon-box', () => {\n\t\t\treturn Dom.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'side-panel-label-icon-box',\n\t\t\t\t},\n\t\t\t\tchildren: [\n\t\t\t\t\tthis.getIconContainer(),\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\t}\n\n\tgetIconContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('icon-container', () => {\n\t\t\treturn Dom.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: `side-panel-label-icon ${this.getIconClass()}`,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\t#handleClick(event: MouseEvent): void\n\t{\n\t\tevent.stopPropagation();\n\n\t\tconst fn = this.getOnclick();\n\t\tif (fn)\n\t\t{\n\t\t\tfn(this, this.getSlider());\n\t\t}\n\t}\n\n\tshowIcon(): void\n\t{\n\t\tDom.removeClass(this.getContainer(), 'side-panel-label-icon--hide');\n\t}\n\n\thideIcon(): void\n\t{\n\t\tDom.addClass(this.getContainer(), 'side-panel-label-icon--hide');\n\t}\n\n\tdarkenIcon(): void\n\t{\n\t\tDom.addClass(this.getContainer(), 'side-panel-label-icon--darken');\n\t}\n\n\tlightenIcon(): void\n\t{\n\t\tDom.removeClass(this.getContainer(), 'side-panel-label-icon--darken');\n\t}\n\n\thideText(): void\n\t{\n\t\tDom.addClass(this.getTextContainer(), 'side-panel-label-text-hidden');\n\t}\n\n\tshowText(): void\n\t{\n\t\tDom.removeClass(this.getTextContainer(), 'side-panel-label-text-hidden');\n\t}\n\n\tisTextHidden(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getTextContainer(), 'side-panel-label-text-hidden');\n\t}\n\n\tgetTextContainer(): HTMLElement\n\t{\n\t\treturn this.cache.remember('text-container', () => {\n\t\t\treturn Dom.create('span', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'side-panel-label-text',\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tsetColor(color: string): void\n\t{\n\t\tif (Type.isStringFilled(color))\n\t\t{\n\t\t\tthis.color = color;\n\n\t\t\tDom.style(this.getTextContainer(), 'color', color);\n\t\t}\n\t}\n\n\tgetColor(): string | null\n\t{\n\t\treturn this.color;\n\t}\n\n\tsetBgColor(color: string | [string, number], opacity: number): void\n\t{\n\t\tlet bgColor: string = Type.isArray(color) ? color[0] : color;\n\t\tlet alfa: number = Type.isArray(color) ? color[1] : opacity;\n\n\t\tif (Type.isStringFilled(bgColor))\n\t\t{\n\t\t\tconst matches = bgColor.match(/^#([\\dA-Fa-f]{6}|[\\dA-Fa-f]{3})$/);\n\t\t\tif (matches)\n\t\t\t{\n\t\t\t\tlet hex = matches[1];\n\t\t\t\tif (hex.length === 3)\n\t\t\t\t{\n\t\t\t\t\thex = hex.replaceAll(/([\\da-f])/gi, '$1$1');\n\t\t\t\t}\n\n\t\t\t\talfa = Type.isNumber(alfa) && alfa >= 0 && alfa <= 100 ? alfa : 95;\n\t\t\t\tconst alfaHex = `0${Math.round(255 * (alfa / 100)).toString(16)}`.slice(-2).toUpperCase();\n\n\t\t\t\tbgColor = `#${hex}${alfaHex}`;\n\t\t\t}\n\n\t\t\tthis.bgColor = bgColor;\n\t\t\tDom.style(this.getContainer(), 'background-color', bgColor);\n\t\t}\n\t\telse if (bgColor === null)\n\t\t{\n\t\t\tthis.bgColor = null;\n\t\t\tDom.style(this.getContainer(), 'background-color', null);\n\t\t}\n\t}\n\n\tgetBgColor(): string | null\n\t{\n\t\treturn this.bgColor;\n\t}\n\n\tsetText(text: string | null): void\n\t{\n\t\tif (Type.isStringFilled(text))\n\t\t{\n\t\t\tthis.text = text;\n\t\t\tthis.getTextContainer().textContent = text;\n\t\t}\n\t\telse if (text === null)\n\t\t{\n\t\t\tthis.text = text;\n\t\t\tthis.getTextContainer().textContent = '';\n\t\t}\n\t}\n\n\tgetText(): string | null\n\t{\n\t\treturn this.text;\n\t}\n\n\tsetIconClass(iconClass: string | null): void\n\t{\n\t\tif (Type.isStringFilled(iconClass))\n\t\t{\n\t\t\tDom.removeClass(this.getIconContainer(), this.iconClass);\n\t\t\tthis.iconClass = iconClass;\n\t\t\tDom.addClass(this.getIconContainer(), this.iconClass);\n\t\t}\n\t\telse if (iconClass === null)\n\t\t{\n\t\t\tDom.removeClass(this.getIconContainer(), this.iconClass);\n\t\t\tthis.iconClass = iconClass;\n\t\t}\n\t}\n\n\tgetIconClass(): string\n\t{\n\t\treturn this.iconClass;\n\t}\n\n\tsetIconTitle(iconTitle: string | null): void\n\t{\n\t\tif (Type.isStringFilled(iconTitle) || iconTitle === null)\n\t\t{\n\t\t\tDom.attr(this.getIconBox(), 'title', iconTitle);\n\t\t\tthis.iconTitle = iconTitle;\n\t\t}\n\t}\n\n\tgetIconTitle(): void\n\t{\n\t\treturn this.iconTitle;\n\t}\n\n\tsetOnclick(fn: Function): void\n\t{\n\t\tif (Type.isFunction(fn) || fn === null)\n\t\t{\n\t\t\tthis.onclick = fn;\n\t\t}\n\t}\n\n\tgetOnclick(): string | null\n\t{\n\t\treturn this.onclick;\n\t}\n\n\tgetSlider(): Slider\n\t{\n\t\treturn this.slider;\n\t}\n\n\tmoveAt(position: number): void\n\t{\n\t\tif (Type.isNumber(position) && position >= 0)\n\t\t{\n\t\t\tDom.style(\n\t\t\t\tthis.getSlider().getLabelsContainer(),\n\t\t\t\t'top',\n\t\t\t\t`${this.constructor.MIN_TOP_OFFSET + (position * this.constructor.INTERVAL_TOP_OFFSET)}px`,\n\t\t\t);\n\t\t}\n\t}\n}\n","import { Type } from 'main.core';\nimport { Slider } from './slider';\n\nexport class SliderEvent\n{\n\tconstructor()\n\t{\n\t\tthis.slider = null;\n\t\tthis.action = true;\n\t\tthis.name = null;\n\t}\n\n\tallowAction(): void\n\t{\n\t\tthis.action = true;\n\t}\n\n\tdenyAction(): void\n\t{\n\t\tthis.action = false;\n\t}\n\n\tisActionAllowed(): boolean\n\t{\n\t\treturn this.action;\n\t}\n\n\t/**\n\t * @deprecated use getSlider method\n\t */\n\tgetSliderPage(): Slider\n\t{\n\t\treturn this.slider;\n\t}\n\n\tgetSlider(): Slider\n\t{\n\t\treturn this.slider;\n\t}\n\n\tsetSlider(slider: Slider): void\n\t{\n\t\tif (slider instanceof Slider)\n\t\t{\n\t\t\tthis.slider = slider;\n\t\t}\n\t}\n\n\tgetName(): string\n\t{\n\t\treturn this.name;\n\t}\n\n\tsetName(name: string): void\n\t{\n\t\tif (Type.isStringFilled(name))\n\t\t{\n\t\t\tthis.name = name;\n\t\t}\n\t}\n\n\tgetFullName(): string\n\t{\n\t\treturn Slider.getEventFullName(this.getName());\n\t}\n}\n","import { Type, type JsonObject } from 'main.core';\n\nimport { Slider } from './slider';\nimport { SliderEvent } from './slider-event';\n\nexport class MessageEvent extends SliderEvent\n{\n\tconstructor(eventOptions)\n\t{\n\t\tsuper();\n\n\t\tconst options = Type.isPlainObject(eventOptions) ? eventOptions : {};\n\n\t\tif (!(options.sender instanceof Slider))\n\t\t{\n\t\t\tthrow new TypeError('\\'sender\\' is not an instance of BX.SidePanel.Slider');\n\t\t}\n\n\t\tthis.setName('onMessage');\n\t\tthis.setSlider(options.slider);\n\n\t\tthis.sender = options.sender;\n\t\tthis.data = 'data' in options ? options.data : null;\n\t\tthis.eventId = Type.isStringFilled(options.eventId) ? options.eventId : null;\n\t}\n\n\tgetSlider(): Slider | null\n\t{\n\t\treturn this.slider;\n\t}\n\n\tgetSender(): Slider\n\t{\n\t\treturn this.sender;\n\t}\n\n\tgetData(): JsonObject\n\t{\n\t\treturn this.data;\n\t}\n\n\tgetEventId(): string | null\n\t{\n\t\treturn this.eventId;\n\t}\n}\n","import { Type, Loc, Dom, Event, Runtime, Text, Browser, Uri, Tag, type JsonObject } from 'main.core';\nimport { BaseEvent, EventEmitter } from 'main.core.events';\nimport { MemoryCache, type BaseCache } from 'main.core.cache';\nimport { ZIndexManager, type ZIndexComponent } from 'main.core.z-index-manager';\n\nimport { Dictionary } from './dictionary';\nimport { Label } from './label';\nimport { MessageEvent } from './message-event';\nimport { SliderEvent } from './slider-event';\n\nimport { type SliderOptions } from './types/slider-options';\nimport { type MinimizeOptions } from './types/minimize-options';\nimport { type OuterBoundary } from './types/outer-boundary';\n\nexport class Slider\n{\n\t#refs: BaseCache<HTMLElement> = new MemoryCache();\n\n\t#startPosition: 'right' | 'bottom' | 'top' = 'right';\n\t#startAnimationState: JsonObject = null;\n\t#endAnimationState: JsonObject = null;\n\t#currentAnimationState: JsonObject = null;\n\t#outerBoundary: OuterBoundary = {};\n\t#hideToolbarOnOpen: boolean = false;\n\t#designSystemContext: string = '--ui-context-content-light';\n\t#zIndexComponent: ZIndexComponent = null;\n\t#autoOffset: boolean = true;\n\n\tconstructor(url: string, sliderOptions: SliderOptions)\n\t{\n\t\tconst options: SliderOptions = Type.isPlainObject(sliderOptions) ? sliderOptions : {};\n\n\t\tthis.contentCallback = Type.isFunction(options.contentCallback) ? options.contentCallback : null;\n\t\tthis.contentCallbackInvoved = false;\n\t\tthis.contentClassName = Type.isStringFilled(options.contentClassName) ? options.contentClassName : null;\n\t\tthis.containerClassName = Type.isStringFilled(options.containerClassName) ? options.containerClassName : null;\n\t\tthis.overlayClassName = Type.isStringFilled(options.overlayClassName) ? options.overlayClassName : null;\n\n\t\tthis.url = this.contentCallback ? url : this.refineUrl(url);\n\n\t\tthis.offset = null;\n\t\tthis.hideControls = options.hideControls === true;\n\t\tthis.width = Type.isNumber(options.width) ? options.width : null;\n\t\tthis.cacheable = options.cacheable !== false;\n\t\tthis.autoFocus = options.autoFocus !== false;\n\t\tthis.printable = options.printable === true;\n\t\tthis.allowChangeHistory = options.allowChangeHistory !== false;\n\t\tthis.allowChangeTitle = Type.isBoolean(options.allowChangeTitle) ? options.allowChangeTitle : null;\n\t\tthis.allowCrossOrigin = options.allowCrossOrigin === true;\n\t\tthis.data = new Dictionary(Type.isPlainObject(options.data) ? options.data : {});\n\n\t\tthis.customLeftBoundary = null;\n\t\tthis.customRightBoundary = null;\n\t\tthis.setCustomLeftBoundary(options.customLeftBoundary);\n\t\tthis.setCustomRightBoundary(options.customRightBoundary);\n\n\t\tthis.title = null;\n\t\tthis.setTitle(options.title);\n\t\t/**\n\t\t *\n\t\t * @type {HTMLIFrameElement}\n\t\t */\n\t\tthis.iframe = null;\n\t\tthis.iframeSrc = null;\n\t\tthis.iframeId = null;\n\t\tthis.requestMethod = (\n\t\t\tType.isStringFilled(options.requestMethod) && options.requestMethod.toLowerCase() === 'post'\n\t\t\t\t? 'post'\n\t\t\t\t: 'get'\n\t\t);\n\t\tthis.requestParams = Type.isPlainObject(options.requestParams) ? options.requestParams : {};\n\n\t\tthis.opened = false;\n\t\tthis.hidden = false;\n\t\tthis.destroyed = false;\n\t\tthis.loaded = false;\n\t\tthis.loadedCnt = 0;\n\n\t\tthis.minimizing = false;\n\t\tthis.maximizing = false;\n\n\t\tthis.handleFrameKeyDown = this.handleFrameKeyDown.bind(this);\n\t\tthis.handleFrameFocus = this.handleFrameFocus.bind(this);\n\t\tthis.handleFrameUnload = this.handleFrameUnload.bind(this);\n\t\tthis.handlePopupInit = this.handlePopupInit.bind(this);\n\t\tthis.handleCrossOriginWindowMessage = this.handleCrossOriginWindowMessage.bind(this);\n\n\t\tthis.layout = {\n\t\t\toverlay: null,\n\t\t\tcontainer: null,\n\t\t\tloader: null,\n\t\t\tcontent: null,\n\t\t};\n\n\t\tthis.loader = (\n\t\t\tType.isStringFilled(options.loader) || Type.isElementNode(options.loader)\n\t\t\t\t? options.loader\n\t\t\t\t: (Type.isStringFilled(options.typeLoader) ? options.typeLoader : 'default-loader')\n\t\t);\n\n\t\tthis.animation = null;\n\t\tthis.animationDuration = Type.isNumber(options.animationDuration) ? options.animationDuration : 200;\n\t\tthis.overlayBgColor = (\n\t\t\tType.isStringFilled(options.overlayBgColor) && /^#[\\dA-Za-f]{6}$/.test(options.overlayBgColor)\n\t\t\t\t? options.overlayBgColor\n\t\t\t\t: '#000000'\n\t\t);\n\t\tthis.overlayOpacity = (\n\t\t\tType.isNumber(options.overlayOpacity)\n\t\t\t\t? Math.min(Math.max(options.overlayOpacity, 0), 100)\n\t\t\t\t: 40\n\t\t);\n\n\t\tthis.#startPosition = (\n\t\t\t['right', 'bottom', 'top'].includes(options.startPosition)\n\t\t\t\t? options.startPosition\n\t\t\t\t: this.#startPosition\n\t\t);\n\t\tthis.#outerBoundary = Type.isPlainObject(options.outerBoundary) ? options.outerBoundary : {};\n\t\tthis.#startAnimationState = this.#getAnimationState('start');\n\t\tthis.#endAnimationState = this.#getAnimationState('end');\n\t\tthis.#currentAnimationState = null;\n\n\t\tthis.overlayAnimation = false;\n\t\tthis.animationName = 'sliding';\n\t\tthis.animationOptions = {};\n\n\t\tthis.minimizeOptions = null;\n\t\tconst minimizeOptions = options.minimizeOptions;\n\t\tif (\n\t\t\tType.isPlainObject(minimizeOptions)\n\t\t\t&& Type.isStringFilled(minimizeOptions.entityType)\n\t\t\t&& (Type.isStringFilled(minimizeOptions.entityId) || Type.isNumber(minimizeOptions.entityId))\n\t\t\t&& (Type.isStringFilled(minimizeOptions.url))\n\t\t)\n\t\t{\n\t\t\tthis.minimizeOptions = minimizeOptions;\n\t\t}\n\n\t\tthis.setToolbarOnOpen(options.hideToolbarOnOpen);\n\t\tthis.setDesignSystemContext(options.designSystemContext);\n\t\tthis.setAutoOffset(options.autoOffset);\n\n\t\tthis.label = new Label(this, {\n\t\t\ticonClass: 'side-panel-label-icon-close',\n\t\t\ticonTitle: Loc.getMessage('MAIN_SIDEPANEL_CLOSE'),\n\t\t\tonclick(label, slider)\n\t\t\t{\n\t\t\t\tslider.close();\n\t\t\t},\n\t\t});\n\n\t\tconst labelOptions = Type.isPlainObject(options.label) ? options.label : {};\n\t\tthis.label.setText(labelOptions.text);\n\t\tthis.label.setColor(labelOptions.color);\n\t\tthis.label.setBgColor(labelOptions.bgColor, labelOptions.opacity);\n\n\t\tthis.minimizeLabel = null;\n\t\tthis.newWindowLabel = null;\n\t\tthis.copyLinkLabel = null;\n\n\t\tif (!this.isSelfContained() && this.minimizeOptions !== null)\n\t\t{\n\t\t\tthis.minimizeLabel = new Label(this, {\n\t\t\t\ticonClass: 'side-panel-label-icon-minimize ui-icon-set --arrow-line',\n\t\t\t\ticonTitle: Loc.getMessage('MAIN_SIDEPANEL_MINIMIZE'),\n\t\t\t\tbgColor: ['#d9dcdf', 100],\n\t\t\t\tonclick: (label, slider) => {\n\t\t\t\t\tif (this.isLoaded())\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.minimize();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tif (options.newWindowLabel === true && (!this.isSelfContained() || Type.isStringFilled(options.newWindowUrl)))\n\t\t{\n\t\t\tthis.newWindowLabel = new Label(this, {\n\t\t\t\ticonClass: 'side-panel-label-icon-new-window',\n\t\t\t\ticonTitle: Loc.getMessage('MAIN_SIDEPANEL_NEW_WINDOW'),\n\t\t\t\tbgColor: ['#d9dcdf', 100],\n\t\t\t\tonclick(label, slider)\n\t\t\t\t{\n\t\t\t\t\tconst newWindowUrl = Type.isStringFilled(options.newWindowUrl) ? options.newWindowUrl : slider.getUrl();\n\t\t\t\t\tObject.assign(document.createElement('a'), {\n\t\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\t\thref: newWindowUrl,\n\t\t\t\t\t}).click();\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tif (options.copyLinkLabel === true && (!this.isSelfContained() || Type.isStringFilled(options.newWindowUrl)))\n\t\t{\n\t\t\tthis.copyLinkLabel = new Label(this, {\n\t\t\t\ticonClass: 'side-panel-label-icon-copy-link',\n\t\t\t\ticonTitle: Loc.getMessage('MAIN_SIDEPANEL_COPY_LINK'),\n\t\t\t\tbgColor: ['#d9dcdf', 100],\n\t\t\t});\n\n\t\t\tBX.clipboard.bindCopyClick(\n\t\t\t\tthis.copyLinkLabel.getIconBox(),\n\t\t\t\t{\n\t\t\t\t\ttext: () => {\n\t\t\t\t\t\tconst link = document.createElement('a');\n\t\t\t\t\t\tlink.href = Type.isStringFilled(options.newWindowUrl) ? options.newWindowUrl : this.getUrl();\n\n\t\t\t\t\t\treturn link.href;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\t// Compatibility\n\t\tif (\n\t\t\tthis.url.includes('crm.activity.planner/slider.php')\n\t\t\t&& options.events\n\t\t\t&& Type.isFunction(options.events.onOpen)\n\t\t\t&& options.events.compatibleEvents !== false\n\t\t)\n\t\t{\n\t\t\tconst onOpen = options.events.onOpen;\n\t\t\tdelete options.events.onOpen;\n\t\t\toptions.events.onLoad = function(event) {\n\t\t\t\tonOpen(event.getSlider());\n\t\t\t};\n\t\t}\n\n\t\tif (Type.isPlainObject(options.events))\n\t\t{\n\t\t\tfor (const [eventName, fn] of Object.entries(options.events))\n\t\t\t{\n\t\t\t\tif (Type.isFunction(fn))\n\t\t\t\t{\n\t\t\t\t\tEventEmitter.subscribe(this, Slider.getEventFullName(eventName), fn, { compatMode: true });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic getEventFullName(eventName: string): string\n\t{\n\t\treturn `SidePanel.Slider:${eventName}`;\n\t}\n\n\topen(): boolean\n\t{\n\t\tif (this.isOpen())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.canOpen())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.isDestroyed())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.maximizing)\n\t\t{\n\t\t\tthis.fireEvent('onMaximizeStart');\n\t\t}\n\n\t\tthis.createLayout();\n\n\t\tDom.removeClass(this.getOverlay(), '--closing');\n\t\tDom.addClass(this.getOverlay(), '--opening');\n\n\t\tthis.adjustLayout();\n\n\t\tZIndexManager.bringToFront(this.getOverlay());\n\n\t\tthis.opened = true;\n\n\t\tthis.fireEvent('onOpenStart');\n\n\t\tthis.animateOpening();\n\n\t\treturn true;\n\t}\n\n\tclose(immediately: boolean, callback: Function): boolean\n\t{\n\t\tif (!this.isOpen())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.canClose())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.minimizing)\n\t\t{\n\t\t\tthis.fireEvent('onMinimizeStart');\n\t\t}\n\n\t\tthis.fireEvent('onCloseStart');\n\n\t\tthis.opened = false;\n\n\t\tif (this.isDestroyed())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.animation)\n\t\t{\n\t\t\tthis.animation.stop();\n\t\t}\n\n\t\tDom.removeClass(this.getOverlay(), '--opening');\n\t\tDom.addClass(this.getOverlay(), '--closing');\n\n\t\tthis.fireEvent('onClosing');\n\n\t\tif (immediately === true || Browser.isMobile())\n\t\t{\n\t\t\tthis.#currentAnimationState = this.#startAnimationState;\n\t\t\tthis.completeAnimation(callback);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.animation = new BX.easing({\n\t\t\t\tduration: this.animationDuration,\n\t\t\t\tstart: this.#currentAnimationState,\n\t\t\t\tfinish: this.#startAnimationState,\n\t\t\t\tstep: (state) => {\n\t\t\t\t\tthis.#currentAnimationState = state;\n\t\t\t\t\tthis.animateStep(state);\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.completeAnimation(callback);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// Chrome rendering bug\n\t\t\tDom.style(this.getContainer(), 'opacity', 0.96);\n\n\t\t\tif (this.animationName === 'scale' && Type.isStringFilled(this.animationOptions.origin))\n\t\t\t{\n\t\t\t\tDom.style(this.getContainer(), 'transform-origin', this.animationOptions.origin);\n\t\t\t}\n\n\t\t\tthis.animation.animate();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tminimize(immediately, callback): boolean\n\t{\n\t\tthis.minimizing = true;\n\n\t\tconst success = this.close(immediately, callback);\n\t\tif (!success)\n\t\t{\n\t\t\tthis.minimizing = false;\n\t\t}\n\n\t\treturn success;\n\t}\n\n\tisMinimizing(): boolean\n\t{\n\t\treturn this.minimizing;\n\t}\n\n\tmaximize(): boolean\n\t{\n\t\tthis.maximizing = true;\n\t\tconst success = this.open();\n\t\tif (!success)\n\t\t{\n\t\t\tthis.maximizing = false;\n\t\t}\n\n\t\treturn success;\n\t}\n\n\tisMaximizing(): boolean\n\t{\n\t\treturn this.maximizing;\n\t}\n\n\tsetAnimation(type, options): void\n\t{\n\t\tthis.animationName = type === 'scale' ? type : 'sliding';\n\t\tthis.animationOptions = Type.isPlainObject(options) ? options : {};\n\t}\n\n\tgetMinimizeOptions(): MinimizeOptions\n\t{\n\t\treturn this.minimizeOptions;\n\t}\n\n\tsetToolbarOnOpen(flag: boolean): void\n\t{\n\t\tif (Type.isBoolean(flag))\n\t\t{\n\t\t\tthis.#hideToolbarOnOpen = flag;\n\t\t}\n\t}\n\n\tshouldHideToolbarOnOpen(): boolean\n\t{\n\t\treturn this.#hideToolbarOnOpen;\n\t}\n\n\t#getAnimationState(mode: 'start' | 'end'): JsonObject\n\t{\n\t\tconst states = {\n\t\t\tright: {\n\t\t\t\tstart: { translateX: 100, translateY: 0, opacity: 0, scale: 0 },\n\t\t\t\tend: { translateX: 0, translateY: 0, opacity: this.overlayOpacity, scale: 100 },\n\t\t\t},\n\t\t\tbottom: {\n\t\t\t\tstart: { translateX: 0, translateY: 100, opacity: 0, scale: 0 },\n\t\t\t\tend: { translateX: 0, translateY: 0, opacity: this.overlayOpacity, scale: 100 },\n\t\t\t},\n\t\t\ttop: {\n\t\t\t\tstart: { translateX: 0, translateY: -100, opacity: 0, scale: 0 },\n\t\t\t\tend: { translateX: 0, translateY: 0, opacity: this.overlayOpacity, scale: 100 },\n\t\t\t},\n\t\t};\n\n\t\treturn states[this.#startPosition][mode];\n\t}\n\n\tgetDesignSystemContext(): string\n\t{\n\t\treturn this.#designSystemContext;\n\t}\n\n\tsetDesignSystemContext(context: string): void\n\t{\n\t\tif (Type.isString(context))\n\t\t{\n\t\t\tif (this.layout.container !== null)\n\t\t\t{\n\t\t\t\tDom.removeClass(this.layout.container, this.#designSystemContext);\n\t\t\t\tDom.addClass(this.layout.container, context);\n\t\t\t}\n\n\t\t\tthis.#designSystemContext = context;\n\t\t}\n\t}\n\n\tgetUrl(): string\n\t{\n\t\treturn this.url;\n\t}\n\n\tsetUrl(url: string): void\n\t{\n\t\tif (Type.isStringFilled(url))\n\t\t{\n\t\t\tthis.url = url;\n\t\t}\n\t}\n\n\tfocus(): void\n\t{\n\t\tthis.getWindow().focus();\n\n\t\t// if (this.isSelfContained())\n\t\t// {\n\t\t// \tthis.getContentContainer().setAttribute(\"tabindex\", \"0\");\n\t\t// \tthis.getContentContainer().focus();\n\t\t// }\n\t}\n\n\tisOpen(): boolean\n\t{\n\t\treturn this.opened;\n\t}\n\n\tgetStartPosition(): 'right' | 'bottom' | 'top'\n\t{\n\t\treturn this.#startPosition;\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tsetZindex(zIndex: number): void\n\t{}\n\n\t/**\n\t * @public\n\t * @returns {number}\n\t */\n\tgetZindex(): number\n\t{\n\t\treturn this.getZIndexComponent().getZIndex();\n\t}\n\n\tgetZIndexComponent(): ZIndexComponent | null\n\t{\n\t\treturn this.#zIndexComponent;\n\t}\n\n\tsetOffset(offset: number | null): void\n\t{\n\t\tif (Type.isNumber(offset) || offset === null)\n\t\t{\n\t\t\tthis.offset = offset;\n\t\t}\n\t}\n\n\tgetOffset(): number | null\n\t{\n\t\treturn this.offset;\n\t}\n\n\tsetAutoOffset(autoOffset: boolean): void\n\t{\n\t\tif (Type.isBoolean(autoOffset))\n\t\t{\n\t\t\tthis.#autoOffset = autoOffset;\n\t\t}\n\t}\n\n\tshouldUseAutoOffset(): boolean\n\t{\n\t\treturn this.#autoOffset;\n\t}\n\n\tsetWidth(width: number): void\n\t{\n\t\tif (Type.isNumber(width))\n\t\t{\n\t\t\tthis.width = width;\n\t\t}\n\t}\n\n\tgetWidth(): number\n\t{\n\t\treturn this.width;\n\t}\n\n\tsetTitle(title: string): void\n\t{\n\t\tif (Type.isStringFilled(title))\n\t\t{\n\t\t\tthis.title = title;\n\t\t}\n\t}\n\n\tgetTitle(): string | null\n\t{\n\t\treturn this.title;\n\t}\n\n\tgetData(): Dictionary\n\t{\n\t\treturn this.data;\n\t}\n\n\tisSelfContained(): boolean\n\t{\n\t\treturn this.contentCallback !== null;\n\t}\n\n\tisPostMethod(): boolean\n\t{\n\t\treturn this.requestMethod === 'post';\n\t}\n\n\tgetRequestParams(): JsonObject\n\t{\n\t\treturn this.requestParams;\n\t}\n\n\t/**\n\t * @public\n\t * @returns {string}\n\t */\n\tgetFrameId(): string\n\t{\n\t\tif (this.iframeId === null)\n\t\t{\n\t\t\tthis.iframeId = `iframe_${Text.getRandom(10).toLowerCase()}`;\n\t\t}\n\n\t\treturn this.iframeId;\n\t}\n\n\tgetWindow(): Window\n\t{\n\t\treturn this.iframe ? this.iframe.contentWindow : window;\n\t}\n\n\tgetFrameWindow(): Window | null\n\t{\n\t\treturn this.iframe ? this.iframe.contentWindow : null;\n\t}\n\n\tisHidden(): boolean\n\t{\n\t\treturn this.hidden;\n\t}\n\n\tisCacheable(): boolean\n\t{\n\t\treturn this.cacheable;\n\t}\n\n\tisFocusable(): boolean\n\t{\n\t\treturn this.autoFocus;\n\t}\n\n\tisPrintable(): boolean\n\t{\n\t\treturn this.printable;\n\t}\n\n\tisDestroyed(): boolean\n\t{\n\t\treturn this.destroyed;\n\t}\n\n\tisLoaded(): boolean\n\t{\n\t\treturn this.loaded;\n\t}\n\n\tcanChangeHistory(): boolean\n\t{\n\t\treturn (\n\t\t\tthis.allowChangeHistory\n\t\t\t&& !this.allowCrossOrigin\n\t\t\t&& !this.isSelfContained()\n\t\t\t&& !/^\\/bitrix\\/(components|tools)\\//i.test(this.getUrl())\n\t\t);\n\t}\n\n\tcanChangeTitle(): boolean\n\t{\n\t\tif (this.allowChangeTitle === null)\n\t\t{\n\t\t\tif (this.getTitle() !== null)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn this.canChangeHistory();\n\t\t}\n\n\t\treturn this.allowChangeTitle;\n\t}\n\n\tsetCacheable(cacheable: boolean = true): void\n\t{\n\t\tthis.cacheable = cacheable !== false;\n\t}\n\n\tsetAutoFocus(autoFocus: boolean = true): void\n\t{\n\t\tthis.autoFocus = autoFocus !== false;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} printable\n\t */\n\tsetPrintable(printable: boolean = true): void\n\t{\n\t\tthis.printable = printable !== false;\n\t\tif (this.printable)\n\t\t{\n\t\t\tthis.showPrintBtn();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.hidePrintBtn();\n\t\t}\n\t}\n\n\tgetLoader(): string\n\t{\n\t\treturn this.loader;\n\t}\n\n\tshowLoader(): void\n\t{\n\t\tconst loader = this.getLoader();\n\t\tif (!this.layout.loader)\n\t\t{\n\t\t\tthis.createLoader(loader);\n\t\t}\n\n\t\tDom.style(this.layout.loader, { opacity: 1, display: 'block' });\n\t}\n\n\tcloseLoader(): void\n\t{\n\t\tif (this.layout.loader)\n\t\t{\n\t\t\tDom.style(this.layout.loader, { opacity: 0, display: 'none' });\n\t\t}\n\t}\n\n\tshowCloseBtn(): void\n\t{\n\t\tthis.getLabel().showIcon();\n\t}\n\n\thideCloseBtn(): void\n\t{\n\t\tthis.getLabel().hideIcon();\n\t}\n\n\tshowOrLightenCloseBtn(): void\n\t{\n\t\tif (Type.isStringFilled(this.getLabel().getText()))\n\t\t{\n\t\t\tthis.getLabel().showIcon();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getLabel().lightenIcon();\n\t\t}\n\t}\n\n\thideOrDarkenCloseBtn(): void\n\t{\n\t\tif (Type.isStringFilled(this.getLabel().getText()))\n\t\t{\n\t\t\tthis.getLabel().hideIcon();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getLabel().darkenIcon();\n\t\t}\n\t}\n\n\tshowPrintBtn(): void\n\t{\n\t\tDom.addClass(this.getPrintBtn(), 'side-panel-print-visible');\n\t}\n\n\thidePrintBtn(): void\n\t{\n\t\tDom.removeClass(this.getPrintBtn(), 'side-panel-print-visible');\n\t}\n\n\tshowExtraLabels(): void\n\t{\n\t\tDom.style(this.getExtraLabelsContainer(), 'display', null);\n\t}\n\n\thideExtraLabels(): void\n\t{\n\t\tDom.style(this.getExtraLabelsContainer(), 'display', 'none');\n\t}\n\n\tsetContentClass(className: string): void\n\t{\n\t\tif (Type.isStringFilled(className))\n\t\t{\n\t\t\tthis.removeContentClass();\n\t\t\tthis.contentClassName = className;\n\t\t\tDom.addClass(this.getContentContainer(), className);\n\t\t}\n\t}\n\n\tremoveContentClass(): void\n\t{\n\t\tif (this.contentClassName !== null)\n\t\t{\n\t\t\tDom.removeClass(this.getContentContainer(), this.contentClassName);\n\t\t\tthis.contentClassName = null;\n\t\t}\n\t}\n\n\tsetContainerClass(className: string): void\n\t{\n\t\tif (Type.isStringFilled(className))\n\t\t{\n\t\t\tthis.removeContainerClass();\n\t\t\tthis.containerClassName = className;\n\t\t\tDom.addClass(this.getContainer(), className);\n\t\t}\n\t}\n\n\tremoveContainerClass(): void\n\t{\n\t\tif (this.containerClassName !== null)\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), this.containerClassName);\n\t\t\tthis.containerClassName = null;\n\t\t}\n\t}\n\n\tsetOverlayClass(className: string): void\n\t{\n\t\tif (Type.isStringFilled(className))\n\t\t{\n\t\t\tthis.removeOverlayClass();\n\t\t\tthis.overlayClassName = className;\n\t\t\tDom.addClass(this.getOverlay(), className);\n\t\t}\n\t}\n\n\tremoveOverlayClass(): void\n\t{\n\t\tif (this.overlayClassName !== null)\n\t\t{\n\t\t\tDom.removeClass(this.getOverlay(), this.overlayClassName);\n\t\t\tthis.overlayClassName = null;\n\t\t}\n\t}\n\n\tapplyHacks(): void\n\t{\n\t\t// You can override this method in a derived class\n\t}\n\n\tapplyPostHacks(): void\n\t{\n\t\t// You can override this method in a derived class\n\t}\n\n\tresetHacks(): void\n\t{\n\t\t// You can override this method in a derived class\n\t}\n\n\tresetPostHacks(): void\n\t{\n\t\t// You can override this method in a derived class\n\t}\n\n\tgetTopBoundary(): number\n\t{\n\t\treturn 0;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tcalculateLeftBoundary(): number\n\t{\n\t\tconst customLeftBoundary = this.getCustomLeftBoundary();\n\t\tif (customLeftBoundary !== null)\n\t\t{\n\t\t\treturn customLeftBoundary;\n\t\t}\n\n\t\treturn this.getLeftBoundary();\n\t}\n\n\tgetLeftBoundary(): number\n\t{\n\t\tconst windowWidth = Browser.isMobile() ? window.innerWidth : document.documentElement.clientWidth;\n\n\t\treturn windowWidth < 1160 ? this.getMinLeftBoundary() : 300;\n\t}\n\n\tgetMinLeftBoundary(): number\n\t{\n\t\treturn this.hideControls && this.getCustomLeftBoundary() !== null ? 0 : 65;\n\t}\n\n\t/**\n\t * @internal\n\t */\n\tgetLeftBoundaryOffset(): number\n\t{\n\t\tconst offset = this.getOffset() === null ? 0 : this.getOffset();\n\n\t\treturn Math.max(this.calculateLeftBoundary(), this.getMinLeftBoundary()) + offset;\n\t}\n\n\tsetCustomLeftBoundary(boundary: number | null): void\n\t{\n\t\tif (Type.isNumber(boundary) || boundary === null)\n\t\t{\n\t\t\tthis.customLeftBoundary = boundary;\n\t\t}\n\t}\n\n\tgetCustomLeftBoundary(): number\n\t{\n\t\treturn this.customLeftBoundary;\n\t}\n\n\tsetCustomRightBoundary(boundary: number | null): void\n\t{\n\t\tif (Type.isNumber(boundary) || boundary === null)\n\t\t{\n\t\t\tthis.customRightBoundary = boundary;\n\t\t}\n\t}\n\n\tgetCustomRightBoundary(): number\n\t{\n\t\treturn this.customRightBoundary;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tcalculateRightBoundary(): number\n\t{\n\t\tconst customRightBoundary = this.getCustomRightBoundary();\n\t\tif (customRightBoundary !== null)\n\t\t{\n\t\t\treturn -window.pageXOffset + customRightBoundary;\n\t\t}\n\n\t\treturn this.getRightBoundary();\n\t}\n\n\tgetRightBoundary(): number\n\t{\n\t\treturn -window.pageXOffset;\n\t}\n\n\tgetOuterBoundary(): OuterBoundary\n\t{\n\t\treturn this.#outerBoundary;\n\t}\n\n\tcalculateOuterBoundary(): OuterBoundary\n\t{\n\t\t// You can override this method in a derived class\n\t}\n\n\t#calculateOuterBoundary(): OuterBoundary\n\t{\n\t\tconst outerBoundary = this.calculateOuterBoundary();\n\n\t\treturn Runtime.merge(Type.isPlainObject(outerBoundary) ? outerBoundary : {}, this.getOuterBoundary());\n\t}\n\n\tdestroy(): boolean\n\t{\n\t\tif (this.isDestroyed())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.firePageEvent('onDestroy');\n\t\tthis.fireFrameEvent('onDestroy');\n\n\t\tconst frameWindow = this.getFrameWindow();\n\t\tif (frameWindow && !this.allowCrossOrigin)\n\t\t{\n\t\t\tEvent.unbind(frameWindow, 'keydown', this.handleFrameKeyDown);\n\t\t\tEvent.unbind(frameWindow, 'focus', this.handleFrameFocus);\n\t\t\tEvent.unbind(frameWindow, 'unload', this.handleFrameUnload);\n\t\t}\n\t\telse if (this.allowCrossOrigin)\n\t\t{\n\t\t\tEvent.unbind(window, 'message', this.handleCrossOriginWindowMessage);\n\t\t}\n\n\t\tEventEmitter.unsubscribe('BX.Main.Popup:onInit', this.handlePopupInit);\n\t\tZIndexManager.unregister(this.layout.overlay);\n\t\tthis.#zIndexComponent = null;\n\n\t\tDom.remove(this.layout.overlay);\n\n\t\tthis.layout.container = null;\n\t\tthis.layout.overlay = null;\n\t\tthis.layout.content = null;\n\t\tthis.layout.closeBtn = null;\n\t\tthis.layout.loader = null;\n\n\t\tthis.#refs = null;\n\n\t\tthis.iframe = null;\n\t\tthis.destroyed = true;\n\n\t\tEventEmitter.unsubscribeAll(this);\n\n\t\tthis.firePageEvent('onDestroyComplete');\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * @internal\n\t */\n\thide(): void\n\t{\n\t\tthis.hidden = true;\n\n\t\tDom.style(this.getContainer(), 'display', 'none');\n\t\tDom.style(this.getOverlay(), 'display', 'none');\n\t}\n\n\t/**\n\t * @internal\n\t */\n\tunhide(): void\n\t{\n\t\tthis.hidden = false;\n\n\t\tDom.style(this.getContainer(), 'display', null);\n\t\tDom.style(this.getOverlay(), 'display', null);\n\t}\n\n\t/**\n\t * @public\n\t */\n\treload(): void\n\t{\n\t\tthis.loaded = false;\n\t\tif (this.isSelfContained())\n\t\t{\n\t\t\tthis.contentCallbackInvoved = false;\n\t\t\tthis.showLoader();\n\t\t\tthis.setContent();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.showLoader();\n\t\t\tthis.getFrameWindow().location.reload();\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t */\n\tadjustLayout(): void\n\t{\n\t\tconst scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\t\tconst windowHeight = Browser.isMobile() ? window.innerHeight : document.documentElement.clientHeight;\n\n\t\tlet topBoundary = this.getTopBoundary();\n\t\tconst isTopBoundaryVisible = topBoundary - scrollTop > 0;\n\t\ttopBoundary = isTopBoundaryVisible ? topBoundary : scrollTop;\n\n\t\tconst height = isTopBoundaryVisible > 0 ? windowHeight - topBoundary + scrollTop : windowHeight;\n\t\tconst leftBoundary = this.getLeftBoundaryOffset();\n\t\tconst rightBoundary = this.calculateRightBoundary();\n\n\t\tDom.style(\n\t\t\tthis.getOverlay(),\n\t\t\t{\n\t\t\t\tleft: `${window.pageXOffset}px`,\n\t\t\t\ttop: `${topBoundary}px`,\n\t\t\t\tright: `${rightBoundary}px`,\n\t\t\t\theight: `${height}px`,\n\t\t\t},\n\t\t);\n\n\t\tconst { right = null, top = null, bottom = null } = this.#calculateOuterBoundary();\n\n\t\tDom.style(\n\t\t\tthis.getContainer(),\n\t\t\t{\n\t\t\t\twidth: `calc(100% - ${leftBoundary + (right === null ? 0 : right)}px)`,\n\t\t\t\tmaxWidth: this.getWidth() === null ? null : `${this.getWidth()}px`,\n\t\t\t\tright: right === null ? null : `${right}px`,\n\t\t\t\ttop: top === null ? null : `${top}px`,\n\t\t\t\tbottom: bottom === null ? null : `${bottom}px`,\n\t\t\t\t// height: `${height}px`, // height: '100%',\n\t\t\t},\n\t\t);\n\n\t\tthis.getLabel().adjustLayout();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcreateLayout()\n\t{\n\t\tif (this.layout.overlay !== null && this.layout.overlay.parentNode)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isSelfContained())\n\t\t{\n\t\t\tDom.addClass(this.getOverlay(), '--self-contained');\n\t\t\tDom.append(this.getOverlay(), document.body);\n\n\t\t\tthis.setContent();\n\n\t\t\tEventEmitter.subscribe('BX.Main.Popup:onInit', this.handlePopupInit);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.append(this.getFrame(), this.getContentContainer());\n\t\t\tDom.append(this.getOverlay(), document.body);\n\t\t\tthis.setFrameSrc(); // setFrameSrc must be below than appendChild, otherwise POST method fails.\n\t\t}\n\n\t\tthis.#zIndexComponent = ZIndexManager.register(this.getOverlay());\n\t}\n\n\tgetFrame(): HTMLIFrameElement\n\t{\n\t\tif (this.iframe !== null)\n\t\t{\n\t\t\treturn this.iframe;\n\t\t}\n\n\t\tthis.iframe = Dom.create('iframe', {\n\t\t\tattrs: {\n\t\t\t\treferrerpolicy: this.allowCrossOrigin ? 'strict-origin' : false,\n\t\t\t\tsrc: 'about:blank',\n\t\t\t\tframeborder: '0',\n\t\t\t},\n\t\t\tprops: {\n\t\t\t\tclassName: 'side-panel-iframe',\n\t\t\t\tname: this.getFrameId(),\n\t\t\t\tid: this.getFrameId(),\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tload: this.handleFrameLoad.bind(this),\n\t\t\t},\n\t\t});\n\n\t\treturn this.iframe;\n\t}\n\n\tgetOverlay(): HTMLElement\n\t{\n\t\tif (this.layout.overlay !== null)\n\t\t{\n\t\t\treturn this.layout.overlay;\n\t\t}\n\n\t\tconst overlayClass = this.overlayClassName === null ? '' : ` ${this.overlayClassName}`;\n\n\t\tthis.layout.overlay = Dom.create('div', {\n\t\t\tprops: {\n\t\t\t\tclassName: `side-panel side-panel-overlay${overlayClass}`,\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tmousedown: this.handleOverlayClick.bind(this),\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tthis.getContainer(),\n\t\t\t],\n\t\t});\n\n\t\treturn this.layout.overlay;\n\t}\n\n\tunhideOverlay(): void\n\t{\n\t\tDom.removeClass(this.getOverlay(), '--hidden');\n\t}\n\n\thideOverlay(): void\n\t{\n\t\tDom.addClass(this.getOverlay(), '--hidden');\n\t}\n\n\thideShadow(): void\n\t{\n\t\tDom.removeClass(this.getContainer(), 'side-panel-show-shadow');\n\t}\n\n\tshowShadow(): void\n\t{\n\t\tDom.addClass(this.getContainer(), 'side-panel-show-shadow');\n\t}\n\n\tsetOverlayBackground(): void\n\t{\n\t\tconst opacity = parseInt(this.overlayOpacity / 100 * 255, 10).toString(16).padStart(2, 0);\n\t\tDom.style(this.getOverlay(), 'background-color', `${this.overlayBgColor}${opacity}`);\n\t}\n\n\tsetOverlayAnimation(animate: boolean): void\n\t{\n\t\tif (Type.isBoolean(animate))\n\t\t{\n\t\t\tthis.overlayAnimation = animate;\n\t\t}\n\t}\n\n\tgetOverlayAnimation(): boolean\n\t{\n\t\treturn this.overlayAnimation;\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\tif (this.layout.container !== null)\n\t\t{\n\t\t\treturn this.layout.container;\n\t\t}\n\n\t\tconst content = Tag.render`\n\t\t\t<div class=\"side-panel-content-wrapper\">${this.getContentContainer()}</div>\n\t\t`;\n\n\t\tthis.layout.container = Tag.render`\n\t\t\t<div class=\"side-panel side-panel-container\">\n\t\t\t\t${\n\t\t\t\t\tthis.hideControls\n\t\t\t\t\t\t? content\n\t\t\t\t\t\t: [content, this.getLabelsContainer(), this.getPrintBtn()]\n\t\t\t\t}\n\t\t\t</div>\n\t\t`;\n\n\t\tDom.addClass(this.layout.container, this.getDesignSystemContext());\n\t\tDom.addClass(this.layout.container, this.containerClassName);\n\n\t\treturn this.layout.container;\n\t}\n\n\tgetContentContainer(): HTMLElement\n\t{\n\t\tif (this.layout.content !== null)\n\t\t{\n\t\t\treturn this.layout.content;\n\t\t}\n\n\t\tconst contentClass = this.contentClassName === null ? '' : ` ${this.contentClassName}`;\n\n\t\tthis.layout.content = Dom.create('div', {\n\t\t\tprops: {\n\t\t\t\tclassName: `side-panel-content-container${contentClass}`,\n\t\t\t},\n\t\t});\n\n\t\treturn this.layout.content;\n\t}\n\n\tgetLabelsContainer(): HTMLElement\n\t{\n\t\treturn this.#refs.remember('labels-container', () => {\n\t\t\treturn Dom.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'side-panel-labels',\n\t\t\t\t},\n\t\t\t\tchildren: [\n\t\t\t\t\tthis.getLabel().getContainer(),\n\t\t\t\t\tthis.getExtraLabelsContainer(),\n\t\t\t\t],\n\t\t\t})\n\t\t\t;\n\t\t});\n\t}\n\n\tgetExtraLabelsContainer(): HTMLElement\n\t{\n\t\treturn this.#refs.remember('icon-labels', () => {\n\t\t\treturn Dom.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'side-panel-extra-labels',\n\t\t\t\t},\n\t\t\t\tchildren: [\n\t\t\t\t\tthis.minimizeLabel ? this.minimizeLabel.getContainer() : null,\n\t\t\t\t\tthis.newWindowLabel ? this.newWindowLabel.getContainer() : null,\n\t\t\t\t\tthis.copyLinkLabel ? this.copyLinkLabel.getContainer() : null,\n\t\t\t\t],\n\t\t\t});\n\t\t});\n\t}\n\n\tgetCloseBtn(): HTMLElement\n\t{\n\t\treturn this.getLabel().getIconBox();\n\t}\n\n\tgetLabel(): Label\n\t{\n\t\treturn this.label;\n\t}\n\n\tgetNewWindowLabel(): Label | null\n\t{\n\t\treturn this.newWindowLabel;\n\t}\n\n\tgetCopyLinkLabel(): Label | null\n\t{\n\t\treturn this.copyLinkLabel;\n\t}\n\n\tgetMinimizeLabel(): Label | null\n\t{\n\t\treturn this.minimizeLabel;\n\t}\n\n\tgetPrintBtn(): HTMLElement\n\t{\n\t\treturn this.#refs.remember('print-btn', () => {\n\t\t\treturn Dom.create('span', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'side-panel-print',\n\t\t\t\t\ttitle: Loc.getMessage('MAIN_SIDEPANEL_PRINT'),\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tclick: this.handlePrintBtnClick.bind(this),\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * @private\n\t */\n\tsetContent(): void\n\t{\n\t\tif (this.contentCallbackInvoved)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.contentCallbackInvoved = true;\n\n\t\tDom.clean(this.getContentContainer());\n\n\t\tlet promise = this.contentCallback(this);\n\t\tconst isPromiseReturned = (\n\t\t\tpromise\n\t\t\t&& (\n\t\t\t\tObject.prototype.toString.call(promise) === '[object Promise]'\n\t\t\t\t|| promise.toString() === '[object BX.Promise]'\n\t\t\t)\n\t\t);\n\n\t\tif (!isPromiseReturned)\n\t\t{\n\t\t\tpromise = Promise.resolve(promise);\n\t\t}\n\n\t\tpromise\n\t\t\t.then((result) => {\n\t\t\t\tif (this.isDestroyed())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (Type.isPlainObject(result) && Type.isStringFilled(result.html))\n\t\t\t\t{\n\t\t\t\t\tRuntime.html(this.getContentContainer(), result.html)\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tthis.removeLoader();\n\t\t\t\t\t\t\tthis.loaded = true;\n\t\t\t\t\t\t\tthis.firePageEvent('onLoad');\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch((reason) => {\n\t\t\t\t\t\t\tthis.removeLoader();\n\t\t\t\t\t\t\tthis.getContentContainer().innerHTML = reason;\n\t\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\tif (Type.isDomNode(result))\n\t\t\t\t\t{\n\t\t\t\t\t\tDom.append(result, this.getContentContainer());\n\t\t\t\t\t}\n\t\t\t\t\telse if (Type.isStringFilled(result))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.getContentContainer().innerHTML = result;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.removeLoader();\n\t\t\t\t\tthis.loaded = true;\n\t\t\t\t\tthis.firePageEvent('onLoad');\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((reason) => {\n\t\t\t\tthis.removeLoader();\n\t\t\t\tthis.getContentContainer().innerHTML = reason;\n\t\t\t})\n\t\t;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tsetFrameSrc(): void\n\t{\n\t\tif (this.iframeSrc === this.getUrl())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst url = Uri.addParam(this.getUrl(), { IFRAME: 'Y', IFRAME_TYPE: 'SIDE_SLIDER' });\n\t\tif (this.isPostMethod())\n\t\t{\n\t\t\tconst form = document.createElement('form');\n\t\t\tform.method = 'POST';\n\t\t\tform.action = url;\n\t\t\tform.target = this.getFrameId();\n\t\t\tDom.style(form, 'display', 'none');\n\n\t\t\tBX.util.addObjectToForm(this.getRequestParams(), form);\n\n\t\t\tDom.append(form, document.body);\n\n\t\t\tform.submit();\n\n\t\t\tDom.remove(form);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.iframeSrc = this.getUrl();\n\t\t\tthis.iframe.src = url;\n\t\t}\n\n\t\tthis.loaded = false;\n\t\tthis.listenIframeLoading();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcreateLoader(sliderLoader: string | HTMLElement): void\n\t{\n\t\tDom.remove(this.layout.loader);\n\n\t\tconst loader = (\n\t\t\tType.isStringFilled(sliderLoader) || Type.isElementNode(sliderLoader)\n\t\t\t\t? sliderLoader\n\t\t\t\t: 'default-loader'\n\t\t);\n\n\t\tconst oldLoaders = [\n\t\t\t'task-new-loader',\n\t\t\t'task-edit-loader',\n\t\t\t'task-view-loader',\n\t\t\t'crm-entity-details-loader',\n\t\t\t'crm-button-view-loader',\n\t\t\t'crm-webform-view-loader',\n\t\t\t'create-mail-loader',\n\t\t\t'view-mail-loader',\n\t\t];\n\n\t\tif (Type.isElementNode(loader))\n\t\t{\n\t\t\tthis.layout.loader = this.createHTMLLoader(loader);\n\t\t}\n\t\telse if (oldLoaders.includes(loader) && this.loaderExists(loader))\n\t\t{\n\t\t\tthis.layout.loader = this.createOldLoader(loader);\n\t\t}\n\t\telse if (loader.charAt(0) === '/')\n\t\t{\n\t\t\tthis.layout.loader = this.createSvgLoader(loader);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst matches = loader.match(/^([\\w.-]+):([\\w.-]+)$/i);\n\t\t\tif (matches)\n\t\t\t{\n\t\t\t\tconst moduleId = matches[1];\n\t\t\t\tconst svgName = matches[2];\n\t\t\t\tconst svg = `/bitrix/images/${moduleId}/slider/${svgName}.svg`;\n\t\t\t\tthis.layout.loader = this.createSvgLoader(svg);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.layout.loader = this.createDefaultLoader();\n\t\t\t}\n\t\t}\n\n\t\tDom.append(this.layout.loader, this.getContainer());\n\t}\n\n\tcreateSvgLoader(svg): HTMLElement\n\t{\n\t\treturn Dom.create('div', {\n\t\t\tprops: {\n\t\t\t\tclassName: 'side-panel-loader',\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create('div', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'side-panel-loader-container',\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tbackgroundImage: `url(\"${svg}\")`,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\t}\n\n\tcreateDefaultLoader(): HTMLElement\n\t{\n\t\treturn Dom.create('div', {\n\t\t\tprops: {\n\t\t\t\tclassName: 'side-panel-loader',\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create('div', {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'side-panel-default-loader-container',\n\t\t\t\t\t},\n\t\t\t\t\thtml:\n\t\t\t\t\t\t'<svg class=\"side-panel-default-loader-circular\" viewBox=\"25 25 50 50\">'\n\t\t\t\t\t\t+ '<circle '\n\t\t\t\t\t\t\t+ 'class=\"side-panel-default-loader-path\" '\n\t\t\t\t\t\t\t+ 'cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-miterlimit=\"10\"'\n\t\t\t\t\t\t+ '/>'\n\t\t\t\t\t\t+ '</svg>',\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcreateOldLoader(loader: string): HTMLElement\n\t{\n\t\tif (loader === 'crm-entity-details-loader')\n\t\t{\n\t\t\treturn Dom.create('div', {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: `side-panel-loader ${loader}`,\n\t\t\t\t},\n\t\t\t\tchildren: [\n\t\t\t\t\tDom.create('img', {\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tsrc:\n\t\t\t\t\t\t\t\t'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAA1BMVEX'\n\t\t\t\t\t\t\t\t+ '///+nxBvIAAAAAXRSTlMAQObYZgAAAAtJREFUeAFjGMQAAACcAAG25ruvAAAAAElFTkSuQmCC',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tclassName: 'side-panel-loader-mask top',\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tDom.create('div', {\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tclassName: 'side-panel-loader-bg left',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\tDom.create('img', {\n\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\tsrc:\n\t\t\t\t\t\t\t\t\t\t'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAA1B'\n\t\t\t\t\t\t\t\t\t\t+ 'MVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAAtJREFUeAFjGMQAAACcAAG25ruvAAAAAElFTkSuQmCC',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\t\tclassName: 'side-panel-loader-mask left',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t],\n\t\t\t\t\t}),\n\t\t\t\t\tDom.create('div', {\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tclassName: 'side-panel-loader-bg right',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\tDom.create('img', {\n\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\tsrc:\n\t\t\t\t\t\t\t\t\t\t'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAA1BM'\n\t\t\t\t\t\t\t\t\t\t+ 'VEX///+nxBvIAAAAAXRSTlMAQObYZgAAAAtJREFUeAFjGMQAAACcAAG25ruvAAAAAElFTkSuQmCC',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\t\tclassName: 'side-panel-loader-mask right',\n\t\t\t\t\t\t\t\t},\n\t\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\t\t}\n\n\t\treturn Dom.create('div', {\n\t\t\tprops: {\n\t\t\t\tclassName: `side-panel-loader ${loader}`,\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create('img', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tsrc:\n\t\t\t\t\t\t\t'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAA1BMVEX'\n\t\t\t\t\t\t\t+ '///+nxBvIAAAAAXRSTlMAQObYZgAAAAtJREFUeAFjGMQAAACcAAG25ruvAAAAAElFTkSuQmCC',\n\t\t\t\t\t},\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'side-panel-loader-mask left',\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tDom.create('img', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tsrc:\n\t\t\t\t\t\t\t'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAAA'\n\t\t\t\t\t\t\t+ '1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAAAtJREFUeAFjGMQAAACcAAG25ruvAAAAAElFTkSuQmCC',\n\t\t\t\t\t},\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: 'side-panel-loader-mask right',\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcreateHTMLLoader(loader: HTMLElement): HTMLElement\n\t{\n\t\treturn Dom.create('div', {\n\t\t\tchildren: [\n\t\t\t\tloader,\n\t\t\t],\n\t\t});\n\t}\n\n\tloaderExists(loader): boolean\n\t{\n\t\tif (!Type.isStringFilled(loader))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let i = 0; i < document.styleSheets.length; i++)\n\t\t{\n\t\t\tconst style = document.styleSheets[i];\n\t\t\tif (!Type.isStringFilled(style.href) || !style.href.includes('sidepanel'))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet rules = null;\n\t\t\ttry\n\t\t\t{\n\t\t\t\trules = style.rules || style.cssRules;\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\trules = style.cssRules;\n\t\t\t\t}\n\t\t\t\tcatch\n\t\t\t\t{\n\t\t\t\t\trules = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const rule of rules)\n\t\t\t{\n\t\t\t\tif (Type.isStringFilled(rule.selectorText) && rule.selectorText.includes(loader))\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tremoveLoader()\n\t{\n\t\tDom.remove(this.layout.loader);\n\t\tthis.layout.loader = null;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tanimateOpening()\n\t{\n\t\tif (this.isPrintable())\n\t\t{\n\t\t\tthis.showPrintBtn();\n\t\t}\n\n\t\tif (this.animation)\n\t\t{\n\t\t\tthis.animation.stop();\n\t\t}\n\n\t\tthis.fireEvent('onOpening');\n\n\t\tif (Browser.isMobile())\n\t\t{\n\t\t\tthis.#currentAnimationState = this.#endAnimationState;\n\t\t\tthis.animateStep(this.#currentAnimationState);\n\t\t\tthis.completeAnimation();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#currentAnimationState = (\n\t\t\tthis.#currentAnimationState === null\n\t\t\t\t? this.#startAnimationState\n\t\t\t\t: this.#currentAnimationState\n\t\t);\n\n\t\tthis.animation = new BX.easing({\n\t\t\tduration: this.animationDuration,\n\t\t\tstart: this.#currentAnimationState,\n\t\t\tfinish: this.#endAnimationState,\n\t\t\tstep: (state) => {\n\t\t\t\tthis.#currentAnimationState = state;\n\t\t\t\tthis.animateStep(state);\n\t\t\t},\n\t\t\tcomplete: () => {\n\t\t\t\tthis.completeAnimation();\n\t\t\t},\n\t\t});\n\n\t\tif (this.animationName === 'scale' && Type.isStringFilled(this.animationOptions.origin))\n\t\t{\n\t\t\tDom.style(this.getContainer(), 'transform-origin', this.animationOptions.origin);\n\t\t}\n\n\t\tthis.animation.animate();\n\t}\n\n\t/**\n\t * @private\n\t * @param {object} state\n\t */\n\tanimateStep(state)\n\t{\n\t\tif (this.animationName === 'scale')\n\t\t{\n\t\t\tDom.style(this.getContainer(), 'transform', `scale(${state.scale / 100})`);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.style(this.getContainer(), 'transform', `translate(${state.translateX}%, ${state.translateY}%)`);\n\t\t}\n\n\t\tif (this.getOverlayAnimation())\n\t\t{\n\t\t\tconst opacity = parseInt(state.opacity / 100 * 255, 10).toString(16).padStart(2, 0);\n\t\t\tDom.style(this.getOverlay(), 'background-color', `${this.overlayBgColor}${opacity}`);\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param callback\n\t */\n\tcompleteAnimation(callback)\n\t{\n\t\tthis.animation = null;\n\t\tif (this.isOpen())\n\t\t{\n\t\t\tthis.#currentAnimationState = this.#endAnimationState;\n\t\t\tthis.maximizing = false;\n\n\t\t\tDom.removeClass(this.getOverlay(), '--opening');\n\t\t\tDom.addClass(this.getOverlay(), '--open');\n\t\t\tif (this.animationName === 'scale')\n\t\t\t{\n\t\t\t\tconst state = this.#getAnimationState('end');\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\t'transform-origin': null,\n\t\t\t\t\t\ttransform: `translate(${state.translateX}%, ${state.translateY}%)`,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.firePageEvent('onBeforeOpenComplete');\n\t\t\tthis.fireFrameEvent('onBeforeOpenComplete');\n\n\t\t\tthis.firePageEvent('onOpenComplete');\n\t\t\tthis.fireFrameEvent('onOpenComplete');\n\n\t\t\tif (!this.isLoaded())\n\t\t\t{\n\t\t\t\tthis.showLoader();\n\t\t\t}\n\n\t\t\tif (this.isFocusable())\n\t\t\t{\n\t\t\t\tthis.focus();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#currentAnimationState = this.#startAnimationState;\n\t\t\tthis.minimizing = false;\n\n\t\t\tDom.removeClass(this.getOverlay(), '--open --opening --closing');\n\t\t\tif (this.animationName === 'scale')\n\t\t\t{\n\t\t\t\tconst state = this.#getAnimationState('start');\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\t'transform-origin': null,\n\t\t\t\t\t\ttransform: `translate(${state.translateX}%, ${state.translateY}%)`,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tDom.style(\n\t\t\t\tthis.getContainer(),\n\t\t\t\t{\n\t\t\t\t\twidth: null,\n\t\t\t\t\tright: null,\n\t\t\t\t\topacity: null,\n\t\t\t\t\t'max-width': null,\n\t\t\t\t\t'min-width': null,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tDom.style(this.getCloseBtn(), 'opacity', null);\n\n\t\t\tthis.firePageEvent('onBeforeCloseComplete');\n\t\t\tthis.fireFrameEvent('onBeforeCloseComplete');\n\n\t\t\tthis.firePageEvent('onCloseComplete');\n\t\t\tthis.fireFrameEvent('onCloseComplete');\n\n\t\t\tif (Type.isFunction(callback))\n\t\t\t{\n\t\t\t\tcallback(this);\n\t\t\t}\n\n\t\t\tif (!this.isCacheable())\n\t\t\t{\n\t\t\t\tthis.destroy();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @internal\n\t */\n\tfirePageEvent(eventName: string): SliderEvent\n\t{\n\t\tconst sliderEvent = this.getEvent(eventName);\n\t\tif (sliderEvent === null)\n\t\t{\n\t\t\tthrow new Error('\\'eventName\\' is invalid.');\n\t\t}\n\n\t\tEventEmitter.emit(\n\t\t\tthis,\n\t\t\tsliderEvent.getFullName().toLowerCase(),\n\t\t\tnew BaseEvent({ data: [sliderEvent], compatData: [sliderEvent] }),\n\t\t);\n\n\t\t// Events for compatibility\n\t\tif (['onClose', 'onOpen'].includes(eventName))\n\t\t{\n\t\t\tEventEmitter.emit(`BX.Bitrix24.PageSlider:${eventName}`, new BaseEvent({ data: [this], compatData: [this] }));\n\t\t\tEventEmitter.emit(`Bitrix24.Slider:${eventName}`, new BaseEvent({ data: [this], compatData: [this] }));\n\t\t}\n\n\t\treturn sliderEvent;\n\t}\n\n\t/**\n\t * @internal\n\t */\n\tfireFrameEvent(eventName): SliderEvent\n\t{\n\t\tconst sliderEvent = this.getEvent(eventName);\n\t\tif (sliderEvent === null)\n\t\t{\n\t\t\tthrow new Error('\\'eventName\\' is invalid.');\n\t\t}\n\n\t\tif (this.allowCrossOrigin)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tconst frameWindow = this.getFrameWindow();\n\t\tif (frameWindow && frameWindow.BX && frameWindow.BX.onCustomEvent)\n\t\t{\n\t\t\tframeWindow.BX.onCustomEvent(this, sliderEvent.getFullName(), [sliderEvent]);\n\n\t\t\t// Events for compatibility\n\t\t\tif (['onClose', 'onOpen'].includes(eventName))\n\t\t\t{\n\t\t\t\tframeWindow.BX.onCustomEvent(`BX.Bitrix24.PageSlider:${eventName}`, [this]);\n\t\t\t\tframeWindow.BX.onCustomEvent(`Bitrix24.Slider:${eventName}`, [this]); // Compatibility\n\t\t\t}\n\t\t}\n\n\t\treturn sliderEvent;\n\t}\n\n\tfireEvent(eventName)\n\t{\n\t\tthis.firePageEvent(eventName);\n\t\tthis.fireFrameEvent(eventName);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tgetEvent(eventName: string | SliderEvent): SliderEvent | null\n\t{\n\t\tlet event = null;\n\t\tif (Type.isStringFilled(eventName))\n\t\t{\n\t\t\tevent = new SliderEvent();\n\t\t\tevent.setSlider(this);\n\t\t\tevent.setName(eventName);\n\t\t}\n\t\telse if (eventName instanceof SliderEvent)\n\t\t{\n\t\t\tevent = eventName;\n\t\t}\n\n\t\treturn event;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcanOpen(): boolean\n\t{\n\t\treturn this.canAction('open');\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcanClose(): boolean\n\t{\n\t\treturn this.canAction('close');\n\t}\n\n\t/**\n\t * @package\n\t * @returns {boolean}\n\t */\n\tcanCloseByEsc(): boolean\n\t{\n\t\treturn this.canAction('closeByEsc');\n\t}\n\n\t/**\n\t * @private\n\t * @param {string} action\n\t * @returns {boolean}\n\t */\n\tcanAction(action: string): boolean\n\t{\n\t\tif (!Type.isStringFilled(action))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst eventName = `on${action.charAt(0).toUpperCase()}${action.slice(1)}`;\n\n\t\tconst pageEvent = this.firePageEvent(eventName);\n\t\tconst frameEvent = this.fireFrameEvent(eventName);\n\n\t\treturn pageEvent.isActionAllowed() && (!frameEvent || frameEvent.isActionAllowed());\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleCrossOriginWindowMessage(event: MessageEvent)\n\t{\n\t\tconst frameUrl = new URL(this.url);\n\t\tconst eventUrl = new URL(event.origin);\n\t\tif (eventUrl.origin !== frameUrl.origin)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst message = { type: '', data: undefined };\n\t\tif (Type.isString(event.data))\n\t\t{\n\t\t\tmessage.type = event.data;\n\t\t}\n\t\telse if (Type.isPlainObject(event.data))\n\t\t{\n\t\t\tmessage.type = event.data.type;\n\t\t\tmessage.data = event.data.data;\n\t\t}\n\n\t\tswitch (message.type)\n\t\t{\n\t\t\tcase 'BX:SidePanel:close':\n\t\t\t{\n\t\t\t\tthis.close();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'BX:SidePanel:load:force':\n\t\t\t{\n\t\t\t\tif (!this.isLoaded() && !this.isDestroyed())\n\t\t\t\t{\n\t\t\t\t\tthis.handleFrameLoad();\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'BX:SidePanel:data:send':\n\t\t\t{\n\t\t\t\tconst pageEvent = new MessageEvent({ sender: this, data: message.data });\n\t\t\t\tpageEvent.setName('onXDomainMessage');\n\t\t\t\tthis.firePageEvent(pageEvent);\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\t// No default\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {Event} event\n\t */\n\thandleFrameLoad(event)\n\t{\n\t\tif (this.loaded)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst frameWindow = this.iframe.contentWindow;\n\t\tconst iframeLocation = frameWindow.location;\n\n\t\tif (this.allowCrossOrigin)\n\t\t{\n\t\t\tEvent.bind(window, 'message', this.handleCrossOriginWindowMessage);\n\t\t}\n\n\t\ttry\n\t\t{\n\t\t\tif (iframeLocation.toString() === 'about:blank')\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tcatch (e)\n\t\t{\n\t\t\tif (this.allowCrossOrigin)\n\t\t\t{\n\t\t\t\tthis.loaded = true;\n\t\t\t\tthis.closeLoader();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn('SidePanel: Try to use \"allowCrossOrigin: true\" option.');\n\n\t\t\tthrow e;\n\t\t}\n\n\t\tEvent.bind(frameWindow, 'keydown', this.handleFrameKeyDown);\n\t\tEvent.bind(frameWindow, 'focus', this.handleFrameFocus);\n\t\tEvent.bind(frameWindow, 'unload', this.handleFrameUnload);\n\n\t\tif (Browser.isMobile())\n\t\t{\n\t\t\tframeWindow.document.body.style.paddingBottom = `${window.innerHeight * 2 / 3}px`;\n\t\t}\n\n\t\tconst iframeUrl = iframeLocation.pathname + iframeLocation.search + iframeLocation.hash;\n\t\tthis.iframeSrc = this.refineUrl(iframeUrl);\n\t\tthis.url = this.iframeSrc;\n\n\t\tif (this.isPrintable())\n\t\t{\n\t\t\tthis.injectPrintStyles();\n\t\t}\n\n\t\tthis.loaded = true;\n\t\tthis.loadedCnt++;\n\n\t\tif (this.loadedCnt > 1)\n\t\t{\n\t\t\tthis.firePageEvent('onLoad');\n\t\t\tthis.fireFrameEvent('onLoad');\n\n\t\t\tthis.firePageEvent('onReload');\n\t\t\tthis.fireFrameEvent('onReload');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.firePageEvent('onLoad');\n\t\t\tthis.fireFrameEvent('onLoad');\n\t\t}\n\n\t\tif (this.isFocusable())\n\t\t{\n\t\t\tthis.focus();\n\t\t}\n\n\t\tthis.closeLoader();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tlistenIframeLoading()\n\t{\n\t\tif (this.allowCrossOrigin)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst isLoaded = setInterval(() => {\n\t\t\tif (this.isLoaded() || this.isDestroyed())\n\t\t\t{\n\t\t\t\tclearInterval(isLoaded);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.iframe.contentWindow.location.toString() === 'about:blank')\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.iframe.contentWindow.document.readyState === 'complete'\n\t\t\t\t|| this.iframe.contentWindow.document.readyState === 'interactive'\n\t\t\t)\n\t\t\t{\n\t\t\t\tclearInterval(isLoaded);\n\t\t\t\tthis.handleFrameLoad();\n\t\t\t}\n\t\t}, 200);\n\t}\n\n\t/**\n\t * @private\n\t * @param {Event} event\n\t */\n\thandleFrameUnload(event)\n\t{\n\t\tthis.loaded = false;\n\t\tthis.listenIframeLoading();\n\t}\n\n\t/**\n\t * @private\n\t * @param {Event} event\n\t */\n\thandleFrameKeyDown(event)\n\t{\n\t\tif (event.keyCode !== 27)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst framePopupManager = this.getWindow().BX?.Main?.PopupManager;\n\t\tif (framePopupManager)\n\t\t{\n\t\t\tconst popups = framePopupManager.getPopups();\n\t\t\tfor (const popup of popups)\n\t\t\t{\n\t\t\t\tif (popup.isShown())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst centerX = this.getWindow().document.documentElement.clientWidth / 2;\n\t\tconst centerY = this.getWindow().document.documentElement.clientHeight / 2;\n\t\tconst element = this.getWindow().document.elementFromPoint(centerX, centerY);\n\n\t\tif (Dom.hasClass(element, 'bx-core-dialog-overlay') || Dom.hasClass(element, 'bx-core-window'))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (element.closest('.bx-core-window'))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.firePageEvent('onEscapePress');\n\t\tthis.fireFrameEvent('onEscapePress');\n\t}\n\n\t/**\n\t * @private\n\t * @param {BaseEvent} event\n\t */\n\thandlePopupInit(event)\n\t{\n\t\tconst data = event.getCompatData();\n\t\tconst bindElement = data[1];\n\t\tconst params = data[2];\n\n\t\tif (\n\t\t\t!Type.isElementNode(params.targetContainer)\n\t\t\t&& Type.isElementNode(bindElement)\n\t\t\t&& this.getContentContainer().contains(bindElement)\n\t\t)\n\t\t{\n\t\t\tparams.targetContainer = this.getContentContainer();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {Event} event\n\t */\n\thandleFrameFocus(event)\n\t{\n\t\tthis.firePageEvent('onFrameFocus');\n\t}\n\n\t/**\n\t * @private\n\t * @param {MouseEvent} event\n\t */\n\thandleOverlayClick(event)\n\t{\n\t\tif (event.target === this.getOverlay())\n\t\t{\n\t\t\tif (this.animation === null)\n\t\t\t{\n\t\t\t\tthis.close();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {MouseEvent} event\n\t */\n\thandlePrintBtnClick(event)\n\t{\n\t\tif (this.isSelfContained())\n\t\t{\n\t\t\tconst frame = document.createElement('iframe');\n\t\t\tframe.src = 'about:blank';\n\t\t\tframe.name = 'sidepanel-print-frame';\n\n\t\t\tDom.style(frame, 'display', 'none');\n\t\t\tDom.append(frame, document.body);\n\n\t\t\tconst frameWindow = frame.contentWindow;\n\t\t\tconst frameDoc = frameWindow.document;\n\t\t\tframeDoc.open();\n\t\t\tframeDoc.write('<html><head>');\n\n\t\t\tlet headTags = '';\n\t\t\tconst links = document.head.querySelectorAll('link, style');\n\t\t\tfor (const link of links)\n\t\t\t{\n\t\t\t\theadTags += link.outerHTML;\n\t\t\t}\n\n\t\t\theadTags += '<style>html, body { background: #fff !important; height: 100%; }</style>';\n\n\t\t\tframeDoc.write(headTags);\n\n\t\t\tframeDoc.write('</head><body>');\n\t\t\tframeDoc.write(this.getContentContainer().innerHTML);\n\t\t\tframeDoc.write('</body></html>');\n\t\t\tframeDoc.close();\n\n\t\t\tframeWindow.focus();\n\t\t\tframeWindow.print();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tDom.remove(frame);\n\t\t\t\twindow.focus();\n\t\t\t}, 1000);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.focus();\n\t\t\tthis.getFrameWindow().print();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tinjectPrintStyles()\n\t{\n\t\tconst frameDocument = this.getFrameWindow().document;\n\n\t\tlet bodyClass = '';\n\n\t\tconst classList = frameDocument.body.classList;\n\t\tfor (const className of classList)\n\t\t{\n\t\t\tbodyClass += `.${className}`;\n\t\t}\n\n\t\tconst bodyStyle = `@media print { body${bodyClass} { `\n\t\t\t+ 'background: #fff !important; '\n\t\t\t+ '-webkit-print-color-adjust: exact;'\n\t\t\t+ 'color-adjust: exact; '\n\t\t\t+ '} }';\n\n\t\tconst style = frameDocument.createElement('style');\n\t\tstyle.type = 'text/css';\n\t\tif (style.styleSheet)\n\t\t{\n\t\t\tstyle.styleSheet.cssText = bodyStyle;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tstyle.appendChild(frameDocument.createTextNode(bodyStyle));\n\t\t}\n\n\t\tframeDocument.head.appendChild(style);\n\t}\n\n\trefineUrl(url: string): string\n\t{\n\t\tif (Type.isStringFilled(url) && /IFRAME/.test(url))\n\t\t{\n\t\t\treturn Uri.removeParam(url, ['IFRAME', 'IFRAME_TYPE']);\n\t\t}\n\n\t\treturn url;\n\t}\n}\n","import { SliderManager } from './slider-manager';\nimport { PageObject } from 'main.pageobject';\n\nlet instance = null;\n\nexport function getInstance(): SliderManager\n{\n\tconst topWindow = PageObject.getRootWindow();\n\tif (topWindow !== window)\n\t{\n\t\treturn topWindow.BX.SidePanel.Instance;\n\t}\n\n\tif (instance === null)\n\t{\n\t\tinstance = new SliderManager();\n\t}\n\n\treturn instance;\n}\n","import { Type, Cache, Text, Tag, Dom, type JsonObject } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { PopupManager, Popup } from 'main.popup';\n\nimport { getInstance } from './get-instance';\nimport { type ToolbarItemOptions } from './types/toolbar-item-options';\n\nexport class ToolbarItem extends EventEmitter\n{\n\tconstructor(itemOptions: ToolbarItemOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Main.SidePanel.ToolbarItem');\n\n\t\tconst options = Type.isPlainObject(itemOptions) ? itemOptions : {};\n\n\t\tthis.id = Type.isStringFilled(options.id) ? options.id : `toolbar-item-${Text.getRandom().toLowerCase()}`;\n\t\tthis.title = '';\n\t\tthis.url = '';\n\t\tthis.entityType = '';\n\t\tthis.entityId = 0;\n\t\tthis.entityName = '';\n\n\t\tthis.refs = new Cache.MemoryCache();\n\t\tthis.rendered = false;\n\n\t\tthis.setTitle(options.title);\n\t\tthis.setUrl(options.url);\n\t\tthis.setEntityType(options.entityType);\n\t\tthis.setEntityId(options.entityId);\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetUrl(): string\n\t{\n\t\treturn this.url;\n\t}\n\n\tsetUrl(url): void\n\t{\n\t\tif (Type.isStringFilled(url))\n\t\t{\n\t\t\tthis.url = url;\n\t\t\tif (this.rendered)\n\t\t\t{\n\t\t\t\tthis.getContainer().href = url;\n\t\t\t}\n\t\t}\n\t}\n\n\tgetTitle(): string\n\t{\n\t\treturn this.title;\n\t}\n\n\tsetTitle(title): void\n\t{\n\t\tif (Type.isStringFilled(title))\n\t\t{\n\t\t\tthis.title = title;\n\t\t\tif (this.rendered)\n\t\t\t{\n\t\t\t\tthis.getTitleContainer().textContent = title;\n\t\t\t}\n\t\t}\n\t}\n\n\tgetEntityType(): string\n\t{\n\t\treturn this.entityType;\n\t}\n\n\tsetEntityType(entityType): void\n\t{\n\t\tif (Type.isStringFilled(entityType))\n\t\t{\n\t\t\tthis.entityType = entityType;\n\t\t}\n\t}\n\n\tgetEntityId(): string | number\n\t{\n\t\treturn this.entityId;\n\t}\n\n\tsetEntityId(entityId: string | number): void\n\t{\n\t\tif (Type.isNumber(entityId) || Type.isStringFilled(entityId))\n\t\t{\n\t\t\tthis.entityId = entityId;\n\t\t}\n\t}\n\n\tgetEntityName(): string\n\t{\n\t\treturn this.entityName;\n\t}\n\n\tsetEntityName(entityName): void\n\t{\n\t\tif (Type.isStringFilled(entityName))\n\t\t{\n\t\t\tthis.entityName = entityName;\n\t\t}\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\treturn this.refs.remember('container', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"side-panel-toolbar-item\" \n\t\t\t\t\tonclick=\"${this.handleClick.bind(this)}\"\n\t\t\t\t\tonmouseenter=\"${this.handleMouseEnter.bind(this)}\"\n\t\t\t\t\tonmouseleave=\"${this.handleMouseLeave.bind(this)}\"\n\t\t\t\t>\n\t\t\t\t\t${this.getTitleContainer()}\n\t\t\t\t\t<div class=\"side-panel-toolbar-item-remove-btn\" onclick=\"${this.handleRemoveBtnClick.bind(this)}\">\n\t\t\t\t\t\t<div class=\"ui-icon-set --cross-20\" style=\"--ui-icon-set__icon-size: 100%;\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tisRendered(): boolean\n\t{\n\t\treturn this.rendered;\n\t}\n\n\tgetTitleContainer(): HTMLElement\n\t{\n\t\treturn this.refs.remember('title', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<a \n\t\t\t\t\tclass=\"side-panel-toolbar-item-title\"\n\t\t\t\t\thref=\"${encodeURI(this.getUrl())}\"\n\t\t\t\t\tdata-slider-ignore-autobinding=\"true\"\n\t\t\t\t>${Text.encode(this.getTitle())}</a>\n\t\t\t`;\n\t\t});\n\t}\n\n\tprependTo(node)\n\t{\n\t\tif (Type.isDomNode(node))\n\t\t{\n\t\t\tDom.prepend(this.getContainer(), node);\n\t\t\tthis.rendered = true;\n\t\t}\n\t}\n\n\tappendTo(node): void\n\t{\n\t\tif (Type.isDomNode(node))\n\t\t{\n\t\t\tDom.append(this.getContainer(), node);\n\t\t\tthis.rendered = true;\n\t\t}\n\t}\n\n\tinsertBefore(node): void\n\t{\n\t\tif (Type.isDomNode(node))\n\t\t{\n\t\t\tDom.insertBefore(this.getContainer(), node);\n\t\t\tthis.rendered = true;\n\t\t}\n\t}\n\n\tinsertAfter(node): void\n\t{\n\t\tif (Type.isDomNode(node))\n\t\t{\n\t\t\tDom.insertAfter(this.getContainer(), node);\n\t\t\tthis.rendered = true;\n\t\t}\n\t}\n\n\tremove(): void\n\t{\n\t\tDom.remove(this.getContainer());\n\t\tthis.rendered = false;\n\t}\n\n\tshowTooltip(): void\n\t{\n\t\tconst targetNode = this.getContainer();\n\t\tconst rect = targetNode.getBoundingClientRect();\n\t\tconst targetNodeWidth = rect.width;\n\t\tconst popupWidth = Math.min(Math.max(100, this.getTitleContainer().scrollWidth + 20), 300);\n\n\t\tconst hint = PopupManager.create({\n\t\t\tid: 'sidepanel-toolbar-item-hint',\n\t\t\tcacheable: false,\n\t\t\tbindElement: rect,\n\t\t\tbindOptions: {\n\t\t\t\tforceBindPosition: true,\n\t\t\t\tforceTop: true,\n\t\t\t\tposition: 'top',\n\t\t\t},\n\t\t\twidth: popupWidth,\n\t\t\tcontent: Tag.render`\n\t\t\t\t<div class=\"sidepanel-toolbar-item-hint\">\n\t\t\t\t\t<div class=\"sidepanel-toolbar-item-hint-title\">${Text.encode(this.getEntityName())}</div>\n\t\t\t\t\t<div class=\"sidepanel-toolbar-item-hint-content\">${Text.encode(this.getTitle())}</div>\n\t\t\t\t</div>\n\t\t\t`,\n\t\t\tdarkMode: true,\n\t\t\tfixed: true,\n\t\t\toffsetTop: 0,\n\t\t\tevents: {\n\t\t\t\tonShow: (event) => {\n\t\t\t\t\tconst popup = event.getTarget();\n\t\t\t\t\tconst offsetLeft = (targetNodeWidth / 2) - (popupWidth / 2);\n\t\t\t\t\tconst angleShift = Popup.getOption('angleLeftOffset') - Popup.getOption('angleMinTop');\n\n\t\t\t\t\tpopup.setAngle({ offset: popupWidth / 2 - angleShift });\n\t\t\t\t\tpopup.setOffset({ offsetLeft: offsetLeft + Popup.getOption('angleLeftOffset') });\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\thint.show();\n\t\thint.adjustPosition();\n\t}\n\n\thideTooltip()\n\t{\n\t\tconst hint: Popup = PopupManager.getPopupById('sidepanel-toolbar-item-hint');\n\t\tif (hint)\n\t\t{\n\t\t\thint.close();\n\t\t}\n\t}\n\n\thandleClick(event): void\n\t{\n\t\tif (event.ctrlKey || event.metaKey)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tgetInstance().maximize(this.getUrl());\n\t}\n\n\thandleMouseEnter(): void\n\t{\n\t\tthis.showTooltip();\n\t}\n\n\thandleMouseLeave(): void\n\t{\n\t\tthis.hideTooltip();\n\t}\n\n\thandleRemoveBtnClick(event): void\n\t{\n\t\tevent.stopPropagation();\n\t\tthis.emit('onRemove');\n\t}\n\n\ttoJSON(): JsonObject\n\t{\n\t\treturn {\n\t\t\ttitle: this.getTitle(),\n\t\t\turl: this.getUrl(),\n\t\t\tentityType: this.getEntityType(),\n\t\t\tentityId: this.getEntityId(),\n\t\t};\n\t}\n}\n","import {\n\tType,\n\tTag,\n\tText,\n\tCache,\n\tLoc,\n\tDom,\n\tRuntime,\n\tZIndexManager,\n\tEvent,\n\tReflection,\n\tajax as Ajax,\n\ttype JsonObject,\n} from 'main.core';\n\nimport { EventEmitter } from 'main.core.events';\nimport { MenuManager, PopupManager, Popup, type Menu } from 'main.popup';\n\nimport { ToolbarItem } from './toolbar-item';\nimport { getInstance } from './get-instance';\n\nimport { type ToolbarItemOptions } from './types/toolbar-item-options';\nimport { type ToolbarOptions } from './types/toolbar-options';\n\nexport class Toolbar extends EventEmitter\n{\n\tconstructor(toolbarOptions: ToolbarOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Main.SidePanel.Toolbar');\n\n\t\tconst options = Type.isPlainObject(toolbarOptions) ? toolbarOptions : {};\n\t\tif (!Type.isStringFilled(options.context))\n\t\t{\n\t\t\tthrow new Error('BX.Main.SidePanel.Toolbar: \"context\" parameter is required.');\n\t\t}\n\n\t\tthis.context = options.context;\n\t\tthis.items = [];\n\t\tthis.rendered = false;\n\t\tthis.refs = new Cache.MemoryCache();\n\t\tthis.container = null;\n\t\tthis.lsKey = 'bx.sidepanel.toolbar.item';\n\n\t\tthis.initialPosition = { right: '5px', bottom: '20px' };\n\t\tthis.shiftedPosition = { right: '5px', bottom: '20px' };\n\t\tif (Type.isPlainObject(options.position))\n\t\t{\n\t\t\tthis.initialPosition = options.position;\n\t\t}\n\n\t\tif (Type.isPlainObject(options.shiftedPosition))\n\t\t{\n\t\t\tthis.shiftedPosition = options.shiftedPosition;\n\t\t}\n\n\t\tthis.collapsed = options.collapsed !== false;\n\t\tthis.muted = false;\n\t\tthis.shifted = false;\n\n\t\tthis.maxVisibleItems = Type.isNumber(options.maxVisibleItems) ? Math.max(options.maxVisibleItems, 1) : 5;\n\n\t\tthis.addItems(options.items);\n\n\t\tconst item = this.restoreItemFromLocalStorage();\n\t\tif (item !== null)\n\t\t{\n\t\t\tconst { entityType, entityId } = item;\n\t\t\tif (this.getItem(entityType, entityId))\n\t\t\t{\n\t\t\t\tthis.clearLocalStorage();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.minimizeItem(item);\n\t\t\t}\n\t\t}\n\t}\n\n\tshow(): void\n\t{\n\t\tDom.addClass(this.getContainer(), '--show');\n\t}\n\n\tisShown(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), '--show');\n\t}\n\n\thide(): void\n\t{\n\t\tDom.removeClass(this.getContainer(), '--show');\n\t}\n\n\tmute(): boolean\n\t{\n\t\tif (this.muted)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.muted = true;\n\t\tDom.addClass(this.getContainer(), '--muted');\n\n\t\treturn true;\n\t}\n\n\tunmute(): boolean\n\t{\n\t\tif (!this.muted)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.muted = false;\n\t\tDom.removeClass(this.getContainer(), '--muted');\n\n\t\treturn true;\n\t}\n\n\tisMuted(): boolean\n\t{\n\t\treturn this.muted;\n\t}\n\n\ttoggleMuteness(): boolean\n\t{\n\t\tif (this.canShowOnTop())\n\t\t{\n\t\t\treturn this.unmute();\n\t\t}\n\n\t\treturn this.mute();\n\t}\n\n\tshift(): boolean\n\t{\n\t\tif (this.shifted)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.shifted = true;\n\t\tDom.addClass(this.getContainer(), '--shifted');\n\t\tDom.style(document.body, '--side-panel-toolbar-shifted', 1);\n\t\tthis.setPosition(this.getContainer(), this.shiftedPosition);\n\n\t\treturn true;\n\t}\n\n\tunshift(): boolean\n\t{\n\t\tif (!this.shifted)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.shifted = false;\n\t\tDom.removeClass(this.getContainer(), '--shifted');\n\t\tDom.style(document.body, '--side-panel-toolbar-shifted', null);\n\t\tthis.setPosition(this.getContainer(), this.initialPosition);\n\n\t\treturn true;\n\t}\n\n\tisShifted(): boolean\n\t{\n\t\treturn this.shifted;\n\t}\n\n\ttoggleShift(): boolean\n\t{\n\t\tconst sliders = getInstance().getOpenSliders();\n\t\tif (sliders.length === 0 || (sliders.length === 1 && !sliders[0].isOpen()))\n\t\t{\n\t\t\treturn this.unshift();\n\t\t}\n\n\t\treturn this.shift();\n\t}\n\n\tsetPosition(container: HTMLElement, position): boolean\n\t{\n\t\tfor (const prop of ['top', 'right', 'bottom', 'left'])\n\t\t{\n\t\t\tDom.style(container, prop, null);\n\t\t\tif (Type.isStringFilled(position[prop]))\n\t\t\t{\n\t\t\t\tDom.style(container, prop, position[prop]);\n\t\t\t}\n\t\t}\n\t}\n\n\tcollapse(immediately: boolean = false): void\n\t{\n\t\tif (this.collapsed)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (immediately === true)\n\t\t{\n\t\t\tDom.addClass(this.getContainer(), '--collapsed');\n\t\t\tDom.style(this.getContentContainer(), 'width', null);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst width = this.getContentContainer().scrollWidth;\n\t\t\tDom.style(this.getContentContainer(), 'width', `${width}px`);\n\n\t\t\tEvent.unbindAll(this.getContentContainer(), 'transitionend');\n\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tDom.style(this.getContentContainer(), 'width', 0);\n\t\t\t\t\tEvent.bindOnce(this.getContentContainer(), 'transitionend', () => {\n\t\t\t\t\t\tDom.addClass(this.getContainer(), '--collapsed');\n\t\t\t\t\t\tDom.style(this.getContentContainer(), 'width', null);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis.collapsed = true;\n\t}\n\n\texpand(immediately: boolean = false): void\n\t{\n\t\tif (!this.collapsed)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (immediately === true)\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), '--collapsed');\n\t\t\tDom.style(this.getContentContainer(), 'width', null);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), '--collapsed');\n\t\t\tconst width = this.getContentContainer().scrollWidth;\n\t\t\tDom.style(this.getContentContainer(), 'width', 0);\n\n\t\t\tEvent.unbindAll(this.getContentContainer(), 'transitionend');\n\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tDom.style(this.getContentContainer(), 'width', `${width}px`);\n\t\t\t\t\tEvent.bindOnce(this.getContentContainer(), 'transitionend', () => {\n\t\t\t\t\t\tDom.style(this.getContentContainer(), 'width', null);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis.collapsed = false;\n\t}\n\n\ttoggle(): void\n\t{\n\t\tif (this.collapsed)\n\t\t{\n\t\t\tthis.request('expand');\n\t\t\tthis.expand();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.request('collapse');\n\t\t\tthis.collapse();\n\t\t}\n\t}\n\n\tisCollapsed(): boolean\n\t{\n\t\treturn this.collapsed;\n\t}\n\n\tgetItems()\n\t{\n\t\treturn this.items;\n\t}\n\n\tgetItemsCount(): number\n\t{\n\t\treturn this.items.length;\n\t}\n\n\taddItems(itemsOptions)\n\t{\n\t\tif (Type.isArrayFilled(itemsOptions))\n\t\t{\n\t\t\titemsOptions.forEach((itemOptions) => {\n\t\t\t\tthis.addItem(itemOptions);\n\t\t\t});\n\t\t}\n\t}\n\n\taddItem(itemOptions: ToolbarItemOptions): ToolbarItem | null\n\t{\n\t\tconst item = this.createItem(itemOptions);\n\t\tif (item === null)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tthis.items.push(item);\n\n\t\tif (this.rendered)\n\t\t{\n\t\t\tthis.redraw();\n\t\t}\n\n\t\treturn item;\n\t}\n\n\t/**\n\t *\n\t * @param itemOptions\n\t * @returns {ToolbarItem|null}\n\t */\n\tprependItem(itemOptions): ToolbarItem | null\n\t{\n\t\tconst item = this.createItem(itemOptions);\n\t\tif (item === null)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tthis.items.unshift(item);\n\n\t\tif (this.rendered)\n\t\t{\n\t\t\tthis.redraw();\n\t\t}\n\n\t\treturn item;\n\t}\n\n\tcreateItem(itemOptions: ToolbarItemOptions): ToolbarItem | null\n\t{\n\t\tconst options = Type.isPlainObject(itemOptions) ? itemOptions : {};\n\n\t\tif (\n\t\t\t!Type.isStringFilled(options.entityType)\n\t\t\t|| !(Type.isStringFilled(options.entityId) || Type.isNumber(options.entityId))\n\t\t\t|| !Type.isStringFilled(options.title)\n\t\t\t|| !Type.isStringFilled(options.url)\n\t\t)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tconst item = new ToolbarItem(options);\n\t\tif (!Type.isStringFilled(item.getEntityName()))\n\t\t{\n\t\t\tconst minimizeOptions = getInstance().getMinimizeOptions(item.getUrl());\n\t\t\tif (Type.isPlainObject(minimizeOptions) && Type.isStringFilled(minimizeOptions.entityName))\n\t\t\t{\n\t\t\t\titem.setEntityName(minimizeOptions.entityName);\n\t\t\t}\n\t\t}\n\n\t\titem.subscribe('onRemove', this.handleItemRemove.bind(this));\n\n\t\treturn item;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tminimizeItem(itemOptions: ToolbarItemOptions): ToolbarItem | null\n\t{\n\t\tconst { entityType, entityId } = itemOptions;\n\t\tlet item = this.getItem(entityType, entityId);\n\t\tconst itemExists = item !== null;\n\t\tif (!itemExists)\n\t\t{\n\t\t\titem = this.prependItem(itemOptions);\n\t\t}\n\n\t\tif (item !== null)\n\t\t{\n\t\t\tif (!itemExists)\n\t\t\t{\n\t\t\t\tthis.saveItemToLocalStorage(item);\n\t\t\t}\n\n\t\t\tthis.request('minimize', item)\n\t\t\t\t.then((response) => {\n\t\t\t\t\tif (response.status === 'success')\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.clearLocalStorage();\n\t\t\t\t\t}\n\t\t\t\t}).catch(() => {\n\t\t\t\t\tthis.clearLocalStorage();\n\t\t\t\t\tthis.removeItem(item);\n\t\t\t\t})\n\t\t\t;\n\t\t}\n\n\t\treturn item;\n\t}\n\n\tsaveItemToLocalStorage(item): void\n\t{\n\t\tconst cache = { item, ttl: Date.now() };\n\t\tlocalStorage.setItem(this.lsKey, JSON.stringify(cache));\n\t}\n\n\trestoreItemFromLocalStorage(): JsonObject | null\n\t{\n\t\tconst data = localStorage.getItem(this.lsKey);\n\t\tif (Type.isStringFilled(data))\n\t\t{\n\t\t\tconst { item, ttl } = JSON.parse(data);\n\t\t\tif ((Date.now() - ttl) > 10000)\n\t\t\t{\n\t\t\t\tthis.clearLocalStorage();\n\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif (Type.isPlainObject(item))\n\t\t\t{\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tclearLocalStorage(): void\n\t{\n\t\tlocalStorage.removeItem(this.lsKey);\n\t}\n\n\tgetContext(): string\n\t{\n\t\treturn this.context;\n\t}\n\n\trequest(action, item, data): Promise\n\t{\n\t\tconst additional = Type.isPlainObject(data) ? data : {};\n\n\t\treturn Ajax.runAction(`main.api.sidepanel.toolbar.${action}`, {\n\t\t\tjson: {\n\t\t\t\ttoolbar: {\n\t\t\t\t\tcontext: this.getContext(),\n\t\t\t\t},\n\t\t\t\titem: item ? item.toJSON() : null,\n\t\t\t\t...additional,\n\t\t\t},\n\t\t});\n\t}\n\n\thandleItemRemove(event): void\n\t{\n\t\tconst item = event.getTarget();\n\t\titem.hideTooltip();\n\t\tthis.removeItem(item);\n\t}\n\n\thandleMenuItemRemove(event): void\n\t{\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tconst itemId = event.currentTarget.dataset.menuItemId;\n\t\tconst itemToRemove = this.getItemById(itemId);\n\t\tif (itemToRemove)\n\t\t{\n\t\t\tthis.removeItem(itemToRemove);\n\t\t}\n\n\t\tconst menu = this.getMenu();\n\t\tif (menu)\n\t\t{\n\t\t\tmenu.removeMenuItem(itemId);\n\n\t\t\tconst invisibleItemsCount = this.getItems().reduce((count, item) => {\n\t\t\t\treturn item.isRendered() ? count : count + 1;\n\t\t\t}, 0);\n\n\t\t\tif (invisibleItemsCount > 0)\n\t\t\t{\n\t\t\t\tmenu.getPopupWindow().adjustPosition();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tmenu.close();\n\t\t\t}\n\t\t}\n\t}\n\n\tremoveItem(itemToRemove): void\n\t{\n\t\titemToRemove.remove();\n\t\tthis.items = this.items.filter((item) => {\n\t\t\treturn item !== itemToRemove;\n\t\t});\n\n\t\tconst restored = this.restoreItemFromLocalStorage();\n\t\tif (restored !== null)\n\t\t{\n\t\t\tconst { entityType, entityId } = restored;\n\t\t\tif (itemToRemove.getEntityType() === entityType && itemToRemove.getEntityId() === entityId)\n\t\t\t{\n\t\t\t\tthis.clearLocalStorage();\n\t\t\t}\n\t\t}\n\n\t\tif (this.rendered)\n\t\t{\n\t\t\tthis.redraw();\n\t\t\tthis.request('remove', itemToRemove);\n\n\t\t\tif (this.getItemsCount() === 0)\n\t\t\t{\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t}\n\t}\n\n\tredraw(): void\n\t{\n\t\tlet visibleItemsCount = 0;\n\t\tfor (let i = 0; i < this.getItems().length; i++)\n\t\t{\n\t\t\tconst item = this.getItems()[i];\n\t\t\tif (visibleItemsCount >= this.maxVisibleItems)\n\t\t\t{\n\t\t\t\tif (item.isRendered())\n\t\t\t\t{\n\t\t\t\t\titem.remove();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (!item.isRendered())\n\t\t\t\t{\n\t\t\t\t\tconst previousItem = this.getItems()[i - 1] || null;\n\t\t\t\t\tconst nextItem = this.getItems()[i + 1] || null;\n\t\t\t\t\tif (previousItem)\n\t\t\t\t\t{\n\t\t\t\t\t\titem.insertAfter(previousItem.getContainer());\n\t\t\t\t\t}\n\t\t\t\t\telse if (nextItem)\n\t\t\t\t\t{\n\t\t\t\t\t\t// eslint-disable-next-line @bitrix24/bitrix24-rules/no-native-dom-methods\n\t\t\t\t\t\titem.insertBefore(nextItem.getContainer());\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\titem.appendTo(this.getItemsContainer());\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvisibleItemsCount++;\n\t\t\t}\n\t\t}\n\t}\n\n\tremoveAll(): void\n\t{\n\t\tthis.getItemsContainer().innerHTML = '';\n\t\tthis.items = [];\n\t\tthis.clearLocalStorage();\n\t}\n\n\tgetItem(entityType: string, entityId: string | number): ToolbarItem | null\n\t{\n\t\treturn this.items.find((item) => item.getEntityType() === entityType && item.getEntityId() === entityId) || null;\n\t}\n\n\tgetItemByUrl(url: string): ToolbarItem | null\n\t{\n\t\treturn this.items.find((item) => item.getUrl() === url) || null;\n\t}\n\n\tgetItemById(id: string): ToolbarItem | null\n\t{\n\t\treturn this.items.find((item) => item.getId() === id) || null;\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\treturn this.refs.remember('container', () => {\n\t\t\tconst classes = [];\n\t\t\tif (this.collapsed)\n\t\t\t{\n\t\t\t\tclasses.push('--collapsed');\n\t\t\t}\n\n\t\t\tconst container = Tag.render`\n\t\t\t\t<div class=\"side-panel-toolbar ${classes.join(' ')}\">\n\t\t\t\t\t${this.getContentContainer()}\n\t\t\t\t\t<div class=\"side-panel-toolbar-toggle\" onclick=\"${this.handleToggleClick.bind(this)}\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tthis.setPosition(container, this.initialPosition);\n\t\t\tDom.append(container, document.body);\n\t\t\tZIndexManager.register(container, { alwaysOnTop: true });\n\t\t\tthis.rendered = true;\n\n\t\t\tconst toggleMuteness = Runtime.debounce(this.toggleMuteness, 50, this);\n\t\t\tEventEmitter.subscribe('BX.Main.Popup:onShow', toggleMuteness);\n\t\t\tEventEmitter.subscribe('BX.Main.Popup:onClose', toggleMuteness);\n\t\t\tEventEmitter.subscribe('BX.Main.Popup:onDestroy', toggleMuteness);\n\t\t\tEventEmitter.subscribe('onWindowClose', toggleMuteness);\n\t\t\tEventEmitter.subscribe('onWindowRegister', toggleMuteness);\n\n\t\t\tlet forceCollapsed = false;\n\t\t\tconst onSliderClose = () => {\n\t\t\t\tthis.toggleMuteness();\n\t\t\t\tif (this.isMuted())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.toggleShift();\n\t\t\t\tif (!this.isShifted() && forceCollapsed)\n\t\t\t\t{\n\t\t\t\t\tforceCollapsed = false;\n\t\t\t\t\tthis.expand();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tEventEmitter.subscribe('SidePanel.Slider:onClosing', onSliderClose);\n\t\t\tEventEmitter.subscribe('SidePanel.Slider:onCloseComplete', onSliderClose);\n\t\t\tEventEmitter.subscribe('SidePanel.Slider:onDestroyComplete', onSliderClose);\n\t\t\tEventEmitter.subscribe('SidePanel.Slider:onOpening', () => {\n\t\t\t\tthis.toggleMuteness();\n\t\t\t\tif (this.isMuted())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!this.isCollapsed())\n\t\t\t\t{\n\t\t\t\t\tforceCollapsed = true;\n\t\t\t\t\tthis.collapse();\n\t\t\t\t}\n\n\t\t\t\tthis.toggleShift();\n\t\t\t});\n\n\t\t\tEventEmitter.subscribe('BX.UI.Viewer.Controller:onBeforeShow', toggleMuteness);\n\t\t\tEventEmitter.subscribe(\n\t\t\t\t'BX.UI.Viewer.Controller:onClose',\n\t\t\t\tRuntime.debounce(this.toggleMuteness, 500, this),\n\t\t\t);\n\n\t\t\tEvent.bind(window, 'resize', Runtime.throttle(() => {\n\t\t\t\tconst menu = this.getMenu();\n\t\t\t\tif (menu !== null)\n\t\t\t\t{\n\t\t\t\t\tmenu.close();\n\t\t\t\t}\n\t\t\t}, 300));\n\n\t\t\treturn container;\n\t\t});\n\t}\n\n\tgetContentContainer(): HTMLElement\n\t{\n\t\treturn this.refs.remember('content-container', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"side-panel-toolbar-content\">\n\t\t\t\t\t<div class=\"side-panel-toolbar-collapse-btn\" onclick=\"${this.handleToggleClick.bind(this)}\">\n\t\t\t\t\t\t<div class=\"ui-icon-set --chevron-right\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t${this.getItemsContainer()}\n\t\t\t\t\t${this.getMoreButton()}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\tgetItemsContainer(): HTMLElement\n\t{\n\t\treturn this.refs.remember('items-container', () => {\n\t\t\tconst container = Tag.render`<div class=\"side-panel-toolbar-items\"></div>`;\n\t\t\t[...this.items].slice(0, this.maxVisibleItems).forEach((item) => {\n\t\t\t\titem.appendTo(container);\n\t\t\t});\n\n\t\t\treturn container;\n\t\t});\n\t}\n\n\tgetMoreButton(): HTMLElement\n\t{\n\t\treturn this.refs.remember('more-button', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"side-panel-toolbar-more-btn\" onclick=\"${this.handleMoreBtnClick.bind(this)}\">\n\t\t\t\t\t<div class=\"ui-icon-set --more\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t});\n\t}\n\n\thandleMoreBtnClick(event): void\n\t{\n\t\tconst targetNode = this.getMoreButton();\n\t\tconst rect = targetNode.getBoundingClientRect();\n\t\tconst targetNodeWidth = rect.width;\n\n\t\tconst items = [...this.items].filter((item) => !item.isRendered()).map((item) => {\n\t\t\tconst title = (\n\t\t\t\tType.isStringFilled(item.getEntityName())\n\t\t\t\t\t? `${item.getEntityName()}\\n${item.getTitle()}`\n\t\t\t\t\t: item.getTitle()\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tid: item.getId(),\n\t\t\t\thtml: this.createMenuItemText(item),\n\t\t\t\ttitle,\n\t\t\t\thref: item.getUrl(),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tmenu.close();\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\n\t\tif (items.length > 0)\n\t\t{\n\t\t\titems.push({\n\t\t\t\tdelimiter: true,\n\t\t\t});\n\t\t}\n\n\t\titems.push({\n\t\t\ttext: Loc.getMessage('MAIN_SIDEPANEL_REMOVE_ALL'),\n\t\t\tonclick: () => {\n\t\t\t\tthis.removeAll();\n\t\t\t\tthis.hide();\n\t\t\t\tmenu.close();\n\n\t\t\t\tthis.request('removeAll');\n\t\t\t},\n\t\t});\n\n\t\tconst menu = MenuManager.create({\n\t\t\tid: 'sidepanel-toolbar-more-btn',\n\t\t\tcacheable: false,\n\t\t\tbindElement: rect,\n\t\t\tbindOptions: {\n\t\t\t\tforceBindPosition: true,\n\t\t\t\tforceTop: true,\n\t\t\t\tposition: 'top',\n\t\t\t},\n\t\t\tmaxWidth: 260,\n\t\t\tfixed: true,\n\t\t\toffsetTop: 0,\n\t\t\tmaxHeight: 305,\n\t\t\titems,\n\t\t\tevents: {\n\t\t\t\tonShow: (event) => {\n\t\t\t\t\tconst popup = event.getTarget();\n\t\t\t\t\tconst popupWidth = popup.getPopupContainer().offsetWidth;\n\t\t\t\t\tconst offsetLeft = (targetNodeWidth / 2) - (popupWidth / 2);\n\t\t\t\t\tconst angleShift = Popup.getOption('angleLeftOffset') - Popup.getOption('angleMinTop');\n\n\t\t\t\t\tpopup.setAngle({ offset: popupWidth / 2 - angleShift });\n\t\t\t\t\tpopup.setOffset({ offsetLeft: offsetLeft + Popup.getOption('angleLeftOffset') });\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\tmenu.show();\n\t}\n\n\tcanShowOnTop(): boolean\n\t{\n\t\tconst popups = PopupManager.getPopups();\n\t\tfor (const popup of popups)\n\t\t{\n\t\t\tif (!popup.isShown())\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tpopup.getId().startsWith('timeman_weekly_report_popup_')\n\t\t\t\t|| popup.getId().startsWith('timeman_daily_report_popup_')\n\t\t\t\t|| Dom.hasClass(popup.getPopupContainer(), 'b24-whatsnew__popup')\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (Reflection.getClass('BX.UI.Viewer.Instance') && BX.UI.Viewer.Instance.isOpen())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst sliders = getInstance().getOpenSliders();\n\t\tfor (const slider of sliders)\n\t\t{\n\t\t\tconst sliderId = slider.getUrl().toString();\n\t\t\tif (\n\t\t\t\tslider.shouldHideToolbarOnOpen()\n\t\t\t\t|| sliderId.startsWith('im:slider')\n\t\t\t\t|| sliderId.startsWith('release-slider')\n\t\t\t\t|| sliderId.startsWith('main:helper')\n\t\t\t\t|| sliderId.startsWith('ui:info_helper')\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tconst stack = ZIndexManager.getStack(document.body);\n\t\tconst components = stack === null ? [] : stack.getComponents();\n\t\tfor (const component of components)\n\t\t{\n\t\t\tif (component.getOverlay() !== null && component.getOverlay().offsetWidth > 0)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tgetMenu(): Menu | null\n\t{\n\t\treturn MenuManager.getMenuById('sidepanel-toolbar-more-btn');\n\t}\n\n\tcreateMenuItemText(item): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<span class=\"side-panel-toolbar-menu-item\">${[\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"side-panel-toolbar-menu-item-title\">${Text.encode(item.getTitle())}</span>\n\t\t\t\t`,\n\t\t\t\tTag.render`\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"side-panel-toolbar-menu-item-remove\"\n\t\t\t\t\t\tdata-slider-ignore-autobinding=\"true\"\n\t\t\t\t\t\tdata-menu-item-id=\"${item.getId()}\"\n\t\t\t\t\t\tonclick=\"${this.handleMenuItemRemove.bind(this)}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"ui-icon-set --cross-20\" data-slider-ignore-autobinding=\"true\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t`,\n\t\t\t]}</span>\n\t\t`;\n\t}\n\n\thandleToggleClick(): void\n\t{\n\t\tthis.toggle();\n\t}\n}\n","import type { JsonObject } from 'main.core';\nimport { Type, Dom, Event, Runtime, Reflection, Browser, ajax as Ajax, Uri } from 'main.core';\nimport { EventEmitter, BaseEvent } from 'main.core.events';\n\nimport { Slider } from './slider';\nimport type { SliderEvent } from './slider-event';\nimport { Toolbar } from './toolbar';\nimport { MessageEvent } from './message-event';\nimport type { ToolbarItem } from './toolbar-item';\nimport type { LinkOptions } from './types/link-options';\nimport type { MinimizeOptions } from './types/minimize-options';\nimport type { RuleOptions } from './types/rule-options';\n\nimport { type SliderOptions } from './types/slider-options';\n\nlet sliderClassName = null;\nlet sliderDefaultOptions: SliderOptions = null;\nlet sliderPriorityOptions: SliderOptions = null;\n\n/**\n * @namespace BX.SidePanel\n * @alias Manager\n */\nexport class SliderManager\n{\n\tconstructor()\n\t{\n\t\tthis.anchorRules = [];\n\t\tthis.anchorBinding = true;\n\n\t\tthis.openSliders = [];\n\t\tthis.lastOpenSlider = null;\n\n\t\tthis.opened = false;\n\t\tthis.hidden = false;\n\t\tthis.hacksApplied = false;\n\n\t\tthis.pageUrl = this.getCurrentUrl();\n\t\tthis.pageTitle = this.getCurrentTitle();\n\t\tthis.titleChanged = false;\n\n\t\tthis.toolbar = null;\n\n\t\tthis.fullScreenSlider = null;\n\n\t\tthis.handleAnchorClick = this.handleAnchorClick.bind(this);\n\t\tthis.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);\n\t\tthis.handleWindowResize = Runtime.throttle(this.handleWindowResize, 300, this);\n\t\tthis.handleWindowScroll = this.handleWindowScroll.bind(this);\n\t\tthis.handleTouchMove = this.handleTouchMove.bind(this);\n\n\t\tthis.handleSliderOpenStart = this.handleSliderOpenStart.bind(this);\n\t\tthis.handleSliderOpenComplete = this.handleSliderOpenComplete.bind(this);\n\t\tthis.handleSliderMaximizeStart = this.handleSliderMaximizeStart.bind(this);\n\t\tthis.handleSliderCloseStart = this.handleSliderCloseStart.bind(this);\n\t\tthis.handleSliderCloseComplete = this.handleSliderCloseComplete.bind(this);\n\t\tthis.handleSliderMinimizeStart = this.handleSliderMinimizeStart.bind(this);\n\t\tthis.handleSliderLoad = this.handleSliderLoad.bind(this);\n\t\tthis.handleSliderDestroy = this.handleSliderDestroy.bind(this);\n\t\tthis.handleEscapePress = this.handleEscapePress.bind(this);\n\t\tthis.handleFullScreenChange = this.handleFullScreenChange.bind(this);\n\n\t\tEventEmitter.subscribe('SidePanel:open', this.open.bind(this), { compatMode: true });\n\t\tEventEmitter.subscribe('SidePanel:close', this.close.bind(this), { compatMode: true });\n\t\tEventEmitter.subscribe('SidePanel:closeAll', this.closeAll.bind(this), { compatMode: true });\n\t\tEventEmitter.subscribe('SidePanel:destroy', this.destroy.bind(this), { compatMode: true });\n\t\tEventEmitter.subscribe('SidePanel:hide', this.hide.bind(this), { compatMode: true });\n\t\tEventEmitter.subscribe('SidePanel:unhide', this.unhide.bind(this), { compatMode: true });\n\n\t\tEventEmitter.subscribe('SidePanel:postMessage', this.postMessage.bind(this), { compatMode: true });\n\t\tEventEmitter.subscribe('SidePanel:postMessageAll', this.postMessageAll.bind(this), { compatMode: true });\n\t\tEventEmitter.subscribe('SidePanel:postMessageTop', this.postMessageTop.bind(this), { compatMode: true });\n\n\t\t// Compatibility\n\t\tEventEmitter.subscribe('BX.Bitrix24.PageSlider:close', this.close.bind(this), { compatMode: true });\n\t\tEventEmitter.subscribe('Bitrix24.Slider:postMessage', this.handlePostMessageCompatible.bind(this), { compatMode: true });\n\t}\n\n\tstatic registerSliderClass(\n\t\tclassName: string,\n\t\tdefaultOptions: SliderOptions = null,\n\t\tpriorityOptions: SliderOptions = null,\n\t): void\n\t{\n\t\tif (Type.isStringFilled(className))\n\t\t{\n\t\t\tsliderClassName = className;\n\t\t}\n\n\t\tif (Type.isPlainObject(defaultOptions))\n\t\t{\n\t\t\tsliderDefaultOptions = defaultOptions;\n\t\t}\n\n\t\tif (Type.isPlainObject(priorityOptions))\n\t\t{\n\t\t\tsliderPriorityOptions = priorityOptions;\n\t\t}\n\t}\n\n\tstatic getSliderClass(): Slider\n\t{\n\t\tconst sliderClass = sliderClassName === null ? null : Reflection.getClass(sliderClassName);\n\n\t\treturn sliderClass === null ? Slider : sliderClass;\n\t}\n\n\tstatic getSliderDefaultOptions(): SliderOptions\n\t{\n\t\treturn sliderDefaultOptions === null ? {} : sliderDefaultOptions;\n\t}\n\n\tstatic getSliderPriorityOptions(): SliderOptions\n\t{\n\t\treturn sliderPriorityOptions === null ? {} : sliderPriorityOptions;\n\t}\n\n\topen(url: string, options: SliderOptions): boolean\n\t{\n\t\tconst slider = this.#createSlider(url, options);\n\t\tif (slider === null)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.tryApplyHacks(\n\t\t\tslider,\n\t\t\t() => slider.open(),\n\t\t);\n\t}\n\n\t#createSlider(sliderUrl: string, sliderOptions: SliderOptions): Slider | null\n\t{\n\t\tif (!Type.isStringFilled(sliderUrl))\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tconst url = this.refineUrl(sliderUrl);\n\n\t\tif (this.isHidden())\n\t\t{\n\t\t\tthis.unhide();\n\t\t}\n\n\t\tconst topSlider = this.getTopSlider();\n\t\tif (topSlider && topSlider.isOpen() && topSlider.getUrl() === url)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.getLastOpenSlider() && this.getLastOpenSlider().getUrl() === url)\n\t\t{\n\t\t\treturn this.getLastOpenSlider();\n\t\t}\n\n\t\tconst rule = this.getUrlRule(url);\n\t\tconst ruleOptions = rule !== null && Type.isPlainObject(rule.options) ? rule.options : {};\n\t\tconst options = Type.isPlainObject(sliderOptions) ? sliderOptions : ruleOptions;\n\n\t\tif (\n\t\t\tType.isPlainObject(ruleOptions.minimizeOptions)\n\t\t\t&& Type.isPlainObject(sliderOptions)\n\t\t\t&& !Type.isPlainObject(sliderOptions.minimizeOptions)\n\t\t)\n\t\t{\n\t\t\toptions.minimizeOptions = ruleOptions.minimizeOptions;\n\t\t}\n\n\t\tif (this.getToolbar() === null && options.minimizeOptions)\n\t\t{\n\t\t\toptions.minimizeOptions = null;\n\t\t}\n\n\t\tconst defaultOptions = SliderManager.getSliderDefaultOptions();\n\t\tconst priorityOptions = SliderManager.getSliderPriorityOptions();\n\n\t\tconst SliderClass = SliderManager.getSliderClass();\n\t\tconst slider: Slider = new SliderClass(url, Runtime.merge(defaultOptions, options, priorityOptions));\n\n\t\tlet offset = null;\n\t\tif (slider.shouldUseAutoOffset() && slider.getWidth() === null && slider.getCustomLeftBoundary() === null)\n\t\t{\n\t\t\toffset = 0;\n\t\t\tconst lastOffset = this.#getLastOffset();\n\t\t\tif (topSlider && lastOffset !== null)\n\t\t\t{\n\t\t\t\toffset = Math.min(lastOffset + this.#getMinOffset(), this.#getMaxOffset());\n\t\t\t}\n\t\t}\n\n\t\tslider.setOffset(offset);\n\n\t\tif (topSlider && topSlider.getCustomRightBoundary() !== null)\n\t\t{\n\t\t\tconst rightBoundary = slider.calculateRightBoundary();\n\t\t\tif (rightBoundary > topSlider.getCustomRightBoundary())\n\t\t\t{\n\t\t\t\tslider.setCustomRightBoundary(topSlider.getCustomRightBoundary());\n\t\t\t}\n\t\t}\n\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onOpenStart', this.handleSliderOpenStart, { compatMode: true });\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onBeforeOpenComplete', this.handleSliderOpenComplete, { compatMode: true });\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onMaximizeStart', this.handleSliderMaximizeStart, { compatMode: true });\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onCloseStart', this.handleSliderCloseStart, { compatMode: true });\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onBeforeCloseComplete', this.handleSliderCloseComplete, { compatMode: true });\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onMinimizeStart', this.handleSliderMinimizeStart, { compatMode: true });\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onLoad', this.handleSliderLoad, { compatMode: true });\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onDestroy', this.handleSliderDestroy, { compatMode: true });\n\t\tEventEmitter.subscribe(slider, 'SidePanel.Slider:onEscapePress', this.handleEscapePress, { compatMode: true });\n\n\t\treturn slider;\n\t}\n\n\tgetMinimizeOptions(url: string): MinimizeOptions | null\n\t{\n\t\tconst rule = this.getUrlRule(url);\n\t\tconst ruleOptions = rule !== null && Type.isPlainObject(rule.options) ? rule.options : {};\n\n\t\treturn Type.isPlainObject(ruleOptions.minimizeOptions) ? ruleOptions.minimizeOptions : null;\n\t}\n\n\tmaximize(url, options: SliderOptions): boolean\n\t{\n\t\tconst slider = this.#createSlider(url, options);\n\t\tif (slider === null)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.tryApplyHacks(\n\t\t\tslider,\n\t\t\t() => slider.maximize(),\n\t\t);\n\t}\n\n\ttryApplyHacks(slider, cb: Function): boolean\n\t{\n\t\tif (!this.isOpen())\n\t\t{\n\t\t\tthis.applyHacks(slider);\n\t\t}\n\n\t\tconst success = cb();\n\t\tif (!success)\n\t\t{\n\t\t\tthis.resetHacks(slider);\n\t\t}\n\n\t\treturn success;\n\t}\n\n\tisOpen(): boolean\n\t{\n\t\treturn this.opened;\n\t}\n\n\tclose(immediately: boolean, callback: Function): void\n\t{\n\t\tconst topSlider = this.getTopSlider();\n\t\tif (topSlider)\n\t\t{\n\t\t\ttopSlider.close(immediately, callback);\n\t\t}\n\t}\n\n\tcloseAll(immediately: boolean): void\n\t{\n\t\tconst openSliders = this.getOpenSliders();\n\t\tfor (let i = openSliders.length - 1; i >= 0; i--)\n\t\t{\n\t\t\tconst slider = openSliders[i];\n\t\t\tconst success = slider.close(immediately);\n\t\t\tif (!success)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tminimize(immediately: boolean, callback: Function): void\n\t{\n\t\tconst topSlider = this.getTopSlider();\n\t\tif (topSlider)\n\t\t{\n\t\t\ttopSlider.minimize(immediately, callback);\n\t\t}\n\t}\n\n\thide(): boolean\n\t{\n\t\tif (this.hidden)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst topSlider = this.getTopSlider();\n\n\t\tthis.getOpenSliders().forEach((slider: Slider) => {\n\t\t\tslider.hide();\n\t\t});\n\n\t\tthis.hidden = true;\n\n\t\tthis.resetHacks(topSlider);\n\n\t\treturn true;\n\t}\n\n\tunhide(): boolean\n\t{\n\t\tif (!this.hidden)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.getOpenSliders().forEach((slider) => {\n\t\t\tslider.unhide();\n\t\t});\n\n\t\tthis.hidden = false;\n\n\t\tsetTimeout(() => {\n\t\t\tthis.applyHacks(this.getTopSlider());\n\t\t}, 0);\n\n\t\treturn true;\n\t}\n\n\tisHidden(): boolean\n\t{\n\t\treturn this.hidden;\n\t}\n\n\tdestroy(sliderUrl: string)\n\t{\n\t\tif (!Type.isStringFilled(sliderUrl))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst url = this.refineUrl(sliderUrl);\n\t\tconst sliderToDestroy = this.getSlider(url);\n\n\t\tif (this.getLastOpenSlider() && (sliderToDestroy || this.getLastOpenSlider().getUrl() === url))\n\t\t{\n\t\t\tthis.getLastOpenSlider().destroy();\n\t\t}\n\n\t\tif (sliderToDestroy !== null)\n\t\t{\n\t\t\tconst openSliders = this.getOpenSliders();\n\t\t\tfor (let i = openSliders.length - 1; i >= 0; i--)\n\t\t\t{\n\t\t\t\tconst slider = openSliders[i];\n\t\t\t\tslider.destroy();\n\n\t\t\t\tif (slider === sliderToDestroy)\n\t\t\t\t{\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treload(): void\n\t{\n\t\tconst topSlider = this.getTopSlider();\n\t\tif (topSlider)\n\t\t{\n\t\t\ttopSlider.reload();\n\t\t}\n\t}\n\n\tgetTopSlider(): Slider\n\t{\n\t\tconst count = this.openSliders.length;\n\n\t\treturn this.openSliders[count - 1] || null;\n\t}\n\n\tgetPreviousSlider(currentSlider?: Slider): Slider | null\n\t{\n\t\tlet previousSlider = null;\n\t\tconst openSliders = this.getOpenSliders();\n\t\tcurrentSlider = currentSlider || this.getTopSlider();\n\n\t\tfor (let i = openSliders.length - 1; i >= 0; i--)\n\t\t{\n\t\t\tconst slider = openSliders[i];\n\t\t\tif (slider === currentSlider)\n\t\t\t{\n\t\t\t\tpreviousSlider = openSliders[i - 1] || null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn previousSlider;\n\t}\n\n\tgetSlider(sliderUrl: string): Slider | null\n\t{\n\t\tconst url = this.refineUrl(sliderUrl);\n\n\t\tconst openSliders = this.getOpenSliders();\n\t\tfor (const slider of openSliders)\n\t\t{\n\t\t\tif (slider.getUrl() === url)\n\t\t\t{\n\t\t\t\treturn slider;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tgetSliderByWindow(window: Window): Slider | null\n\t{\n\t\tconst openSliders = this.getOpenSliders();\n\t\tfor (const slider of openSliders)\n\t\t{\n\t\t\tif (slider.getFrameWindow() === window)\n\t\t\t{\n\t\t\t\treturn slider;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tgetOpenSliders(): Slider[]\n\t{\n\t\treturn this.openSliders;\n\t}\n\n\tgetOpenSlidersCount(): number\n\t{\n\t\treturn this.openSliders.length;\n\t}\n\n\t/**\n\t * @private\n\t */\n\t#addOpenSlider(slider: Slider): void\n\t{\n\t\tif (!(slider instanceof Slider))\n\t\t{\n\t\t\tthrow new TypeError('Slider is not an instance of BX.SidePanel.Slider');\n\t\t}\n\n\t\tthis.openSliders.push(slider);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t#removeOpenSlider(slider): boolean\n\t{\n\t\tconst openSliders = [...this.getOpenSliders()];\n\t\tfor (const [i, openSlider] of openSliders.entries())\n\t\t{\n\t\t\tif (openSlider === slider)\n\t\t\t{\n\t\t\t\tthis.openSliders.splice(i, 1);\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tgetLastOpenSlider(): Slider | null\n\t{\n\t\treturn this.lastOpenSlider;\n\t}\n\n\t#setLastOpenSlider(slider: Slider): void\n\t{\n\t\tif (this.lastOpenSlider !== slider)\n\t\t{\n\t\t\tif (this.lastOpenSlider)\n\t\t\t{\n\t\t\t\tthis.lastOpenSlider.destroy();\n\t\t\t}\n\n\t\t\tthis.lastOpenSlider = slider;\n\t\t}\n\t}\n\n\t#resetLastOpenSlider(): void\n\t{\n\t\tif (this.lastOpenSlider && this.getTopSlider() !== this.lastOpenSlider)\n\t\t{\n\t\t\tthis.lastOpenSlider.destroy();\n\t\t}\n\n\t\tthis.lastOpenSlider = null;\n\t}\n\n\tadjustLayout(): void\n\t{\n\t\tthis.getOpenSliders().forEach((slider: Slider) => {\n\t\t\tslider.adjustLayout();\n\t\t});\n\t}\n\n\tcreateToolbar(options): Toolbar\n\t{\n\t\tif (this.toolbar === null)\n\t\t{\n\t\t\tthis.toolbar = new Toolbar(options);\n\t\t}\n\n\t\treturn this.toolbar;\n\t}\n\n\tgetToolbar(): Toolbar\n\t{\n\t\treturn this.toolbar;\n\t}\n\n\t#getLastOffset(): number | null\n\t{\n\t\tconst openSliders = this.getOpenSliders();\n\t\tfor (let i = openSliders.length - 1; i >= 0; i--)\n\t\t{\n\t\t\tconst slider = openSliders[i];\n\t\t\tif (slider.getOffset() !== null)\n\t\t\t{\n\t\t\t\treturn slider.getOffset();\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\trefineUrl(url: string): string\n\t{\n\t\tif (Type.isStringFilled(url) && /IFRAME/.test(url))\n\t\t{\n\t\t\treturn Uri.removeParam(url, ['IFRAME', 'IFRAME_TYPE']);\n\t\t}\n\n\t\treturn url;\n\t}\n\n\tgetPageUrl(): string\n\t{\n\t\treturn this.pageUrl;\n\t}\n\n\tgetCurrentUrl(): string\n\t{\n\t\treturn window.location.pathname + window.location.search + window.location.hash;\n\t}\n\n\tgetPageTitle(): string\n\t{\n\t\treturn this.pageTitle;\n\t}\n\n\tgetCurrentTitle(): string\n\t{\n\t\tlet title = document.title;\n\t\tif (!Type.isUndefined(window.BXIM))\n\t\t{\n\t\t\ttitle = title.replace(/^\\(\\d+\\) /, ''); // replace a messenger counter.\n\t\t}\n\n\t\treturn title;\n\t}\n\n\tenterFullScreen()\n\t{\n\t\tif (!this.getTopSlider() || this.getFullScreenSlider())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = document.body;\n\t\tif (container.requestFullscreen)\n\t\t{\n\t\t\tEvent.bind(document, 'fullscreenchange', this.handleFullScreenChange);\n\t\t\tcontainer.requestFullscreen();\n\t\t}\n\t\telse if (container.webkitRequestFullScreen)\n\t\t{\n\t\t\tEvent.bind(document, 'webkitfullscreenchange', this.handleFullScreenChange);\n\t\t\tcontainer.webkitRequestFullScreen();\n\t\t}\n\t\telse if (container.msRequestFullscreen)\n\t\t{\n\t\t\tEvent.bind(document, 'MSFullscreenChange', this.handleFullScreenChange);\n\t\t\tcontainer.msRequestFullscreen();\n\t\t}\n\t\telse if (container.mozRequestFullScreen)\n\t\t{\n\t\t\tEvent.bind(document, 'mozfullscreenchange', this.handleFullScreenChange);\n\t\t\tcontainer.mozRequestFullScreen();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconsole.log('Slider: Full Screen mode is not supported.');\n\t\t}\n\t}\n\n\texitFullScreen()\n\t{\n\t\tif (!this.getFullScreenSlider())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (document.exitFullscreen)\n\t\t{\n\t\t\tdocument.exitFullscreen();\n\t\t}\n\t\telse if (document.webkitExitFullscreen)\n\t\t{\n\t\t\tdocument.webkitExitFullscreen();\n\t\t}\n\t\telse if (document.msExitFullscreen)\n\t\t{\n\t\t\tdocument.msExitFullscreen();\n\t\t}\n\t\telse if (document.mozCancelFullScreen)\n\t\t{\n\t\t\tdocument.mozCancelFullScreen();\n\t\t}\n\t}\n\n\tgetFullScreenElement(): HTMLElement\n\t{\n\t\treturn (\n\t\t\tdocument.fullscreenElement\n\t\t\t|| document.webkitFullscreenElement\n\t\t\t|| document.mozFullScreenElement\n\t\t\t|| document.msFullscreenElement\n\t\t\t|| null\n\t\t);\n\t}\n\n\tgetFullScreenSlider(): Slider | null\n\t{\n\t\treturn this.fullScreenSlider;\n\t}\n\n\thandleFullScreenChange(event): void\n\t{\n\t\tif (this.getFullScreenElement())\n\t\t{\n\t\t\tthis.fullScreenSlider = this.getTopSlider();\n\t\t\tDom.addClass(this.fullScreenSlider.getOverlay(), 'side-panel-fullscreen');\n\n\t\t\tthis.fullScreenSlider.fireEvent('onFullScreenEnter');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.getFullScreenSlider())\n\t\t\t{\n\t\t\t\tDom.removeClass(this.getFullScreenSlider().getOverlay(), 'side-panel-fullscreen');\n\t\t\t\tthis.fullScreenSlider.fireEvent('onFullScreenExit');\n\t\t\t\tthis.fullScreenSlider = null;\n\t\t\t}\n\n\t\t\tEvent.unbind(document, event.type, this.handleFullScreenChange);\n\t\t\twindow.scrollTo(0, this.pageScrollTop);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.adjustLayout();\n\t\t\t\tconst resizeEvent = document.createEvent('Event');\n\t\t\t\tresizeEvent.initEvent('resize', true, true);\n\t\t\t\twindow.dispatchEvent(resizeEvent);\n\t\t\t}, 1000);\n\t\t}\n\t}\n\n\tpostMessage(source: string | Window | Slider, eventId: string, data: JsonObject): void\n\t{\n\t\tconst sender = this.getSliderFromSource(source);\n\t\tif (!sender)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet previousSlider: Slider = null;\n\t\tconst openSliders = this.getOpenSliders();\n\t\tfor (let i = openSliders.length - 1; i >= 0; i--)\n\t\t{\n\t\t\tconst slider = openSliders[i];\n\t\t\tif (slider === sender)\n\t\t\t{\n\t\t\t\tpreviousSlider = openSliders[i - 1] || null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tconst sliderWindow = previousSlider ? previousSlider.getWindow() : window;\n\t\tsliderWindow.BX.onCustomEvent('Bitrix24.Slider:onMessage', [sender, data]); // Compatibility\n\n\t\tconst event = new MessageEvent({\n\t\t\tsender,\n\t\t\tslider: previousSlider || null,\n\t\t\tdata,\n\t\t\teventId,\n\t\t});\n\n\t\tif (previousSlider)\n\t\t{\n\t\t\tpreviousSlider.firePageEvent(event);\n\t\t\tpreviousSlider.fireFrameEvent(event);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tEventEmitter.emit(event.getFullName().toLowerCase(), new BaseEvent({ data: [event], compatData: [event] }));\n\t\t}\n\t}\n\n\tpostMessageAll(source: string | Window | Slider, eventId: string, data: JsonObject): void\n\t{\n\t\tconst sender = this.getSliderFromSource(source);\n\t\tif (!sender)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet event = null;\n\t\tconst openSliders = this.getOpenSliders();\n\t\tfor (let i = openSliders.length - 1; i >= 0; i--)\n\t\t{\n\t\t\tconst slider = openSliders[i];\n\t\t\tif (slider === sender)\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tevent = new MessageEvent({ sender, slider, data, eventId });\n\t\t\tslider.firePageEvent(event);\n\t\t\tslider.fireFrameEvent(event);\n\t\t}\n\n\t\tevent = new MessageEvent({ sender, slider: null, data, eventId });\n\n\t\tEventEmitter.emit(event.getFullName().toLowerCase(), new BaseEvent({ data: [event], compatData: [event] }));\n\t}\n\n\tpostMessageTop(source: string | Window | Slider, eventId: string, data: JsonObject): void\n\t{\n\t\tconst sender = this.getSliderFromSource(source);\n\t\tif (!sender)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst event = new MessageEvent({ sender, slider: null, data, eventId });\n\n\t\tEventEmitter.emit(event.getFullName().toLowerCase(), new BaseEvent({ data: [event], compatData: [event] }));\n\t}\n\n\t#getMinOffset(): number\n\t{\n\t\treturn 63;\n\t}\n\n\t#getMaxOffset(): number\n\t{\n\t\treturn this.#getMinOffset() * 3;\n\t}\n\n\tbindAnchors(parameters: { rules: RuleOptions[] })\n\t{\n\t\tif (!Type.isPlainObject(parameters) || !Type.isArray(parameters.rules) || parameters.rules.length === 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.anchorRules.length === 0)\n\t\t{\n\t\t\tthis.registerAnchorListener(window.document);\n\t\t}\n\n\t\tif (!(parameters.rules instanceof Object))\n\t\t{\n\t\t\tconsole.error(\n\t\t\t\t'BX.SitePanel: anchor rules were created in a different context. ' +\n\t\t\t\t'This might be a reason for a memory leak.',\n\t\t\t);\n\n\t\t\tconsole.trace();\n\t\t}\n\n\t\tparameters.rules.forEach((rule) => {\n\t\t\tif (Type.isArray(rule.condition))\n\t\t\t{\n\t\t\t\tfor (let m = 0; m < rule.condition.length; m++)\n\t\t\t\t{\n\t\t\t\t\tif (Type.isString(rule.condition[m]))\n\t\t\t\t\t{\n\t\t\t\t\t\trule.condition[m] = new RegExp(rule.condition[m], 'i');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\trule.options = Type.isPlainObject(rule.options) ? rule.options : {};\n\t\t\tif (Type.isStringFilled(rule.loader) && !Type.isStringFilled(rule.options.loader))\n\t\t\t{\n\t\t\t\trule.options.loader = rule.loader;\n\t\t\t\tdelete rule.loader;\n\t\t\t}\n\n\t\t\tthis.anchorRules.push(rule);\n\t\t});\n\t}\n\n\tisAnchorBinding(): boolean\n\t{\n\t\treturn this.anchorBinding;\n\t}\n\n\tenableAnchorBinding(): void\n\t{\n\t\tthis.anchorBinding = true;\n\t}\n\n\tdisableAnchorBinding(): void\n\t{\n\t\tthis.anchorBinding = false;\n\t}\n\n\tregisterAnchorListener(targetDocument)\n\t{\n\t\tEvent.bind(targetDocument, 'click', this.handleAnchorClick, true);\n\t}\n\n\tunregisterAnchorListener(targetDocument)\n\t{\n\t\tEvent.unbind(targetDocument, 'click', this.handleAnchorClick, true);\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleSliderOpenStart(event: SliderEvent)\n\t{\n\t\tif (!event.isActionAllowed())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst slider = event.getSlider();\n\t\tif (slider.isDestroyed())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.getTopSlider())\n\t\t{\n\t\t\tthis.exitFullScreen();\n\n\t\t\tthis.getTopSlider().hideOverlay();\n\t\t\tslider.setOverlayBackground();\n\n\t\t\tconst sameWidth = (\n\t\t\t\tthis.getTopSlider().getOffset() === slider.getOffset()\n\t\t\t\t&& this.getTopSlider().getWidth() === slider.getWidth()\n\t\t\t\t&& this.getTopSlider().getCustomLeftBoundary() === slider.getCustomLeftBoundary()\n\t\t\t);\n\n\t\t\tif (!sameWidth)\n\t\t\t{\n\t\t\t\tthis.getTopSlider().showShadow();\n\t\t\t}\n\n\t\t\tthis.getTopSlider().hideOrDarkenCloseBtn();\n\t\t\tthis.getTopSlider().hidePrintBtn();\n\t\t\tthis.getTopSlider().hideExtraLabels();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tslider.setOverlayAnimation(true);\n\t\t}\n\n\t\tthis.#addOpenSlider(slider);\n\n\t\tthis.getOpenSliders().forEach((currentSlider: Slider, index: number, openSliders: Slider[]) => {\n\t\t\tcurrentSlider.getLabel().moveAt(openSliders.length - index - 1); // move down\n\t\t});\n\n\t\tthis.losePageFocus();\n\n\t\tif (!this.opened)\n\t\t{\n\t\t\tthis.pageUrl = this.getCurrentUrl();\n\t\t\tthis.pageTitle = this.getCurrentTitle();\n\t\t}\n\n\t\tthis.opened = true;\n\n\t\tthis.#resetLastOpenSlider();\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleSliderOpenComplete(event: SliderEvent)\n\t{\n\t\tthis.setBrowserHistory(event.getSlider());\n\t\tthis.updateBrowserTitle();\n\t\tevent.getSlider().setAnimation('sliding');\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleSliderCloseStart(event: SliderEvent)\n\t{\n\t\tif (!event.isActionAllowed())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.getSlider() && event.getSlider().isDestroyed())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousSlider = this.getPreviousSlider();\n\t\tconst topSlider = this.getTopSlider();\n\n\t\tthis.exitFullScreen();\n\n\t\tthis.getOpenSliders().forEach((slider, index, openSliders) => {\n\t\t\tslider.getLabel().moveAt(openSliders.length - index - 2); // move up\n\t\t});\n\n\t\tif (previousSlider)\n\t\t{\n\t\t\tpreviousSlider.unhideOverlay();\n\t\t\tpreviousSlider.hideShadow();\n\t\t\tpreviousSlider.showOrLightenCloseBtn();\n\n\t\t\tif (topSlider)\n\t\t\t{\n\t\t\t\ttopSlider.hideOverlay();\n\t\t\t\ttopSlider.hideShadow();\n\t\t\t}\n\t\t}\n\t}\n\n\thandleSliderMaximizeStart(event)\n\t{\n\t\tif (!event.isActionAllowed() || this.getToolbar() === null)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst slider = event.getSlider();\n\t\tif (slider && slider.isDestroyed())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst { entityType, entityId } = slider.getMinimizeOptions() || {};\n\t\tconst item = this.getToolbar().getItem(entityType, entityId);\n\n\t\tthis.getToolbar().request('maximize', item);\n\n\t\tconst origin = this.#getItemOrigin(slider, item);\n\t\tslider.setAnimation('scale', { origin });\n\t}\n\n\thandleSliderMinimizeStart(event)\n\t{\n\t\tif (!event.isActionAllowed() || this.getToolbar() === null)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst slider = event.getSlider();\n\t\tif (slider && slider.isDestroyed())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.getToolbar().isShown())\n\t\t{\n\t\t\tthis.getToolbar().show();\n\t\t}\n\n\t\tlet title = slider.getTitle();\n\t\tif (!title)\n\t\t{\n\t\t\ttitle = slider.getFrameWindow() ? slider.getFrameWindow().document.title : null;\n\t\t}\n\n\t\tthis.getToolbar().expand(true);\n\n\t\tconst minimizeOptions = this.getMinimizeOptions(slider.getUrl());\n\t\tconst { entityType, entityId, url } = minimizeOptions || slider.getMinimizeOptions() || {};\n\n\t\tconst item = this.getToolbar().minimizeItem({\n\t\t\ttitle,\n\t\t\turl: Type.isStringFilled(url) ? url : slider.getUrl(),\n\t\t\tentityType,\n\t\t\tentityId,\n\t\t});\n\n\t\tconst origin = this.#getItemOrigin(slider, item);\n\t\tslider.setAnimation('scale', { origin });\n\t}\n\n\t#getItemOrigin(slider: Slider, item: ToolbarItem): void\n\t{\n\t\tif (item && item.getContainer().offsetWidth > 0)\n\t\t{\n\t\t\tconst rect = item.getContainer().getBoundingClientRect();\n\t\t\tconst offset = slider.getContainer().getBoundingClientRect().left;\n\t\t\tconst left = rect.left - offset + rect.width / 2;\n\n\t\t\treturn `${left}px ${rect.top}px`;\n\t\t}\n\n\t\treturn '50% 100%';\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleSliderCloseComplete(event: SliderEvent)\n\t{\n\t\tconst slider = event.getSlider();\n\t\tif (slider === this.getTopSlider())\n\t\t{\n\t\t\tthis.#setLastOpenSlider(slider);\n\t\t}\n\n\t\tevent.getSlider().setAnimation('sliding');\n\n\t\tthis.cleanUpClosedSlider(slider);\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleSliderDestroy(event: SliderEvent)\n\t{\n\t\tconst slider = event.getSlider();\n\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onOpenStart', this.handleSliderOpenStart);\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onBeforeOpenComplete', this.handleSliderOpenComplete);\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onMaximizeStart', this.handleSliderMaximizeStart);\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onCloseStart', this.handleSliderCloseStart);\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onBeforeCloseComplete', this.handleSliderCloseComplete);\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onMinimizeStart', this.handleSliderMinimizeStart);\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onLoad', this.handleSliderLoad);\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onDestroy', this.handleSliderDestroy);\n\t\tEventEmitter.unsubscribe(slider, 'SidePanel.Slider:onEscapePress', this.handleEscapePress);\n\n\t\tconst frameWindow = event.getSlider().getFrameWindow();\n\t\tif (frameWindow && !event.getSlider().allowCrossOrigin)\n\t\t{\n\t\t\tthis.unregisterAnchorListener(frameWindow.document);\n\t\t}\n\n\t\tif (slider === this.getLastOpenSlider())\n\t\t{\n\t\t\tthis.lastOpenSlider = null;\n\t\t}\n\n\t\tthis.cleanUpClosedSlider(slider);\n\t}\n\n\thandleEscapePress(event)\n\t{\n\t\tif (this.isOnTop() && this.getTopSlider() && this.getTopSlider().canCloseByEsc())\n\t\t{\n\t\t\tthis.getTopSlider().close();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tcleanUpClosedSlider(slider: Slider)\n\t{\n\t\tthis.#removeOpenSlider(slider);\n\n\t\tslider.unhideOverlay();\n\t\tslider.hideShadow();\n\n\t\tthis.getOpenSliders().forEach((slider, index, openSliders) => {\n\t\t\tslider.getLabel().moveAt(openSliders.length - index - 1); //update position\n\t\t});\n\n\t\tif (this.getTopSlider())\n\t\t{\n\t\t\tthis.getTopSlider().showOrLightenCloseBtn();\n\t\t\tthis.getTopSlider().unhideOverlay();\n\t\t\tthis.getTopSlider().hideShadow();\n\t\t\tthis.getTopSlider().showExtraLabels();\n\n\t\t\tif (this.getTopSlider().isPrintable())\n\t\t\t{\n\t\t\t\tthis.getTopSlider().showPrintBtn();\n\t\t\t}\n\t\t\tthis.getTopSlider().focus();\n\t\t}\n\t\telse\n\t\t{\n\t\t\twindow.focus();\n\t\t}\n\n\t\tif (!this.getOpenSlidersCount())\n\t\t{\n\t\t\tthis.resetHacks(slider);\n\t\t\tthis.opened = false;\n\t\t}\n\n\t\tthis.resetBrowserHistory();\n\t\tthis.updateBrowserTitle();\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleSliderLoad(event: SliderEvent)\n\t{\n\t\tconst frameWindow = event.getSlider().getFrameWindow();\n\t\tif (frameWindow)\n\t\t{\n\t\t\tthis.registerAnchorListener(frameWindow.document);\n\t\t}\n\n\t\tthis.setBrowserHistory(event.getSlider());\n\t\tthis.updateBrowserTitle();\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandlePostMessageCompatible(source: string | Window | Slider, data: JsonObject)\n\t{\n\t\tthis.postMessage(source, '', data);\n\t}\n\n\t/**\n\t * @private\n\t */\n\tgetSliderFromSource(source: string | Window | Slider)\n\t{\n\t\tif (source instanceof Slider)\n\t\t{\n\t\t\treturn source;\n\t\t}\n\n\t\tif (Type.isStringFilled(source))\n\t\t{\n\t\t\treturn this.getSlider(source);\n\t\t}\n\n\t\tif (source !== null && source === source.window && window !== source)\n\t\t{\n\t\t\treturn this.getSliderByWindow(source);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tapplyHacks(slider: Slider): boolean\n\t{\n\t\tif (this.hacksApplied)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (slider)\n\t\t{\n\t\t\tslider.applyHacks();\n\t\t}\n\n\t\tthis.disablePageScrollbar();\n\t\tthis.bindEvents();\n\n\t\tif (slider)\n\t\t{\n\t\t\tslider.applyPostHacks();\n\t\t}\n\n\t\tthis.hacksApplied = true;\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tresetHacks(slider: Slider): boolean\n\t{\n\t\tif (!this.hacksApplied)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (slider)\n\t\t{\n\t\t\tslider.resetPostHacks();\n\t\t}\n\n\t\tthis.enablePageScrollbar();\n\t\tthis.unbindEvents();\n\n\t\tif (slider)\n\t\t{\n\t\t\tslider.resetHacks();\n\t\t}\n\n\t\tthis.hacksApplied = false;\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tbindEvents(): boolean\n\t{\n\t\tEvent.bind(document, 'keydown', this.handleDocumentKeyDown);\n\t\tEvent.bind(window, 'resize', this.handleWindowResize);\n\t\tEvent.bind(window, 'scroll', this.handleWindowScroll); // Live Comments can change scrollTop\n\n\t\tif (Browser.isMobile())\n\t\t{\n\t\t\tEvent.bind(document.body, 'touchmove', this.handleTouchMove);\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tunbindEvents()\n\t{\n\t\tEvent.unbind(document, 'keydown', this.handleDocumentKeyDown);\n\t\tEvent.unbind(window, 'resize', this.handleWindowResize);\n\t\tEvent.unbind(window, 'scroll', this.handleWindowScroll);\n\n\t\tif (Browser.isMobile())\n\t\t{\n\t\t\tEvent.unbind(document.body, 'touchmove', this.handleTouchMove);\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tdisablePageScrollbar(): void\n\t{\n\t\tconst scrollWidth = window.innerWidth - document.documentElement.clientWidth;\n\t\tdocument.body.style.paddingRight = scrollWidth + 'px';\n\t\tDom.style(document.body, '--scroll-shift-width', `${scrollWidth}px`);\n\t\tDom.addClass(document.body, 'side-panel-disable-scrollbar');\n\t\tthis.pageScrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tenablePageScrollbar()\n\t{\n\t\tdocument.body.style.removeProperty('padding-right');\n\t\tDom.style(document.body, '--scroll-shift-width', null);\n\t\tDom.removeClass(document.body, 'side-panel-disable-scrollbar');\n\t}\n\n\t/**\n\t * @private\n\t */\n\tlosePageFocus()\n\t{\n\t\tif (Type.isDomNode(document.activeElement))\n\t\t{\n\t\t\tdocument.activeElement.blur();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param {Event} event\n\t */\n\thandleDocumentKeyDown(event: KeyboardEvent)\n\t{\n\t\tif (event.keyCode !== 27)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault(); // otherwise an iframe loading can be cancelled by a browser\n\n\t\tif (this.isOnTop() && this.getTopSlider() && this.getTopSlider().canCloseByEsc())\n\t\t{\n\t\t\tthis.getTopSlider().close();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleWindowResize()\n\t{\n\t\tthis.adjustLayout();\n\t}\n\n\t/**\n\t * @private\n\t */\n\thandleWindowScroll()\n\t{\n\t\twindow.scrollTo(0, this.pageScrollTop);\n\t\tthis.adjustLayout();\n\t}\n\n\t/**\n\t * @private\n\t * @param {Event} event\n\t */\n\thandleTouchMove(event)\n\t{\n\t\tevent.preventDefault();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tisOnTop(): boolean\n\t{\n\t\t// Photo Slider or something else can cover Side Panel.\n\t\tconst centerX = document.documentElement.clientWidth / 2;\n\t\tconst centerY = document.documentElement.clientHeight / 2;\n\t\tconst element = document.elementFromPoint(centerX, centerY);\n\n\t\treturn Dom.hasClass(element, 'side-panel') || element.closest('.side-panel') !== null;\n\t}\n\n\t/**\n\t * @private\n\t */\n\textractLinkFromEvent(event: MouseEvent): LinkOptions | null\n\t{\n\t\tconst target: HTMLElement = event.target;\n\n\t\tif (event.which !== 1 || !Type.isDomNode(target) || event.ctrlKey || event.metaKey)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tlet a = target;\n\t\tif (target.nodeName !== 'A' && Type.isElementNode(target))\n\t\t{\n\t\t\ta = target.closest('a');\n\t\t}\n\n\t\tif (!Type.isDomNode(a))\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\t// do not use a.href here, the code will fail on links like <a href=\"#SG13\"></a>\n\t\tconst href = a.getAttribute('href');\n\t\tif (href)\n\t\t{\n\t\t\treturn {\n\t\t\t\turl: href,\n\t\t\t\tanchor: a,\n\t\t\t\ttarget: a.getAttribute('target'),\n\t\t\t};\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @private\n\t * @param {MouseEvent} event\n\t */\n\thandleAnchorClick(event)\n\t{\n\t\tif (!this.isAnchorBinding())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst link = this.extractLinkFromEvent(event);\n\n\t\tif (!link || Dom.attr(link.anchor, 'data-slider-ignore-autobinding') !== null)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (Dom.attr(event.target, 'data-slider-ignore-autobinding') !== null)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst rule = this.getUrlRule(link.url, link);\n\n\t\tif (!this.isValidLink(rule, link))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (Type.isFunction(rule.handler))\n\t\t{\n\t\t\trule.handler(event, link);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tthis.open(link.url, rule.options);\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} url\n\t */\n\temulateAnchorClick(url)\n\t{\n\t\tconst link = {\n\t\t\turl,\n\t\t\tanchor: null,\n\t\t\ttarget: null,\n\t\t};\n\n\t\tconst rule = this.getUrlRule(url, link);\n\n\t\tif (!this.isValidLink(rule, link))\n\t\t{\n\t\t\tBX.reload(url);\n\t\t}\n\t\telse if (Type.isFunction(rule.handler))\n\t\t{\n\t\t\trule.handler(\n\t\t\t\tnew Event(\n\t\t\t\t\t'slider',\n\t\t\t\t\t{\n\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\tcancelable: true,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t\tlink,\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.open(link.url, rule.options);\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tgetUrlRule(href: string, link: LinkOptions): RuleOptions | null\n\t{\n\t\tif (!Type.isStringFilled(href))\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tif (!Type.isPlainObject(link))\n\t\t{\n\t\t\tconst a = document.createElement('a');\n\t\t\ta.href = href;\n\n\t\t\tlink = { url: href, anchor: a, target: '' };\n\t\t}\n\n\t\tfor (let k = 0; k < this.anchorRules.length; k++)\n\t\t{\n\t\t\tconst rule = this.anchorRules[k];\n\n\t\t\tif (!Type.isArray(rule.condition))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfor (let m = 0; m < rule.condition.length; m++)\n\t\t\t{\n\t\t\t\tconst matches = href.match(rule.condition[m]);\n\t\t\t\tif (matches && !this.hasStopParams(href, rule.stopParameters))\n\t\t\t\t{\n\t\t\t\t\tlink.matches = matches;\n\t\t\t\t\tconst minimizeOptions = Type.isFunction(rule.minimizeOptions) ? rule.minimizeOptions(link) : null;\n\t\t\t\t\tif (Type.isPlainObject(minimizeOptions))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (Type.isPlainObject(rule.options))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trule.options.minimizeOptions = minimizeOptions;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trule.options = { minimizeOptions };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn rule;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tisValidLink(rule: RuleOptions, link: LinkOptions): boolean\n\t{\n\t\tif (!rule)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (rule.allowCrossDomain !== true && Ajax.isCrossDomain(link.url))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (rule.mobileFriendly !== true && Browser.isMobile())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !Type.isFunction(rule.validate) || rule.validate(link);\n\t}\n\n\t/**\n\t * @private\n\t * @param {BX.SidePanel.Slider} slider\n\t */\n\tsetBrowserHistory(slider)\n\t{\n\t\tif (!(slider instanceof Slider))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (slider.canChangeHistory() && slider.isOpen() && slider.isLoaded())\n\t\t{\n\t\t\twindow.history.replaceState({}, '', slider.getUrl());\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tresetBrowserHistory()\n\t{\n\t\tlet topSlider = null;\n\t\tconst openSliders = this.getOpenSliders();\n\t\tfor (let i = openSliders.length - 1; i >= 0; i--)\n\t\t{\n\t\t\tconst slider = openSliders[i];\n\t\t\tif (slider.canChangeHistory() && slider.isOpen() && slider.isLoaded())\n\t\t\t{\n\t\t\t\ttopSlider = slider;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tconst url = topSlider ? topSlider.getUrl() : this.getPageUrl();\n\t\tif (url)\n\t\t{\n\t\t\twindow.history.replaceState({}, '', url);\n\t\t}\n\t}\n\n\t/**\n\t * @public\n\t */\n\tupdateBrowserTitle()\n\t{\n\t\tlet title = null;\n\t\tconst openSliders = this.getOpenSliders();\n\t\tfor (let i = openSliders.length - 1; i >= 0; i--)\n\t\t{\n\t\t\ttitle = this.getBrowserTitle(openSliders[i]);\n\t\t\tif (Type.isStringFilled(title))\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (Type.isStringFilled(title))\n\t\t{\n\t\t\tdocument.title = title;\n\t\t\tthis.titleChanged = true;\n\t\t}\n\t\telse if (this.titleChanged)\n\t\t{\n\t\t\tdocument.title = this.getPageTitle();\n\t\t\tthis.titleChanged = false;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tgetBrowserTitle(slider: Slider): string | null\n\t{\n\t\tif (!slider || !slider.canChangeTitle() || !slider.isOpen() || !slider.isLoaded())\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tlet title = slider.getTitle();\n\t\tif (!title && !slider.isSelfContained())\n\t\t{\n\t\t\ttitle = slider.getFrameWindow() ? slider.getFrameWindow().document.title : null;\n\t\t}\n\n\t\treturn Type.isStringFilled(title) ? title : null;\n\t}\n\n\t/**\n\t * @private\n\t */\n\thasStopParams(url: string, params: string[]): boolean\n\t{\n\t\tif (!params || !Type.isArray(params) || !Type.isStringFilled(url))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst questionPos = url.indexOf('?');\n\t\tif (questionPos === -1)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst query = url.slice(Math.max(0, questionPos));\n\t\tfor (const param of params)\n\t\t{\n\t\t\tif (new RegExp(`[?&]${param}=`, 'i').test(query))\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * @deprecated use getLastOpenSlider method\n\t */\n\tgetLastOpenPage(): Slider | null\n\t{\n\t\treturn this.getLastOpenSlider();\n\t}\n\n\t/**\n\t * @deprecated use getTopSlider method\n\t */\n\tgetCurrentPage(): Slider | null\n\t{\n\t\treturn this.getTopSlider();\n\t}\n}\n","import { Reflection } from 'main.core';\n\nimport { Slider } from './slider';\nimport { SliderManager } from './slider-manager';\nimport { MessageEvent } from './message-event';\nimport { Toolbar } from './toolbar';\nimport { ToolbarItem } from './toolbar-item';\nimport { Label } from './label';\nimport { Dictionary } from './dictionary';\nimport { SliderEvent } from './slider-event';\nimport { getInstance } from './get-instance';\n\nimport { type LabelOptions} from './types/label-options';\nimport { type LinkOptions } from './types/link-options';\nimport { type RuleOptions } from './types/rule-options';\nimport { type MinimizeOptions } from './types/minimize-options';\nimport { type SliderOptions } from './types/slider-options';\nimport { type ToolbarOptions } from './types/toolbar-options';\nimport { type ToolbarItemOptions } from './types/toolbar-item-options';\nimport { type OuterBoundary } from './types/outer-boundary';\n\nimport './css/sidepanel.css';\n\nconst SidePanel = {};\nObject.defineProperty(SidePanel, 'Instance', {\n\tenumerable: false,\n\tget: getInstance,\n});\n\nconst namespace = Reflection.namespace('BX.SidePanel');\n\nObject.defineProperty(namespace, 'Instance', {\n\tenumerable: false,\n\tget: getInstance,\n});\n\nexport {\n\tSidePanel,\n\tSlider,\n\tSliderManager,\n\tSliderManager as Manager,\n\tSliderEvent,\n\tSliderEvent as Event,\n\tMessageEvent,\n\tToolbar,\n\tToolbarItem,\n\tLabel,\n\tDictionary,\n};\n\nexport type {\n\tLabelOptions,\n\tLinkOptions,\n\tRuleOptions,\n\tMinimizeOptions,\n\tSliderOptions,\n\tToolbarOptions,\n\tToolbarItemOptions,\n\tOuterBoundary,\n};\n"],"names":["Dictionary","data","Type","isPlainObject","TypeError","key","value","isStringFilled","Error","Label","slider","labelOptions","Cache","MemoryCache","options","setBgColor","bgColor","setColor","color","setText","text","setIconClass","iconClass","setIconTitle","iconTitle","setOnclick","onclick","cache","remember","Dom","create","props","className","children","getIconBox","getTextContainer","events","click","bind","overlayRect","getSlider","getOverlay","getBoundingClientRect","containerRect","getContainer","maxWidth","left","getMinLeftBoundary","hideText","showText","style","constructor","MIN_LEFT_OFFSET","getIconContainer","getIconClass","removeClass","addClass","hasClass","opacity","isArray","alfa","matches","match","hex","length","replaceAll","isNumber","alfaHex","Math","round","toString","slice","toUpperCase","textContent","attr","fn","isFunction","position","getLabelsContainer","MIN_TOP_OFFSET","INTERVAL_TOP_OFFSET","event","stopPropagation","getOnclick","SliderEvent","action","name","Slider","getEventFullName","getName","MessageEvent","eventOptions","sender","setName","setSlider","eventId","url","sliderOptions","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","contentCallback","contentCallbackInvoved","contentClassName","containerClassName","overlayClassName","refineUrl","offset","hideControls","width","cacheable","autoFocus","printable","allowChangeHistory","allowChangeTitle","isBoolean","allowCrossOrigin","customLeftBoundary","customRightBoundary","setCustomLeftBoundary","setCustomRightBoundary","title","setTitle","iframe","iframeSrc","iframeId","requestMethod","toLowerCase","requestParams","opened","hidden","destroyed","loaded","loadedCnt","minimizing","maximizing","handleFrameKeyDown","handleFrameFocus","handleFrameUnload","handlePopupInit","handleCrossOriginWindowMessage","layout","overlay","container","loader","content","isElementNode","typeLoader","animation","animationDuration","overlayBgColor","test","overlayOpacity","min","max","includes","startPosition","outerBoundary","overlayAnimation","animationName","animationOptions","minimizeOptions","entityType","entityId","setToolbarOnOpen","hideToolbarOnOpen","setDesignSystemContext","designSystemContext","setAutoOffset","autoOffset","label","Loc","getMessage","close","minimizeLabel","newWindowLabel","copyLinkLabel","isSelfContained","isLoaded","minimize","newWindowUrl","getUrl","Object","assign","document","createElement","target","href","BX","clipboard","bindCopyClick","link","onOpen","compatibleEvents","onLoad","eventName","entries","EventEmitter","subscribe","compatMode","isOpen","canOpen","isDestroyed","fireEvent","createLayout","adjustLayout","ZIndexManager","bringToFront","animateOpening","immediately","callback","canClose","stop","Browser","isMobile","completeAnimation","easing","duration","start","finish","step","state","animateStep","complete","origin","animate","success","open","type","flag","context","isString","getWindow","focus","zIndex","getZIndexComponent","getZIndex","Text","getRandom","contentWindow","window","getTitle","canChangeHistory","showPrintBtn","hidePrintBtn","getLoader","createLoader","display","getLabel","showIcon","hideIcon","getText","lightenIcon","darkenIcon","getPrintBtn","getExtraLabelsContainer","removeContentClass","getContentContainer","removeContainerClass","removeOverlayClass","getCustomLeftBoundary","getLeftBoundary","windowWidth","innerWidth","documentElement","clientWidth","getOffset","calculateLeftBoundary","boundary","getCustomRightBoundary","pageXOffset","getRightBoundary","firePageEvent","fireFrameEvent","frameWindow","getFrameWindow","Event","unbind","unsubscribe","unregister","remove","closeBtn","unsubscribeAll","showLoader","setContent","location","reload","scrollTop","pageYOffset","windowHeight","innerHeight","clientHeight","topBoundary","getTopBoundary","isTopBoundaryVisible","height","leftBoundary","getLeftBoundaryOffset","rightBoundary","calculateRightBoundary","top","right","bottom","getWidth","parentNode","append","body","getFrame","setFrameSrc","register","attrs","referrerpolicy","src","frameborder","getFrameId","id","load","handleFrameLoad","overlayClass","mousedown","handleOverlayClick","parseInt","padStart","Tag","render","getDesignSystemContext","contentClass","handlePrintBtnClick","clean","promise","isPromiseReturned","prototype","call","Promise","resolve","then","result","html","Runtime","removeLoader","catch","reason","innerHTML","isDomNode","Uri","addParam","IFRAME","IFRAME_TYPE","isPostMethod","form","method","util","addObjectToForm","getRequestParams","submit","listenIframeLoading","sliderLoader","oldLoaders","createHTMLLoader","loaderExists","createOldLoader","charAt","createSvgLoader","moduleId","svgName","svg","createDefaultLoader","backgroundImage","i","styleSheets","rules","cssRules","rule","selectorText","isPrintable","scale","translateX","translateY","getOverlayAnimation","transform","isFocusable","getCloseBtn","isCacheable","destroy","sliderEvent","getEvent","emit","getFullName","BaseEvent","compatData","onCustomEvent","canAction","pageEvent","frameEvent","isActionAllowed","frameUrl","URL","eventUrl","message","undefined","iframeLocation","e","closeLoader","console","warn","paddingBottom","iframeUrl","pathname","search","hash","injectPrintStyles","setInterval","clearInterval","readyState","keyCode","framePopupManager","Main","PopupManager","popups","getPopups","popup","isShown","centerX","centerY","element","elementFromPoint","closest","getCompatData","bindElement","params","targetContainer","contains","preventDefault","frame","frameDoc","write","headTags","links","head","querySelectorAll","outerHTML","print","setTimeout","frameDocument","bodyClass","classList","bodyStyle","styleSheet","cssText","appendChild","createTextNode","removeParam","mode","states","end","calculateOuterBoundary","merge","getOuterBoundary","instance","getInstance","topWindow","PageObject","getRootWindow","SidePanel","Instance","SliderManager","ToolbarItem","itemOptions","setEventNamespace","entityName","refs","rendered","setUrl","setEntityType","setEntityId","getTitleContainer","handleClick","handleMouseEnter","handleMouseLeave","handleRemoveBtnClick","encodeURI","encode","node","prepend","insertBefore","insertAfter","targetNode","rect","targetNodeWidth","popupWidth","scrollWidth","hint","bindOptions","forceBindPosition","forceTop","getEntityName","darkMode","fixed","offsetTop","onShow","getTarget","offsetLeft","angleShift","Popup","getOption","setAngle","setOffset","show","adjustPosition","getPopupById","ctrlKey","metaKey","maximize","showTooltip","hideTooltip","getEntityType","getEntityId","Toolbar","toolbarOptions","items","lsKey","initialPosition","shiftedPosition","collapsed","muted","shifted","maxVisibleItems","addItems","item","restoreItemFromLocalStorage","getItem","clearLocalStorage","minimizeItem","canShowOnTop","unmute","mute","setPosition","sliders","getOpenSliders","unshift","shift","prop","unbindAll","requestAnimationFrame","bindOnce","request","expand","collapse","itemsOptions","isArrayFilled","forEach","addItem","createItem","push","redraw","getMinimizeOptions","setEntityName","handleItemRemove","itemExists","prependItem","saveItemToLocalStorage","response","status","removeItem","ttl","Date","now","localStorage","setItem","JSON","stringify","parse","additional","Ajax","runAction","json","toolbar","getContext","toJSON","itemId","currentTarget","dataset","menuItemId","itemToRemove","getItemById","menu","getMenu","removeMenuItem","invisibleItemsCount","getItems","reduce","count","isRendered","getPopupWindow","filter","restored","getItemsCount","hide","visibleItemsCount","previousItem","nextItem","appendTo","getItemsContainer","find","getId","classes","join","handleToggleClick","alwaysOnTop","toggleMuteness","debounce","forceCollapsed","onSliderClose","isMuted","toggleShift","isShifted","isCollapsed","throttle","getMoreButton","handleMoreBtnClick","map","createMenuItemText","delimiter","removeAll","MenuManager","maxHeight","getPopupContainer","offsetWidth","startsWith","Reflection","getClass","UI","Viewer","sliderId","shouldHideToolbarOnOpen","stack","getStack","components","getComponents","component","getMenuById","handleMenuItemRemove","toggle","sliderClassName","sliderDefaultOptions","sliderPriorityOptions","anchorRules","anchorBinding","openSliders","lastOpenSlider","hacksApplied","pageUrl","getCurrentUrl","pageTitle","getCurrentTitle","titleChanged","fullScreenSlider","handleAnchorClick","handleDocumentKeyDown","handleWindowResize","handleWindowScroll","handleTouchMove","handleSliderOpenStart","handleSliderOpenComplete","handleSliderMaximizeStart","handleSliderCloseStart","handleSliderCloseComplete","handleSliderMinimizeStart","handleSliderLoad","handleSliderDestroy","handleEscapePress","handleFullScreenChange","closeAll","unhide","postMessage","postMessageAll","postMessageTop","handlePostMessageCompatible","tryApplyHacks","getUrlRule","ruleOptions","cb","applyHacks","resetHacks","topSlider","getTopSlider","sliderUrl","sliderToDestroy","getLastOpenSlider","currentSlider","previousSlider","isUndefined","BXIM","replace","getFullScreenSlider","requestFullscreen","webkitRequestFullScreen","msRequestFullscreen","mozRequestFullScreen","log","exitFullscreen","webkitExitFullscreen","msExitFullscreen","mozCancelFullScreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","getFullScreenElement","scrollTo","pageScrollTop","resizeEvent","createEvent","initEvent","dispatchEvent","source","getSliderFromSource","sliderWindow","parameters","registerAnchorListener","error","trace","condition","m","RegExp","targetDocument","exitFullScreen","hideOverlay","setOverlayBackground","sameWidth","showShadow","hideOrDarkenCloseBtn","hideExtraLabels","setOverlayAnimation","_classPrivateMethodGet","index","moveAt","losePageFocus","setBrowserHistory","updateBrowserTitle","setAnimation","getPreviousSlider","unhideOverlay","hideShadow","showOrLightenCloseBtn","getToolbar","cleanUpClosedSlider","unregisterAnchorListener","isOnTop","canCloseByEsc","showExtraLabels","getOpenSlidersCount","resetBrowserHistory","getSliderByWindow","disablePageScrollbar","bindEvents","applyPostHacks","resetPostHacks","enablePageScrollbar","unbindEvents","paddingRight","removeProperty","activeElement","blur","which","a","nodeName","getAttribute","anchor","isAnchorBinding","extractLinkFromEvent","isValidLink","handler","bubbles","cancelable","k","hasStopParams","stopParameters","allowCrossDomain","isCrossDomain","mobileFriendly","validate","history","replaceState","getPageUrl","getBrowserTitle","getPageTitle","canChangeTitle","questionPos","indexOf","query","param","defaultOptions","priorityOptions","sliderClass","isHidden","getSliderDefaultOptions","getSliderPriorityOptions","SliderClass","getSliderClass","shouldUseAutoOffset","lastOffset","openSlider","splice","defineProperty","enumerable","get","namespace"],"mappings":"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"}