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/elements/attach/dist/ |
Upload File : |
{"version":3,"file":"attach.bundle.js","sources":["../src/components/delimiter/delimiter.js","../src/components/file/file-item.js","../src/components/file/file.js","../src/components/grid/grid-item.js","../src/components/grid/grid.js","../src/components/html/html.js","../src/components/image/image-item.js","../src/components/image/image.js","../src/components/link/link-item.js","../src/components/link/link.js","../src/components/message/message.js","../src/components/rich/rich-service.js","../src/components/rich/rich-item.js","../src/components/rich/rich.js","../src/components/user/user-item.js","../src/components/user/user.js","../src/attach.js"],"sourcesContent":["import './delimiter.css';\n\nimport type { AttachDelimiterConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachDelimiter = {\n\tname: 'AttachDelimiter',\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachDelimiterConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\tstyles(): Object\n\t\t{\n\t\t\tconst result = {};\n\n\t\t\tif (this.internalConfig.delimiter.color)\n\t\t\t{\n\t\t\t\tresult.backgroundColor = this.internalConfig.delimiter.color;\n\t\t\t}\n\n\t\t\tif (this.internalConfig.delimiter.size > 0)\n\t\t\t{\n\t\t\t\tresult.width = `${this.internalConfig.delimiter.size}px`;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-delimiter__container\" :style=\"styles\"></div>\n\t`,\n};\n","import { Type } from 'main.core';\nimport 'ui.icons.disk';\n\nimport { Utils } from 'im.v2.lib.utils';\n\nimport './file.css';\n\nimport type { AttachFileItemConfig } from 'im.v2.const';\n\nexport const AttachFileItem = {\n\tname: 'AttachFileItem',\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachFileItemConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\tfileName(): ?string\n\t\t{\n\t\t\treturn this.internalConfig.name;\n\t\t},\n\t\tfileSize(): ?number\n\t\t{\n\t\t\treturn this.internalConfig.size;\n\t\t},\n\t\tlink(): string\n\t\t{\n\t\t\treturn this.internalConfig.link;\n\t\t},\n\t\tfileShortName(): string\n\t\t{\n\t\t\tconst NAME_MAX_LENGTH = 70;\n\n\t\t\tconst fileName: string = Type.isStringFilled(this.fileName)\n\t\t\t\t? this.fileName\n\t\t\t\t: this.$Bitrix.Loc.getMessage('IM_ELEMENTS_ATTACH_RICH_FILE_NO_NAME')\n\t\t\t;\n\n\t\t\treturn Utils.file.getShortFileName(fileName, NAME_MAX_LENGTH);\n\t\t},\n\t\tformattedFileSize(): string\n\t\t{\n\t\t\tif (!this.fileSize)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn Utils.file.formatFileSize(this.fileSize);\n\t\t},\n\t\ticonClasses()\n\t\t{\n\t\t\treturn ['ui-icon', `ui-icon-file-${this.fileIcon}`];\n\t\t},\n\t\tfileIcon(): string\n\t\t{\n\t\t\treturn Utils.file.getIconTypeByFilename(this.fileName);\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\topenLink()\n\t\t{\n\t\t\tif (!this.link)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.open(this.link, '_blank');\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div @click=\"openLink\" class=\"bx-im-attach-file__container\">\n\t\t\t<div class=\"bx-im-attach-file__item\">\n\t\t\t\t<div class=\"bx-im-attach-file__icon\">\n\t\t\t\t\t<div :class=\"iconClasses\"><i></i></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-attach-file__block\">\n\t\t\t\t\t<div class=\"bx-im-attach-file__name\" :title=\"fileName\">\n\t\t\t\t\t\t{{ fileShortName }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bx-im-attach-file__size\">\n\t\t\t\t\t\t{{ formattedFileSize }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n","import { AttachFileItem } from './file-item';\n\nimport 'ui.icons.disk';\nimport './file.css';\n\nimport type { AttachFileConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachFile = {\n\tname: 'AttachFile',\n\tcomponents: { AttachFileItem },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachFileConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-file__container\">\n\t\t\t<AttachFileItem\n\t\t\t\tv-for=\"(fileItem, index) in internalConfig.file\"\n\t\t\t\t:config=\"fileItem\"\n\t\t\t\t:key=\"index\"\n\t\t\t/>\n\t\t</div>\n\t`,\n};\n","import { Parser } from 'im.v2.lib.parser';\n\nimport type { AttachGridItemConfig } from 'im.v2.const';\n\nexport const AttachGridItemDisplayType = {\n\tblock: 'block',\n\tline: 'line',\n\trow: 'row',\n};\nconst DisplayType = AttachGridItemDisplayType;\n\n// @vue/component\nexport const AttachGridItem = {\n\tname: 'AttachGridItem',\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tDisplayType: () => DisplayType,\n\t\tinternalConfig(): AttachGridItemConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\tdisplay(): $Values<typeof DisplayType>\n\t\t{\n\t\t\treturn this.internalConfig.display.toLowerCase();\n\t\t},\n\t\twidth(): string\n\t\t{\n\t\t\tif (!this.value || !this.internalConfig.width)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn `${this.internalConfig.width}px`;\n\t\t},\n\t\tvalue(): string\n\t\t{\n\t\t\tif (!this.internalConfig.value)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn Parser.decodeText(this.internalConfig.value);\n\t\t},\n\t\tcolorToken(): string\n\t\t{\n\t\t\treturn this.internalConfig.colorToken || 'base';\n\t\t},\n\t\tname(): string\n\t\t{\n\t\t\treturn this.internalConfig.name;\n\t\t},\n\t\tlink(): string\n\t\t{\n\t\t\treturn this.internalConfig.link;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div v-if=\"display === DisplayType.block\" :style=\"{width}\" class=\"bx-im-attach-grid__item --block\">\n\t\t\t<div class=\"bx-im-attach-grid__name\">{{ name }}</div>\n\t\t\t<div v-if=\"link\" class=\"bx-im-attach-grid__value --link\">\n\t\t\t\t<a :href=\"link\" target=\"_blank\" :class=\"colorToken\" v-html=\"value\"></a>\n\t\t\t</div>\n\t\t\t<div v-else v-html=\"value\" :class=\"colorToken\" class=\"bx-im-attach-grid__value\"></div>\n\t\t</div>\n\t\t<div v-if=\"display === DisplayType.line\" :style=\"{width}\" class=\"bx-im-attach-grid__item --line\">\n\t\t\t<div class=\"bx-im-attach-grid__name\">{{ name }}</div>\n\t\t\t<div v-if=\"link\" :class=\"colorToken\" class=\"bx-im-attach-grid__value --link\">\n\t\t\t\t<a :href=\"link\" target=\"_blank\" v-html=\"value\"></a>\n\t\t\t</div>\n\t\t\t<div v-else class=\"bx-im-attach-grid__value\" :class=\"colorToken\" v-html=\"value\"></div>\n\t\t</div>\n\t\t<div v-if=\"display === DisplayType.row\" class=\"bx-im-attach-grid__item --row\">\n\t\t\t<table>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td v-if=\"name\" :colspan=\"value? 1: 2\" :style=\"{width}\" class=\"bx-im-attach-grid__name\">\n\t\t\t\t\t\t\t{{ name }}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tv-if=\"value && link\"\n\t\t\t\t\t\t\t:colspan=\"name? 1: 2\"\n\t\t\t\t\t\t\t:class=\"colorToken\"\n\t\t\t\t\t\t\tclass=\"bx-im-attach-grid__value --link\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<a :href=\"link\" target=\"_blank\" v-html=\"value\"></a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tv-if=\"value && !link\"\n\t\t\t\t\t\t\t:colspan=\"name? 1: 2\"\n\t\t\t\t\t\t\t:class=\"colorToken\"\n\t\t\t\t\t\t\tv-html=\"value\"\n\t\t\t\t\t\t\tclass=\"bx-im-attach-grid__value\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t`,\n};\n","import { AttachGridItem } from './grid-item';\n\nimport './grid.css';\n\nimport type { AttachGridConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachGrid = {\n\tname: 'AttachGrid',\n\tcomponents: { AttachGridItem },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachGridConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-grid__container\">\n\t\t\t<AttachGridItem\n\t\t\t\tv-for=\"(gridItem, index) in internalConfig.grid\"\n\t\t\t\t:config=\"gridItem\"\n\t\t\t\t:key=\"index\"\n\t\t\t/>\n\t\t</div>\n\t`,\n};\n","import './html.css';\nimport { Parser } from 'im.v2.lib.parser';\n\nimport type { AttachHtmlConfig } from 'im.v2.const';\n\nexport const AttachHtml = {\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachHtmlConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\thtml(): string\n\t\t{\n\t\t\treturn Parser.decodeHtml(this.internalConfig.html);\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-element-attach-type-html\" v-html=\"html\"></div>\n\t`,\n};\n","import { Dom } from 'main.core';\nimport { lazyload } from 'ui.vue3.directives.lazyload';\n\nimport { Utils } from 'im.v2.lib.utils';\n\nimport type { JsonObject } from 'main.core';\nimport type { AttachImageItemConfig } from 'im.v2.const';\n\nconst MAX_IMAGE_SIZE = 272;\n\n// @vue/component\nexport const AttachImageItem = {\n\tname: 'AttachImageItem',\n\tdirectives: { lazyload },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachImageItemConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\twidth(): number\n\t\t{\n\t\t\treturn this.internalConfig.width || 0;\n\t\t},\n\t\theight(): number\n\t\t{\n\t\t\treturn this.internalConfig.height || 0;\n\t\t},\n\t\tlink(): string\n\t\t{\n\t\t\treturn this.internalConfig.link;\n\t\t},\n\t\tname(): string\n\t\t{\n\t\t\treturn this.internalConfig.name;\n\t\t},\n\t\tpreview(): string\n\t\t{\n\t\t\treturn this.internalConfig.preview;\n\t\t},\n\t\tsource(): string\n\t\t{\n\t\t\treturn this.preview ?? this.link;\n\t\t},\n\t\timageSize(): JsonObject\n\t\t{\n\t\t\tif (this.width === 0 || this.height === 0)\n\t\t\t{\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst sizes = Utils.file.resizeToFitMaxSize(this.width, this.height, MAX_IMAGE_SIZE);\n\n\t\t\treturn {\n\t\t\t\twidth: `${sizes.width}px`,\n\t\t\t\theight: `${sizes.height}px`,\n\t\t\t\t'object-fit': (sizes.width < 100 || sizes.height < 100) ? 'cover' : 'contain',\n\t\t\t};\n\t\t},\n\t\thasWidth(): boolean\n\t\t{\n\t\t\treturn Boolean(this.imageSize.width);\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\topen()\n\t\t{\n\t\t\tif (!this.link)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.open(this.link, '_blank');\n\t\t},\n\t\tlazyLoadCallback(event: {element: HTMLElement, state: string})\n\t\t{\n\t\t\tconst { element } = event;\n\t\t\tif (!Dom.style(element, 'width'))\n\t\t\t{\n\t\t\t\tDom.style(element, 'width', `${element.offsetWidth}px`);\n\t\t\t}\n\n\t\t\tif (!Dom.style(element, 'height'))\n\t\t\t{\n\t\t\t\tDom.style(element, 'height', `${element.offsetHeight}px`);\n\t\t\t}\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-image__item\" :class=\"{'--with-width': hasWidth }\" @click=\"open\">\n\t\t\t<img\n\t\t\t\tv-lazyload=\"{callback: lazyLoadCallback}\"\n\t\t\t\t:data-lazyload-src=\"source\"\n\t\t\t\t:style=\"imageSize\"\n\t\t\t\t:title=\"name\"\n\t\t\t\t:alt=\"name\"\n\t\t\t\tclass=\"bx-im-attach-image__source\"\n\t\t\t/>\n\t\t</div>\n\t`,\n};\n","import { AttachImageItem } from './image-item';\n\nimport './image.css';\n\nimport type { AttachImageConfig } from 'im.v2.const';\n\nexport const AttachImage = {\n\tname: 'AttachImage',\n\tcomponents: { AttachImageItem },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachImageConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-image__container bx-im-attach-image__scope\">\n\t\t\t<AttachImageItem v-for=\"(image, index) in internalConfig.image\" :config=\"image\" :key=\"index\" />\n\t\t</div>\n\t`,\n};\n","import { Parser } from 'im.v2.lib.parser';\n\nimport { AttachImage } from '../image/image';\n\nimport type { AttachLinkItemConfig, AttachImageConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachLinkItem = {\n\tname: 'AttachLinkItem',\n\tcomponents: { AttachImage },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachLinkItemConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\tlink(): string\n\t\t{\n\t\t\treturn this.internalConfig.link;\n\t\t},\n\t\tname(): string\n\t\t{\n\t\t\treturn this.internalConfig.name ?? this.link;\n\t\t},\n\t\tdescription(): string\n\t\t{\n\t\t\treturn this.internalConfig.desc;\n\t\t},\n\t\thtml(): string\n\t\t{\n\t\t\tconst content = this.internalConfig.html || this.description;\n\n\t\t\treturn Parser.decodeText(content);\n\t\t},\n\t\tpreview(): string\n\t\t{\n\t\t\treturn this.internalConfig.preview;\n\t\t},\n\t\timageConfig(): AttachImageConfig\n\t\t{\n\t\t\treturn {\n\t\t\t\timage: [{\n\t\t\t\t\tname: this.internalConfig.name,\n\t\t\t\t\tpreview: this.internalConfig.preview,\n\t\t\t\t\twidth: this.internalConfig.width,\n\t\t\t\t\theight: this.internalConfig.height,\n\t\t\t\t}],\n\t\t\t};\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-link__item\">\n\t\t\t<a v-if=\"link\" :href=\"link\" target=\"_blank\" class=\"bx-im-attach-link__link\">\n\t\t\t\t{{ name }}\n\t\t\t</a>\n\t\t\t<span v-else class=\"bx-im-attach-link__name\">\n\t\t\t\t{{ name }}\n\t\t\t</span>\n\t\t\t<div v-if=\"internalConfig.html || description\" class=\"bx-im-attach-link__desc\" v-html=\"html\"></div>\n\t\t\t<div v-if=\"preview\" class=\"bx-im-attach-link__image\">\n\t\t\t\t<AttachImage :config=\"imageConfig\" />\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n","import { AttachLinkItem } from './link-item';\n\nimport './link.css';\n\nimport type { AttachLinkConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachLink = {\n\tname: 'AttachLink',\n\tcomponents: { AttachLinkItem },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachLinkConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-link__container\">\n\t\t\t<AttachLinkItem v-for=\"(link, index) in internalConfig.link\" :config=\"link\" :key=\"index\" />\n\t\t</div>\n\t`,\n};\n","import { Parser } from 'im.v2.lib.parser';\n\nimport './message.css';\n\nimport type { AttachMessageConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachMessage = {\n\tname: 'AttachMessage',\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachMessageConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\tmessage(): string\n\t\t{\n\t\t\treturn Parser.decodeText(this.internalConfig.message);\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-message__container\" v-html=\"message\"></div>\n\t`,\n};\n","import { RestClient } from 'rest.client';\n\nimport { Core } from 'im.v2.application.core';\nimport { RestMethod } from 'im.v2.const';\n\nimport type { ImModelMessage } from 'im.v2.model';\nimport type { Store } from 'ui.vue3.vuex';\n\nexport class RichService\n{\n\t#restClient: RestClient;\n\t#store: Store;\n\t#message: ImModelMessage;\n\n\tconstructor(message: ImModelMessage)\n\t{\n\t\tthis.#restClient = Core.getRestClient();\n\t\tthis.#store = Core.getStore();\n\t\tthis.#message = message;\n\t}\n\n\tdeleteRichLink(attachId: string): void\n\t{\n\t\tvoid this.#store.dispatch('messages/deleteAttach', {\n\t\t\tmessageId: this.#message.id,\n\t\t\tattachId,\n\t\t});\n\n\t\tthis.#restClient.callMethod(RestMethod.imV2ChatMessageDeleteRichUrl, {\n\t\t\tmessageId: this.#message.id,\n\t\t}).catch((result: RestResult) => {\n\t\t\tconsole.error('RichService: error deleting rich link', result.error);\n\t\t});\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { Utils } from 'im.v2.lib.utils';\n\nimport { AttachImage } from '../image/image';\nimport { RichService } from './rich-service';\n\nimport type { AttachRichItemConfig, AttachImageConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachRichItem = {\n\tname: 'AttachRichItem',\n\tcomponents: { AttachImage },\n\tinject: ['message'],\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t\tattachId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachRichItemConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\tlink(): string\n\t\t{\n\t\t\treturn this.internalConfig.link;\n\t\t},\n\t\tname(): string\n\t\t{\n\t\t\treturn Utils.text.convertHtmlEntities(this.internalConfig.name);\n\t\t},\n\t\tdescription(): string\n\t\t{\n\t\t\treturn Utils.text.convertHtmlEntities(this.internalConfig.desc);\n\t\t},\n\t\thtml(): string\n\t\t{\n\t\t\treturn this.internalConfig.html;\n\t\t},\n\t\tpreview(): string\n\t\t{\n\t\t\treturn this.internalConfig.preview;\n\t\t},\n\t\tpreviewSize(): {width: number, height: number}\n\t\t{\n\t\t\treturn {\n\t\t\t\twidth: this.internalConfig.previewSize?.width ?? 0,\n\t\t\t\theight: this.internalConfig.previewSize?.height ?? 0,\n\t\t\t};\n\t\t},\n\t\timageConfig(): AttachImageConfig\n\t\t{\n\t\t\treturn {\n\t\t\t\timage: [{\n\t\t\t\t\tname: this.name,\n\t\t\t\t\tpreview: this.preview,\n\t\t\t\t\twidth: this.previewSize.width,\n\t\t\t\t\theight: this.previewSize.height,\n\t\t\t\t}],\n\t\t\t};\n\t\t},\n\t\tcanShowDeleteIcon(): boolean\n\t\t{\n\t\t\tif (!this.message)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.message.authorId === Core.getUserId();\n\t\t},\n\t\tdeleteRichLinkTitle(): string\n\t\t{\n\t\t\treturn this.$Bitrix.Loc.getMessage('IM_ELEMENTS_ATTACH_RICH_LINK_DELETE');\n\t\t},\n\t\timageStyles()\n\t\t{\n\t\t\tif (this.previewSize.width === 0 || this.previewSize.height === 0)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\twidth: '272px',\n\t\t\t\t\theight: '272px',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {};\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\topenLink()\n\t\t{\n\t\t\tif (!this.link)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twindow.open(this.link, '_blank');\n\t\t},\n\t\tdeleteRichLink()\n\t\t{\n\t\t\tif (!this.message)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t(new RichService(this.message)).deleteRichLink(this.attachId);\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-rich__scope bx-im-attach-rich__container\">\n\t\t\t<div class=\"bx-im-attach-rich__block\">\n\t\t\t\t<div class=\"bx-im-attach-rich__name\" @click=\"openLink\">{{ name }}</div>\n\t\t\t\t<div v-if=\"html || description\" class=\"bx-im-attach-rich__desc\">{{ html || description }}</div>\n\t\t\t\t<button \n\t\t\t\t\tv-if=\"canShowDeleteIcon\" \n\t\t\t\t\tclass=\"bx-im-attach-rich__hide-icon\"\n\t\t\t\t\t@click=\"deleteRichLink\"\n\t\t\t\t\t:title=\"deleteRichLinkTitle\"\n\t\t\t\t></button>\n\t\t\t</div>\n\t\t\t<div v-if=\"preview\" class=\"bx-im-attach-rich__image\" @click=\"openLink\" :style=\"imageStyles\">\n\t\t\t\t<AttachImage :config=\"imageConfig\" />\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n","import { AttachRichItem } from './rich-item';\n\nimport './rich.css';\n\nimport type { AttachRichConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachRich = {\n\tcomponents: { AttachRichItem },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t\tattachId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachRichConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-rich__container\">\n\t\t\t<AttachRichItem \n\t\t\t\tv-for=\"(rich, index) in internalConfig.richLink\" \n\t\t\t\t:config=\"rich\"\n\t\t\t\t:key=\"index\" \n\t\t\t\t:attachId=\"attachId\" \n\t\t\t/>\n\t\t</div>\n\t`,\n};\n","import { lazyload } from 'ui.vue3.directives.lazyload';\nimport type { AttachUserItemConfig } from 'im.v2.const';\n\nconst AVATAR_TYPE = {\n\tuser: 'user',\n\tchat: 'chat',\n\tbot: 'bot',\n};\n\n// @vue/component\nexport const AttachUserItem = {\n\tname: 'AttachUserItem',\n\tdirectives: { lazyload },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachUserItemConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\tname(): string\n\t\t{\n\t\t\treturn this.internalConfig.name;\n\t\t},\n\t\tavatar(): string\n\t\t{\n\t\t\treturn this.internalConfig.avatar;\n\t\t},\n\t\tavatarType(): string\n\t\t{\n\t\t\treturn this.internalConfig.avatarType;\n\t\t},\n\t\tlink(): string\n\t\t{\n\t\t\treturn this.internalConfig.link;\n\t\t},\n\t\tavatarTypeClass(): string[] | string\n\t\t{\n\t\t\tif (this.avatar)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tlet avatarType = AVATAR_TYPE.user;\n\n\t\t\tif (this.avatarType === AVATAR_TYPE.chat)\n\t\t\t{\n\t\t\t\tavatarType = AVATAR_TYPE.chat;\n\t\t\t}\n\t\t\telse if (this.avatarType === AVATAR_TYPE.bot)\n\t\t\t{\n\t\t\t\tavatarType = AVATAR_TYPE.bot;\n\t\t\t}\n\n\t\t\treturn [`--${avatarType}`, 'base'];\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-user__item\">\n\t\t\t<div class=\"bx-im-attach-user__avatar\" :class=\"avatarTypeClass\">\n\t\t\t\t<img v-if=\"avatar\" v-lazyload :data-lazyload-src=\"avatar\" class=\"bx-im-attach-user__source\" alt=\"name\" />\n\t\t\t</div>\n\t\t\t<a v-if=\"link\" :href=\"link\" class=\"bx-im-attach-user__name\" target=\"_blank\">\n\t\t\t\t{{ name }}\n\t\t\t</a>\n\t\t\t<span class=\"bx-im-attach-user__name\" v-else>\n\t\t\t\t{{ name }}\n\t\t\t</span>\n\t\t</div>\n\t`,\n};\n","import { AttachUserItem } from './user-item';\n\nimport './user.css';\n\nimport type { AttachUserConfig } from 'im.v2.const';\n\n// @vue/component\nexport const AttachUser = {\n\tname: 'AttachUser',\n\tcomponents: { AttachUserItem },\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachUserConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach-user__container\">\n\t\t\t<AttachUserItem v-for=\"(user, index) in internalConfig.user\" :config=\"user\" :key=\"index\" />\n\t\t</div>\n\t`,\n};\n","import { AttachType, ColorToken } from 'im.v2.const';\n\nimport { AttachDelimiter } from './components/delimiter/delimiter';\nimport { AttachFile } from './components/file/file';\nimport { AttachGrid } from './components/grid/grid';\nimport { AttachHtml } from './components/html/html';\nimport { AttachImage } from './components/image/image';\nimport { AttachLink } from './components/link/link';\nimport { AttachMessage } from './components/message/message';\nimport { AttachRich } from './components/rich/rich';\nimport { AttachUser } from './components/user/user';\n\nimport './attach.css';\n\nimport type { AttachConfig, AttachConfigBlock } from 'im.v2.const';\nimport type { BitrixVueComponentProps } from 'ui.vue3';\n\nconst PropertyToComponentMap = {\n\t[AttachType.Delimiter]: AttachDelimiter,\n\t[AttachType.File]: AttachFile,\n\t[AttachType.Grid]: AttachGrid,\n\t[AttachType.Html]: AttachHtml,\n\t[AttachType.Image]: AttachImage,\n\t[AttachType.Link]: AttachLink,\n\t[AttachType.Message]: AttachMessage,\n\t[AttachType.Rich]: AttachRich,\n\t[AttachType.User]: AttachUser,\n};\n\n// @vue/component\nexport const Attach = {\n\tname: 'MessengerAttach',\n\tcomponents: {\n\t\tAttachDelimiter,\n\t\tAttachFile,\n\t\tAttachGrid,\n\t\tAttachHtml,\n\t\tAttachImage,\n\t\tAttachLink,\n\t\tAttachMessage,\n\t\tAttachRich,\n\t\tAttachUser,\n\t},\n\tprops:\n\t{\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tinternalConfig(): AttachConfig\n\t\t{\n\t\t\treturn this.config;\n\t\t},\n\t\tblocks(): AttachConfigBlock[]\n\t\t{\n\t\t\treturn this.internalConfig.blocks;\n\t\t},\n\t\tcolorToken(): string\n\t\t{\n\t\t\tconst { colorToken = ColorToken.base } = this.internalConfig;\n\n\t\t\treturn colorToken;\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tgetComponentForBlock(block: AttachConfigBlock): BitrixVueComponentProps | ''\n\t\t{\n\t\t\tconst [blockType] = Object.keys(block);\n\t\t\tif (!PropertyToComponentMap[blockType])\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn PropertyToComponentMap[blockType];\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-attach__container bx-im-attach__scope\">\n\t\t\t<div class=\"bx-im-attach__border\" :class=\"colorToken\"></div>\n\t\t\t<div class=\"bx-im-attach__content\">\n\t\t\t\t<component\n\t\t\t\t\tv-for=\"(block, index) in blocks\"\n\t\t\t\t\t:is=\"getComponentForBlock(block)\"\n\t\t\t\t\t:config=\"block\"\n\t\t\t\t\t:colorToken=\"colorToken\"\n\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t:attachId=\"internalConfig.id.toString()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t`,\n};\n"],"names":["AttachDelimiter","name","props","config","type","Object","default","computed","internalConfig","styles","result","delimiter","color","backgroundColor","size","width","template","AttachFileItem","fileName","fileSize","link","fileShortName","NAME_MAX_LENGTH","Type","isStringFilled","$Bitrix","Loc","getMessage","Utils","file","getShortFileName","formattedFileSize","formatFileSize","iconClasses","fileIcon","getIconTypeByFilename","methods","openLink","window","open","AttachFile","components","AttachGridItemDisplayType","block","line","row","DisplayType","AttachGridItem","display","toLowerCase","value","Parser","decodeText","colorToken","AttachGrid","AttachHtml","html","decodeHtml","MAX_IMAGE_SIZE","AttachImageItem","directives","lazyload","height","preview","source","imageSize","sizes","resizeToFitMaxSize","hasWidth","Boolean","lazyLoadCallback","event","element","Dom","style","offsetWidth","offsetHeight","AttachImage","AttachLinkItem","description","desc","content","imageConfig","image","AttachLink","AttachMessage","message","RichService","constructor","Core","getRestClient","getStore","deleteRichLink","attachId","dispatch","messageId","id","callMethod","RestMethod","imV2ChatMessageDeleteRichUrl","catch","console","error","AttachRichItem","inject","String","required","text","convertHtmlEntities","previewSize","canShowDeleteIcon","authorId","getUserId","deleteRichLinkTitle","imageStyles","AttachRich","AVATAR_TYPE","user","chat","bot","AttachUserItem","avatar","avatarType","avatarTypeClass","AttachUser","PropertyToComponentMap","AttachType","Delimiter","File","Grid","Html","Image","Link","Message","Rich","User","Attach","blocks","ColorToken","base","getComponentForBlock","blockType","keys"],"mappings":"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"}