403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/component/navigation/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/component/navigation/dist/navigation.bundle.js.map
{"version":3,"file":"navigation.bundle.js","sources":["../src/components/settings/button-panel.js","../src/components/status/user-status.js","../src/components/status/user-status-content.js","../src/components/status/user-status-popup.js","../src/classes/desktop-item-context-menu.js","../src/components/settings/desktop-account-list/desktop-account-item.js","../src/components/settings/desktop-account-list/desktop-account-list.js","../src/components/settings/user-settings-content.js","../src/components/settings/user-settings-popup.js","../src/components/user-settings.js","../src/components/market-apps.js","../src/components/copilot-promo-hint.js","../src/navigation.js"],"sourcesContent":["import { Core } from 'im.v2.application.core';\nimport { Utils } from 'im.v2.lib.utils';\nimport { ChatButton, ButtonSize, ButtonColor } from 'im.v2.component.elements.button';\nimport { DesktopApi } from 'im.v2.lib.desktop-api';\n\n// @vue/component\nexport const ButtonPanel = {\n\tname: 'ButtonPanel',\n\tcomponents: { ChatButton },\n\temits: ['openProfile', 'logout'],\n\tcomputed:\n\t{\n\t\tButtonSize: () => ButtonSize,\n\t\tButtonColor: () => ButtonColor,\n\t\tcurrentUserId(): number\n\t\t{\n\t\t\treturn Core.getUserId();\n\t\t},\n\t\tprofileUri(): string\n\t\t{\n\t\t\treturn Utils.user.getProfileLink(this.currentUserId);\n\t\t},\n\t\tisDesktop(): boolean\n\t\t{\n\t\t\treturn DesktopApi.isDesktop();\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tloc(phraseCode: string): string\n\t\t{\n\t\t\treturn this.$Bitrix.Loc.getMessage(phraseCode);\n\t\t},\n\t\tonLogoutClick()\n\t\t{\n\t\t\tvoid DesktopApi.logout();\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-user-settings-popup__button-panel\">\n\t\t\t<a :href=\"profileUri\" target=\"_blank\" class=\"bx-im-user-settings-popup__user_link\">\n\t\t\t\t<ChatButton\n\t\t\t\t\t:color=\"ButtonColor.PrimaryBorder\"\n\t\t\t\t\t:size=\"ButtonSize.M\"\n\t\t\t\t\t:isUppercase=\"false\"\n\t\t\t\t\t:isRounded=\"true\"\n\t\t\t\t\t:text=\"loc('IM_USER_SETTINGS_OPEN_PROFILE')\"\n\t\t\t\t\t@click=\"$emit('openProfile')\"\n\t\t\t\t/>\n\t\t\t</a>\n\t\t\t<ChatButton\n\t\t\t\tv-if=\"isDesktop\" \n\t\t\t\t:color=\"ButtonColor.DangerBorder\"\n\t\t\t\t:size=\"ButtonSize.M\"\n\t\t\t\t:isUppercase=\"false\"\n\t\t\t\t:isRounded=\"true\"\n\t\t\t\t:text=\"loc('IM_USER_SETTINGS_LOGOUT')\"\n\t\t\t\t@click=\"onLogoutClick\"\n\t\t\t/>\n\t\t</div>\n\t`,\n};\n","import { UserStatus as UserStatusType } from 'im.v2.const';\n\nimport './css/user-status.css';\n\nexport const UserStatusSize = {\n\tS: 'S',\n\tM: 'M',\n\tL: 'L',\n\tXL: 'XL',\n\tXXL: 'XXL',\n};\n\n// @vue/component\nexport const UserStatus = {\n\tname: 'UserStatus',\n\tprops: {\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tvalidator(value): boolean {\n\t\t\t\treturn Object.values(UserStatusType).includes(value);\n\t\t\t},\n\t\t},\n\t\tsize: {\n\t\t\ttype: String,\n\t\t\tdefault: UserStatusSize.M,\n\t\t\tvalidator(value): boolean {\n\t\t\t\treturn Object.values(UserStatusSize).includes(value);\n\t\t\t},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tcontainerClasses(): string[]\n\t\t{\n\t\t\treturn [`--size-${this.size.toLowerCase()}`, `--${this.status}`];\n\t\t},\n\t},\n\ttemplate:\n\t`\n\t\t<div :class=\"containerClasses\" class=\"bx-im-user-status__container bx-im-user-status__scope\"></div>\n\t`,\n};\n","import { UserStatus as UserStatusType } from 'im.v2.const';\nimport { Utils } from 'im.v2.lib.utils';\nimport { SettingsService } from 'im.v2.provider.service.settings';\n\nimport { UserStatus, UserStatusSize } from './user-status';\n\n// @vue/component\nexport const UserStatusContent = {\n\tname: 'UserStatusContent',\n\tcomponents: { UserStatus },\n\temits: ['close'],\n\tcomputed:\n\t{\n\t\tUserStatusSize: () => UserStatusSize,\n\t\tstatusList(): string[]\n\t\t{\n\t\t\treturn [UserStatusType.online, UserStatusType.dnd];\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tonStatusClick(statusName: string)\n\t\t{\n\t\t\tthis.getSettingsService().changeStatus(statusName);\n\t\t\tthis.$emit('close');\n\t\t},\n\t\tgetSettingsService(): SettingsService\n\t\t{\n\t\t\tif (!this.settingsService)\n\t\t\t{\n\t\t\t\tthis.settingsService = new SettingsService();\n\t\t\t}\n\n\t\t\treturn this.settingsService;\n\t\t},\n\t\tgetStatusText(status: string): string\n\t\t{\n\t\t\treturn Utils.user.getStatusText(status);\n\t\t},\n\t},\n\ttemplate:\n\t`\n\t\t<div class=\"bx-im-user-status-popup__scope bx-im-user-status-popup__container\">\n\t\t\t<div\n\t\t\t\tv-for=\"status in statusList\"\n\t\t\t\t:key=\"status\"\n\t\t\t\t@click=\"onStatusClick(status)\"\n\t\t\t\tclass=\"bx-im-user-status-popup__item\"\n\t\t\t>\n\t\t\t\t<UserStatus :status=\"status\" :size=\"UserStatusSize.M\" />\n\t\t\t\t<div class=\"bx-im-user-status-popup__text\">{{ getStatusText(status) }}</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n","import {MessengerPopup} from 'im.v2.component.elements.popup';\n\nimport {UserStatusContent} from './user-status-content';\n\nconst POPUP_ID = 'im-user-status-popup';\n\n// @vue/component\nexport const UserStatusPopup = {\n\tname: 'UserStatusPopup',\n\tcomponents: {MessengerPopup, UserStatusContent},\n\tprops:\n\t{\n\t\tbindElement: {\n\t\t\ttype: Object,\n\t\t\trequired: true\n\t\t}\n\t},\n\temits: ['close'],\n\tcomputed:\n\t{\n\t\tPOPUP_ID: () => POPUP_ID,\n\t\tconfig()\n\t\t{\n\t\t\treturn {\n\t\t\t\twidth: 190,\n\t\t\t\tbindElement: this.bindElement,\n\t\t\t\toffsetTop: 4,\n\t\t\t\tpadding: 0,\n\t\t\t};\n\t\t}\n\t},\n\ttemplate: `\n\t\t<MessengerPopup\n\t\t\t:config=\"config\"\n\t\t\t@close=\"$emit('close')\"\n\t\t\t:id=\"POPUP_ID\"\n\t\t>\n\t\t\t<UserStatusContent @close=\"$emit('close')\" />\n\t\t</MessengerPopup>\n\t`\n};","import { Loc } from 'main.core';\nimport { PopupManager } from 'main.popup';\n\nimport { BaseMenu } from 'im.v2.lib.menu';\nimport { DesktopApi } from 'im.v2.lib.desktop-api';\nimport { PopupType } from 'im.v2.const';\nimport { showDesktopDeleteConfirm } from 'im.v2.lib.confirm';\n\nimport type { MenuItem } from 'im.v2.lib.menu';\nimport type { DesktopAccount } from 'im.v2.lib.desktop-api';\n\nexport class DesktopItemContextMenu extends BaseMenu\n{\n\tcontext: DesktopAccount;\n\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.id = PopupType.desktopItemMenu;\n\t}\n\n\tgetMenuItems(): MenuItem[]\n\t{\n\t\treturn [\n\t\t\tthis.#getConnectItem(),\n\t\t\tthis.#getDeleteItem(),\n\t\t];\n\t}\n\n\t#getConnectItem(): MenuItem\n\t{\n\t\tconst title = this.context.connected\n\t\t\t? Loc.getMessage('IM_USER_SETTINGS_DESKTOP_CONTEXT_MENU_DISCONNECT_V2')\n\t\t\t: Loc.getMessage('IM_USER_SETTINGS_DESKTOP_CONTEXT_MENU_CONNECT_V2')\n\t\t;\n\n\t\treturn {\n\t\t\ttext: title,\n\t\t\tonclick: function() {\n\t\t\t\tif (this.context.connected)\n\t\t\t\t{\n\t\t\t\t\tthis.#disconnect();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.#connect();\n\t\t\t\t}\n\t\t\t\tthis.menuInstance.close();\n\t\t\t\tPopupManager.getPopupById(PopupType.userProfile)?.close();\n\t\t\t}.bind(this),\n\t\t};\n\t}\n\n\t#getDeleteItem(): MenuItem\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('IM_USER_SETTINGS_DESKTOP_CONTEXT_MENU_DELETE_V2'),\n\t\t\tonclick: async function() {\n\t\t\t\tconst userChoice = await showDesktopDeleteConfirm();\n\t\t\t\tif (userChoice === true)\n\t\t\t\t{\n\t\t\t\t\tDesktopApi.deleteAccount(this.context.host, this.context.login);\n\t\t\t\t\tPopupManager.getPopupById(PopupType.userProfile)?.close();\n\t\t\t\t}\n\t\t\t}.bind(this),\n\t\t};\n\t}\n\n\t#connect()\n\t{\n\t\tconst { host, login, protocol } = this.context;\n\n\t\tconst userLang = navigator.language;\n\t\tDesktopApi.connectAccount(host, login, protocol, userLang);\n\t}\n\n\t#disconnect()\n\t{\n\t\tconst { host } = this.context;\n\t\tDesktopApi.disconnectAccount(host);\n\t}\n\n\tclose()\n\t{\n\t\tPopupManager.getPopupById(PopupType.userProfile)?.setAutoHide(true);\n\t\tsuper.close();\n\t}\n}\n","import { DesktopManager } from 'im.v2.lib.desktop';\n\nimport '../../../css/desktop-account-list/desktop-account-item.css';\n\nimport type { DesktopAccount } from 'im.v2.lib.desktop-api';\nimport type { JsonObject } from 'main.core';\n\n// @vue/component\nexport const DesktopAccountItem = {\n\tname: 'DesktopAccountItem',\n\tprops:\n\t{\n\t\taccount: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: ['contextMenuClick'],\n\tdata(): JsonObject\n\t{\n\t\treturn {\n\t\t\terrorLoadAvatar: false,\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\taccountItem(): DesktopAccount\n\t\t{\n\t\t\treturn this.account;\n\t\t},\n\t\tavatarUrl(): string\n\t\t{\n\t\t\tif (this.errorLoadAvatar || !this.hasAvatar)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (this.accountItem.avatar.startsWith('http'))\n\t\t\t{\n\t\t\t\treturn this.accountItem.avatar;\n\t\t\t}\n\n\t\t\treturn `${this.accountItem.protocol}://${this.accountItem.host}${this.accountItem.avatar}`;\n\t\t},\n\t\tisConnected(): boolean\n\t\t{\n\t\t\treturn this.accountItem.connected;\n\t\t},\n\t\thasAvatar(): boolean\n\t\t{\n\t\t\treturn this.accountItem.avatar && this.accountItem.avatar !== '/bitrix/js/im/images/blank.gif';\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tonContextMenuClick(event)\n\t\t{\n\t\t\tthis.$emit('contextMenuClick', {\n\t\t\t\taccount: this.account,\n\t\t\t\ttarget: event.target,\n\t\t\t});\n\t\t},\n\t\tonDomainClick()\n\t\t{\n\t\t\tif (!this.isConnected)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tDesktopManager.getInstance().openAccountTab(this.accountItem.portal);\n\t\t},\n\t\tonError()\n\t\t{\n\t\t\tthis.errorLoadAvatar = true;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-desktop-connection-list-item__container bx-im-desktop-connection-list-item__scope\">\n\t\t\t<div class=\"bx-im-desktop-connection-list-item__content\" :class=\"{'--disconnected': !isConnected}\">\n\t\t\t\t<img \n\t\t\t\t\tv-if=\"avatarUrl\" \n\t\t\t\t\t:src=\"avatarUrl\"\n\t\t\t\t\t:alt=\"accountItem.portal\"\n\t\t\t\t\t@error=\"onError\"\n\t\t\t\t\tclass=\"bx-im-desktop-connection-list-item__avatar\" \n\t\t\t\t/>\n\t\t\t\t<span v-else class=\"bx-im-desktop-connection-list-item__avatar-default\"></span>\n\t\t\t\t<div class=\"bx-im-desktop-connection-list-item__title-container\">\n\t\t\t\t\t<span class=\"bx-im-desktop-connection-list-item__title\" @click=\"onDomainClick\">\n\t\t\t\t\t\t{{ accountItem.portal }}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"bx-im-desktop-connection-list-item__login\">{{ accountItem.login }}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\tclass=\"bx-im-messenger__context-menu-icon bx-im-desktop-connection-list-item__context-menu\"\n\t\t\t\t@click=\"onContextMenuClick\"\n\t\t\t></button>\n\t\t</div>\n\t`,\n};\n","import { PopupManager } from 'main.popup';\n\nimport { PopupType } from 'im.v2.const';\nimport { DesktopApi, type DesktopAccount } from 'im.v2.lib.desktop-api';\n\nimport { DesktopItemContextMenu } from '../../../classes/desktop-item-context-menu';\nimport { DesktopAccountItem } from './desktop-account-item';\n\nimport '../../../css/desktop-account-list/desktop-account-list.css';\n\nimport type { JsonObject } from 'main.core';\n\n// @vue/component\nexport const DesktopAccountList = {\n\tname: 'DesktopAccountList',\n\tcomponents: { DesktopAccountItem },\n\temits: ['openContextMenu'],\n\tdata(): JsonObject\n\t{\n\t\treturn {\n\t\t\taccounts: [],\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tisEmptyState(): boolean\n\t\t{\n\t\t\treturn this.accounts.length === 0;\n\t\t},\n\t},\n\tcreated()\n\t{\n\t\tthis.contextMenu = new DesktopItemContextMenu();\n\t\tthis.accounts = DesktopApi.getAccountList();\n\t},\n\tbeforeUnmount()\n\t{\n\t\tthis.contextMenu.destroy();\n\t},\n\tmethods:\n\t{\n\t\topenLoginTab()\n\t\t{\n\t\t\tthis.contextMenu.destroy();\n\t\t\tPopupManager.getPopupById(PopupType.userProfile)?.close();\n\t\t\tDesktopApi.openAddAccountTab();\n\t\t},\n\t\tonContextMenuClick(event: { account: DesktopAccount, target: HTMLElement })\n\t\t{\n\t\t\tconst { account, target } = event;\n\t\t\tthis.contextMenu.openMenu(account, target);\n\t\t\tthis.$emit('openContextMenu');\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-desktop-connection-list__container bx-im-desktop-connection-list__scope\">\n\t\t\t<div class=\"bx-im-desktop-connection-list__header\">\n\t\t\t\t<span class=\"bx-im-desktop-connection-list__title\">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_USER_SETTINGS_CONNECTED_BITRIX24') }}\n\t\t\t\t</span>\n\t\t\t\t<span class=\"bx-im-desktop-connection-list__add\" @click=\"openLoginTab\">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_USER_SETTINGS_CONNECT_BITRIX24') }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-desktop-connection-list__items\">\n\t\t\t\t<DesktopAccountItem \n\t\t\t\t\tv-for=\"account in accounts\" \n\t\t\t\t\t:account=\"account\" \n\t\t\t\t\t@contextMenuClick=\"onContextMenuClick\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n","import { MenuManager } from 'main.popup';\n\nimport { Core } from 'im.v2.application.core';\nimport { ScrollWithGradient } from 'im.v2.component.elements.scroll-with-gradient';\nimport { ChatAvatar, AvatarSize } from 'im.v2.component.elements.avatar';\nimport { DesktopApi, DesktopFeature } from 'im.v2.lib.desktop-api';\nimport { Utils } from 'im.v2.lib.utils';\nimport { PopupType, Settings, UserStatus as UserStatusType } from 'im.v2.const';\n\nimport { ButtonPanel } from './button-panel';\nimport { UserStatusPopup } from '../status/user-status-popup';\nimport { UserStatus, UserStatusSize } from '../status/user-status';\nimport { DesktopAccountList } from './desktop-account-list/desktop-account-list';\n\nimport 'ui.buttons';\nimport 'ui.feedback.form';\n\nimport type { ImModelUser } from 'im.v2.model';\n\n// @vue/component\nexport const UserSettingsContent = {\n\tname: 'UserSettingsContent',\n\tcomponents: { ChatAvatar, UserStatus, ButtonPanel, UserStatusPopup, DesktopAccountList, ScrollWithGradient },\n\temits: ['closePopup', 'enableAutoHide', 'disableAutoHide'],\n\tdata(): Object\n\t{\n\t\treturn {\n\t\t\tshowStatusPopup: false,\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tAvatarSize: () => AvatarSize,\n\t\tUserStatusSize: () => UserStatusSize,\n\t\tcurrentUserId(): number\n\t\t{\n\t\t\treturn Core.getUserId();\n\t\t},\n\t\tcurrentUserDialogId(): string\n\t\t{\n\t\t\treturn this.currentUserId.toString();\n\t\t},\n\t\tcurrentUser(): ImModelUser\n\t\t{\n\t\t\treturn this.$store.getters['users/get'](this.currentUserId, true);\n\t\t},\n\t\tcurrentUserPosition(): string\n\t\t{\n\t\t\treturn this.$store.getters['users/getPosition'](this.currentUserId);\n\t\t},\n\t\tuserStatus(): string\n\t\t{\n\t\t\tconst status = this.$store.getters['application/settings/get'](Settings.user.status);\n\t\t\tif (status)\n\t\t\t{\n\t\t\t\treturn status;\n\t\t\t}\n\n\t\t\treturn UserStatusType.online;\n\t\t},\n\t\tcurrentHost(): string\n\t\t{\n\t\t\treturn location.hostname;\n\t\t},\n\t\tuserStatusText(): string\n\t\t{\n\t\t\treturn Utils.user.getStatusText(this.userStatus);\n\t\t},\n\t\tisDesktopAccountManagementAvailable(): boolean\n\t\t{\n\t\t\treturn DesktopApi.isFeatureSupported(DesktopFeature.accountManagement.id);\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tonStatusClick()\n\t\t{\n\t\t\tthis.showStatusPopup = true;\n\t\t\tthis.$emit('disableAutoHide');\n\t\t},\n\t\tonStatusPopupClose()\n\t\t{\n\t\t\tthis.showStatusPopup = false;\n\t\t\tthis.$emit('enableAutoHide');\n\t\t},\n\t\tloc(phraseCode: string): string\n\t\t{\n\t\t\treturn this.$Bitrix.Loc.getMessage(phraseCode);\n\t\t},\n\t\tonScroll()\n\t\t{\n\t\t\tMenuManager.getMenuById(PopupType.desktopItemMenu)?.close();\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-user-settings-popup__scope bx-im-user-settings-popup__container\">\n\t\t\t<div class=\"bx-im-user-settings-popup__header\">\n\t\t\t\t<div class=\"bx-im-user-settings-popup__header_left\">\n\t\t\t\t\t<ChatAvatar \n\t\t\t\t\t\t:avatarDialogId=\"currentUserDialogId\" \n\t\t\t\t\t\t:contextDialogId=\"currentUserDialogId\" \n\t\t\t\t\t\t:size=\"AvatarSize.XL\" \n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-user-settings-popup__header_right\">\n\t\t\t\t\t<div class=\"bx-im-user-settings-popup__domain\">{{ currentHost }}</div>\n\t\t\t\t\t<div class=\"bx-im-user-settings-popup__user_name\" :title=\"currentUser.name\">{{ currentUser.name }}</div>\n\t\t\t\t\t<div class=\"bx-im-user-settings-popup__user_title\" :title=\"currentUserPosition\">{{ currentUserPosition }}</div>\n\t\t\t\t\t<ButtonPanel @openProfile=\"$emit('closePopup')\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<ScrollWithGradient :containerMaxHeight=\"328\" :gradientHeight=\"24\" @scroll=\"onScroll\">\n\t\t\t\t<div class=\"bx-im-user-settings-popup__list\">\n\t\t\t\t\t<div class=\"bx-im-user-settings-popup__separator\"></div>\n\t\t\t\t\t<!-- Status select -->\n\t\t\t\t\t<div @click=\"onStatusClick\" class=\"bx-im-user-settings-popup__list-item --with-icon\">\n\t\t\t\t\t\t<div class=\"bx-im-user-settings-popup__list-item_left\">\n\t\t\t\t\t\t\t<div class=\"bx-im-user-settings-popup__list-item_status\">\n\t\t\t\t\t\t\t\t<UserStatus :status=\"userStatus\" :size=\"UserStatusSize.M\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"bx-im-user-settings-popup__list-item_text\">{{ userStatusText }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"bx-im-user-settings-popup__list-item_icon --chevron\" ref=\"status-select\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-user-settings-popup__separator\"></div>\n\t\t\t\t<DesktopAccountList \n\t\t\t\t\tv-if=\"isDesktopAccountManagementAvailable\"\n\t\t\t\t\t@openContextMenu=\"$emit('disableAutoHide')\"\n\t\t\t\t/>\n\t\t\t</ScrollWithGradient>\n\t\t</div>\n\t\t<UserStatusPopup\n\t\t\tv-if=\"showStatusPopup\"\n\t\t\t:bindElement=\"$refs['status-select'] || {}\"\n\t\t\t@close=\"onStatusPopupClose\"\n\t\t/>\n\t`,\n};\n","import { MessengerPopup } from 'im.v2.component.elements.popup';\n\nimport { UserSettingsContent } from './user-settings-content';\n\nimport type { JsonObject } from 'main.core';\n\nconst POPUP_ID = 'im-user-settings-popup';\n\n// @vue/component\nexport const UserSettingsPopup = {\n\tname: 'UserSettingsPopup',\n\tcomponents: { MessengerPopup, UserSettingsContent },\n\tprops:\n\t{\n\t\tbindElement: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: ['close'],\n\tcomputed:\n\t{\n\t\tPOPUP_ID: () => POPUP_ID,\n\t\tconfig(): JsonObject\n\t\t{\n\t\t\treturn {\n\t\t\t\twidth: 313,\n\t\t\t\tbindElement: this.bindElement,\n\t\t\t\toffsetTop: 4,\n\t\t\t\tpadding: 0,\n\t\t\t};\n\t\t},\n\t},\n\ttemplate: `\n\t\t<MessengerPopup\n\t\t\tv-slot=\"{enableAutoHide, disableAutoHide}\"\n\t\t\t:config=\"config\"\n\t\t\t@close=\"$emit('close')\"\n\t\t\t:id=\"POPUP_ID\"\n\t\t>\n\t\t\t<UserSettingsContent \n\t\t\t\t@closePopup=\"$emit('close')\" \n\t\t\t\t@enableAutoHide=\"enableAutoHide\" \n\t\t\t\t@disableAutoHide=\"disableAutoHide\" \n\t\t\t/>\n\t\t</MessengerPopup>\n\t`,\n};\n","import { Core } from 'im.v2.application.core';\nimport { Settings, UserStatus as UserStatusType } from 'im.v2.const';\nimport { ChatAvatar, AvatarSize } from 'im.v2.component.elements.avatar';\n\nimport { UserSettingsPopup } from './settings/user-settings-popup';\nimport { UserStatusPopup } from './status/user-status-popup';\n\nimport '../css/user-settings.css';\nimport '../css/user-status.css';\n\n// @vue/component\nexport const UserSettings = {\n\tname: 'UserSettings',\n\tcomponents: { UserSettingsPopup, UserStatusPopup, ChatAvatar },\n\tdata(): Object\n\t{\n\t\treturn {\n\t\t\tshowSettingsPopup: false,\n\t\t\tshowStatusPopup: false,\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tAvatarSize: () => AvatarSize,\n\t\tcurrentUserDialogId(): string\n\t\t{\n\t\t\treturn Core.getUserId().toString();\n\t\t},\n\t\tuserStatus(): string\n\t\t{\n\t\t\tconst status = this.$store.getters['application/settings/get'](Settings.user.status);\n\t\t\tif (status)\n\t\t\t{\n\t\t\t\treturn status;\n\t\t\t}\n\n\t\t\treturn UserStatusType.online;\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tonAvatarClick()\n\t\t{\n\t\t\tthis.showSettingsPopup = true;\n\t\t},\n\t\tonStatusClick()\n\t\t{\n\t\t\tthis.showStatusPopup = true;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-navigation__user\">\n\t\t\t<div @click=\"onAvatarClick\" class=\"bx-im-navigation__user_avatar\" ref=\"avatar\">\n\t\t\t\t<ChatAvatar \n\t\t\t\t\t:avatarDialogId=\"currentUserDialogId\"\n\t\t\t\t\t:contextDialogId=\"currentUserDialogId\" \n\t\t\t\t\t:size=\"AvatarSize.M\" \n\t\t\t\t/>\n\t\t\t\t<div @click.stop=\"onStatusClick\" :class=\"'--' + userStatus\" class=\"bx-im-navigation__user_status\" ref=\"status\"></div>\n\t\t\t</div>\n\t\t\t<UserStatusPopup\n\t\t\t\tv-if=\"showStatusPopup\"\n\t\t\t\t:bindElement=\"$refs['status'] || {}\"\n\t\t\t\t@close=\"showStatusPopup = false\"\n\t\t\t/>\n\t\t\t<UserSettingsPopup\n\t\t\t\tv-if=\"showSettingsPopup\"\n\t\t\t\t:bindElement=\"$refs['avatar'] || {}\"\n\t\t\t\t@close=\"showSettingsPopup = false\" \n\t\t\t/>\n\t\t</div>\n\t`,\n};\n","import 'ui.fontawesome4';\n\nimport { Core } from 'im.v2.application.core';\nimport { Layout, PlacementType } from 'im.v2.const';\nimport { MarketManager } from 'im.v2.lib.market';\n\nimport type { ImModelMarketApplication, ImModelLayout } from 'im.v2.model';\nimport type { JsonObject } from 'main.core';\n\nexport type MarketMenuItem = {\n\tid: string,\n\ttext: string,\n\tcounter: number,\n\tactive: boolean,\n\ticonName: string,\n\tloadConfiguration?: ImModelMarketApplication['loadConfiguration']\n};\n\n// @vue/component\nexport const MarketApps = {\n\tname: 'MarketApps',\n\temits: ['clickMarketItem'],\n\tcomputed:\n\t{\n\t\tmarketMenuItems(): MarketMenuItem[]\n\t\t{\n\t\t\tconst navigationApps = MarketManager.getInstance().getAvailablePlacementsByType(PlacementType.navigation);\n\n\t\t\treturn navigationApps.map((item: ImModelMarketApplication) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: item.id,\n\t\t\t\t\ttext: item.title,\n\t\t\t\t\tcounter: 0,\n\t\t\t\t\tactive: true,\n\t\t\t\t\ticonName: item.options.iconName || '',\n\t\t\t\t\tloadConfiguration: item.loadConfiguration,\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\t\tlayout(): ImModelLayout\n\t\t{\n\t\t\treturn this.$store.getters['application/getLayout'];\n\t\t},\n\t\tcanShowMarket(): boolean\n\t\t{\n\t\t\treturn Core.isCloud();\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tonMarketClick()\n\t\t{\n\t\t\tthis.$emit('clickMarketItem', {\n\t\t\t\tid: Layout.market.name,\n\t\t\t});\n\t\t},\n\t\tonMarketItemClick(item: MarketMenuItem)\n\t\t{\n\t\t\tthis.$emit('clickMarketItem', {\n\t\t\t\tid: Layout.market.name,\n\t\t\t\tentityId: item.id,\n\t\t\t});\n\t\t},\n\t\tgetMenuItemClasses(item: MarketMenuItem): JsonObject\n\t\t{\n\t\t\treturn {\n\t\t\t\t'--selected': this.isItemSelected(item.id),\n\t\t\t\t'--active': item.active,\n\t\t\t};\n\t\t},\n\t\tisItemSelected(itemId: string): boolean\n\t\t{\n\t\t\treturn this.layout.name === Layout.market.name && this.layout.entityId === itemId;\n\t\t},\n\t\tgetIconClassNames(item: MarketMenuItem): string\n\t\t{\n\t\t\treturn item.iconName.toString();\n\t\t},\n\t\tloc(phraseCode: string): string\n\t\t{\n\t\t\treturn this.$Bitrix.Loc.getMessage(phraseCode);\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div\n\t\t\tv-if=\"canShowMarket\"\n\t\t\t@click=\"onMarketClick\"\n\t\t\tclass=\"bx-im-navigation__item_container\"\n\t\t>\n\t\t\t<div class=\"bx-im-navigation__item --active\">\n\t\t\t\t<div class=\"bx-im-navigation__item_icon --market\"></div>\n\t\t\t\t<div class=\"bx-im-navigation__item_text\" :title=\"loc('IM_NAVIGATION_MARKET_TITLE')\">\n\t\t\t\t\t{{ loc('IM_NAVIGATION_MARKET_TITLE') }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div\n\t\t\tv-for=\"item in marketMenuItems\"\n\t\t\t:key=\"item.id\"\n\t\t\t@click=\"onMarketItemClick(item)\"\n\t\t\tclass=\"bx-im-navigation__item_container\"\n\t\t>\n\t\t\t<div :class=\"getMenuItemClasses(item)\" class=\"bx-im-navigation__item\">\n\t\t\t\t<div class=\"bx-im-navigation__market-item_icon-container\">\n\t\t\t\t\t<i \n\t\t\t\t\t\tclass=\"bx-im-navigation__market-item_icon fa\" \n\t\t\t\t\t\t:class=\"getIconClassNames(item)\" \n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t></i>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-navigation__item_text\" :title=\"item.text\">{{item.text}}</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n","import { PopupOptions } from 'main.popup';\n\nimport { Messenger } from 'im.public';\nimport { PromoId } from 'im.v2.const';\nimport { PromoManager } from 'im.v2.lib.promo';\nimport { CopilotService } from 'im.v2.provider.service.copilot';\nimport { MessengerPopup } from 'im.v2.component.elements.popup';\nimport { Spinner, SpinnerSize, SpinnerColor } from 'im.v2.component.elements.loader';\n\nimport '../css/copilot-promo-hint.css';\n\nconst POPUP_ID = 'im-copilot-promo-hint-popup';\nconst UNIVERSAL_ROLE_CODE = 'copilot_assistant';\n\n// @vue/component\nexport const CopilotPromoHint = {\n\tname: 'CopilotPromoHint',\n\tcomponents: { MessengerPopup, Spinner },\n\tprops:\n\t{\n\t\tbindElement: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: ['close'],\n\tdata(): { isCreatingChat: boolean }\n\t{\n\t\treturn {\n\t\t\tisCreatingChat: false,\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tSpinnerSize: () => SpinnerSize,\n\t\tSpinnerColor: () => SpinnerColor,\n\t\tPOPUP_ID: () => POPUP_ID,\n\t\tconfig(): PopupOptions\n\t\t{\n\t\t\treturn {\n\t\t\t\tdarkMode: true,\n\t\t\t\tbindElement: this.bindElement,\n\t\t\t\tangle: true,\n\t\t\t\twidth: 346,\n\t\t\t\tcloseIcon: true,\n\t\t\t\tclassName: 'bx-im-copilot-promo-hint__scope',\n\t\t\t\tcontentBorderRadius: 0,\n\t\t\t\toffsetTop: 9,\n\t\t\t};\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tloc(phraseCode: string): string\n\t\t{\n\t\t\treturn this.$Bitrix.Loc.getMessage(phraseCode);\n\t\t},\n\t\tasync close(): void\n\t\t{\n\t\t\tawait PromoManager.getInstance().markAsWatched(PromoId.copilotInRecentTab);\n\t\t\tthis.$emit('close');\n\t\t},\n\t\tasync createCopilot(): Promise<void>\n\t\t{\n\t\t\tthis.isCreatingChat = true;\n\t\t\tconst newDialogId = await this.getCopilotService().createChat({ roleCode: UNIVERSAL_ROLE_CODE })\n\t\t\t\t.catch(() => {\n\t\t\t\t\tthis.isCreatingChat = false;\n\t\t\t\t});\n\n\t\t\tthis.isCreatingChat = false;\n\t\t\tawait this.close();\n\t\t\tvoid Messenger.openChat(newDialogId);\n\t\t},\n\t\tgetCopilotService(): CopilotService\n\t\t{\n\t\t\tif (!this.copilotService)\n\t\t\t{\n\t\t\t\tthis.copilotService = new CopilotService();\n\t\t\t}\n\n\t\t\treturn this.copilotService;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<MessengerPopup\n\t\t\t:config=\"config\"\n\t\t\t:id=\"POPUP_ID\"\n\t\t\t@close=\"close\"\n\t\t>\n\t\t\t<div class=\"bx-im-copilot-promo-hint__title\">\n\t\t\t\t{{ loc('IM_CONTENT_COPILOT_PROMO_HINT_TITLE') }}\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-copilot-promo-hint__description\">\n\t\t\t\t{{ loc('IM_CONTENT_COPILOT_PROMO_HINT_DESCRIPTION') }}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\tclass=\"bx-im-copilot-promo-hint__action\"\n\t\t\t\t@click=\"createCopilot\"\n\t\t\t>\n\t\t\t\t<Spinner\n\t\t\t\t\tv-if=\"isCreatingChat\"\n\t\t\t\t\t:size=\"SpinnerSize.XS\"\n\t\t\t\t\t:color=\"SpinnerColor.copilot\"\n\t\t\t\t/>\n\t\t\t\t<span v-else>\n\t\t\t\t\t{{ loc('IM_CONTENT_COPILOT_PROMO_HINT_ACTION') }}\n\t\t\t\t</span>\n\t\t\t</button>\n\t\t</MessengerPopup>\n\t`,\n};\n","import { Type } from 'main.core';\n\nimport { Logger } from 'im.v2.lib.logger';\nimport { MessengerSlider } from 'im.v2.lib.slider';\nimport { ActionByUserType, Layout, NavigationMenuItem, PromoId } from 'im.v2.const';\nimport { DesktopApi } from 'im.v2.lib.desktop-api';\nimport { PhoneManager } from 'im.v2.lib.phone';\nimport { Feature, FeatureManager } from 'im.v2.lib.feature';\nimport { PermissionManager } from 'im.v2.lib.permission';\nimport { PromoManager } from 'im.v2.lib.promo';\n\nimport { UserSettings } from './components/user-settings';\nimport { MarketApps } from './components/market-apps';\nimport { CopilotPromoHint } from './components/copilot-promo-hint';\n\nimport './css/navigation.css';\n\nimport type { JsonObject } from 'main.core';\nimport type { NavigationMenuItemParams } from 'im.v2.lib.navigation';\n\ntype MenuItem = {\n\tid: string,\n\ttext: string,\n\tcounter?: number,\n\tshowCondition?: () => boolean,\n};\n\nconst LayoutToAction = Object.freeze({\n\t[Layout.market.name]: ActionByUserType.getMarket,\n\t[Layout.openlines.name]: ActionByUserType.getOpenlines,\n\t[Layout.channel.name]: ActionByUserType.getChannels,\n});\n\n// @vue/component\nexport const MessengerNavigation = {\n\tname: 'MessengerNavigation',\n\tcomponents: { UserSettings, MarketApps, CopilotPromoHint },\n\tprops: {\n\t\tcurrentLayoutName: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: ['navigationClick'],\n\tdata(): JsonObject\n\t{\n\t\treturn {\n\t\t\tneedTopShadow: false,\n\t\t\tneedBottomShadow: false,\n\t\t\tshowCopilotPromoHint: false,\n\t\t};\n\t},\n\tcomputed: {\n\t\tNavigationMenuItem: () => NavigationMenuItem,\n\t\tmenuItems(): MenuItem[]\n\t\t{\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.chat,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_CHATS'),\n\t\t\t\t\tcounter: this.formatCounter(this.$store.getters['counters/getTotalChatCounter']),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.copilot,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_COPILOT'),\n\t\t\t\t\tcounter: this.formatCounter(this.$store.getters['counters/getTotalCopilotCounter']),\n\t\t\t\t\tshowCondition: () => FeatureManager.isFeatureAvailable(Feature.copilotAvailable),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.collab,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_COLLAB'),\n\t\t\t\t\tcounter: this.formatCounter(this.$store.getters['counters/getTotalCollabCounter']),\n\t\t\t\t\tshowCondition: () => FeatureManager.isFeatureAvailable(Feature.collabAvailable),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.channel,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_CHANNELS'),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.openlines,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_OPENLINES'),\n\t\t\t\t\tcounter: this.formatCounter(this.$store.getters['counters/getTotalLinesCounter']),\n\t\t\t\t\tshowCondition: () => {\n\t\t\t\t\t\treturn !this.isOptionOpenLinesV2Activated();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.openlinesV2,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_OPENLINES'),\n\t\t\t\t\tcounter: this.formatCounter(this.$store.getters['counters/getTotalLinesCounter']),\n\t\t\t\t\tshowCondition: this.isOptionOpenLinesV2Activated,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.notification,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_NOTIFICATIONS'),\n\t\t\t\t\tcounter: this.formatCounter(this.$store.getters['notifications/getCounter']),\n\t\t\t\t\tshowCondition: () => !FeatureManager.isFeatureAvailable(Feature.isNotificationsStandalone),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.call,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_CALLS_V2'),\n\t\t\t\t\tshowCondition: PhoneManager.getInstance().canCall.bind(PhoneManager.getInstance()),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.timemanager,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_TIMEMANAGER'),\n\t\t\t\t\tshowCondition: this.isTimeManagerActive,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.homepage,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_MAIN_PAGE'),\n\t\t\t\t\tshowCondition: this.isMainPageActive,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.market,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: NavigationMenuItem.settings,\n\t\t\t\t\ttext: this.prepareNavigationText('IM_NAVIGATION_SETTINGS'),\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\tshowCloseIcon(): boolean\n\t\t{\n\t\t\treturn !DesktopApi.isChatTab();\n\t\t},\n\t\tisCopilotChatsInRecentTabEnabled(): boolean\n\t\t{\n\t\t\treturn FeatureManager.isFeatureAvailable(Feature.showCopilotChatsInRecentTab);\n\t\t},\n\t},\n\tcreated()\n\t{\n\t\tLogger.warn('Navigation created');\n\t},\n\tmounted()\n\t{\n\t\tconst container = this.$refs.navigation;\n\t\tthis.needBottomShadow = container && container.scrollTop + container.clientHeight !== container.scrollHeight;\n\t\tthis.showCopilotPromoHint = this.isCopilotChatsInRecentTabEnabled\n\t\t\t&& PromoManager.getInstance().needToShow(PromoId.copilotInRecentTab);\n\t},\n\tmethods:\n\t{\n\t\tonItemClick(item: MenuItem, event: PointerEvent)\n\t\t{\n\t\t\tthis.$emit('navigationClick', {\n\t\t\t\tid: item.id,\n\t\t\t\ttarget: event.target,\n\t\t\t});\n\t\t},\n\t\tonMarketItemClick(item: NavigationMenuItemParams)\n\t\t{\n\t\t\tthis.$emit('navigationClick', item);\n\t\t},\n\t\tcloseSlider()\n\t\t{\n\t\t\tMessengerSlider.getInstance().getCurrent().close();\n\t\t},\n\t\tgetMenuItemClasses(item: MenuItem): Object<string, boolean>\n\t\t{\n\t\t\treturn {\n\t\t\t\t'--selected': item.id === this.currentLayoutName,\n\t\t\t\t'--with-counter': item.counter && item.id !== this.currentLayoutName,\n\t\t\t};\n\t\t},\n\t\tformatCounter(counter: number): string\n\t\t{\n\t\t\tif (counter === 0)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn counter > 99 ? '99+' : String(counter);\n\t\t},\n\t\tprepareNavigationText(phraseCode: string): string\n\t\t{\n\t\t\treturn this.loc(phraseCode, {\n\t\t\t\t'#BR#': '</br>',\n\t\t\t});\n\t\t},\n\t\tneedToShowMenuItem(item: MenuItem): boolean\n\t\t{\n\t\t\tif (!this.hasLayoutAccess(item))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!Type.isFunction(item.showCondition))\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn item.showCondition() === true;\n\t\t},\n\t\thasLayoutAccess(item: MenuItem): boolean\n\t\t{\n\t\t\tconst action = LayoutToAction[item.id];\n\n\t\t\treturn PermissionManager.getInstance().canPerformActionByUserType(action);\n\t\t},\n\t\tonScroll(event: Event & { target: HTMLElement })\n\t\t{\n\t\t\tconst scrollPosition = Math.round(event.target.scrollTop + event.target.clientHeight);\n\t\t\tthis.needBottomShadow = scrollPosition !== event.target.scrollHeight;\n\n\t\t\tif (event.target.scrollTop === 0)\n\t\t\t{\n\t\t\t\tthis.needTopShadow = false;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.needTopShadow = true;\n\t\t},\n\t\tonClickScrollDown()\n\t\t{\n\t\t\tthis.$refs.navigation.scrollTo({\n\t\t\t\ttop: this.$refs.navigation.scrollHeight,\n\t\t\t\tbehavior: 'smooth',\n\t\t\t});\n\t\t},\n\t\tonClickScrollUp()\n\t\t{\n\t\t\tthis.$refs.navigation.scrollTo({\n\t\t\t\ttop: 0,\n\t\t\t\tbehavior: 'smooth',\n\t\t\t});\n\t\t},\n\t\tisTimeManagerActive(): boolean\n\t\t{\n\t\t\treturn Boolean(BX.Timeman?.Monitor?.isEnabled());\n\t\t},\n\t\tisOptionOpenLinesV2Activated(): boolean\n\t\t{\n\t\t\treturn FeatureManager.isFeatureAvailable(Feature.openLinesV2);\n\t\t},\n\t\tisMainPageActive(): boolean\n\t\t{\n\t\t\treturn DesktopApi.isChatWindow();\n\t\t},\n\t\tcloseHint()\n\t\t{\n\t\t\tthis.showCopilotPromoHint = false;\n\t\t},\n\t\tloc(phraseCode: string, replacements: {[string]: string} = {}): string\n\t\t{\n\t\t\treturn this.$Bitrix.Loc.getMessage(phraseCode, replacements);\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-navigation__scope bx-im-navigation__container\">\n\t\t\t<div v-if=\"needTopShadow\" class=\"bx-im-navigation__shadow --top\">\n\t\t\t\t<div class=\"bx-im-navigation__scroll-button\" @click=\"onClickScrollUp\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-navigation__top\" @scroll=\"onScroll\" ref=\"navigation\">\n\t\t\t\t<template v-if=\"showCloseIcon\">\n\t\t\t\t\t<!-- Close -->\n\t\t\t\t\t<div class=\"bx-im-navigation__close_container\" @click=\"closeSlider\">\n\t\t\t\t\t\t<div class=\"bx-im-navigation__close\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<!-- Separator -->\n\t\t\t\t\t<div class=\"bx-im-navigation__separator_container\">\n\t\t\t\t\t\t<div class=\"bx-im-navigation__close_separator\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<!-- Menu items -->\n\t\t\t\t<template v-for=\"item in menuItems\">\n\t\t\t\t\t<MarketApps\n\t\t\t\t\t\tv-if=\"needToShowMenuItem(item) && item.id === NavigationMenuItem.market\"\n\t\t\t\t\t\t@clickMarketItem=\"onMarketItemClick\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else-if=\"needToShowMenuItem(item)\"\n\t\t\t\t\t\t:key=\"item.id\"\n\t\t\t\t\t\t:ref=\"item.id\"\n\t\t\t\t\t\t@click=\"onItemClick(item, $event)\"\n\t\t\t\t\t\tclass=\"bx-im-navigation__item_container\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div :class=\"getMenuItemClasses(item)\" class=\"bx-im-navigation__item\">\n\t\t\t\t\t\t\t<div :class=\"'--' + item.id\" class=\"bx-im-navigation__item_icon\"></div>\n\t\t\t\t\t\t\t<div class=\"bx-im-navigation__item_text\" :title=\"item.text\" v-html=\"item.text\"></div>\n\t\t\t\t\t\t\t<div v-if=\"item.counter\" class=\"bx-im-navigation__item_counter\">\n\t\t\t\t\t\t\t\t<div class=\"bx-im-navigation__item_counter-text\">\n\t\t\t\t\t\t\t\t\t{{ item.counter }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<CopilotPromoHint\n\t\t\t\t\tv-if=\"showCopilotPromoHint\"\n\t\t\t\t\t:bindElement=\"$refs.chat[0]\"\n\t\t\t\t\t@close=\"closeHint\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div v-if=\"needBottomShadow\" class=\"bx-im-navigation__shadow --bottom\">\n\t\t\t\t<div class=\"bx-im-navigation__scroll-button --bottom\" @click=\"onClickScrollDown\"></div>\n\t\t\t</div>\n\t\t\t<!-- Avatar -->\n\t\t\t<div class=\"bx-im-navigation__user_container\">\n\t\t\t\t<UserSettings />\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n"],"names":["ButtonPanel","name","components","ChatButton","emits","computed","ButtonSize","ButtonColor","currentUserId","Core","getUserId","profileUri","Utils","user","getProfileLink","isDesktop","DesktopApi","methods","loc","phraseCode","$Bitrix","Loc","getMessage","onLogoutClick","logout","template","UserStatusSize","S","M","L","XL","XXL","UserStatus","props","status","type","String","required","validator","value","Object","values","UserStatusType","includes","size","default","containerClasses","toLowerCase","UserStatusContent","statusList","online","dnd","onStatusClick","statusName","getSettingsService","changeStatus","$emit","settingsService","SettingsService","getStatusText","POPUP_ID","UserStatusPopup","MessengerPopup","bindElement","config","width","offsetTop","padding","DesktopItemContextMenu","BaseMenu","constructor","id","PopupType","desktopItemMenu","getMenuItems","close","PopupManager","getPopupById","userProfile","setAutoHide","title","context","connected","text","onclick","menuInstance","bind","userChoice","showDesktopDeleteConfirm","deleteAccount","host","login","protocol","userLang","navigator","language","connectAccount","disconnectAccount","DesktopAccountItem","account","data","errorLoadAvatar","accountItem","avatarUrl","hasAvatar","avatar","startsWith","isConnected","onContextMenuClick","event","target","onDomainClick","DesktopManager","getInstance","openAccountTab","portal","onError","DesktopAccountList","accounts","isEmptyState","length","created","contextMenu","getAccountList","beforeUnmount","destroy","openLoginTab","openAddAccountTab","openMenu","UserSettingsContent","ChatAvatar","ScrollWithGradient","showStatusPopup","AvatarSize","currentUserDialogId","toString","currentUser","$store","getters","currentUserPosition","userStatus","Settings","currentHost","location","hostname","userStatusText","isDesktopAccountManagementAvailable","isFeatureSupported","DesktopFeature","accountManagement","onStatusPopupClose","onScroll","MenuManager","getMenuById","UserSettingsPopup","UserSettings","showSettingsPopup","onAvatarClick","MarketApps","marketMenuItems","navigationApps","MarketManager","getAvailablePlacementsByType","PlacementType","navigation","map","item","counter","active","iconName","options","loadConfiguration","layout","canShowMarket","isCloud","onMarketClick","Layout","market","onMarketItemClick","entityId","getMenuItemClasses","isItemSelected","itemId","getIconClassNames","UNIVERSAL_ROLE_CODE","CopilotPromoHint","Spinner","isCreatingChat","SpinnerSize","SpinnerColor","darkMode","angle","closeIcon","className","contentBorderRadius","PromoManager","markAsWatched","PromoId","copilotInRecentTab","createCopilot","newDialogId","getCopilotService","createChat","roleCode","catch","Messenger","openChat","copilotService","CopilotService","LayoutToAction","freeze","ActionByUserType","getMarket","openlines","getOpenlines","channel","getChannels","MessengerNavigation","currentLayoutName","needTopShadow","needBottomShadow","showCopilotPromoHint","NavigationMenuItem","menuItems","chat","prepareNavigationText","formatCounter","copilot","showCondition","FeatureManager","isFeatureAvailable","Feature","copilotAvailable","collab","collabAvailable","isOptionOpenLinesV2Activated","openlinesV2","notification","isNotificationsStandalone","call","PhoneManager","canCall","timemanager","isTimeManagerActive","homepage","isMainPageActive","settings","showCloseIcon","isChatTab","isCopilotChatsInRecentTabEnabled","showCopilotChatsInRecentTab","Logger","warn","mounted","container","$refs","scrollTop","clientHeight","scrollHeight","needToShow","onItemClick","closeSlider","MessengerSlider","getCurrent","needToShowMenuItem","hasLayoutAccess","Type","isFunction","action","PermissionManager","canPerformActionByUserType","scrollPosition","Math","round","onClickScrollDown","scrollTo","top","behavior","onClickScrollUp","Boolean","BX","Timeman","Monitor","isEnabled","openLinesV2","isChatWindow","closeHint","replacements"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit