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/textarea/dist/ |
Upload File : |
this.BX=this.BX||{};this.BX.Messenger=this.BX.Messenger||{};this.BX.Messenger.v2=this.BX.Messenger.v2||{};(function(t,e,s,o,i,n,l,a,r,m,b,d,c,y,p,h,u,g,v,f,I,M,x,_,S,T,E,P,w,C,A,L,F,k,B,H,R,D,O,U,$,N,X,j,z,q,K,G,W,Q){"use strict";const V=new Set(["@","+"]);const Y=10;const Z=10;const J=Object.freeze({showMentionPopup:"showMentionPopup",hideMentionPopup:"hideMentionPopup",insertMention:"insertMention"});var tt=babelHelpers.classPrivateFieldLooseKey("mentionPopupOpened");var et=babelHelpers.classPrivateFieldLooseKey("mentionSymbol");var st=babelHelpers.classPrivateFieldLooseKey("textarea");var ot=babelHelpers.classPrivateFieldLooseKey("mentionReplacementMap");var it=babelHelpers.classPrivateFieldLooseKey("onClosedMentionKeyDown");var nt=babelHelpers.classPrivateFieldLooseKey("onOpenedMentionKeyDown");var lt=babelHelpers.classPrivateFieldLooseKey("checkMentionSymbol");var at=babelHelpers.classPrivateFieldLooseKey("isValidQuery");var rt=babelHelpers.classPrivateFieldLooseKey("isCloseMentionCombination");var mt=babelHelpers.classPrivateFieldLooseKey("isInsertMentionCombination");var bt=babelHelpers.classPrivateFieldLooseKey("isOpenMentionCombination");var dt=babelHelpers.classPrivateFieldLooseKey("sendHidePopupEvent");var ct=babelHelpers.classPrivateFieldLooseKey("sendInsertMentionEvent");var yt=babelHelpers.classPrivateFieldLooseKey("getTextBeforeCursor");var pt=babelHelpers.classPrivateFieldLooseKey("getMentionSymbolIndex");var ht=babelHelpers.classPrivateFieldLooseKey("getQuery");var ut=babelHelpers.classPrivateFieldLooseKey("getQueryWithoutMentionSymbol");var gt=babelHelpers.classPrivateFieldLooseKey("isNavigateCombination");var vt=babelHelpers.classPrivateFieldLooseKey("isValidFirstSymbol");var ft=babelHelpers.classPrivateFieldLooseKey("hasWhitespace");var It=babelHelpers.classPrivateFieldLooseKey("hasNumber");var Mt=babelHelpers.classPrivateFieldLooseKey("hasSpecialSymbol");class xt extends A.EventEmitter{constructor(t){super();Object.defineProperty(this,Mt,{value:$t});Object.defineProperty(this,It,{value:Ut});Object.defineProperty(this,ft,{value:Ot});Object.defineProperty(this,vt,{value:Dt});Object.defineProperty(this,gt,{value:Rt});Object.defineProperty(this,ut,{value:Ht});Object.defineProperty(this,ht,{value:Bt});Object.defineProperty(this,pt,{value:kt});Object.defineProperty(this,yt,{value:Ft});Object.defineProperty(this,ct,{value:Lt});Object.defineProperty(this,dt,{value:At});Object.defineProperty(this,bt,{value:Ct});Object.defineProperty(this,mt,{value:wt});Object.defineProperty(this,rt,{value:Pt});Object.defineProperty(this,at,{value:Et});Object.defineProperty(this,lt,{value:Tt});Object.defineProperty(this,nt,{value:St});Object.defineProperty(this,it,{value:_t});Object.defineProperty(this,tt,{writable:true,value:false});Object.defineProperty(this,et,{writable:true,value:""});Object.defineProperty(this,st,{writable:true,value:void 0});Object.defineProperty(this,ot,{writable:true,value:{}});this.setEventNamespace(xt.eventNamespace);babelHelpers.classPrivateFieldLooseBase(this,st)[st]=t}onActiveMentionKeyDown(t){if(!babelHelpers.classPrivateFieldLooseBase(this,tt)[tt]){return}babelHelpers.classPrivateFieldLooseBase(this,nt)[nt](t)}onKeyDown(t){babelHelpers.classPrivateFieldLooseBase(this,it)[it](t)}onMentionPopupClose(){babelHelpers.classPrivateFieldLooseBase(this,tt)[tt]=false}setMentionReplacements(t){babelHelpers.classPrivateFieldLooseBase(this,ot)[ot]=t}addMentionReplacement(t,e){babelHelpers.classPrivateFieldLooseBase(this,ot)[ot][t]=e;return babelHelpers.classPrivateFieldLooseBase(this,ot)[ot]}getMentionSymbol(){return babelHelpers.classPrivateFieldLooseBase(this,et)[et]}replaceMentions(t){let e=t;Object.entries(babelHelpers.classPrivateFieldLooseBase(this,ot)[ot]).forEach((([t,s])=>{e=e.replaceAll(t,s)}));return e}extractMentions(t){const e="chat";const s={};const o=/\[(?<type>user|chat)=(?<dialogId>\w+)](?<mentionText>.*?)\[\/(user|chat)]/gi;const i=t.matchAll(o);for(const t of i){const{mentionText:o}=t.groups;let{type:i,dialogId:n}=t.groups;i=i.toLowerCase();if(i===e){n=`${i}${n}`}s[o]=O.Utils.text.getMentionBbCode(n,o)}return s}clearMentionSymbol(){babelHelpers.classPrivateFieldLooseBase(this,et)[et]=""}clearMentionReplacements(){babelHelpers.classPrivateFieldLooseBase(this,ot)[ot]={}}}function _t(t){if(!babelHelpers.classPrivateFieldLooseBase(this,bt)[bt](t)){return}setTimeout((()=>{if(!babelHelpers.classPrivateFieldLooseBase(this,lt)[lt]()){return}babelHelpers.classPrivateFieldLooseBase(this,tt)[tt]=true;this.emit(J.showMentionPopup,{mentionQuery:""})}),Y)}function St(t){if(babelHelpers.classPrivateFieldLooseBase(this,rt)[rt](t)){babelHelpers.classPrivateFieldLooseBase(this,dt)[dt]();return}if(babelHelpers.classPrivateFieldLooseBase(this,gt)[gt](t)){t.preventDefault();return}if(babelHelpers.classPrivateFieldLooseBase(this,mt)[mt](t)){t.preventDefault();babelHelpers.classPrivateFieldLooseBase(this,ct)[ct](t);return}setTimeout((()=>{if(!babelHelpers.classPrivateFieldLooseBase(this,at)[at]()){babelHelpers.classPrivateFieldLooseBase(this,dt)[dt]();return}this.emit(J.showMentionPopup,{mentionQuery:babelHelpers.classPrivateFieldLooseBase(this,ut)[ut]()})}),Z)}function Tt(){const t=babelHelpers.classPrivateFieldLooseBase(this,st)[st].selectionEnd;babelHelpers.classPrivateFieldLooseBase(this,et)[et]=babelHelpers.classPrivateFieldLooseBase(this,st)[st].value.slice(t-1,t);if(!V.has(babelHelpers.classPrivateFieldLooseBase(this,et)[et])){return false}const e=babelHelpers.classPrivateFieldLooseBase(this,st)[st].value.slice(t-2,t-1);return e.length===0||babelHelpers.classPrivateFieldLooseBase(this,ft)[ft](e)}function Et(){const t=babelHelpers.classPrivateFieldLooseBase(this,ht)[ht]();if(t.length===0){return false}const e=babelHelpers.classPrivateFieldLooseBase(this,ut)[ut]().slice(0,1);if(e.length===0){return true}if(!babelHelpers.classPrivateFieldLooseBase(this,vt)[vt](e)){return false}return!babelHelpers.classPrivateFieldLooseBase(this,ft)[ft](e)}function Pt(t){return t.key==="Escape"}function wt(t){return t.key==="Enter"}function Ct(t){return t.key==="+"||t.key==="@"}function At(){babelHelpers.classPrivateFieldLooseBase(this,tt)[tt]=false;babelHelpers.classPrivateFieldLooseBase(this,et)[et]="";this.emit(J.hideMentionPopup)}function Lt(t){t.preventDefault();A.EventEmitter.emit(Q.EventType.mention.selectItem);babelHelpers.classPrivateFieldLooseBase(this,dt)[dt]()}function Ft(){return babelHelpers.classPrivateFieldLooseBase(this,st)[st].value.slice(0,Math.max(0,babelHelpers.classPrivateFieldLooseBase(this,st)[st].selectionEnd))}function kt(){const t=babelHelpers.classPrivateFieldLooseBase(this,yt)[yt]();return t.lastIndexOf(babelHelpers.classPrivateFieldLooseBase(this,et)[et])}function Bt(){const t=babelHelpers.classPrivateFieldLooseBase(this,yt)[yt]();const e=babelHelpers.classPrivateFieldLooseBase(this,pt)[pt]();if(e<0){return""}return t.slice(e,babelHelpers.classPrivateFieldLooseBase(this,st)[st].selectionEnd)}function Ht(){return babelHelpers.classPrivateFieldLooseBase(this,ht)[ht]().slice(1)}function Rt(t){return t.key==="ArrowUp"||t.key==="ArrowDown"}function Dt(t){return!(babelHelpers.classPrivateFieldLooseBase(this,It)[It](t)||babelHelpers.classPrivateFieldLooseBase(this,ft)[ft](t)||babelHelpers.classPrivateFieldLooseBase(this,Mt)[Mt](t))}function Ot(t){return/^\s/.test(t)}function Ut(t){return/\d$/.test(t)}function $t(t){const e=/[!"#$%&'()*+,./<>@\\^_|-]/;return e.test(t)}xt.eventNamespace="BX.Messenger.v2.Textarea.MentionManager";const Nt=15e3;const Xt=5e3;var jt=babelHelpers.classPrivateFieldLooseKey("dialogId");var zt=babelHelpers.classPrivateFieldLooseKey("statusTimerMap");var qt=babelHelpers.classPrivateFieldLooseKey("requestDelayMap");var Kt=babelHelpers.classPrivateFieldLooseKey("isActive");var Gt=babelHelpers.classPrivateFieldLooseKey("sendRequest");var Wt=babelHelpers.classPrivateFieldLooseKey("isSelfChat");class Qt{constructor(t){Object.defineProperty(this,Wt,{value:Zt});Object.defineProperty(this,Gt,{value:Yt});Object.defineProperty(this,Kt,{value:Vt});Object.defineProperty(this,jt,{writable:true,value:void 0});Object.defineProperty(this,zt,{writable:true,value:{}});Object.defineProperty(this,qt,{writable:true,value:{}});babelHelpers.classPrivateFieldLooseBase(this,jt)[jt]=t}startAction(t){if(babelHelpers.classPrivateFieldLooseBase(this,Kt)[Kt](t)||babelHelpers.classPrivateFieldLooseBase(this,Wt)[Wt]()){return}babelHelpers.classPrivateFieldLooseBase(this,zt)[zt][t]=setTimeout((()=>{delete babelHelpers.classPrivateFieldLooseBase(this,zt)[zt][t]}),Nt);babelHelpers.classPrivateFieldLooseBase(this,qt)[qt][t]=setTimeout((()=>{babelHelpers.classPrivateFieldLooseBase(this,Gt)[Gt](t)}),Xt)}stopAction(t){clearTimeout(babelHelpers.classPrivateFieldLooseBase(this,zt)[zt][t]);delete babelHelpers.classPrivateFieldLooseBase(this,zt)[zt][t];clearTimeout(babelHelpers.classPrivateFieldLooseBase(this,qt)[qt][t]);delete babelHelpers.classPrivateFieldLooseBase(this,qt)[qt][t]}}function Vt(t){return Boolean(babelHelpers.classPrivateFieldLooseBase(this,zt)[zt][t])}function Yt(t){const e={dialogId:babelHelpers.classPrivateFieldLooseBase(this,jt)[jt],type:t};c.runAction(Q.RestMethod.imV2ChatInputActionNotify,{data:e}).catch((([t])=>{console.error("InputSenderService: sendRequest error",t)}))}function Zt(){return Number(babelHelpers.classPrivateFieldLooseBase(this,jt)[jt])===U.Core.getUserId()}const Jt={up:"up",down:"down"};var te=babelHelpers.classPrivateFieldLooseKey("calculateNewMaxPoint");class ee extends A.EventEmitter{constructor(t={}){super();Object.defineProperty(this,te,{value:se});this.isDragging=false;const{direction:e,maxHeight:s,minHeight:o}=t;this.direction=e;this.maxHeight=s;this.minHeight=o;this.setEventNamespace(ee.eventNamespace)}onResizeStart(t,e){if(this.isDragging){return}this.isDragging=true;this.resizeCursorStartPoint=t.clientY;this.resizeHeightStartPoint=e;this.addResizeEvents()}onResizeContinue(t){if(!this.isDragging){return}this.resizeCursorControlPoint=t.clientY;const e=babelHelpers.classPrivateFieldLooseBase(this,te)[te]();const s=Math.max(e,this.minHeight);this.emit(ee.events.onHeightChange,{newHeight:s})}onResizeStop(){if(!this.isDragging){return}this.isDragging=false;this.removeResizeEvents();this.emit(ee.events.onResizeStop)}addResizeEvents(){this.onContinueDragHandler=this.onResizeContinue.bind(this);this.onStopDragHandler=this.onResizeStop.bind(this);document.addEventListener("mousemove",this.onContinueDragHandler);document.addEventListener("touchmove",this.onContinueDragHandler);document.addEventListener("touchend",this.onStopDragHandler);document.addEventListener("mouseup",this.onStopDragHandler);document.addEventListener("mouseleave",this.onStopDragHandler)}removeResizeEvents(){document.removeEventListener("mousemove",this.onContinueDragHandler);document.removeEventListener("touchmove",this.onContinueDragHandler);document.removeEventListener("touchend",this.onStopDragHandler);document.removeEventListener("mouseup",this.onStopDragHandler);document.removeEventListener("mouseleave",this.onStopDragHandler)}destroy(){this.removeResizeEvents()}}function se(){const t=this.direction===Jt.up?this.resizeCursorStartPoint-this.resizeCursorControlPoint:this.resizeCursorControlPoint-this.resizeCursorStartPoint;return Math.min(this.resizeHeightStartPoint+t,this.maxHeight)}ee.eventNamespace="BX.Messenger.v2.Textarea.ResizeManager";ee.events={onHeightChange:"onHeightChange",onResizeStop:"onResizeStop"};const oe={audioend:"audioend",audiostart:"audiostart",end:"end",error:"error",nomatch:"nomatch",result:"result",soundend:"soundend",soundstart:"soundstart",speechend:"speechend",speechstart:"speechstart",start:"start"};const ie="BX.Messenger.v2.CopilotAudioManager";var ne=babelHelpers.classPrivateFieldLooseKey("bindEvents");var le=babelHelpers.classPrivateFieldLooseKey("getRecognizedText");var ae=babelHelpers.classPrivateFieldLooseKey("getNewText");var re=babelHelpers.classPrivateFieldLooseKey("initSettings");class me extends A.EventEmitter{static isAvailable(){if(a.DesktopApi.isDesktop()){return a.DesktopApi.getApiVersion()>74}return Boolean(window.SpeechRecognition||window.webkitSpeechRecognition)}constructor(){super();Object.defineProperty(this,re,{value:ye});Object.defineProperty(this,ae,{value:ce});Object.defineProperty(this,le,{value:de});Object.defineProperty(this,ne,{value:be});this.recognizer=null;this.setEventNamespace(ie);this.recognizer=new(window.SpeechRecognition||window.webkitSpeechRecognition);babelHelpers.classPrivateFieldLooseBase(this,re)[re]();babelHelpers.classPrivateFieldLooseBase(this,ne)[ne]()}startRecognition(){this.recognizer.start()}stopRecognition(){this.recognizer.stop()}}function be(){N.Event.bind(this.recognizer,oe.start,(()=>{this.lastRecognizedText="";this.emit(me.events.recognitionStart)}));N.Event.bind(this.recognizer,oe.error,(t=>{this.emit(me.events.recognitionError,t.error);console.error("Copilot: AudioManager: error",t.error)}));N.Event.bind(this.recognizer,oe.end,(()=>{this.lastRecognizedText="";this.emit(me.events.recognitionEnd)}));N.Event.bind(this.recognizer,oe.result,(t=>{const e=babelHelpers.classPrivateFieldLooseBase(this,le)[le](t);const s=babelHelpers.classPrivateFieldLooseBase(this,ae)[ae](e);if(s!==""){this.emit(me.events.recognitionResult,s)}this.lastRecognizedText=e}))}function de(t){let e="";Object.values(t.results).forEach((t=>{if(t.isFinal){return}const[s]=t;const{transcript:o}=s;e+=o}));return e}function ce(t){let e="";const s=this.lastRecognizedText.length;if(t.length>s){e=t.slice(s)}return e}function ye(){this.recognizer.continuous=true;this.recognizer.interimResults=true}me.events={recognitionStart:"recognitionStart",recognitionError:"recognitionError",recognitionEnd:"recognitionEnd",recognitionResult:"recognitionResult"};const pe={name:"AudioInput",emits:["inputStart","inputResult"],data(){return{audioMode:false,audioUsed:false}},watch:{audioMode(t,e){if(e===false&&t===true){this.startAudio()}if(e===true&&t===false){this.stopAudio()}}},created(){A.EventEmitter.subscribe(Q.EventType.textarea.onAfterSendMessage,this.handleOnAfterSendMessage)},beforeUnmount(){A.EventEmitter.unsubscribe(Q.EventType.textarea.onAfterSendMessage,this.handleOnAfterSendMessage)},methods:{onClick(){if(this.audioMode){this.audioMode=false;return}this.audioMode=true},startAudio(){this.getAudioManager().startRecognition();this.bindAudioEvents()},stopAudio(){this.getAudioManager().stopRecognition();this.unbindAudioEvents()},bindAudioEvents(){this.getAudioManager().subscribe(me.events.recognitionResult,(t=>{const e=t.getData();this.$emit("inputResult",e);this.audioUsed=true}));this.getAudioManager().subscribe(me.events.recognitionStart,(()=>{this.$emit("inputStart")}));this.getAudioManager().subscribe(me.events.recognitionEnd,(()=>{this.audioMode=false}));this.getAudioManager().subscribe(me.events.recognitionError,(()=>{this.audioMode=false;I.Notifier.speech.onRecognitionError()}))},unbindAudioEvents(){this.getAudioManager().unsubscribeAll(me.events.recognitionResult);this.getAudioManager().unsubscribeAll(me.events.recognitionStart);this.getAudioManager().unsubscribeAll(me.events.recognitionEnd);this.getAudioManager().unsubscribeAll(me.events.recognitionError)},isAudioModeAvailable(){return me.isAvailable()},getAudioManager(){if(!this.audioManager){this.audioManager=new me}return this.audioManager},loc(t){return this.$Bitrix.Loc.getMessage(t)},handleOnAfterSendMessage(){if(this.audioUsed){g.Analytics.getInstance().copilot.onUseAudioInput();this.audioUsed=false}this.audioMode=false}},template:`\n\t\t<div\n\t\t\tv-if="isAudioModeAvailable()"\n\t\t\t@click="onClick"\n\t\t\tclass="bx-im-copilot-audio-input__container"\n\t\t\t:class="{'--active': audioMode}"\n\t\t></div>\n\t`};const he=[{id:1,code:"PEOPLE",showForWindows:true,emoji:[{symbol:"\ud83d\ude00"},{symbol:"\ud83d\ude03"},{symbol:"\ud83d\ude04"},{symbol:"\ud83d\ude01"},{symbol:"\ud83d\ude06"},{symbol:"\ud83d\ude05"},{symbol:"\ud83d\ude02"},{symbol:"\ud83e\udd23"},{symbol:"\ud83d\ude0a"},{symbol:"\ud83d\ude07"},{symbol:"\ud83d\ude42"},{symbol:"\ud83d\ude43"},{symbol:"\ud83d\ude09"},{symbol:"\ud83d\ude0c"},{symbol:"\ud83d\ude0d"},{symbol:"\ud83e\udd70"},{symbol:"\ud83d\ude18"},{symbol:"\ud83d\ude17"},{symbol:"\ud83d\ude19"},{symbol:"\ud83d\ude1a"},{symbol:"\ud83d\ude0b"},{symbol:"\ud83d\ude1b"},{symbol:"\ud83d\ude1d"},{symbol:"\ud83d\ude1c"},{symbol:"\ud83e\udd2a"},{symbol:"\ud83e\udd28"},{symbol:"\ud83e\uddd0"},{symbol:"\ud83e\udd13"},{symbol:"\ud83d\ude0e"},{symbol:"\ud83e\udd29"},{symbol:"\ud83e\udd73"},{symbol:"\ud83d\ude0f"},{symbol:"\ud83d\ude12"},{symbol:"\ud83d\ude1e"},{symbol:"\ud83d\ude14"},{symbol:"\ud83d\ude1f"},{symbol:"\ud83d\ude15"},{symbol:"\ud83d\ude41"},{symbol:"\ud83d\ude23"},{symbol:"\ud83d\ude2b"},{symbol:"\ud83d\ude29"},{symbol:"\ud83e\udd7a"},{symbol:"\ud83d\ude22"},{symbol:"\ud83d\ude2d"},{symbol:"\ud83d\ude24"},{symbol:"\ud83d\ude20"},{symbol:"\ud83d\ude21"},{symbol:"\ud83e\udd2c"},{symbol:"\ud83e\udd2f"},{symbol:"\ud83d\ude33"},{symbol:"\ud83e\udd75"},{symbol:"\ud83e\udd76"},{symbol:"\ud83d\ude31"},{symbol:"\ud83d\ude28"},{symbol:"\ud83d\ude30"},{symbol:"\ud83d\ude25"},{symbol:"\ud83d\ude13"},{symbol:"\ud83e\udd17"},{symbol:"\ud83e\udd14"},{symbol:"\ud83e\udd2d"},{symbol:"\ud83e\udd2b"},{symbol:"\ud83e\udd25"},{symbol:"\ud83d\ude36"},{symbol:"\ud83d\ude10"},{symbol:"\ud83d\ude11"},{symbol:"\ud83d\ude2c"},{symbol:"\ud83d\ude44"},{symbol:"\ud83d\ude2f"},{symbol:"\ud83d\ude26"},{symbol:"\ud83d\ude27"},{symbol:"\ud83d\ude2e"},{symbol:"\ud83d\ude32"},{symbol:"\ud83d\ude34"},{symbol:"\ud83e\udd24"},{symbol:"\ud83d\ude2a"},{symbol:"\ud83d\ude35"},{symbol:"\ud83e\udd10"},{symbol:"\ud83e\udd74"},{symbol:"\ud83e\udd22"},{symbol:"\ud83e\udd2e"},{symbol:"\ud83e\udd27"},{symbol:"\ud83d\ude37"},{symbol:"\ud83e\udd12"},{symbol:"\ud83e\udd15"},{symbol:"\ud83e\udd11"},{symbol:"\ud83e\udd20"},{symbol:"\ud83d\ude08"},{symbol:"\ud83d\udc7f"},{symbol:"\ud83d\udc79"},{symbol:"\ud83d\udc7a"},{symbol:"\ud83e\udd21"},{symbol:"\ud83d\udca9"},{symbol:"\ud83d\udc7b"},{symbol:"\u2620"},{symbol:"\ud83d\udc80"},{symbol:"\ud83d\udc7d"},{symbol:"\ud83d\udc7e"},{symbol:"\ud83e\udd16"},{symbol:"\ud83c\udf83"},{symbol:"\ud83d\ude3a"},{symbol:"\ud83d\ude38"},{symbol:"\ud83d\ude39"},{symbol:"\ud83d\ude3b"},{symbol:"\ud83d\ude3c"},{symbol:"\ud83d\ude3d"},{symbol:"\ud83d\ude40"},{symbol:"\ud83d\ude3f"},{symbol:"\ud83d\ude3e"},{symbol:"\ud83e\udd32"},{symbol:"\ud83d\udc50"},{symbol:"\ud83d\ude4c"},{symbol:"\ud83d\udc4f"},{symbol:"\ud83e\udd1d"},{symbol:"\ud83d\udc4d"},{symbol:"\ud83d\udc4e"},{symbol:"\ud83d\udc4a"},{symbol:"\u270a"},{symbol:"\ud83e\udd1b"},{symbol:"\ud83e\udd1c"},{symbol:"\ud83e\udd1e"},{symbol:"\u270c"},{symbol:"\ud83e\udd1f"},{symbol:"\ud83e\udd18"},{symbol:"\ud83d\udc4c"},{symbol:"\ud83d\udc48"},{symbol:"\ud83d\udc49"},{symbol:"\ud83d\udc46"},{symbol:"\ud83d\udc47"},{symbol:"\ud83e\udd1a"},{symbol:"\ud83d\udd90"},{symbol:"\ud83d\udd96"},{symbol:"\ud83d\udc4b"},{symbol:"\ud83e\udd19"},{symbol:"\ud83d\udcaa"},{symbol:"\ud83d\udd95"},{symbol:"\u270d"},{symbol:"\ud83d\ude4f"},{symbol:"\ud83e\uddb6"},{symbol:"\ud83e\uddb5"},{symbol:"\ud83d\udc84"},{symbol:"\ud83d\udc8b"},{symbol:"\ud83d\udc44"},{symbol:"\ud83e\uddb7"},{symbol:"\ud83d\udc45"},{symbol:"\ud83d\udc43"},{symbol:"\ud83d\udc63"},{symbol:"\ud83d\udc41"},{symbol:"\ud83d\udc40"},{symbol:"\ud83e\udde0"},{symbol:"\ud83d\udde3"},{symbol:"\ud83d\udc64"},{symbol:"\ud83d\udc65"},{symbol:"\ud83d\udc76"},{symbol:"\ud83d\udc67"},{symbol:"\ud83e\uddd2"},{symbol:"\ud83d\udc66"},{symbol:"\ud83d\udc69"},{symbol:"\ud83e\uddd1"},{symbol:"\ud83d\udc68"},{symbol:"\ud83d\udc71"},{symbol:"\ud83e\uddd4"},{symbol:"\ud83d\udc75"},{symbol:"\ud83e\uddd3"},{symbol:"\ud83d\udc74"},{symbol:"\ud83d\udc72"},{symbol:"\ud83d\udc73"},{symbol:"\ud83e\uddd5"},{symbol:"\ud83d\udc6e"},{symbol:"\ud83d\udc77"},{symbol:"\ud83d\udc82"},{symbol:"\ud83d\udd75"},{symbol:"\u2695"},{symbol:"\ud83c\udf3e"},{symbol:"\ud83c\udf73"},{symbol:"\ud83c\udf93"},{symbol:"\ud83c\udfa4"},{symbol:"\ud83c\udfeb"},{symbol:"\ud83c\udfed"},{symbol:"\ud83d\udcbb"},{symbol:"\ud83d\udcbc"},{symbol:"\ud83d\udc69"},{symbol:"\u2764"},{symbol:"\ud83d\udd27"},{symbol:"\ud83d\udd2c"},{symbol:"\ud83c\udfa8"},{symbol:"\ud83d\ude92"},{symbol:"\ud83d\ude80"},{symbol:"\ud83d\udc70"},{symbol:"\ud83e\udd35"},{symbol:"\ud83d\udc78"},{symbol:"\ud83e\udd34"},{symbol:"\ud83e\uddb8"},{symbol:"\ud83e\uddb9"},{symbol:"\ud83e\udd36"},{symbol:"\ud83c\udf85"},{symbol:"\ud83e\uddd9"},{symbol:"\ud83e\udddd"},{symbol:"\ud83e\udddb"},{symbol:"\ud83e\udddf"},{symbol:"\ud83e\uddde"},{symbol:"\ud83e\udddc"},{symbol:"\ud83e\uddda"},{symbol:"\ud83d\udc7c"},{symbol:"\ud83e\udd30"},{symbol:"\ud83e\udd31"},{symbol:"\ud83d\ude47"},{symbol:"\ud83d\udc81"},{symbol:"\ud83d\ude45"},{symbol:"\ud83d\ude46"},{symbol:"\ud83d\ude4b"},{symbol:"\ud83e\udd26"},{symbol:"\ud83e\udd37"},{symbol:"\ud83d\ude4e"},{symbol:"\ud83d\ude4d"},{symbol:"\ud83d\udc87"},{symbol:"\ud83d\udc86"},{symbol:"\ud83e\uddd6"},{symbol:"\ud83d\udc85"},{symbol:"\ud83e\udd33"},{symbol:"\ud83d\udc83"},{symbol:"\ud83d\udd7a"},{symbol:"\ud83d\udc6f"},{symbol:"\ud83d\udd74"},{symbol:"\ud83d\udeb6"},{symbol:"\ud83c\udfc3"},{symbol:"\ud83d\udc6b"},{symbol:"\ud83d\udc6d"},{symbol:"\ud83d\udc6c"},{symbol:"\ud83d\udc91"},{symbol:"\ud83d\udc8f"},{symbol:"\ud83d\udc6a"},{symbol:"\ud83e\uddf6"},{symbol:"\ud83e\uddf5"},{symbol:"\ud83e\udde5"},{symbol:"\ud83e\udd7c"},{symbol:"\ud83d\udc5a"},{symbol:"\ud83d\udc55"},{symbol:"\ud83d\udc56"},{symbol:"\ud83d\udc54"},{symbol:"\ud83d\udc57"},{symbol:"\ud83d\udc59"},{symbol:"\ud83d\udc58"},{symbol:"\ud83e\udd7f"},{symbol:"\ud83d\udc60"},{symbol:"\ud83d\udc61"},{symbol:"\ud83d\udc62"},{symbol:"\ud83d\udc5e"},{symbol:"\ud83d\udc5f"},{symbol:"\ud83e\udd7e"},{symbol:"\ud83e\udde6"},{symbol:"\ud83e\udde4"},{symbol:"\ud83e\udde3"},{symbol:"\ud83c\udfa9"},{symbol:"\ud83e\udde2"},{symbol:"\ud83d\udc52"},{symbol:"\ud83c\udf93"},{symbol:"\u26d1"},{symbol:"\ud83d\udc51"},{symbol:"\ud83d\udc8d"},{symbol:"\ud83d\udc5d"},{symbol:"\ud83d\udc5b"},{symbol:"\ud83d\udc5c"},{symbol:"\ud83d\udcbc"},{symbol:"\ud83c\udf92"},{symbol:"\ud83e\uddf3"},{symbol:"\ud83d\udc53"},{symbol:"\ud83d\udd76"},{symbol:"\ud83e\udd7d"},{symbol:"\ud83c\udf02"}]},{id:2,code:"ANIMALS",showForWindows:true,emoji:[{symbol:"\ud83d\udc36"},{symbol:"\ud83d\udc31"},{symbol:"\ud83d\udc2d"},{symbol:"\ud83d\udc39"},{symbol:"\ud83d\udc30"},{symbol:"\ud83e\udd8a"},{symbol:"\ud83d\udc3b"},{symbol:"\ud83d\udc3c"},{symbol:"\ud83d\udc28"},{symbol:"\ud83d\udc2f"},{symbol:"\ud83e\udd81"},{symbol:"\ud83d\udc2e"},{symbol:"\ud83d\udc37"},{symbol:"\ud83d\udc3d"},{symbol:"\ud83d\udc38"},{symbol:"\ud83d\udc35"},{symbol:"\ud83d\ude48"},{symbol:"\ud83d\ude49"},{symbol:"\ud83d\ude4a"},{symbol:"\ud83d\udc12"},{symbol:"\ud83d\udc14"},{symbol:"\ud83d\udc27"},{symbol:"\ud83d\udc26"},{symbol:"\ud83d\udc24"},{symbol:"\ud83d\udc23"},{symbol:"\ud83d\udc25"},{symbol:"\ud83e\udd86"},{symbol:"\ud83e\udd85"},{symbol:"\ud83e\udd89"},{symbol:"\ud83e\udd87"},{symbol:"\ud83d\udc3a"},{symbol:"\ud83d\udc17"},{symbol:"\ud83d\udc34"},{symbol:"\ud83e\udd84"},{symbol:"\ud83d\udc1d"},{symbol:"\ud83d\udc1b"},{symbol:"\ud83e\udd8b"},{symbol:"\ud83d\udc0c"},{symbol:"\ud83d\udc1e"},{symbol:"\ud83d\udc1c"},{symbol:"\ud83e\udd9f"},{symbol:"\ud83e\udd97"},{symbol:"\ud83d\udd77"},{symbol:"\ud83d\udd78"},{symbol:"\ud83e\udd82"},{symbol:"\ud83d\udc22"},{symbol:"\ud83d\udc0d"},{symbol:"\ud83e\udd8e"},{symbol:"\ud83e\udd96"},{symbol:"\ud83e\udd95"},{symbol:"\ud83d\udc19"},{symbol:"\ud83e\udd91"},{symbol:"\ud83e\udd90"},{symbol:"\ud83e\udd9e"},{symbol:"\ud83e\udd80"},{symbol:"\ud83d\udc21"},{symbol:"\ud83d\udc20"},{symbol:"\ud83d\udc1f"},{symbol:"\ud83d\udc2c"},{symbol:"\ud83d\udc33"},{symbol:"\ud83d\udc0b"},{symbol:"\ud83e\udd88"},{symbol:"\ud83d\udc0a"},{symbol:"\ud83d\udc05"},{symbol:"\ud83d\udc06"},{symbol:"\ud83e\udd93"},{symbol:"\ud83e\udd8d"},{symbol:"\ud83d\udc18"},{symbol:"\ud83e\udd9b"},{symbol:"\ud83e\udd8f"},{symbol:"\ud83d\udc2a"},{symbol:"\ud83d\udc2b"},{symbol:"\ud83e\udd92"},{symbol:"\ud83e\udd98"},{symbol:"\ud83d\udc03"},{symbol:"\ud83d\udc02"},{symbol:"\ud83d\udc04"},{symbol:"\ud83d\udc0e"},{symbol:"\ud83d\udc16"},{symbol:"\ud83d\udc0f"},{symbol:"\ud83d\udc11"},{symbol:"\ud83e\udd99"},{symbol:"\ud83d\udc10"},{symbol:"\ud83e\udd8c"},{symbol:"\ud83d\udc15"},{symbol:"\ud83d\udc29"},{symbol:"\ud83d\udc08"},{symbol:"\ud83d\udc13"},{symbol:"\ud83e\udd83"},{symbol:"\ud83e\udd9a"},{symbol:"\ud83e\udd9c"},{symbol:"\ud83e\udda2"},{symbol:"\ud83d\udd4a"},{symbol:"\ud83d\udc07"},{symbol:"\ud83e\udd9d"},{symbol:"\ud83e\udda1"},{symbol:"\ud83d\udc01"},{symbol:"\ud83d\udc00"},{symbol:"\ud83d\udc3f"},{symbol:"\ud83e\udd94"},{symbol:"\ud83d\udc3e"},{symbol:"\ud83d\udc09"},{symbol:"\ud83d\udc32"},{symbol:"\ud83c\udf35"},{symbol:"\ud83c\udf84"},{symbol:"\ud83c\udf32"},{symbol:"\ud83c\udf33"},{symbol:"\ud83c\udf34"},{symbol:"\ud83c\udf31"},{symbol:"\ud83c\udf3f"},{symbol:"\u2618"},{symbol:"\ud83c\udf40"},{symbol:"\ud83c\udf8d"},{symbol:"\ud83c\udf8b"},{symbol:"\ud83c\udf43"},{symbol:"\ud83c\udf42"},{symbol:"\ud83c\udf41"},{symbol:"\ud83c\udf44"},{symbol:"\ud83d\udc1a"},{symbol:"\ud83c\udf3e"},{symbol:"\ud83d\udc90"},{symbol:"\ud83c\udf37"},{symbol:"\ud83c\udf39"},{symbol:"\ud83e\udd40"},{symbol:"\ud83c\udf3a"},{symbol:"\ud83c\udf38"},{symbol:"\ud83c\udf3c"},{symbol:"\ud83c\udf3b"},{symbol:"\ud83c\udf1e"},{symbol:"\ud83c\udf1d"},{symbol:"\ud83c\udf1b"},{symbol:"\ud83c\udf1c"},{symbol:"\ud83c\udf1a"},{symbol:"\ud83c\udf15"},{symbol:"\ud83c\udf16"},{symbol:"\ud83c\udf17"},{symbol:"\ud83c\udf18"},{symbol:"\ud83c\udf11"},{symbol:"\ud83c\udf12"},{symbol:"\ud83c\udf13"},{symbol:"\ud83c\udf14"},{symbol:"\ud83c\udf19"},{symbol:"\ud83c\udf0e"},{symbol:"\ud83c\udf0d"},{symbol:"\ud83c\udf0f"},{symbol:"\ud83d\udcab"},{symbol:"\u2b50"},{symbol:"\ud83c\udf1f"},{symbol:"\u2728"},{symbol:"\u26a1"},{symbol:"\u2604"},{symbol:"\ud83d\udca5"},{symbol:"\ud83d\udd25"},{symbol:"\ud83c\udf2a"},{symbol:"\ud83c\udf08"},{symbol:"\u2600"},{symbol:"\ud83c\udf24"},{symbol:"\ud83c\udf25"},{symbol:"\ud83c\udf26"},{symbol:"\ud83c\udf27"},{symbol:"\ud83c\udf29"},{symbol:"\ud83c\udf28"},{symbol:"\u2744"},{symbol:"\u2603"},{symbol:"\u26c4"},{symbol:"\ud83c\udf2c"},{symbol:"\ud83d\udca8"},{symbol:"\ud83d\udca7"},{symbol:"\ud83d\udca6"},{symbol:"\u2614"},{symbol:"\u2602"},{symbol:"\ud83c\udf0a"},{symbol:"\ud83c\udf2b"}]},{id:3,code:"FOOD",showForWindows:true,emoji:[{symbol:"\ud83c\udf4f"},{symbol:"\ud83c\udf4e"},{symbol:"\ud83c\udf50"},{symbol:"\ud83c\udf4a"},{symbol:"\ud83c\udf4b"},{symbol:"\ud83c\udf4c"},{symbol:"\ud83c\udf49"},{symbol:"\ud83c\udf47"},{symbol:"\ud83c\udf53"},{symbol:"\ud83c\udf48"},{symbol:"\ud83c\udf52"},{symbol:"\ud83c\udf51"},{symbol:"\ud83e\udd6d"},{symbol:"\ud83c\udf4d"},{symbol:"\ud83e\udd65"},{symbol:"\ud83e\udd5d"},{symbol:"\ud83c\udf45"},{symbol:"\ud83c\udf46"},{symbol:"\ud83e\udd51"},{symbol:"\ud83e\udd66"},{symbol:"\ud83e\udd6c"},{symbol:"\ud83e\udd52"},{symbol:"\ud83c\udf36"},{symbol:"\ud83c\udf3d"},{symbol:"\ud83e\udd55"},{symbol:"\ud83e\udd54"},{symbol:"\ud83c\udf60"},{symbol:"\ud83e\udd50"},{symbol:"\ud83e\udd6f"},{symbol:"\ud83c\udf5e"},{symbol:"\ud83e\udd56"},{symbol:"\ud83e\udd68"},{symbol:"\ud83e\uddc0"},{symbol:"\ud83e\udd5a"},{symbol:"\ud83c\udf73"},{symbol:"\ud83e\udd5e"},{symbol:"\ud83e\udd53"},{symbol:"\ud83e\udd69"},{symbol:"\ud83c\udf57"},{symbol:"\ud83c\udf56"},{symbol:"\ud83e\uddb4"},{symbol:"\ud83c\udf2d"},{symbol:"\ud83c\udf54"},{symbol:"\ud83c\udf5f"},{symbol:"\ud83c\udf55"},{symbol:"\ud83e\udd6a"},{symbol:"\ud83e\udd59"},{symbol:"\ud83c\udf2e"},{symbol:"\ud83c\udf2f"},{symbol:"\ud83e\udd57"},{symbol:"\ud83e\udd58"},{symbol:"\ud83e\udd6b"},{symbol:"\ud83c\udf5d"},{symbol:"\ud83c\udf5c"},{symbol:"\ud83c\udf72"},{symbol:"\ud83c\udf5b"},{symbol:"\ud83c\udf63"},{symbol:"\ud83c\udf71"},{symbol:"\ud83e\udd5f"},{symbol:"\ud83c\udf64"},{symbol:"\ud83c\udf59"},{symbol:"\ud83c\udf5a"},{symbol:"\ud83c\udf58"},{symbol:"\ud83c\udf65"},{symbol:"\ud83e\udd60"},{symbol:"\ud83e\udd6e"},{symbol:"\ud83c\udf62"},{symbol:"\ud83c\udf61"},{symbol:"\ud83c\udf67"},{symbol:"\ud83c\udf68"},{symbol:"\ud83c\udf66"},{symbol:"\ud83e\udd67"},{symbol:"\ud83e\uddc1"},{symbol:"\ud83c\udf70"},{symbol:"\ud83c\udf82"},{symbol:"\ud83c\udf6e"},{symbol:"\ud83c\udf6d"},{symbol:"\ud83c\udf6c"},{symbol:"\ud83c\udf6b"},{symbol:"\ud83c\udf7f"},{symbol:"\ud83c\udf69"},{symbol:"\ud83c\udf6a"},{symbol:"\ud83c\udf30"},{symbol:"\ud83e\udd5c"},{symbol:"\ud83c\udf6f"},{symbol:"\ud83e\udd5b"},{symbol:"\ud83c\udf7c"},{symbol:"\u2615"},{symbol:"\ud83c\udf75"},{symbol:"\ud83e\udd64"},{symbol:"\ud83c\udf76"},{symbol:"\ud83c\udf7a"},{symbol:"\ud83c\udf7b"},{symbol:"\ud83e\udd42"},{symbol:"\ud83c\udf77"},{symbol:"\ud83e\udd43"},{symbol:"\ud83c\udf78"},{symbol:"\ud83c\udf79"},{symbol:"\ud83c\udf7e"},{symbol:"\ud83e\udd44"},{symbol:"\ud83c\udf74"},{symbol:"\ud83c\udf7d"},{symbol:"\ud83e\udd63"},{symbol:"\ud83e\udd61"},{symbol:"\ud83e\udd62"},{symbol:"\ud83e\uddc2"}]},{id:4,code:"HOBBY",showForWindows:true,emoji:[{symbol:"\u26bd"},{symbol:"\ud83c\udfc0"},{symbol:"\ud83c\udfc8"},{symbol:"\u26be"},{symbol:"\ud83e\udd4e"},{symbol:"\ud83c\udfbe"},{symbol:"\ud83c\udfd0"},{symbol:"\ud83c\udfc9"},{symbol:"\ud83e\udd4f"},{symbol:"\ud83c\udfb1"},{symbol:"\ud83c\udfd3"},{symbol:"\ud83c\udff8"},{symbol:"\ud83c\udfd2"},{symbol:"\ud83c\udfd1"},{symbol:"\ud83e\udd4d"},{symbol:"\ud83c\udfcf"},{symbol:"\ud83e\udd45"},{symbol:"\u26f3"},{symbol:"\ud83c\udff9"},{symbol:"\ud83c\udfa3"},{symbol:"\ud83e\udd4a"},{symbol:"\ud83e\udd4b"},{symbol:"\ud83c\udfbd"},{symbol:"\ud83d\udef9"},{symbol:"\ud83d\udef7"},{symbol:"\u26f8"},{symbol:"\ud83e\udd4c"},{symbol:"\ud83c\udfbf"},{symbol:"\u26f7"},{symbol:"\ud83c\udfc2"},{symbol:"\ud83c\udfcb"},{symbol:"\ud83e\udd3c"},{symbol:"\ud83e\udd38"},{symbol:"\u26f9"},{symbol:"\ud83e\udd3a"},{symbol:"\ud83e\udd3e"},{symbol:"\ud83c\udfcc"},{symbol:"\ud83c\udfc7"},{symbol:"\ud83e\uddd8"},{symbol:"\ud83c\udfc4"},{symbol:"\ud83c\udfca"},{symbol:"\ud83e\udd3d"},{symbol:"\ud83d\udea3"},{symbol:"\ud83e\uddd7"},{symbol:"\ud83d\udeb5"},{symbol:"\ud83d\udeb4"},{symbol:"\ud83c\udfc6"},{symbol:"\ud83e\udd47"},{symbol:"\ud83e\udd48"},{symbol:"\ud83e\udd49"},{symbol:"\ud83c\udfc5"},{symbol:"\ud83c\udf96"},{symbol:"\ud83c\udff5"},{symbol:"\ud83c\udf97"},{symbol:"\ud83c\udfab"},{symbol:"\ud83c\udf9f"},{symbol:"\ud83c\udfaa"},{symbol:"\ud83e\udd39"},{symbol:"\ud83c\udfad"},{symbol:"\ud83c\udfa8"},{symbol:"\ud83c\udfac"},{symbol:"\ud83c\udfa4"},{symbol:"\ud83c\udfa7"},{symbol:"\ud83c\udfbc"},{symbol:"\ud83c\udfb9"},{symbol:"\ud83e\udd41"},{symbol:"\ud83c\udfb7"},{symbol:"\ud83c\udfba"},{symbol:"\ud83c\udfb8"},{symbol:"\ud83c\udfbb"},{symbol:"\ud83c\udfb2"},{symbol:"\u265f"},{symbol:"\ud83c\udfaf"},{symbol:"\ud83c\udfb3"},{symbol:"\ud83c\udfae"},{symbol:"\ud83c\udfb0"},{symbol:"\ud83e\udde9"}]},{id:5,code:"TRAVEL",showForWindows:true,emoji:[{symbol:"\ud83d\ude97"},{symbol:"\ud83d\ude95"},{symbol:"\ud83d\ude99"},{symbol:"\ud83d\ude8c"},{symbol:"\ud83d\ude8e"},{symbol:"\ud83c\udfce"},{symbol:"\ud83d\ude93"},{symbol:"\ud83d\ude91"},{symbol:"\ud83d\ude92"},{symbol:"\ud83d\ude90"},{symbol:"\ud83d\ude9a"},{symbol:"\ud83d\ude9b"},{symbol:"\ud83d\ude9c"},{symbol:"\ud83d\udef4"},{symbol:"\ud83d\udeb2"},{symbol:"\ud83d\udef5"},{symbol:"\ud83c\udfcd"},{symbol:"\ud83d\udea8"},{symbol:"\ud83d\ude94"},{symbol:"\ud83d\ude8d"},{symbol:"\ud83d\ude98"},{symbol:"\ud83d\ude96"},{symbol:"\ud83d\udea1"},{symbol:"\ud83d\udea0"},{symbol:"\ud83d\ude9f"},{symbol:"\ud83d\ude83"},{symbol:"\ud83d\ude8b"},{symbol:"\ud83d\ude9e"},{symbol:"\ud83d\ude9d"},{symbol:"\ud83d\ude84"},{symbol:"\ud83d\ude85"},{symbol:"\ud83d\ude88"},{symbol:"\ud83d\ude82"},{symbol:"\ud83d\ude86"},{symbol:"\ud83d\ude87"},{symbol:"\ud83d\ude8a"},{symbol:"\ud83d\ude89"},{symbol:"\u2708"},{symbol:"\ud83d\udeeb"},{symbol:"\ud83d\udeec"},{symbol:"\ud83d\udee9"},{symbol:"\ud83d\udcba"},{symbol:"\ud83d\udef0"},{symbol:"\ud83d\ude80"},{symbol:"\ud83d\udef8"},{symbol:"\ud83d\ude81"},{symbol:"\ud83d\udef6"},{symbol:"\u26f5"},{symbol:"\ud83d\udea4"},{symbol:"\ud83d\udee5"},{symbol:"\ud83d\udef3"},{symbol:"\u26f4"},{symbol:"\ud83d\udea2"},{symbol:"\u2693"},{symbol:"\u26fd"},{symbol:"\ud83d\udea7"},{symbol:"\ud83d\udea6"},{symbol:"\ud83d\udea5"},{symbol:"\ud83d\ude8f"},{symbol:"\ud83d\uddfa"},{symbol:"\ud83d\uddff"},{symbol:"\ud83d\uddfd"},{symbol:"\ud83d\uddfc"},{symbol:"\ud83c\udff0"},{symbol:"\ud83c\udfef"},{symbol:"\ud83c\udfdf"},{symbol:"\ud83c\udfa1"},{symbol:"\ud83c\udfa2"},{symbol:"\ud83c\udfa0"},{symbol:"\u26f2"},{symbol:"\u26f1"},{symbol:"\ud83c\udfd6"},{symbol:"\ud83c\udfdd"},{symbol:"\ud83c\udfdc"},{symbol:"\ud83c\udf0b"},{symbol:"\u26f0"},{symbol:"\ud83c\udfd4"},{symbol:"\ud83d\uddfb"},{symbol:"\ud83c\udfd5"},{symbol:"\u26fa"},{symbol:"\ud83c\udfe0"},{symbol:"\ud83c\udfe1"},{symbol:"\ud83c\udfd8"},{symbol:"\ud83c\udfda"},{symbol:"\ud83c\udfd7"},{symbol:"\ud83c\udfed"},{symbol:"\ud83c\udfe2"},{symbol:"\ud83c\udfec"},{symbol:"\ud83c\udfe3"},{symbol:"\ud83c\udfe4"},{symbol:"\ud83c\udfe5"},{symbol:"\ud83c\udfe6"},{symbol:"\ud83c\udfe8"},{symbol:"\ud83c\udfea"},{symbol:"\ud83c\udfeb"},{symbol:"\ud83c\udfe9"},{symbol:"\ud83d\udc92"},{symbol:"\ud83c\udfdb"},{symbol:"\u26ea"},{symbol:"\ud83d\udd4c"},{symbol:"\ud83d\udd4d"},{symbol:"\ud83d\udd4b"},{symbol:"\u26e9"},{symbol:"\ud83d\udee4"},{symbol:"\ud83d\udee3"},{symbol:"\ud83d\uddfe"},{symbol:"\ud83c\udf91"},{symbol:"\ud83c\udfde"},{symbol:"\ud83c\udf05"},{symbol:"\ud83c\udf04"},{symbol:"\ud83c\udf20"},{symbol:"\ud83c\udf87"},{symbol:"\ud83c\udf86"},{symbol:"\ud83c\udf07"},{symbol:"\ud83c\udf06"},{symbol:"\ud83c\udfd9"},{symbol:"\ud83c\udf03"},{symbol:"\ud83c\udf0c"},{symbol:"\ud83c\udf09"},{symbol:"\ud83c\udf01"}]},{id:6,code:"OBJECTS",showForWindows:true,emoji:[{symbol:"\u231a"},{symbol:"\ud83d\udcf1"},{symbol:"\ud83d\udcf2"},{symbol:"\ud83d\udcbb"},{symbol:"\u2328"},{symbol:"\ud83d\udda5"},{symbol:"\ud83d\udda8"},{symbol:"\ud83d\uddb1"},{symbol:"\ud83d\uddb2"},{symbol:"\ud83d\udd79"},{symbol:"\ud83d\udddc"},{symbol:"\ud83d\udcbd"},{symbol:"\ud83d\udcbe"},{symbol:"\ud83d\udcbf"},{symbol:"\ud83d\udcc0"},{symbol:"\ud83d\udcfc"},{symbol:"\ud83d\udcf7"},{symbol:"\ud83d\udcf8"},{symbol:"\ud83d\udcf9"},{symbol:"\ud83c\udfa5"},{symbol:"\ud83d\udcfd"},{symbol:"\ud83c\udf9e"},{symbol:"\ud83d\udcde"},{symbol:"\u260e"},{symbol:"\ud83d\udcdf"},{symbol:"\ud83d\udce0"},{symbol:"\ud83d\udcfa"},{symbol:"\ud83d\udcfb"},{symbol:"\ud83c\udf99"},{symbol:"\ud83c\udf9a"},{symbol:"\ud83c\udf9b"},{symbol:"\ud83e\udded"},{symbol:"\u23f1"},{symbol:"\u23f2"},{symbol:"\u23f0"},{symbol:"\ud83d\udd70"},{symbol:"\u231b"},{symbol:"\u23f3"},{symbol:"\ud83d\udce1"},{symbol:"\ud83d\udd0b"},{symbol:"\ud83d\udd0c"},{symbol:"\ud83d\udca1"},{symbol:"\ud83d\udd26"},{symbol:"\ud83d\udd6f"},{symbol:"\ud83e\uddef"},{symbol:"\ud83d\udee2"},{symbol:"\ud83d\udcb8"},{symbol:"\ud83d\udcb5"},{symbol:"\ud83d\udcb4"},{symbol:"\ud83d\udcb6"},{symbol:"\ud83d\udcb7"},{symbol:"\ud83d\udcb0"},{symbol:"\ud83d\udcb3"},{symbol:"\ud83d\udc8e"},{symbol:"\u2696"},{symbol:"\ud83e\uddf0"},{symbol:"\ud83d\udd27"},{symbol:"\ud83d\udd28"},{symbol:"\u2692"},{symbol:"\ud83d\udee0"},{symbol:"\u26cf"},{symbol:"\ud83d\udd29"},{symbol:"\u2699"},{symbol:"\ud83e\uddf1"},{symbol:"\u26d3"},{symbol:"\ud83e\uddf2"},{symbol:"\ud83d\udd2b"},{symbol:"\ud83d\udca3"},{symbol:"\ud83e\udde8"},{symbol:"\ud83d\udd2a"},{symbol:"\ud83d\udde1"},{symbol:"\u2694"},{symbol:"\ud83d\udee1"},{symbol:"\ud83d\udeac"},{symbol:"\u26b0"},{symbol:"\u26b1"},{symbol:"\ud83c\udffa"},{symbol:"\ud83d\udd2e"},{symbol:"\ud83d\udcff"},{symbol:"\ud83e\uddff"},{symbol:"\ud83d\udc88"},{symbol:"\u2697"},{symbol:"\ud83d\udd2d"},{symbol:"\ud83d\udd2c"},{symbol:"\ud83d\udd73"},{symbol:"\ud83d\udc8a"},{symbol:"\ud83d\udc89"},{symbol:"\ud83e\uddec"},{symbol:"\ud83e\udda0"},{symbol:"\ud83e\uddeb"},{symbol:"\ud83e\uddea"},{symbol:"\ud83c\udf21"},{symbol:"\ud83e\uddf9"},{symbol:"\ud83e\uddfa"},{symbol:"\ud83e\uddfb"},{symbol:"\ud83d\udebd"},{symbol:"\ud83d\udeb0"},{symbol:"\ud83d\udebf"},{symbol:"\ud83d\udec1"},{symbol:"\ud83d\udec0"},{symbol:"\ud83e\uddfc"},{symbol:"\ud83e\uddfd"},{symbol:"\ud83e\uddf4"},{symbol:"\ud83d\udece"},{symbol:"\ud83d\udd11"},{symbol:"\ud83d\udddd"},{symbol:"\ud83d\udeaa"},{symbol:"\ud83d\udecb"},{symbol:"\ud83d\udecf"},{symbol:"\ud83d\udecc"},{symbol:"\ud83e\uddf8"},{symbol:"\ud83d\uddbc"},{symbol:"\ud83d\udecd"},{symbol:"\ud83d\uded2"},{symbol:"\ud83c\udf81"},{symbol:"\ud83c\udf88"},{symbol:"\ud83c\udf8f"},{symbol:"\ud83c\udf80"},{symbol:"\ud83c\udf8a"},{symbol:"\ud83c\udf89"},{symbol:"\ud83c\udf8e"},{symbol:"\ud83c\udfee"},{symbol:"\ud83c\udf90"},{symbol:"\ud83e\udde7"},{symbol:"\u2709"},{symbol:"\ud83d\udce9"},{symbol:"\ud83d\udce8"},{symbol:"\ud83d\udce7"},{symbol:"\ud83d\udc8c"},{symbol:"\ud83d\udce5"},{symbol:"\ud83d\udce4"},{symbol:"\ud83d\udce6"},{symbol:"\ud83c\udff7"},{symbol:"\ud83d\udcea"},{symbol:"\ud83d\udceb"},{symbol:"\ud83d\udcec"},{symbol:"\ud83d\udced"},{symbol:"\ud83d\udcee"},{symbol:"\ud83d\udcef"},{symbol:"\ud83d\udcdc"},{symbol:"\ud83d\udcc3"},{symbol:"\ud83d\udcc4"},{symbol:"\ud83d\udcd1"},{symbol:"\ud83e\uddfe"},{symbol:"\ud83d\udcca"},{symbol:"\ud83d\udcc8"},{symbol:"\ud83d\udcc9"},{symbol:"\ud83d\uddd2"},{symbol:"\ud83d\uddd3"},{symbol:"\ud83d\udcc6"},{symbol:"\ud83d\udcc5"},{symbol:"\ud83d\uddd1"},{symbol:"\ud83d\udcc7"},{symbol:"\ud83d\uddc3"},{symbol:"\ud83d\uddf3"},{symbol:"\ud83d\uddc4"},{symbol:"\ud83d\udccb"},{symbol:"\ud83d\udcc1"},{symbol:"\ud83d\udcc2"},{symbol:"\ud83d\uddc2"},{symbol:"\ud83d\uddde"},{symbol:"\ud83d\udcf0"},{symbol:"\ud83d\udcd3"},{symbol:"\ud83d\udcd4"},{symbol:"\ud83d\udcd2"},{symbol:"\ud83d\udcd5"},{symbol:"\ud83d\udcd7"},{symbol:"\ud83d\udcd8"},{symbol:"\ud83d\udcd9"},{symbol:"\ud83d\udcda"},{symbol:"\ud83d\udcd6"},{symbol:"\ud83d\udd16"},{symbol:"\ud83e\uddf7"},{symbol:"\ud83d\udd17"},{symbol:"\ud83d\udcce"},{symbol:"\ud83d\udd87"},{symbol:"\ud83d\udcd0"},{symbol:"\ud83d\udccf"},{symbol:"\ud83d\udccc"},{symbol:"\ud83d\udccd"},{symbol:"\u2702"},{symbol:"\ud83d\udd8a"},{symbol:"\ud83d\udd8b"},{symbol:"\u2712"},{symbol:"\ud83d\udd8c"},{symbol:"\ud83d\udd8d"},{symbol:"\ud83d\udcdd"},{symbol:"\u270f"},{symbol:"\ud83d\udd0d"},{symbol:"\ud83d\udd0e"},{symbol:"\ud83d\udd0f"},{symbol:"\ud83d\udd10"},{symbol:"\ud83d\udd12"},{symbol:"\ud83d\udd13"}]},{id:7,code:"SYMBOLS",showForWindows:true,emoji:[{symbol:"\u2764"},{symbol:"\ud83e\udde1"},{symbol:"\ud83d\udc9b"},{symbol:"\ud83d\udc9a"},{symbol:"\ud83d\udc99"},{symbol:"\ud83d\udc9c"},{symbol:"\ud83d\udda4"},{symbol:"\ud83d\udc94"},{symbol:"\u2763"},{symbol:"\ud83d\udc95"},{symbol:"\ud83d\udc9e"},{symbol:"\ud83d\udc93"},{symbol:"\ud83d\udc97"},{symbol:"\ud83d\udc96"},{symbol:"\ud83d\udc98"},{symbol:"\ud83d\udc9d"},{symbol:"\ud83d\udc9f"},{symbol:"\u262e"},{symbol:"\u271d"},{symbol:"\u262a"},{symbol:"\ud83d\udd49"},{symbol:"\u2638"},{symbol:"\u2721"},{symbol:"\ud83d\udd2f"},{symbol:"\ud83d\udd4e"},{symbol:"\u262f"},{symbol:"\u2626"},{symbol:"\ud83d\uded0"},{symbol:"\u26ce"},{symbol:"\u2648"},{symbol:"\u2649"},{symbol:"\u264a"},{symbol:"\u264b"},{symbol:"\u264c"},{symbol:"\u264d"},{symbol:"\u264e"},{symbol:"\u264f"},{symbol:"\u2650"},{symbol:"\u2651"},{symbol:"\u2652"},{symbol:"\u2653"},{symbol:"\ud83c\udd94"},{symbol:"\u269b"},{symbol:"\ud83c\ude51"},{symbol:"\u2622"},{symbol:"\u2623"},{symbol:"\ud83d\udcf4"},{symbol:"\ud83d\udcf3"},{symbol:"\ud83c\ude36"},{symbol:"\ud83c\ude1a"},{symbol:"\ud83c\ude38"},{symbol:"\ud83c\ude3a"},{symbol:"\ud83c\ude37"},{symbol:"\u2734"},{symbol:"\ud83c\udd9a"},{symbol:"\ud83d\udcae"},{symbol:"\ud83c\ude50"},{symbol:"\u3299"},{symbol:"\u3297"},{symbol:"\ud83c\ude34"},{symbol:"\ud83c\ude35"},{symbol:"\ud83c\ude39"},{symbol:"\ud83c\ude32"},{symbol:"\ud83c\udd70"},{symbol:"\ud83c\udd71"},{symbol:"\ud83c\udd8e"},{symbol:"\ud83c\udd91"},{symbol:"\ud83c\udd7e"},{symbol:"\ud83c\udd98"},{symbol:"\u274c"},{symbol:"\u2b55"},{symbol:"\ud83d\uded1"},{symbol:"\u26d4"},{symbol:"\ud83d\udcdb"},{symbol:"\ud83d\udeab"},{symbol:"\ud83d\udcaf"},{symbol:"\ud83d\udca2"},{symbol:"\u2668"},{symbol:"\ud83d\udeb7"},{symbol:"\ud83d\udeaf"},{symbol:"\ud83d\udeb3"},{symbol:"\ud83d\udeb1"},{symbol:"\ud83d\udd1e"},{symbol:"\ud83d\udcf5"},{symbol:"\ud83d\udead"},{symbol:"\u2757"},{symbol:"\u2755"},{symbol:"\u2753"},{symbol:"\u2754"},{symbol:"\u203c"},{symbol:"\u2049"},{symbol:"\ud83d\udd05"},{symbol:"\ud83d\udd06"},{symbol:"\u303d"},{symbol:"\u26a0"},{symbol:"\ud83d\udeb8"},{symbol:"\ud83d\udd31"},{symbol:"\u269c"},{symbol:"\ud83d\udd30"},{symbol:"\u267b"},{symbol:"\u2705"},{symbol:"\ud83c\ude2f"},{symbol:"\ud83d\udcb9"},{symbol:"\u2747"},{symbol:"\u2733"},{symbol:"\u274e"},{symbol:"\ud83c\udf10"},{symbol:"\ud83d\udca0"},{symbol:"\u24c2"},{symbol:"\ud83c\udf00"},{symbol:"\ud83d\udca4"},{symbol:"\ud83c\udfe7"},{symbol:"\ud83d\udebe"},{symbol:"\u267f"},{symbol:"\ud83c\udd7f"},{symbol:"\ud83c\ude33"},{symbol:"\ud83c\ude02"},{symbol:"\ud83d\udec2"},{symbol:"\ud83d\udec3"},{symbol:"\ud83d\udec4"},{symbol:"\ud83d\udec5"},{symbol:"\ud83d\udeb9"},{symbol:"\ud83d\udeba"},{symbol:"\ud83d\udebc"},{symbol:"\ud83d\udebb"},{symbol:"\ud83d\udeae"},{symbol:"\ud83c\udfa6"},{symbol:"\ud83d\udcf6"},{symbol:"\ud83c\ude01"},{symbol:"\ud83d\udd23"},{symbol:"\u2139"},{symbol:"\ud83d\udd24"},{symbol:"\ud83d\udd21"},{symbol:"\ud83d\udd20"},{symbol:"\ud83c\udd96"},{symbol:"\ud83c\udd97"},{symbol:"\ud83c\udd99"},{symbol:"\ud83c\udd92"},{symbol:"\ud83c\udd95"},{symbol:"\ud83c\udd93"},{symbol:"0"},{symbol:"1"},{symbol:"2"},{symbol:"3"},{symbol:"4"},{symbol:"5"},{symbol:"6"},{symbol:"7"},{symbol:"8"},{symbol:"9"},{symbol:"\ud83d\udd1f"},{symbol:"\ud83d\udd22"},{symbol:"#"},{symbol:"*"},{symbol:"\u23cf"},{symbol:"\u25b6"},{symbol:"\u23f8"},{symbol:"\u23ef"},{symbol:"\u23f9"},{symbol:"\u23fa"},{symbol:"\u23ed"},{symbol:"\u23ee"},{symbol:"\u23e9"},{symbol:"\u23ea"},{symbol:"\u23eb"},{symbol:"\u23ec"},{symbol:"\u25c0"},{symbol:"\ud83d\udd3c"},{symbol:"\ud83d\udd3d"},{symbol:"\u27a1"},{symbol:"\u2b05"},{symbol:"\u2b06"},{symbol:"\u2b07"},{symbol:"\u2197"},{symbol:"\u2198"},{symbol:"\u2199"},{symbol:"\u2196"},{symbol:"\u2195"},{symbol:"\u2194"},{symbol:"\u21aa"},{symbol:"\u21a9"},{symbol:"\u2934"},{symbol:"\u2935"},{symbol:"\ud83d\udd00"},{symbol:"\ud83d\udd01"},{symbol:"\ud83d\udd02"},{symbol:"\ud83d\udd04"},{symbol:"\ud83d\udd03"},{symbol:"\ud83c\udfb5"},{symbol:"\ud83c\udfb6"},{symbol:"\u2795"},{symbol:"\u2796"},{symbol:"\u2797"},{symbol:"\u2716"},{symbol:"\u267e"},{symbol:"\ud83d\udcb2"},{symbol:"\ud83d\udcb1"},{symbol:"\u2122"},{symbol:"\xa9"},{symbol:"\xae"},{symbol:"\ud83d\udc41"},{symbol:"\ud83d\udde8"},{symbol:"\ud83d\udd1a"},{symbol:"\ud83d\udd19"},{symbol:"\ud83d\udd1b"},{symbol:"\ud83d\udd1d"},{symbol:"\ud83d\udd1c"},{symbol:"\u3030"},{symbol:"\u27b0"},{symbol:"\u27bf"},{symbol:"\u2714"},{symbol:"\u2611"},{symbol:"\ud83d\udd18"},{symbol:"\u26aa"},{symbol:"\u26ab"},{symbol:"\ud83d\udd34"},{symbol:"\ud83d\udd35"},{symbol:"\ud83d\udd3a"},{symbol:"\ud83d\udd3b"},{symbol:"\ud83d\udd38"},{symbol:"\ud83d\udd39"},{symbol:"\ud83d\udd36"},{symbol:"\ud83d\udd37"},{symbol:"\ud83d\udd33"},{symbol:"\ud83d\udd32"},{symbol:"\u25aa"},{symbol:"\u25ab"},{symbol:"\u25fe"},{symbol:"\u25fd"},{symbol:"\u25fc"},{symbol:"\u25fb"},{symbol:"\u2b1b"},{symbol:"\u2b1c"},{symbol:"\ud83d\udd08"},{symbol:"\ud83d\udd07"},{symbol:"\ud83d\udd09"},{symbol:"\ud83d\udd0a"},{symbol:"\ud83d\udd14"},{symbol:"\ud83d\udd15"},{symbol:"\ud83d\udce3"},{symbol:"\ud83d\udce2"},{symbol:"\ud83d\udcac"},{symbol:"\ud83d\udcad"},{symbol:"\ud83d\uddef"},{symbol:"\u2660"},{symbol:"\u2663"},{symbol:"\u2665"},{symbol:"\u2666"},{symbol:"\ud83c\udccf"},{symbol:"\ud83c\udfb4"},{symbol:"\ud83c\udc04"},{symbol:"\ud83d\udd50"},{symbol:"\ud83d\udd51"},{symbol:"\ud83d\udd52"},{symbol:"\ud83d\udd53"},{symbol:"\ud83d\udd54"},{symbol:"\ud83d\udd55"},{symbol:"\ud83d\udd56"},{symbol:"\ud83d\udd57"},{symbol:"\ud83d\udd58"},{symbol:"\ud83d\udd59"},{symbol:"\ud83d\udd5a"},{symbol:"\ud83d\udd5b"},{symbol:"\ud83d\udd5c"},{symbol:"\ud83d\udd5d"},{symbol:"\ud83d\udd5e"},{symbol:"\ud83d\udd5f"},{symbol:"\ud83d\udd60"},{symbol:"\ud83d\udd61"},{symbol:"\ud83d\udd62"},{symbol:"\ud83d\udd63"},{symbol:"\ud83d\udd64"},{symbol:"\ud83d\udd65"},{symbol:"\ud83d\udd66"},{symbol:"\ud83d\udd67"}]},{id:8,code:"FLAGS",showForWindows:false,emoji:[{symbol:"\ud83c\udff3"},{symbol:"\ud83c\udff4"},{symbol:"\ud83c\udfc1"},{symbol:"\ud83d\udea9"},{symbol:"\ud83c\udff3\ufe0f\u200d\ud83c\udf08"},{symbol:"\ud83c\uddfa\ud83c\uddf3"},{symbol:"\ud83c\udde6\ud83c\uddeb"},{symbol:"\ud83c\udde6\ud83c\uddfd"},{symbol:"\ud83c\udde6\ud83c\uddf1"},{symbol:"\ud83c\udde9\ud83c\uddff"},{symbol:"\ud83c\udde6\ud83c\uddf8"},{symbol:"\ud83c\udde6\ud83c\udde9"},{symbol:"\ud83c\udde6\ud83c\uddf4"},{symbol:"\ud83c\udde6\ud83c\uddee"},{symbol:"\ud83c\udde6\ud83c\uddf6"},{symbol:"\ud83c\udde6\ud83c\uddec"},{symbol:"\ud83c\udde6\ud83c\uddf7"},{symbol:"\ud83c\udde6\ud83c\uddf2"},{symbol:"\ud83c\udde6\ud83c\uddfc"},{symbol:"\ud83c\udde6\ud83c\uddfa"},{symbol:"\ud83c\udde6\ud83c\uddf9"},{symbol:"\ud83c\udde6\ud83c\uddff"},{symbol:"\ud83c\udde7\ud83c\uddf8"},{symbol:"\ud83c\udde7\ud83c\udded"},{symbol:"\ud83c\udde7\ud83c\udde9"},{symbol:"\ud83c\udde7\ud83c\uddfe"},{symbol:"\ud83c\udde7\ud83c\uddea"},{symbol:"\ud83c\udde7\ud83c\uddff"},{symbol:"\ud83c\udde7\ud83c\uddef"},{symbol:"\ud83c\udde7\ud83c\uddf2"},{symbol:"\ud83c\udde7\ud83c\uddf9"},{symbol:"\ud83c\udde7\ud83c\uddf4"},{symbol:"\ud83c\udde7\ud83c\udde6"},{symbol:"\ud83c\udde7\ud83c\uddfc"},{symbol:"\ud83c\udde7\ud83c\uddf7"},{symbol:"\ud83c\uddee\ud83c\uddf4"},{symbol:"\ud83c\uddfb\ud83c\uddec"},{symbol:"\ud83c\udde7\ud83c\uddf3"},{symbol:"\ud83c\udde7\ud83c\uddec"},{symbol:"\ud83c\udde7\ud83c\uddeb"},{symbol:"\ud83c\udde7\ud83c\uddee"},{symbol:"\ud83c\uddf0\ud83c\udded"},{symbol:"\ud83c\udde8\ud83c\uddf2"},{symbol:"\ud83c\udde8\ud83c\udde6"},{symbol:"\ud83c\uddee\ud83c\udde8"},{symbol:"\ud83c\udde8\ud83c\uddfb"},{symbol:"\ud83c\udde7\ud83c\uddf6"},{symbol:"\ud83c\uddf0\ud83c\uddfe"},{symbol:"\ud83c\udde8\ud83c\uddeb"},{symbol:"\ud83c\uddf9\ud83c\udde9"},{symbol:"\ud83c\udde8\ud83c\uddf1"},{symbol:"\ud83c\udde8\ud83c\uddf3"},{symbol:"\ud83c\udde8\ud83c\uddfd"},{symbol:"\ud83c\udde8\ud83c\uddf4"},{symbol:"\ud83c\uddf0\ud83c\uddf2"},{symbol:"\ud83c\udde8\ud83c\uddec"},{symbol:"\ud83c\udde8\ud83c\udde9"},{symbol:"\ud83c\udde8\ud83c\uddf0"},{symbol:"\ud83c\udde8\ud83c\uddf7"},{symbol:"\ud83c\udde8\ud83c\uddee"},{symbol:"\ud83c\udded\ud83c\uddf7"},{symbol:"\ud83c\udde8\ud83c\uddfa"},{symbol:"\ud83c\udde8\ud83c\uddfc"},{symbol:"\ud83c\udde8\ud83c\uddfe"},{symbol:"\ud83c\udde8\ud83c\uddff"},{symbol:"\ud83c\udde9\ud83c\uddf0"},{symbol:"\ud83c\udde9\ud83c\uddef"},{symbol:"\ud83c\udde9\ud83c\uddf2"},{symbol:"\ud83c\udde9\ud83c\uddf4"},{symbol:"\ud83c\uddea\ud83c\udde8"},{symbol:"\ud83c\uddea\ud83c\uddec"},{symbol:"\ud83c\uddf8\ud83c\uddfb"},{symbol:"\ud83c\uddec\ud83c\uddf6"},{symbol:"\ud83c\uddea\ud83c\uddf7"},{symbol:"\ud83c\uddea\ud83c\uddf9"},{symbol:"\ud83c\uddea\ud83c\uddfa"},{symbol:"\ud83c\uddeb\ud83c\uddf0"},{symbol:"\ud83c\uddeb\ud83c\uddf4"},{symbol:"\ud83c\uddeb\ud83c\uddef"},{symbol:"\ud83c\uddeb\ud83c\uddee"},{symbol:"\ud83c\uddeb\ud83c\uddf7"},{symbol:"\ud83c\uddec\ud83c\uddeb"},{symbol:"\ud83c\uddf5\ud83c\uddeb"},{symbol:"\ud83c\uddec\ud83c\udde6"},{symbol:"\ud83c\uddec\ud83c\uddf2"},{symbol:"\ud83c\uddec\ud83c\uddea"},{symbol:"\ud83c\udde9\ud83c\uddea"},{symbol:"\ud83c\uddec\ud83c\udded"},{symbol:"\ud83c\uddec\ud83c\uddee"},{symbol:"\ud83c\uddec\ud83c\uddf7"},{symbol:"\ud83c\uddec\ud83c\uddf1"},{symbol:"\ud83c\uddec\ud83c\udde9"},{symbol:"\ud83c\uddec\ud83c\uddf5"},{symbol:"\ud83c\uddec\ud83c\uddfa"},{symbol:"\ud83c\uddec\ud83c\uddf9"},{symbol:"\ud83c\uddec\ud83c\uddf3"},{symbol:"\ud83c\uddec\ud83c\uddfc"},{symbol:"\ud83c\uddec\ud83c\uddfe"},{symbol:"\ud83c\udded\ud83c\uddf9"},{symbol:"\ud83c\udded\ud83c\uddf3"},{symbol:"\ud83c\udded\ud83c\uddf0"},{symbol:"\ud83c\udded\ud83c\uddfa"},{symbol:"\ud83c\uddee\ud83c\uddf8"},{symbol:"\ud83c\uddee\ud83c\uddf3"},{symbol:"\ud83c\uddee\ud83c\udde9"},{symbol:"\ud83c\uddee\ud83c\uddf7"},{symbol:"\ud83c\uddee\ud83c\uddf6"},{symbol:"\ud83c\uddee\ud83c\uddea"},{symbol:"\ud83c\uddee\ud83c\uddf2"},{symbol:"\ud83c\uddee\ud83c\uddf1"},{symbol:"\ud83c\uddee\ud83c\uddf9"},{symbol:"\ud83c\uddef\ud83c\uddf2"},{symbol:"\ud83c\uddef\ud83c\uddf5"},{symbol:"\ud83c\uddef\ud83c\uddea"},{symbol:"\ud83c\uddef\ud83c\uddf4"},{symbol:"\ud83c\uddf0\ud83c\uddff"},{symbol:"\ud83c\uddf0\ud83c\uddea"},{symbol:"\ud83c\uddf0\ud83c\uddee"},{symbol:"\ud83c\uddfd\ud83c\uddf0"},{symbol:"\ud83c\uddf0\ud83c\uddfc"},{symbol:"\ud83c\uddf0\ud83c\uddec"},{symbol:"\ud83c\uddf1\ud83c\udde6"},{symbol:"\ud83c\uddf1\ud83c\uddfb"},{symbol:"\ud83c\uddf1\ud83c\udde7"},{symbol:"\ud83c\uddf1\ud83c\uddf8"},{symbol:"\ud83c\uddf1\ud83c\uddf7"},{symbol:"\ud83c\uddf1\ud83c\uddfe"},{symbol:"\ud83c\uddf1\ud83c\uddee"},{symbol:"\ud83c\uddf1\ud83c\uddf9"},{symbol:"\ud83c\uddf1\ud83c\uddfa"},{symbol:"\ud83c\uddf2\ud83c\uddf4"},{symbol:"\ud83c\uddf2\ud83c\uddf0"},{symbol:"\ud83c\uddf2\ud83c\uddec"},{symbol:"\ud83c\uddf2\ud83c\uddfc"},{symbol:"\ud83c\uddf2\ud83c\uddfe"},{symbol:"\ud83c\uddf2\ud83c\uddfb"},{symbol:"\ud83c\uddf2\ud83c\uddf1"},{symbol:"\ud83c\uddf2\ud83c\uddf9"},{symbol:"\ud83c\uddf2\ud83c\udded"},{symbol:"\ud83c\uddf2\ud83c\uddf7"},{symbol:"\ud83c\uddf2\ud83c\uddfa"},{symbol:"\ud83c\uddfe\ud83c\uddf9"},{symbol:"\ud83c\uddf2\ud83c\uddfd"},{symbol:"\ud83c\uddeb\ud83c\uddf2"},{symbol:"\ud83c\uddf2\ud83c\udde9"},{symbol:"\ud83c\uddf2\ud83c\udde8"},{symbol:"\ud83c\uddf2\ud83c\uddf3"},{symbol:"\ud83c\uddf2\ud83c\uddea"},{symbol:"\ud83c\uddf2\ud83c\uddf8"},{symbol:"\ud83c\uddf2\ud83c\udde6"},{symbol:"\ud83c\uddf2\ud83c\uddff"},{symbol:"\ud83c\uddf3\ud83c\udde6"},{symbol:"\ud83c\uddf3\ud83c\uddf7"},{symbol:"\ud83c\uddf3\ud83c\uddf5"},{symbol:"\ud83c\uddf3\ud83c\uddf1"},{symbol:"\ud83c\uddf3\ud83c\udde8"},{symbol:"\ud83c\uddf3\ud83c\uddff"},{symbol:"\ud83c\uddf3\ud83c\uddee"},{symbol:"\ud83c\uddf3\ud83c\uddea"},{symbol:"\ud83c\uddf3\ud83c\uddec"},{symbol:"\ud83c\uddf3\ud83c\uddfa"},{symbol:"\ud83c\uddf3\ud83c\uddeb"},{symbol:"\ud83c\uddf0\ud83c\uddf5"},{symbol:"\ud83c\uddf2\ud83c\uddf5"},{symbol:"\ud83c\uddf3\ud83c\uddf4"},{symbol:"\ud83c\uddf4\ud83c\uddf2"},{symbol:"\ud83c\uddf5\ud83c\uddf0"},{symbol:"\ud83c\uddf5\ud83c\uddfc"},{symbol:"\ud83c\uddf5\ud83c\uddf8"},{symbol:"\ud83c\uddf5\ud83c\udde6"},{symbol:"\ud83c\uddf5\ud83c\uddec"},{symbol:"\ud83c\uddf5\ud83c\uddfe"},{symbol:"\ud83c\uddf5\ud83c\uddea"},{symbol:"\ud83c\uddf5\ud83c\udded"},{symbol:"\ud83c\uddf5\ud83c\uddf3"},{symbol:"\ud83c\uddf5\ud83c\uddf1"},{symbol:"\ud83c\uddf5\ud83c\uddf9"},{symbol:"\ud83c\uddf5\ud83c\uddf7"},{symbol:"\ud83c\uddf6\ud83c\udde6"},{symbol:"\ud83c\uddf7\ud83c\uddf4"},{symbol:"\ud83c\uddf7\ud83c\uddfa"},{symbol:"\ud83c\uddf7\ud83c\uddfc"},{symbol:"\ud83c\uddfc\ud83c\uddf8"},{symbol:"\ud83c\uddf8\ud83c\uddf2"},{symbol:"\ud83c\uddf8\ud83c\uddf9"},{symbol:"\ud83c\uddf8\ud83c\udde6"},{symbol:"\ud83c\uddf8\ud83c\uddf3"},{symbol:"\ud83c\uddf7\ud83c\uddf8"},{symbol:"\ud83c\uddf8\ud83c\udde8"},{symbol:"\ud83c\uddf8\ud83c\uddf1"},{symbol:"\ud83c\uddf8\ud83c\uddec"},{symbol:"\ud83c\uddf8\ud83c\uddfd"},{symbol:"\ud83c\uddf8\ud83c\uddf0"},{symbol:"\ud83c\uddf8\ud83c\uddee"},{symbol:"\ud83c\uddec\ud83c\uddf8"},{symbol:"\ud83c\uddf8\ud83c\udde7"},{symbol:"\ud83c\uddf8\ud83c\uddf4"},{symbol:"\ud83c\uddff\ud83c\udde6"},{symbol:"\ud83c\uddf0\ud83c\uddf7"},{symbol:"\ud83c\uddea\ud83c\uddf8"},{symbol:"\ud83c\uddf1\ud83c\uddf0"},{symbol:"\ud83c\uddf8\ud83c\udded"},{symbol:"\ud83c\uddf0\ud83c\uddf3"},{symbol:"\ud83c\uddf1\ud83c\udde8"},{symbol:"\ud83c\uddf5\ud83c\uddf2"},{symbol:"\ud83c\uddfb\ud83c\udde8"},{symbol:"\ud83c\uddf8\ud83c\udde9"},{symbol:"\ud83c\uddf8\ud83c\uddf7"},{symbol:"\ud83c\uddf8\ud83c\uddff"},{symbol:"\ud83c\uddf8\ud83c\uddea"},{symbol:"\ud83c\udde8\ud83c\udded"},{symbol:"\ud83c\uddf8\ud83c\uddfe"},{symbol:"\ud83c\uddf9\ud83c\uddfc"},{symbol:"\ud83c\uddf9\ud83c\uddef"},{symbol:"\ud83c\uddf9\ud83c\uddff"},{symbol:"\ud83c\uddf9\ud83c\udded"},{symbol:"\ud83c\uddf9\ud83c\uddf1"},{symbol:"\ud83c\uddf9\ud83c\uddec"},{symbol:"\ud83c\uddf9\ud83c\uddf0"},{symbol:"\ud83c\uddf9\ud83c\uddf4"},{symbol:"\ud83c\uddf9\ud83c\uddf3"},{symbol:"\ud83c\uddf9\ud83c\uddf7"},{symbol:"\ud83c\uddf9\ud83c\uddf2"},{symbol:"\ud83c\uddf9\ud83c\udde8"},{symbol:"\ud83c\uddf9\ud83c\uddfb"},{symbol:"\ud83c\uddfb\ud83c\uddee"},{symbol:"\ud83c\uddfa\ud83c\uddec"},{symbol:"\ud83c\uddfa\ud83c\udde6"},{symbol:"\ud83c\udde6\ud83c\uddea"},{symbol:"\ud83c\uddec\ud83c\udde7"},{symbol:"\ud83c\uddfa\ud83c\uddf8"},{symbol:"\ud83c\uddfa\ud83c\uddfe"},{symbol:"\ud83c\uddfa\ud83c\uddff"},{symbol:"\ud83c\uddfb\ud83c\uddfa"},{symbol:"\ud83c\uddfb\ud83c\udde6"},{symbol:"\ud83c\uddfb\ud83c\uddea"},{symbol:"\ud83c\uddfb\ud83c\uddf3"},{symbol:"\ud83c\uddfc\ud83c\uddeb"},{symbol:"\ud83c\uddea\ud83c\udded"},{symbol:"\ud83c\uddfe\ud83c\uddea"},{symbol:"\ud83c\uddff\ud83c\uddf2"},{symbol:"\ud83c\uddff\ud83c\uddfc"}]}];const ue="\ud83d\ude0d";const ge={name:"SmilesContent",props:{dialogId:{type:String,required:true}},emits:["close"],data(){return{smiles:[],sets:[],recentEmoji:new Set,selectedSetId:""}},computed:{categoryTitles(){const t=he.reduce(((t,e)=>{const s=`IM_TEXTAREA_EMOJI_CATEGORY_`;const o=N.Loc.getMessage(`${s}${e.code}`);return{...t,[e.code]:o}}),{});t[this.frequentlyUsedLoc]=N.Loc.getMessage(this.frequentlyUsedLoc);return t},visibleSmiles(){const t=this.smiles.filter((t=>t.setId===this.selectedSetId&&t.alternative!==false));return t},visibleRecentEmoji(){const t=[...this.recentEmoji];return t.slice(0,this.maxRecentEmoji)},lastSelectedSetId(){const t=this.sets.find((t=>!!t.selected));if(!t){return this.emojiSetTitle}return t.id}},created(){const t=m.SmileManager.getInstance();if(!t.smileList){return}const{sets:e,smiles:s}=t.smileList;this.sets=e;this.smiles=s;this.emojiSetTitle="emoji";this.selectedSetId=this.lastSelectedSetId;this.emoji=he;this.recentEmoji=new Set(t.recentEmoji);this.defaultEmojiIcon=ue;this.maxRecentEmoji=18;this.frequentlyUsedLoc="IM_TEXTAREA_EMOJI_CATEGORY_FREQUENTLY"},beforeUnmount(){const t=m.SmileManager.getInstance();if(this.lastSelectedSetId!==this.selectedSetId){t.updateSelectedSet(this.selectedSetId)}if(this.visibleRecentEmoji.length>t.recentEmoji.size){t.updateRecentEmoji(new Set(this.recentEmoji))}},methods:{calculateRatioSize(t){const e=1.75;const s=`${t.width*e}px`;const o=`${t.height*e}px`;return{width:s,height:o}},onSmileClick(t,e){A.EventEmitter.emit(Q.EventType.textarea.insertText,{text:t,dialogId:this.dialogId});if(!O.Utils.key.isAltOrOption(e)){this.$emit("close")}},onEmojiClick(t,e){this.onSmileClick(t,e);this.addEmojiToRecent(t)},addEmojiToRecent(t){this.recentEmoji.add(t)}},template:`\n\t\t<div class="bx-im-smiles-content__scope">\n\t\t\t<div class="bx-im-smiles-content__smiles-box">\n\t\t\t\t<img\n\t\t\t\t\tv-for="smile in visibleSmiles"\n\t\t\t\t\t:key="smile.id"\n\t\t\t\t\t:src="smile.image"\n\t\t\t\t\t:title="smile.name ?? smile.typing"\n\t\t\t\t\t:style="calculateRatioSize(smile)"\n\t\t\t\t\t:alt="smile.typing"\n\t\t\t\t\tclass="bx-im-smiles-content__smiles-box_smile"\n\t\t\t\t\t@click="onSmileClick(smile.typing, $event)"\n\t\t\t\t/>\n\t\t\t\t<template v-if="visibleSmiles.length === 0 && selectedSetId === emojiSetTitle">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if="recentEmoji.size > 0"\n\t\t\t\t\t\tclass="bx-im-smiles-content__smiles-box_category"\n\t\t\t\t\t\tkey="frequently-used"\n\t\t\t\t\t>\n\t\t\t\t\t\t<p class="bx-im-smiles-content__smiles-box_category-title">\n\t\t\t\t\t\t\t{{categoryTitles[frequentlyUsedLoc]}}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tv-for="symbol in visibleRecentEmoji"\n\t\t\t\t\t\t\tclass="bx-im-smiles-content__smiles-box_category-emoji"\n\t\t\t\t\t\t\trole="img"\n\t\t\t\t\t\t\t:key="'recent-'+ symbol"\n\t\t\t\t\t\t\t@click="onSmileClick(symbol, $event)"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{symbol}}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for="category in emoji"\n\t\t\t\t\t\t:key="category.id"\n\t\t\t\t\t\tclass="bx-im-smiles-content__smiles-box_category"\n\t\t\t\t\t>\n\t\t\t\t\t\t<template v-if="category.showForWindows ?? true">\n\t\t\t\t\t\t\t<p class="bx-im-smiles-content__smiles-box_category-title">\n\t\t\t\t\t\t\t\t{{categoryTitles[category.code]}}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tv-for="element in category.emoji"\n\t\t\t\t\t\t\t\t:key="element.symbol"\n\t\t\t\t\t\t\t\tclass="bx-im-smiles-content__smiles-box_category-emoji"\n\t\t\t\t\t\t\t\trole="img"\n\t\t\t\t\t\t\t\t@click="onEmojiClick(element.symbol, $event)"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{{element.symbol}}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t\t<div class="bx-im-smiles-content__sets">\n\t\t\t\t<span\n\t\t\t\t\tv-for="set in sets" :key="set.id"\n\t\t\t\t\tclass="bx-im-smiles-content__sets_set --img"\n\t\t\t\t\t:class="{\n\t\t\t\t\t\t'--selected': selectedSetId === set.id\n\t\t\t\t\t}"\n\t\t\t\t\t:title="set.name"\n\t\t\t\t\t@click="selectedSetId = set.id"\n\t\t\t\t>\n\t\t\t\t\t<img :src="set.image" />\n\t\t\t\t</span>\n\t\t\t\t<span\n\t\t\t\t\tclass="bx-im-smiles-content__sets_set --emoji"\n\t\t\t\t\t:class="{\n\t\t\t\t\t\t'--selected': selectedSetId === emojiSetTitle\n\t\t\t\t\t}"\n\t\t\t\t\t@click="selectedSetId = emojiSetTitle"\n\t\t\t\t>\n\t\t\t\t\t{{defaultEmojiIcon}}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t`};const ve=15;class fe{constructor(){this.pageNumber=1;this.hasMoreItemsToLoad=true}getPopular(){return c.runAction(Q.RestMethod.imBotGiphyListPopular,{}).catch((([t])=>{console.error("GiphyLoadService error",t);throw t}))}async getQuery(t,e){if(e){this.pageNumber++}else{this.pageNumber=1;this.hasMoreItemsToLoad=true}const s={data:{filter:{search:t},limit:ve,offset:this.pageNumber*ve}};const o=await c.runAction(Q.RestMethod.imBotGiphyList,s).catch((([t])=>{console.error("GiphyLoadService error",t);throw t}));if(o.length<ve){this.hasMoreItemsToLoad=false}return o}}const Ie=Object.freeze({open:"[url]",close:"[/url]"});const Me={name:"GiphyContent",components:{Loader:X.Loader,Spinner:X.Spinner},props:{dialogId:{type:String,required:true}},emits:["close"],data(){return{searchQuery:"",gifList:[],popularGifList:[],isSearching:false,isLoading:false,isError:false,needBottomShadow:true}},computed:{itemsReceived(){return this.popularGifList.length>0},SpinnerSize:()=>X.SpinnerSize,SpinnerColor:()=>X.SpinnerColor,errorText(){if(this.gifList.length===0){return this.loc("IM_TEXTAREA_GIPHY_EMPTY_STATE")}if(this.isError){return this.loc("IM_TEXTAREA_GIPHY_UNAVAILABLE_STATE")}return""},errorClass(){return this.gifList.length===0||this.isError?"--is-error":""},showInputClearButton(){return this.searchQuery.length>0&&!this.isSearching},trimmedQuery(){return this.searchQuery.trim()}},created(){this.loadPopular();this.loadQueryWithDebounce=N.Runtime.debounce(this.loadQueryList,500,this)},methods:{handleResponse(t){this.isSearching=false;this.scrollToTop();this.gifList=t.length>0?t:[]},loadPopular(){this.getGifService().getPopular().then((t=>{this.popularGifList=t.length>0?t:[];this.handleResponse(this.popularGifList)})).catch((()=>{this.isError=true}))},loadQueryList(t,e){this.getGifService().getQuery(t,e).then((t=>{this.handleResponse(t)})).catch((()=>{this.isError=true}))},loc(t){return this.$Bitrix.Loc.getMessage(t)},getGifService(){if(!this.giphyLoader){this.giphyLoader=new fe}return this.giphyLoader},getSendingService(){if(!this.sendingService){this.sendingService=b.SendingService.getInstance()}return this.sendingService},onGifClick(t){const e=`${Ie.open}${t.original}${Ie.close}`;this.getSendingService().sendMessage({text:e,dialogId:this.dialogId});this.$emit("close")},onInputUpdate(){if(this.trimmedQuery.length>=3){this.isSearching=true;this.loadQueryWithDebounce(this.trimmedQuery,false)}if(this.trimmedQuery.length===0){this.gifList=this.popularGifList}},onInputClearClick(){this.searchQuery="";this.scrollToTop();this.onInputUpdate()},onEnterKeyPress(){if(this.gifList.length>0&&!this.isSearching){const t=this.gifList[0];this.onGifClick(t)}},needToLoadNextPage(t){return t.target.scrollTop+t.target.clientHeight>=t.target.scrollHeight-t.target.clientHeight},onScroll(t){this.needBottomShadow=t.target.scrollTop+t.target.clientHeight!==t.target.scrollHeight;if(this.isLoading){return}if(this.trimmedQuery.length===0){return}if(!this.needToLoadNextPage(t)||!this.getGifService().hasMoreItemsToLoad){return}this.isLoading=true;this.getGifService().getQuery(this.trimmedQuery,true).then((t=>{this.isLoading=false;this.gifList.push(...t)})).catch((()=>{this.isLoading=false;this.isError=true}))},scrollToTop(){const t=this.$refs.gifsContainer;if(t){t.scrollTop=0}},openHelpArticle(){const t="17942324";d.openHelpdeskArticle(t)}},template:`\n\t\t<div class="bx-im-smiles-content__scope bx-im-smile-popup-giphy-content__container">\n\t\t\t<div \n\t\t\t\tv-if="!itemsReceived" \n\t\t\t\tclass="bx-im-smiles-content-popup__loader"\n\t\t\t>\n\t\t\t\t<Spinner :color="SpinnerColor.blue" :size="SpinnerSize.S" />\n\t\t\t</div>\n\t\t\t<template v-else>\n\t\t\t\t<div \n\t\t\t\t\tv-if="itemsReceived"\n\t\t\t\t \tclass="bx-im-smile-popup-search-input__container"\n\t\t\t\t>\n\t\t\t\t\t<div class="bx-im-smile-popup-giphy-content__search-icon"></div>\n\t\t\t\t\t<input\n\t\t\t\t\t\t@input="onInputUpdate"\n\t\t\t\t\t\t@keydown.enter="onEnterKeyPress"\n\t\t\t\t\t\tv-model="searchQuery"\n\t\t\t\t\t\tclass="bx-im-smile-popup-giphy-content__input bx-im-smile-popup-search-input__element"\n\t\t\t\t\t\t:placeholder="loc('IM_TEXTAREA_GIPHY_INPUT_PLACEHOLDER')"\n\t\t\t\t\t/>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if="showInputClearButton"\n\t\t\t\t\t\tclass="bx-im-smile-popup-search-input__clear"\n\t\t\t\t\t\t@click="onInputClearClick"\n\t\t\t\t\t ></div>\n\t\t\t\t\t<div v-show="isSearching" class="bx-im-smile-popup-search-input__loader">\n\t\t\t\t\t\t<Spinner :color="SpinnerColor.grey" :size="SpinnerSize.XXS" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div \n\t\t\t\t\tclass="bx-im-smiles-content__smiles-box bx-im-smiles-content__gifs-box"\n\t\t\t\t \t:class="errorClass"\n\t\t\t\t \tref="gifsContainer"\n\t\t\t\t\t@scroll="onScroll"\n\t\t\t\t>\n\t\t\t\t\t<div \n\t\t\t\t\t\tv-if="gifList.length === 0" \n\t\t\t\t\t\tclass="bx-im-smiles-content__gifs-empty"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class="bx-im-smiles-content__gifs-empty_icon bx-im-messenger__search-icon --size-large"></div>\n\t\t\t\t\t\t<div class="bx-im-smiles-content__gifs-empty_title">\n\t\t\t\t\t\t\t{{ errorText }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div \n\t\t\t\t\t\tv-else-if="isError" \n\t\t\t\t\t\tclass="bx-im-smiles-content__gifs-empty"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tv-if="isError" \n\t\t\t\t\t\t\tclass="bx-im-smiles-content__gifs-warning_icon"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t\t<div class="bx-im-smiles-content__gifs-empty_title">\n\t\t\t\t\t\t\t{{ errorText }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div @click="openHelpArticle" class="bx-im-smiles-content__gifs-empty_link">\n\t\t\t\t\t\t\t{{ loc('IM_TEXTAREA_GIPHY_MORE') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<div v-for="item in gifList" class="bx-im-smiles-content__gifs-item" :key="item.preview">\n\t\t\t\t\t\t\t<img @click="onGifClick(item)" class="bx-im-smiles-content__gifs-item_img"\n\t\t\t\t\t\t\t\t :src="item.preview"\n\t\t\t\t\t\t\t\t :data-original="item.original" alt="gif"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<div :class="needBottomShadow ? '' : '--is-hidden'" class="bx-im-smiles-content__gifs-gradient"></div>\n\t\t\t\t\t<Loader v-show="isLoading && !isError" class="bx-im-sidebar-detail__loader-container" />\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</div>\n\t`};const xe={name:"SmilePopupMarketContent",components:{Spinner:X.Spinner},props:{entityId:{type:String,required:true},dialogId:{type:String,required:true}},emits:["close"],data(){return{isLoading:true,handleResult:true}},computed:{SpinnerSize:()=>X.SpinnerSize},watch:{entityId(t){this.isLoading=true;this.load(t)}},created(){this.marketManager=j.MarketManager.getInstance()},mounted(){this.load(this.entityId)},beforeUnmount(){this.handleResult=false},methods:{load(t){const e={dialogId:this.dialogId};this.marketManager.loadPlacement(t,e).then((e=>{if(!this.handleResult||this.entityId!==t){return}N.Runtime.html(this.$refs["im-messenger-smile-selector-placement"],e)})).finally((()=>{this.isLoading=false}))},onClose(){this.handleResult=false;this.$emit("close")}},template:`\n\t\t<div class="bx-im-smile-popup-market-content__container">\n\t\t\t<div v-if="isLoading" class="bx-im-smile-popup-market-content__loader-container">\n\t\t\t\t<Spinner :size="SpinnerSize.S"/>\n\t\t\t</div>\n\t\t\t<div \n\t\t\t\tv-show="!isLoading"\n\t\t\t\tclass="bx-im-smile-popup-market-content__placement-container"\n\t\t\t\tref="im-messenger-smile-selector-placement"\n\t\t\t></div>\n\t\t</div>\n\t`};const _e=Object.freeze({default:"default",market:"market",giphy:"giphy"});const Se={name:"SmilePopup",components:{MessengerPopup:z.MessengerPopup,TabSmiles:ge,TabGiphy:Me,TabMarket:xe,MessengerTabs:r.MessengerTabs},props:{bindElement:{type:Object,required:true},dialogId:{type:String,required:true}},emits:["close"],data(){return{currentTab:_e.default,currentEntityId:""}},computed:{TabsColorScheme:()=>r.TabsColorScheme,TabType:()=>_e,popupConfig(){return{width:320,bindElement:this.bindElement,bindOptions:{position:"top"},offsetTop:25,offsetLeft:-110,padding:0}},marketMenuItems(){return j.MarketManager.getInstance().getAvailablePlacementsByType(Q.PlacementType.smilesSelector,this.dialogId)},isGiphyAvailable(){return v.FeatureManager.isFeatureAvailable(v.Feature.giphyAvailable)},tabs(){const t=[this.smilesTab];if(this.isGiphyAvailable){t.push(this.giphyTab)}return[...t,...this.marketTabs]},smilesTab(){return{id:1,title:this.$Bitrix.Loc.getMessage("IM_TEXTAREA_SMILE_SELECTOR_SMILES_TAB"),type:_e.default}},giphyTab(){return{id:1,title:"Giphy",type:_e.giphy}},marketTabs(){return this.marketMenuItems.map((t=>({id:t.id,title:t.title,type:_e.market})))}},methods:{tabSelect(t){this.currentTab=t.type;this.currentEntityId=t.id}},template:`\n\t\t<MessengerPopup\n\t\t\t:config="popupConfig"\n\t\t\t@close="$emit('close')"\n\t\t\tid="im-smiles-popup"\n\t\t>\n\t\t\t<div class="bx-im-smile-popup__container bx-im-smile-popup__scope">\n\t\t\t\t<div class="bx-im-smile-popup__tabs-container">\n\t\t\t\t\t<MessengerTabs :colorScheme="TabsColorScheme.gray" :tabs="tabs" @tabSelect="tabSelect" />\n\t\t\t\t</div>\n\t\t\t\t<TabSmiles v-show="currentTab === TabType.default" :dialogId="dialogId" @close="$emit('close')" />\n\t\t\t\t<TabGiphy v-if="isGiphyAvailable" v-show="currentTab === TabType.giphy" @close="$emit('close')" :dialogId="dialogId" />\n\t\t\t\t<TabMarket v-if="currentTab === TabType.market" :entityId="currentEntityId" :dialogId="dialogId" />\n\t\t\t</div>\n\t\t</MessengerPopup>\n\t`};const Te=24;const Ee={name:"SmileSelector",components:{BIcon:q.BIcon,SmilePopup:Se},props:{dialogId:{type:String,required:true}},data(){return{showPopup:false}},computed:{OutlineIcons:()=>q.Outline,ICON_SIZE:()=>Te,iconColor(){if(this.showPopup){return Q.Color.accentBlue}return Q.Color.gray40}},methods:{loc(t){return this.$Bitrix.Loc.getMessage(t)}},template:`\n\t\t<div ref="addSmile" class="bx-im-textarea__icon-container">\n\t\t\t<BIcon\n\t\t\t\t:name="OutlineIcons.SMILE"\n\t\t\t\t:title="loc('IM_TEXTAREA_ICON_SMILE')"\n\t\t\t\t:size="ICON_SIZE"\n\t\t\t\t:color="iconColor"\n\t\t\t\tclass="bx-im-textarea__icon"\n\t\t\t\t@click="showPopup = true"\n\t\t\t/>\n\t\t</div>\n\t\t<SmilePopup\n\t\t\tv-if="showPopup"\n\t\t\t:bindElement="$refs['addSmile']"\n\t\t\t:dialogId="dialogId"\n\t\t\t@close="showPopup = false"\n\t\t/>\n\t`};const Pe="im-file-dialog";const we={name:"DiskPopup",emits:["close","diskFileSelect"],created(){if(!BX.DiskFileDialog){console.error("Couldn't initialize disk popup");return}this.subscribeEvents();this.open()},beforeUnmount(){this.unsubscribeEvents()},methods:{subscribeEvents(){BX.addCustomEvent(BX.DiskFileDialog,"inited",this.onInited);BX.addCustomEvent(BX.DiskFileDialog,"loadItems",this.onLoadItems)},unsubscribeEvents(){BX.removeCustomEvent(BX.DiskFileDialog,"inited",this.onInited);BX.removeCustomEvent(BX.DiskFileDialog,"loadItems",this.onLoadItems)},onInited(t){if(t!==Pe){return}BX.DiskFileDialog.obCallback[t]={saveButton:(t,e,s)=>{this.$emit("diskFileSelect",{files:s})},popupDestroy:()=>{this.unsubscribeEvents();this.$emit("close")}};BX.DiskFileDialog.openDialog(t)},onLoadItems(t,e){if(e!==Pe){return}BX.DiskFileDialog.target[e]=t.replace("/bitrix/tools/disk/uf.php","/bitrix/components/bitrix/im.messenger/file.ajax.php")},open(){N.ajax({url:`/bitrix/components/bitrix/im.messenger/file.ajax.php?action=selectFile&dialogName=${Pe}`,method:"GET",skipAuthCheck:true,timeout:30})}},template:"<template></template>"};const Ce=24;const Ae="/sign/doc/0/?chat_id=";const Le={components:{BIcon:q.BIcon,MessengerMenu:h.MessengerMenu,MenuItem:h.MenuItem,DiskPopup:we},props:{dialogId:{type:String,required:true}},emits:["fileSelect","diskFileSelect"],data(){return{showMenu:false,showDiskPopup:false}},computed:{OutlineIcons:()=>q.Outline,ICON_SIZE:()=>Ce,menuItems(){return[{icon:h.MenuItemIcon.file,title:this.loc("IM_TEXTAREA_SELECT_LOCAL_FILE"),clickHandler:this.onSelectLocalFile},{icon:h.MenuItemIcon.b24,title:this.loc("IM_TEXTAREA_SELECT_FILE_FROM_B24"),clickHandler:this.onSelectFromB24},{icon:h.MenuItemIcon.task,title:this.loc("IM_TEXTAREA_SELECT_TASK"),clickHandler:this.onCreateTaskClick},{icon:h.MenuItemIcon.meeting,title:this.loc("IM_TEXTAREA_SELECT_MEETING"),clickHandler:this.onCreateMeetingClick},{icon:h.MenuItemIcon.calendarSlot,title:this.loc("IM_TEXTAREA_SELECT_CALENDAR_SLOT"),clickHandler:this.onCreateCalendarSlotClick,showCondition:()=>this.isCalendarSlotAvailable},{icon:h.MenuItemIcon.documentSign,title:this.loc("IM_TEXTAREA_SELECT_DOCUMENT_SIGN"),clickHandler:this.onCreateDocumentSignClick,showCondition:()=>this.isDocumentSignAvailable},{icon:h.MenuItemIcon.vote,title:this.loc("IM_TEXTAREA_SELECT_VOTE"),clickHandler:this.onCreateVoteClick,showCondition:()=>this.isVoteCreationAvailable}]},availableMenuItems(){return this.menuItems.filter((t=>{if(!N.Type.isFunction(t.showCondition)){return true}return t.showCondition()}))},menuConfig(){return{width:278,bindElement:this.$refs.upload||{},bindOptions:{position:"top"},offsetTop:30,offsetLeft:-10,padding:0}},dialog(){return this.$store.getters["chats/get"](this.dialogId,true)},chatType(){return this.dialog.type},chatId(){return this.dialog.chatId},isDocumentSignAvailable(){const t=v.FeatureManager.isFeatureAvailable(v.Feature.documentSignAvailable);if(!t){return false}return f.PermissionManager.getInstance().canPerformActionByRole(Q.ActionByRole.createDocumentSign,this.dialogId)},isCalendarSlotAvailable(){return f.PermissionManager.getInstance().canPerformActionByRole(Q.ActionByRole.createCalendarSlots,this.dialogId)},isVoteCreationAvailable(){if(!(p.VoteApplication!=null&&p.VoteApplication.canCreateVoteInChat(this.chatType))){return false}return v.FeatureManager.isFeatureAvailable(v.Feature.voteCreationAvailable)},iconColor(){if(this.showMenu){return Q.Color.accentBlue}return Q.Color.gray40}},methods:{onSelectLocalFile(){this.$refs.fileInput.click();this.showMenu=false},onSelectFromB24(){this.showDiskPopup=true;this.showMenu=false},onFileSelect(t){this.$emit("fileSelect",{event:t});this.showMenu=false},onDiskFileSelect(t){this.$emit("diskFileSelect",t)},loc(t){return this.$Bitrix.Loc.getMessage(t)},getEntityCreator(){if(!this.entityCreator){this.entityCreator=new u.EntityCreator(this.chatId)}return this.entityCreator},onCreateTaskClick(){void this.getEntityCreator().createTaskForChat();g.Analytics.getInstance().chatEntities.onCreateTaskFromTextareaClick(this.dialogId);this.showMenu=false},onCreateMeetingClick(){void this.getEntityCreator().createMeetingForChat();g.Analytics.getInstance().chatEntities.onCreateEventFromTextareaClick(this.dialogId);this.showMenu=false},onUploadButtonClick(){if(this.showMenu!==true){g.Analytics.getInstance().attachMenu.onOpenUploadMenu(this.dialogId)}this.showMenu=true},async onCreateCalendarSlotClick(t){if(!y.GroupSharingController){return}const e=U.Core.getStore().getters["chats/collabs/getByChatId"](this.chatId);if(!e||!e.collabId){return}try{const s=await y.GroupSharingController.getGroupSharing(e.collabId,t.target);s.openDialog();this.showMenu=false}catch(t){I.Notifier.onDefaultError();console.error("ChatTextarea: UploadMenu: select slots error",t)}},onCreateDocumentSignClick(){const t=Ae+this.chatId;BX.SidePanel.Instance.open(t,{cacheable:false})},onCreateVoteClick(){const t=g.Analytics.getInstance();const e=t.vote.getSerializedParams(this.dialogId);const s=`/bitrix/components/bitrix/voting.im.edit/slider.php?chatId=${this.chatId}&${e}`;BX.SidePanel.Instance.open(s,{cacheable:false,width:600,allowChangeHistory:false});g.Analytics.getInstance().chatEntities.onCreateVoteFromTextareaClick(this.dialogId);this.showMenu=false}},template:`\n\t\t<div ref="upload" class="bx-im-textarea__icon-container">\n\t\t\t<BIcon\n\t\t\t\t:name="OutlineIcons.ATTACH"\n\t\t\t\t:title="loc('IM_TEXTAREA_ICON_UPLOAD_TITLE')"\n\t\t\t\t:color="iconColor"\n\t\t\t\t:size="ICON_SIZE"\n\t\t\t\tclass="bx-im-textarea__icon"\n\t\t\t\t@click="onUploadButtonClick"\n\t\t\t/>\n\t\t</div>\n\t\t<MessengerMenu v-if="showMenu" :config="menuConfig" @close="showMenu = false" className="bx-im-file-menu__scope">\n\t\t\t<MenuItem\n\t\t\t\tv-for="item in availableMenuItems"\n\t\t\t\t:icon="item.icon"\n\t\t\t\t:title="item.title"\n\t\t\t\t@click="item.clickHandler"\n\t\t\t/>\n\t\t\t<input type="file" @change="onFileSelect" multiple class="bx-im-file-menu__file-input" ref="fileInput">\n\t\t</MessengerMenu>\n\t\t<DiskPopup v-if="showDiskPopup" @diskFileSelect="onDiskFileSelect" @close="showDiskPopup = false"/>\n\t`};const Fe={props:{dialogId:{type:String,default:""},editMode:{type:Boolean,default:false},isDisabled:{type:Boolean,default:false}},computed:{dialog(){return this.$store.getters["chats/get"](this.dialogId,true)},dialogTypeClass(){return`--${this.dialog.type}`},buttonHint(){const t=this.$store.getters["application/settings/get"](Q.Settings.hotkey.sendByEnter);const e=O.Utils.platform.isMac()?"Cmd":"Ctrl";const s=t?"Enter":`${e} + Enter`;return this.loc("IM_TEXTAREA_ICON_SEND_TEXT",{"#SEND_MESSAGE_COMBINATION#":s})}},methods:{loc(t,e={}){return this.$Bitrix.Loc.getMessage(t,e)}},template:`\n\t\t<div\n\t\t\t:title="buttonHint"\n\t\t\tclass="bx-im-send-panel__button_container"\n\t\t\t:class="[{'--edit': editMode, '--disabled': isDisabled, }, dialogTypeClass]"\n\t\t></div>\n\t`};const ke={name:"FilePreviewItem",props:{file:{type:Object,required:true},maxNameLength:{type:Number,default:25}},computed:{fileIconClass(){return`ui-icon ui-icon-file-${this.file.icon}`},fileShortName(){return O.Utils.file.getShortFileName(this.file.name,this.maxNameLength)},fileSize(){return O.Utils.file.formatFileSize(this.file.size)},hasPreview(){return N.Type.isStringFilled(this.file.urlPreview)},imageStyles(){return{backgroundImage:`url(${this.file.urlPreview})`}}},template:`\n\t\t<div class="bx-im-upload-preview-file-item__file-container">\n\t\t\t<div class="bx-im-upload-preview-file-item__icon">\n\t\t\t\t<div v-if="hasPreview" :style="imageStyles" class="bx-im-upload-preview-file-item__preview"></div>\n\t\t\t\t<div v-else :class="fileIconClass"><i></i></div>\n\t\t\t</div>\n\t\t\t<div class="bx-im-upload-preview-file-item__info">\n\t\t\t\t<div class="bx-im-upload-preview-file-item__name">{{ fileShortName }}</div>\n\t\t\t\t<div class="bx-im-upload-preview-file-item__size">{{ fileSize }}</div>\n\t\t\t</div>\n\t\t</div>\n\t`};const Be={name:"ErrorPreviewItem",template:`\n\t\t<div class="bx-im-upload-preview-file-item__item-error">\n\t\t\t<div class="bx-im-upload-preview-file-item__item-error-icon"></div>\n\t\t\t<div class="bx-im-upload-preview-file-item__item-error-text">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_TEXTAREA_UPLOAD_PREVIEW_POPUP_FILE_UPLOAD_ERROR') }}\n\t\t\t</div>\n\t\t</div>\n\t`};const He={name:"FileItem",components:{FilePreviewItem:ke,ErrorPreviewItem:Be},props:{file:{type:Object,required:true},removable:{type:Boolean,default:false}},emits:["removeItem"],computed:{hasError(){return this.file.status===Q.FileStatus.error},previewComponentName(){if(this.hasError){return Be.name}return ke.name}},methods:{onRemoveClick(){this.$emit("removeItem",{file:this.file})}},template:`\n\t\t<div class="bx-im-upload-preview-file-item__scope">\n\t\t\t<component\n\t\t\t\t:is="previewComponentName"\n\t\t\t\t:file="file"\n\t\t\t/>\n\t\t\t<div v-if="removable" class="bx-im-upload-preview-file-item__remove" @click="onRemoveClick">\n\t\t\t\t<div class="bx-im-upload-preview-file-item__remove-icon"></div>\n\t\t\t</div>\n\t\t</div>\n\t`};const Re=100;const De=74;const Oe={max:208,min:46};const Ue={name:"UploadPreviewContent",components:{MediaContent:P.MediaContent,FileItem:He,SendButton:Fe,MediaGallery:w.MediaGallery},props:{dialogId:{type:String,required:true},uploaderIds:{type:Array,required:true},sourceFilesCount:{type:Number,required:true},textareaValue:{type:String,required:false,default:""}},emits:["sendFiles","close","updateTitle"],data(){return{text:"",sendAsFile:false,uploaderFiles:[],chunks:[],textareaHeight:Oe.min,textareaResizedHeight:0}},computed:{isOverMaxFilesLimit(){return this.sourceFilesCount>Re},isMediaOnly(){return this.chunks.flat().every((t=>t.type===Q.FileType.image||t.type===Q.FileType.video))},inputMaxLength(){const t=N.Extension.getSettings("im.v2.component.textarea");return t.get("maxLength")},textareaHeightStyle(){return this.textareaHeight==="auto"?"auto":`${this.textareaHeight}px`},title(){const t=Math.min(this.uploaderFiles.length,Re);return this.$Bitrix.Loc.getMessage("IM_TEXTAREA_UPLOAD_PREVIEW_POPUP_COMPUTED_TITLE",{"#COUNT#":t})}},watch:{text(){void this.adjustTextareaHeight()},title(){this.$emit("updateTitle",this.title)},sendAsFile(t){this.uploaderFiles.forEach((e=>{e.setCustomData("sendAsFile",t)}))}},created(){this.initResizeManager();this.uploaderIds.forEach((t=>{const e=[];this.getUploadingService().getFiles(t).forEach((t=>{this.uploaderFiles.push(t);e.push(this.$store.getters["files/get"](t.getId()))}));this.chunks.push(e)}))},mounted(){this.text=this.textareaValue;this.insertText("");this.$refs.messageText.focus()},beforeUnmount(){this.insertText(this.text);_.DraftManager.getInstance().setDraftText(this.dialogId,this.text);this.resizeManager.destroy()},methods:{async adjustTextareaHeight(){this.textareaHeight="auto";await this.$nextTick();if(!this.$refs.messageText){return}const t=2;const e=Math.min(Oe.max,this.$refs.messageText.scrollHeight+t);if(this.doesContentOverflowScreen(e)){const t=this.$refs.messageText.getBoundingClientRect().top;const e=window.innerHeight-t-De;this.textareaHeight=Math.max(Oe.min,e);return}if(this.resizedTextareaHeight){this.textareaHeight=Math.max(e,this.resizedTextareaHeight);return}this.textareaHeight=Math.max(e,Oe.min)},getUploadingService(){if(!this.uploadingService){this.uploadingService=E.UploadingService.getInstance()}return this.uploadingService},onCancel(){this.$emit("close",{text:this.text})},onSend(){if(this.sendAsFile||!this.isMediaOnly){this.uploaderFiles.forEach((t=>{this.removePreviewParams(t)}))}const t=this.uploaderIds.filter((t=>this.getUploadingService().getFiles(t).length>0));this.$emit("sendFiles",{text:this.text,uploaderIds:t,sendAsFile:this.sendAsFile});this.text=""},onKeyDownHandler(t){const e=S.isSendMessageCombination(t);const s=S.isNewLineCombination(t);if(e&&!s){t.preventDefault();this.onSend();return}if(s){t.preventDefault();this.text=T.Textarea.addNewLine(this.$refs.messageText)}},removePreviewParams(t){this.$store.dispatch("files/update",{id:t.getId(),fields:{image:false}})},insertText(t){A.EventEmitter.emit(Q.EventType.textarea.insertText,{text:t,dialogId:this.dialogId,replace:true})},loc(t,e={}){return this.$Bitrix.Loc.getMessage(t,e)},initResizeManager(){this.resizeManager=new ee({direction:Jt.down,minHeight:Oe.min,maxHeight:Oe.max});this.resizeManager.subscribe(ee.events.onHeightChange,(({data:{newHeight:t}})=>{this.textareaHeight=t}));this.resizeManager.subscribe(ee.events.onResizeStop,(()=>{this.resizedTextareaHeight=this.textareaHeight}))},onResizeStart(t){this.resizeManager.onResizeStart(t,this.textareaHeight)},doesContentOverflowScreen(t){const e=this.$refs.messageText.getBoundingClientRect().top;return e+t+De>window.innerHeight},getUploaderIdByFileId(t){const e=this.getUploadingService();return this.uploaderIds.find((s=>e.getFiles(s).some((e=>e.getId()===t))))},removeFileFromUploader(t){const e=this.getUploaderIdByFileId(t);this.getUploadingService().removeFileFromUploader({uploaderId:e,filesIds:[t]})},onRemoveItem(t){this.removeFileFromUploader(t.file.id);this.chunks=[];this.uploaderFiles=[];this.uploaderIds.forEach((t=>{const e=[];this.getUploadingService().getFiles(t).forEach((t=>{this.uploaderFiles.push(t);e.push(this.$store.getters["files/get"](t.getId()))}));if(N.Type.isArrayFilled(e)){this.chunks.push(e)}}));if(!N.Type.isArrayFilled(this.uploaderFiles)){this.onCancel()}}},template:`\n\t\t<div class="bx-im-upload-preview__container">\n\t\t\t<div class="bx-im-upload-preview__items-container">\n\t\t\t\t<div v-if="isMediaOnly && !sendAsFile" v-for="chunk in chunks" class="bx-im-upload-preview__items-chunk">\n\t\t\t\t\t<MediaGallery\n\t\t\t\t\t\t:files="chunk"\n\t\t\t\t\t\t:allowRemoveItem="true"\n\t\t\t\t\t\t@removeItem="onRemoveItem"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div v-else v-for="chunk in chunks" class="bx-im-upload-preview__items-chunk">\n\t\t\t\t\t<FileItem\n\t\t\t\t\t\tv-for="fileItem in chunk"\n\t\t\t\t\t\t:file="fileItem"\n\t\t\t\t\t\t:removable="true"\n\t\t\t\t\t\t@removeItem="onRemoveItem"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="bx-im-upload-preview__controls-container">\n\t\t\t\t<div v-if="isOverMaxFilesLimit" class="bx-im-upload-preview__controls-files-limit-message">\n\t\t\t\t\t<span>{{ loc('IM_TEXTAREA_UPLOAD_PREVIEW_POPUP_FILES_LIMIT_MESSAGE_100') }}</span>\n\t\t\t\t</div>\n\t\t\t\t<label v-if="isMediaOnly" class="bx-im-upload-preview__control-compress-image">\n\t\t\t\t\t<input type="checkbox" class="bx-im-upload-preview__control-compress-image-checkbox" v-model="sendAsFile">\n\t\t\t\t\t{{ loc('IM_TEXTAREA_UPLOAD_PREVIEW_POPUP_SEND_WITHOUT_COMPRESSION') }}\n\t\t\t\t</label>\n\t\t\t\t<div class="bx-im-upload-preview__control-form">\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tref="messageText"\n\t\t\t\t\t\tv-model="text"\n\t\t\t\t\t\t:placeholder="loc('IM_TEXTAREA_UPLOAD_PREVIEW_POPUP_INPUT_PLACEHOLDER_2')"\n\t\t\t\t\t\t:maxlength="inputMaxLength"\n\t\t\t\t\t\t:style="{'height': textareaHeightStyle}"\n\t\t\t\t\t\tclass="bx-im-upload-preview__message-text"\n\t\t\t\t\t\trows="1"\n\t\t\t\t\t\t@keydown="onKeyDownHandler"\n\t\t\t\t\t></textarea>\n\t\t\t\t\t<SendButton :dialogId="dialogId" @click="onSend" />\n\t\t\t\t</div>\n\t\t\t\t<div @mousedown="onResizeStart" class="bx-im-upload-preview__drag-handle"></div>\n\t\t\t</div>\n\t\t</div>\n\t`};const $e="im-chat-upload-preview-popup";const Ne={name:"UploadPreviewPopup",components:{MessengerPopup:z.MessengerPopup,UploadPreviewContent:Ue},props:{dialogId:{type:String,required:true},uploaderIds:{type:Array,required:true},sourceFilesCount:{type:Number,required:true},textareaValue:{type:String,required:false,default:""}},emits:["close","sendFiles"],computed:{POPUP_ID:()=>$e,config(){return{width:400,targetContainer:document.body,fixed:true,draggable:{restrict:true},titleBar:" ",offsetTop:0,padding:0,closeIcon:true,contentColor:"transparent",contentPadding:0,className:"bx-im-upload-preview__scope",autoHide:true,overlay:true}}},methods:{onSendFiles(t){this.$emit("sendFiles",t);this.$emit("close")},onUpdateTitle(t){var e;(e=x.PopupManager.getPopupById($e))==null?void 0:e.setTitleBar(t)}},template:`\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<UploadPreviewContent \n\t\t\t\t:dialogId="dialogId"\n\t\t\t\t:uploaderIds="uploaderIds"\n\t\t\t\t:sourceFilesCount="sourceFilesCount"\n\t\t\t\t:textareaValue="textareaValue"\n\t\t\t\t@close="$emit('close')"\n\t\t\t\t@sendFiles="onSendFiles"\n\t\t\t\t@updateTitle="onUpdateTitle"\n\t\t\t/>\n\t\t</MessengerPopup>\n\t`};const Xe={[Q.ChatType.openChannel]:N.Loc.getMessage("IM_TEXTAREA_MENTION_OPEN_CHANNEL_TYPE"),[Q.ChatType.generalChannel]:N.Loc.getMessage("IM_TEXTAREA_MENTION_OPEN_CHANNEL_TYPE"),[Q.ChatType.channel]:N.Loc.getMessage("IM_TEXTAREA_MENTION_PRIVATE_CHANNEL_TYPE"),[Q.ChatType.collab]:N.Loc.getMessage("IM_TEXTAREA_MENTION_COLLAB_TYPE"),default:N.Loc.getMessage("IM_TEXTAREA_MENTION_CHAT_TYPE")};const je={name:"MentionItem",components:{ChatAvatar:B.ChatAvatar,ChatTitleWithHighlighting:k.ChatTitleWithHighlighting},props:{dialogId:{type:String,required:true},query:{type:String,default:""},selected:{type:Boolean,default:false},contextDialogId:{type:String,required:true}},emits:["itemClick","itemHover"],computed:{AvatarSize:()=>B.AvatarSize,dialog(){return this.$store.getters["chats/get"](this.dialogId,true)},user(){return this.$store.getters["users/get"](this.dialogId,true)},recentItem(){return this.$store.getters["recent/get"](this.dialogId)},isUser(){return this.dialog.type===Q.ChatType.user},position(){if(!this.isUser){return""}return this.$store.getters["users/getPosition"](this.dialogId)},userItemText(){if(!this.position){return this.$Bitrix.Loc.getMessage("IM_TEXTAREA_MENTION_USER_TYPE")}return F.highlightText(N.Text.encode(this.position),this.query)},chatItemText(){var t;return(t=Xe[this.dialog.type])!=null?t:Xe.default}},methods:{onClick(){this.$emit("itemClick",{dialogId:this.dialogId})}},template:`\n\t\t<div \n\t\t\t@click="onClick" \n\t\t\tclass="bx-im-mention-item__container bx-im-mention-item__scope" \n\t\t\t:class="{'--selected': selected}"\n\t\t\t@mouseover="$emit('itemHover')"\n\t\t>\n\t\t\t<ChatAvatar \n\t\t\t\t:avatarDialogId="dialogId"\n\t\t\t\t:contextDialogId="dialogId"\n\t\t\t\t:size="AvatarSize.M" \n\t\t\t\tclass="bx-im-mention-item__avatar-container" \n\t\t\t/>\n\t\t\t<div class="bx-im-mention-item__content-container">\n\t\t\t\t<ChatTitleWithHighlighting \n\t\t\t\t\t:dialogId="dialogId" \n\t\t\t\t\t:textToHighlight="query" \n\t\t\t\t\tclass="bx-im-mention-item__title"\n\t\t\t\t/>\n\t\t\t\t<div v-if="isUser" class="bx-im-mention-item__position" :title="position" v-html="userItemText"></div>\n\t\t\t\t<div v-else class="bx-im-mention-item__position" :title="chatItemText">{{ chatItemText }}</div>\n\t\t\t</div>\n\t\t</div>\n\t`};const ze={name:"MentionEmptyState",template:`\n\t\t<div class="bx-im-mention-empty-state__scope bx-im-mention-empty-state__container">\n\t\t\t<span class="bx-im-mention-empty-state__icon"></span>\n\t\t\t<span class="bx-im-mention-empty-state__title">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_TEXTAREA_MENTION_EMPTY_STATE') }}\n\t\t\t</span>\n\t\t</div>\n\t`};const qe={name:"MentionLoadingState",components:{Spinner:X.Spinner},computed:{SpinnerSize:()=>X.SpinnerSize,SpinnerColor:()=>X.SpinnerColor},template:`\n\t\t<div class="bx-im-mention-loading-state__scope bx-im-mention-loading-state__container">\n\t\t\t<div class="bx-im-mention-loading-state__loader">\n\t\t\t\t<Spinner :size="SpinnerSize.XXS" :color="SpinnerColor.grey"/>\n\t\t\t</div>\n\t\t\t<span class="bx-im-mention-loading-state__title">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_TEXTAREA_MENTION_LOADING_STATE') }}\n\t\t\t</span>\n\t\t</div>\n\t`};const Ke={name:"MentionContentFooter",components:{Loader:X.Loader},props:{isLoading:{type:Boolean,default:false}},computed:{arrowsControlTitle(){return this.$Bitrix.Loc.getMessage("IM_TEXTAREA_MENTION_ARROWS_CONTROL").replace("##ARROWS_ICON##","")},enterControlTitle(){return this.$Bitrix.Loc.getMessage("IM_TEXTAREA_MENTION_ENTER_CONTROL")},escControlTitle(){return this.$Bitrix.Loc.getMessage("IM_TEXTAREA_MENTION_ESC_CONTROL")}},template:`\n\t\t<div class="bx-im-mention-content-footer__container bx-im-mention-content-footer__scope">\n\t\t\t<div class="bx-im-mention-content-footer__controls">\n\t\t\t\t<div class="bx-im-mention-content-footer__control">\n\t\t\t\t\t<span class="bx-im-mention-content-footer__arrows-control-key"></span>\n\t\t\t\t\t<span class="bx-im-mention-content-footer__control-description">\n\t\t\t\t\t\t{{ arrowsControlTitle }}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div class="bx-im-mention-content-footer__control">\n\t\t\t\t\t<span class="bx-im-mention-content-footer__control-key">Enter</span>\n\t\t\t\t\t<span class="bx-im-mention-content-footer__control-description">{{ enterControlTitle }}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class="bx-im-mention-content-footer__control">\n\t\t\t\t\t<span class="bx-im-mention-content-footer__control-key">Esc</span>\n\t\t\t\t\t<span class="bx-im-mention-content-footer__control-description">{{ escControlTitle }}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<Loader v-if="isLoading" class="bx-im-mention-content-footer__loader" />\n\t\t</div>\n\t`};const Ge="ui.entityselector.doSearch";var We=babelHelpers.classPrivateFieldLooseKey("storeUpdater");var Qe=babelHelpers.classPrivateFieldLooseKey("restClient");var Ve=babelHelpers.classPrivateFieldLooseKey("searchConfig");var Ye=babelHelpers.classPrivateFieldLooseKey("searchRequest");var Ze=babelHelpers.classPrivateFieldLooseKey("getDialogIdAndDate");class Je{constructor(t){Object.defineProperty(this,Ze,{value:es});Object.defineProperty(this,Ye,{value:ts});Object.defineProperty(this,We,{writable:true,value:void 0});Object.defineProperty(this,Qe,{writable:true,value:void 0});Object.defineProperty(this,Ve,{writable:true,value:void 0});babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve]=t;babelHelpers.classPrivateFieldLooseBase(this,We)[We]=new D.StoreUpdater;babelHelpers.classPrivateFieldLooseBase(this,Qe)[Qe]=U.Core.getRestClient()}async search(t){const e=await babelHelpers.classPrivateFieldLooseBase(this,Ye)[Ye](t);await babelHelpers.classPrivateFieldLooseBase(this,We)[We].update(e);return babelHelpers.classPrivateFieldLooseBase(this,Ze)[Ze](e)}async loadChatParticipants(t){const e={order:{lastSendMessageId:"desc"},dialogId:t,limit:50};let s=[];try{const t=await babelHelpers.classPrivateFieldLooseBase(this,Qe)[Qe].callMethod(Q.RestMethod.imV2ChatUserList,e);s=t.data()}catch(t){console.error("Mention search service: load chat participants error",t)}void(new H.UserManager).setUsersToModel(s);return babelHelpers.classPrivateFieldLooseBase(this,Ze)[Ze](s)}}async function ts(t){const e={json:D.getSearchConfig(babelHelpers.classPrivateFieldLooseBase(this,Ve)[Ve])};e.json.searchQuery={queryWords:O.Utils.text.getWordsFromString(t),query:t};let s=[];try{const t=await N.ajax.runAction(Ge,e);R.Logger.warn("Mention search service: request result",t);s=t.data.dialog.items}catch(t){R.Logger.warn("Mention search service: request error",t)}return s}function es(t){return t.map((t=>{var e,s;return{dialogId:t.id.toString(),dateMessage:(e=(s=t.customData)==null?void 0:s.dateMessage)!=null?e:""}}))}var ss=babelHelpers.classPrivateFieldLooseKey("localSearch");var os=babelHelpers.classPrivateFieldLooseKey("baseServerSearch");var is=babelHelpers.classPrivateFieldLooseKey("localCollection");var ns=babelHelpers.classPrivateFieldLooseKey("isSelfDialogId");var ls=babelHelpers.classPrivateFieldLooseKey("getDialogIds");class as{constructor(t){Object.defineProperty(this,ls,{value:ms});Object.defineProperty(this,ns,{value:rs});Object.defineProperty(this,ss,{writable:true,value:void 0});Object.defineProperty(this,os,{writable:true,value:void 0});Object.defineProperty(this,is,{writable:true,value:new Map});babelHelpers.classPrivateFieldLooseBase(this,ss)[ss]=new D.LocalSearch(t);babelHelpers.classPrivateFieldLooseBase(this,os)[os]=new Je(t)}async loadChatParticipants(t){const e=await babelHelpers.classPrivateFieldLooseBase(this,os)[os].loadChatParticipants(t);if(babelHelpers.classPrivateFieldLooseBase(this,ns)[ns](t)){return babelHelpers.classPrivateFieldLooseBase(this,ls)[ls](e)}const s=e.filter((t=>!babelHelpers.classPrivateFieldLooseBase(this,ns)[ns](t.dialogId)));s.forEach((t=>{babelHelpers.classPrivateFieldLooseBase(this,is)[is].set(t.dialogId,t)}));return babelHelpers.classPrivateFieldLooseBase(this,ls)[ls](s)}searchLocal(t){const e=[...babelHelpers.classPrivateFieldLooseBase(this,is)[is].values()];const s=babelHelpers.classPrivateFieldLooseBase(this,ss)[ss].search(t,e);const o=D.sortByDate(s);return babelHelpers.classPrivateFieldLooseBase(this,ls)[ls](o)}async search(t){const e=await babelHelpers.classPrivateFieldLooseBase(this,os)[os].search(t);e.forEach((t=>{babelHelpers.classPrivateFieldLooseBase(this,is)[is].set(t.dialogId,t)}));return babelHelpers.classPrivateFieldLooseBase(this,ls)[ls](e)}}function rs(t){return t===U.Core.getUserId().toString()}function ms(t){return t.map((t=>t.dialogId))}const bs={name:"MentionPopupContent",components:{MentionItem:je,MentionContentFooter:Ke,MentionEmptyState:ze,ScrollWithGradient:L.ScrollWithGradient,MentionLoadingState:qe},props:{dialogId:{type:String,required:true},query:{type:String,default:""},searchChats:{type:Boolean,default:true},exclude:{type:Array,default:()=>[]}},emits:["close","adjustPosition"],data(){return{isLoading:false,searchResult:[],chatParticipants:[],chatParticipantsLoaded:false,currentServerQueries:0,needTopShadow:false,needBottomShadow:true,selectedIndex:0,selectedItem:""}},computed:{itemsToShow(){return this.items.filter((t=>!this.exclude.includes(t)))},items(){if(this.preparedQuery.length===0){if(this.needToShowRecentUsersOnStartScreen){return this.usersFromRecent}return this.chatParticipants}return this.searchResult},needToShowRecentUsersOnStartScreen(){return this.chatParticipantsLoaded&&this.chatParticipants.length<=1},usersFromRecent(){return D.getUsersFromRecentItems({withFakeUsers:false}).map((({dialogId:t})=>t))},preparedQuery(){return this.query.trim().toLowerCase()},isEmptyState(){if(this.isLoading){return false}return this.itemsToShow.length===0},searchConfig(){return{chats:this.searchChats,users:true}}},watch:{async isLoading(){await this.adjustPosition()},async searchResult(){await this.adjustPosition()},preparedQuery(t,e){if(t===e){return}this.selectedIndex=0;void this.startSearch(t)}},created(){this.initSettings();this.searchService=new as(this.searchConfig);this.searchOnServerDelayed=N.Runtime.debounce(this.searchOnServer,400,this);void this.loadChatParticipants();N.Event.bind(window,"keydown",this.onKeyDown);A.EventEmitter.subscribe(Q.EventType.mention.selectItem,this.onInsertItem)},beforeUnmount(){N.Event.unbind(window,"keydown",this.onKeyDown);A.EventEmitter.unsubscribe(Q.EventType.mention.selectItem,this.onInsertItem)},methods:{initSettings(){const t=N.Extension.getSettings("im.v2.component.textarea");const e=3;this.minTokenSize=t.get("minSearchTokenSize",e)},async loadChatParticipants(){this.isLoading=true;this.chatParticipants=await this.searchService.loadChatParticipants(this.dialogId);this.searchResult=this.chatParticipants;this.isLoading=false;this.chatParticipantsLoaded=true},async searchOnServer(t){this.currentServerQueries++;const e=await this.searchService.search(t);if(t!==this.preparedQuery){this.isLoading=false;return}this.searchResult=[...new Set([...this.searchResult,...e])];this.currentServerQueries--;this.stopLoader()},async startSearch(t){if(t.length>0){const e=this.searchService.searchLocal(t);if(t!==this.preparedQuery){return}this.searchResult=this.appendResult(e)}if(t.length>=this.minTokenSize){this.isLoading=true;await this.searchOnServerDelayed(t)}if(t.length===0){this.cleanSearchResult()}},stopLoader(){if(this.currentServerQueries>0){return}this.isLoading=false},cleanSearchResult(){this.searchResult=this.chatParticipants},async adjustPosition(){await this.$nextTick();this.$emit("adjustPosition")},onInsertItem(){if(!N.Type.isArrayFilled(this.itemsToShow)){return}this.sendInsertMentionEvent(this.itemsToShow[this.selectedIndex])},onItemClick({dialogId:t}){this.sendInsertMentionEvent(t);this.$emit("close")},sendInsertMentionEvent(t){const e=this.getMentionText(t);const s=O.Utils.text.getMentionBbCode(t,e);A.EventEmitter.emit(Q.EventType.textarea.insertMention,{mentionText:e,mentionReplacement:s,textToReplace:this.query,dialogId:this.dialogId})},getMentionText(t){if(t.startsWith("chat")){return this.$store.getters["chats/get"](t,true).name}return this.$store.getters["users/get"](t,true).name},onKeyDown(t){if(t.key==="ArrowDown"){this.selectedIndex=this.selectedIndex===this.itemsToShow.length-1?0:this.selectedIndex+1}if(t.key==="ArrowUp"){this.selectedIndex=this.selectedIndex===0?this.itemsToShow.length-1:this.selectedIndex-1}const e=this.getDomElementById(this.selectedIndex);if(!e){this.selectedIndex=0}this.selectedItem=this.itemsToShow[this.selectedIndex];this.scrollToItem(e)},scrollToItem(t){const e=document.querySelector(".bx-im-mention-popup-content__container .bx-im-scroll-with-gradient__content");const s=N.Dom.getPosition(e);const o=N.Dom.getPosition(t);const i=12;if(o.top<s.top){e.scrollTop-=s.top-o.top+i}else if(o.bottom>s.bottom){e.scrollTop+=o.bottom-s.bottom+i}},onItemHover(t){this.selectedIndex=t;this.selectedItem=this.itemsToShow[this.selectedIndex]},getDomElementById(t){return this.$refs["mention-content"].querySelector(`[data-index="${t}"]`)},appendResult(t){const e=this.searchResult.filter((e=>t.includes(e)));return[...new Set([...e,...t])]},isChat(t){return t.startsWith("chat")}},template:`\n\t\t<div class="bx-im-mention-popup-content__container" ref="mention-content">\n\t\t\t<ScrollWithGradient \n\t\t\t\tv-if="itemsToShow.length > 0" \n\t\t\t\t:gradientHeight="13" \n\t\t\t\t:containerMaxHeight="200"\n\t\t\t\t:withShadow="false"\n\t\t\t>\n\t\t\t\t<div class="bx-im-mention-popup-content__items">\n\t\t\t\t\t<MentionItem\n\t\t\t\t\t\tv-for="(itemDialogId, index) in itemsToShow"\n\t\t\t\t\t\t:data-index="index"\n\t\t\t\t\t\t:dialogId="itemDialogId"\n\t\t\t\t\t\t:contextDialogId="dialogId"\n\t\t\t\t\t\t:query="query"\n\t\t\t\t\t\t:selected="selectedIndex === index"\n\t\t\t\t\t\t@itemClick="onItemClick"\n\t\t\t\t\t\t@itemHover="onItemHover(index)"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</ScrollWithGradient>\n\t\t\t<MentionEmptyState v-if="isEmptyState" />\n\t\t\t<MentionLoadingState v-if="isLoading && itemsToShow.length === 0" />\n\t\t\t<MentionContentFooter :isLoading="isLoading" />\n\t\t</div>\n\t`};const ds="im-mention-popup";const cs={name:"MentionPopup",components:{MessengerPopup:z.MessengerPopup,MentionPopupContent:bs},props:{bindElement:{type:Object,required:true},dialogId:{type:String,required:true},query:{type:String,default:""}},emits:["close"],computed:{POPUP_ID:()=>ds,dialog(){return this.$store.getters["chats/get"](this.dialogId,true)},isCopilotType(){return this.dialog.type===Q.ChatType.copilot},needToShowMentionPopup(){if(this.isCopilotType){return this.dialog.userCounter>2}return true},excludedChatsFromMentions(){if(!this.isCopilotType){return[]}const t=this.$store.getters["users/bots/getCopilotUserId"];if(t&&this.dialog.userCounter>2){return[t.toString()]}return[]},searchChats(){return!this.isCopilotType},config(){return{height:200,width:426,padding:0,bindElement:this.bindElement,offsetTop:2,offsetLeft:0,fixed:true,bindOptions:{position:"top"},className:"bx-im-mention-popup__scope"}}},template:`\n\t\t<MessengerPopup\n\t\t\tv-if="needToShowMentionPopup"\n\t\t\t:config="config"\n\t\t\t@close="$emit('close');"\n\t\t\t:id="POPUP_ID"\n\t\t\tv-slot="{adjustPosition}"\n\t\t>\n\t\t\t<MentionPopupContent \n\t\t\t\t:dialogId="dialogId"\n\t\t\t\t:query="query"\n\t\t\t\t:exclude="excludedChatsFromMentions"\n\t\t\t\t:searchChats="searchChats"\n\t\t\t\t@close="$emit('close');"\n\t\t\t\t@adjustPosition="adjustPosition()"\n\t\t\t/>\n\t\t</MessengerPopup>\n\t`};const ys={name:"EditPanel",props:{messageId:{type:[Number,String],required:true}},emits:["close"],computed:{message(){return this.$store.getters["messages/getById"](this.messageId)},preparedText(){return $.Parser.purifyMessage(this.message)}},methods:{loc(t){return this.$Bitrix.Loc.getMessage(t)}},template:`\n\t\t<div class="bx-im-message-panel__container">\n\t\t\t<div class="bx-im-message-panel__icon"></div>\n\t\t\t<div class="bx-im-message-panel__content">\n\t\t\t\t<div class="bx-im-message-panel__title">{{ loc('IM_TEXTAREA_EDIT_MESSAGE_TITLE') }}</div>\n\t\t\t\t<div class="bx-im-message-panel__text">{{ preparedText }}</div>\n\t\t\t</div>\n\t\t\t<div @click="$emit('close')" class="bx-im-message-panel__close"></div>\n\t\t</div>\n\t`};const ps=40;const hs={name:"ReplyPanel",props:{messageId:{type:Number,required:true}},emits:["close"],computed:{message(){return this.$store.getters["messages/getById"](this.messageId)},replyAuthor(){return this.$store.getters["users/get"](this.message.authorId)},replyTitle(){return this.replyAuthor?this.replyAuthor.name:this.loc("IM_DIALOG_CHAT_QUOTE_DEFAULT_TITLE")},messageFile(){return this.$store.getters["messages/getMessageFiles"](this.message.id)[0]},isFile(){return this.messageFile&&this.messageFile.type===Q.FileType.file},isVideo(){return this.messageFile&&this.messageFile.type===Q.FileType.video},isImage(){return this.messageFile&&this.messageFile.type===Q.FileType.image},isAudio(){return this.messageFile&&this.messageFile.type===Q.FileType.audio},showIcon(){return this.messageFile?!this.messageFile.urlPreview:false},truncatedFileName(){return O.Utils.file.getShortFileName(this.messageFile.name,ps)},isMessageDeleted(){return this.message.isDeleted},messageText(){if(this.isFile){return this.truncatedFileName}if(this.isAudio){return this.loc("IM_TEXTAREA_REPLY_AUDIO_TITLE")}if(this.isMessageDeleted){return this.loc("IM_TEXTAREA_REPLY_DELETED_TITLE")}return $.Parser.purify(this.message)},iconClass(){const t=O.Utils.file.getIconTypeByFilename(this.messageFile.name);return`ui-icon-file-${t}`}},methods:{loc(t){return this.$Bitrix.Loc.getMessage(t)}},template:`\n\t\t<div class="bx-im-message-panel__container">\n\t\t\t<div class="bx-im-message-panel__icon --quote"></div>\n\t\t\t<div v-if="showIcon" class="bx-im-message-panel-file__icon">\n\t\t\t\t<div :class="iconClass" class="ui-icon"><i></i></div>\n\t\t\t</div>\n\t\t\t<div v-else-if="isImage || isVideo" class="bx-im-message-panel__image">\n\t\t\t\t<img \n\t\t\t\t\tv-if="this.messageFile.urlPreview" \n\t\t\t\t\tclass="bx-im-message-panel__image_img" \n\t\t\t\t\t:src="this.messageFile.urlPreview"\n\t\t :alt="this.messageFile.name"\n\t\t\t\t>\n\t\t\t</div>\n\t\t\t<div class="bx-im-message-panel__content">\n\t\t\t\t<div class="bx-im-message-panel__title">{{ replyTitle }}</div>\n\t\t\t\t<div class="bx-im-message-panel__text">{{ messageText }}</div>\n\t\t\t</div>\n\t\t\t<div @click="$emit('close')" class="bx-im-message-panel__close"></div>\n\t\t</div>\n\t`};const us=5;const gs={name:"ForwardPanel",props:{context:{type:Object,required:true}},emits:["close"],computed:{forwardContext(){return this.context},messagesIds(){return this.forwardContext.messagesIds},sortedMessagesIds(){return[...this.messagesIds].sort()},authorsOfMessages(){return this.sortedMessagesIds.map((t=>{const e=this.$store.getters["messages/isForward"](t);const s=this.getMessage(t);const o=e?s.forward.userId:s.authorId;return this.$store.getters["users/get"](o,true)}))},uniqueUsers(){const t={};this.authorsOfMessages.forEach((e=>{if(!t[e.id]){t[e.id]=e}}));return Object.values(t)},forwardMessagesCount(){return this.messagesIds.length},forwardAuthorName(){const t=this.authorsOfMessages[0];let e=t.name;if(t.id===0){e=this.loc("IM_TEXTAREA_FORWARD_SYSTEM")}return`${e}: `},displayedAuthorNames(){const t=this.authorsOfMessages.filter((t=>t.id===0)).length;const e=this.uniqueUsers.slice(0,us);const s=[];e.forEach((e=>{if(e.id===0){return t>1?s.push(this.loc("IM_TEXTAREA_FORWARD_MESSAGES_SYSTEM")):s.push(this.loc("IM_TEXTAREA_FORWARD_SYSTEM"))}if(this.isOwnMessage(e)){return s.unshift(this.loc("IM_TEXTAREA_FORWARD_OWN_MESSAGE"))}return s.push(e.firstName)}));return s.join(", ")},formattedAuthorNames(){if(this.remainingAuthors>0){return N.Loc.getMessage("IM_TEXTAREA_FORWARD_TEXT_MORE",{"[name]":'<span class="bx-im-message-panel__forward-author_name">',"[/name]":"</span>","#USER_LIST#":N.Text.encode(this.displayedAuthorNames),"[remaining]":'<span class="bx-im-message-panel__forward-author_remaining">',"[/remaining]":"</span>","#COUNT#":this.remainingAuthors})}return this.loc("IM_TEXTAREA_FORWARD_TEXT",{"#USER_LIST#":N.Text.encode(this.displayedAuthorNames)})},remainingAuthors(){return this.uniqueUsers.length-us},messageText(){return $.Parser.purifyMessage(this.getMessage(this.messagesIds))},titleText(){if(this.forwardMessagesCount>1){return this.formattedMessageCounter}return this.loc("IM_TEXTAREA_FORWARD_TITLE")},formattedMessageCounter(){return N.Loc.getMessagePlural("IM_TEXTAREA_FORWARD_TITLE_MULTIPLE_COUNT",this.forwardMessagesCount,{"#COUNT_MESSAGES#":this.forwardMessagesCount})}},methods:{isOwnMessage(t){return t.id===U.Core.getUserId()&&this.uniqueUsers.length>1},getMessage(t){return this.$store.getters["messages/getById"](t)},loc(t,e={}){return this.$Bitrix.Loc.getMessage(t,e)}},template:`\n\t\t<div class="bx-im-message-panel__container">\n\t\t\t<div class="bx-im-message-panel__icon --forward"></div>\n\t\t\t<div class="bx-im-message-panel__content">\n\t\t\t\t<div class="bx-im-message-panel__title">{{ titleText }}</div>\n\t\t\t\t<div v-if="forwardMessagesCount > 1" class="bx-im-message-panel__text" :class="{'--compact': remainingAuthors > 0}">\n\t\t\t\t\t<div class="bx-im-message-panel__bulk-forward-author" v-html="formattedAuthorNames"></div>\n\t\t\t\t</div>\n\t\t\t\t<div v-else class="bx-im-message-panel__text">\n\t\t\t\t\t<span class="bx-im-message-panel__forward-author">{{ forwardAuthorName }}</span>\n\t\t\t\t\t<span class="bx-im-message-panel__forward-message-text">{{ messageText }}</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div @click="$emit('close')" class="bx-im-message-panel__close"></div>\n\t\t</div>\n\t`};const vs={name:"ForwardEntityPanel",props:{context:{type:Object,required:true}},emits:["close"],computed:{forwardedEntityContext(){return this.context},config(){return this.forwardedEntityContext.entityConfig}},methods:{loc(t){return this.$Bitrix.Loc.getMessage(t)}},template:`\n\t\t<div class="bx-im-message-panel__container">\n\t\t\t<div class="bx-im-message-panel__icon --forward"></div>\n\t\t\t<div class="bx-im-message-panel__content">\n\t\t\t\t<div class="bx-im-message-panel__title">{{ config.title }}</div>\n\t\t\t\t<div class="bx-im-message-panel__text">\n\t\t\t\t\t<span class="bx-im-message-panel__forward-author">author</span>\n\t\t\t\t\t<span class="bx-im-message-panel__forward-message-text">message</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div @click="$emit('close')" class="bx-im-message-panel__close"></div>\n\t\t</div>\n\t`};const fs={name:"MarketAppPopup",components:{MessengerPopup:z.MessengerPopup,Spinner:X.Spinner},props:{bindElement:{type:Object,required:true},entityId:{type:String,required:true},width:{type:Number,required:true},height:{type:Number,required:true},dialogId:{type:String,required:true}},emits:["close"],data(){return{isLoading:true,handleResult:true}},computed:{SpinnerSize:()=>X.SpinnerSize,popupConfig(){return{width:this.width,height:this.height,bindElement:this.bindElement,bindOptions:{position:"top"},offsetTop:0,offsetLeft:0,padding:0}}},created(){this.marketManager=j.MarketManager.getInstance()},mounted(){const t={dialogId:this.dialogId};this.marketManager.loadPlacement(this.entityId,t).then((t=>{if(!this.handleResult){return}this.isLoading=false;N.Runtime.html(this.$refs["im-messenger-textarea-placement"],t)}))},methods:{onClose(){this.handleResult=false;this.$emit("close")}},template:`\n\t\t<MessengerPopup\n\t\t\t:config="popupConfig"\n\t\t\t@close="onClose"\n\t\t\tid="im-market-app-popup"\n\t\t>\n\t\t\t<div class="bx-im-market-app-popup__container">\n\t\t\t\t<div v-if="isLoading" class="bx-im-market-app-popup__loader-container">\n\t\t\t\t\t<Spinner :size="SpinnerSize.S"/>\n\t\t\t\t</div>\n\t\t\t\t<div ref="im-messenger-textarea-placement" class="bx-im-market-app-popup__placement-container"></div>\n\t\t\t</div>\n\t\t</MessengerPopup>\n\t`};const Is={name:"MarketAppItem",components:{MarketAppPopup:fs},props:{item:{type:Object,required:true},hideTitle:{type:Boolean,default:false},dialogId:{type:String,required:true}},data(){return{showApp:false}},computed:{marketItem(){return this.item},iconClass(){return`fa ${this.marketItem.options.iconName}`},iconColor(){return this.marketItem.options.color}},methods:{onAppClick(){this.showApp=!this.showApp}},template:`\n\t\t<div \n\t\t\tclass="bx-im-market-app-item__container" \n\t\t\t:class="{'--short': hideTitle}" \n\t\t\t:title="marketItem.title"\n\t\t\t@click="onAppClick"\n\t\t\tref="market-app"\n\t\t>\n\t\t\t<div class="bx-im-market-app-item__icon-container" :style="{backgroundColor: iconColor}">\n\t\t\t\t<i :class="iconClass" aria-hidden="true"></i>\n\t\t\t</div>\n\t\t\t<div v-if="!hideTitle" class="bx-im-market-app-item__title-container" :title="marketItem.title">\n\t\t\t\t<div class="bx-im-market-app-item__title-text">\n\t\t\t\t\t{{ marketItem.title }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<MarketAppPopup \n\t\t\t\tv-if="showApp" \n\t\t\t\t:bindElement="$refs['market-app']" \n\t\t\t\t:entityId="marketItem.id"\n\t\t\t\t:width="marketItem.options.width"\n\t\t\t\t:height="marketItem.options.height"\n\t\t\t\t:dialogId="dialogId"\n\t\t\t\t@close="onAppClick"\n\t\t\t/>\n\t\t</div>\n\t`};const Ms={name:"MarketShowMorePopupContentItem",components:{MarketAppPopup:fs},props:{item:{type:Object,required:true},dialogId:{type:String,required:true}},data(){return{showApp:false}},computed:{marketItem(){return this.item},iconClass(){return`fa ${this.marketItem.options.iconName}`},iconColor(){return this.marketItem.options.color}},methods:{onAppClick(){this.showApp=!this.showApp}},template:`\n\t\t<div \n\t\t\tclass="bx-im-market-show-more-popup-content-item__container"\n\t\t\t:title="marketItem.title"\n\t\t\t@click="onAppClick"\n\t\t\tref="market-app"\n\t\t>\n\t\t\t<div class="bx-im-market-show-more-popup-content-item__icon-container" :style="{backgroundColor: iconColor}">\n\t\t\t\t<i :class="iconClass" aria-hidden="true"></i>\n\t\t\t</div>\n\t\t\t<div class="bx-im-market-show-more-popup-content-item__title-container">\n\t\t\t\t<div class="bx-im-market-show-more-popup-content-item__title-text">\n\t\t\t\t\t{{ marketItem.title }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<MarketAppPopup\n\t\t\t\tv-if="showApp" \n\t\t\t\t:bindElement="$refs['market-app']" \n\t\t\t\t:entityId="marketItem.id"\n\t\t\t\t:width="marketItem.options.width"\n\t\t\t\t:height="marketItem.options.height" \n\t\t\t\t:dialogId="dialogId"\n\t\t\t\t@close="onAppClick"\n\t\t\t/>\n\t\t</div>\n\t`};const xs={name:"MarketShowMorePopupContent",components:{MarketShowMorePopupContentItem:Ms},props:{marketApps:{type:Array,required:true},dialogId:{type:String,required:true}},data(){return{isLoading:true,needTopShadow:false,needBottomShadow:true}},methods:{onListScroll(t){this.needBottomShadow=t.target.scrollTop+t.target.clientHeight!==t.target.scrollHeight;if(t.target.scrollTop===0){this.needTopShadow=false;return}this.needTopShadow=true}},template:`\n\t\t<div class="bx-im-market-show-more-popup-content__scope bx-im-market-show-more-popup-content__container">\n\t\t\t<div v-if="needTopShadow" class="bx-im-market-show-more-popup-content__shadow --top">\n\t\t\t\t<div class="bx-im-market-show-more-popup-content__shadow-inner"></div>\n\t\t\t</div>\n\t\t\t<div @scroll="onListScroll" class="bx-im-market-show-more-popup-content__items-container">\n\t\t\t\t<MarketShowMorePopupContentItem\n\t\t\t\t\tv-for="item in marketApps"\n\t\t\t\t\t:item="item"\n\t\t\t\t\t:dialogId="dialogId"\n\t\t\t\t\t@onAppClick="$emit('close')"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div v-if="needBottomShadow" class="bx-im-market-show-more-popup-content__shadow --bottom">\n\t\t\t\t<div class="bx-im-market-show-more-popup-content__shadow-inner"></div>\n\t\t\t</div>\n\t\t</div>\n\t`};const _s={name:"MarketShowMorePopup",components:{MessengerPopup:z.MessengerPopup,MarketShowMorePopupContent:xs},props:{marketApps:{type:Array,required:true},dialogId:{type:String,required:true}},emits:["close"],data(){return{showPopup:false}},computed:{popupConfig(){return{titleBar:this.$Bitrix.Loc.getMessage("IM_TEXTAREA_MARKET_OTHER_APPS"),closeIcon:true,width:302,height:422,bindElement:this.$refs["textarea-show-more-market-apps"],bindOptions:{position:"top"},offsetTop:0,offsetLeft:0,padding:0,contentPadding:0,contentBackground:"#fff",className:"bx-im-market-show-more-popup__scope"}},showMoreButtonText(){return this.$Bitrix.Loc.getMessage("IM_TEXTAREA_MARKET_APPS_SHOW_MORE_BUTTON").replace("#NUMBER#",this.marketApps.length)}},template:`\n\t\t<div\n\t\t\t@click="showPopup = true"\n\t\t\tclass="bx-im-market-apps-panel__more-items-button"\n\t\t\t:class="{'--active': showPopup}"\n\t\t\tref="textarea-show-more-market-apps"\n\t\t>\n\t\t\t{{ showMoreButtonText }}\n\t\t</div>\n\t\t<MessengerPopup\n\t\t\tv-if="showPopup"\n\t\t\t:config="popupConfig"\n\t\t\t@close="showPopup = false"\n\t\t\tid="im-market-apps-more-popup"\n\t\t>\n\t\t\t<MarketShowMorePopupContent :marketApps='marketApps' :dialogId="dialogId" @close="showPopup = false" />\n\t\t</MessengerPopup>\n\t`};const Ss=5;const Ts=15;const Es={name:"MarketAppsPanel",components:{MarketAppItem:Is,MarketShowMorePopup:_s},props:{dialogId:{type:String,required:true}},computed:{marketMenuItems(){return j.MarketManager.getInstance().getAvailablePlacementsByType(Q.PlacementType.textarea,this.dialogId)},marketItemsToShow(){const t=this.hideTitle?Ts:Ss;return{displayedItems:this.marketMenuItems.slice(0,t),hiddenItems:this.marketMenuItems.slice(t)}},hideTitle(){return this.marketMenuItems.length>Ss},needMoreButton(){return this.marketItemsToShow.hiddenItems.length>0},isEmptyState(){return this.marketItemsToShow.displayedItems.length===0}},template:`\n\t\t<div class="bx-im-market-apps-panel__scope">\n\t\t\t<div v-if="isEmptyState" class="bx-im-market-apps-panel__empty-state-container">\n\t\t\t\t<div class="bx-im-market-apps-panel__empty-state-icon"></div>\n\t\t\t\t<div class="bx-im-market-apps-panel__empty-state-text">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_TEXTAREA_MARKET_APPS_EMPTY_STATE') }}\n\t\t\t\t</div>\n\t\t\t\t<div class="bx-im-market-apps-panel__empty-state-button"></div>\n\t\t\t</div>\n\t\t\t<div v-else class="bx-im-market-apps-panel__container">\n\t\t\t\t<div class="bx-im-market-apps-panel__items-container" :class="{'--short': hideTitle}">\n\t\t\t\t\t<MarketAppItem\n\t\t\t\t\t\tv-for="item in marketItemsToShow.displayedItems"\n\t\t\t\t\t\t:item="item"\n\t\t\t\t\t\t:hideTitle="hideTitle"\n\t\t\t\t\t\t:dialogId="dialogId"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<MarketShowMorePopup \n\t\t\t\t\tv-if="needMoreButton" \n\t\t\t\t\t:marketApps="marketItemsToShow.hiddenItems"\n\t\t\t\t\t:dialogId="dialogId"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t\t\n\t`};const Ps={name:"TextareaPanel",components:{EditPanel:ys,ReplyPanel:hs,ForwardPanel:gs,ForwardEntityPanel:vs,MarketAppsPanel:Es},props:{dialogId:{type:String,required:true},type:{type:String,required:true},context:{type:Object,required:true}},emits:["close"],computed:{PanelType:()=>Q.TextareaPanelType,configContext(){return this.context}},template:`\n\t\t<EditPanel v-if="type === PanelType.edit" :messageId="configContext.messageId" @close="$emit('close')" />\n\t\t<ReplyPanel v-if="type === PanelType.reply" :messageId="configContext.messageId" @close="$emit('close')" />\n\t\t<ForwardPanel v-if="type === PanelType.forward" :context="configContext" @close="$emit('close')" />\n\t\t<ForwardEntityPanel v-if="type === PanelType.forwardEntity" :context="configContext" @close="$emit('close')" />\n\t\t<MarketAppsPanel v-if="type === PanelType.market" :dialogId="dialogId" />\n\t`};const ws=24;const Cs={name:"AutoDeleteSelector",components:{BIcon:q.BIcon,AutoDeleteHint:K.AutoDeleteHint,AutoDeletePopup:K.AutoDeletePopup},props:{dialogId:{type:String,required:true}},data(){return{showAutoDeleteMessagesPopup:false,showAutoDeleteMessagesHintPopup:false,hintConfig:{width:316,offsetLeft:-106,offsetTop:5,angle:{offset:141}}}},computed:{OutlineIcons:()=>q.Outline,ICON_SIZE:()=>ws,Color:()=>Q.Color,isAutoDeleteAllowed(){return W.AutoDeleteManager.isAutoDeleteAllowed(this.dialogId)},dialog(){return this.$store.getters["chats/get"](this.dialogId,true)},autoDeleteDelayInHours(){return this.$store.getters["chats/autoDelete/getDelay"](this.dialog.chatId)}},methods:{onIconClick(){if(!this.isAutoDeleteAllowed){this.showAutoDeleteMessagesHintPopup=true;return}this.showAutoDeleteMessagesPopup=true},closePopup(){this.showAutoDeleteMessagesPopup=false},hideAutoDeleteMessagesHintPopup(){this.showAutoDeleteMessagesHintPopup=false},onAutoDeleteDelayChange(t){this.getChatService().setMessagesAutoDeleteDelay(this.dialogId,t);this.$emit("close")},getChatService(){if(!this.chatService){this.chatService=new G.ChatService}return this.chatService},loc(t,e={}){return this.$Bitrix.Loc.getMessage(t,e)}},template:`\n\t\t<div ref="autoDeleteIcon" class="bx-im-textarea__icon-container">\n\t\t\t<BIcon \n\t\t\t\t:name="OutlineIcons.TIMER_DOT"\n\t\t\t\t:color="Color.accentBlue"\n\t\t\t\t:title="loc('IM_TEXTAREA_AUTO_DELETE_TITLE')"\n\t\t\t\t:size="ICON_SIZE"\n\t\t\t\tclass="bx-im-textarea__icon"\n\t\t\t\t@click="onIconClick"\n\t\t\t/>\n\t\t</div>\n\t\t<AutoDeletePopup\n\t\t\tv-if="showAutoDeleteMessagesPopup"\n\t\t\t:autoDeleteDelay="autoDeleteDelayInHours"\n\t\t\t@close="closePopup"\n\t\t\t@autoDeleteDelayChange="onAutoDeleteDelayChange"\n\t\t/>\n\t\t<AutoDeleteHint\n\t\t\tv-if="showAutoDeleteMessagesHintPopup"\n\t\t\t:bindElement="$refs['autoDeleteIcon']"\n\t\t\t:config="hintConfig"\n\t\t\t@close="hideAutoDeleteMessagesHintPopup"\n\t\t/>\n\t`};const As=new Set([Q.TextareaPanelType.edit,Q.TextareaPanelType.reply,Q.TextareaPanelType.forward,Q.TextareaPanelType.forwardEntity]);const Ls={max:400,min:22};const Fs=24;const ks={components:{UploadMenu:Le,SmileSelector:Ee,SendButton:Fe,UploadPreviewPopup:Ne,MentionPopup:cs,TextareaPanel:Ps,AudioInput:pe,AutoDeleteSelector:Cs,BIcon:q.BIcon},props:{dialogId:{type:String,default:""},placeholder:{type:String,default:""},withCreateMenu:{type:Boolean,default:true},withMarket:{type:Boolean,default:true},withEdit:{type:Boolean,default:true},withUploadMenu:{type:Boolean,default:true},withSmileSelector:{type:Boolean,default:true},withAudioInput:{type:Boolean,default:true},withAutoFocus:{type:Boolean,default:true}},emits:["mounted"],data(){return{text:"",textareaHeight:Ls.min,showMention:false,mentionQuery:"",showUploadPreviewPopup:false,previewPopupUploaderIds:[],previewPopupSourceFilesCount:0,panelType:Q.TextareaPanelType.none,panelContext:{messageId:0}}},computed:{OutlineIcons:()=>q.Outline,ICON_SIZE:()=>Fs,dialog(){return this.$store.getters["chats/get"](this.dialogId,true)},dialogInited(){return this.dialog.inited},replyMode(){return this.panelType===Q.TextareaPanelType.reply},forwardMode(){return this.panelType===Q.TextareaPanelType.forward},forwardEntityMode(){return this.panelType===Q.TextareaPanelType.forwardEntity},editMode(){return this.panelType===Q.TextareaPanelType.edit},marketMode(){return this.panelType===Q.TextareaPanelType.market},isDisabled(){return this.text.trim()===""&&!this.editMode&&!this.forwardMode&&!this.forwardEntityMode},textareaPlaceholder(){if(!this.placeholder){return this.loc("IM_TEXTAREA_PLACEHOLDER_V3")}return this.placeholder},textareaStyle(){let t=`${this.textareaHeight}px`;if(this.textareaHeight==="auto"){t="auto"}return{height:t,maxHeight:t}},textareaMaxLength(){const t=N.Extension.getSettings("im.v2.component.textarea");return t.get("maxLength")},isChannelType(){return n.ChannelManager.isChannel(this.dialogId)},isEmptyText(){return this.text===""},isAutoDeleteEnabled(){return this.$store.getters["chats/autoDelete/isEnabled"](this.dialog.chatId)},marketIconColor(){if(this.marketMode){return Q.Color.accentBlue}return Q.Color.gray40}},watch:{text(t){this.adjustTextareaHeight();this.getDraftManager().setDraftText(this.dialogId,t);if(N.Type.isStringFilled(t)){this.getInputActionService().startAction(l.InputAction.writing)}}},created(){this.initResizeManager();this.restoreTextareaHeight();void this.restorePanel();this.initSendingService();A.EventEmitter.subscribe(Q.EventType.textarea.insertMention,this.onInsertMention);A.EventEmitter.subscribe(Q.EventType.textarea.insertText,this.onInsertText);A.EventEmitter.subscribe(Q.EventType.textarea.editMessage,this.onEditMessage);A.EventEmitter.subscribe(Q.EventType.textarea.replyMessage,this.onReplyMessage);A.EventEmitter.subscribe(Q.EventType.textarea.forwardEntity,this.onForwardEntity);A.EventEmitter.subscribe(Q.EventType.textarea.sendMessage,this.onSendMessage);A.EventEmitter.subscribe(Q.EventType.textarea.insertForward,this.onInsertForward);A.EventEmitter.subscribe(Q.EventType.textarea.openUploadPreview,this.onOpenUploadPreview);A.EventEmitter.subscribe(Q.EventType.dialog.onMessageDeleted,this.onMessageDeleted)},mounted(){void this.initMentionManager();if(this.withAutoFocus){this.focus()}this.$emit("mounted")},beforeUnmount(){this.resizeManager.destroy();this.unbindUploadingService();A.EventEmitter.unsubscribe(Q.EventType.textarea.insertMention,this.onInsertMention);A.EventEmitter.unsubscribe(Q.EventType.textarea.insertText,this.onInsertText);A.EventEmitter.unsubscribe(Q.EventType.textarea.editMessage,this.onEditMessage);A.EventEmitter.unsubscribe(Q.EventType.textarea.replyMessage,this.onReplyMessage);A.EventEmitter.unsubscribe(Q.EventType.textarea.forwardEntity,this.onForwardEntity);A.EventEmitter.unsubscribe(Q.EventType.textarea.sendMessage,this.onSendMessage);A.EventEmitter.unsubscribe(Q.EventType.textarea.insertForward,this.onInsertForward);A.EventEmitter.unsubscribe(Q.EventType.textarea.openUploadPreview,this.onOpenUploadPreview);A.EventEmitter.unsubscribe(Q.EventType.dialog.onMessageDeleted,this.onMessageDeleted)},methods:{sendMessage(){this.text=this.text.trim();if(this.isDisabled||!this.dialogInited){return}const t=this.mentionManager.replaceMentions(this.text);if(this.hasActiveMessageAction()){this.handlePanelAction(t);this.closePanel()}else{this.getSendingService().sendMessage({text:t,dialogId:this.dialogId})}this.getInputActionService().stopAction(l.InputAction.writing);this.clear();this.getDraftManager().clearDraft(this.dialogId);i.SoundNotificationManager.getInstance().playOnce(Q.SoundType.send);this.focus();A.EventEmitter.emit(Q.EventType.textarea.onAfterSendMessage)},handlePanelAction(t){if(this.editMode&&t===""){this.getMessageService().deleteMessages([this.panelContext.messageId])}else if(this.editMode&&t!==""){this.getMessageService().editMessageText(this.panelContext.messageId,t)}else if(this.forwardMode){void this.getSendingService().forwardMessages({text:t,dialogId:this.dialogId,forwardIds:this.panelContext.messagesIds})}else if(this.forwardEntityMode){console.error("sending forwarded entity message")}else if(this.replyMode){this.getSendingService().sendMessage({text:t,dialogId:this.dialogId,replyId:this.panelContext.messageId})}},clear(){var t;this.text="";(t=this.mentionManager)==null?void 0:t.clearMentionReplacements()},hasActiveMessageAction(){return As.has(this.panelType)},closePanel(){if(this.editMode){this.clear()}this.panelType=Q.TextareaPanelType.none;this.panelContext={messageId:0};this.draftManager.setDraftPanel(this.dialogId,this.panelType,this.panelContext)},openEditPanel(t){if(!this.withEdit){return}const e=this.$store.getters["messages/getById"](t);if(e.isDeleted){return}this.panelType=Q.TextareaPanelType.edit;this.panelContext.messageId=t;const s=this.mentionManager.extractMentions(e.text);this.mentionManager.setMentionReplacements(s);this.text=$.Parser.prepareEdit(e);this.focus();this.draftManager.setDraftText(this.dialogId,this.text);this.draftManager.setDraftPanel(this.dialogId,this.panelType,this.panelContext);this.draftManager.setDraftMentions(this.dialogId,s)},openReplyPanel(t){if(this.editMode){this.clear()}this.panelType=Q.TextareaPanelType.reply;this.panelContext.messageId=t;this.focus();this.draftManager.setDraftPanel(this.dialogId,this.panelType,this.panelContext)},openForwardPanel(t){this.panelType=Q.TextareaPanelType.forward;this.panelContext.messageId=0;this.panelContext.messagesIds=t;this.clear();this.focus();this.draftManager.setDraftPanel(this.dialogId,this.panelType,this.panelContext)},async openForwardEntityPanel(t){this.panelType=Q.TextareaPanelType.forwardEntity;this.panelContext.messageId=0;this.panelContext.entityConfig=t;this.clear();this.focus()},toggleMarketPanel(){if(this.marketMode){this.panelType=Q.TextareaPanelType.none;return}this.panelType=Q.TextareaPanelType.market;this.panelContext.messageId=0},async adjustTextareaHeight(){this.textareaHeight="auto";await this.$nextTick();const t=Math.min(Ls.max,this.$refs.textarea.scrollHeight);if(this.resizedTextareaHeight){this.textareaHeight=Math.max(t,this.resizedTextareaHeight);return}this.textareaHeight=Math.max(t,Ls.min)},saveTextareaHeight(){const t=200;clearTimeout(this.saveTextareaTimeout);this.saveTextareaTimeout=setTimeout((()=>{s.LocalStorageManager.getInstance().set(Q.LocalStorageKey.textareaHeight,this.resizedTextareaHeight)}),t)},restoreTextareaHeight(){const t=s.LocalStorageManager.getInstance().get(Q.LocalStorageKey.textareaHeight);const e=Number.parseInt(t,10);if(!e){return}this.resizedTextareaHeight=e;this.textareaHeight=e},checkMessageExists(t){return this.$store.getters["messages/isExists"](t)},verifyPanelContext(t){if(t.messagesIds){return t.messagesIds.every((t=>this.checkMessageExists(t)))}return this.checkMessageExists(t.messageId)},async restorePanel(){const{text:t="",panelType:e=Q.TextareaPanelType.none,panelContext:s={messageId:0}}=await this.getDraftManager().getDraft(this.dialogId);const o=this.panelType===Q.TextareaPanelType.none;if(!o&&!this.verifyPanelContext(s)){return}this.text=t;if(o){this.panelType=e}this.panelContext=s},async onKeyDown(t){g.Analytics.getInstance().onTypeMessage(this.dialog);if(this.showMention){this.mentionManager.onActiveMentionKeyDown(t);return}const e=O.Utils.key.isCombination(t,"Escape");if(this.hasActiveMessageAction()&&e){this.closePanel();return}const s=S.isSendMessageCombination(t);const o=S.isNewLineCombination(t);if(s&&!o){t.preventDefault();this.sendMessage();return}if(o){this.handleNewLine();return}const i=O.Utils.key.isCombination(t,"Tab");if(i){this.handleTab(t);return}const n=O.Utils.key.isExactCombination(t,["Ctrl+b","Ctrl+i","Ctrl+u","Ctrl+s"]);if(n){t.preventDefault();this.text=T.Textarea.handleDecorationTag(this.$refs.textarea,t.code);return}if(this.text===""&&O.Utils.key.isCombination(t,"ArrowUp")){this.handleLastOwnMessageEdit(t);return}this.mentionManager.onKeyDown(t)},handleNewLine(){this.text=T.Textarea.addNewLine(this.$refs.textarea)},handleTab(t){t.preventDefault();if(t.shiftKey){this.text=T.Textarea.removeTab(this.$refs.textarea);return}this.text=T.Textarea.addTab(this.$refs.textarea)},handleLastOwnMessageEdit(t){t.preventDefault();const e=this.$store.getters["messages/getLastOwnMessageId"](this.dialog.chatId);const s=this.$store.getters["messages/isForward"](e);if(e&&!s){this.openEditPanel(e)}},onSendMessage(t){const{text:e,dialogId:s}=t.getData();if(this.dialogId!==s){return}this.getSendingService().sendMessage({text:e,dialogId:this.dialogId})},onResizeStart(t){this.resizeManager.onResizeStart(t,this.textareaHeight)},async onFileSelect({event:t,sendAsFile:e}){const s=this.getMultiUploadingService();const o=await s.uploadFromInput({event:t,sendAsFile:e,dialogId:this.dialogId,autoUpload:false});this.showUploadPreviewPopup=true;this.previewPopupUploaderIds=o.uploaderIds;this.previewPopupSourceFilesCount=o.sourceFilesCount},onDiskFileSelect({files:t}){this.getUploadingService().uploadFileFromDisk(t,this.dialogId)},onInsertMention(t){const{mentionText:e,mentionReplacement:s,dialogId:o,isMentionSymbol:i=true}=t.getData();let{textToReplace:n=""}=t.getData();if(this.dialogId!==o){return}const l=this.mentionManager.addMentionReplacement(e,s);this.draftManager.setDraftMentions(this.dialogId,l);const a=i?this.mentionManager.getMentionSymbol():"";n=`${a}${n}`;this.text=T.Textarea.insertMention(this.$refs.textarea,{textToInsert:e,textToReplace:n});this.mentionManager.clearMentionSymbol()},onInsertText(t){const{dialogId:e}=t.getData();if(this.dialogId!==e){return}this.text=T.Textarea.insertText(this.$refs.textarea,t.getData())},onEditMessage(t){const{messageId:e,dialogId:s}=t.getData();if(this.dialogId!==s){return}this.openEditPanel(e)},onReplyMessage(t){const{messageId:e,dialogId:s}=t.getData();if(this.dialogId!==s){return}this.openReplyPanel(e)},onForwardEntity(t){const{dialogId:e,entityConfig:s}=t.getData();if(this.dialogId!==e){return}this.openForwardEntityPanel(s)},onInsertForward(t){const{messagesIds:e,dialogId:s}=t.getData();if(this.dialogId!==s){return}this.openForwardPanel(e)},async onPaste(t){if(!this.withUploadMenu){return}const e=this.getMultiUploadingService();const s=await e.uploadFromClipboard({clipboardEvent:t,dialogId:this.dialogId,imagesOnly:false,autoUpload:false});if(!N.Type.isArrayFilled(s.uploaderIds)){return}this.showUploadPreviewPopup=true;this.previewPopupUploaderIds=s.uploaderIds;this.previewPopupSourceFilesCount=s.sourceFilesCount},onOpenUploadPreview(t){const{multiUploadingResult:e}=t.getData();this.showUploadPreviewPopup=true;this.previewPopupUploaderIds=e.uploaderIds;this.previewPopupSourceFilesCount=e.sourceFilesCount},onMarketIconClick(){this.toggleMarketPanel()},onMessageDeleted(t){const{messageId:e}=t.getData();if(this.panelContext.messageId===e){this.closePanel()}if(this.panelContext.messagesIds&&this.panelContext.messagesIds.includes(e)){this.closePanel()}},initResizeManager(){this.resizeManager=new ee({direction:Jt.up,maxHeight:Ls.max,minHeight:Ls.min});this.resizeManager.subscribe(ee.events.onHeightChange,(({data:{newHeight:t}})=>{R.Logger.warn("Textarea: Resize height change",t);this.textareaHeight=t}));this.resizeManager.subscribe(ee.events.onResizeStop,(()=>{R.Logger.warn("Textarea: Resize stop");this.resizedTextareaHeight=this.textareaHeight;this.saveTextareaHeight()}))},initSendingService(){if(this.sendingService){return}this.sendingService=b.SendingService.getInstance()},async initMentionManager(){const{mentions:t={}}=await this.getDraftManager().getDraft(this.dialogId);this.mentionManager=new xt(this.$refs.textarea);this.mentionManager.setMentionReplacements(t);this.mentionManager.subscribe(J.showMentionPopup,(t=>{const{mentionQuery:e}=t.getData();this.showMentionPopup(e)}));this.mentionManager.subscribe(J.hideMentionPopup,(()=>{this.closeMentionPopup()}))},getSendingService(){return this.sendingService},getInputActionService(){if(!this.inputSenderService){this.inputSenderService=new Qt(this.dialogId)}return this.inputSenderService},getDraftManager(){if(!this.draftManager){this.draftManager=_.DraftManager.getInstance()}return this.draftManager},getMessageService(){if(!this.messageService){this.messageService=new o.MessageService({chatId:this.dialog.chatId})}return this.messageService},getUploadingService(){if(!this.uploadingService){this.initUploadingService()}return this.uploadingService},initUploadingService(){this.uploadingService=E.UploadingService.getInstance();this.startFileUploadAction=()=>{this.getInputActionService().startAction(l.InputAction.sendingFile)};this.stopFileUploadAction=()=>{this.getInputActionService().stopAction(l.InputAction.sendingFile)};this.uploadingService.subscribe(E.UploadingService.event.uploadStart,this.startFileUploadAction);this.uploadingService.subscribe(E.UploadingService.event.uploadComplete,this.stopFileUploadAction);this.uploadingService.subscribe(E.UploadingService.event.uploadCancel,this.stopFileUploadAction);this.uploadingService.subscribe(E.UploadingService.event.uploadError,this.stopFileUploadAction)},unbindUploadingService(){if(!this.uploadingService){return}this.uploadingService.unsubscribe(E.UploadingService.event.uploadStart,this.startFileUploadAction);this.uploadingService.unsubscribe(E.UploadingService.event.uploadComplete,this.stopFileUploadAction);this.uploadingService.unsubscribe(E.UploadingService.event.uploadCancel,this.stopFileUploadAction);this.uploadingService.unsubscribe(E.UploadingService.event.uploadError,this.stopFileUploadAction)},getMultiUploadingService(){if(!this.multiUploadingService){this.multiUploadingService=new E.MultiUploadingService}return this.multiUploadingService},onSendFilesFromPreviewPopup(t){this.text="";const{text:e,uploaderIds:s}=t;const o=this.mentionManager.replaceMentions(e);s.forEach(((t,e)=>{this.getUploadingService().sendMessageWithFiles({uploaderId:t,text:e===0?o:""})}));this.focus()},closeMentionPopup(){this.showMention=false;this.mentionQuery="";this.mentionManager.onMentionPopupClose()},showMentionPopup(t){this.mentionQuery=t;this.showMention=true},focus(){var t;(t=this.$refs.textarea)==null?void 0:t.focus({preventScroll:true})},loc(t){return this.$Bitrix.Loc.getMessage(t)},onAudioInputStart(){if(this.isEmptyText){return}this.text+=" "},onAudioInputResult(t){this.text+=t}},template:`\n\t\t<div class="bx-im-send-panel__scope bx-im-send-panel__container --ui-context-content-light">\n\t\t\t<div class="bx-im-textarea__container">\n\t\t\t\t<div @mousedown="onResizeStart" class="bx-im-textarea__drag-handle"></div>\n\t\t\t\t<TextareaPanel\n\t\t\t\t\t:type="panelType"\n\t\t\t\t\t:context="panelContext"\n\t\t\t\t\t:dialogId="dialogId"\n\t\t\t\t\t@close="closePanel"\n\t\t\t\t/>\n\t\t\t\t<div class="bx-im-textarea__content" ref="textarea-content">\n\t\t\t\t\t<div class="bx-im-textarea__left">\n\t\t\t\t\t\t<UploadMenu\n\t\t\t\t\t\t\tv-if="withUploadMenu"\n\t\t\t\t\t\t\t:dialogId="dialogId" \n\t\t\t\t\t\t\t@fileSelect="onFileSelect" \n\t\t\t\t\t\t\t@diskFileSelect="onDiskFileSelect" \n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tv-model="text"\n\t\t\t\t\t\t\t:style="textareaStyle"\n\t\t\t\t\t\t\t:placeholder="textareaPlaceholder"\n\t\t\t\t\t\t\t:maxlength="textareaMaxLength"\n\t\t\t\t\t\t\t@keydown="onKeyDown"\n\t\t\t\t\t\t\t@paste="onPaste"\n\t\t\t\t\t\t\tclass="bx-im-textarea__element"\n\t\t\t\t\t\t\tref="textarea"\n\t\t\t\t\t\t\trows="1"\n\t\t\t\t\t\t></textarea>\n\t\t\t\t\t\t<AudioInput\n\t\t\t\t\t\t\tv-if="withAudioInput"\n\t\t\t\t\t\t\t@inputStart="onAudioInputStart"\n\t\t\t\t\t\t\t@inputResult="onAudioInputResult"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="bx-im-textarea__right">\n\t\t\t\t\t\t<div class="bx-im-textarea__action-panel">\n\t\t\t\t\t\t\t<AutoDeleteSelector\n\t\t\t\t\t\t\t\tv-if="isAutoDeleteEnabled"\n\t\t\t\t\t\t\t\t:dialogId="dialogId"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<BIcon\n\t\t\t\t\t\t\t\tv-if="withMarket"\n\t\t\t\t\t\t\t\t:name="OutlineIcons.APPS"\n\t\t\t\t\t\t\t\t:title="loc('IM_TEXTAREA_ICON_APPLICATION')"\n\t\t\t\t\t\t\t\t:size="ICON_SIZE"\n\t\t\t\t\t\t\t\t:color="marketIconColor"\n\t\t\t\t\t\t\t\tclass="bx-im-textarea__icon"\n\t\t\t\t\t\t\t\t@click="onMarketIconClick"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<SmileSelector \n\t\t\t\t\t\t\t\tv-if="withSmileSelector" \n\t\t\t\t\t\t\t\t:dialogId="dialogId" \n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<SendButton :dialogId="dialogId" :editMode="editMode" :isDisabled="isDisabled" @click="sendMessage" />\n\t\t\t<UploadPreviewPopup\n\t\t\t\tv-if="showUploadPreviewPopup"\n\t\t\t\t:dialogId="dialogId"\n\t\t\t\t:uploaderIds="previewPopupUploaderIds"\n\t\t\t\t:sourceFilesCount="previewPopupSourceFilesCount"\n\t\t\t\t:textareaValue="text"\n\t\t\t\t@close="showUploadPreviewPopup = false"\n\t\t\t\t@sendFiles="onSendFilesFromPreviewPopup"\n\t\t\t/>\n\t\t\t<MentionPopup \n\t\t\t\tv-if="showMention" \n\t\t\t\t:bindElement="$refs['textarea-content']"\n\t\t\t\t:dialogId="dialogId"\n\t\t\t\t:query="mentionQuery"\n\t\t\t\t@close="closeMentionPopup"\n\t\t\t/>\n\t\t</div>\n\t`};t.ChatTextarea=ks})(this.BX.Messenger.v2.Component=this.BX.Messenger.v2.Component||{},BX??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Service??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Component?.Elements??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Service??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Calendar?.Sharing??{},BX?.Vote??{},BX?.Messenger?.v2?.Component?.Elements??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX??{},BX?.Main??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Service??{},BX?.Messenger?.v2?.Component?.Message??{},BX?.Messenger?.v2?.Component?.Elements??{},BX??{},BX?.Event??{},BX?.Messenger?.v2?.Component?.Elements??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Component?.Elements??{},BX?.Messenger?.v2?.Component?.Elements??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Application??{},BX?.Messenger?.v2?.Lib??{},BX??{},BX?.Messenger?.v2?.Component?.Elements??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Component?.Elements??{},BX?.UI?.IconSet??{},BX?.Messenger?.v2?.Component?.Elements??{},BX?.Messenger?.v2?.Service??{},BX?.Messenger?.v2?.Lib??{},BX?.Messenger?.v2?.Const??{}); //# sourceMappingURL=textarea.bundle.map.js