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 : |
this.BX=this.BX||{};this.BX.Messenger=this.BX.Messenger||{};this.BX.Messenger.v2=this.BX.Messenger.v2||{};this.BX.Messenger.v2.Component=this.BX.Messenger.v2.Component||{};(function(t,e,i,n,a,s,r,l,c){"use strict";const o={name:"AttachDelimiter",props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config},styles(){const t={};if(this.internalConfig.delimiter.color){t.backgroundColor=this.internalConfig.delimiter.color}if(this.internalConfig.delimiter.size>0){t.width=`${this.internalConfig.delimiter.size}px`}return t}},template:`\n\t\t<div class="bx-im-attach-delimiter__container" :style="styles"></div>\n\t`};const h={name:"AttachFileItem",props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config},fileName(){return this.internalConfig.name},fileSize(){return this.internalConfig.size},link(){return this.internalConfig.link},fileShortName(){const t=70;const e=i.Type.isStringFilled(this.fileName)?this.fileName:this.$Bitrix.Loc.getMessage("IM_ELEMENTS_ATTACH_RICH_FILE_NO_NAME");return a.Utils.file.getShortFileName(e,t)},formattedFileSize(){if(!this.fileSize){return""}return a.Utils.file.formatFileSize(this.fileSize)},iconClasses(){return["ui-icon",`ui-icon-file-${this.fileIcon}`]},fileIcon(){return a.Utils.file.getIconTypeByFilename(this.fileName)}},methods:{openLink(){if(!this.link){return}window.open(this.link,"_blank")}},template:`\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`};const d={name:"AttachFile",components:{AttachFileItem:h},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config}},template:`\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`};const m={block:"block",line:"line",row:"row"};const g=m;const f={name:"AttachGridItem",props:{config:{type:Object,default:()=>{}}},computed:{DisplayType:()=>g,internalConfig(){return this.config},display(){return this.internalConfig.display.toLowerCase()},width(){if(!this.value||!this.internalConfig.width){return""}return`${this.internalConfig.width}px`},value(){if(!this.internalConfig.value){return""}return n.Parser.decodeText(this.internalConfig.value)},colorToken(){return this.internalConfig.colorToken||"base"},name(){return this.internalConfig.name},link(){return this.internalConfig.link}},template:`\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`};const v={name:"AttachGrid",components:{AttachGridItem:f},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config}},template:`\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`};const p={props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config},html(){return n.Parser.decodeHtml(this.internalConfig.html)}},template:`\n\t\t<div class="bx-im-element-attach-type-html" v-html="html"></div>\n\t`};const u=272;const b={name:"AttachImageItem",directives:{lazyload:c.lazyload},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config},width(){return this.internalConfig.width||0},height(){return this.internalConfig.height||0},link(){return this.internalConfig.link},name(){return this.internalConfig.name},preview(){return this.internalConfig.preview},source(){var t;return(t=this.preview)!=null?t:this.link},imageSize(){if(this.width===0||this.height===0){return{}}const t=a.Utils.file.resizeToFitMaxSize(this.width,this.height,u);return{width:`${t.width}px`,height:`${t.height}px`,"object-fit":t.width<100||t.height<100?"cover":"contain"}},hasWidth(){return Boolean(this.imageSize.width)}},methods:{open(){if(!this.link){return}window.open(this.link,"_blank")},lazyLoadCallback(t){const{element:e}=t;if(!i.Dom.style(e,"width")){i.Dom.style(e,"width",`${e.offsetWidth}px`)}if(!i.Dom.style(e,"height")){i.Dom.style(e,"height",`${e.offsetHeight}px`)}}},template:`\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`};const _={name:"AttachImage",components:{AttachImageItem:b},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config}},template:`\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`};const k={name:"AttachLinkItem",components:{AttachImage:_},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config},link(){return this.internalConfig.link},name(){var t;return(t=this.internalConfig.name)!=null?t:this.link},description(){return this.internalConfig.desc},html(){const t=this.internalConfig.html||this.description;return n.Parser.decodeText(t)},preview(){return this.internalConfig.preview},imageConfig(){return{image:[{name:this.internalConfig.name,preview:this.internalConfig.preview,width:this.internalConfig.width,height:this.internalConfig.height}]}}},template:`\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`};const C={name:"AttachLink",components:{AttachLinkItem:k},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config}},template:`\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`};const y={name:"AttachMessage",props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config},message(){return n.Parser.decodeText(this.internalConfig.message)}},template:`\n\t\t<div class="bx-im-attach-message__container" v-html="message"></div>\n\t`};var x=babelHelpers.classPrivateFieldLooseKey("restClient");var w=babelHelpers.classPrivateFieldLooseKey("store");var A=babelHelpers.classPrivateFieldLooseKey("message");class I{constructor(t){Object.defineProperty(this,x,{writable:true,value:void 0});Object.defineProperty(this,w,{writable:true,value:void 0});Object.defineProperty(this,A,{writable:true,value:void 0});babelHelpers.classPrivateFieldLooseBase(this,x)[x]=r.Core.getRestClient();babelHelpers.classPrivateFieldLooseBase(this,w)[w]=r.Core.getStore();babelHelpers.classPrivateFieldLooseBase(this,A)[A]=t}deleteRichLink(t){void babelHelpers.classPrivateFieldLooseBase(this,w)[w].dispatch("messages/deleteAttach",{messageId:babelHelpers.classPrivateFieldLooseBase(this,A)[A].id,attachId:t});babelHelpers.classPrivateFieldLooseBase(this,x)[x].callMethod(l.RestMethod.imV2ChatMessageDeleteRichUrl,{messageId:babelHelpers.classPrivateFieldLooseBase(this,A)[A].id}).catch((t=>{console.error("RichService: error deleting rich link",t.error)}))}}const T={name:"AttachRichItem",components:{AttachImage:_},inject:["message"],props:{config:{type:Object,default:()=>{}},attachId:{type:String,required:true}},computed:{internalConfig(){return this.config},link(){return this.internalConfig.link},name(){return a.Utils.text.convertHtmlEntities(this.internalConfig.name)},description(){return a.Utils.text.convertHtmlEntities(this.internalConfig.desc)},html(){return this.internalConfig.html},preview(){return this.internalConfig.preview},previewSize(){var t,e,i,n;return{width:(t=(e=this.internalConfig.previewSize)==null?void 0:e.width)!=null?t:0,height:(i=(n=this.internalConfig.previewSize)==null?void 0:n.height)!=null?i:0}},imageConfig(){return{image:[{name:this.name,preview:this.preview,width:this.previewSize.width,height:this.previewSize.height}]}},canShowDeleteIcon(){if(!this.message){return false}return this.message.authorId===r.Core.getUserId()},deleteRichLinkTitle(){return this.$Bitrix.Loc.getMessage("IM_ELEMENTS_ATTACH_RICH_LINK_DELETE")},imageStyles(){if(this.previewSize.width===0||this.previewSize.height===0){return{width:"272px",height:"272px"}}return{}}},methods:{openLink(){if(!this.link){return}window.open(this.link,"_blank")},deleteRichLink(){if(!this.message){return}new I(this.message).deleteRichLink(this.attachId)}},template:`\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`};const L={components:{AttachRichItem:T},props:{config:{type:Object,default:()=>{}},attachId:{type:String,required:true}},computed:{internalConfig(){return this.config}},template:`\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`};const z={user:"user",chat:"chat",bot:"bot"};const S={name:"AttachUserItem",directives:{lazyload:c.lazyload},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config},name(){return this.internalConfig.name},avatar(){return this.internalConfig.avatar},avatarType(){return this.internalConfig.avatarType},link(){return this.internalConfig.link},avatarTypeClass(){if(this.avatar){return""}let t=z.user;if(this.avatarType===z.chat){t=z.chat}else if(this.avatarType===z.bot){t=z.bot}return[`--${t}`,"base"]}},template:`\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`};const B={name:"AttachUser",components:{AttachUserItem:S},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config}},template:`\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`};const M={[l.AttachType.Delimiter]:o,[l.AttachType.File]:d,[l.AttachType.Grid]:v,[l.AttachType.Html]:p,[l.AttachType.Image]:_,[l.AttachType.Link]:C,[l.AttachType.Message]:y,[l.AttachType.Rich]:L,[l.AttachType.User]:B};const F={name:"MessengerAttach",components:{AttachDelimiter:o,AttachFile:d,AttachGrid:v,AttachHtml:p,AttachImage:_,AttachLink:C,AttachMessage:y,AttachRich:L,AttachUser:B},props:{config:{type:Object,default:()=>{}}},computed:{internalConfig(){return this.config},blocks(){return this.internalConfig.blocks},colorToken(){const{colorToken:t=l.ColorToken.base}=this.internalConfig;return t}},methods:{getComponentForBlock(t){const[e]=Object.keys(t);if(!M[e]){return""}return M[e]}},template:`\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`};t.Attach=F})(this.BX.Messenger.v2.Component.Elements=this.BX.Messenger.v2.Component.Elements||{},BX,BX,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX,BX.Messenger.v2.Application,BX.Messenger.v2.Const,BX.Vue3.Directives); //# sourceMappingURL=attach.bundle.map.js