uawdijnntqw1x1x1
IP : 13.59.14.52
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
arhangelsk.axolotls.ru
/
a537b
/
component.tar
/
/
dialog/messenger.component.dialog.bundle.map.js000066400000043717147744271350015650 0ustar00{"version":3,"sources":["messenger.component.dialog.bundle.js"],"names":["exports","TemplateType","Object","freeze","message","delimiter","group","historyLoader","unreadLoader","button","ObserverType","history","unread","read","none","MessengerStore","messages","BX","Messenger","Model","Messages","getName","dialogues","Dialogues","LoadButtonTypes","before","after","ReferenceClassName","listItem","listItemBody","listUnreadLoader","Vue","component","props","userId","default","dialogId","chatId","listenEventScrollToBottom","listenEventRequestHistory","listenEventRequestUnread","messageLimit","enableEmotions","enableDateActions","enableCreateContent","showMessageAvatar","showMessageMenu","data","showScrollButton","messageShowCount","messageExtraCount","unreadLoaderShow","unreadLoaderBlocked","historyLoaderBlocked","historyLoaderShow","startMessageLimit","created","this","scrollIsChanged","scrollBlocked","scrollButtonDiff","scrollButtonShowTimeout","scrollPosition","scrollPositionChangeTime","Date","getTime","observers","requestHistoryInterval","requestUnreadInterval","lastAuthorId","firstMessageId","firstUnreadMessageId","lastMessageId","dateFormatFunction","cacheGroupTitle","waitLoadHistory","waitLoadUnread","readMessageQueue","dialog","counter","event","$on","onScrollToBottom","$root","onRequestHistoryAnswer","onRequestUnreadAnswer","window","addEventListener","onWindowFocus","onWindowBlur","beforeDestroy","clearTimeout","clearInterval","$off","removeEventListener","mounted","body","$refs","unreadId","Utils","scrollToFirstUnreadMessage","collection","scrollTop","scrollHeight","offsetHeight","windowFocused","document","hasFocus","beforeUpdate","unreadCounter","updated","_this","$nextTick","scrollTo","computed","localize","getFilteredPhrases","$bitrixMessages","$store","state","elementsWithLimit","_this2","start","length","groupNode","slicedCollection","slice","id","forEach","element","_groupTitle","date","push","Blocks","getGroup","title","authorId","getDelimiter","unreadLastId","statusWriting","writingList","users","map","userName","IM_MESSENGER_DIALOG_WRITES_MESSAGE","replace","join","statusReaded","methods","onDialogClick","testNode","target","className","onCommandClick","$emit","value","dataset","entity","nextSibling","innerHTML","command","type","onScroll","_this3","setTimeout","scrollToBottom","_this4","force","arguments","undefined","scrollToMessageId","params","_this5","callback","_params","_params$start","_params$end","end","_params$increment","increment","_params$duration","duration","diff","currentPosition","easeInOutQuad","current","requestFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","animateScroll","_this6","messageId","requestReadMessage","requestHistoryDelayed","_this7","Logger","log","requestHistory","setInterval","getElementsByClassName","scrollToElementAfterLoadHistory","lastId","requestUnreadDelayed","_this8","requestUnread","error","count","scrollIntoView","scrollToElementAfterLoadUnread","_body","readMessage","onClickByUserName","onClickByMessageMenu","onClickByMessageRetry","_getDateFormat","_this9","create","Main","_getMessage","phrase","getDateFormat","dateFormat","getDateFormatType","Const","groupTitle","format","directives","bx-messenger-dialog-observer","inserted","bindings","vnode","context","getMessageLoaderObserver","observe","unbind","unobserve","template","toJSON","index","offsetTop","elementBody","previousOffsetTop","config","IntersectionObserver","observerCallback","observerOptions","entries","observer","entry","sendReadEvent","isIntersecting","intersectionRatio","rootBounds","height","boundingClientRect","intersectionRect","root","threshold","Array","fill","zero","templateId","templateType","text","getHistoryLoader","getUnreadLoader","getLoadButton"],"mappings":"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","file":"messenger.component.dialog.bundle.map.js"}dialog/config.php000066400000001040147744271350007774 0ustar00<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } return [ 'js' => [ '/bitrix/js/messenger/component/dialog/messenger.component.dialog.bundle.js', ], 'css' => [ '/bitrix/js/messenger/component/dialog/messenger.component.dialog.bundle.css', ], 'rel' => [ 'main.polyfill.complex', 'ui.vue', 'ui.vue.vuex', 'main.polyfill.intersectionobserver', 'ui.vue.directives.lazyload', 'messenger.component.message', 'messenger.model.dialogues', 'messenger.model.messages', ], 'skip_core' => true, ];dialog/messenger.component.dialog.css000066400000016717147744271350014000 0ustar00.bx-im-dialog { display: flex; height: 100%; overflow: hidden; } .bx-im-dialog-list { overflow-y: auto; width: 100%; } .bx-im-dialog-list-box { width: 100%; display: flex; flex-direction: column; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; overflow-x: hidden; overflow-y: auto; padding: 10px 0; } .bx-im-dialog-scroll-button { position: absolute; right: 14px; background: #fff; border: 1px solid #ececec; box-shadow: 0 2px 1px 0 rgba(0,0,0,0.2); border-radius: 50%; width: 34px; height: 34px; cursor: pointer; bottom: 10px; transition: background-color .2s; -webkit-tap-highlight-color: transparent; outline: none; text-align: center; } .bx-im-dialog-scroll-button:hover { background-color: #f9f9f9; } .bx-im-dialog-scroll-button-arrow { display: inline-block; width: 7px; height: 7px; border-top: 3px solid #bbb8b8; border-right: 3px solid #bbb8b8; transform: rotate(135deg); margin-top: 11px; cursor: pointer; box-sizing: content-box; } .bx-im-dialog-scroll-button-counter { width: 100%; text-align: center; margin-top:-7px; position: absolute; } .bx-im-dialog-scroll-button-counter-digit { display: inline-block; font: 11px/16px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #fff; padding: 0 5px 0 5px; border: 2px solid #fff; border-radius: 10px; background-color: #17b0e1; } .bx-im-dialog-scroll-button-enter-active, .bx-im-dialog-scroll-button-leave-active { transition: bottom .2s ease-out; } .bx-im-dialog-scroll-button-enter, .bx-im-dialog-scroll-button-leave-to { bottom: -60px; } .bx-im-dialog-message-animation-enter-active, .bx-im-dialog-message-animation-leave-active { transition: all .3s; } .bx-im-dialog-list-item {} .bx-im-dialog-group { font: 14px/19px "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 10px 15px; text-overflow: ellipsis; white-space: nowrap; text-align: center; position: relative; } .bx-im-dialog-group-date { background-color: rgba(7, 5, 27, 0.62); border: 1px solid rgba(7, 5, 27, 0.1); text-shadow: none; color: #fff!important; display: inline-block; padding: 5px 15px; border-radius: 15px; font-size: 14px; text-decoration: none; } .bx-im-dialog-group-float.bx-im-dialog-group-date { position: absolute; display: block; margin-top: 32px; z-index: 30; -webkit-transform: translateZ(0); transform: translateZ(0); } .bx-im-dialog-load-more { position: relative; text-align: center; padding: 10px 15px; } .bx-im-dialog-load-more + .bx-im-dialog-list-box { padding-top: 0; } .bx-im-dialog-load-more-history { padding-bottom: 0; } .bx-im-dialog-load-more-unread { padding-top: 0; padding-bottom: 13px; } .bx-im-dialog-load-more-text:before { position: absolute; margin-left: -30px; margin-top: 4px; width: 21px; height: 21px; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII='); background-repeat: no-repeat; -ms-animation: bx-im-dialog-load-more .8s linear infinite; -webkit-animation: bx-im-dialog-load-more .8s linear infinite; animation: bx-im-dialog-load-more .8s linear infinite; content: "" } .bx-im-dialog-load-more-text { display: inline-block; height: 29px; font: 15px/29px "Helvetica Neue",Helvetica,Arial,sans-serif; color: #687B8C; vertical-align: top; padding-left: 30px; } @-webkit-keyframes bx-im-dialog-load-more { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { -webkit-transform:rotate(360deg); transform:rotate(360deg); } } @keyframes bx-im-dialog-load-more { 0% { -moz-transform:rotate(0deg); transform:rotate(0deg); } 100% { -moz-transform:rotate(360deg); transform:rotate(360deg); } } .bx-im-dialog-status { padding: 0 20px 15px; display: inline-block; font: 13px/19px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #585858; word-wrap: break-word; vertical-align: middle; -moz-user-select:none; -webkit-user-select:none; user-select:none; cursor: default; position: relative; } .bx-im-dialog-status-enter-active, .bx-im-dialog-status-leave-active { transition: opacity .1s ease-out; } .bx-im-dialog-status-leave-active { transition: opacity .05s ease-out; } .bx-im-dialog-status-enter, .bx-im-dialog-status-leave-to { opacity: 0; } .bx-im-dialog-status-writing { width: 20px; height: 11px; display: inline-block; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%228%22%20height%3D%222%22%3E%0A%20%20%3Cg%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%223.2%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%226.4%22%20rx%3D%22.8%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; background-position: bottom left; vertical-align: middle; } .bx-im-dialog-status-writing:before { -webkit-animation: imWriting 1.4s linear infinite; animation: imWriting 1.4s linear infinite; content: ''; height: 16px; position: absolute; width: 19px; margin-left: 10px; margin-top:-1px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; zoom:1; } .bx-im-dialog-status-text {} @-webkit-keyframes imWriting { 0% { margin-left: 1px; margin-top:-0px; } 20% { margin-left: 4px; margin-top:-1px; } 60% { margin-left: 8px; margin-top:-2px; } 65% { margin-left: 8px; margin-top:-2px; } 70% { margin-left: 8px; margin-top:-3px; -webkit-transform:rotate(-20deg); transform:rotate(-20deg); } 90% { margin-left: 8px; margin-top:-5px; -webkit-transform:rotate(-40deg); transform:rotate(-40deg); } 100% { margin-left: 1px; margin-top:-3px; } } @keyframes imWriting { 0% { margin-left: 1px; margin-top:-0px; } 20% { margin-left: 4px; margin-top:-1px; } 60% { margin-left: 8px; margin-top:-2px; } 65% { margin-left: 8px; margin-top:-2px; } 70% { margin-left: 8px; margin-top:-3px; transform:rotate(-20deg); } 90% { margin-left: 8px; margin-top:-5px; transform:rotate(-40deg); } 100% { margin-left: 1px; margin-top:-3px; } }dialog/messenger.component.dialog.bundle.css000066400000020571147744271350015241 0ustar00.bx-im-dialog { display: -webkit-box; display: -ms-flexbox; display: flex; height: 100%; overflow: hidden; } .bx-im-dialog-list { overflow-y: auto; width: 100%; } .bx-im-dialog-list-box { width: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -ms-flex-wrap: nowrap; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; overflow-x: hidden; overflow-y: auto; padding: 10px 0; } .bx-im-dialog-scroll-button { position: absolute; right: 14px; background: #fff; border: 1px solid #ececec; -webkit-box-shadow: 0 2px 1px 0 rgba(0,0,0,0.2); box-shadow: 0 2px 1px 0 rgba(0,0,0,0.2); border-radius: 50%; width: 34px; height: 34px; cursor: pointer; bottom: 10px; -webkit-transition: background-color .2s; -o-transition: background-color .2s; transition: background-color .2s; -webkit-tap-highlight-color: transparent; outline: none; text-align: center; } .bx-im-dialog-scroll-button:hover { background-color: #f9f9f9; } .bx-im-dialog-scroll-button-arrow { display: inline-block; width: 7px; height: 7px; border-top: 3px solid #bbb8b8; border-right: 3px solid #bbb8b8; -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); margin-top: 11px; cursor: pointer; -webkit-box-sizing: content-box; box-sizing: content-box; } .bx-im-dialog-scroll-button-counter { width: 100%; text-align: center; margin-top:-7px; position: absolute; } .bx-im-dialog-scroll-button-counter-digit { display: inline-block; font: 11px/16px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #fff; padding: 0 5px 0 5px; border: 2px solid #fff; border-radius: 10px; background-color: #17b0e1; } .bx-im-dialog-scroll-button-enter-active, .bx-im-dialog-scroll-button-leave-active { -webkit-transition: bottom .2s ease-out; -o-transition: bottom .2s ease-out; transition: bottom .2s ease-out; } .bx-im-dialog-scroll-button-enter, .bx-im-dialog-scroll-button-leave-to { bottom: -60px; } .bx-im-dialog-message-animation-enter-active, .bx-im-dialog-message-animation-leave-active { -webkit-transition: all .3s; -o-transition: all .3s; transition: all .3s; } .bx-im-dialog-list-item {} .bx-im-dialog-group { font: 14px/19px "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 10px 15px; -o-text-overflow: ellipsis; text-overflow: ellipsis; white-space: nowrap; text-align: center; position: relative; } .bx-im-dialog-group-date { background-color: rgba(7, 5, 27, 0.62); border: 1px solid rgba(7, 5, 27, 0.1); text-shadow: none; color: #fff!important; display: inline-block; padding: 5px 15px; border-radius: 15px; font-size: 14px; text-decoration: none; } .bx-im-dialog-group-float.bx-im-dialog-group-date { position: absolute; display: block; margin-top: 32px; z-index: 30; -webkit-transform: translateZ(0); transform: translateZ(0); } .bx-im-dialog-load-more { position: relative; text-align: center; padding: 10px 15px; } .bx-im-dialog-load-more + .bx-im-dialog-list-box { padding-top: 0; } .bx-im-dialog-load-more-history { padding-bottom: 0; } .bx-im-dialog-load-more-unread { padding-top: 0; padding-bottom: 13px; } .bx-im-dialog-load-more-text:before { position: absolute; margin-left: -30px; margin-top: 4px; width: 21px; height: 21px; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII='); background-repeat: no-repeat; -webkit-animation: bx-im-dialog-load-more .8s linear infinite; animation: bx-im-dialog-load-more .8s linear infinite; content: "" } .bx-im-dialog-load-more-text { display: inline-block; height: 29px; font: 15px/29px "Helvetica Neue",Helvetica,Arial,sans-serif; color: #687B8C; vertical-align: top; padding-left: 30px; } @-webkit-keyframes bx-im-dialog-load-more { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { -webkit-transform:rotate(360deg); transform:rotate(360deg); } } @keyframes bx-im-dialog-load-more { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { -webkit-transform:rotate(360deg); transform:rotate(360deg); } } .bx-im-dialog-status { padding: 0 20px 15px; display: inline-block; font: 13px/19px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #585858; word-wrap: break-word; vertical-align: middle; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none; user-select:none; cursor: default; position: relative; } .bx-im-dialog-status-enter-active, .bx-im-dialog-status-leave-active { -webkit-transition: opacity .1s ease-out; -o-transition: opacity .1s ease-out; transition: opacity .1s ease-out; } .bx-im-dialog-status-leave-active { -webkit-transition: opacity .05s ease-out; -o-transition: opacity .05s ease-out; transition: opacity .05s ease-out; } .bx-im-dialog-status-enter, .bx-im-dialog-status-leave-to { opacity: 0; } .bx-im-dialog-status-writing { width: 20px; height: 11px; display: inline-block; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%228%22%20height%3D%222%22%3E%0A%20%20%3Cg%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%223.2%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%226.4%22%20rx%3D%22.8%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; background-position: bottom left; vertical-align: middle; } .bx-im-dialog-status-writing:before { -webkit-animation: imWriting 1.4s linear infinite; animation: imWriting 1.4s linear infinite; content: ''; height: 16px; position: absolute; width: 19px; margin-left: 10px; margin-top:-1px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; zoom:1; } .bx-im-dialog-status-text {} @-webkit-keyframes imWriting { 0% { margin-left: 1px; margin-top:-0px; } 20% { margin-left: 4px; margin-top:-1px; } 60% { margin-left: 8px; margin-top:-2px; } 65% { margin-left: 8px; margin-top:-2px; } 70% { margin-left: 8px; margin-top:-3px; -webkit-transform:rotate(-20deg); transform:rotate(-20deg); } 90% { margin-left: 8px; margin-top:-5px; -webkit-transform:rotate(-40deg); transform:rotate(-40deg); } 100% { margin-left: 1px; margin-top:-3px; } } @keyframes imWriting { 0% { margin-left: 1px; margin-top:-0px; } 20% { margin-left: 4px; margin-top:-1px; } 60% { margin-left: 8px; margin-top:-2px; } 65% { margin-left: 8px; margin-top:-2px; } 70% { margin-left: 8px; margin-top:-3px; -webkit-transform:rotate(-20deg); transform:rotate(-20deg); } 90% { margin-left: 8px; margin-top:-5px; -webkit-transform:rotate(-40deg); transform:rotate(-40deg); } 100% { margin-left: 1px; margin-top:-3px; } } /*# sourceMappingURL=messenger.component.dialog.bundle.css.map */dialog/bundle.config.js000066400000000215147744271350011074 0ustar00module.exports = { input: './messenger.component.dialog.js', output: './messenger.component.dialog.bundle.js', namespaceFunction: null, };dialog/messenger.component.dialog.bundle.js000066400000076566147744271350015104 0ustar00(function (exports) { 'use strict'; /** * Bitrix Messenger * Dialog Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ var TemplateType = Object.freeze({ message: 'message', delimiter: 'delimiter', group: 'group', historyLoader: 'historyLoader', unreadLoader: 'unreadLoader', button: 'button' }); var ObserverType = Object.freeze({ history: 'history', unread: 'unread', read: 'read', none: 'none' }); var MessengerStore = Object.freeze({ messages: BX.Messenger.Model.Messages.getName(), dialogues: BX.Messenger.Model.Dialogues.getName() }); var LoadButtonTypes = Object.freeze({ before: 'before', after: 'after' }); var ReferenceClassName = Object.freeze({ listItem: 'bx-im-dialog-list-item-reference', listItemBody: 'bx-im-dialog-list-item-content-reference', listUnreadLoader: 'bx-im-dialog-list-unread-loader-reference' }); BX.Vue.component('bx-messenger-dialog', { /** * @emits 'requestHistory' {lastId: number, limit: number} * @emits 'requestUnread' {lastId: number, limit: number} * @emits 'readMessage' {id: number} * @emits 'click' {event: MouseEvent} * @emits 'clickByUserName' {userData: object, event: MouseEvent} * @emits 'clickByMessageMenu' {message: object, event: MouseEvent} * @emits 'clickByCommand' {type: string, value: string, event: MouseEvent} */ /** * @listens props.listenEventScrollToBottom {force:boolean} (global|application) -- scroll dialog to bottom, see more in methods.onScrollToBottom() * @listens props.listenEventRequestHistory {count:number} (application) * @listens props.listenEventRequestUnread {count:number} (application) */ props: { userId: { default: 0 }, dialogId: { default: 0 }, chatId: { default: 0 }, listenEventScrollToBottom: { default: '' }, listenEventRequestHistory: { default: '' }, listenEventRequestUnread: { default: '' }, messageLimit: { default: 20 }, enableEmotions: { default: true }, enableDateActions: { default: true }, enableCreateContent: { default: true }, showMessageAvatar: { default: true }, showMessageMenu: { default: true } }, data: function data() { return { showScrollButton: false, messageShowCount: 0, messageExtraCount: 0, unreadLoaderShow: false, unreadLoaderBlocked: false, historyLoaderBlocked: false, historyLoaderShow: false, startMessageLimit: 0, TemplateType: TemplateType, ObserverType: ObserverType, ReferenceClassName: ReferenceClassName }; }, created: function created() { this.scrollIsChanged = false; this.scrollBlocked = false; this.scrollButtonDiff = 30; this.scrollButtonShowTimeout = null; this.scrollPosition = 0; this.scrollPositionChangeTime = new Date().getTime(); this.observers = {}; this.requestHistoryInterval = null; this.requestUnreadInterval = null; this.lastAuthorId = 0; this.firstMessageId = null; this.firstUnreadMessageId = null; this.lastMessageId = null; this.dateFormatFunction = null; this.cacheGroupTitle = {}; this.waitLoadHistory = false; this.waitLoadUnread = false; this.readMessageQueue = []; this.unreadLoaderBlocked = this.dialog.counter === 0; this.startMessageLimit = this.messageLimit; if (this.listenEventScrollToBottom) { BX.Vue.event.$on(this.listenEventScrollToBottom, this.onScrollToBottom); this.$root.$on(this.listenEventScrollToBottom, this.onScrollToBottom); } if (this.listenEventRequestHistory) { this.$root.$on(this.listenEventRequestHistory, this.onRequestHistoryAnswer); } if (this.listenEventRequestUnread) { this.$root.$on(this.listenEventRequestUnread, this.onRequestUnreadAnswer); } window.addEventListener('focus', this.onWindowFocus); window.addEventListener('blur', this.onWindowBlur); }, beforeDestroy: function beforeDestroy() { this.observers = {}; clearTimeout(this.scrollButtonShowTimeout); clearInterval(this.requestHistoryInterval); clearInterval(this.requestUnreadInterval); if (this.listenEventScrollToBottom) { BX.Vue.event.$off(this.listenEventScrollToBottom, this.onScrollToBottom); this.$root.$off(this.listenEventScrollToBottom, this.onScrollToBottom); } if (this.listenEventRequestHistory) { this.$root.$off(this.listenEventRequestHistory, this.onRequestHistoryAnswer); } if (this.listenEventRequestUnread) { this.$root.$off(this.listenEventRequestUnread, this.onRequestUnreadAnswer); } window.removeEventListener('focus', this.onWindowFocus); window.removeEventListener('blur', this.onWindowBlur); }, mounted: function mounted() { var body = this.$refs.body; var unreadId = this.dialog.unreadId; if (unreadId) { Utils.scrollToFirstUnreadMessage(this, this.collection, unreadId, true); } else { body.scrollTop = body.scrollHeight - body.offsetHeight; } this.windowFocused = document.hasFocus(); }, beforeUpdate: function beforeUpdate() { var body = this.$refs.body; if (this.scrollBlocked) { this.scrollIsChanged = false; } else { this.scrollIsChanged = body.scrollTop + this.scrollButtonDiff >= body.scrollHeight - body.offsetHeight; if (!this.scrollIsChanged && !this.showScrollButton && this.unreadCounter > 1) { this.showScrollButton = true; } } }, updated: function updated() { var _this = this; if (!this.scrollIsChanged) { return; } this.$nextTick(function () { var body = _this.$refs.body; if (_this.scrollIsChanged) { if (!_this.windowFocused && _this.unreadCounter > 0 && !_this.showScrollButton) { Utils.scrollToFirstUnreadMessage(_this, _this.collection, _this.firstUnreadMessageId); return; } _this.scrollTo(function () { clearTimeout(_this.scrollButtonShowTimeout); if (_this.showScrollButton && _this.windowFocused) { _this.showScrollButton = false; } }); } }); }, computed: { localize: function localize() { return BX.Vue.getFilteredPhrases('IM_MESSENGER_DIALOG_', this.$root.$bitrixMessages); }, dialog: function dialog() { var dialog = this.$store.state[MessengerStore.dialogues].collection[this.dialogId]; return dialog ? dialog : {}; }, collection: function collection() { var collection = this.$store.state[MessengerStore.messages].collection[this.chatId]; return collection ? collection : []; }, elementsWithLimit: function elementsWithLimit() { var _this2 = this; var start = this.collection.length - (this.messageExtraCount + this.messageLimit); if (!this.historyLoaderShow || start < 0) { start = 0; } var collection = []; var lastAuthorId = 0; var groupNode = {}; var slicedCollection = start == 0 ? this.collection : this.collection.slice(start, this.collection.length); this.messageShowCount = slicedCollection.length; if (this.messageShowCount > 0) { this.firstMessageId = slicedCollection[0].id; this.lastMessageId = slicedCollection[slicedCollection.length - 1].id; } if (this.collection.length >= this.messageLimit && this.collection.length >= this.messageShowCount && this.historyLoaderBlocked === false) { this.historyLoaderShow = true; } else { this.historyLoaderShow = false; } this.firstUnreadMessageId = 0; slicedCollection.forEach(function (element) { var group = _this2._groupTitle(element.date); if (!groupNode[group.id]) { groupNode[group.id] = true; collection.push(Blocks.getGroup(group.id, group.title)); } else if (lastAuthorId != element.authorId) { collection.push(Blocks.getDelimiter(element.id)); } collection.push(element); lastAuthorId = element.authorId; if (element.unread) { if (!_this2.firstUnreadMessageId) { _this2.firstUnreadMessageId = element.id; } } }); if (this.dialog.unreadLastId > this.lastMessageId && this.unreadLoaderBlocked === false) { this.unreadLoaderShow = true; } else { this.unreadLoaderShow = false; } return collection; }, statusWriting: function statusWriting() { if (this.dialog.writingList.length == 0) return ''; var users = this.dialog.writingList.map(function (element) { return element.userName; }); return this.localize.IM_MESSENGER_DIALOG_WRITES_MESSAGE.replace('#USER#', users.join(', ')); }, statusReaded: function statusReaded() { return false; }, unreadCounter: function unreadCounter() { return this.dialog.counter > 999 ? 999 : this.dialog.counter; } }, methods: { onDialogClick: function onDialogClick(event) { if (BX.Vue.testNode(event.target, { className: 'bx-im-message-command' })) { this.onCommandClick(event); } this.windowFocused = true; this.$emit('click', { event: event }); }, onCommandClick: function onCommandClick(event) { var value = ''; if (event.target.dataset.entity === 'send' || event.target.dataset.entity === 'put') { value = event.target.nextSibling.innerHTML; } else if (event.target.dataset.entity === 'call') { value = event.target.dataset.command; } this.$emit('clickByCommand', { type: event.target.dataset.entity, value: value, event: event }); }, onScroll: function onScroll(event) { var _this3 = this; this.scrollPosition = event.target.scrollTop; this.scrollPositionChangeTime = new Date().getTime(); clearTimeout(this.scrollButtonShowTimeout); this.scrollButtonShowTimeout = setTimeout(function () { if (event.target.scrollTop + _this3.scrollButtonDiff >= event.target.scrollHeight - event.target.offsetHeight) { if (_this3.showScrollButton && !_this3.unreadLoaderShow && _this3.windowFocused) { _this3.showScrollButton = false; } } else { if (!_this3.showScrollButton) { _this3.showScrollButton = true; } } }, 200); if (event.target.scrollTop == event.target.scrollHeight - event.target.offsetHeight) { clearTimeout(this.scrollButtonShowTimeout); if (this.showScrollButton && !this.unreadLoaderShow && this.windowFocused) { this.showScrollButton = false; } } }, scrollToBottom: function scrollToBottom() { var _this4 = this; var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; var body = this.$refs.body; if (this.dialog.counter > 0) { var scrollToMessageId = this.dialog.counter > 1 ? this.firstUnreadMessageId : this.lastMessageId; Utils.scrollToFirstUnreadMessage(this, this.collection, scrollToMessageId); if (this.dialog.counter < this.startMessageLimit) { this.messageExtraCount = 0; this.historyLoaderShow = true; this.historyLoaderBlocked = false; } return true; } this.showScrollButton = false; if (force) { body.scrollTop = body.scrollHeight - body.offsetHeight; this.messageExtraCount = 0; this.historyLoaderShow = true; this.historyLoaderBlocked = false; } else { this.scrollTo(function () { _this4.messageExtraCount = 0; _this4.historyLoaderShow = true; _this4.historyLoaderBlocked = false; }); } }, scrollTo: function scrollTo(params) { var _this5 = this; var body = this.$refs.body; if (typeof params === 'function') { params = { callback: params }; } if (!body) { if (params.callback && typeof params.callback === 'function') { params.callback(); } return true; } var _params = params, _params$start = _params.start, start = _params$start === void 0 ? body.scrollTop : _params$start, _params$end = _params.end, end = _params$end === void 0 ? body.scrollHeight - body.offsetHeight : _params$end, _params$increment = _params.increment, increment = _params$increment === void 0 ? 20 : _params$increment, callback = _params.callback, _params$duration = _params.duration, duration = _params$duration === void 0 ? 300 : _params$duration; var diff = end - start; var currentPosition = 0; var easeInOutQuad = function easeInOutQuad(current, start, diff, duration) { current /= duration / 2; if (current < 1) { return diff / 2 * current * current + start; } current--; return -diff / 2 * (current * (current - 2) - 1) + start; }; var requestFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) { window.setTimeout(callback, 1000 / 60); }; var animateScroll = function animateScroll() { currentPosition += increment; _this5.$refs.body.scrollTop = easeInOutQuad(currentPosition, start, diff, duration); if (currentPosition < duration) { requestFrame(animateScroll); } else { if (callback && typeof callback === 'function') { callback(); } } }; animateScroll(); }, onScrollToBottom: function onScrollToBottom() { var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; event.force = event.force === true; this.scrollToBottom(event.force); return true; }, onWindowFocus: function onWindowFocus() { var _this6 = this; this.windowFocused = true; this.readMessageQueue = this.readMessageQueue.map(function (messageId) { _this6.requestReadMessage(messageId); return false; }); }, onWindowBlur: function onWindowBlur() { this.windowFocused = false; }, requestHistoryDelayed: function requestHistoryDelayed() { var _this7 = this; if (this.requestHistoryInterval) { BX.Messenger.Logger.log('bx-messenger-dialog.methods.requestHistoryDelayed: skipped'); return false; } if (this.scrollPositionChangeTime + 100 < new Date().getTime() && this.$refs.body.scrollTop >= 0) { clearInterval(this.requestHistoryInterval); this.requestHistoryInterval = null; this.requestHistory(); return true; } clearInterval(this.requestHistoryInterval); this.requestHistoryInterval = setInterval(function () { if (_this7.scrollPositionChangeTime + 100 < new Date().getTime() && _this7.$refs.body.scrollTop >= 0) { clearInterval(_this7.requestHistoryInterval); _this7.requestHistoryInterval = null; _this7.requestHistory(); return true; } }, 50); return true; }, requestHistory: function requestHistory() { if (this.waitLoadHistory) { BX.Messenger.Logger.log('bx-messenger-dialog.methods.requestHistory: waitLoadHistory not empty'); return false; } this.waitLoadHistory = true; var length = this.collection.length; var messageShowCount = this.messageShowCount; if (length > messageShowCount) { var element = this.$refs.body.getElementsByClassName(ReferenceClassName.listItem)[0]; this.messageExtraCount += this.messageLimit; Utils.scrollToElementAfterLoadHistory(this, element); return true; } this.$emit('requestHistory', { lastId: this.firstMessageId }); }, requestUnreadDelayed: function requestUnreadDelayed() { var _this8 = this; if (this.requestUnreadInterval) { BX.Messenger.Logger.log('bx-messenger-dialog.methods.requestUnreadDelayed: skipped'); return false; } var body = this.$refs.body; if (this.scrollPositionChangeTime + 100 < new Date().getTime() && body.scrollTop <= body.scrollHeight - body.offsetHeight) { clearInterval(this.requestUnreadInterval); this.requestUnreadInterval = null; this.requestUnread(); return true; } clearInterval(this.requestUnreadInterval); this.requestUnreadInterval = setInterval(function () { if (_this8.scrollPositionChangeTime + 100 < new Date().getTime() && body.scrollTop <= body.scrollHeight - body.offsetHeight) { clearInterval(_this8.requestUnreadInterval); _this8.requestUnreadInterval = null; _this8.requestUnread(); return true; } }, 50); return true; }, onRequestHistoryAnswer: function onRequestHistoryAnswer() { var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (event.error) { this.historyLoaderBlocked = false; } else { this.historyLoaderBlocked = event.count < this.startMessageLimit; this.messageExtraCount += event.count; } if (this.historyLoaderBlocked) { this.historyLoaderShow = false; } var element = this.$refs.body.getElementsByClassName(ReferenceClassName.listItem)[0]; if (event.count > 0) { Utils.scrollToElementAfterLoadHistory(this, element); } else if (event.error) { element.scrollIntoView(true); this.waitLoadHistory = false; } else { this.$refs.body.scrollTop = 0; this.waitLoadHistory = false; } return true; }, requestUnread: function requestUnread() { if (this.waitLoadUnread) { BX.Messenger.Logger.log('bx-messenger-dialog.methods.requestUnread: waitLoadUnread not empty'); return false; } this.waitLoadUnread = true; this.$emit('requestUnread', { lastId: this.lastMessageId }); }, onRequestUnreadAnswer: function onRequestUnreadAnswer() { var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (event.error) { this.historyLoaderBlocked = false; } else { this.unreadLoaderBlocked = event.count < this.startMessageLimit; this.messageExtraCount += event.count; } if (this.unreadLoaderBlocked) { this.unreadLoaderShow = false; } if (event.count > 0) { Utils.scrollToElementAfterLoadUnread(this); } else if (event.error) { var element = this.$refs.body.getElementsByClassName(ReferenceClassName.listUnreadLoader)[0]; var body = this.$refs.body; body.scrollTop = body.scrollTop - element.offsetHeight * 2; this.waitLoadUnread = false; } else { var _body = this.$refs.body; _body.scrollTop = _body.scrollHeight - _body.offsetHeight; this.waitLoadUnread = false; } return true; }, readMessage: function readMessage(messageId) { if (this.windowFocused) { this.$emit('readMessage', { id: messageId }); } else { this.readMessageQueue.push(messageId); } }, requestReadMessage: function requestReadMessage(messageId) { this.$emit('readMessage', { id: messageId }); }, onClickByUserName: function onClickByUserName(event) { this.$emit('clickByUserName', event); }, onClickByMessageMenu: function onClickByMessageMenu(event) { this.$emit('clickByMessageMenu', event); }, onClickByMessageRetry: function onClickByMessageRetry(event) { this.$emit('clickByMessageRetry', event); }, _getDateFormat: function _getDateFormat() { var _this9 = this; if (this.dateFormatFunction) { return this.dateFormatFunction; } this.dateFormatFunction = Object.create(BX.Main.Date); if (this.$root.$bitrixMessages) { this.dateFormatFunction._getMessage = function (phrase) { return _this9.$root.$bitrixMessages[phrase]; }; } return this.dateFormatFunction; }, _groupTitle: function _groupTitle(date) { var id = Utils.getDateFormat(date); if (this.cacheGroupTitle[id]) { return { id: id, title: this.cacheGroupTitle[id] }; } var dateFormat = BX.Messenger.Utils.getDateFormatType(BX.Messenger.Const.dateFormat.groupTitle, this.$root.$bitrixMessages); this.cacheGroupTitle[id] = this._getDateFormat().format(dateFormat, date); return { id: id, title: this.cacheGroupTitle[id] }; } }, directives: { 'bx-messenger-dialog-observer': { inserted: function inserted(element, bindings, vnode) { if (bindings.value == ObserverType.none) { return false; } if (!vnode.context.observers[bindings.value]) { vnode.context.observers[bindings.value] = Utils.getMessageLoaderObserver({ type: bindings.value, context: vnode.context }); } vnode.context.observers[bindings.value].observe(element); return true; }, unbind: function unbind(element, bindings, vnode) { if (bindings.value == ObserverType.none) { return true; } if (vnode.context.observers[bindings.value]) { vnode.context.observers[bindings.value].unobserve(element); } return true; } } }, template: "\n\t\t<div class=\"bx-im-dialog\" @click=\"onDialogClick\">\t\n\t\t\t<div class=\"bx-im-dialog-list\" @scroll.passive=\"onScroll\" ref=\"body\">\n\t\t\t\t<template v-if=\"historyLoaderShow\">\n\t\t\t\t\t<div class=\"bx-im-dialog-load-more bx-im-dialog-load-more-history\" v-bx-messenger-dialog-observer=\"ObserverType.history\">\n\t\t\t\t\t\t<span class=\"bx-im-dialog-load-more-text\">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<transition-group tag=\"div\" class=\"bx-im-dialog-list-box\" name=\"bx-im-dialog-message-animation\" >\n\t\t\t\t\t<template v-for=\"element in elementsWithLimit\">\n\t\t\t\t\t\t<template v-if=\"element.templateType == TemplateType.message\">\n\t\t\t\t\t\t\t<div :class=\"['bx-im-dialog-list-item', ReferenceClassName.listItem, ReferenceClassName.listItem+'-'+element.id]\" :data-message-id=\"element.id\" :key=\"element.templateId\" v-bx-messenger-dialog-observer=\"element.unread? ObserverType.read: ObserverType.none\">\t\t\t\n\t\t\t\t\t\t\t\t<component :is=\"element.params.COMPONENT_ID\"\n\t\t\t\t\t\t\t\t\t:userId=\"userId\" \n\t\t\t\t\t\t\t\t\t:dialogId=\"dialogId\"\n\t\t\t\t\t\t\t\t\t:chatId=\"chatId\"\n\t\t\t\t\t\t\t\t\t:message=\"element\"\n\t\t\t\t\t\t\t\t\t:enableEmotions=\"enableEmotions\"\n\t\t\t\t\t\t\t\t\t:enableDateActions=\"enableDateActions\"\n\t\t\t\t\t\t\t\t\t:enableCreateContent=\"showMessageMenu\"\n\t\t\t\t\t\t\t\t\t:showAvatar=\"showMessageAvatar\"\n\t\t\t\t\t\t\t\t\t:showMenu=\"showMessageMenu\"\n\t\t\t\t\t\t\t\t\t:referenceContentClassName=\"ReferenceClassName.listItem\"\n\t\t\t\t\t\t\t\t\t:referenceContentBodyClassName=\"ReferenceClassName.listItemBody\"\n\t\t\t\t\t\t\t\t\t@clickByUserName=\"onClickByUserName\"\n\t\t\t\t\t\t\t\t\t@clickByMessageMenu=\"onClickByMessageMenu\"\n\t\t\t\t\t\t\t\t\t@clickByMessageRetry=\"onClickByMessageRetry\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if=\"element.templateType == TemplateType.group\">\n\t\t\t\t\t\t\t<div class=\"bx-im-dialog-group\" :key=\"element.templateId\">\n\t\t\t\t\t\t\t\t<div class=\"bx-im-dialog-group-date\">{{ element.text }}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if=\"element.templateType == TemplateType.delimiter\">\n\t\t\t\t\t\t\t<div class=\"bx-im-dialog-delimiter\" :key=\"element.templateId\" ></div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</template>\n\t\t\t\t</transition-group>\n\t\t\t\t<template v-if=\"unreadLoaderShow\">\n\t\t\t\t\t<div :class=\"['bx-im-dialog-load-more', 'bx-im-dialog-load-more-unread', ReferenceClassName.listUnreadLoader]\" v-bx-messenger-dialog-observer=\"ObserverType.unread\">\n\t\t\t\t\t\t<span class=\"bx-im-dialog-load-more-text\">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<transition name=\"bx-im-dialog-status\">\n\t\t\t\t\t<template v-if=\"statusWriting\">\n\t\t\t\t\t\t<div class=\"bx-im-dialog-status\">\n\t\t\t\t\t\t\t<span class=\"bx-im-dialog-status-writing\"></span>\n\t\t\t\t\t\t\t{{ statusWriting }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-else-if=\"statusReaded\">\n\t\t\t\t\t\t<div class=\"bx-im-dialog-status\">\n\t\t\t\t\t\t\t<span class=\"bx-im-dialog-status-readed\"></span>\n\t\t\t\t\t\t\t{{ statusReaded }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<transition name=\"bx-im-dialog-scroll-button\">\n\t\t\t\t<div v-show=\"showScrollButton || unreadLoaderShow && unreadCounter\" class=\"bx-im-dialog-scroll-button\" @click=\"scrollToBottom()\">\n\t\t\t\t\t<div v-show=\"unreadCounter\" class=\"bx-im-dialog-scroll-button-counter\">\n\t\t\t\t\t\t<div class=\"bx-im-dialog-scroll-button-counter-digit\">{{unreadCounter}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bx-im-dialog-scroll-button-arrow\"></div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\t" }); var Utils = { getDateFormat: function getDateFormat(date) { return date.toJSON().slice(0, 10); }, scrollToFirstUnreadMessage: function scrollToFirstUnreadMessage(context, collection) { var unreadId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var force = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var body = context.$refs.body; var element = false; if (unreadId !== null) { element = body.getElementsByClassName(ReferenceClassName.listItem + '-' + unreadId)[0]; } if (!element) { for (var index = collection.length - 1; index >= 0; index--) { if (!collection[index].unread) { break; } unreadId = collection[index].id; } element = body.getElementsByClassName(ReferenceClassName.listItem + '-' + unreadId)[0]; } var end = 0; if (element) { end = element.offsetTop - 20; } else { end = body.scrollHeight - body.offsetHeight; } if (force) { body.scrollTop = end; } else { context.scrollTo({ end: end }); } }, scrollToElementAfterLoadHistory: function scrollToElementAfterLoadHistory(context, element) { if (!element) { context.waitLoadHistory = false; return false; } var elementBody = element.getElementsByClassName(ReferenceClassName.listItemBody)[0]; if (elementBody) { element = elementBody; } var previousOffsetTop = element.offsetTop; context.$nextTick(function () { if (!element) { return false; } context.$refs.body.scrollTop = element.offsetTop - previousOffsetTop; context.waitLoadHistory = false; }); }, scrollToElementAfterLoadUnread: function scrollToElementAfterLoadUnread(context) { context.scrollBlocked = true; context.showScrollButton = true; context.$nextTick(function () { context.scrollBlocked = false; context.waitLoadUnread = false; }); }, getMessageLoaderObserver: function getMessageLoaderObserver(config) { if (typeof window.IntersectionObserver === 'undefined' || config.value == ObserverType.none) { return { observe: function observe() {}, unobserve: function unobserve() {} }; } var observerCallback, observerOptions; if (config.type == ObserverType.read) { observerCallback = function observerCallback(entries, observer) { entries.forEach(function (entry) { var sendReadEvent = false; if (entry.isIntersecting) { if (entry.intersectionRatio >= 1) { sendReadEvent = true; } else if (entry.intersectionRatio > 0 && entry.rootBounds.height < entry.boundingClientRect.height + 20 && entry.intersectionRect.height > entry.rootBounds.height - 20) { sendReadEvent = true; } } if (sendReadEvent) { config.context.readMessage(entry.target.dataset.messageId); config.context.observers[config.type].unobserve(entry.target); } }); }; observerOptions = { root: config.context.$refs.body, threshold: new Array(101).fill(0).map(function (zero, index) { return index * 0.01; }) }; } else { observerCallback = function observerCallback(entries, observer) { entries.forEach(function (entry) { if (entry.isIntersecting && entry.intersectionRatio > 0) { if (config.type == ObserverType.unread) { config.context.requestUnreadDelayed(); } else { config.context.requestHistoryDelayed(); } } }); }; observerOptions = { root: config.context.$refs.body, threshold: [0, 0.01, 0.99, 1] }; } return new IntersectionObserver(observerCallback, observerOptions); } }; var Blocks = { getDelimiter: function getDelimiter() { var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return { templateId: 'delimiter' + id, templateType: TemplateType.delimiter }; }, getGroup: function getGroup() { var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; return { templateId: 'group' + id, templateType: TemplateType.group, text: text }; }, getHistoryLoader: function getHistoryLoader() { return { templateId: 'historyLoader', templateType: TemplateType.historyLoader }; }, getUnreadLoader: function getUnreadLoader() { return { templateId: 'unreadLoader', templateType: TemplateType.unreadLoader }; }, getLoadButton: function getLoadButton() { var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : LoadButtonTypes.before; return { templateId: 'loadButton' + id + type, templateType: TemplateType.button, text: text, type: type, messageId: id }; } }; }((this.window = this.window || {}))); //# sourceMappingURL=messenger.component.dialog.bundle.js.map dialog/lang/ua/config.php000066400000000712147744271350011327 0ustar00<? $MESS["IM_MESSENGER_DIALOG_LOAD_MESSAGES"] = "Завантаження повідомлень"; $MESS["IM_MESSENGER_DIALOG_READED"] = "Повідомлення переглянуто, #DATE#"; $MESS["IM_MESSENGER_DIALOG_READED_CHAT"] = "Повідомлення переглянуто: #USERS#"; $MESS["IM_MESSENGER_DIALOG_READED_CHAT_MORE"] = "ще #COUNT#"; $MESS["IM_MESSENGER_DIALOG_WRITES_MESSAGE"] = "#USER# пише повідомлення…"; ?>dialog/lang/en/config.php000066400000000541147744271350011324 0ustar00<? $MESS["IM_MESSENGER_DIALOG_LOAD_MESSAGES"] = "Loading messages..."; $MESS["IM_MESSENGER_DIALOG_READED"] = "Message viewed: #DATE#"; $MESS["IM_MESSENGER_DIALOG_READED_CHAT"] = "Message viewed by: #USERS#"; $MESS["IM_MESSENGER_DIALOG_READED_CHAT_MORE"] = "#COUNT# more"; $MESS["IM_MESSENGER_DIALOG_WRITES_MESSAGE"] = "#USER# is typing a message..."; ?>dialog/lang/ru/config.php000066400000000660147744271350011352 0ustar00<? $MESS["IM_MESSENGER_DIALOG_READED"] = "Сообщение просмотрено, #DATE#"; $MESS["IM_MESSENGER_DIALOG_READED_CHAT"] = "Сообщение просмотрено: #USERS#"; $MESS["IM_MESSENGER_DIALOG_READED_CHAT_MORE"] = "еще #COUNT#"; $MESS["IM_MESSENGER_DIALOG_WRITES_MESSAGE"] = "#USER# пишет сообщение..."; $MESS["IM_MESSENGER_DIALOG_LOAD_MESSAGES"] = "Загрузка сообщений...";dialog/lang/de/config.php000066400000000570147744271350011314 0ustar00<? $MESS["IM_MESSENGER_DIALOG_LOAD_MESSAGES"] = "Nachrichten werden geladen..."; $MESS["IM_MESSENGER_DIALOG_READED"] = "Nachricht angezeigt: #DATE#"; $MESS["IM_MESSENGER_DIALOG_READED_CHAT"] = "Nachricht gesehen von: #USERS#"; $MESS["IM_MESSENGER_DIALOG_READED_CHAT_MORE"] = "noch #COUNT#"; $MESS["IM_MESSENGER_DIALOG_WRITES_MESSAGE"] = "#USER# schreibt eine Nachricht..."; ?>dialog/messenger.component.dialog.bundle.css.map000066400000025642147744271350016021 0ustar00{"version":3,"sources":["../messenger.component.dialog.css"],"names":[],"mappings":"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","file":"im/install/js/messenger/component/dialog/messenger.component.dialog.bundle.css","sourcesContent":[".bx-im-dialog {\n\tdisplay: flex;\n\theight: 100%;\n\toverflow: hidden;\n}\n.bx-im-dialog-list {\n\toverflow-y: auto;\n\twidth: 100%;\n}\n.bx-im-dialog-list-box {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-wrap: nowrap;\n\t-webkit-overflow-scrolling: touch;\n\toverflow-x: hidden;\n\toverflow-y: auto;\n\tpadding: 10px 0;\n}\n.bx-im-dialog-scroll-button {\n\tposition: absolute;\n\tright: 14px;\n\tbackground: #fff;\n\tborder: 1px solid #ececec;\n\tbox-shadow: 0 2px 1px 0 rgba(0,0,0,0.2);\n\tborder-radius: 50%;\n\twidth: 34px;\n\theight: 34px;\n\tcursor: pointer;\n\tbottom: 10px;\n\ttransition: background-color .2s;\n\t-webkit-tap-highlight-color: transparent;\n\toutline: none;\n\ttext-align: center;\n}\n.bx-im-dialog-scroll-button:hover {\n\tbackground-color: #f9f9f9;\n}\n\n.bx-im-dialog-scroll-button-arrow {\n\tdisplay: inline-block;\n\twidth: 7px;\n\theight: 7px;\n\tborder-top: 3px solid #bbb8b8;\n\tborder-right: 3px solid #bbb8b8;\n\ttransform: rotate(135deg);\n\tmargin-top: 11px;\n\tcursor: pointer;\n\tbox-sizing: content-box;\n}\n.bx-im-dialog-scroll-button-counter {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-top:-7px;\n\tposition: absolute;\n}\n.bx-im-dialog-scroll-button-counter-digit {\n\tdisplay: inline-block;\n font: 11px/16px \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n color: #fff;\n\tpadding: 0 5px 0 5px;\n border: 2px solid #fff;\n border-radius: 10px;\n background-color: #17b0e1;\n}\n\n\n.bx-im-dialog-scroll-button-enter-active, .bx-im-dialog-scroll-button-leave-active {\n\ttransition: bottom .2s ease-out;\n}\n.bx-im-dialog-scroll-button-enter, .bx-im-dialog-scroll-button-leave-to {\n\tbottom: -60px;\n}\n\n.bx-im-dialog-message-animation-enter-active, .bx-im-dialog-message-animation-leave-active {\n\ttransition: all .3s;\n}\n\n.bx-im-dialog-list-item {}\n\n.bx-im-dialog-group {\n\tfont: 14px/19px \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\tmargin: 10px 15px;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\ttext-align: center;\n\tposition: relative;\n}\n.bx-im-dialog-group-date {\n\tbackground-color: rgba(7, 5, 27, 0.62);\n\tborder: 1px solid rgba(7, 5, 27, 0.1);\n\ttext-shadow: none; color: #fff!important;\n\tdisplay: inline-block;\n\tpadding: 5px 15px;\n\tborder-radius: 15px;\n\tfont-size: 14px;\n\ttext-decoration: none;\n}\n.bx-im-dialog-group-float.bx-im-dialog-group-date\n{\n\tposition: absolute;\n\tdisplay: block;\n\tmargin-top: 32px;\n\tz-index: 30;\n\t-webkit-transform: translateZ(0);\n\ttransform: translateZ(0);\n}\n\n.bx-im-dialog-load-more {\n\tposition: relative;\n\ttext-align: center;\n\tpadding: 10px 15px;\n}\n.bx-im-dialog-load-more + .bx-im-dialog-list-box { padding-top: 0; }\n.bx-im-dialog-load-more-history {\n\tpadding-bottom: 0;\n}\n.bx-im-dialog-load-more-unread {\n padding-top: 0;\n padding-bottom: 13px;\n}\n\n.bx-im-dialog-load-more-text:before {\n\tposition: absolute;\n\tmargin-left: -30px;\n\tmargin-top: 4px;\n\twidth: 21px;\n\theight: 21px;\n\tbackground-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII=');\n\tbackground-repeat: no-repeat;\n\t-ms-animation: bx-im-dialog-load-more .8s linear infinite;\n\t-webkit-animation: bx-im-dialog-load-more .8s linear infinite;\n\tanimation: bx-im-dialog-load-more .8s linear infinite;\n\tcontent: \"\"\n}\n.bx-im-dialog-load-more-text {\n\tdisplay: inline-block;\n\theight: 29px;\n\tfont: 15px/29px \"Helvetica Neue\",Helvetica,Arial,sans-serif;\n\tcolor: #687B8C;\n\tvertical-align: top;\n\tpadding-left: 30px;\n}\n\n@-webkit-keyframes bx-im-dialog-load-more {\n\t0% {\n\t\t-webkit-transform:rotate(0deg);\n\t\ttransform:rotate(0deg);\n\t}\n\t100% {\n\t\t-webkit-transform:rotate(360deg);\n\t\ttransform:rotate(360deg);\n\t}\n}\n@keyframes bx-im-dialog-load-more {\n\t0% {\n\t\t-moz-transform:rotate(0deg);\n\t\ttransform:rotate(0deg);\n\t}\n\t100%\n\t{\n\t\t-moz-transform:rotate(360deg);\n\t\ttransform:rotate(360deg);\n\t}\n}\n\n.bx-im-dialog-status {\n\tpadding: 0 20px 15px;\n\tdisplay: inline-block;\n\tfont: 13px/19px \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\tcolor: #585858;\n\tword-wrap: break-word;\n\tvertical-align: middle;\n\t-moz-user-select:none;\n\t-webkit-user-select:none;\n\tuser-select:none;\n\tcursor: default;\n\tposition: relative;\n}\n\n.bx-im-dialog-status-enter-active, .bx-im-dialog-status-leave-active {\n\ttransition: opacity .1s ease-out;\n}\n.bx-im-dialog-status-leave-active {\n\ttransition: opacity .05s ease-out;\n}\n.bx-im-dialog-status-enter, .bx-im-dialog-status-leave-to {\n\topacity: 0;\n}\n\n.bx-im-dialog-status-writing {\n\twidth: 20px;\n\theight: 11px;\n\tdisplay: inline-block;\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%228%22%20height%3D%222%22%3E%0A%20%20%3Cg%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%223.2%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%226.4%22%20rx%3D%22.8%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');\n\tbackground-repeat: no-repeat;\n\tbackground-position: bottom left;\n\tvertical-align: middle;\n}\n.bx-im-dialog-status-writing:before {\n\t-webkit-animation: imWriting 1.4s linear infinite;\n\tanimation: imWriting 1.4s linear infinite;\n\tcontent: '';\n\theight: 16px;\n\tposition: absolute;\n\twidth: 19px;\n\tmargin-left: 10px;\n\tmargin-top:-1px;\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A');\n\tbackground-repeat: no-repeat;\n\tzoom:1;\n}\n.bx-im-dialog-status-text {}\n\n@-webkit-keyframes imWriting {\n\t0% { margin-left: 1px; margin-top:-0px; }\n\t20% { margin-left: 4px; margin-top:-1px; }\n\t60% { margin-left: 8px; margin-top:-2px; }\n\t65% { margin-left: 8px; margin-top:-2px; }\n\t70% { margin-left: 8px; margin-top:-3px; -webkit-transform:rotate(-20deg); transform:rotate(-20deg); }\n\t90% { margin-left: 8px; margin-top:-5px; -webkit-transform:rotate(-40deg); transform:rotate(-40deg); }\n\t100% { margin-left: 1px; margin-top:-3px; }\n}\n\n@keyframes imWriting {\n\t0% { margin-left: 1px; margin-top:-0px; }\n\t20% { margin-left: 4px; margin-top:-1px; }\n\t60% { margin-left: 8px; margin-top:-2px; }\n\t65% { margin-left: 8px; margin-top:-2px; }\n\t70% { margin-left: 8px; margin-top:-3px; transform:rotate(-20deg); }\n\t90% { margin-left: 8px; margin-top:-5px; transform:rotate(-40deg); }\n\t100% { margin-left: 1px; margin-top:-3px; }\n}"]}dialog/messenger.component.dialog.js000066400000062752147744271350013624 0ustar00import "./messenger.component.dialog.css"; /** * Bitrix Messenger * Dialog Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ const TemplateType = Object.freeze({ message: 'message', delimiter: 'delimiter', group: 'group', historyLoader: 'historyLoader', unreadLoader: 'unreadLoader', button: 'button', }); const ObserverType = Object.freeze({ history: 'history', unread: 'unread', read: 'read', none: 'none', }); const MessengerStore = Object.freeze({ messages: BX.Messenger.Model.Messages.getName(), dialogues: BX.Messenger.Model.Dialogues.getName(), }); const LoadButtonTypes = Object.freeze({ before: 'before', after: 'after' }); const ReferenceClassName = Object.freeze({ listItem: 'bx-im-dialog-list-item-reference', listItemBody: 'bx-im-dialog-list-item-content-reference', listUnreadLoader: 'bx-im-dialog-list-unread-loader-reference', }); BX.Vue.component('bx-messenger-dialog', { /** * @emits 'requestHistory' {lastId: number, limit: number} * @emits 'requestUnread' {lastId: number, limit: number} * @emits 'readMessage' {id: number} * @emits 'click' {event: MouseEvent} * @emits 'clickByUserName' {userData: object, event: MouseEvent} * @emits 'clickByMessageMenu' {message: object, event: MouseEvent} * @emits 'clickByCommand' {type: string, value: string, event: MouseEvent} */ /** * @listens props.listenEventScrollToBottom {force:boolean} (global|application) -- scroll dialog to bottom, see more in methods.onScrollToBottom() * @listens props.listenEventRequestHistory {count:number} (application) * @listens props.listenEventRequestUnread {count:number} (application) */ props: { userId: { default: 0 }, dialogId: { default: 0 }, chatId: { default: 0 }, listenEventScrollToBottom: { default: '' }, listenEventRequestHistory: { default: '' }, listenEventRequestUnread: { default: '' }, messageLimit: { default: 20 }, enableEmotions: { default: true }, enableDateActions: { default: true }, enableCreateContent: { default: true }, showMessageAvatar: { default: true }, showMessageMenu: { default: true }, }, data() { return { showScrollButton: false, messageShowCount: 0, messageExtraCount: 0, unreadLoaderShow: false, unreadLoaderBlocked: false, historyLoaderBlocked: false, historyLoaderShow: false, startMessageLimit: 0, TemplateType: TemplateType, ObserverType: ObserverType, ReferenceClassName: ReferenceClassName, } }, created() { this.scrollIsChanged = false; this.scrollBlocked = false; this.scrollButtonDiff = 30; this.scrollButtonShowTimeout = null; this.scrollPosition = 0; this.scrollPositionChangeTime = new Date().getTime(); this.observers = {}; this.requestHistoryInterval = null; this.requestUnreadInterval = null; this.lastAuthorId = 0; this.firstMessageId = null; this.firstUnreadMessageId = null; this.lastMessageId = null; this.dateFormatFunction = null; this.cacheGroupTitle = {}; this.waitLoadHistory = false; this.waitLoadUnread = false; this.readMessageQueue = []; this.unreadLoaderBlocked = this.dialog.counter === 0; this.startMessageLimit = this.messageLimit; if (this.listenEventScrollToBottom) { BX.Vue.event.$on(this.listenEventScrollToBottom, this.onScrollToBottom); this.$root.$on(this.listenEventScrollToBottom, this.onScrollToBottom); } if (this.listenEventRequestHistory) { this.$root.$on(this.listenEventRequestHistory, this.onRequestHistoryAnswer); } if (this.listenEventRequestUnread) { this.$root.$on(this.listenEventRequestUnread, this.onRequestUnreadAnswer); } window.addEventListener('focus', this.onWindowFocus); window.addEventListener('blur', this.onWindowBlur); }, beforeDestroy() { this.observers = {}; clearTimeout(this.scrollButtonShowTimeout); clearInterval(this.requestHistoryInterval); clearInterval(this.requestUnreadInterval); if (this.listenEventScrollToBottom) { BX.Vue.event.$off(this.listenEventScrollToBottom, this.onScrollToBottom); this.$root.$off(this.listenEventScrollToBottom, this.onScrollToBottom); } if (this.listenEventRequestHistory) { this.$root.$off(this.listenEventRequestHistory, this.onRequestHistoryAnswer); } if (this.listenEventRequestUnread) { this.$root.$off(this.listenEventRequestUnread, this.onRequestUnreadAnswer); } window.removeEventListener('focus', this.onWindowFocus); window.removeEventListener('blur', this.onWindowBlur); }, mounted() { let body = this.$refs.body; let unreadId = this.dialog.unreadId; if (unreadId) { Utils.scrollToFirstUnreadMessage(this, this.collection, unreadId, true) } else { body.scrollTop = body.scrollHeight - body.offsetHeight; } this.windowFocused = document.hasFocus(); }, beforeUpdate() { let body = this.$refs.body; if (this.scrollBlocked) { this.scrollIsChanged = false; } else { this.scrollIsChanged = body.scrollTop + this.scrollButtonDiff >= body.scrollHeight - body.offsetHeight; if (!this.scrollIsChanged && !this.showScrollButton && this.unreadCounter > 1) { this.showScrollButton = true; } } }, updated() { if (!this.scrollIsChanged) { return; } this.$nextTick(() => { let body = this.$refs.body; if (this.scrollIsChanged) { if ( !this.windowFocused && this.unreadCounter > 0 && !this.showScrollButton ) { Utils.scrollToFirstUnreadMessage(this, this.collection, this.firstUnreadMessageId); return; } this.scrollTo(() => { clearTimeout(this.scrollButtonShowTimeout); if (this.showScrollButton && this.windowFocused) { this.showScrollButton = false; } }) } }); }, computed: { localize() { return BX.Vue.getFilteredPhrases('IM_MESSENGER_DIALOG_', this.$root.$bitrixMessages); }, dialog() { let dialog = this.$store.state[MessengerStore.dialogues].collection[this.dialogId]; return dialog? dialog: {}; }, collection() { let collection = this.$store.state[MessengerStore.messages].collection[this.chatId]; return collection? collection: []; }, elementsWithLimit() { let start = this.collection.length - (this.messageExtraCount + this.messageLimit); if (!this.historyLoaderShow || start < 0) { start = 0; } let collection = []; let lastAuthorId = 0; let groupNode = {}; let slicedCollection = start == 0? this.collection: this.collection.slice(start, this.collection.length); this.messageShowCount = slicedCollection.length; if (this.messageShowCount > 0) { this.firstMessageId = slicedCollection[0].id; this.lastMessageId = slicedCollection[slicedCollection.length-1].id; } if ( this.collection.length >= this.messageLimit && this.collection.length >= this.messageShowCount && this.historyLoaderBlocked === false ) { this.historyLoaderShow = true; } else { this.historyLoaderShow = false; } this.firstUnreadMessageId = 0; let unreadCountInSlicedCollection = 0; slicedCollection.forEach(element => { let group = this._groupTitle(element.date); if (!groupNode[group.id]) { groupNode[group.id] = true; collection.push(Blocks.getGroup(group.id, group.title)); } else if (lastAuthorId != element.authorId) { collection.push(Blocks.getDelimiter(element.id)); } collection.push(element); lastAuthorId = element.authorId; if (element.unread) { if (!this.firstUnreadMessageId) { this.firstUnreadMessageId = element.id; } unreadCountInSlicedCollection++; } }); if ( this.dialog.unreadLastId > this.lastMessageId && this.unreadLoaderBlocked === false ) { this.unreadLoaderShow = true; } else { this.unreadLoaderShow = false; } return collection; }, statusWriting() { if (this.dialog.writingList.length == 0) return ''; let users = this.dialog.writingList.map(element => element.userName); return this.localize.IM_MESSENGER_DIALOG_WRITES_MESSAGE.replace( '#USER#', users.join(', ') ); }, statusReaded() { return false; }, unreadCounter() { return this.dialog.counter > 999? 999: this.dialog.counter; }, }, methods: { onDialogClick(event) { if (BX.Vue.testNode(event.target, {className: 'bx-im-message-command'})) { this.onCommandClick(event); } this.windowFocused = true; this.$emit('click', {event}); }, onCommandClick(event) { let value = ''; if ( event.target.dataset.entity === 'send' || event.target.dataset.entity === 'put' ) { value = event.target.nextSibling.innerHTML; } else if (event.target.dataset.entity === 'call') { value = event.target.dataset.command; } this.$emit('clickByCommand', {type: event.target.dataset.entity, value, event}); }, onScroll(event) { this.scrollPosition = event.target.scrollTop; this.scrollPositionChangeTime = new Date().getTime(); clearTimeout(this.scrollButtonShowTimeout); this.scrollButtonShowTimeout = setTimeout(() => { if (event.target.scrollTop + this.scrollButtonDiff >= event.target.scrollHeight - event.target.offsetHeight) { if (this.showScrollButton && !this.unreadLoaderShow && this.windowFocused) { this.showScrollButton = false; } } else { if (!this.showScrollButton) { this.showScrollButton = true; } } }, 200); if (event.target.scrollTop == event.target.scrollHeight - event.target.offsetHeight) { clearTimeout(this.scrollButtonShowTimeout); if (this.showScrollButton && !this.unreadLoaderShow && this.windowFocused) { this.showScrollButton = false; } } }, scrollToBottom(force = false) { let body = this.$refs.body; if (this.dialog.counter > 0) { let scrollToMessageId = this.dialog.counter > 1? this.firstUnreadMessageId: this.lastMessageId; Utils.scrollToFirstUnreadMessage(this, this.collection, scrollToMessageId); if (this.dialog.counter < this.startMessageLimit) { this.messageExtraCount = 0; this.historyLoaderShow = true; this.historyLoaderBlocked = false; } return true; } this.showScrollButton = false; if (force) { body.scrollTop = body.scrollHeight - body.offsetHeight; this.messageExtraCount = 0; this.historyLoaderShow = true; this.historyLoaderBlocked = false; } else { this.scrollTo(() => { this.messageExtraCount = 0; this.historyLoaderShow = true; this.historyLoaderBlocked = false; }); } }, scrollTo(params) { let body = this.$refs.body; if (typeof params === 'function') { params = {callback: params}; } if (!body) { if (params.callback && typeof params.callback === 'function') { params.callback(); } return true; } let { start = body.scrollTop, end = body.scrollHeight - body.offsetHeight, increment = 20, callback, duration = 300 } = params; let diff = end - start; let currentPosition = 0; const easeInOutQuad = function (current, start, diff, duration) { current /= duration/2; if (current < 1) { return diff / 2 * current * current + start; } current--; return -diff/2 * (current*(current-2) - 1) + start; }; const requestFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function( callback ){ window.setTimeout(callback, 1000 / 60); }; const animateScroll = () => { currentPosition += increment; this.$refs.body.scrollTop = easeInOutQuad(currentPosition, start, diff, duration); if (currentPosition < duration) { requestFrame(animateScroll); } else { if (callback && typeof callback === 'function') { callback(); } } }; animateScroll(); }, onScrollToBottom(event = {}) { event.force = event.force === true; this.scrollToBottom(event.force); return true; }, onWindowFocus(event = {}) { this.windowFocused = true; this.readMessageQueue = this.readMessageQueue.map(messageId => { this.requestReadMessage(messageId); return false; }); }, onWindowBlur(event = {}) { this.windowFocused = false; }, requestHistoryDelayed() { if (this.requestHistoryInterval) { BX.Messenger.Logger.log('bx-messenger-dialog.methods.requestHistoryDelayed: skipped'); return false; } if ( this.scrollPositionChangeTime + 100 < new Date().getTime() && this.$refs.body.scrollTop >= 0 ) { clearInterval(this.requestHistoryInterval); this.requestHistoryInterval = null; this.requestHistory(); return true; } clearInterval(this.requestHistoryInterval); this.requestHistoryInterval = setInterval(() => { if ( this.scrollPositionChangeTime + 100 < new Date().getTime() && this.$refs.body.scrollTop >= 0 ) { clearInterval(this.requestHistoryInterval); this.requestHistoryInterval = null; this.requestHistory(); return true; } }, 50); return true; }, requestHistory() { if (this.waitLoadHistory) { BX.Messenger.Logger.log('bx-messenger-dialog.methods.requestHistory: waitLoadHistory not empty'); return false; } this.waitLoadHistory = true; let length = this.collection.length; let messageShowCount = this.messageShowCount; if (length > messageShowCount) { let element = this.$refs.body.getElementsByClassName(ReferenceClassName.listItem)[0]; this.messageExtraCount += this.messageLimit; Utils.scrollToElementAfterLoadHistory(this, element); return true; } this.$emit('requestHistory', {lastId: this.firstMessageId}); }, requestUnreadDelayed() { if (this.requestUnreadInterval) { BX.Messenger.Logger.log('bx-messenger-dialog.methods.requestUnreadDelayed: skipped'); return false; } let body = this.$refs.body; if ( this.scrollPositionChangeTime + 100 < new Date().getTime() && body.scrollTop <= body.scrollHeight - body.offsetHeight ) { clearInterval(this.requestUnreadInterval); this.requestUnreadInterval = null; this.requestUnread(); return true; } clearInterval(this.requestUnreadInterval); this.requestUnreadInterval = setInterval(() => { if ( this.scrollPositionChangeTime + 100 < new Date().getTime() && body.scrollTop <= body.scrollHeight - body.offsetHeight ) { clearInterval(this.requestUnreadInterval); this.requestUnreadInterval = null; this.requestUnread(); return true; } }, 50); return true; }, onRequestHistoryAnswer(event = {}) { if (event.error) { this.historyLoaderBlocked = false; } else { this.historyLoaderBlocked = event.count < this.startMessageLimit; this.messageExtraCount += event.count; } if (this.historyLoaderBlocked) { this.historyLoaderShow = false; } let element = this.$refs.body.getElementsByClassName(ReferenceClassName.listItem)[0]; if (event.count > 0) { Utils.scrollToElementAfterLoadHistory(this, element); } else if (event.error) { element.scrollIntoView(true); this.waitLoadHistory = false; } else { this.$refs.body.scrollTop = 0; this.waitLoadHistory = false; } return true; }, requestUnread() { if (this.waitLoadUnread) { BX.Messenger.Logger.log('bx-messenger-dialog.methods.requestUnread: waitLoadUnread not empty'); return false; } this.waitLoadUnread = true; this.$emit('requestUnread', {lastId: this.lastMessageId}); }, onRequestUnreadAnswer(event = {}) { if (event.error) { this.historyLoaderBlocked = false; } else { this.unreadLoaderBlocked = event.count < this.startMessageLimit; this.messageExtraCount += event.count; } if (this.unreadLoaderBlocked) { this.unreadLoaderShow = false; } if (event.count > 0) { Utils.scrollToElementAfterLoadUnread(this); } else if (event.error) { let element = this.$refs.body.getElementsByClassName(ReferenceClassName.listUnreadLoader)[0]; let body = this.$refs.body; body.scrollTop = body.scrollTop - element.offsetHeight*2; this.waitLoadUnread = false; } else { let body = this.$refs.body; body.scrollTop = body.scrollHeight - body.offsetHeight; this.waitLoadUnread = false; } return true; }, readMessage(messageId) { if (this.windowFocused) { this.$emit('readMessage', {id: messageId}); } else { this.readMessageQueue.push(messageId); } }, requestReadMessage(messageId) { this.$emit('readMessage', {id: messageId}); }, onClickByUserName(event) { this.$emit('clickByUserName', event) }, onClickByMessageMenu(event) { this.$emit('clickByMessageMenu', event) }, onClickByMessageRetry(event) { this.$emit('clickByMessageRetry', event) }, _getDateFormat() { if (this.dateFormatFunction) { return this.dateFormatFunction; } this.dateFormatFunction = Object.create(BX.Main.Date); if (this.$root.$bitrixMessages) { this.dateFormatFunction._getMessage = (phrase) => this.$root.$bitrixMessages[phrase]; } return this.dateFormatFunction; }, _groupTitle(date) { const id = Utils.getDateFormat(date); if (this.cacheGroupTitle[id]) { return { id: id, title: this.cacheGroupTitle[id] }; } let dateFormat = BX.Messenger.Utils.getDateFormatType( BX.Messenger.Const.dateFormat.groupTitle, this.$root.$bitrixMessages ); this.cacheGroupTitle[id] = this._getDateFormat().format(dateFormat, date); return { id: id, title: this.cacheGroupTitle[id] }; }, }, directives: { 'bx-messenger-dialog-observer': { inserted(element, bindings, vnode) { if (bindings.value == ObserverType.none) { return false; } if (!vnode.context.observers[bindings.value]) { vnode.context.observers[bindings.value] = Utils.getMessageLoaderObserver({ type: bindings.value, context: vnode.context }); } vnode.context.observers[bindings.value].observe(element); return true; }, unbind(element, bindings, vnode) { if (bindings.value == ObserverType.none) { return true; } if (vnode.context.observers[bindings.value]) { vnode.context.observers[bindings.value].unobserve(element); } return true; } }, }, template: ` <div class="bx-im-dialog" @click="onDialogClick"> <div class="bx-im-dialog-list" @scroll.passive="onScroll" ref="body"> <template v-if="historyLoaderShow"> <div class="bx-im-dialog-load-more bx-im-dialog-load-more-history" v-bx-messenger-dialog-observer="ObserverType.history"> <span class="bx-im-dialog-load-more-text">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span> </div> </template> <transition-group tag="div" class="bx-im-dialog-list-box" name="bx-im-dialog-message-animation" > <template v-for="element in elementsWithLimit"> <template v-if="element.templateType == TemplateType.message"> <div :class="['bx-im-dialog-list-item', ReferenceClassName.listItem, ReferenceClassName.listItem+'-'+element.id]" :data-message-id="element.id" :key="element.templateId" v-bx-messenger-dialog-observer="element.unread? ObserverType.read: ObserverType.none"> <component :is="element.params.COMPONENT_ID" :userId="userId" :dialogId="dialogId" :chatId="chatId" :message="element" :enableEmotions="enableEmotions" :enableDateActions="enableDateActions" :enableCreateContent="showMessageMenu" :showAvatar="showMessageAvatar" :showMenu="showMessageMenu" :referenceContentClassName="ReferenceClassName.listItem" :referenceContentBodyClassName="ReferenceClassName.listItemBody" @clickByUserName="onClickByUserName" @clickByMessageMenu="onClickByMessageMenu" @clickByMessageRetry="onClickByMessageRetry" /> </div> </template> <template v-else-if="element.templateType == TemplateType.group"> <div class="bx-im-dialog-group" :key="element.templateId"> <div class="bx-im-dialog-group-date">{{ element.text }}</div> </div> </template> <template v-else-if="element.templateType == TemplateType.delimiter"> <div class="bx-im-dialog-delimiter" :key="element.templateId" ></div> </template> </template> </transition-group> <template v-if="unreadLoaderShow"> <div :class="['bx-im-dialog-load-more', 'bx-im-dialog-load-more-unread', ReferenceClassName.listUnreadLoader]" v-bx-messenger-dialog-observer="ObserverType.unread"> <span class="bx-im-dialog-load-more-text">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span> </div> </template> <transition name="bx-im-dialog-status"> <template v-if="statusWriting"> <div class="bx-im-dialog-status"> <span class="bx-im-dialog-status-writing"></span> {{ statusWriting }} </div> </template> <template v-else-if="statusReaded"> <div class="bx-im-dialog-status"> <span class="bx-im-dialog-status-readed"></span> {{ statusReaded }} </div> </template> </transition> </div> <transition name="bx-im-dialog-scroll-button"> <div v-show="showScrollButton || unreadLoaderShow && unreadCounter" class="bx-im-dialog-scroll-button" @click="scrollToBottom()"> <div v-show="unreadCounter" class="bx-im-dialog-scroll-button-counter"> <div class="bx-im-dialog-scroll-button-counter-digit">{{unreadCounter}}</div> </div> <div class="bx-im-dialog-scroll-button-arrow"></div> </div> </transition> </div> ` }); const Utils = { getDateFormat(date) { return date.toJSON().slice(0,10); }, scrollToFirstUnreadMessage(context, collection, unreadId = null, force = false) { let body = context.$refs.body; let element = false; if (unreadId !== null) { element = body.getElementsByClassName(ReferenceClassName.listItem+'-'+unreadId)[0]; } if (!element) { for (let index = collection.length-1; index >= 0; index--) { if (!collection[index].unread) { break; } unreadId = collection[index].id; } element = body.getElementsByClassName(ReferenceClassName.listItem+'-'+unreadId)[0]; } let end = 0; if (element) { end = element.offsetTop - 20; } else { end = body.scrollHeight - body.offsetHeight; } if (force) { body.scrollTop = end; } else { context.scrollTo({end}); } }, scrollToElementAfterLoadHistory(context, element) { if (!element) { context.waitLoadHistory = false; return false; } let elementBody = element.getElementsByClassName(ReferenceClassName.listItemBody)[0]; if (elementBody) { element = elementBody; } let previousOffsetTop = element.offsetTop; context.$nextTick(() => { if (!element) { return false; } context.$refs.body.scrollTop = element.offsetTop - previousOffsetTop; context.waitLoadHistory = false; }); }, scrollToElementAfterLoadUnread(context) { context.scrollBlocked = true; context.showScrollButton = true; context.$nextTick(() => { context.scrollBlocked = false; context.waitLoadUnread = false; }); }, getMessageLoaderObserver(config) { if ( typeof window.IntersectionObserver === 'undefined' || config.value == ObserverType.none ) { return { observe: () => {}, unobserve: () => {} }; } let observerCallback, observerOptions; if (config.type == ObserverType.read) { observerCallback = function (entries, observer) { entries.forEach(function(entry) { let sendReadEvent = false; if (entry.isIntersecting) { if (entry.intersectionRatio >= 1) { sendReadEvent = true; } else if ( entry.intersectionRatio > 0 && entry.rootBounds.height < entry.boundingClientRect.height + 20 && entry.intersectionRect.height > entry.rootBounds.height - 20 ) { sendReadEvent = true; } } if (sendReadEvent) { config.context.readMessage(entry.target.dataset.messageId); config.context.observers[config.type].unobserve(entry.target); } }); }; observerOptions = { root: config.context.$refs.body, threshold: new Array(101).fill(0).map((zero, index) => index * 0.01) }; } else { observerCallback = function (entries, observer) { entries.forEach(function(entry) { if (entry.isIntersecting && entry.intersectionRatio > 0) { if (config.type == ObserverType.unread) { config.context.requestUnreadDelayed(); } else { config.context.requestHistoryDelayed(); } } }); }; observerOptions = { root: config.context.$refs.body, threshold: [0, 0.01, 0.99, 1] }; } return new IntersectionObserver(observerCallback, observerOptions); } }; const Blocks = { getDelimiter(id = 0) { return { templateId: 'delimiter'+id, templateType: TemplateType.delimiter }; }, getGroup(id = 0, text = '') { return { templateId: 'group'+id, templateType: TemplateType.group, text: text }; }, getHistoryLoader() { return { templateId: 'historyLoader', templateType: TemplateType.historyLoader, }; }, getUnreadLoader() { return { templateId: 'unreadLoader', templateType: TemplateType.unreadLoader, }; }, getLoadButton(id = 0, text = '', type = LoadButtonTypes.before) { return { templateId: 'loadButton'+id+type, templateType: TemplateType.button, text: text, type: type, messageId: id }; } }; dialog/messenger.component.dialog.min.css000066400000015306147744271350014553 0ustar00.bx-im-dialog{display:flex;height:100%;overflow:hidden}.bx-im-dialog-list{overflow-y:auto;width:100%}.bx-im-dialog-list-box{width:100%;display:flex;flex-direction:column;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:auto;padding:10px 0}.bx-im-dialog-scroll-button{position:absolute;right:14px;background:#fff;border:1px solid #ececec;box-shadow:0 2px 1px 0 rgba(0,0,0,0.2);border-radius:50%;width:34px;height:34px;cursor:pointer;bottom:10px;transition:background-color .2s;-webkit-tap-highlight-color:transparent;outline:0;text-align:center}.bx-im-dialog-scroll-button:hover{background-color:#f9f9f9}.bx-im-dialog-scroll-button-arrow{display:inline-block;width:7px;height:7px;border-top:3px solid #bbb8b8;border-right:3px solid #bbb8b8;transform:rotate(135deg);margin-top:11px;cursor:pointer;box-sizing:content-box}.bx-im-dialog-scroll-button-counter{width:100%;text-align:center;margin-top:-7px;position:absolute}.bx-im-dialog-scroll-button-counter-digit{display:inline-block;font:11px/16px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#fff;padding:0 5px 0 5px;border:2px solid #fff;border-radius:10px;background-color:#17b0e1}.bx-im-dialog-scroll-button-enter-active,.bx-im-dialog-scroll-button-leave-active{transition:bottom .2s ease-out}.bx-im-dialog-scroll-button-enter,.bx-im-dialog-scroll-button-leave-to{bottom:-60px}.bx-im-dialog-message-animation-enter-active,.bx-im-dialog-message-animation-leave-active{transition:all .3s}.bx-im-dialog-group{font:14px/19px "Helvetica Neue",Helvetica,Arial,sans-serif;margin:10px 15px;text-overflow:ellipsis;white-space:nowrap;text-align:center;position:relative}.bx-im-dialog-group-date{background-color:rgba(7,5,27,0.62);border:1px solid rgba(7,5,27,0.1);text-shadow:none;color:#fff!important;display:inline-block;padding:5px 15px;border-radius:15px;font-size:14px;text-decoration:none}.bx-im-dialog-group-float.bx-im-dialog-group-date{position:absolute;display:block;margin-top:32px;z-index:30;-webkit-transform:translateZ(0);transform:translateZ(0)}.bx-im-dialog-load-more{position:relative;text-align:center;padding:10px 15px}.bx-im-dialog-load-more+.bx-im-dialog-list-box{padding-top:0}.bx-im-dialog-load-more-history{padding-bottom:0}.bx-im-dialog-load-more-unread{padding-top:0;padding-bottom:13px}.bx-im-dialog-load-more-text:before{position:absolute;margin-left:-30px;margin-top:4px;width:21px;height:21px;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII=');background-repeat:no-repeat;-ms-animation:bx-im-dialog-load-more .8s linear infinite;-webkit-animation:bx-im-dialog-load-more .8s linear infinite;animation:bx-im-dialog-load-more .8s linear infinite;content:""}.bx-im-dialog-load-more-text{display:inline-block;height:29px;font:15px/29px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#687b8c;vertical-align:top;padding-left:30px}@-webkit-keyframes bx-im-dialog-load-more{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes bx-im-dialog-load-more{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}.bx-im-dialog-status{padding:0 20px 15px;display:inline-block;font:13px/19px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#585858;word-wrap:break-word;vertical-align:middle;-moz-user-select:none;-webkit-user-select:none;user-select:none;cursor:default;position:relative}.bx-im-dialog-status-enter-active,.bx-im-dialog-status-leave-active{transition:opacity .1s ease-out}.bx-im-dialog-status-leave-active{transition:opacity .05s ease-out}.bx-im-dialog-status-enter,.bx-im-dialog-status-leave-to{opacity:0}.bx-im-dialog-status-writing{width:20px;height:11px;display:inline-block;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%228%22%20height%3D%222%22%3E%0A%20%20%3Cg%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%223.2%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%226.4%22%20rx%3D%22.8%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;background-position:bottom left;vertical-align:middle}.bx-im-dialog-status-writing:before{-webkit-animation:imWriting 1.4s linear infinite;animation:imWriting 1.4s linear infinite;content:'';height:16px;position:absolute;width:19px;margin-left:10px;margin-top:-1px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;zoom:1}@-webkit-keyframes imWriting{0%{margin-left:1px;margin-top:-0px}20%{margin-left:4px;margin-top:-1px}60%{margin-left:8px;margin-top:-2px}65%{margin-left:8px;margin-top:-2px}70%{margin-left:8px;margin-top:-3px;-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}90%{margin-left:8px;margin-top:-5px;-webkit-transform:rotate(-40deg);transform:rotate(-40deg)}100%{margin-left:1px;margin-top:-3px}}@keyframes imWriting{0%{margin-left:1px;margin-top:-0px}20%{margin-left:4px;margin-top:-1px}60%{margin-left:8px;margin-top:-2px}65%{margin-left:8px;margin-top:-2px}70%{margin-left:8px;margin-top:-3px;transform:rotate(-20deg)}90%{margin-left:8px;margin-top:-5px;transform:rotate(-40deg)}100%{margin-left:1px;margin-top:-3px}}dialog/bundle.config.min.js000066400000000252147744271350011657 0ustar00module.exports={input:"./messenger.component.dialog.js",output:"./messenger.component.dialog.bundle.js",namespaceFunction:null}; //# sourceMappingURL=bundle.config.map.jsdialog/messenger.component.dialog.bundle.min.css000066400000016645147744271350016032 0ustar00.bx-im-dialog{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;overflow:hidden}.bx-im-dialog-list{overflow-y:auto;width:100%}.bx-im-dialog-list-box{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:auto;padding:10px 0}.bx-im-dialog-scroll-button{position:absolute;right:14px;background:#fff;border:1px solid #ececec;-webkit-box-shadow:0 2px 1px 0 rgba(0,0,0,0.2);box-shadow:0 2px 1px 0 rgba(0,0,0,0.2);border-radius:50%;width:34px;height:34px;cursor:pointer;bottom:10px;-webkit-transition:background-color .2s;-o-transition:background-color .2s;transition:background-color .2s;-webkit-tap-highlight-color:transparent;outline:0;text-align:center}.bx-im-dialog-scroll-button:hover{background-color:#f9f9f9}.bx-im-dialog-scroll-button-arrow{display:inline-block;width:7px;height:7px;border-top:3px solid #bbb8b8;border-right:3px solid #bbb8b8;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);margin-top:11px;cursor:pointer;-webkit-box-sizing:content-box;box-sizing:content-box}.bx-im-dialog-scroll-button-counter{width:100%;text-align:center;margin-top:-7px;position:absolute}.bx-im-dialog-scroll-button-counter-digit{display:inline-block;font:11px/16px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#fff;padding:0 5px 0 5px;border:2px solid #fff;border-radius:10px;background-color:#17b0e1}.bx-im-dialog-scroll-button-enter-active,.bx-im-dialog-scroll-button-leave-active{-webkit-transition:bottom .2s ease-out;-o-transition:bottom .2s ease-out;transition:bottom .2s ease-out}.bx-im-dialog-scroll-button-enter,.bx-im-dialog-scroll-button-leave-to{bottom:-60px}.bx-im-dialog-message-animation-enter-active,.bx-im-dialog-message-animation-leave-active{-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.bx-im-dialog-group{font:14px/19px "Helvetica Neue",Helvetica,Arial,sans-serif;margin:10px 15px;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;text-align:center;position:relative}.bx-im-dialog-group-date{background-color:rgba(7,5,27,0.62);border:1px solid rgba(7,5,27,0.1);text-shadow:none;color:#fff!important;display:inline-block;padding:5px 15px;border-radius:15px;font-size:14px;text-decoration:none}.bx-im-dialog-group-float.bx-im-dialog-group-date{position:absolute;display:block;margin-top:32px;z-index:30;-webkit-transform:translateZ(0);transform:translateZ(0)}.bx-im-dialog-load-more{position:relative;text-align:center;padding:10px 15px}.bx-im-dialog-load-more+.bx-im-dialog-list-box{padding-top:0}.bx-im-dialog-load-more-history{padding-bottom:0}.bx-im-dialog-load-more-unread{padding-top:0;padding-bottom:13px}.bx-im-dialog-load-more-text:before{position:absolute;margin-left:-30px;margin-top:4px;width:21px;height:21px;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII=');background-repeat:no-repeat;-webkit-animation:bx-im-dialog-load-more .8s linear infinite;animation:bx-im-dialog-load-more .8s linear infinite;content:""}.bx-im-dialog-load-more-text{display:inline-block;height:29px;font:15px/29px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#687b8c;vertical-align:top;padding-left:30px}@-webkit-keyframes bx-im-dialog-load-more{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes bx-im-dialog-load-more{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.bx-im-dialog-status{padding:0 20px 15px;display:inline-block;font:13px/19px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#585858;word-wrap:break-word;vertical-align:middle;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:default;position:relative}.bx-im-dialog-status-enter-active,.bx-im-dialog-status-leave-active{-webkit-transition:opacity .1s ease-out;-o-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.bx-im-dialog-status-leave-active{-webkit-transition:opacity .05s ease-out;-o-transition:opacity .05s ease-out;transition:opacity .05s ease-out}.bx-im-dialog-status-enter,.bx-im-dialog-status-leave-to{opacity:0}.bx-im-dialog-status-writing{width:20px;height:11px;display:inline-block;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%228%22%20height%3D%222%22%3E%0A%20%20%3Cg%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%223.2%22%20rx%3D%22.8%22/%3E%0A%20%20%20%20%3Crect%20width%3D%221.6%22%20height%3D%222%22%20x%3D%226.4%22%20rx%3D%22.8%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;background-position:bottom left;vertical-align:middle}.bx-im-dialog-status-writing:before{-webkit-animation:imWriting 1.4s linear infinite;animation:imWriting 1.4s linear infinite;content:'';height:16px;position:absolute;width:19px;margin-left:10px;margin-top:-1px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;zoom:1}@-webkit-keyframes imWriting{0%{margin-left:1px;margin-top:-0px}20%{margin-left:4px;margin-top:-1px}60%{margin-left:8px;margin-top:-2px}65%{margin-left:8px;margin-top:-2px}70%{margin-left:8px;margin-top:-3px;-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}90%{margin-left:8px;margin-top:-5px;-webkit-transform:rotate(-40deg);transform:rotate(-40deg)}100%{margin-left:1px;margin-top:-3px}}@keyframes imWriting{0%{margin-left:1px;margin-top:-0px}20%{margin-left:4px;margin-top:-1px}60%{margin-left:8px;margin-top:-2px}65%{margin-left:8px;margin-top:-2px}70%{margin-left:8px;margin-top:-3px;-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}90%{margin-left:8px;margin-top:-5px;-webkit-transform:rotate(-40deg);transform:rotate(-40deg)}100%{margin-left:1px;margin-top:-3px}}dialog/bundle.config.map.js000066400000000312147744271350011646 0ustar00{"version":3,"sources":["bundle.config.js"],"names":["module","exports","input","output","namespaceFunction"],"mappings":"AAAAA,OAAOC,SACNC,MAAO,kCACPC,OAAQ,yCACRC,kBAAmB","file":"bundle.config.map.js"}dialog/messenger.component.dialog.bundle.js.map000066400000162734147744271350015651 0ustar00{"version":3,"file":"messenger.component.dialog.bundle.js","sources":["messenger.component.dialog.js"],"sourcesContent":["import \"./messenger.component.dialog.css\";\n\n/**\n * Bitrix Messenger\n * Dialog Vue component\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2019 Bitrix\n */\n\nconst TemplateType = Object.freeze({\n\tmessage: 'message',\n\tdelimiter: 'delimiter',\n\tgroup: 'group',\n\thistoryLoader: 'historyLoader',\n\tunreadLoader: 'unreadLoader',\n\tbutton: 'button',\n});\n\nconst ObserverType = Object.freeze({\n\thistory: 'history',\n\tunread: 'unread',\n\tread: 'read',\n\tnone: 'none',\n});\n\nconst MessengerStore = Object.freeze({\n\tmessages: BX.Messenger.Model.Messages.getName(),\n\tdialogues: BX.Messenger.Model.Dialogues.getName(),\n});\n\nconst LoadButtonTypes = Object.freeze({\n\tbefore: 'before',\n\tafter: 'after'\n});\n\nconst ReferenceClassName = Object.freeze({\n\tlistItem: 'bx-im-dialog-list-item-reference',\n\tlistItemBody: 'bx-im-dialog-list-item-content-reference',\n\tlistUnreadLoader: 'bx-im-dialog-list-unread-loader-reference',\n});\n\nBX.Vue.component('bx-messenger-dialog',\n{\n\t/**\n\t * @emits 'requestHistory' {lastId: number, limit: number}\n\t * @emits 'requestUnread' {lastId: number, limit: number}\n\t * @emits 'readMessage' {id: number}\n\t * @emits 'click' {event: MouseEvent}\n\t * @emits 'clickByUserName' {userData: object, event: MouseEvent}\n\t * @emits 'clickByMessageMenu' {message: object, event: MouseEvent}\n\t * @emits 'clickByCommand' {type: string, value: string, event: MouseEvent}\n\t */\n\n\t/**\n\t * @listens props.listenEventScrollToBottom {force:boolean} (global|application) -- scroll dialog to bottom, see more in methods.onScrollToBottom()\n\t * @listens props.listenEventRequestHistory {count:number} (application)\n\t * @listens props.listenEventRequestUnread {count:number} (application)\n\t */\n\tprops:\n\t{\n\t\tuserId: { default: 0 },\n\t\tdialogId: { default: 0 },\n\t\tchatId: { default: 0 },\n\t\tlistenEventScrollToBottom: { default: '' },\n\t\tlistenEventRequestHistory: { default: '' },\n\t\tlistenEventRequestUnread: { default: '' },\n\t\tmessageLimit: { default: 20 },\n\t\tenableEmotions: { default: true },\n\t\tenableDateActions: { default: true },\n\t\tenableCreateContent: { default: true },\n\t\tshowMessageAvatar: { default: true },\n\t\tshowMessageMenu: { default: true },\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tshowScrollButton: false,\n\t\t\tmessageShowCount: 0,\n\t\t\tmessageExtraCount: 0,\n\t\t\tunreadLoaderShow: false,\n\t\t\tunreadLoaderBlocked: false,\n\t\t\thistoryLoaderBlocked: false,\n\t\t\thistoryLoaderShow: false,\n\t\t\tstartMessageLimit: 0,\n\t\t\tTemplateType: TemplateType,\n\t\t\tObserverType: ObserverType,\n\t\t\tReferenceClassName: ReferenceClassName,\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tthis.scrollIsChanged = false;\n\t\tthis.scrollBlocked = false;\n\t\tthis.scrollButtonDiff = 30;\n\t\tthis.scrollButtonShowTimeout = null;\n\t\tthis.scrollPosition = 0;\n\t\tthis.scrollPositionChangeTime = new Date().getTime();\n\n\t\tthis.observers = {};\n\n\t\tthis.requestHistoryInterval = null;\n\t\tthis.requestUnreadInterval = null;\n\n\t\tthis.lastAuthorId = 0;\n\t\tthis.firstMessageId = null;\n\t\tthis.firstUnreadMessageId = null;\n\t\tthis.lastMessageId = null;\n\t\tthis.dateFormatFunction = null;\n\t\tthis.cacheGroupTitle = {};\n\n\t\tthis.waitLoadHistory = false;\n\t\tthis.waitLoadUnread = false;\n\n\t\tthis.readMessageQueue = [];\n\n\t\tthis.unreadLoaderBlocked = this.dialog.counter === 0;\n\t\tthis.startMessageLimit = this.messageLimit;\n\n\t\tif (this.listenEventScrollToBottom)\n\t\t{\n\t\t\tBX.Vue.event.$on(this.listenEventScrollToBottom, this.onScrollToBottom);\n\t\t\tthis.$root.$on(this.listenEventScrollToBottom, this.onScrollToBottom);\n\t\t}\n\t\tif (this.listenEventRequestHistory)\n\t\t{\n\t\t\tthis.$root.$on(this.listenEventRequestHistory, this.onRequestHistoryAnswer);\n\t\t}\n\t\tif (this.listenEventRequestUnread)\n\t\t{\n\t\t\tthis.$root.$on(this.listenEventRequestUnread, this.onRequestUnreadAnswer);\n\t\t}\n\n\t\twindow.addEventListener('focus', this.onWindowFocus);\n\t\twindow.addEventListener('blur', this.onWindowBlur);\n\t},\n\tbeforeDestroy()\n\t{\n\t\tthis.observers = {};\n\n\t\tclearTimeout(this.scrollButtonShowTimeout);\n\t\tclearInterval(this.requestHistoryInterval);\n\t\tclearInterval(this.requestUnreadInterval);\n\n\t\tif (this.listenEventScrollToBottom)\n\t\t{\n\t\t\tBX.Vue.event.$off(this.listenEventScrollToBottom, this.onScrollToBottom);\n\t\t\tthis.$root.$off(this.listenEventScrollToBottom, this.onScrollToBottom);\n\t\t}\n\t\tif (this.listenEventRequestHistory)\n\t\t{\n\t\t\tthis.$root.$off(this.listenEventRequestHistory, this.onRequestHistoryAnswer);\n\t\t}\n\t\tif (this.listenEventRequestUnread)\n\t\t{\n\t\t\tthis.$root.$off(this.listenEventRequestUnread, this.onRequestUnreadAnswer);\n\t\t}\n\n\t\twindow.removeEventListener('focus', this.onWindowFocus);\n\t\twindow.removeEventListener('blur', this.onWindowBlur);\n\t},\n\tmounted()\n\t{\n\t\tlet body = this.$refs.body;\n\t\tlet unreadId = this.dialog.unreadId;\n\n\t\tif (unreadId)\n\t\t{\n\t\t\tUtils.scrollToFirstUnreadMessage(this, this.collection, unreadId, true)\n\t\t}\n\t\telse\n\t\t{\n\t\t\tbody.scrollTop = body.scrollHeight - body.offsetHeight;\n\t\t}\n\n\t\tthis.windowFocused = document.hasFocus();\n\t},\n\tbeforeUpdate()\n\t{\n\t\tlet body = this.$refs.body;\n\n\t\tif (this.scrollBlocked)\n\t\t{\n\t\t\tthis.scrollIsChanged = false;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.scrollIsChanged = body.scrollTop + this.scrollButtonDiff >= body.scrollHeight - body.offsetHeight;\n\n\t\t\tif (!this.scrollIsChanged && !this.showScrollButton && this.unreadCounter > 1)\n\t\t\t{\n\t\t\t\tthis.showScrollButton = true;\n\t\t\t}\n\t\t}\n\t},\n\tupdated()\n\t{\n\t\tif (!this.scrollIsChanged)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.$nextTick(() =>\n\t\t{\n\t\t\tlet body = this.$refs.body;\n\n\t\t\tif (this.scrollIsChanged)\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\t!this.windowFocused\n\t\t\t\t\t&& this.unreadCounter > 0\n\t\t\t\t\t&& !this.showScrollButton\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tUtils.scrollToFirstUnreadMessage(this, this.collection, this.firstUnreadMessageId);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.scrollTo(() =>\n\t\t\t\t{\n\t\t\t\t\tclearTimeout(this.scrollButtonShowTimeout);\n\t\t\t\t\tif (this.showScrollButton && this.windowFocused)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showScrollButton = false;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\t},\n\tcomputed:\n\t{\n\t\tlocalize()\n\t\t{\n\t\t\treturn BX.Vue.getFilteredPhrases('IM_MESSENGER_DIALOG_', this.$root.$bitrixMessages);\n\t\t},\n\t\tdialog()\n\t\t{\n\t\t\tlet dialog = this.$store.state[MessengerStore.dialogues].collection[this.dialogId];\n\t\t\treturn dialog? dialog: {};\n\t\t},\n\t\tcollection()\n\t\t{\n\t\t\tlet collection = this.$store.state[MessengerStore.messages].collection[this.chatId];\n\t\t\treturn collection? collection: [];\n\t\t},\n\t\telementsWithLimit()\n\t\t{\n\t\t\tlet start = this.collection.length - (this.messageExtraCount + this.messageLimit);\n\t\t\tif (!this.historyLoaderShow || start < 0)\n\t\t\t{\n\t\t\t\tstart = 0;\n\t\t\t}\n\n\t\t\tlet collection = [];\n\t\t\tlet lastAuthorId = 0;\n\t\t\tlet groupNode = {};\n\n\t\t\tlet slicedCollection = start == 0? this.collection: this.collection.slice(start, this.collection.length);\n\n\t\t\tthis.messageShowCount = slicedCollection.length;\n\n\t\t\tif (this.messageShowCount > 0)\n\t\t\t{\n\t\t\t\tthis.firstMessageId = slicedCollection[0].id;\n\t\t\t\tthis.lastMessageId = slicedCollection[slicedCollection.length-1].id;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.collection.length >= this.messageLimit\n\t\t\t\t&& this.collection.length >= this.messageShowCount\n\t\t\t\t&& this.historyLoaderBlocked === false\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.historyLoaderShow = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.historyLoaderShow = false;\n\t\t\t}\n\n\t\t\tthis.firstUnreadMessageId = 0;\n\t\t\tlet unreadCountInSlicedCollection = 0;\n\t\t\tslicedCollection.forEach(element =>\n\t\t\t{\n\t\t\t\tlet group = this._groupTitle(element.date);\n\t\t\t\tif (!groupNode[group.id])\n\t\t\t\t{\n\t\t\t\t\tgroupNode[group.id] = true;\n\t\t\t\t\tcollection.push(Blocks.getGroup(group.id, group.title));\n\t\t\t\t}\n\t\t\t\telse if (lastAuthorId != element.authorId)\n\t\t\t\t{\n\t\t\t\t\tcollection.push(Blocks.getDelimiter(element.id));\n\t\t\t\t}\n\n\t\t\t\tcollection.push(element);\n\n\t\t\t\tlastAuthorId = element.authorId;\n\n\t\t\t\tif (element.unread)\n\t\t\t\t{\n\t\t\t\t\tif (!this.firstUnreadMessageId)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.firstUnreadMessageId = element.id;\n\t\t\t\t\t}\n\t\t\t\t\tunreadCountInSlicedCollection++;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (\n\t\t\t\tthis.dialog.unreadLastId > this.lastMessageId\n\t\t\t\t&& this.unreadLoaderBlocked === false\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.unreadLoaderShow = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.unreadLoaderShow = false;\n\t\t\t}\n\n\t\t\treturn collection;\n\t\t},\n\t\tstatusWriting()\n\t\t{\n\t\t\tif (this.dialog.writingList.length == 0)\n\t\t\t\treturn '';\n\n\t\t\tlet users = this.dialog.writingList.map(element => element.userName);\n\n\t\t\treturn this.localize.IM_MESSENGER_DIALOG_WRITES_MESSAGE.replace(\n\t\t\t\t'#USER#', users.join(', ')\n\t\t\t);\n\t\t},\n\t\tstatusReaded()\n\t\t{\n\t\t\treturn false;\n\t\t},\n\t\tunreadCounter()\n\t\t{\n\t\t\treturn this.dialog.counter > 999? 999: this.dialog.counter;\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tonDialogClick(event)\n\t\t{\n\t\t\tif (BX.Vue.testNode(event.target, {className: 'bx-im-message-command'}))\n\t\t\t{\n\t\t\t\tthis.onCommandClick(event);\n\t\t\t}\n\n\t\t\tthis.windowFocused = true;\n\t\t\tthis.$emit('click', {event});\n\t\t},\n\t\tonCommandClick(event)\n\t\t{\n\t\t\tlet value = '';\n\n\t\t\tif (\n\t\t\t\tevent.target.dataset.entity === 'send'\n\t\t\t\t|| event.target.dataset.entity === 'put'\n\t\t\t)\n\t\t\t{\n\t\t\t\tvalue = event.target.nextSibling.innerHTML;\n\t\t\t}\n\t\t\telse if (event.target.dataset.entity === 'call')\n\t\t\t{\n\t\t\t\tvalue = event.target.dataset.command;\n\t\t\t}\n\n\t\t\tthis.$emit('clickByCommand', {type: event.target.dataset.entity, value, event});\n\t\t},\n\t\tonScroll(event)\n\t\t{\n\t\t\tthis.scrollPosition = event.target.scrollTop;\n\t\t\tthis.scrollPositionChangeTime = new Date().getTime();\n\n\t\t\tclearTimeout(this.scrollButtonShowTimeout);\n\t\t\tthis.scrollButtonShowTimeout = setTimeout(() =>\n\t\t\t{\n\t\t\t\tif (event.target.scrollTop + this.scrollButtonDiff >= event.target.scrollHeight - event.target.offsetHeight)\n\t\t\t\t{\n\t\t\t\t\tif (this.showScrollButton && !this.unreadLoaderShow && this.windowFocused)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showScrollButton = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (!this.showScrollButton)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showScrollButton = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 200);\n\n\t\t\tif (event.target.scrollTop == event.target.scrollHeight - event.target.offsetHeight)\n\t\t\t{\n\t\t\t\tclearTimeout(this.scrollButtonShowTimeout);\n\t\t\t\tif (this.showScrollButton && !this.unreadLoaderShow && this.windowFocused)\n\t\t\t\t{\n\t\t\t\t\tthis.showScrollButton = false;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tscrollToBottom(force = false)\n\t\t{\n\t\t\tlet body = this.$refs.body;\n\n\t\t\tif (this.dialog.counter > 0)\n\t\t\t{\n\t\t\t\tlet scrollToMessageId = this.dialog.counter > 1? this.firstUnreadMessageId: this.lastMessageId;\n\t\t\t\tUtils.scrollToFirstUnreadMessage(this, this.collection, scrollToMessageId);\n\n\t\t\t\tif (this.dialog.counter < this.startMessageLimit)\n\t\t\t\t{\n\t\t\t\t\tthis.messageExtraCount = 0;\n\t\t\t\t\tthis.historyLoaderShow = true;\n\t\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.showScrollButton = false;\n\n\t\t\tif (force)\n\t\t\t{\n\t\t\t\tbody.scrollTop = body.scrollHeight - body.offsetHeight;\n\t\t\t\tthis.messageExtraCount = 0;\n\t\t\t\tthis.historyLoaderShow = true;\n\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.scrollTo(() => {\n\t\t\t\t\tthis.messageExtraCount = 0;\n\t\t\t\t\tthis.historyLoaderShow = true;\n\t\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tscrollTo(params)\n\t\t{\n\t\t\tlet body = this.$refs.body;\n\n\t\t\tif (typeof params === 'function')\n\t\t\t{\n\t\t\t\tparams = {callback: params};\n\t\t\t}\n\t\t\tif (!body)\n\t\t\t{\n\t\t\t\tif (params.callback && typeof params.callback === 'function')\n\t\t\t\t{\n\t\t\t\t\tparams.callback();\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tlet {\n\t\t\t\tstart = body.scrollTop,\n\t\t\t\tend = body.scrollHeight - body.offsetHeight,\n\t\t\t\tincrement = 20,\n\t\t\t\tcallback,\n\t\t\t\tduration = 300\n\t\t\t} = params;\n\n\t\t\tlet diff = end - start;\n\t\t\tlet currentPosition = 0;\n\n\t\t\tconst easeInOutQuad = function (current, start, diff, duration)\n\t\t\t{\n\t\t\t\tcurrent /= duration/2;\n\n\t\t\t\tif (current < 1)\n\t\t\t\t{\n\t\t\t\t\treturn diff / 2 * current * current + start;\n\t\t\t\t}\n\n\t\t\t\tcurrent--;\n\n\t\t\t\treturn -diff/2 * (current*(current-2) - 1) + start;\n\t\t\t};\n\n\t\t\tconst requestFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function( callback ){ window.setTimeout(callback, 1000 / 60); };\n\n\t\t\tconst animateScroll = () =>\n\t\t\t{\n\t\t\t\tcurrentPosition += increment;\n\n\t\t\t\tthis.$refs.body.scrollTop = easeInOutQuad(currentPosition, start, diff, duration);\n\n\t\t\t\tif (currentPosition < duration)\n\t\t\t\t{\n\t\t\t\t\trequestFrame(animateScroll);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (callback && typeof callback === 'function')\n\t\t\t\t\t{\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tanimateScroll();\n\t\t},\n\t\tonScrollToBottom(event = {})\n\t\t{\n\t\t\tevent.force = event.force === true;\n\n\t\t\tthis.scrollToBottom(event.force);\n\n\t\t\treturn true;\n\t\t},\n\t\tonWindowFocus(event = {})\n\t\t{\n\t\t\tthis.windowFocused = true;\n\n\t\t\tthis.readMessageQueue = this.readMessageQueue.map(messageId => {\n\t\t\t\tthis.requestReadMessage(messageId);\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\t\tonWindowBlur(event = {})\n\t\t{\n\t\t\tthis.windowFocused = false;\n\t\t},\n\t\trequestHistoryDelayed()\n\t\t{\n\t\t\tif (this.requestHistoryInterval)\n\t\t\t{\n\t\t\t\tBX.Messenger.Logger.log('bx-messenger-dialog.methods.requestHistoryDelayed: skipped');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.scrollPositionChangeTime + 100 < new Date().getTime()\n\t\t\t\t&& this.$refs.body.scrollTop >= 0\n\t\t\t)\n\t\t\t{\n\t\t\t\tclearInterval(this.requestHistoryInterval);\n\t\t\t\tthis.requestHistoryInterval = null;\n\t\t\t\tthis.requestHistory();\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tclearInterval(this.requestHistoryInterval);\n\t\t\tthis.requestHistoryInterval = setInterval(() => {\n\t\t\t\tif (\n\t\t\t\t\tthis.scrollPositionChangeTime + 100 < new Date().getTime()\n\t\t\t\t\t&& this.$refs.body.scrollTop >= 0\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tclearInterval(this.requestHistoryInterval);\n\t\t\t\t\tthis.requestHistoryInterval = null;\n\t\t\t\t\tthis.requestHistory();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}, 50);\n\n\t\t\treturn true;\n\t\t},\n\t\trequestHistory()\n\t\t{\n\t\t\tif (this.waitLoadHistory)\n\t\t\t{\n\t\t\t\tBX.Messenger.Logger.log('bx-messenger-dialog.methods.requestHistory: waitLoadHistory not empty');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.waitLoadHistory = true;\n\n\t\t\tlet length = this.collection.length;\n\t\t\tlet messageShowCount = this.messageShowCount;\n\t\t\tif (length > messageShowCount)\n\t\t\t{\n\t\t\t\tlet element = this.$refs.body.getElementsByClassName(ReferenceClassName.listItem)[0];\n\n\t\t\t\tthis.messageExtraCount += this.messageLimit;\n\t\t\t\tUtils.scrollToElementAfterLoadHistory(this, element);\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.$emit('requestHistory', {lastId: this.firstMessageId});\n\t\t},\n\t\trequestUnreadDelayed()\n\t\t{\n\t\t\tif (this.requestUnreadInterval)\n\t\t\t{\n\t\t\t\tBX.Messenger.Logger.log('bx-messenger-dialog.methods.requestUnreadDelayed: skipped');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet body = this.$refs.body;\n\n\t\t\tif (\n\t\t\t\tthis.scrollPositionChangeTime + 100 < new Date().getTime()\n\t\t\t\t&& body.scrollTop <= body.scrollHeight - body.offsetHeight\n\t\t\t)\n\t\t\t{\n\t\t\t\tclearInterval(this.requestUnreadInterval);\n\t\t\t\tthis.requestUnreadInterval = null;\n\t\t\t\tthis.requestUnread();\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tclearInterval(this.requestUnreadInterval);\n\t\t\tthis.requestUnreadInterval = setInterval(() => {\n\t\t\t\tif (\n\t\t\t\t\tthis.scrollPositionChangeTime + 100 < new Date().getTime()\n\t\t\t\t\t&& body.scrollTop <= body.scrollHeight - body.offsetHeight\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tclearInterval(this.requestUnreadInterval);\n\t\t\t\t\tthis.requestUnreadInterval = null;\n\t\t\t\t\tthis.requestUnread();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}, 50);\n\n\t\t\treturn true;\n\t\t},\n\t\tonRequestHistoryAnswer(event = {})\n\t\t{\n\t\t\tif (event.error)\n\t\t\t{\n\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.historyLoaderBlocked = event.count < this.startMessageLimit;\n\t\t\t\tthis.messageExtraCount += event.count;\n\t\t\t}\n\n\t\t\tif (this.historyLoaderBlocked)\n\t\t\t{\n\t\t\t\tthis.historyLoaderShow = false;\n\t\t\t}\n\n\t\t\tlet element = this.$refs.body.getElementsByClassName(ReferenceClassName.listItem)[0];\n\n\t\t\tif (event.count > 0)\n\t\t\t{\n\t\t\t\tUtils.scrollToElementAfterLoadHistory(this, element);\n\t\t\t}\n\t\t\telse if (event.error)\n\t\t\t{\n\t\t\t\telement.scrollIntoView(true);\n\t\t\t\tthis.waitLoadHistory = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.$refs.body.scrollTop = 0;\n\t\t\t\tthis.waitLoadHistory = false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\trequestUnread()\n\t\t{\n\t\t\tif (this.waitLoadUnread)\n\t\t\t{\n\t\t\t\tBX.Messenger.Logger.log('bx-messenger-dialog.methods.requestUnread: waitLoadUnread not empty');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.waitLoadUnread = true;\n\n\t\t\tthis.$emit('requestUnread', {lastId: this.lastMessageId});\n\t\t},\n\t\tonRequestUnreadAnswer(event = {})\n\t\t{\n\t\t\tif (event.error)\n\t\t\t{\n\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.unreadLoaderBlocked = event.count < this.startMessageLimit;\n\t\t\t\tthis.messageExtraCount += event.count;\n\t\t\t}\n\n\t\t\tif (this.unreadLoaderBlocked)\n\t\t\t{\n\t\t\t\tthis.unreadLoaderShow = false;\n\t\t\t}\n\n\t\t\tif (event.count > 0)\n\t\t\t{\n\t\t\t\tUtils.scrollToElementAfterLoadUnread(this);\n\t\t\t}\n\t\t\telse if (event.error)\n\t\t\t{\n\t\t\t\tlet element = this.$refs.body.getElementsByClassName(ReferenceClassName.listUnreadLoader)[0];\n\t\t\t\tlet body = this.$refs.body;\n\n\t\t\t\tbody.scrollTop = body.scrollTop - element.offsetHeight*2;\n\t\t\t\tthis.waitLoadUnread = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet body = this.$refs.body;\n\t\t\t\tbody.scrollTop = body.scrollHeight - body.offsetHeight;\n\t\t\t\tthis.waitLoadUnread = false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\treadMessage(messageId)\n\t\t{\n\t\t\tif (this.windowFocused)\n\t\t\t{\n\t\t\t\tthis.$emit('readMessage', {id: messageId});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.readMessageQueue.push(messageId);\n\t\t\t}\n\t\t},\n\t\trequestReadMessage(messageId)\n\t\t{\n\t\t\tthis.$emit('readMessage', {id: messageId});\n\t\t},\n\n\t\tonClickByUserName(event)\n\t\t{\n\t\t\tthis.$emit('clickByUserName', event)\n\t\t},\n\n\t\tonClickByMessageMenu(event)\n\t\t{\n\t\t\tthis.$emit('clickByMessageMenu', event)\n\t\t},\n\n\t\tonClickByMessageRetry(event)\n\t\t{\n\t\t\tthis.$emit('clickByMessageRetry', event)\n\t\t},\n\n\t\t_getDateFormat()\n\t\t{\n\t\t\tif (this.dateFormatFunction)\n\t\t\t{\n\t\t\t\treturn this.dateFormatFunction;\n\t\t\t}\n\n\t\t\tthis.dateFormatFunction = Object.create(BX.Main.Date);\n\t\t\tif (this.$root.$bitrixMessages)\n\t\t\t{\n\t\t\t\tthis.dateFormatFunction._getMessage = (phrase) => this.$root.$bitrixMessages[phrase];\n\t\t\t}\n\n\t\t\treturn this.dateFormatFunction;\n\t\t},\n\t\t_groupTitle(date)\n\t\t{\n\t\t\tconst id = Utils.getDateFormat(date);\n\t\t\tif (this.cacheGroupTitle[id])\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tid: id,\n\t\t\t\t\ttitle: this.cacheGroupTitle[id]\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet dateFormat = BX.Messenger.Utils.getDateFormatType(\n\t\t\t\tBX.Messenger.Const.dateFormat.groupTitle,\n\t\t\t\tthis.$root.$bitrixMessages\n\t\t\t);\n\n\t\t\tthis.cacheGroupTitle[id] = this._getDateFormat().format(dateFormat, date);\n\n\t\t\treturn {\n\t\t\t\tid: id,\n\t\t\t\ttitle: this.cacheGroupTitle[id]\n\t\t\t};\n\t\t},\n\t},\n\n\tdirectives:\n\t{\n\t\t'bx-messenger-dialog-observer':\n\t\t{\n\t\t\tinserted(element, bindings, vnode)\n\t\t\t{\n\t\t\t\tif (bindings.value == ObserverType.none)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (!vnode.context.observers[bindings.value])\n\t\t\t\t{\n\t\t\t\t\tvnode.context.observers[bindings.value] = Utils.getMessageLoaderObserver({\n\t\t\t\t\t\ttype: bindings.value,\n\t\t\t\t\t\tcontext: vnode.context\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tvnode.context.observers[bindings.value].observe(element);\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tunbind(element, bindings, vnode)\n\t\t\t{\n\t\t\t\tif (bindings.value == ObserverType.none)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (vnode.context.observers[bindings.value])\n\t\t\t\t{\n\t\t\t\t\tvnode.context.observers[bindings.value].unobserve(element);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t},\n\n\ttemplate: `\n\t\t<div class=\"bx-im-dialog\" @click=\"onDialogClick\">\t\n\t\t\t<div class=\"bx-im-dialog-list\" @scroll.passive=\"onScroll\" ref=\"body\">\n\t\t\t\t<template v-if=\"historyLoaderShow\">\n\t\t\t\t\t<div class=\"bx-im-dialog-load-more bx-im-dialog-load-more-history\" v-bx-messenger-dialog-observer=\"ObserverType.history\">\n\t\t\t\t\t\t<span class=\"bx-im-dialog-load-more-text\">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<transition-group tag=\"div\" class=\"bx-im-dialog-list-box\" name=\"bx-im-dialog-message-animation\" >\n\t\t\t\t\t<template v-for=\"element in elementsWithLimit\">\n\t\t\t\t\t\t<template v-if=\"element.templateType == TemplateType.message\">\n\t\t\t\t\t\t\t<div :class=\"['bx-im-dialog-list-item', ReferenceClassName.listItem, ReferenceClassName.listItem+'-'+element.id]\" :data-message-id=\"element.id\" :key=\"element.templateId\" v-bx-messenger-dialog-observer=\"element.unread? ObserverType.read: ObserverType.none\">\t\t\t\n\t\t\t\t\t\t\t\t<component :is=\"element.params.COMPONENT_ID\"\n\t\t\t\t\t\t\t\t\t:userId=\"userId\" \n\t\t\t\t\t\t\t\t\t:dialogId=\"dialogId\"\n\t\t\t\t\t\t\t\t\t:chatId=\"chatId\"\n\t\t\t\t\t\t\t\t\t:message=\"element\"\n\t\t\t\t\t\t\t\t\t:enableEmotions=\"enableEmotions\"\n\t\t\t\t\t\t\t\t\t:enableDateActions=\"enableDateActions\"\n\t\t\t\t\t\t\t\t\t:enableCreateContent=\"showMessageMenu\"\n\t\t\t\t\t\t\t\t\t:showAvatar=\"showMessageAvatar\"\n\t\t\t\t\t\t\t\t\t:showMenu=\"showMessageMenu\"\n\t\t\t\t\t\t\t\t\t:referenceContentClassName=\"ReferenceClassName.listItem\"\n\t\t\t\t\t\t\t\t\t:referenceContentBodyClassName=\"ReferenceClassName.listItemBody\"\n\t\t\t\t\t\t\t\t\t@clickByUserName=\"onClickByUserName\"\n\t\t\t\t\t\t\t\t\t@clickByMessageMenu=\"onClickByMessageMenu\"\n\t\t\t\t\t\t\t\t\t@clickByMessageRetry=\"onClickByMessageRetry\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if=\"element.templateType == TemplateType.group\">\n\t\t\t\t\t\t\t<div class=\"bx-im-dialog-group\" :key=\"element.templateId\">\n\t\t\t\t\t\t\t\t<div class=\"bx-im-dialog-group-date\">{{ element.text }}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if=\"element.templateType == TemplateType.delimiter\">\n\t\t\t\t\t\t\t<div class=\"bx-im-dialog-delimiter\" :key=\"element.templateId\" ></div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</template>\n\t\t\t\t</transition-group>\n\t\t\t\t<template v-if=\"unreadLoaderShow\">\n\t\t\t\t\t<div :class=\"['bx-im-dialog-load-more', 'bx-im-dialog-load-more-unread', ReferenceClassName.listUnreadLoader]\" v-bx-messenger-dialog-observer=\"ObserverType.unread\">\n\t\t\t\t\t\t<span class=\"bx-im-dialog-load-more-text\">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<transition name=\"bx-im-dialog-status\">\n\t\t\t\t\t<template v-if=\"statusWriting\">\n\t\t\t\t\t\t<div class=\"bx-im-dialog-status\">\n\t\t\t\t\t\t\t<span class=\"bx-im-dialog-status-writing\"></span>\n\t\t\t\t\t\t\t{{ statusWriting }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-else-if=\"statusReaded\">\n\t\t\t\t\t\t<div class=\"bx-im-dialog-status\">\n\t\t\t\t\t\t\t<span class=\"bx-im-dialog-status-readed\"></span>\n\t\t\t\t\t\t\t{{ statusReaded }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<transition name=\"bx-im-dialog-scroll-button\">\n\t\t\t\t<div v-show=\"showScrollButton || unreadLoaderShow && unreadCounter\" class=\"bx-im-dialog-scroll-button\" @click=\"scrollToBottom()\">\n\t\t\t\t\t<div v-show=\"unreadCounter\" class=\"bx-im-dialog-scroll-button-counter\">\n\t\t\t\t\t\t<div class=\"bx-im-dialog-scroll-button-counter-digit\">{{unreadCounter}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bx-im-dialog-scroll-button-arrow\"></div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\t`\n});\n\nconst Utils = {\n\tgetDateFormat(date)\n\t{\n\t\treturn date.toJSON().slice(0,10);\n\t},\n\n\tscrollToFirstUnreadMessage(context, collection, unreadId = null, force = false)\n\t{\n\t\tlet body = context.$refs.body;\n\n\t\tlet element = false;\n\t\tif (unreadId !== null)\n\t\t{\n\t\t\telement = body.getElementsByClassName(ReferenceClassName.listItem+'-'+unreadId)[0];\n\t\t}\n\t\tif (!element)\n\t\t{\n\t\t\tfor (let index = collection.length-1; index >= 0; index--)\n\t\t\t{\n\t\t\t\tif (!collection[index].unread)\n\t\t\t\t{\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tunreadId = collection[index].id;\n\t\t\t}\n\t\t\telement = body.getElementsByClassName(ReferenceClassName.listItem+'-'+unreadId)[0];\n\t\t}\n\n\t\tlet end = 0;\n\t\tif (element)\n\t\t{\n\t\t\tend = element.offsetTop - 20;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tend = body.scrollHeight - body.offsetHeight;\n\t\t}\n\n\t\tif (force)\n\t\t{\n\t\t\tbody.scrollTop = end;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcontext.scrollTo({end});\n\t\t}\n\t},\n\n\tscrollToElementAfterLoadHistory(context, element)\n\t{\n\t\tif (!element)\n\t\t{\n\t\t\tcontext.waitLoadHistory = false;\n\t\t\treturn false;\n\t\t}\n\n\t\tlet elementBody = element.getElementsByClassName(ReferenceClassName.listItemBody)[0];\n\t\tif (elementBody)\n\t\t{\n\t\t\telement = elementBody;\n\t\t}\n\n\t\tlet previousOffsetTop = element.offsetTop;\n\n\t\tcontext.$nextTick(() => {\n\t\t\tif (!element)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tcontext.$refs.body.scrollTop = element.offsetTop - previousOffsetTop;\n\n\t\t\tcontext.waitLoadHistory = false;\n\t\t});\n\t},\n\n\tscrollToElementAfterLoadUnread(context)\n\t{\n\t\tcontext.scrollBlocked = true;\n\t\tcontext.showScrollButton = true;\n\n\t\tcontext.$nextTick(() => {\n\t\t\tcontext.scrollBlocked = false;\n\t\t\tcontext.waitLoadUnread = false;\n\t\t});\n\t},\n\n\tgetMessageLoaderObserver(config)\n\t{\n\t\tif (\n\t\t\ttypeof window.IntersectionObserver === 'undefined'\n\t\t\t|| config.value == ObserverType.none\n\t\t)\n\t\t{\n\t\t\treturn {\n\t\t\t\tobserve: () => {},\n\t\t\t\tunobserve: () => {}\n\t\t\t};\n\t\t}\n\n\t\tlet observerCallback, observerOptions;\n\n\t\tif (config.type == ObserverType.read)\n\t\t{\n\t\t\tobserverCallback = function (entries, observer)\n\t\t\t{\n\t\t\t\tentries.forEach(function(entry)\n\t\t\t\t{\n\t\t\t\t\tlet sendReadEvent = false;\n\t\t\t\t\tif (entry.isIntersecting)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (entry.intersectionRatio >= 1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsendReadEvent = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (\n\t\t\t\t\t\t\tentry.intersectionRatio > 0\n\t\t\t\t\t\t\t&& entry.rootBounds.height < entry.boundingClientRect.height + 20\n\t\t\t\t\t\t\t&& entry.intersectionRect.height > entry.rootBounds.height - 20\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsendReadEvent = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (sendReadEvent)\n\t\t\t\t\t{\n\t\t\t\t\t\tconfig.context.readMessage(entry.target.dataset.messageId);\n\t\t\t\t\t\tconfig.context.observers[config.type].unobserve(entry.target);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\tobserverOptions = {\n\t\t\t\troot: config.context.$refs.body,\n\t\t\t\tthreshold: new Array(101).fill(0).map((zero, index) => index * 0.01)\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\tobserverCallback = function (entries, observer)\n\t\t\t{\n\t\t\t\tentries.forEach(function(entry)\n\t\t\t\t{\n\t\t\t\t\tif (entry.isIntersecting && entry.intersectionRatio > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (config.type == ObserverType.unread)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfig.context.requestUnreadDelayed();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfig.context.requestHistoryDelayed();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\tobserverOptions = {\n\t\t\t\troot: config.context.$refs.body,\n\t\t\t\tthreshold: [0, 0.01, 0.99, 1]\n\t\t\t};\n\t\t}\n\n\t\treturn new IntersectionObserver(observerCallback, observerOptions);\n\t}\n};\n\nconst Blocks = {\n\tgetDelimiter(id = 0)\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'delimiter'+id,\n\t\t\ttemplateType: TemplateType.delimiter\n\t\t};\n\t},\n\tgetGroup(id = 0, text = '')\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'group'+id,\n\t\t\ttemplateType: TemplateType.group,\n\t\t\ttext: text\n\t\t};\n\t},\n\tgetHistoryLoader()\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'historyLoader',\n\t\t\ttemplateType: TemplateType.historyLoader,\n\t\t};\n\t},\n\tgetUnreadLoader()\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'unreadLoader',\n\t\t\ttemplateType: TemplateType.unreadLoader,\n\t\t};\n\t},\n\tgetLoadButton(id = 0, text = '', type = LoadButtonTypes.before)\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'loadButton'+id+type,\n\t\t\ttemplateType: TemplateType.button,\n\t\t\ttext: text,\n\t\t\ttype: type,\n\t\t\tmessageId: id\n\t\t};\n\t}\n};\n"],"names":["TemplateType","Object","freeze","message","delimiter","group","historyLoader","unreadLoader","button","ObserverType","history","unread","read","none","MessengerStore","messages","BX","Messenger","Model","Messages","getName","dialogues","Dialogues","LoadButtonTypes","before","after","ReferenceClassName","listItem","listItemBody","listUnreadLoader","Vue","component","props","userId","default","dialogId","chatId","listenEventScrollToBottom","listenEventRequestHistory","listenEventRequestUnread","messageLimit","enableEmotions","enableDateActions","enableCreateContent","showMessageAvatar","showMessageMenu","data","showScrollButton","messageShowCount","messageExtraCount","unreadLoaderShow","unreadLoaderBlocked","historyLoaderBlocked","historyLoaderShow","startMessageLimit","created","scrollIsChanged","scrollBlocked","scrollButtonDiff","scrollButtonShowTimeout","scrollPosition","scrollPositionChangeTime","Date","getTime","observers","requestHistoryInterval","requestUnreadInterval","lastAuthorId","firstMessageId","firstUnreadMessageId","lastMessageId","dateFormatFunction","cacheGroupTitle","waitLoadHistory","waitLoadUnread","readMessageQueue","dialog","counter","event","$on","onScrollToBottom","$root","onRequestHistoryAnswer","onRequestUnreadAnswer","window","addEventListener","onWindowFocus","onWindowBlur","beforeDestroy","clearTimeout","clearInterval","$off","removeEventListener","mounted","body","$refs","unreadId","Utils","scrollToFirstUnreadMessage","collection","scrollTop","scrollHeight","offsetHeight","windowFocused","document","hasFocus","beforeUpdate","unreadCounter","updated","$nextTick","scrollTo","computed","localize","getFilteredPhrases","$bitrixMessages","$store","state","elementsWithLimit","start","length","groupNode","slicedCollection","slice","id","forEach","element","_groupTitle","date","push","Blocks","getGroup","title","authorId","getDelimiter","unreadLastId","statusWriting","writingList","users","map","userName","IM_MESSENGER_DIALOG_WRITES_MESSAGE","replace","join","statusReaded","methods","onDialogClick","testNode","target","className","onCommandClick","$emit","value","dataset","entity","nextSibling","innerHTML","command","type","onScroll","setTimeout","scrollToBottom","force","scrollToMessageId","params","callback","end","increment","duration","diff","currentPosition","easeInOutQuad","current","requestFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","animateScroll","messageId","requestReadMessage","requestHistoryDelayed","Logger","log","requestHistory","setInterval","getElementsByClassName","scrollToElementAfterLoadHistory","lastId","requestUnreadDelayed","requestUnread","error","count","scrollIntoView","scrollToElementAfterLoadUnread","readMessage","onClickByUserName","onClickByMessageMenu","onClickByMessageRetry","_getDateFormat","create","Main","_getMessage","phrase","getDateFormat","dateFormat","getDateFormatType","Const","groupTitle","format","directives","inserted","bindings","vnode","context","getMessageLoaderObserver","observe","unbind","unobserve","template","toJSON","index","offsetTop","elementBody","previousOffsetTop","config","IntersectionObserver","observerCallback","observerOptions","entries","observer","entry","sendReadEvent","isIntersecting","intersectionRatio","rootBounds","height","boundingClientRect","intersectionRect","root","threshold","Array","fill","zero","templateId","templateType","text","getHistoryLoader","getUnreadLoader","getLoadButton"],"mappings":"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"}dialog/messenger.component.dialog.bundle.min.js000066400000047140147744271350015650 0ustar00(function(t){"use strict";var e=Object.freeze({message:"message",delimiter:"delimiter",group:"group",historyLoader:"historyLoader",unreadLoader:"unreadLoader",button:"button"});var s=Object.freeze({history:"history",unread:"unread",read:"read",none:"none"});var o=Object.freeze({messages:BX.Messenger.Model.Messages.getName(),dialogues:BX.Messenger.Model.Dialogues.getName()});var i=Object.freeze({before:"before",after:"after"});var r=Object.freeze({listItem:"bx-im-dialog-list-item-reference",listItemBody:"bx-im-dialog-list-item-content-reference",listUnreadLoader:"bx-im-dialog-list-unread-loader-reference"});BX.Vue.component("bx-messenger-dialog",{props:{userId:{default:0},dialogId:{default:0},chatId:{default:0},listenEventScrollToBottom:{default:""},listenEventRequestHistory:{default:""},listenEventRequestUnread:{default:""},messageLimit:{default:20},enableEmotions:{default:true},enableDateActions:{default:true},enableCreateContent:{default:true},showMessageAvatar:{default:true},showMessageMenu:{default:true}},data:function t(){return{showScrollButton:false,messageShowCount:0,messageExtraCount:0,unreadLoaderShow:false,unreadLoaderBlocked:false,historyLoaderBlocked:false,historyLoaderShow:false,startMessageLimit:0,TemplateType:e,ObserverType:s,ReferenceClassName:r}},created:function t(){this.scrollIsChanged=false;this.scrollBlocked=false;this.scrollButtonDiff=30;this.scrollButtonShowTimeout=null;this.scrollPosition=0;this.scrollPositionChangeTime=(new Date).getTime();this.observers={};this.requestHistoryInterval=null;this.requestUnreadInterval=null;this.lastAuthorId=0;this.firstMessageId=null;this.firstUnreadMessageId=null;this.lastMessageId=null;this.dateFormatFunction=null;this.cacheGroupTitle={};this.waitLoadHistory=false;this.waitLoadUnread=false;this.readMessageQueue=[];this.unreadLoaderBlocked=this.dialog.counter===0;this.startMessageLimit=this.messageLimit;if(this.listenEventScrollToBottom){BX.Vue.event.$on(this.listenEventScrollToBottom,this.onScrollToBottom);this.$root.$on(this.listenEventScrollToBottom,this.onScrollToBottom)}if(this.listenEventRequestHistory){this.$root.$on(this.listenEventRequestHistory,this.onRequestHistoryAnswer)}if(this.listenEventRequestUnread){this.$root.$on(this.listenEventRequestUnread,this.onRequestUnreadAnswer)}window.addEventListener("focus",this.onWindowFocus);window.addEventListener("blur",this.onWindowBlur)},beforeDestroy:function t(){this.observers={};clearTimeout(this.scrollButtonShowTimeout);clearInterval(this.requestHistoryInterval);clearInterval(this.requestUnreadInterval);if(this.listenEventScrollToBottom){BX.Vue.event.$off(this.listenEventScrollToBottom,this.onScrollToBottom);this.$root.$off(this.listenEventScrollToBottom,this.onScrollToBottom)}if(this.listenEventRequestHistory){this.$root.$off(this.listenEventRequestHistory,this.onRequestHistoryAnswer)}if(this.listenEventRequestUnread){this.$root.$off(this.listenEventRequestUnread,this.onRequestUnreadAnswer)}window.removeEventListener("focus",this.onWindowFocus);window.removeEventListener("blur",this.onWindowBlur)},mounted:function t(){var e=this.$refs.body;var s=this.dialog.unreadId;if(s){n.scrollToFirstUnreadMessage(this,this.collection,s,true)}else{e.scrollTop=e.scrollHeight-e.offsetHeight}this.windowFocused=document.hasFocus()},beforeUpdate:function t(){var e=this.$refs.body;if(this.scrollBlocked){this.scrollIsChanged=false}else{this.scrollIsChanged=e.scrollTop+this.scrollButtonDiff>=e.scrollHeight-e.offsetHeight;if(!this.scrollIsChanged&&!this.showScrollButton&&this.unreadCounter>1){this.showScrollButton=true}}},updated:function t(){var e=this;if(!this.scrollIsChanged){return}this.$nextTick(function(){var t=e.$refs.body;if(e.scrollIsChanged){if(!e.windowFocused&&e.unreadCounter>0&&!e.showScrollButton){n.scrollToFirstUnreadMessage(e,e.collection,e.firstUnreadMessageId);return}e.scrollTo(function(){clearTimeout(e.scrollButtonShowTimeout);if(e.showScrollButton&&e.windowFocused){e.showScrollButton=false}})}})},computed:{localize:function t(){return BX.Vue.getFilteredPhrases("IM_MESSENGER_DIALOG_",this.$root.$bitrixMessages)},dialog:function t(){var t=this.$store.state[o.dialogues].collection[this.dialogId];return t?t:{}},collection:function t(){var t=this.$store.state[o.messages].collection[this.chatId];return t?t:[]},elementsWithLimit:function t(){var e=this;var s=this.collection.length-(this.messageExtraCount+this.messageLimit);if(!this.historyLoaderShow||s<0){s=0}var o=[];var i=0;var r={};var n=s==0?this.collection:this.collection.slice(s,this.collection.length);this.messageShowCount=n.length;if(this.messageShowCount>0){this.firstMessageId=n[0].id;this.lastMessageId=n[n.length-1].id}if(this.collection.length>=this.messageLimit&&this.collection.length>=this.messageShowCount&&this.historyLoaderBlocked===false){this.historyLoaderShow=true}else{this.historyLoaderShow=false}this.firstUnreadMessageId=0;n.forEach(function(t){var s=e._groupTitle(t.date);if(!r[s.id]){r[s.id]=true;o.push(a.getGroup(s.id,s.title))}else if(i!=t.authorId){o.push(a.getDelimiter(t.id))}o.push(t);i=t.authorId;if(t.unread){if(!e.firstUnreadMessageId){e.firstUnreadMessageId=t.id}}});if(this.dialog.unreadLastId>this.lastMessageId&&this.unreadLoaderBlocked===false){this.unreadLoaderShow=true}else{this.unreadLoaderShow=false}return o},statusWriting:function t(){if(this.dialog.writingList.length==0)return"";var e=this.dialog.writingList.map(function(t){return t.userName});return this.localize.IM_MESSENGER_DIALOG_WRITES_MESSAGE.replace("#USER#",e.join(", "))},statusReaded:function t(){return false},unreadCounter:function t(){return this.dialog.counter>999?999:this.dialog.counter}},methods:{onDialogClick:function t(e){if(BX.Vue.testNode(e.target,{className:"bx-im-message-command"})){this.onCommandClick(e)}this.windowFocused=true;this.$emit("click",{event:e})},onCommandClick:function t(e){var s="";if(e.target.dataset.entity==="send"||e.target.dataset.entity==="put"){s=e.target.nextSibling.innerHTML}else if(e.target.dataset.entity==="call"){s=e.target.dataset.command}this.$emit("clickByCommand",{type:e.target.dataset.entity,value:s,event:e})},onScroll:function t(e){var s=this;this.scrollPosition=e.target.scrollTop;this.scrollPositionChangeTime=(new Date).getTime();clearTimeout(this.scrollButtonShowTimeout);this.scrollButtonShowTimeout=setTimeout(function(){if(e.target.scrollTop+s.scrollButtonDiff>=e.target.scrollHeight-e.target.offsetHeight){if(s.showScrollButton&&!s.unreadLoaderShow&&s.windowFocused){s.showScrollButton=false}}else{if(!s.showScrollButton){s.showScrollButton=true}}},200);if(e.target.scrollTop==e.target.scrollHeight-e.target.offsetHeight){clearTimeout(this.scrollButtonShowTimeout);if(this.showScrollButton&&!this.unreadLoaderShow&&this.windowFocused){this.showScrollButton=false}}},scrollToBottom:function t(){var e=this;var s=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var o=this.$refs.body;if(this.dialog.counter>0){var i=this.dialog.counter>1?this.firstUnreadMessageId:this.lastMessageId;n.scrollToFirstUnreadMessage(this,this.collection,i);if(this.dialog.counter<this.startMessageLimit){this.messageExtraCount=0;this.historyLoaderShow=true;this.historyLoaderBlocked=false}return true}this.showScrollButton=false;if(s){o.scrollTop=o.scrollHeight-o.offsetHeight;this.messageExtraCount=0;this.historyLoaderShow=true;this.historyLoaderBlocked=false}else{this.scrollTo(function(){e.messageExtraCount=0;e.historyLoaderShow=true;e.historyLoaderBlocked=false})}},scrollTo:function t(e){var s=this;var o=this.$refs.body;if(typeof e==="function"){e={callback:e}}if(!o){if(e.callback&&typeof e.callback==="function"){e.callback()}return true}var i=e,r=i.start,n=r===void 0?o.scrollTop:r,a=i.end,l=a===void 0?o.scrollHeight-o.offsetHeight:a,d=i.increment,u=d===void 0?20:d,c=i.callback,h=i.duration,f=h===void 0?300:h;var g=l-n;var m=0;var v=function t(e,s,o,i){e/=i/2;if(e<1){return o/2*e*e+s}e--;return-o/2*(e*(e-2)-1)+s};var y=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)};var p=function t(){m+=u;s.$refs.body.scrollTop=v(m,n,g,f);if(m<f){y(t)}else{if(c&&typeof c==="function"){c()}}};p()},onScrollToBottom:function t(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};e.force=e.force===true;this.scrollToBottom(e.force);return true},onWindowFocus:function t(){var e=this;this.windowFocused=true;this.readMessageQueue=this.readMessageQueue.map(function(t){e.requestReadMessage(t);return false})},onWindowBlur:function t(){this.windowFocused=false},requestHistoryDelayed:function t(){var e=this;if(this.requestHistoryInterval){BX.Messenger.Logger.log("bx-messenger-dialog.methods.requestHistoryDelayed: skipped");return false}if(this.scrollPositionChangeTime+100<(new Date).getTime()&&this.$refs.body.scrollTop>=0){clearInterval(this.requestHistoryInterval);this.requestHistoryInterval=null;this.requestHistory();return true}clearInterval(this.requestHistoryInterval);this.requestHistoryInterval=setInterval(function(){if(e.scrollPositionChangeTime+100<(new Date).getTime()&&e.$refs.body.scrollTop>=0){clearInterval(e.requestHistoryInterval);e.requestHistoryInterval=null;e.requestHistory();return true}},50);return true},requestHistory:function t(){if(this.waitLoadHistory){BX.Messenger.Logger.log("bx-messenger-dialog.methods.requestHistory: waitLoadHistory not empty");return false}this.waitLoadHistory=true;var e=this.collection.length;var s=this.messageShowCount;if(e>s){var o=this.$refs.body.getElementsByClassName(r.listItem)[0];this.messageExtraCount+=this.messageLimit;n.scrollToElementAfterLoadHistory(this,o);return true}this.$emit("requestHistory",{lastId:this.firstMessageId})},requestUnreadDelayed:function t(){var e=this;if(this.requestUnreadInterval){BX.Messenger.Logger.log("bx-messenger-dialog.methods.requestUnreadDelayed: skipped");return false}var s=this.$refs.body;if(this.scrollPositionChangeTime+100<(new Date).getTime()&&s.scrollTop<=s.scrollHeight-s.offsetHeight){clearInterval(this.requestUnreadInterval);this.requestUnreadInterval=null;this.requestUnread();return true}clearInterval(this.requestUnreadInterval);this.requestUnreadInterval=setInterval(function(){if(e.scrollPositionChangeTime+100<(new Date).getTime()&&s.scrollTop<=s.scrollHeight-s.offsetHeight){clearInterval(e.requestUnreadInterval);e.requestUnreadInterval=null;e.requestUnread();return true}},50);return true},onRequestHistoryAnswer:function t(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(e.error){this.historyLoaderBlocked=false}else{this.historyLoaderBlocked=e.count<this.startMessageLimit;this.messageExtraCount+=e.count}if(this.historyLoaderBlocked){this.historyLoaderShow=false}var s=this.$refs.body.getElementsByClassName(r.listItem)[0];if(e.count>0){n.scrollToElementAfterLoadHistory(this,s)}else if(e.error){s.scrollIntoView(true);this.waitLoadHistory=false}else{this.$refs.body.scrollTop=0;this.waitLoadHistory=false}return true},requestUnread:function t(){if(this.waitLoadUnread){BX.Messenger.Logger.log("bx-messenger-dialog.methods.requestUnread: waitLoadUnread not empty");return false}this.waitLoadUnread=true;this.$emit("requestUnread",{lastId:this.lastMessageId})},onRequestUnreadAnswer:function t(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(e.error){this.historyLoaderBlocked=false}else{this.unreadLoaderBlocked=e.count<this.startMessageLimit;this.messageExtraCount+=e.count}if(this.unreadLoaderBlocked){this.unreadLoaderShow=false}if(e.count>0){n.scrollToElementAfterLoadUnread(this)}else if(e.error){var s=this.$refs.body.getElementsByClassName(r.listUnreadLoader)[0];var o=this.$refs.body;o.scrollTop=o.scrollTop-s.offsetHeight*2;this.waitLoadUnread=false}else{var i=this.$refs.body;i.scrollTop=i.scrollHeight-i.offsetHeight;this.waitLoadUnread=false}return true},readMessage:function t(e){if(this.windowFocused){this.$emit("readMessage",{id:e})}else{this.readMessageQueue.push(e)}},requestReadMessage:function t(e){this.$emit("readMessage",{id:e})},onClickByUserName:function t(e){this.$emit("clickByUserName",e)},onClickByMessageMenu:function t(e){this.$emit("clickByMessageMenu",e)},onClickByMessageRetry:function t(e){this.$emit("clickByMessageRetry",e)},_getDateFormat:function t(){var e=this;if(this.dateFormatFunction){return this.dateFormatFunction}this.dateFormatFunction=Object.create(BX.Main.Date);if(this.$root.$bitrixMessages){this.dateFormatFunction._getMessage=function(t){return e.$root.$bitrixMessages[t]}}return this.dateFormatFunction},_groupTitle:function t(e){var s=n.getDateFormat(e);if(this.cacheGroupTitle[s]){return{id:s,title:this.cacheGroupTitle[s]}}var o=BX.Messenger.Utils.getDateFormatType(BX.Messenger.Const.dateFormat.groupTitle,this.$root.$bitrixMessages);this.cacheGroupTitle[s]=this._getDateFormat().format(o,e);return{id:s,title:this.cacheGroupTitle[s]}}},directives:{"bx-messenger-dialog-observer":{inserted:function t(e,o,i){if(o.value==s.none){return false}if(!i.context.observers[o.value]){i.context.observers[o.value]=n.getMessageLoaderObserver({type:o.value,context:i.context})}i.context.observers[o.value].observe(e);return true},unbind:function t(e,o,i){if(o.value==s.none){return true}if(i.context.observers[o.value]){i.context.observers[o.value].unobserve(e)}return true}}},template:'\n\t\t<div class="bx-im-dialog" @click="onDialogClick">\t\n\t\t\t<div class="bx-im-dialog-list" @scroll.passive="onScroll" ref="body">\n\t\t\t\t<template v-if="historyLoaderShow">\n\t\t\t\t\t<div class="bx-im-dialog-load-more bx-im-dialog-load-more-history" v-bx-messenger-dialog-observer="ObserverType.history">\n\t\t\t\t\t\t<span class="bx-im-dialog-load-more-text">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<transition-group tag="div" class="bx-im-dialog-list-box" name="bx-im-dialog-message-animation" >\n\t\t\t\t\t<template v-for="element in elementsWithLimit">\n\t\t\t\t\t\t<template v-if="element.templateType == TemplateType.message">\n\t\t\t\t\t\t\t<div :class="[\'bx-im-dialog-list-item\', ReferenceClassName.listItem, ReferenceClassName.listItem+\'-\'+element.id]" :data-message-id="element.id" :key="element.templateId" v-bx-messenger-dialog-observer="element.unread? ObserverType.read: ObserverType.none">\t\t\t\n\t\t\t\t\t\t\t\t<component :is="element.params.COMPONENT_ID"\n\t\t\t\t\t\t\t\t\t:userId="userId" \n\t\t\t\t\t\t\t\t\t:dialogId="dialogId"\n\t\t\t\t\t\t\t\t\t:chatId="chatId"\n\t\t\t\t\t\t\t\t\t:message="element"\n\t\t\t\t\t\t\t\t\t:enableEmotions="enableEmotions"\n\t\t\t\t\t\t\t\t\t:enableDateActions="enableDateActions"\n\t\t\t\t\t\t\t\t\t:enableCreateContent="showMessageMenu"\n\t\t\t\t\t\t\t\t\t:showAvatar="showMessageAvatar"\n\t\t\t\t\t\t\t\t\t:showMenu="showMessageMenu"\n\t\t\t\t\t\t\t\t\t:referenceContentClassName="ReferenceClassName.listItem"\n\t\t\t\t\t\t\t\t\t:referenceContentBodyClassName="ReferenceClassName.listItemBody"\n\t\t\t\t\t\t\t\t\t@clickByUserName="onClickByUserName"\n\t\t\t\t\t\t\t\t\t@clickByMessageMenu="onClickByMessageMenu"\n\t\t\t\t\t\t\t\t\t@clickByMessageRetry="onClickByMessageRetry"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if="element.templateType == TemplateType.group">\n\t\t\t\t\t\t\t<div class="bx-im-dialog-group" :key="element.templateId">\n\t\t\t\t\t\t\t\t<div class="bx-im-dialog-group-date">{{ element.text }}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if="element.templateType == TemplateType.delimiter">\n\t\t\t\t\t\t\t<div class="bx-im-dialog-delimiter" :key="element.templateId" ></div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</template>\n\t\t\t\t</transition-group>\n\t\t\t\t<template v-if="unreadLoaderShow">\n\t\t\t\t\t<div :class="[\'bx-im-dialog-load-more\', \'bx-im-dialog-load-more-unread\', ReferenceClassName.listUnreadLoader]" v-bx-messenger-dialog-observer="ObserverType.unread">\n\t\t\t\t\t\t<span class="bx-im-dialog-load-more-text">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<transition name="bx-im-dialog-status">\n\t\t\t\t\t<template v-if="statusWriting">\n\t\t\t\t\t\t<div class="bx-im-dialog-status">\n\t\t\t\t\t\t\t<span class="bx-im-dialog-status-writing"></span>\n\t\t\t\t\t\t\t{{ statusWriting }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-else-if="statusReaded">\n\t\t\t\t\t\t<div class="bx-im-dialog-status">\n\t\t\t\t\t\t\t<span class="bx-im-dialog-status-readed"></span>\n\t\t\t\t\t\t\t{{ statusReaded }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<transition name="bx-im-dialog-scroll-button">\n\t\t\t\t<div v-show="showScrollButton || unreadLoaderShow && unreadCounter" class="bx-im-dialog-scroll-button" @click="scrollToBottom()">\n\t\t\t\t\t<div v-show="unreadCounter" class="bx-im-dialog-scroll-button-counter">\n\t\t\t\t\t\t<div class="bx-im-dialog-scroll-button-counter-digit">{{unreadCounter}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="bx-im-dialog-scroll-button-arrow"></div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\t'});var n={getDateFormat:function t(e){return e.toJSON().slice(0,10)},scrollToFirstUnreadMessage:function t(e,s){var o=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var i=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;var n=e.$refs.body;var a=false;if(o!==null){a=n.getElementsByClassName(r.listItem+"-"+o)[0]}if(!a){for(var l=s.length-1;l>=0;l--){if(!s[l].unread){break}o=s[l].id}a=n.getElementsByClassName(r.listItem+"-"+o)[0]}var d=0;if(a){d=a.offsetTop-20}else{d=n.scrollHeight-n.offsetHeight}if(i){n.scrollTop=d}else{e.scrollTo({end:d})}},scrollToElementAfterLoadHistory:function t(e,s){if(!s){e.waitLoadHistory=false;return false}var o=s.getElementsByClassName(r.listItemBody)[0];if(o){s=o}var i=s.offsetTop;e.$nextTick(function(){if(!s){return false}e.$refs.body.scrollTop=s.offsetTop-i;e.waitLoadHistory=false})},scrollToElementAfterLoadUnread:function t(e){e.scrollBlocked=true;e.showScrollButton=true;e.$nextTick(function(){e.scrollBlocked=false;e.waitLoadUnread=false})},getMessageLoaderObserver:function t(e){if(typeof window.IntersectionObserver==="undefined"||e.value==s.none){return{observe:function t(){},unobserve:function t(){}}}var o,i;if(e.type==s.read){o=function t(s,o){s.forEach(function(t){var s=false;if(t.isIntersecting){if(t.intersectionRatio>=1){s=true}else if(t.intersectionRatio>0&&t.rootBounds.height<t.boundingClientRect.height+20&&t.intersectionRect.height>t.rootBounds.height-20){s=true}}if(s){e.context.readMessage(t.target.dataset.messageId);e.context.observers[e.type].unobserve(t.target)}})};i={root:e.context.$refs.body,threshold:new Array(101).fill(0).map(function(t,e){return e*.01})}}else{o=function t(o,i){o.forEach(function(t){if(t.isIntersecting&&t.intersectionRatio>0){if(e.type==s.unread){e.context.requestUnreadDelayed()}else{e.context.requestHistoryDelayed()}}})};i={root:e.context.$refs.body,threshold:[0,.01,.99,1]}}return new IntersectionObserver(o,i)}};var a={getDelimiter:function t(){var s=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;return{templateId:"delimiter"+s,templateType:e.delimiter}},getGroup:function t(){var s=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var o=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";return{templateId:"group"+s,templateType:e.group,text:o}},getHistoryLoader:function t(){return{templateId:"historyLoader",templateType:e.historyLoader}},getUnreadLoader:function t(){return{templateId:"unreadLoader",templateType:e.unreadLoader}},getLoadButton:function t(){var s=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var o=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:i.before;return{templateId:"loadButton"+s+r,templateType:e.button,text:o,type:r,messageId:s}}}})(this.window=this.window||{}); //# sourceMappingURL=messenger.component.dialog.bundle.map.jstextarea/config.php000066400000000650147744271350010360 0ustar00<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } return [ 'js' => [ '/bitrix/js/messenger/component/textarea/messenger.component.textarea.bundle.js', ], 'css' => [ '/bitrix/js/messenger/component/textarea/messenger.component.textarea.bundle.css', ], 'rel' => [ 'main.polyfill.complex', 'ui.vue', 'messenger.utils', 'messenger.utils.localstorage', ], 'skip_core' => true, ];textarea/messenger.component.textarea.js000066400000033077147744271350014556 0ustar00import "./messenger.component.textarea.css"; /** * Bitrix Messenger * Textarea Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ BX.Vue.component('bx-messenger-textarea', { /** * @emits 'send' {text: string} * @emits 'edit' {} * @emits 'writes' {text: string} * @emits 'focus' {event: object} -- 'event' - focus event * @emits 'blur' {event: object} -- 'event' - blur event * @emits 'keyup' {event: object} -- 'event' - keyup event * @emits 'keydown' {event: object} -- 'event' - keydown event * @emits 'appButtonClick' {appId: string, event: object} -- 'appId' - application name, 'event' - event click * @emits 'fileSelected' {fileInput: domNode} -- 'fileInput' - dom node element */ /** * @listens props.listenEventInsertText {text: string, breakline: boolean, position: string, cursor: string, focus: boolean} (global|application) -- insert text to textarea, see more in methods.insertText() * @listens props.listenEventFocus {} (global|application) -- set focus on textarea * @listens props.listenEventBlur {} (global|application) -- clear focus on textarea */ props: { siteId: { default: 'default' }, userId: { default: 0 }, dialogId: { default: 0 }, enableCommand: { default: true }, enableMention: { default: true }, desktopMode: { default: false }, enableEdit: { default: false }, enableFile: { default: false }, sendByEnter: { default: true }, autoFocus: { default: null }, writesEventLetter: { default: 0 }, styles: { type: Object, default: function () { return {} } }, listenEventInsertText: { default: '' }, listenEventFocus: { default: '' }, listenEventBlur: { default: '' }, }, data() { return { placeholderMessage: '', currentMessage: '', previousMessage: '', commandListen: false, mentionListen: false, stylesDefault: Object.freeze({button: { backgroundColor: null, iconColor: null }}) } }, created() { if (this.listenEventInsertText) { BX.Vue.event.$on(this.listenEventInsertText, this.onInsertText); this.$root.$on(this.listenEventInsertText, this.onInsertText); } if (this.listenEventFocus) { BX.Vue.event.$on(this.listenEventFocus, this.onFocusSet); this.$root.$on(this.listenEventFocus, this.onFocusSet); } if (this.listenEventBlur) { BX.Vue.event.$on(this.listenEventBlur, this.onFocusClear); this.$root.$on(this.listenEventBlur, this.onFocusClear); } this.localStorage = BX.Messenger.LocalStorage; this.textareaHistory = this.localStorage.get(this.siteId, this.userId, 'textarea-history', {}); this.currentMessage = this.textareaHistory[this.dialogId] || ''; this.placeholderMessage = this.currentMessage; }, beforeDestroy() { if (this.listenEventInsertText) { BX.Vue.event.$off(this.listenEventInsertText, this.onInsertText); this.$root.$off(this.listenEventInsertText, this.onInsertText); } if (this.listenEventFocus) { BX.Vue.event.$off(this.listenEventFocus, this.onFocusSet); this.$root.$off(this.listenEventFocus, this.onFocusSet); } if (this.listenEventBlur) { BX.Vue.event.$off(this.listenEventBlur, this.onFocusClear); this.$root.$off(this.listenEventBlur, this.onFocusClear); } clearTimeout(this.messageStoreTimeout); this.localStorage.set(this.siteId, this.userId, 'textarea-history', this.textareaHistory); this.localStorage = null; }, computed: { textareaClassName() { return 'bx-im-textarea' + (BX.Messenger.Utils.device.isMobile()? ' bx-im-textarea-mobile': ''); }, buttonStyle() { let styles = Object.assign({}, this.stylesDefault, this.styles); let isIconDark = false; if (styles.button.iconColor) { isIconDark = BX.Messenger.Utils.isDarkColor(styles.button.iconColor); } else { isIconDark = !BX.Messenger.Utils.isDarkColor(styles.button.backgroundColor); } styles.button.className = isIconDark? 'bx-im-textarea-send-button': 'bx-im-textarea-send-button bx-im-textarea-send-button-bright-arrow'; styles.button.style = styles.button.backgroundColor? 'background-color: '+styles.button.backgroundColor+';': ''; return styles; }, localize() { return BX.Vue.getFilteredPhrases('BX_MESSENGER_TEXTAREA_', this.$root.$bitrixMessages) }, }, directives: { 'bx-im-focus': { inserted(element, params) { if ( params.value === true || params.value === null && !BX.Messenger.Utils.device.isMobile() ) { element.focus(); } } } }, methods: { /** * * @param text * @param breakline - true/false (default) * @param position - start, current (default), end * @param cursor - start, before, after (default), end * @param focus - set focus on textarea */ insertText(text, breakline = false, position = 'current', cursor = 'after', focus = true) { let textarea = this.$refs.textarea; let selectionStart = textarea.selectionStart; let selectionEnd = textarea.selectionEnd; if (position == 'start') { if (breakline) { text = text+"\n"; } textarea.value = text + textarea.value; if (focus) { if (cursor == 'after') { textarea.selectionStart = text.length; textarea.selectionEnd = textarea.selectionStart; } else if (cursor == 'before') { textarea.selectionStart = 0; textarea.selectionEnd = textarea.selectionStart; } } } else if (position == 'current') { if (breakline) { if (textarea.value.substring(0, selectionStart).trim().length > 0) { text = "\n"+text; } text = text+"\n"; } textarea.value = textarea.value.substring(0, selectionStart) + text + textarea.value.substring(selectionEnd, textarea.value.length); if (focus) { if (cursor == 'after') { textarea.selectionStart = selectionStart+text.length; textarea.selectionEnd = textarea.selectionStart; } else if (cursor == 'before') { textarea.selectionStart = selectionStart; textarea.selectionEnd = textarea.selectionStart; } } } else if (position == 'end') { if (breakline) { if (textarea.value.substring(0, selectionStart).trim().length > 0) { text = "\n"+text; } text = text+"\n"; } textarea.value = textarea.value+text; if (focus) { if (cursor == 'after') { textarea.selectionStart = textarea.value.length; textarea.selectionEnd = textarea.selectionStart; } else if (cursor == 'before') { textarea.selectionStart = textarea.value.length-text.length; textarea.selectionEnd = textarea.selectionStart; } } } if (focus) { if (cursor == 'start') { textarea.selectionStart = 0; textarea.selectionEnd = 0; } else if (cursor == 'end') { textarea.selectionStart = textarea.value.length; textarea.selectionEnd = textarea.selectionStart; } textarea.focus(); } this.textChangeEvent(); }, sendMessage() { this.$emit('send', {text: this.currentMessage.trim()}); let textarea = this.$refs.textarea; if (textarea) { textarea.value = ''; } if (this.autoFocus === null || this.autoFocus) { textarea.focus(); } this.textChangeEvent(); }, textChangeEvent() { let textarea = this.$refs.textarea; if (!textarea) { return; } let text = textarea.value.trim(); if (this.currentMessage === text) { return; } if (this.writesEventLetter <= text.length) { this.$emit('writes', {text}); } this.previousMessage = this.currentMessage; this.previousSelectionStart = textarea.selectionStart; this.previousSelectionEnd = this.previousSelectionStart; this.currentMessage = text; if (text.toString().length > 0) { this.textareaHistory[this.dialogId] = text; } else { delete this.textareaHistory[this.dialogId]; } clearTimeout(this.messageStoreTimeout); this.messageStoreTimeout = setTimeout(() => { this.localStorage.set(this.siteId, this.userId, 'textarea-history', this.textareaHistory, this.userId? 0: 10); }, 500); }, onKeyDown(event) { this.$emit('keydown', event); let textarea = event.target; let text = textarea.value.trim(); let isMac = BX.Messenger.Utils.platform.isMac(); let isCtrlTEnable = BX.Messenger.Utils.platform.isBitrixDesktop() || !BX.Messenger.Utils.browser.isChrome(); // TODO see more im/install/js/im/im.js:12324 if (this.commandListen) { } else if (this.mentionListen) { } else if (!(event.altKey && event.ctrlKey)) { if (this.enableMention && (event.shiftKey && (event.keyCode == 61 || event.keyCode == 50 || event.keyCode == 187 || event.keyCode == 187)) || event.keyCode == 107) { // mention case } else if (this.enableCommand && (event.keyCode == 191 || event.keyCode == 111 || event.keyCode == 220)) { // command case } } if (event.keyCode == 27) { if (textarea.value != '' && textarea === document.activeElement) { event.preventDefault(); event.stopPropagation(); } if (event.shiftKey) { textarea.value = ''; } } else if (event.metaKey || event.ctrlKey) { // TODO translit messages if ( isCtrlTEnable && event.key === 't' || !isCtrlTEnable && event.key === 'e' ) { // translit case event.preventDefault(); } else if (['b','s','i','u'].includes(event.key)) { let selectionStart = textarea.selectionStart; let selectionEnd = textarea.selectionEnd; let tagStart = '['+event.key.toLowerCase()+']'; let tagEnd = '[/'+event.key.toLowerCase()+']'; let selected = textarea.value.substring(selectionStart, selectionEnd); if (selected.startsWith(tagStart) && selected.endsWith(tagEnd)) { selected = selected.substring(tagStart.length, selected.indexOf(tagEnd)); } else { selected = tagStart + selected + tagEnd; } textarea.value = textarea.value.substring(0, selectionStart) + selected + textarea.value.substring(selectionEnd, textarea.value.length); textarea.selectionStart = selectionStart; textarea.selectionEnd = selectionStart + selected.length; event.preventDefault(); } } if (event.keyCode == 9) { this.insertText("\t"); event.preventDefault(); } else if (this.enableEdit && event.keyCode == 38 && text.length <= 0) { this.$emit('edit', {}); } else if (event.keyCode == 13) { if (BX.Messenger.Utils.device.isMobile()) { } else if (this.sendByEnter == true) { if (event.ctrlKey || event.altKey || event.shiftKey) { if (!event.shiftKey) { this.insertText("\n"); } } else if (text.length <= 0) { event.preventDefault(); } else { this.sendMessage(); event.preventDefault(); } } else { if (event.ctrlKey == true) { this.sendMessage(); event.preventDefault(); } else if (isMac && (event.metaKey == true || event.altKey == true)) { this.sendMessage(); event.preventDefault(); } } } else if ((event.ctrlKey || event.metaKey) && event.key == 'z') { if (this.previousMessage) { textarea.value = this.previousMessage; textarea.selectionStart = this.previousSelectionStart; textarea.selectionEnd = this.previousSelectionEnd; this.previousMessage = ''; event.preventDefault(); } } }, onKeyUp(event) { this.$emit('keyup', event); this.textChangeEvent(); }, onPaste(event) { this.$nextTick(this.textChangeEvent); }, onInput(event) { this.textChangeEvent(); }, onFocus(event) { this.$emit('focus', event); }, onBlur(event) { this.$emit('blur', event); }, onAppButtonClick(appId, event) { this.$emit('appButtonClick', {appId, event}); }, onInsertText(event = {}) { if (!event.text) { return false; } this.insertText(event.text, event.breakline, event.position, event.cursor, event.focus); return true; }, onFocusSet() { this.$refs.textarea.focus(); return true; }, onFocusClear() { this.$refs.textarea.blur(); return true; }, onFileClick(event) { event.target.value = ""; }, onFileSelect(event) { this.$emit('fileSelected', {fileInput: event.target}); }, }, template: ` <div :class="textareaClassName"> <div class="bx-im-textarea-box"> <textarea ref="textarea" class="bx-im-textarea-input" @keydown="onKeyDown" @keyup="onKeyUp" @paste="onPaste" @input="onInput" @focus="onFocus" @blur="onBlur" v-bx-im-focus="autoFocus" :placeholder="localize.BX_MESSENGER_TEXTAREA_PLACEHOLDER">{{placeholderMessage}}</textarea> <transition enter-active-class="bx-im-textarea-send-button-show" leave-active-class="bx-im-textarea-send-button-hide"> <button v-if="currentMessage" :class="buttonStyle.button.className" :style="buttonStyle.button.style" @click="sendMessage" :title="localize.BX_MESSENGER_TEXTAREA_BUTTON_SEND"></button> </transition> </div> <div class="bx-im-textarea-app-box"> <label v-if="enableFile" class="bx-im-textarea-app-button bx-im-textarea-app-file" :title="localize.BX_MESSENGER_TEXTAREA_FILE"><input type="file" @click="onFileClick($event)" @change="onFileSelect($event)"></label> <button class="bx-im-textarea-app-button bx-im-textarea-app-smile" :title="localize.BX_MESSENGER_TEXTAREA_SMILE" @click="onAppButtonClick('smile', $event)"></button> <button v-if="false" class="bx-im-textarea-app-button bx-im-textarea-app-gif" :title="localize.BX_MESSENGER_TEXTAREA_GIPHY" @click="onAppButtonClick('giphy', $event)"></button> </div> </div> ` });textarea/bundle.config.js000066400000000221147744271350011447 0ustar00module.exports = { input: './messenger.component.textarea.js', output: './messenger.component.textarea.bundle.js', namespaceFunction: null, };textarea/messenger.component.textarea.min.css000066400000013450147744271350015505 0ustar00.bx-im-textarea{display:flex;flex-direction:column;height:100%;box-sizing:border-box;padding:10px 0 0 0;border-top:1px solid rgba(31,170,241,.26)}.bx-im-textarea-box{display:flex;flex-grow:1;flex-shrink:1;padding:0 16px}.bx-im-textarea-input{margin:0 5px 0 0;padding:0 5px 0 0;width:100%;min-width:auto;min-height:auto;border:0;background:transparent;font:14px "Helvetica Neue",Arial,Helvetica,sans-serif;color:#333;resize:none;outline:0;-webkit-tap-highlight-color:transparent}.bx-im-textarea-input::-webkit-input-placeholder{color:rgba(82,92,105,.42)}.bx-im-textarea-input::-moz-placeholder{color:rgba(82,92,105,.42)}.bx-im-textarea-input:-ms-input-placeholder{color:rgba(82,92,105,.42)}.bx-im-textarea-input:-moz-placeholder{color:rgba(82,92,105,.42)}.bx-im-textarea-send-button{display:block;width:33px;height:33px;background-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23646D7B%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22%20opacity%3D%22.8%22/%3E%3C/svg%3E');background-position:center center;background-repeat:no-repeat;opacity:.5;transition:opacity .3s;-webkit-appearance:none;outline:0;cursor:pointer;border-radius:50%;border:1px solid #b1b1b1;flex-shrink:0}.bx-im-textarea-send-button:hover,.bx-im-textarea-mobile .bx-im-textarea-send-button{opacity:1}.bx-im-textarea-send-button-bright-arrow{border-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22/%3E%3C/svg%3E')}.bx-im-textarea-send-button.bx-im-textarea-send-button-show{animation:bx-im-textarea-send-button-show .2s linear forwards}.bx-im-textarea-send-button.bx-im-textarea-send-button-hide{animation:bx-im-textarea-send-button-hide .2s linear forwards}.bx-im-textarea-app-box{width:100%;box-sizing:border-box;margin-top:5px;height:30px;flex:0 0 30px;padding:0 8px}.bx-im-textarea-app-button{display:inline-block;width:25px;height:25px;border:0;background-color:transparent;background-position:center;background-repeat:no-repeat;transition:opacity .3s;opacity:.46;-webkit-appearance:none;outline:0;cursor:pointer;vertical-align:top}.bx-im-textarea-app-button:hover{opacity:.8}.bx-im-textarea-app-file{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2216%22%3E%3Cpath%20fill%3D%22%23525C69%22%20d%3D%22M8.891%206.092c0-.277.221-.502.494-.502.272%200%20.493.225.493.502v4.444c0%202.495-1.988%204.517-4.44%204.517-2.453%200-4.442-2.022-4.442-4.517V3.151c0-1.742%201.388-3.153%203.1-3.153%201.713%200%203.1%201.411%203.1%203.153v6.235c0%201.184-.943%202.143-2.107%202.143-1.165%200-2.108-.96-2.108-2.143V5.563c0-.277.22-.502.493-.502s.494.225.494.502v3.823c0%20.63.502%201.14%201.12%201.14.62%200%201.122-.51%201.122-1.14V3.15C6.21%201.964%205.264%201%204.097%201c-1.168%200-2.114.963-2.114%202.15v7.385c0%201.94%201.547%203.513%203.454%203.513%201.908%200%203.454-1.573%203.454-3.513V6.092z%22/%3E%3C/svg%3E')}.bx-im-textarea-app-file>input{display:none!important}.bx-im-textarea-app-smile{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2215%22%20height%3D%2215%22%3E%3Cg%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M5.25%204a1%201%200%200%201%201%201v1a1%201%200%201%201-2%200V5a1%201%200%200%201%201-1zm4.5%200a1%201%200%200%201%201%201v1a1%201%200%200%201-2%200V5a1%201%200%200%201%201-1z%22/%3E%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7.5%2014a6.5%206.5%200%201%200%200-13%206.5%206.5%200%200%200%200%2013zm0%201a7.5%207.5%200%201%201%200-15%207.5%207.5%200%200%201%200%2015zm-3.349-4.81a.5.5%200%201%201%20.698-.716%203.985%203.985%200%200%200%202.792%201.135c1.064%200%202.06-.416%202.804-1.147a.5.5%200%200%201%20.701.713%204.985%204.985%200%200%201-3.505%201.434%204.984%204.984%200%200%201-3.49-1.419z%22/%3E%3C/g%3E%3C/svg%3E')}.bx-im-textarea-app-gif{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2215%22%3E%3Cpath%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11%2013.201a.8.8%200%200%201-.799.799H1.768A.768.768%200%200%201%201%2013.231V1.828C1%201.371%201.371%201%201.828%201h5.221c.344%200%20.673.137.916.379l2.656%202.656c.243.242.379.572.379.915v8.251zm.621-9.58L8.379.379A1.298%201.298%200%200%200%207.463%200H1.295C.58%200%200%20.58%200%201.295v12.41C0%2014.42.58%2015%201.295%2015h9.41C11.42%2015%2012%2014.42%2012%2013.705V4.536c0-.343-.136-.673-.379-.915zM7.299%207.857l1.351-1.35-.657-.657-1.35%201.35c-.053.053-.118.082-.179.119V5.25h-.928v2.069c-.06-.037-.126-.066-.179-.119l-1.35-1.35-.657.656%201.35%201.35c.053.053.082.118.12.18H2.75v.928h2.07c-.038.06-.067.127-.12.179l-1.35%201.35.657.656%201.35-1.35c.053-.052.118-.082.179-.119v2.07h.928V9.68c.06.037.126.067.179.12l1.35%201.35.657-.657-1.35-1.35c-.053-.052-.082-.118-.12-.179h2.07v-.928H7.18c.038-.062.067-.127.12-.18z%22/%3E%3C/svg%3E')}.bx-im-textarea-smile-box{width:340px;height:420px;position:absolute;background:#fff}@keyframes bx-im-textarea-send-button-show{0%{transform:translate(50px,0)}100%{transform:translate(0,0)}}@keyframes bx-im-textarea-send-button-hide{0%{transform:translate(0,0)}100%{transform:translate(50px,0)}}textarea/messenger.component.textarea.bundle.map.js000066400000022005147744271350016567 0ustar00{"version":3,"sources":["messenger.component.textarea.bundle.js"],"names":["exports","BX","Vue","component","props","siteId","default","userId","dialogId","enableCommand","enableMention","desktopMode","enableEdit","enableFile","sendByEnter","autoFocus","writesEventLetter","styles","type","Object","_default","listenEventInsertText","listenEventFocus","listenEventBlur","data","placeholderMessage","currentMessage","previousMessage","commandListen","mentionListen","stylesDefault","freeze","button","backgroundColor","iconColor","created","this","event","$on","onInsertText","$root","onFocusSet","onFocusClear","localStorage","Messenger","LocalStorage","textareaHistory","get","beforeDestroy","$off","clearTimeout","messageStoreTimeout","set","computed","textareaClassName","Utils","device","isMobile","buttonStyle","assign","isIconDark","isDarkColor","className","style","localize","getFilteredPhrases","$bitrixMessages","directives","bx-im-focus","inserted","element","params","value","focus","methods","insertText","text","breakline","arguments","length","undefined","position","cursor","textarea","$refs","selectionStart","selectionEnd","substring","trim","textChangeEvent","sendMessage","$emit","_this","previousSelectionStart","previousSelectionEnd","toString","setTimeout","onKeyDown","target","isMac","platform","isCtrlTEnable","isBitrixDesktop","browser","isChrome","altKey","ctrlKey","shiftKey","keyCode","document","activeElement","preventDefault","stopPropagation","metaKey","key","includes","tagStart","toLowerCase","tagEnd","selected","startsWith","endsWith","indexOf","onKeyUp","onPaste","$nextTick","onInput","onFocus","onBlur","onAppButtonClick","appId","blur","onFileClick","onFileSelect","fileInput","template","window"],"mappings":"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","file":"messenger.component.textarea.bundle.map.js"}textarea/messenger.component.textarea.bundle.min.css000066400000015557147744271350016767 0ustar00.bx-im-textarea{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:10px 0 0 0;border-top:1px solid rgba(31,170,241,.26)}.bx-im-textarea-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;padding:0 16px}.bx-im-textarea-input{margin:0 5px 0 0;padding:0 5px 0 0;width:100%;min-width:auto;min-height:auto;border:0;background:transparent;font:14px "Helvetica Neue",Arial,Helvetica,sans-serif;color:#333;resize:none;outline:0;-webkit-tap-highlight-color:transparent}.bx-im-textarea-input::-webkit-input-placeholder{color:rgba(82,92,105,.42)}.bx-im-textarea-input::-moz-placeholder{color:rgba(82,92,105,.42)}.bx-im-textarea-input:-ms-input-placeholder{color:rgba(82,92,105,.42)}.bx-im-textarea-input:-moz-placeholder{color:rgba(82,92,105,.42)}.bx-im-textarea-send-button{display:block;width:33px;height:33px;background-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23646D7B%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22%20opacity%3D%22.8%22/%3E%3C/svg%3E');background-position:center center;background-repeat:no-repeat;opacity:.5;-webkit-transition:opacity .3s;-o-transition:opacity .3s;transition:opacity .3s;-webkit-appearance:none;outline:0;cursor:pointer;border-radius:50%;border:1px solid #b1b1b1;-ms-flex-negative:0;flex-shrink:0}.bx-im-textarea-send-button:hover,.bx-im-textarea-mobile .bx-im-textarea-send-button{opacity:1}.bx-im-textarea-send-button-bright-arrow{border-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22/%3E%3C/svg%3E')}.bx-im-textarea-send-button.bx-im-textarea-send-button-show{-webkit-animation:bx-im-textarea-send-button-show .2s linear forwards;animation:bx-im-textarea-send-button-show .2s linear forwards}.bx-im-textarea-send-button.bx-im-textarea-send-button-hide{-webkit-animation:bx-im-textarea-send-button-hide .2s linear forwards;animation:bx-im-textarea-send-button-hide .2s linear forwards}.bx-im-textarea-app-box{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:5px;height:30px;-webkit-box-flex:0;-ms-flex:0 0 30px;flex:0 0 30px;padding:0 8px}.bx-im-textarea-app-button{display:inline-block;width:25px;height:25px;border:0;background-color:transparent;background-position:center;background-repeat:no-repeat;-webkit-transition:opacity .3s;-o-transition:opacity .3s;transition:opacity .3s;opacity:.46;-webkit-appearance:none;outline:0;cursor:pointer;vertical-align:top}.bx-im-textarea-app-button:hover{opacity:.8}.bx-im-textarea-app-file{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2216%22%3E%3Cpath%20fill%3D%22%23525C69%22%20d%3D%22M8.891%206.092c0-.277.221-.502.494-.502.272%200%20.493.225.493.502v4.444c0%202.495-1.988%204.517-4.44%204.517-2.453%200-4.442-2.022-4.442-4.517V3.151c0-1.742%201.388-3.153%203.1-3.153%201.713%200%203.1%201.411%203.1%203.153v6.235c0%201.184-.943%202.143-2.107%202.143-1.165%200-2.108-.96-2.108-2.143V5.563c0-.277.22-.502.493-.502s.494.225.494.502v3.823c0%20.63.502%201.14%201.12%201.14.62%200%201.122-.51%201.122-1.14V3.15C6.21%201.964%205.264%201%204.097%201c-1.168%200-2.114.963-2.114%202.15v7.385c0%201.94%201.547%203.513%203.454%203.513%201.908%200%203.454-1.573%203.454-3.513V6.092z%22/%3E%3C/svg%3E')}.bx-im-textarea-app-file>input{display:none!important}.bx-im-textarea-app-smile{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2215%22%20height%3D%2215%22%3E%3Cg%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M5.25%204a1%201%200%200%201%201%201v1a1%201%200%201%201-2%200V5a1%201%200%200%201%201-1zm4.5%200a1%201%200%200%201%201%201v1a1%201%200%200%201-2%200V5a1%201%200%200%201%201-1z%22/%3E%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7.5%2014a6.5%206.5%200%201%200%200-13%206.5%206.5%200%200%200%200%2013zm0%201a7.5%207.5%200%201%201%200-15%207.5%207.5%200%200%201%200%2015zm-3.349-4.81a.5.5%200%201%201%20.698-.716%203.985%203.985%200%200%200%202.792%201.135c1.064%200%202.06-.416%202.804-1.147a.5.5%200%200%201%20.701.713%204.985%204.985%200%200%201-3.505%201.434%204.984%204.984%200%200%201-3.49-1.419z%22/%3E%3C/g%3E%3C/svg%3E')}.bx-im-textarea-app-gif{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2215%22%3E%3Cpath%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11%2013.201a.8.8%200%200%201-.799.799H1.768A.768.768%200%200%201%201%2013.231V1.828C1%201.371%201.371%201%201.828%201h5.221c.344%200%20.673.137.916.379l2.656%202.656c.243.242.379.572.379.915v8.251zm.621-9.58L8.379.379A1.298%201.298%200%200%200%207.463%200H1.295C.58%200%200%20.58%200%201.295v12.41C0%2014.42.58%2015%201.295%2015h9.41C11.42%2015%2012%2014.42%2012%2013.705V4.536c0-.343-.136-.673-.379-.915zM7.299%207.857l1.351-1.35-.657-.657-1.35%201.35c-.053.053-.118.082-.179.119V5.25h-.928v2.069c-.06-.037-.126-.066-.179-.119l-1.35-1.35-.657.656%201.35%201.35c.053.053.082.118.12.18H2.75v.928h2.07c-.038.06-.067.127-.12.179l-1.35%201.35.657.656%201.35-1.35c.053-.052.118-.082.179-.119v2.07h.928V9.68c.06.037.126.067.179.12l1.35%201.35.657-.657-1.35-1.35c-.053-.052-.082-.118-.12-.179h2.07v-.928H7.18c.038-.062.067-.127.12-.18z%22/%3E%3C/svg%3E')}.bx-im-textarea-smile-box{width:340px;height:420px;position:absolute;background:#fff}@-webkit-keyframes bx-im-textarea-send-button-show{0%{-webkit-transform:translate(50px,0);transform:translate(50px,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@keyframes bx-im-textarea-send-button-show{0%{-webkit-transform:translate(50px,0);transform:translate(50px,0)}100%{-webkit-transform:translate(0,0);transform:translate(0,0)}}@-webkit-keyframes bx-im-textarea-send-button-hide{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(50px,0);transform:translate(50px,0)}}@keyframes bx-im-textarea-send-button-hide{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(50px,0);transform:translate(50px,0)}}textarea/lang/ua/config.php000066400000000623147744271350011706 0ustar00<? $MESS["BX_MESSENGER_TEXTAREA_PLACEHOLDER"] = "Введіть повідомлення…"; $MESS["BX_MESSENGER_TEXTAREA_BUTTON_SEND"] = "Відправити повідомлення"; $MESS["BX_MESSENGER_TEXTAREA_FILE"] = "Відправити файл"; $MESS["BX_MESSENGER_TEXTAREA_SMILE"] = "Вибір смайлів"; $MESS["BX_MESSENGER_TEXTAREA_GIPHY"] = "Вибір GIF-картинок"; ?>textarea/lang/en/config.php000066400000000454147744271350011705 0ustar00<? $MESS["BX_MESSENGER_TEXTAREA_PLACEHOLDER"] = "Enter message..."; $MESS["BX_MESSENGER_TEXTAREA_BUTTON_SEND"] = "Send message"; $MESS["BX_MESSENGER_TEXTAREA_FILE"] = "Send file"; $MESS["BX_MESSENGER_TEXTAREA_SMILE"] = "Select emoticon"; $MESS["BX_MESSENGER_TEXTAREA_GIPHY"] = "Browse GIF images"; ?>textarea/lang/ru/config.php000066400000000600147744271350011722 0ustar00<? $MESS["BX_MESSENGER_TEXTAREA_PLACEHOLDER"] = "Введите сообщение..."; $MESS["BX_MESSENGER_TEXTAREA_BUTTON_SEND"] = "Отправить сообщение"; $MESS["BX_MESSENGER_TEXTAREA_FILE"] = "Отправить файл"; $MESS["BX_MESSENGER_TEXTAREA_SMILE"] = "Выбор смайлов"; $MESS["BX_MESSENGER_TEXTAREA_GIPHY"] = "Выбор GIF-картинок";textarea/lang/de/config.php000066400000000502147744271350011665 0ustar00<? $MESS["BX_MESSENGER_TEXTAREA_PLACEHOLDER"] = "Nachricht schreiben..."; $MESS["BX_MESSENGER_TEXTAREA_BUTTON_SEND"] = "Nachricht senden"; $MESS["BX_MESSENGER_TEXTAREA_FILE"] = "Datei senden"; $MESS["BX_MESSENGER_TEXTAREA_SMILE"] = "Emoticon auswählen"; $MESS["BX_MESSENGER_TEXTAREA_GIPHY"] = "GIF-Bilder durchsuchen"; ?>textarea/messenger.component.textarea.bundle.css000066400000017243147744271350016177 0ustar00.bx-im-textarea { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; height: 100%; -webkit-box-sizing: border-box; box-sizing: border-box; padding: 10px 0 0 0; border-top: 1px solid rgba(31,170,241,.26); } .bx-im-textarea-box { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; -ms-flex-negative: 1; flex-shrink: 1; padding: 0 16px; } .bx-im-textarea-input { margin: 0 5px 0 0; padding: 0 5px 0 0; width: 100%; min-width: auto; min-height: auto; border: none; background: transparent; font: 14px "Helvetica Neue", Arial, Helvetica, sans-serif; color: #333; resize: none; outline: none; -webkit-tap-highlight-color: transparent; } .bx-im-textarea-input::-webkit-input-placeholder { /* Chrome/Opera/Safari */ color: rgba(82,92,105,.42); } .bx-im-textarea-input::-moz-placeholder { /* Firefox 19+ */ color: rgba(82,92,105,.42); } .bx-im-textarea-input:-ms-input-placeholder { /* IE 10+ */ color: rgba(82,92,105,.42); } .bx-im-textarea-input:-moz-placeholder { /* Firefox 18- */ color: rgba(82,92,105,.42); } .bx-im-textarea-send-button { display: block; width: 33px; height: 33px; background-color: transparent; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23646D7B%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22%20opacity%3D%22.8%22/%3E%3C/svg%3E'); background-position: center center; background-repeat: no-repeat; opacity: .5; -webkit-transition: opacity .3s; -o-transition: opacity .3s; transition: opacity .3s; -webkit-appearance: none; outline: none; cursor: pointer; border-radius: 50%; border: 1px solid #b1b1b1; -ms-flex-negative: 0; flex-shrink: 0; } .bx-im-textarea-send-button:hover, .bx-im-textarea-mobile .bx-im-textarea-send-button { opacity: 1; } .bx-im-textarea-send-button-bright-arrow { border-color: transparent; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22/%3E%3C/svg%3E'); } .bx-im-textarea-send-button.bx-im-textarea-send-button-show { -webkit-animation: bx-im-textarea-send-button-show .2s linear forwards; animation: bx-im-textarea-send-button-show .2s linear forwards; } .bx-im-textarea-send-button.bx-im-textarea-send-button-hide { -webkit-animation: bx-im-textarea-send-button-hide .2s linear forwards; animation: bx-im-textarea-send-button-hide .2s linear forwards; } .bx-im-textarea-app-box { width: 100%; -webkit-box-sizing: border-box; box-sizing: border-box; margin-top: 5px; height: 30px; -webkit-box-flex: 0; -ms-flex: 0 0 30px; flex: 0 0 30px; padding: 0 8px; } .bx-im-textarea-app-button { display: inline-block; width: 25px; height: 25px; border: none; background-color: transparent; background-position: center; background-repeat: no-repeat; -webkit-transition: opacity .3s; -o-transition: opacity .3s; transition: opacity .3s; opacity: .46; -webkit-appearance: none; outline: none; cursor: pointer; vertical-align: top; } .bx-im-textarea-app-button:hover { opacity: .8; } .bx-im-textarea-app-file { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2216%22%3E%3Cpath%20fill%3D%22%23525C69%22%20d%3D%22M8.891%206.092c0-.277.221-.502.494-.502.272%200%20.493.225.493.502v4.444c0%202.495-1.988%204.517-4.44%204.517-2.453%200-4.442-2.022-4.442-4.517V3.151c0-1.742%201.388-3.153%203.1-3.153%201.713%200%203.1%201.411%203.1%203.153v6.235c0%201.184-.943%202.143-2.107%202.143-1.165%200-2.108-.96-2.108-2.143V5.563c0-.277.22-.502.493-.502s.494.225.494.502v3.823c0%20.63.502%201.14%201.12%201.14.62%200%201.122-.51%201.122-1.14V3.15C6.21%201.964%205.264%201%204.097%201c-1.168%200-2.114.963-2.114%202.15v7.385c0%201.94%201.547%203.513%203.454%203.513%201.908%200%203.454-1.573%203.454-3.513V6.092z%22/%3E%3C/svg%3E'); } .bx-im-textarea-app-file > input {display: none!important;} .bx-im-textarea-app-smile { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2215%22%20height%3D%2215%22%3E%3Cg%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M5.25%204a1%201%200%200%201%201%201v1a1%201%200%201%201-2%200V5a1%201%200%200%201%201-1zm4.5%200a1%201%200%200%201%201%201v1a1%201%200%200%201-2%200V5a1%201%200%200%201%201-1z%22/%3E%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7.5%2014a6.5%206.5%200%201%200%200-13%206.5%206.5%200%200%200%200%2013zm0%201a7.5%207.5%200%201%201%200-15%207.5%207.5%200%200%201%200%2015zm-3.349-4.81a.5.5%200%201%201%20.698-.716%203.985%203.985%200%200%200%202.792%201.135c1.064%200%202.06-.416%202.804-1.147a.5.5%200%200%201%20.701.713%204.985%204.985%200%200%201-3.505%201.434%204.984%204.984%200%200%201-3.49-1.419z%22/%3E%3C/g%3E%3C/svg%3E'); } .bx-im-textarea-app-gif { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2215%22%3E%3Cpath%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11%2013.201a.8.8%200%200%201-.799.799H1.768A.768.768%200%200%201%201%2013.231V1.828C1%201.371%201.371%201%201.828%201h5.221c.344%200%20.673.137.916.379l2.656%202.656c.243.242.379.572.379.915v8.251zm.621-9.58L8.379.379A1.298%201.298%200%200%200%207.463%200H1.295C.58%200%200%20.58%200%201.295v12.41C0%2014.42.58%2015%201.295%2015h9.41C11.42%2015%2012%2014.42%2012%2013.705V4.536c0-.343-.136-.673-.379-.915zM7.299%207.857l1.351-1.35-.657-.657-1.35%201.35c-.053.053-.118.082-.179.119V5.25h-.928v2.069c-.06-.037-.126-.066-.179-.119l-1.35-1.35-.657.656%201.35%201.35c.053.053.082.118.12.18H2.75v.928h2.07c-.038.06-.067.127-.12.179l-1.35%201.35.657.656%201.35-1.35c.053-.052.118-.082.179-.119v2.07h.928V9.68c.06.037.126.067.179.12l1.35%201.35.657-.657-1.35-1.35c-.053-.052-.082-.118-.12-.179h2.07v-.928H7.18c.038-.062.067-.127.12-.18z%22/%3E%3C/svg%3E'); } .bx-im-textarea-smile-box { width: 340px; height: 420px; position: absolute; background: #fff; } @-webkit-keyframes bx-im-textarea-send-button-show { 0% { -webkit-transform: translate(50px, 0); transform: translate(50px, 0); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @keyframes bx-im-textarea-send-button-show { 0% { -webkit-transform: translate(50px, 0); transform: translate(50px, 0); } 100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } } @-webkit-keyframes bx-im-textarea-send-button-hide { 0% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 100% { -webkit-transform: translate(50px, 0); transform: translate(50px, 0); } } @keyframes bx-im-textarea-send-button-hide { 0% { -webkit-transform: translate(0, 0); transform: translate(0, 0); } 100% { -webkit-transform: translate(50px, 0); transform: translate(50px, 0); } } /*# sourceMappingURL=messenger.component.textarea.bundle.css.map */textarea/messenger.component.textarea.css000066400000014361147744271350014725 0ustar00.bx-im-textarea { display: flex; flex-direction: column; height: 100%; box-sizing: border-box; padding: 10px 0 0 0; border-top: 1px solid rgba(31,170,241,.26); } .bx-im-textarea-box { display: flex; flex-grow: 1; flex-shrink: 1; padding: 0 16px; } .bx-im-textarea-input { margin: 0 5px 0 0; padding: 0 5px 0 0; width: 100%; min-width: auto; min-height: auto; border: none; background: transparent; font: 14px "Helvetica Neue", Arial, Helvetica, sans-serif; color: #333; resize: none; outline: none; -webkit-tap-highlight-color: transparent; } .bx-im-textarea-input::-webkit-input-placeholder { /* Chrome/Opera/Safari */ color: rgba(82,92,105,.42); } .bx-im-textarea-input::-moz-placeholder { /* Firefox 19+ */ color: rgba(82,92,105,.42); } .bx-im-textarea-input:-ms-input-placeholder { /* IE 10+ */ color: rgba(82,92,105,.42); } .bx-im-textarea-input:-moz-placeholder { /* Firefox 18- */ color: rgba(82,92,105,.42); } .bx-im-textarea-send-button { display: block; width: 33px; height: 33px; background-color: transparent; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23646D7B%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22%20opacity%3D%22.8%22/%3E%3C/svg%3E'); background-position: center center; background-repeat: no-repeat; opacity: .5; transition: opacity .3s; -webkit-appearance: none; outline: none; cursor: pointer; border-radius: 50%; border: 1px solid #b1b1b1; flex-shrink: 0; } .bx-im-textarea-send-button:hover, .bx-im-textarea-mobile .bx-im-textarea-send-button { opacity: 1; } .bx-im-textarea-send-button-bright-arrow { border-color: transparent; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22/%3E%3C/svg%3E'); } .bx-im-textarea-send-button.bx-im-textarea-send-button-show { animation: bx-im-textarea-send-button-show .2s linear forwards; } .bx-im-textarea-send-button.bx-im-textarea-send-button-hide { animation: bx-im-textarea-send-button-hide .2s linear forwards; } .bx-im-textarea-app-box { width: 100%; box-sizing: border-box; margin-top: 5px; height: 30px; flex: 0 0 30px; padding: 0 8px; } .bx-im-textarea-app-button { display: inline-block; width: 25px; height: 25px; border: none; background-color: transparent; background-position: center; background-repeat: no-repeat; transition: opacity .3s; opacity: .46; -webkit-appearance: none; outline: none; cursor: pointer; vertical-align: top; } .bx-im-textarea-app-button:hover { opacity: .8; } .bx-im-textarea-app-file { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2216%22%3E%3Cpath%20fill%3D%22%23525C69%22%20d%3D%22M8.891%206.092c0-.277.221-.502.494-.502.272%200%20.493.225.493.502v4.444c0%202.495-1.988%204.517-4.44%204.517-2.453%200-4.442-2.022-4.442-4.517V3.151c0-1.742%201.388-3.153%203.1-3.153%201.713%200%203.1%201.411%203.1%203.153v6.235c0%201.184-.943%202.143-2.107%202.143-1.165%200-2.108-.96-2.108-2.143V5.563c0-.277.22-.502.493-.502s.494.225.494.502v3.823c0%20.63.502%201.14%201.12%201.14.62%200%201.122-.51%201.122-1.14V3.15C6.21%201.964%205.264%201%204.097%201c-1.168%200-2.114.963-2.114%202.15v7.385c0%201.94%201.547%203.513%203.454%203.513%201.908%200%203.454-1.573%203.454-3.513V6.092z%22/%3E%3C/svg%3E'); } .bx-im-textarea-app-file > input {display: none!important;} .bx-im-textarea-app-smile { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2215%22%20height%3D%2215%22%3E%3Cg%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M5.25%204a1%201%200%200%201%201%201v1a1%201%200%201%201-2%200V5a1%201%200%200%201%201-1zm4.5%200a1%201%200%200%201%201%201v1a1%201%200%200%201-2%200V5a1%201%200%200%201%201-1z%22/%3E%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7.5%2014a6.5%206.5%200%201%200%200-13%206.5%206.5%200%200%200%200%2013zm0%201a7.5%207.5%200%201%201%200-15%207.5%207.5%200%200%201%200%2015zm-3.349-4.81a.5.5%200%201%201%20.698-.716%203.985%203.985%200%200%200%202.792%201.135c1.064%200%202.06-.416%202.804-1.147a.5.5%200%200%201%20.701.713%204.985%204.985%200%200%201-3.505%201.434%204.984%204.984%200%200%201-3.49-1.419z%22/%3E%3C/g%3E%3C/svg%3E'); } .bx-im-textarea-app-gif { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2215%22%3E%3Cpath%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11%2013.201a.8.8%200%200%201-.799.799H1.768A.768.768%200%200%201%201%2013.231V1.828C1%201.371%201.371%201%201.828%201h5.221c.344%200%20.673.137.916.379l2.656%202.656c.243.242.379.572.379.915v8.251zm.621-9.58L8.379.379A1.298%201.298%200%200%200%207.463%200H1.295C.58%200%200%20.58%200%201.295v12.41C0%2014.42.58%2015%201.295%2015h9.41C11.42%2015%2012%2014.42%2012%2013.705V4.536c0-.343-.136-.673-.379-.915zM7.299%207.857l1.351-1.35-.657-.657-1.35%201.35c-.053.053-.118.082-.179.119V5.25h-.928v2.069c-.06-.037-.126-.066-.179-.119l-1.35-1.35-.657.656%201.35%201.35c.053.053.082.118.12.18H2.75v.928h2.07c-.038.06-.067.127-.12.179l-1.35%201.35.657.656%201.35-1.35c.053-.052.118-.082.179-.119v2.07h.928V9.68c.06.037.126.067.179.12l1.35%201.35.657-.657-1.35-1.35c-.053-.052-.082-.118-.12-.179h2.07v-.928H7.18c.038-.062.067-.127.12-.18z%22/%3E%3C/svg%3E'); } .bx-im-textarea-smile-box { width: 340px; height: 420px; position: absolute; background: #fff; } @keyframes bx-im-textarea-send-button-show { 0% { transform: translate(50px, 0); } 100% { transform: translate(0, 0); } } @keyframes bx-im-textarea-send-button-hide { 0% { transform: translate(0, 0); } 100% { transform: translate(50px, 0); } }textarea/messenger.component.textarea.bundle.js000066400000037736147744271350016034 0ustar00(function (exports) { 'use strict'; /** * Bitrix Messenger * Textarea Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ BX.Vue.component('bx-messenger-textarea', { /** * @emits 'send' {text: string} * @emits 'edit' {} * @emits 'writes' {text: string} * @emits 'focus' {event: object} -- 'event' - focus event * @emits 'blur' {event: object} -- 'event' - blur event * @emits 'keyup' {event: object} -- 'event' - keyup event * @emits 'keydown' {event: object} -- 'event' - keydown event * @emits 'appButtonClick' {appId: string, event: object} -- 'appId' - application name, 'event' - event click * @emits 'fileSelected' {fileInput: domNode} -- 'fileInput' - dom node element */ /** * @listens props.listenEventInsertText {text: string, breakline: boolean, position: string, cursor: string, focus: boolean} (global|application) -- insert text to textarea, see more in methods.insertText() * @listens props.listenEventFocus {} (global|application) -- set focus on textarea * @listens props.listenEventBlur {} (global|application) -- clear focus on textarea */ props: { siteId: { default: 'default' }, userId: { default: 0 }, dialogId: { default: 0 }, enableCommand: { default: true }, enableMention: { default: true }, desktopMode: { default: false }, enableEdit: { default: false }, enableFile: { default: false }, sendByEnter: { default: true }, autoFocus: { default: null }, writesEventLetter: { default: 0 }, styles: { type: Object, default: function _default() { return {}; } }, listenEventInsertText: { default: '' }, listenEventFocus: { default: '' }, listenEventBlur: { default: '' } }, data: function data() { return { placeholderMessage: '', currentMessage: '', previousMessage: '', commandListen: false, mentionListen: false, stylesDefault: Object.freeze({ button: { backgroundColor: null, iconColor: null } }) }; }, created: function created() { if (this.listenEventInsertText) { BX.Vue.event.$on(this.listenEventInsertText, this.onInsertText); this.$root.$on(this.listenEventInsertText, this.onInsertText); } if (this.listenEventFocus) { BX.Vue.event.$on(this.listenEventFocus, this.onFocusSet); this.$root.$on(this.listenEventFocus, this.onFocusSet); } if (this.listenEventBlur) { BX.Vue.event.$on(this.listenEventBlur, this.onFocusClear); this.$root.$on(this.listenEventBlur, this.onFocusClear); } this.localStorage = BX.Messenger.LocalStorage; this.textareaHistory = this.localStorage.get(this.siteId, this.userId, 'textarea-history', {}); this.currentMessage = this.textareaHistory[this.dialogId] || ''; this.placeholderMessage = this.currentMessage; }, beforeDestroy: function beforeDestroy() { if (this.listenEventInsertText) { BX.Vue.event.$off(this.listenEventInsertText, this.onInsertText); this.$root.$off(this.listenEventInsertText, this.onInsertText); } if (this.listenEventFocus) { BX.Vue.event.$off(this.listenEventFocus, this.onFocusSet); this.$root.$off(this.listenEventFocus, this.onFocusSet); } if (this.listenEventBlur) { BX.Vue.event.$off(this.listenEventBlur, this.onFocusClear); this.$root.$off(this.listenEventBlur, this.onFocusClear); } clearTimeout(this.messageStoreTimeout); this.localStorage.set(this.siteId, this.userId, 'textarea-history', this.textareaHistory); this.localStorage = null; }, computed: { textareaClassName: function textareaClassName() { return 'bx-im-textarea' + (BX.Messenger.Utils.device.isMobile() ? ' bx-im-textarea-mobile' : ''); }, buttonStyle: function buttonStyle() { var styles = Object.assign({}, this.stylesDefault, this.styles); var isIconDark = false; if (styles.button.iconColor) { isIconDark = BX.Messenger.Utils.isDarkColor(styles.button.iconColor); } else { isIconDark = !BX.Messenger.Utils.isDarkColor(styles.button.backgroundColor); } styles.button.className = isIconDark ? 'bx-im-textarea-send-button' : 'bx-im-textarea-send-button bx-im-textarea-send-button-bright-arrow'; styles.button.style = styles.button.backgroundColor ? 'background-color: ' + styles.button.backgroundColor + ';' : ''; return styles; }, localize: function localize() { return BX.Vue.getFilteredPhrases('BX_MESSENGER_TEXTAREA_', this.$root.$bitrixMessages); } }, directives: { 'bx-im-focus': { inserted: function inserted(element, params) { if (params.value === true || params.value === null && !BX.Messenger.Utils.device.isMobile()) { element.focus(); } } } }, methods: { /** * * @param text * @param breakline - true/false (default) * @param position - start, current (default), end * @param cursor - start, before, after (default), end * @param focus - set focus on textarea */ insertText: function insertText(text) { var breakline = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'current'; var cursor = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'after'; var focus = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; var textarea = this.$refs.textarea; var selectionStart = textarea.selectionStart; var selectionEnd = textarea.selectionEnd; if (position == 'start') { if (breakline) { text = text + "\n"; } textarea.value = text + textarea.value; if (focus) { if (cursor == 'after') { textarea.selectionStart = text.length; textarea.selectionEnd = textarea.selectionStart; } else if (cursor == 'before') { textarea.selectionStart = 0; textarea.selectionEnd = textarea.selectionStart; } } } else if (position == 'current') { if (breakline) { if (textarea.value.substring(0, selectionStart).trim().length > 0) { text = "\n" + text; } text = text + "\n"; } textarea.value = textarea.value.substring(0, selectionStart) + text + textarea.value.substring(selectionEnd, textarea.value.length); if (focus) { if (cursor == 'after') { textarea.selectionStart = selectionStart + text.length; textarea.selectionEnd = textarea.selectionStart; } else if (cursor == 'before') { textarea.selectionStart = selectionStart; textarea.selectionEnd = textarea.selectionStart; } } } else if (position == 'end') { if (breakline) { if (textarea.value.substring(0, selectionStart).trim().length > 0) { text = "\n" + text; } text = text + "\n"; } textarea.value = textarea.value + text; if (focus) { if (cursor == 'after') { textarea.selectionStart = textarea.value.length; textarea.selectionEnd = textarea.selectionStart; } else if (cursor == 'before') { textarea.selectionStart = textarea.value.length - text.length; textarea.selectionEnd = textarea.selectionStart; } } } if (focus) { if (cursor == 'start') { textarea.selectionStart = 0; textarea.selectionEnd = 0; } else if (cursor == 'end') { textarea.selectionStart = textarea.value.length; textarea.selectionEnd = textarea.selectionStart; } textarea.focus(); } this.textChangeEvent(); }, sendMessage: function sendMessage() { this.$emit('send', { text: this.currentMessage.trim() }); var textarea = this.$refs.textarea; if (textarea) { textarea.value = ''; } if (this.autoFocus === null || this.autoFocus) { textarea.focus(); } this.textChangeEvent(); }, textChangeEvent: function textChangeEvent() { var _this = this; var textarea = this.$refs.textarea; if (!textarea) { return; } var text = textarea.value.trim(); if (this.currentMessage === text) { return; } if (this.writesEventLetter <= text.length) { this.$emit('writes', { text: text }); } this.previousMessage = this.currentMessage; this.previousSelectionStart = textarea.selectionStart; this.previousSelectionEnd = this.previousSelectionStart; this.currentMessage = text; if (text.toString().length > 0) { this.textareaHistory[this.dialogId] = text; } else { delete this.textareaHistory[this.dialogId]; } clearTimeout(this.messageStoreTimeout); this.messageStoreTimeout = setTimeout(function () { _this.localStorage.set(_this.siteId, _this.userId, 'textarea-history', _this.textareaHistory, _this.userId ? 0 : 10); }, 500); }, onKeyDown: function onKeyDown(event) { this.$emit('keydown', event); var textarea = event.target; var text = textarea.value.trim(); var isMac = BX.Messenger.Utils.platform.isMac(); var isCtrlTEnable = BX.Messenger.Utils.platform.isBitrixDesktop() || !BX.Messenger.Utils.browser.isChrome(); // TODO see more im/install/js/im/im.js:12324 if (this.commandListen) ; else if (this.mentionListen) ; else if (!(event.altKey && event.ctrlKey)) { if (this.enableMention && event.shiftKey && (event.keyCode == 61 || event.keyCode == 50 || event.keyCode == 187 || event.keyCode == 187) || event.keyCode == 107) ; else if (this.enableCommand && (event.keyCode == 191 || event.keyCode == 111 || event.keyCode == 220)) ; } if (event.keyCode == 27) { if (textarea.value != '' && textarea === document.activeElement) { event.preventDefault(); event.stopPropagation(); } if (event.shiftKey) { textarea.value = ''; } } else if (event.metaKey || event.ctrlKey) { // TODO translit messages if (isCtrlTEnable && event.key === 't' || !isCtrlTEnable && event.key === 'e') { // translit case event.preventDefault(); } else if (['b', 's', 'i', 'u'].includes(event.key)) { var selectionStart = textarea.selectionStart; var selectionEnd = textarea.selectionEnd; var tagStart = '[' + event.key.toLowerCase() + ']'; var tagEnd = '[/' + event.key.toLowerCase() + ']'; var selected = textarea.value.substring(selectionStart, selectionEnd); if (selected.startsWith(tagStart) && selected.endsWith(tagEnd)) { selected = selected.substring(tagStart.length, selected.indexOf(tagEnd)); } else { selected = tagStart + selected + tagEnd; } textarea.value = textarea.value.substring(0, selectionStart) + selected + textarea.value.substring(selectionEnd, textarea.value.length); textarea.selectionStart = selectionStart; textarea.selectionEnd = selectionStart + selected.length; event.preventDefault(); } } if (event.keyCode == 9) { this.insertText("\t"); event.preventDefault(); } else if (this.enableEdit && event.keyCode == 38 && text.length <= 0) { this.$emit('edit', {}); } else if (event.keyCode == 13) { if (BX.Messenger.Utils.device.isMobile()) ; else if (this.sendByEnter == true) { if (event.ctrlKey || event.altKey || event.shiftKey) { if (!event.shiftKey) { this.insertText("\n"); } } else if (text.length <= 0) { event.preventDefault(); } else { this.sendMessage(); event.preventDefault(); } } else { if (event.ctrlKey == true) { this.sendMessage(); event.preventDefault(); } else if (isMac && (event.metaKey == true || event.altKey == true)) { this.sendMessage(); event.preventDefault(); } } } else if ((event.ctrlKey || event.metaKey) && event.key == 'z') { if (this.previousMessage) { textarea.value = this.previousMessage; textarea.selectionStart = this.previousSelectionStart; textarea.selectionEnd = this.previousSelectionEnd; this.previousMessage = ''; event.preventDefault(); } } }, onKeyUp: function onKeyUp(event) { this.$emit('keyup', event); this.textChangeEvent(); }, onPaste: function onPaste(event) { this.$nextTick(this.textChangeEvent); }, onInput: function onInput(event) { this.textChangeEvent(); }, onFocus: function onFocus(event) { this.$emit('focus', event); }, onBlur: function onBlur(event) { this.$emit('blur', event); }, onAppButtonClick: function onAppButtonClick(appId, event) { this.$emit('appButtonClick', { appId: appId, event: event }); }, onInsertText: function onInsertText() { var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (!event.text) { return false; } this.insertText(event.text, event.breakline, event.position, event.cursor, event.focus); return true; }, onFocusSet: function onFocusSet() { this.$refs.textarea.focus(); return true; }, onFocusClear: function onFocusClear() { this.$refs.textarea.blur(); return true; }, onFileClick: function onFileClick(event) { event.target.value = ""; }, onFileSelect: function onFileSelect(event) { this.$emit('fileSelected', { fileInput: event.target }); } }, template: "\n\t\t<div :class=\"textareaClassName\">\n\t\t\t<div class=\"bx-im-textarea-box\">\n\t\t\t\t<textarea ref=\"textarea\" class=\"bx-im-textarea-input\" @keydown=\"onKeyDown\" @keyup=\"onKeyUp\" @paste=\"onPaste\" @input=\"onInput\" @focus=\"onFocus\" @blur=\"onBlur\" v-bx-im-focus=\"autoFocus\" :placeholder=\"localize.BX_MESSENGER_TEXTAREA_PLACEHOLDER\">{{placeholderMessage}}</textarea>\n\t\t\t\t<transition enter-active-class=\"bx-im-textarea-send-button-show\" leave-active-class=\"bx-im-textarea-send-button-hide\">\n\t\t\t\t\t<button v-if=\"currentMessage\" :class=\"buttonStyle.button.className\" :style=\"buttonStyle.button.style\" @click=\"sendMessage\" :title=\"localize.BX_MESSENGER_TEXTAREA_BUTTON_SEND\"></button>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-textarea-app-box\">\n\t\t\t\t<label v-if=\"enableFile\" class=\"bx-im-textarea-app-button bx-im-textarea-app-file\" :title=\"localize.BX_MESSENGER_TEXTAREA_FILE\"><input type=\"file\" @click=\"onFileClick($event)\" @change=\"onFileSelect($event)\"></label>\n\t\t\t\t<button class=\"bx-im-textarea-app-button bx-im-textarea-app-smile\" :title=\"localize.BX_MESSENGER_TEXTAREA_SMILE\" @click=\"onAppButtonClick('smile', $event)\"></button>\n\t\t\t\t<button v-if=\"false\" class=\"bx-im-textarea-app-button bx-im-textarea-app-gif\" :title=\"localize.BX_MESSENGER_TEXTAREA_GIPHY\" @click=\"onAppButtonClick('giphy', $event)\"></button>\n\t\t\t</div>\n\t\t</div>\n\t" }); }((this.window = this.window || {}))); //# sourceMappingURL=messenger.component.textarea.bundle.js.map textarea/bundle.config.min.js000066400000000256147744271350012241 0ustar00module.exports={input:"./messenger.component.textarea.js",output:"./messenger.component.textarea.bundle.js",namespaceFunction:null}; //# sourceMappingURL=bundle.config.map.jstextarea/bundle.config.map.js000066400000000312147744271350012224 0ustar00{"version":3,"sources":["bundle.config.js"],"names":["module","exports","input","output","namespaceFunction"],"mappings":"AAAAA,OAAOC,SACNC,MAAO,oCACPC,OAAQ,2CACRC,kBAAmB","file":"bundle.config.map.js"}textarea/messenger.component.textarea.bundle.css.map000066400000020546147744271350016753 0ustar00{"version":3,"sources":["../messenger.component.textarea.css"],"names":[],"mappings":"AAAA;CACC,qBAAc;CAAd,qBAAc;CAAd,cAAc;CACd,6BAAuB;CAAvB,8BAAuB;KAAvB,2BAAuB;SAAvB,uBAAuB;CACvB,aAAa;CACb,+BAAuB;SAAvB,uBAAuB;CACvB,oBAAoB;CACpB,2CAA2C;CAC3C;AACD;CACC,qBAAc;CAAd,qBAAc;CAAd,cAAc;CACd,oBAAa;KAAb,qBAAa;SAAb,aAAa;CACb,qBAAe;KAAf,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB,YAAY;CACZ,gBAAgB;CAChB,iBAAiB;CACjB,aAAa;CACb,wBAAwB;CACxB,0DAA0D;CAC1D,YAAY;CACZ,aAAa;CACb,cAAc;CACd,yCAAyC;CACzC;AACD,mDAAmD,yBAAyB;CAC3E,2BAA2B;CAC3B;AACD,0CAA0C,iBAAiB;CAC1D,2BAA2B;CAC3B;AACD,8CAA8C,YAAY;CACzD,2BAA2B;CAC3B;AACD,yCAAyC,iBAAiB;CACzD,2BAA2B;CAC3B;;AAED;CACC,eAAe;CACf,YAAY;CACZ,aAAa;CACb,8BAA8B;CAC9B,gdAAgd;CAChd,mCAAmC;CACnC,6BAA6B;CAC7B,YAAY;CACZ,gCAAwB;CAAxB,2BAAwB;CAAxB,wBAAwB;CACxB,yBAAyB;CACzB,cAAc;CACd,gBAAgB;CAChB,mBAAmB;CACnB,0BAA0B;CAC1B,qBAAe;KAAf,eAAe;CACf;AACD;;CAEC,WAAW;CACX;AACD;CACC,0BAA0B;CAC1B,wbAAwb;CACxb;AACD;CACC,uEAA+D;SAA/D,+DAA+D;CAC/D;AACD;CACC,uEAA+D;SAA/D,+DAA+D;CAC/D;;AAED;CACC,YAAY;CACZ,+BAAuB;SAAvB,uBAAuB;CACvB,gBAAgB;IACb,aAAa;CAChB,oBAAe;KAAf,mBAAe;SAAf,eAAe;CACf,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,YAAY;CACZ,aAAa;CACb,aAAa;CACb,8BAA8B;CAC9B,4BAA4B;CAC5B,6BAA6B;CAC7B,gCAAwB;CAAxB,2BAAwB;CAAxB,wBAAwB;CACxB,aAAa;CACb,yBAAyB;CACzB,cAAc;CACd,gBAAgB;CAChB,oBAAoB;CACpB;AACD;CACC,YAAY;CACZ;AACD;CACC,gyBAAgyB;CAChyB;AACD,kCAAkC,wBAAwB,CAAC;;AAE3D;CACC,w1BAAw1B;CACx1B;AACD;CACC,+iCAA+iC;CAC/iC;;;AAGD;CACC,aAAa;CACb,cAAc;CACd,mBAAmB;CACnB,iBAAiB;CACjB;;;AAGD;CACC;EACC,sCAA8B;UAA9B,8BAA8B;EAC9B;CACD;EACC,mCAA2B;UAA3B,2BAA2B;EAC3B;CACD;;;AAPD;CACC;EACC,sCAA8B;UAA9B,8BAA8B;EAC9B;CACD;EACC,mCAA2B;UAA3B,2BAA2B;EAC3B;CACD;AACD;CACC;EACC,mCAA2B;UAA3B,2BAA2B;EAC3B;CACD;EACC,sCAA8B;UAA9B,8BAA8B;EAC9B;CACD;AAPD;CACC;EACC,mCAA2B;UAA3B,2BAA2B;EAC3B;CACD;EACC,sCAA8B;UAA9B,8BAA8B;EAC9B;CACD","file":"im/install/js/messenger/component/textarea/messenger.component.textarea.bundle.css","sourcesContent":[".bx-im-textarea {\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\tbox-sizing: border-box;\n\tpadding: 10px 0 0 0;\n\tborder-top: 1px solid rgba(31,170,241,.26);\n}\n.bx-im-textarea-box {\n\tdisplay: flex;\n\tflex-grow: 1;\n\tflex-shrink: 1;\n\tpadding: 0 16px;\n}\n\n.bx-im-textarea-input {\n\tmargin: 0 5px 0 0;\n\tpadding: 0 5px 0 0;\n\twidth: 100%;\n\tmin-width: auto;\n\tmin-height: auto;\n\tborder: none;\n\tbackground: transparent;\n\tfont: 14px \"Helvetica Neue\", Arial, Helvetica, sans-serif;\n\tcolor: #333;\n\tresize: none;\n\toutline: none;\n\t-webkit-tap-highlight-color: transparent;\n}\n.bx-im-textarea-input::-webkit-input-placeholder { /* Chrome/Opera/Safari */\n\tcolor: rgba(82,92,105,.42);\n}\n.bx-im-textarea-input::-moz-placeholder { /* Firefox 19+ */\n\tcolor: rgba(82,92,105,.42);\n}\n.bx-im-textarea-input:-ms-input-placeholder { /* IE 10+ */\n\tcolor: rgba(82,92,105,.42);\n}\n.bx-im-textarea-input:-moz-placeholder { /* Firefox 18- */\n\tcolor: rgba(82,92,105,.42);\n}\n\n.bx-im-textarea-send-button {\n\tdisplay: block;\n\twidth: 33px;\n\theight: 33px;\n\tbackground-color: transparent;\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23646D7B%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22%20opacity%3D%22.8%22/%3E%3C/svg%3E');\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\topacity: .5;\n\ttransition: opacity .3s;\n\t-webkit-appearance: none;\n\toutline: none;\n\tcursor: pointer;\n\tborder-radius: 50%;\n\tborder: 1px solid #b1b1b1;\n\tflex-shrink: 0;\n}\n.bx-im-textarea-send-button:hover,\n.bx-im-textarea-mobile .bx-im-textarea-send-button {\n\topacity: 1;\n}\n.bx-im-textarea-send-button-bright-arrow {\n\tborder-color: transparent;\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2213%22%3E%3Cpath%20fill%3D%22%23FFF%22%20fill-rule%3D%22evenodd%22%20d%3D%22M4.059%209.152L4.04%2012.21.165%208.333l3.92-3.92-.018%203.245h2.862a3%203%200%200%200%203-3v-.156a3%203%200%200%200-3-3H5.545L6.06.286h1.38a4%204%200%200%201%204%204v.866a4%204%200%200%201-4%204H4.06z%22/%3E%3C/svg%3E');\n}\n.bx-im-textarea-send-button.bx-im-textarea-send-button-show {\n\tanimation: bx-im-textarea-send-button-show .2s linear forwards;\n}\n.bx-im-textarea-send-button.bx-im-textarea-send-button-hide {\n\tanimation: bx-im-textarea-send-button-hide .2s linear forwards;\n}\n\n.bx-im-textarea-app-box {\n\twidth: 100%;\n\tbox-sizing: border-box;\n\tmargin-top: 5px;\n height: 30px;\n\tflex: 0 0 30px;\n\tpadding: 0 8px;\n}\n\n.bx-im-textarea-app-button {\n\tdisplay: inline-block;\n\twidth: 25px;\n\theight: 25px;\n\tborder: none;\n\tbackground-color: transparent;\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n\ttransition: opacity .3s;\n\topacity: .46;\n\t-webkit-appearance: none;\n\toutline: none;\n\tcursor: pointer;\n\tvertical-align: top;\n}\n.bx-im-textarea-app-button:hover {\n\topacity: .8;\n}\n.bx-im-textarea-app-file {\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2216%22%3E%3Cpath%20fill%3D%22%23525C69%22%20d%3D%22M8.891%206.092c0-.277.221-.502.494-.502.272%200%20.493.225.493.502v4.444c0%202.495-1.988%204.517-4.44%204.517-2.453%200-4.442-2.022-4.442-4.517V3.151c0-1.742%201.388-3.153%203.1-3.153%201.713%200%203.1%201.411%203.1%203.153v6.235c0%201.184-.943%202.143-2.107%202.143-1.165%200-2.108-.96-2.108-2.143V5.563c0-.277.22-.502.493-.502s.494.225.494.502v3.823c0%20.63.502%201.14%201.12%201.14.62%200%201.122-.51%201.122-1.14V3.15C6.21%201.964%205.264%201%204.097%201c-1.168%200-2.114.963-2.114%202.15v7.385c0%201.94%201.547%203.513%203.454%203.513%201.908%200%203.454-1.573%203.454-3.513V6.092z%22/%3E%3C/svg%3E');\n}\n.bx-im-textarea-app-file > input {display: none!important;}\n\n.bx-im-textarea-app-smile {\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2215%22%20height%3D%2215%22%3E%3Cg%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M5.25%204a1%201%200%200%201%201%201v1a1%201%200%201%201-2%200V5a1%201%200%200%201%201-1zm4.5%200a1%201%200%200%201%201%201v1a1%201%200%200%201-2%200V5a1%201%200%200%201%201-1z%22/%3E%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7.5%2014a6.5%206.5%200%201%200%200-13%206.5%206.5%200%200%200%200%2013zm0%201a7.5%207.5%200%201%201%200-15%207.5%207.5%200%200%201%200%2015zm-3.349-4.81a.5.5%200%201%201%20.698-.716%203.985%203.985%200%200%200%202.792%201.135c1.064%200%202.06-.416%202.804-1.147a.5.5%200%200%201%20.701.713%204.985%204.985%200%200%201-3.505%201.434%204.984%204.984%200%200%201-3.49-1.419z%22/%3E%3C/g%3E%3C/svg%3E');\n}\n.bx-im-textarea-app-gif {\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212%22%20height%3D%2215%22%3E%3Cpath%20fill%3D%22%23525C69%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11%2013.201a.8.8%200%200%201-.799.799H1.768A.768.768%200%200%201%201%2013.231V1.828C1%201.371%201.371%201%201.828%201h5.221c.344%200%20.673.137.916.379l2.656%202.656c.243.242.379.572.379.915v8.251zm.621-9.58L8.379.379A1.298%201.298%200%200%200%207.463%200H1.295C.58%200%200%20.58%200%201.295v12.41C0%2014.42.58%2015%201.295%2015h9.41C11.42%2015%2012%2014.42%2012%2013.705V4.536c0-.343-.136-.673-.379-.915zM7.299%207.857l1.351-1.35-.657-.657-1.35%201.35c-.053.053-.118.082-.179.119V5.25h-.928v2.069c-.06-.037-.126-.066-.179-.119l-1.35-1.35-.657.656%201.35%201.35c.053.053.082.118.12.18H2.75v.928h2.07c-.038.06-.067.127-.12.179l-1.35%201.35.657.656%201.35-1.35c.053-.052.118-.082.179-.119v2.07h.928V9.68c.06.037.126.067.179.12l1.35%201.35.657-.657-1.35-1.35c-.053-.052-.082-.118-.12-.179h2.07v-.928H7.18c.038-.062.067-.127.12-.18z%22/%3E%3C/svg%3E');\n}\n\n\n.bx-im-textarea-smile-box {\n\twidth: 340px;\n\theight: 420px;\n\tposition: absolute;\n\tbackground: #fff;\n}\n\n\n@keyframes bx-im-textarea-send-button-show {\n\t0% {\n\t\ttransform: translate(50px, 0);\n\t}\n\t100% {\n\t\ttransform: translate(0, 0);\n\t}\n}\n@keyframes bx-im-textarea-send-button-hide {\n\t0% {\n\t\ttransform: translate(0, 0);\n\t}\n\t100% {\n\t\ttransform: translate(50px, 0);\n\t}\n}"]}textarea/messenger.component.textarea.bundle.min.js000066400000022020147744271350016572 0ustar00(function(e){"use strict";BX.Vue.component("bx-messenger-textarea",{props:{siteId:{default:"default"},userId:{default:0},dialogId:{default:0},enableCommand:{default:true},enableMention:{default:true},desktopMode:{default:false},enableEdit:{default:false},enableFile:{default:false},sendByEnter:{default:true},autoFocus:{default:null},writesEventLetter:{default:0},styles:{type:Object,default:function e(){return{}}},listenEventInsertText:{default:""},listenEventFocus:{default:""},listenEventBlur:{default:""}},data:function e(){return{placeholderMessage:"",currentMessage:"",previousMessage:"",commandListen:false,mentionListen:false,stylesDefault:Object.freeze({button:{backgroundColor:null,iconColor:null}})}},created:function e(){if(this.listenEventInsertText){BX.Vue.event.$on(this.listenEventInsertText,this.onInsertText);this.$root.$on(this.listenEventInsertText,this.onInsertText)}if(this.listenEventFocus){BX.Vue.event.$on(this.listenEventFocus,this.onFocusSet);this.$root.$on(this.listenEventFocus,this.onFocusSet)}if(this.listenEventBlur){BX.Vue.event.$on(this.listenEventBlur,this.onFocusClear);this.$root.$on(this.listenEventBlur,this.onFocusClear)}this.localStorage=BX.Messenger.LocalStorage;this.textareaHistory=this.localStorage.get(this.siteId,this.userId,"textarea-history",{});this.currentMessage=this.textareaHistory[this.dialogId]||"";this.placeholderMessage=this.currentMessage},beforeDestroy:function e(){if(this.listenEventInsertText){BX.Vue.event.$off(this.listenEventInsertText,this.onInsertText);this.$root.$off(this.listenEventInsertText,this.onInsertText)}if(this.listenEventFocus){BX.Vue.event.$off(this.listenEventFocus,this.onFocusSet);this.$root.$off(this.listenEventFocus,this.onFocusSet)}if(this.listenEventBlur){BX.Vue.event.$off(this.listenEventBlur,this.onFocusClear);this.$root.$off(this.listenEventBlur,this.onFocusClear)}clearTimeout(this.messageStoreTimeout);this.localStorage.set(this.siteId,this.userId,"textarea-history",this.textareaHistory);this.localStorage=null},computed:{textareaClassName:function e(){return"bx-im-textarea"+(BX.Messenger.Utils.device.isMobile()?" bx-im-textarea-mobile":"")},buttonStyle:function e(){var t=Object.assign({},this.stylesDefault,this.styles);var s=false;if(t.button.iconColor){s=BX.Messenger.Utils.isDarkColor(t.button.iconColor)}else{s=!BX.Messenger.Utils.isDarkColor(t.button.backgroundColor)}t.button.className=s?"bx-im-textarea-send-button":"bx-im-textarea-send-button bx-im-textarea-send-button-bright-arrow";t.button.style=t.button.backgroundColor?"background-color: "+t.button.backgroundColor+";":"";return t},localize:function e(){return BX.Vue.getFilteredPhrases("BX_MESSENGER_TEXTAREA_",this.$root.$bitrixMessages)}},directives:{"bx-im-focus":{inserted:function e(t,s){if(s.value===true||s.value===null&&!BX.Messenger.Utils.device.isMobile()){t.focus()}}}},methods:{insertText:function e(t){var s=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"current";var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"after";var a=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var o=this.$refs.textarea;var l=o.selectionStart;var r=o.selectionEnd;if(i=="start"){if(s){t=t+"\n"}o.value=t+o.value;if(a){if(n=="after"){o.selectionStart=t.length;o.selectionEnd=o.selectionStart}else if(n=="before"){o.selectionStart=0;o.selectionEnd=o.selectionStart}}}else if(i=="current"){if(s){if(o.value.substring(0,l).trim().length>0){t="\n"+t}t=t+"\n"}o.value=o.value.substring(0,l)+t+o.value.substring(r,o.value.length);if(a){if(n=="after"){o.selectionStart=l+t.length;o.selectionEnd=o.selectionStart}else if(n=="before"){o.selectionStart=l;o.selectionEnd=o.selectionStart}}}else if(i=="end"){if(s){if(o.value.substring(0,l).trim().length>0){t="\n"+t}t=t+"\n"}o.value=o.value+t;if(a){if(n=="after"){o.selectionStart=o.value.length;o.selectionEnd=o.selectionStart}else if(n=="before"){o.selectionStart=o.value.length-t.length;o.selectionEnd=o.selectionStart}}}if(a){if(n=="start"){o.selectionStart=0;o.selectionEnd=0}else if(n=="end"){o.selectionStart=o.value.length;o.selectionEnd=o.selectionStart}o.focus()}this.textChangeEvent()},sendMessage:function e(){this.$emit("send",{text:this.currentMessage.trim()});var t=this.$refs.textarea;if(t){t.value=""}if(this.autoFocus===null||this.autoFocus){t.focus()}this.textChangeEvent()},textChangeEvent:function e(){var t=this;var s=this.$refs.textarea;if(!s){return}var i=s.value.trim();if(this.currentMessage===i){return}if(this.writesEventLetter<=i.length){this.$emit("writes",{text:i})}this.previousMessage=this.currentMessage;this.previousSelectionStart=s.selectionStart;this.previousSelectionEnd=this.previousSelectionStart;this.currentMessage=i;if(i.toString().length>0){this.textareaHistory[this.dialogId]=i}else{delete this.textareaHistory[this.dialogId]}clearTimeout(this.messageStoreTimeout);this.messageStoreTimeout=setTimeout(function(){t.localStorage.set(t.siteId,t.userId,"textarea-history",t.textareaHistory,t.userId?0:10)},500)},onKeyDown:function e(t){this.$emit("keydown",t);var s=t.target;var i=s.value.trim();var n=BX.Messenger.Utils.platform.isMac();var a=BX.Messenger.Utils.platform.isBitrixDesktop()||!BX.Messenger.Utils.browser.isChrome();if(this.commandListen);else if(this.mentionListen);else if(!(t.altKey&&t.ctrlKey)){if(this.enableMention&&t.shiftKey&&(t.keyCode==61||t.keyCode==50||t.keyCode==187||t.keyCode==187)||t.keyCode==107);else if(this.enableCommand&&(t.keyCode==191||t.keyCode==111||t.keyCode==220));}if(t.keyCode==27){if(s.value!=""&&s===document.activeElement){t.preventDefault();t.stopPropagation()}if(t.shiftKey){s.value=""}}else if(t.metaKey||t.ctrlKey){if(a&&t.key==="t"||!a&&t.key==="e"){t.preventDefault()}else if(["b","s","i","u"].includes(t.key)){var o=s.selectionStart;var l=s.selectionEnd;var r="["+t.key.toLowerCase()+"]";var u="[/"+t.key.toLowerCase()+"]";var c=s.value.substring(o,l);if(c.startsWith(r)&&c.endsWith(u)){c=c.substring(r.length,c.indexOf(u))}else{c=r+c+u}s.value=s.value.substring(0,o)+c+s.value.substring(l,s.value.length);s.selectionStart=o;s.selectionEnd=o+c.length;t.preventDefault()}}if(t.keyCode==9){this.insertText("\t");t.preventDefault()}else if(this.enableEdit&&t.keyCode==38&&i.length<=0){this.$emit("edit",{})}else if(t.keyCode==13){if(BX.Messenger.Utils.device.isMobile());else if(this.sendByEnter==true){if(t.ctrlKey||t.altKey||t.shiftKey){if(!t.shiftKey){this.insertText("\n")}}else if(i.length<=0){t.preventDefault()}else{this.sendMessage();t.preventDefault()}}else{if(t.ctrlKey==true){this.sendMessage();t.preventDefault()}else if(n&&(t.metaKey==true||t.altKey==true)){this.sendMessage();t.preventDefault()}}}else if((t.ctrlKey||t.metaKey)&&t.key=="z"){if(this.previousMessage){s.value=this.previousMessage;s.selectionStart=this.previousSelectionStart;s.selectionEnd=this.previousSelectionEnd;this.previousMessage="";t.preventDefault()}}},onKeyUp:function e(t){this.$emit("keyup",t);this.textChangeEvent()},onPaste:function e(t){this.$nextTick(this.textChangeEvent)},onInput:function e(t){this.textChangeEvent()},onFocus:function e(t){this.$emit("focus",t)},onBlur:function e(t){this.$emit("blur",t)},onAppButtonClick:function e(t,s){this.$emit("appButtonClick",{appId:t,event:s})},onInsertText:function e(){var t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(!t.text){return false}this.insertText(t.text,t.breakline,t.position,t.cursor,t.focus);return true},onFocusSet:function e(){this.$refs.textarea.focus();return true},onFocusClear:function e(){this.$refs.textarea.blur();return true},onFileClick:function e(t){t.target.value=""},onFileSelect:function e(t){this.$emit("fileSelected",{fileInput:t.target})}},template:'\n\t\t<div :class="textareaClassName">\n\t\t\t<div class="bx-im-textarea-box">\n\t\t\t\t<textarea ref="textarea" class="bx-im-textarea-input" @keydown="onKeyDown" @keyup="onKeyUp" @paste="onPaste" @input="onInput" @focus="onFocus" @blur="onBlur" v-bx-im-focus="autoFocus" :placeholder="localize.BX_MESSENGER_TEXTAREA_PLACEHOLDER">{{placeholderMessage}}</textarea>\n\t\t\t\t<transition enter-active-class="bx-im-textarea-send-button-show" leave-active-class="bx-im-textarea-send-button-hide">\n\t\t\t\t\t<button v-if="currentMessage" :class="buttonStyle.button.className" :style="buttonStyle.button.style" @click="sendMessage" :title="localize.BX_MESSENGER_TEXTAREA_BUTTON_SEND"></button>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<div class="bx-im-textarea-app-box">\n\t\t\t\t<label v-if="enableFile" class="bx-im-textarea-app-button bx-im-textarea-app-file" :title="localize.BX_MESSENGER_TEXTAREA_FILE"><input type="file" @click="onFileClick($event)" @change="onFileSelect($event)"></label>\n\t\t\t\t<button class="bx-im-textarea-app-button bx-im-textarea-app-smile" :title="localize.BX_MESSENGER_TEXTAREA_SMILE" @click="onAppButtonClick(\'smile\', $event)"></button>\n\t\t\t\t<button v-if="false" class="bx-im-textarea-app-button bx-im-textarea-app-gif" :title="localize.BX_MESSENGER_TEXTAREA_GIPHY" @click="onAppButtonClick(\'giphy\', $event)"></button>\n\t\t\t</div>\n\t\t</div>\n\t'})})(this.window=this.window||{}); //# sourceMappingURL=messenger.component.textarea.bundle.map.jstextarea/messenger.component.textarea.bundle.js.map000066400000074645147744271350016610 0ustar00{"version":3,"file":"messenger.component.textarea.bundle.js","sources":["messenger.component.textarea.js"],"sourcesContent":["import \"./messenger.component.textarea.css\";\n\n/**\n * Bitrix Messenger\n * Textarea Vue component\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2019 Bitrix\n */\n\nBX.Vue.component('bx-messenger-textarea',\n{\n\t/**\n\t * @emits 'send' {text: string}\n\t * @emits 'edit' {}\n\t * @emits 'writes' {text: string}\n\t * @emits 'focus' {event: object} -- 'event' - focus event\n\t * @emits 'blur' {event: object} -- 'event' - blur event\n\t * @emits 'keyup' {event: object} -- 'event' - keyup event\n\t * @emits 'keydown' {event: object} -- 'event' - keydown event\n\t * @emits 'appButtonClick' {appId: string, event: object} -- 'appId' - application name, 'event' - event click\n\t * @emits 'fileSelected' {fileInput: domNode} -- 'fileInput' - dom node element\n\t */\n\n\t/**\n\t * @listens props.listenEventInsertText {text: string, breakline: boolean, position: string, cursor: string, focus: boolean} (global|application) -- insert text to textarea, see more in methods.insertText()\n\t * @listens props.listenEventFocus {} (global|application) -- set focus on textarea\n\t * @listens props.listenEventBlur {} (global|application) -- clear focus on textarea\n\t */\n\n\tprops:\n\t{\n\t\tsiteId: { default: 'default' },\n\t\tuserId: { default: 0 },\n\t\tdialogId: { default: 0 },\n\t\tenableCommand: { default: true },\n\t\tenableMention: { default: true },\n\t\tdesktopMode: { default: false },\n\t\tenableEdit: { default: false },\n\t\tenableFile: { default: false },\n\t\tsendByEnter: { default: true },\n\t\tautoFocus: { default: null },\n\t\twritesEventLetter: { default: 0 },\n\t\tstyles: {\n\t\t\ttype: Object,\n\t\t\tdefault: function () {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t},\n\t\tlistenEventInsertText: { default: '' },\n\t\tlistenEventFocus: { default: '' },\n\t\tlistenEventBlur: { default: '' },\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tplaceholderMessage: '',\n\t\t\tcurrentMessage: '',\n\t\t\tpreviousMessage: '',\n\t\t\tcommandListen: false,\n\t\t\tmentionListen: false,\n\t\t\tstylesDefault: Object.freeze({button: { backgroundColor: null, iconColor: null }})\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tif (this.listenEventInsertText)\n\t\t{\n\t\t\tBX.Vue.event.$on(this.listenEventInsertText, this.onInsertText);\n\t\t\tthis.$root.$on(this.listenEventInsertText, this.onInsertText);\n\t\t}\n\t\tif (this.listenEventFocus)\n\t\t{\n\t\t\tBX.Vue.event.$on(this.listenEventFocus, this.onFocusSet);\n\t\t\tthis.$root.$on(this.listenEventFocus, this.onFocusSet);\n\t\t}\n\t\tif (this.listenEventBlur)\n\t\t{\n\t\t\tBX.Vue.event.$on(this.listenEventBlur, this.onFocusClear);\n\t\t\tthis.$root.$on(this.listenEventBlur, this.onFocusClear);\n\t\t}\n\n\t\tthis.localStorage = BX.Messenger.LocalStorage;\n\n\t\tthis.textareaHistory = this.localStorage.get(this.siteId, this.userId, 'textarea-history', {});\n\t\tthis.currentMessage = this.textareaHistory[this.dialogId] || '';\n\t\tthis.placeholderMessage = this.currentMessage;\n\t},\n\tbeforeDestroy()\n\t{\n\t\tif (this.listenEventInsertText)\n\t\t{\n\t\t\tBX.Vue.event.$off(this.listenEventInsertText, this.onInsertText);\n\t\t\tthis.$root.$off(this.listenEventInsertText, this.onInsertText);\n\t\t}\n\t\tif (this.listenEventFocus)\n\t\t{\n\t\t\tBX.Vue.event.$off(this.listenEventFocus, this.onFocusSet);\n\t\t\tthis.$root.$off(this.listenEventFocus, this.onFocusSet);\n\t\t}\n\t\tif (this.listenEventBlur)\n\t\t{\n\t\t\tBX.Vue.event.$off(this.listenEventBlur, this.onFocusClear);\n\t\t\tthis.$root.$off(this.listenEventBlur, this.onFocusClear);\n\t\t}\n\t\tclearTimeout(this.messageStoreTimeout);\n\t\tthis.localStorage.set(this.siteId, this.userId, 'textarea-history', this.textareaHistory);\n\t\tthis.localStorage = null;\n\t},\n\tcomputed:\n\t{\n\t\ttextareaClassName()\n\t\t{\n\t\t\treturn 'bx-im-textarea' + (BX.Messenger.Utils.device.isMobile()? ' bx-im-textarea-mobile': '');\n\t\t},\n\n\t\tbuttonStyle()\n\t\t{\n\t\t\tlet styles = Object.assign({}, this.stylesDefault, this.styles);\n\n\t\t\tlet isIconDark = false;\n\t\t\tif (styles.button.iconColor)\n\t\t\t{\n\t\t\t\tisIconDark = BX.Messenger.Utils.isDarkColor(styles.button.iconColor);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tisIconDark = !BX.Messenger.Utils.isDarkColor(styles.button.backgroundColor);\n\t\t\t}\n\n\t\t\tstyles.button.className = isIconDark? 'bx-im-textarea-send-button': 'bx-im-textarea-send-button bx-im-textarea-send-button-bright-arrow';\n\t\t\tstyles.button.style = styles.button.backgroundColor? 'background-color: '+styles.button.backgroundColor+';': '';\n\n\t\t\treturn styles;\n\t\t},\n\n\t\tlocalize()\n\t\t{\n\t\t\treturn BX.Vue.getFilteredPhrases('BX_MESSENGER_TEXTAREA_', this.$root.$bitrixMessages)\n\t\t},\n\t},\n\tdirectives: {\n\t\t'bx-im-focus':\n\t\t{\n\t\t\tinserted(element, params)\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\tparams.value === true\n\t\t\t\t\t|| params.value === null && !BX.Messenger.Utils.device.isMobile()\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\telement.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\t/**\n\t\t *\n\t\t * @param text\n\t\t * @param breakline - true/false (default)\n\t\t * @param position - start, current (default), end\n\t\t * @param cursor - start, before, after (default), end\n\t\t * @param focus - set focus on textarea\n\t\t */\n\t\tinsertText(text, breakline = false, position = 'current', cursor = 'after', focus = true)\n\t\t{\n\t\t\tlet textarea = this.$refs.textarea;\n\t\t\tlet selectionStart = textarea.selectionStart;\n\t\t\tlet selectionEnd = textarea.selectionEnd;\n\n\t\t\tif (position == 'start')\n\t\t\t{\n\t\t\t\tif (breakline)\n\t\t\t\t{\n\t\t\t\t\ttext = text+\"\\n\";\n\t\t\t\t}\n\t\t\t\ttextarea.value = text + textarea.value;\n\n\t\t\t\tif (focus)\n\t\t\t\t{\n\t\t\t\t\tif (cursor == 'after')\n\t\t\t\t\t{\n\t\t\t\t\t\ttextarea.selectionStart = text.length;\n\t\t\t\t\t\ttextarea.selectionEnd = textarea.selectionStart;\n\t\t\t\t\t}\n\t\t\t\t\telse if (cursor == 'before')\n\t\t\t\t\t{\n\t\t\t\t\t\ttextarea.selectionStart = 0;\n\t\t\t\t\t\ttextarea.selectionEnd = textarea.selectionStart;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (position == 'current')\n\t\t\t{\n\t\t\t\tif (breakline)\n\t\t\t\t{\n\t\t\t\t\tif (textarea.value.substring(0, selectionStart).trim().length > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = \"\\n\"+text;\n\t\t\t\t\t}\n\t\t\t\t\ttext = text+\"\\n\";\n\t\t\t\t}\n\t\t\t\ttextarea.value = textarea.value.substring(0, selectionStart) + text + textarea.value.substring(selectionEnd, textarea.value.length);\n\n\t\t\t\tif (focus)\n\t\t\t\t{\n\t\t\t\t\tif (cursor == 'after')\n\t\t\t\t\t{\n\t\t\t\t\t\ttextarea.selectionStart = selectionStart+text.length;\n\t\t\t\t\t\ttextarea.selectionEnd = textarea.selectionStart;\n\t\t\t\t\t}\n\t\t\t\t\telse if (cursor == 'before')\n\t\t\t\t\t{\n\t\t\t\t\t\ttextarea.selectionStart = selectionStart;\n\t\t\t\t\t\ttextarea.selectionEnd = textarea.selectionStart;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (position == 'end')\n\t\t\t{\n\t\t\t\tif (breakline)\n\t\t\t\t{\n\t\t\t\t\tif (textarea.value.substring(0, selectionStart).trim().length > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = \"\\n\"+text;\n\t\t\t\t\t}\n\t\t\t\t\ttext = text+\"\\n\";\n\t\t\t\t}\n\t\t\t\ttextarea.value = textarea.value+text;\n\n\t\t\t\tif (focus)\n\t\t\t\t{\n\t\t\t\t\tif (cursor == 'after')\n\t\t\t\t\t{\n\t\t\t\t\t\ttextarea.selectionStart = textarea.value.length;\n\t\t\t\t\t\ttextarea.selectionEnd = textarea.selectionStart;\n\t\t\t\t\t}\n\t\t\t\t\telse if (cursor == 'before')\n\t\t\t\t\t{\n\t\t\t\t\t\ttextarea.selectionStart = textarea.value.length-text.length;\n\t\t\t\t\t\ttextarea.selectionEnd = textarea.selectionStart;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (focus)\n\t\t\t{\n\t\t\t\tif (cursor == 'start')\n\t\t\t\t{\n\t\t\t\t\ttextarea.selectionStart = 0;\n\t\t\t\t\ttextarea.selectionEnd = 0;\n\t\t\t\t}\n\t\t\t\telse if (cursor == 'end')\n\t\t\t\t{\n\t\t\t\t\ttextarea.selectionStart = textarea.value.length;\n\t\t\t\t\ttextarea.selectionEnd = textarea.selectionStart;\n\t\t\t\t}\n\n\t\t\t\ttextarea.focus();\n\t\t\t}\n\n\t\t\tthis.textChangeEvent();\n\t\t},\n\n\t\tsendMessage()\n\t\t{\n\t\t\tthis.$emit('send', {text: this.currentMessage.trim()});\n\n\t\t\tlet textarea = this.$refs.textarea;\n\t\t\tif (textarea)\n\t\t\t{\n\t\t\t\ttextarea.value = '';\n\t\t\t}\n\n\t\t\tif (this.autoFocus === null || this.autoFocus)\n\t\t\t{\n\t\t\t\ttextarea.focus();\n\t\t\t}\n\n\t\t\tthis.textChangeEvent();\n\t\t},\n\n\t\ttextChangeEvent()\n\t\t{\n\t\t\tlet textarea = this.$refs.textarea;\n\t\t\tif (!textarea)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet text = textarea.value.trim();\n\t\t\tif (this.currentMessage === text)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.writesEventLetter <= text.length)\n\t\t\t{\n\t\t\t\tthis.$emit('writes', {text});\n\t\t\t}\n\n\t\t\tthis.previousMessage = this.currentMessage;\n\t\t\tthis.previousSelectionStart = textarea.selectionStart;\n\t\t\tthis.previousSelectionEnd = this.previousSelectionStart;\n\t\t\tthis.currentMessage = text;\n\n\t\t\tif (text.toString().length > 0)\n\t\t\t{\n\t\t\t\tthis.textareaHistory[this.dialogId] = text;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdelete this.textareaHistory[this.dialogId];\n\t\t\t}\n\n\t\t\tclearTimeout(this.messageStoreTimeout);\n\t\t\tthis.messageStoreTimeout = setTimeout(() => {\n\t\t\t\tthis.localStorage.set(this.siteId, this.userId, 'textarea-history', this.textareaHistory, this.userId? 0: 10);\n\t\t\t}, 500);\n\t\t},\n\n\t\tonKeyDown(event)\n\t\t{\n\t\t\tthis.$emit('keydown', event);\n\n\t\t\tlet textarea = event.target;\n\t\t\tlet text = textarea.value.trim();\n\t\t\tlet isMac = BX.Messenger.Utils.platform.isMac();\n\t\t\tlet isCtrlTEnable = BX.Messenger.Utils.platform.isBitrixDesktop() || !BX.Messenger.Utils.browser.isChrome();\n\n\t\t\t// TODO see more im/install/js/im/im.js:12324\n\t\t\tif (this.commandListen)\n\t\t\t{\n\t\t\t}\n\t\t\telse if (this.mentionListen)\n\t\t\t{\n\t\t\t}\n\t\t\telse if (!(event.altKey && event.ctrlKey))\n\t\t\t{\n\t\t\t\tif (this.enableMention && (event.shiftKey && (event.keyCode == 61 || event.keyCode == 50 || event.keyCode == 187 || event.keyCode == 187)) || event.keyCode == 107)\n\t\t\t\t{\n\t\t\t\t\t// mention case\n\t\t\t\t}\n\t\t\t\telse if (this.enableCommand && (event.keyCode == 191 || event.keyCode == 111 || event.keyCode == 220))\n\t\t\t\t{\n\t\t\t\t\t// command case\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (event.keyCode == 27)\n\t\t\t{\n\t\t\t\tif (textarea.value != '' && textarea === document.activeElement)\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t\tif (event.shiftKey)\n\t\t\t\t{\n\t\t\t\t\ttextarea.value = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (event.metaKey || event.ctrlKey)\n\t\t\t{\n\t\t\t\t// TODO translit messages\n\t\t\t\tif (\n\t\t\t\t\tisCtrlTEnable && event.key === 't'\n\t\t\t\t\t|| !isCtrlTEnable && event.key === 'e'\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\t// translit case\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\telse if (['b','s','i','u'].includes(event.key))\n\t\t\t\t{\n\t\t\t\t\tlet selectionStart = textarea.selectionStart;\n\t\t\t\t\tlet selectionEnd = textarea.selectionEnd;\n\n\t\t\t\t\tlet tagStart = '['+event.key.toLowerCase()+']';\n\t\t\t\t\tlet tagEnd = '[/'+event.key.toLowerCase()+']';\n\t\t\t\t\tlet selected = textarea.value.substring(selectionStart, selectionEnd);\n\n\t\t\t\t\tif (selected.startsWith(tagStart) && selected.endsWith(tagEnd))\n\t\t\t\t\t{\n\t\t\t\t\t\tselected = selected.substring(tagStart.length, selected.indexOf(tagEnd));\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tselected = tagStart + selected + tagEnd;\n\t\t\t\t\t}\n\n\t\t\t\t\ttextarea.value = textarea.value.substring(0, selectionStart) + selected + textarea.value.substring(selectionEnd, textarea.value.length);\n\n\t\t\t\t\ttextarea.selectionStart = selectionStart;\n\t\t\t\t\ttextarea.selectionEnd = selectionStart + selected.length;\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (event.keyCode == 9)\n\t\t\t{\n\t\t\t\tthis.insertText(\"\\t\");\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t\telse if (this.enableEdit && event.keyCode == 38 && text.length <= 0)\n\t\t\t{\n\t\t\t\tthis.$emit('edit', {});\n\t\t\t}\n\t\t\telse if (event.keyCode == 13)\n\t\t\t{\n\t\t\t\tif (BX.Messenger.Utils.device.isMobile())\n\t\t\t\t{\n\t\t\t\t}\n\t\t\t\telse if (this.sendByEnter == true)\n\t\t\t\t{\n\t\t\t\t\tif (event.ctrlKey || event.altKey || event.shiftKey)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!event.shiftKey)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.insertText(\"\\n\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (text.length <= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.sendMessage();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (event.ctrlKey == true)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.sendMessage();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\telse if (isMac && (event.metaKey == true || event.altKey == true))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.sendMessage();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ((event.ctrlKey || event.metaKey) && event.key == 'z')\n\t\t\t{\n\t\t\t\tif (this.previousMessage)\n\t\t\t\t{\n\t\t\t\t\ttextarea.value = this.previousMessage;\n\t\t\t\t\ttextarea.selectionStart = this.previousSelectionStart;\n\t\t\t\t\ttextarea.selectionEnd = this.previousSelectionEnd;\n\n\t\t\t\t\tthis.previousMessage = '';\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonKeyUp(event)\n\t\t{\n\t\t\tthis.$emit('keyup', event);\n\t\t\tthis.textChangeEvent();\n\t\t},\n\t\tonPaste(event)\n\t\t{\n\t\t\tthis.$nextTick(this.textChangeEvent);\n\t\t},\n\t\tonInput(event)\n\t\t{\n\t\t\tthis.textChangeEvent();\n\t\t},\n\t\tonFocus(event)\n\t\t{\n\t\t\tthis.$emit('focus', event);\n\t\t},\n\t\tonBlur(event)\n\t\t{\n\t\t\tthis.$emit('blur', event);\n\t\t},\n\t\tonAppButtonClick(appId, event)\n\t\t{\n\t\t\tthis.$emit('appButtonClick', {appId, event});\n\t\t},\n\t\tonInsertText(event = {})\n\t\t{\n\t\t\tif (!event.text)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.insertText(event.text, event.breakline, event.position, event.cursor, event.focus);\n\n\t\t\treturn true;\n\t\t},\n\t\tonFocusSet()\n\t\t{\n\t\t\tthis.$refs.textarea.focus();\n\n\t\t\treturn true;\n\t\t},\n\t\tonFocusClear()\n\t\t{\n\t\t\tthis.$refs.textarea.blur();\n\n\t\t\treturn true;\n\t\t},\n\t\tonFileClick(event)\n\t\t{\n\t\t\tevent.target.value = \"\";\n\t\t},\n\t\tonFileSelect(event)\n\t\t{\n\t\t\tthis.$emit('fileSelected', {fileInput: event.target});\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div :class=\"textareaClassName\">\n\t\t\t<div class=\"bx-im-textarea-box\">\n\t\t\t\t<textarea ref=\"textarea\" class=\"bx-im-textarea-input\" @keydown=\"onKeyDown\" @keyup=\"onKeyUp\" @paste=\"onPaste\" @input=\"onInput\" @focus=\"onFocus\" @blur=\"onBlur\" v-bx-im-focus=\"autoFocus\" :placeholder=\"localize.BX_MESSENGER_TEXTAREA_PLACEHOLDER\">{{placeholderMessage}}</textarea>\n\t\t\t\t<transition enter-active-class=\"bx-im-textarea-send-button-show\" leave-active-class=\"bx-im-textarea-send-button-hide\">\n\t\t\t\t\t<button v-if=\"currentMessage\" :class=\"buttonStyle.button.className\" :style=\"buttonStyle.button.style\" @click=\"sendMessage\" :title=\"localize.BX_MESSENGER_TEXTAREA_BUTTON_SEND\"></button>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-textarea-app-box\">\n\t\t\t\t<label v-if=\"enableFile\" class=\"bx-im-textarea-app-button bx-im-textarea-app-file\" :title=\"localize.BX_MESSENGER_TEXTAREA_FILE\"><input type=\"file\" @click=\"onFileClick($event)\" @change=\"onFileSelect($event)\"></label>\n\t\t\t\t<button class=\"bx-im-textarea-app-button bx-im-textarea-app-smile\" :title=\"localize.BX_MESSENGER_TEXTAREA_SMILE\" @click=\"onAppButtonClick('smile', $event)\"></button>\n\t\t\t\t<button v-if=\"false\" class=\"bx-im-textarea-app-button bx-im-textarea-app-gif\" :title=\"localize.BX_MESSENGER_TEXTAREA_GIPHY\" @click=\"onAppButtonClick('giphy', $event)\"></button>\n\t\t\t</div>\n\t\t</div>\n\t`\n});"],"names":["BX","Vue","component","props","siteId","default","userId","dialogId","enableCommand","enableMention","desktopMode","enableEdit","enableFile","sendByEnter","autoFocus","writesEventLetter","styles","type","Object","listenEventInsertText","listenEventFocus","listenEventBlur","data","placeholderMessage","currentMessage","previousMessage","commandListen","mentionListen","stylesDefault","freeze","button","backgroundColor","iconColor","created","event","$on","onInsertText","$root","onFocusSet","onFocusClear","localStorage","Messenger","LocalStorage","textareaHistory","get","beforeDestroy","$off","clearTimeout","messageStoreTimeout","set","computed","textareaClassName","Utils","device","isMobile","buttonStyle","assign","isIconDark","isDarkColor","className","style","localize","getFilteredPhrases","$bitrixMessages","directives","inserted","element","params","value","focus","methods","insertText","text","breakline","position","cursor","textarea","$refs","selectionStart","selectionEnd","length","substring","trim","textChangeEvent","sendMessage","$emit","previousSelectionStart","previousSelectionEnd","toString","setTimeout","onKeyDown","target","isMac","platform","isCtrlTEnable","isBitrixDesktop","browser","isChrome","altKey","ctrlKey","shiftKey","keyCode","document","activeElement","preventDefault","stopPropagation","metaKey","key","includes","tagStart","toLowerCase","tagEnd","selected","startsWith","endsWith","indexOf","onKeyUp","onPaste","$nextTick","onInput","onFocus","onBlur","onAppButtonClick","appId","blur","onFileClick","onFileSelect","fileInput","template"],"mappings":"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"}element/file/config.php000066400000000712147744271350011112 0ustar00<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } return [ 'js' => [ '/bitrix/js/messenger/component/element/file/messenger.component.element.file.bundle.js', ], 'css' => [ '/bitrix/js/messenger/component/element/file/messenger.component.element.file.bundle.css', ], 'rel' => [ 'main.polyfill.complex', 'ui.vue', 'messenger.model.files', 'ui.vue.directives.lazyload', 'ui.icons', ], 'skip_core' => true, ];element/file/messenger.component.element.file.bundle.min.css000066400000010275147744271350020244 0ustar00.bx-im-element-file{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow:hidden;margin-left:-4px;cursor:pointer;min-width:135px}.bx-im-message-content-name+.bx-im-message-content-body .bx-im-element-file:first-child{margin-top:5px}.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-element-file:first-child{margin-top:0}.bx-im-element-file+.bx-im-message-content-body-with-text{display:block;margin-top:7px}.bx-im-element-file+.bx-im-message-content-body-without-text .bx-im-message-content-params{margin-top:-21px}.bx-im-element-file+.bx-im-element-file{margin-top:10px}.bx-im-element-file-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;padding-right:7px}.bx-im-element-file-block{overflow:hidden}.bx-im-element-file-name{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.bx-im-element-file-name-left{white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden}.bx-im-element-file-name-right{-ms-flex-negative:0;flex-shrink:0}.bx-im-element-file-size{color:#717171;font-size:12px}.bx-im-element-file-image{display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden;min-width:100px;min-height:100px}.bx-im-element-file-image-source{display:inline-block}.bx-im-element-file-image-source-text{display:inline-block;width:100%;max-height:280px}.bx-im-element-file-image-source.bx-lazyload-loading,.bx-im-element-file-image-source.bx-lazyload-hidden{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20fill-rule%3D%22nonzero%22%20d%3D%22M63.14%2032.0863H10.008v54.4566h55V32.0873H63.14v-.001zm-.132%2052.4754h-51V34.0665h51v50.4952z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20d%3D%22M60.008%2081.591v-2.97l-12-11.881-6%205.94-15-14.851-12%2011.881v11.881z%22/%3E%0A%20%20%20%20%3Cellipse%20cx%3D%2251.712%22%20cy%3D%2246.785%22%20fill%3D%22%23B9BEC4%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;background-position:center;background-size:inherit}.bx-im-element-file-image-source.bx-lazyload-error{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7%2034.897l7.515%2053.474%2023.219-3.263-.676-34.282-6.84-19.191%202.611-.367L7%2034.897zM36.367%2083.28l-21.14%202.97L8.27%2036.739l21.139-2.97%206.227%2017.258.732%2032.255z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M37.529%2079.675l-.147-15.915-9.094-6.782-10.23%2013.435%201.654%2011.766z%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%20transform%3D%22rotate%285%20-359.005%20511.676%29%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M.316.001l3.638%2019.956L1%2054h24V.001H.316zM24%2052H2.353l1.601-16.033%201.621-16.01L2%202h22v50z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M20.008%2049.591v-2.97l-12-11.881L1.96%2049.591z%22/%3E%0A%20%20%20%20%20%20%3Cellipse%20cx%3D%2211.712%22%20cy%3D%2214.785%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;background-position:center;background-size:inherit}.bx-im-element-file-image+.bx-im-message-content-body-without-text .bx-im-message-content-params{margin-top:-21px}element/file/messenger.component.element.file.css000066400000010075147744271350016210 0ustar00.bx-im-element-file { display: flex; flex-wrap: nowrap; overflow: hidden; margin-left: -4px; cursor: pointer; min-width: 135px; } .bx-im-message-content-name + .bx-im-message-content-body .bx-im-element-file:first-child { margin-top: 5px; } .bx-im-dialog-list-item + .bx-im-dialog-list-item .bx-im-element-file:first-child { margin-top: 0; } .bx-im-element-file + .bx-im-message-content-body-with-text { display: block; margin-top:7px } .bx-im-element-file + .bx-im-message-content-body-without-text .bx-im-message-content-params { margin-top: -21px; } .bx-im-element-file + .bx-im-element-file { margin-top: 10px; } .bx-im-element-file-icon { display: flex; flex-shrink: 0; padding-right: 7px; } .bx-im-element-file-block { overflow: hidden; } .bx-im-element-file-name { display: flex; flex-wrap: nowrap; } .bx-im-element-file-name-left { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .bx-im-element-file-name-right { flex-shrink: 0; } .bx-im-element-file-size { color: #717171; font-size: 12px; } .bx-im-element-file-image { display: flex; cursor: pointer; align-items: center; justify-content: center; overflow: hidden; min-width: 100px; min-height: 100px; } .bx-im-element-file-image-source { display: inline-block; } .bx-im-element-file-image-source-text { display: inline-block; width: 100%; max-height: 280px; } .bx-im-element-file-image-source.bx-lazyload-loading, .bx-im-element-file-image-source.bx-lazyload-hidden { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20fill-rule%3D%22nonzero%22%20d%3D%22M63.14%2032.0863H10.008v54.4566h55V32.0873H63.14v-.001zm-.132%2052.4754h-51V34.0665h51v50.4952z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20d%3D%22M60.008%2081.591v-2.97l-12-11.881-6%205.94-15-14.851-12%2011.881v11.881z%22/%3E%0A%20%20%20%20%3Cellipse%20cx%3D%2251.712%22%20cy%3D%2246.785%22%20fill%3D%22%23B9BEC4%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; background-position: center; background-size: inherit; } .bx-im-element-file-image-source.bx-lazyload-error { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7%2034.897l7.515%2053.474%2023.219-3.263-.676-34.282-6.84-19.191%202.611-.367L7%2034.897zM36.367%2083.28l-21.14%202.97L8.27%2036.739l21.139-2.97%206.227%2017.258.732%2032.255z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M37.529%2079.675l-.147-15.915-9.094-6.782-10.23%2013.435%201.654%2011.766z%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%20transform%3D%22rotate%285%20-359.005%20511.676%29%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M.316.001l3.638%2019.956L1%2054h24V.001H.316zM24%2052H2.353l1.601-16.033%201.621-16.01L2%202h22v50z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M20.008%2049.591v-2.97l-12-11.881L1.96%2049.591z%22/%3E%0A%20%20%20%20%20%20%3Cellipse%20cx%3D%2211.712%22%20cy%3D%2214.785%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; background-position: center; background-size: inherit; } .bx-im-element-file-image + .bx-im-message-content-body-without-text .bx-im-message-content-params { margin-top: -21px; }element/file/messenger.component.element.file.js000066400000006373147744271350016042 0ustar00import "./messenger.component.element.file.css"; /** * Bitrix Messenger * File element Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ BX.Vue.component('bx-messenger-element-file', { props: { userId: { default: 0 }, file: { type: Object, default: BX.Messenger.Model.Files.getFileBlank }, }, methods: { download(file, event) { if (file.image && file.urlShow) { window.open(file.urlShow, '_blank'); } else if (file.video && file.urlShow) { window.open(file.urlShow, '_blank'); } else if (file.urlDownload) { window.open(file.urlDownload, '_self'); } else { window.open(file.urlShow, '_blank'); } }, }, computed: { localize() { return BX.Vue.getFilteredPhrases('IM_MESSENGER_ELEMENT_FILE_', this.$root.$bitrixMessages); }, fileNameLeft() { let end = this.file.name.length - this.fileNameRight.length; return this.file.name.substring(0, end); }, fileNameRight() { let cutLength = this.file.extension.length+1; if (this.file.name.length > 30) { cutLength = cutLength+5; } let start = this.file.name.length-1 - cutLength; return this.file.name.substring(start); }, fileSize() { let size = this.file.size; let sizes = ["BYTE", "KB", "MB", "GB", "TB"]; let position = 0; while (size >= 1024 && position < 4) { size /= 1024; position++; } return Math.round(size) + " " + this.localize['IM_MESSENGER_ELEMENT_FILE_SIZE_'+sizes[position]]; } }, template: ` <div class="bx-im-element-file" @click="download(file, $event)"> <div class="bx-im-element-file-icon"> <div :class="['ui-icon', 'ui-icon-file-'+file.icon]"><i></i></div> </div> <div class="bx-im-element-file-block"> <div class="bx-im-element-file-name" :title="file.name"> <span class="bx-im-element-file-name-left">{{fileNameLeft}}</span><span class="bx-im-element-file-name-right">{{fileNameRight}}</span> </div> <div class="bx-im-element-file-size">{{fileSize}}</div> </div> </div> ` }); BX.Vue.cloneComponent('bx-messenger-element-file-image', 'bx-messenger-element-file', { methods: { getImageSize(width, height, maxWidth) { let aspectRatio; if (width > maxWidth) { aspectRatio = maxWidth / width; } else { aspectRatio = 1; } return { width: width * aspectRatio, height: height * aspectRatio }; } }, computed: { styleFileSizes() { let sizes = this.getImageSize(this.file.image.width, this.file.image.height, 280); return { width: sizes.width+'px', height: sizes.height+'px', backgroundSize: sizes.width < 100 || sizes.height < 100? 'contain': 'initial' } }, styleBoxSizes() { if (parseInt(this.styleFileSizes.height) <= 280) { return {}; } return { height: '280px' } }, fileSource() { return this.file.urlPreview; } }, template: ` <div class="bx-im-element-file-image" @click="download(file, $event)" :style="styleBoxSizes"> <img v-bx-lazyload class="bx-im-element-file-image-source" :data-lazyload-src="fileSource" :title="localize.IM_MESSENGER_ELEMENT_FILE_SHOW_TITLE.replace('#NAME#', file.name).replace('#SIZE#', fileSize)" :style="styleFileSizes" /> </div> ` });element/file/messenger.component.element.file.bundle.css.map000066400000012476147744271350020243 0ustar00{"version":3,"sources":["../messenger.component.element.file.css"],"names":[],"mappings":"AAAA;CACC,qBAAc;CAAd,qBAAc;CAAd,cAAc;CACd,sBAAkB;KAAlB,kBAAkB;CAClB,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB;AACD;CACC,gBAAgB;CAChB;AACD;CACC,cAAc;CACd;AACD;CACC,eAAe;CACf,cAAc;CACd;AACD;CACC,kBAAkB;CAClB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,qBAAc;CAAd,qBAAc;CAAd,cAAc;CACd,qBAAe;KAAf,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,qBAAc;CAAd,qBAAc;CAAd,cAAc;CACd,sBAAkB;KAAlB,kBAAkB;CAClB;AACD;CACC,oBAAoB;IACjB,2BAAwB;OAAxB,wBAAwB;IACxB,iBAAiB;CACpB;AACD;CACC,qBAAe;KAAf,eAAe;CACf;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;;CAEC,qBAAc;CAAd,qBAAc;CAAd,cAAc;CACd,gBAAgB;CAChB,0BAAoB;KAApB,uBAAoB;SAApB,oBAAoB;IACjB,yBAAwB;QAAxB,sBAAwB;YAAxB,wBAAwB;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;CACC,sBAAsB;CACtB;AACD;CACC,sBAAsB;CACtB,YAAY;CACZ,kBAAkB;CAClB;;AAED;;CAEC,04BAA04B;CAC14B,6BAA6B;CAC7B,4BAA4B;CAC5B,yBAAyB;CACzB;AACD;CACC,g3CAAg3C;CACh3C,6BAA6B;CAC7B,4BAA4B;CAC5B,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB","file":"im/install/js/messenger/component/element/file/messenger.component.element.file.bundle.css","sourcesContent":[".bx-im-element-file {\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n\toverflow: hidden;\n\tmargin-left: -4px;\n\tcursor: pointer;\n\tmin-width: 135px;\n}\n.bx-im-message-content-name + .bx-im-message-content-body .bx-im-element-file:first-child {\n\tmargin-top: 5px;\n}\n.bx-im-dialog-list-item + .bx-im-dialog-list-item .bx-im-element-file:first-child {\n\tmargin-top: 0;\n}\n.bx-im-element-file + .bx-im-message-content-body-with-text {\n\tdisplay: block;\n\tmargin-top:7px\n}\n.bx-im-element-file + .bx-im-message-content-body-without-text .bx-im-message-content-params {\n\tmargin-top: -21px;\n}\n\n.bx-im-element-file + .bx-im-element-file {\n\tmargin-top: 10px;\n}\n\n.bx-im-element-file-icon {\n\tdisplay: flex;\n\tflex-shrink: 0;\n\tpadding-right: 7px;\n}\n\n.bx-im-element-file-block {\n\toverflow: hidden;\n}\n\n.bx-im-element-file-name {\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n}\n.bx-im-element-file-name-left {\n\twhite-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.bx-im-element-file-name-right {\n\tflex-shrink: 0;\n}\n\n.bx-im-element-file-size {\n\tcolor: #717171;\n\tfont-size: 12px;\n}\n\n.bx-im-element-file-image\n{\n\tdisplay: flex;\n\tcursor: pointer;\n\talign-items: center;\n justify-content: center;\n\toverflow: hidden;\n\tmin-width: 100px;\n\tmin-height: 100px;\n}\n\n.bx-im-element-file-image-source {\n\tdisplay: inline-block;\n}\n.bx-im-element-file-image-source-text {\n\tdisplay: inline-block;\n\twidth: 100%;\n\tmax-height: 280px;\n}\n\n.bx-im-element-file-image-source.bx-lazyload-loading,\n.bx-im-element-file-image-source.bx-lazyload-hidden {\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20fill-rule%3D%22nonzero%22%20d%3D%22M63.14%2032.0863H10.008v54.4566h55V32.0873H63.14v-.001zm-.132%2052.4754h-51V34.0665h51v50.4952z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20d%3D%22M60.008%2081.591v-2.97l-12-11.881-6%205.94-15-14.851-12%2011.881v11.881z%22/%3E%0A%20%20%20%20%3Cellipse%20cx%3D%2251.712%22%20cy%3D%2246.785%22%20fill%3D%22%23B9BEC4%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n\tbackground-size: inherit;\n}\n.bx-im-element-file-image-source.bx-lazyload-error {\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7%2034.897l7.515%2053.474%2023.219-3.263-.676-34.282-6.84-19.191%202.611-.367L7%2034.897zM36.367%2083.28l-21.14%202.97L8.27%2036.739l21.139-2.97%206.227%2017.258.732%2032.255z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M37.529%2079.675l-.147-15.915-9.094-6.782-10.23%2013.435%201.654%2011.766z%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%20transform%3D%22rotate%285%20-359.005%20511.676%29%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M.316.001l3.638%2019.956L1%2054h24V.001H.316zM24%2052H2.353l1.601-16.033%201.621-16.01L2%202h22v50z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M20.008%2049.591v-2.97l-12-11.881L1.96%2049.591z%22/%3E%0A%20%20%20%20%20%20%3Cellipse%20cx%3D%2211.712%22%20cy%3D%2214.785%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n\tbackground-size: inherit;\n}\n\n.bx-im-element-file-image + .bx-im-message-content-body-without-text .bx-im-message-content-params {\n\tmargin-top: -21px;\n}"]}element/file/bundle.config.js000066400000000231147744271350012203 0ustar00module.exports = { input: './messenger.component.element.file.js', output: './messenger.component.element.file.bundle.js', namespaceFunction: null, };element/file/lang/ua/config.php000066400000000730147744271350012440 0ustar00<? $MESS["IM_MESSENGER_ELEMENT_FILE_DOWNLOAD_TITLE"] = "Скачати: #NAME# (#SIZE#)"; $MESS["IM_MESSENGER_ELEMENT_FILE_SHOW_TITLE"] = "Відкрити повну версію: #NAME# (#SIZE#)"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_BYTE"] = "байт"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_KB"] = "Кб"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_MB"] = "Мб"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_GB"] = "Гб"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_TB"] = "Тб"; ?>element/file/lang/en/config.php000066400000000657147744271350012445 0ustar00<? $MESS["IM_MESSENGER_ELEMENT_FILE_DOWNLOAD_TITLE"] = "Download: #NAME# (#SIZE#)"; $MESS["IM_MESSENGER_ELEMENT_FILE_SHOW_TITLE"] = "Open full version: #NAME# (#SIZE#)"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_BYTE"] = "byte"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_KB"] = "KB"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_MB"] = "MB"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_GB"] = "GB"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_TB"] = "TB"; ?>element/file/lang/ru/config.php000066400000000725147744271350012465 0ustar00<? $MESS["IM_MESSENGER_ELEMENT_FILE_DOWNLOAD_TITLE"] = "Скачать: #NAME# (#SIZE#)"; $MESS["IM_MESSENGER_ELEMENT_FILE_SHOW_TITLE"] = "Открыть полную версию: #NAME# (#SIZE#)"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_BYTE"] = "байт"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_KB"] = "Кб"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_MB"] = "Мб"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_GB"] = "Гб"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_TB"] = "Тб";element/file/lang/de/config.php000066400000000667147744271350012434 0ustar00<? $MESS["IM_MESSENGER_ELEMENT_FILE_DOWNLOAD_TITLE"] = "#NAME# (#SIZE#) herunterladen"; $MESS["IM_MESSENGER_ELEMENT_FILE_SHOW_TITLE"] = "Volle Version öffnen: #NAME# (#SIZE#)"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_BYTE"] = "Byte"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_KB"] = "KB"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_MB"] = "MB"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_GB"] = "GB"; $MESS["IM_MESSENGER_ELEMENT_FILE_SIZE_TB"] = "TB"; ?>element/file/messenger.component.element.file.bundle.min.js000066400000005177147744271350020075 0ustar00(function(e){"use strict";BX.Vue.component("bx-messenger-element-file",{props:{userId:{default:0},file:{type:Object,default:BX.Messenger.Model.Files.getFileBlank}},methods:{download:function e(t,i){if(t.image&&t.urlShow){window.open(t.urlShow,"_blank")}else if(t.video&&t.urlShow){window.open(t.urlShow,"_blank")}else if(t.urlDownload){window.open(t.urlDownload,"_self")}else{window.open(t.urlShow,"_blank")}}},computed:{localize:function e(){return BX.Vue.getFilteredPhrases("IM_MESSENGER_ELEMENT_FILE_",this.$root.$bitrixMessages)},fileNameLeft:function e(){var t=this.file.name.length-this.fileNameRight.length;return this.file.name.substring(0,t)},fileNameRight:function e(){var t=this.file.extension.length+1;if(this.file.name.length>30){t=t+5}var i=this.file.name.length-1-t;return this.file.name.substring(i)},fileSize:function e(){var t=this.file.size;var i=["BYTE","KB","MB","GB","TB"];var l=0;while(t>=1024&&l<4){t/=1024;l++}return Math.round(t)+" "+this.localize["IM_MESSENGER_ELEMENT_FILE_SIZE_"+i[l]]}},template:'\n\t\t<div class="bx-im-element-file" @click="download(file, $event)">\n\t\t\t<div class="bx-im-element-file-icon">\n\t\t\t\t<div :class="[\'ui-icon\', \'ui-icon-file-\'+file.icon]"><i></i></div>\n\t\t\t</div>\n\t\t\t<div class="bx-im-element-file-block">\n\t\t\t\t<div class="bx-im-element-file-name" :title="file.name">\n\t\t\t\t\t<span class="bx-im-element-file-name-left">{{fileNameLeft}}</span><span class="bx-im-element-file-name-right">{{fileNameRight}}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class="bx-im-element-file-size">{{fileSize}}</div>\n\t\t\t</div>\n\t\t</div>\n\t'});BX.Vue.cloneComponent("bx-messenger-element-file-image","bx-messenger-element-file",{methods:{getImageSize:function e(t,i,l){var n;if(t>l){n=l/t}else{n=1}return{width:t*n,height:i*n}}},computed:{styleFileSizes:function e(){var t=this.getImageSize(this.file.image.width,this.file.image.height,280);return{width:t.width+"px",height:t.height+"px",backgroundSize:t.width<100||t.height<100?"contain":"initial"}},styleBoxSizes:function e(){if(parseInt(this.styleFileSizes.height)<=280){return{}}return{height:"280px"}},fileSource:function e(){return this.file.urlPreview}},template:'\n\t\t<div class="bx-im-element-file-image" @click="download(file, $event)" :style="styleBoxSizes">\n\t\t\t<img v-bx-lazyload\n\t\t\t\tclass="bx-im-element-file-image-source"\n\t\t\t\t:data-lazyload-src="fileSource"\n\t\t\t\t:title="localize.IM_MESSENGER_ELEMENT_FILE_SHOW_TITLE.replace(\'#NAME#\', file.name).replace(\'#SIZE#\', fileSize)"\n\t\t\t\t:style="styleFileSizes"\n\t\t\t/>\n\t\t</div>\n\t'})})(this.window=this.window||{}); //# sourceMappingURL=messenger.component.element.file.bundle.map.jselement/file/messenger.component.element.file.min.css000066400000007525147744271350017000 0ustar00.bx-im-element-file{display:flex;flex-wrap:nowrap;overflow:hidden;margin-left:-4px;cursor:pointer;min-width:135px}.bx-im-message-content-name+.bx-im-message-content-body .bx-im-element-file:first-child{margin-top:5px}.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-element-file:first-child{margin-top:0}.bx-im-element-file+.bx-im-message-content-body-with-text{display:block;margin-top:7px}.bx-im-element-file+.bx-im-message-content-body-without-text .bx-im-message-content-params{margin-top:-21px}.bx-im-element-file+.bx-im-element-file{margin-top:10px}.bx-im-element-file-icon{display:flex;flex-shrink:0;padding-right:7px}.bx-im-element-file-block{overflow:hidden}.bx-im-element-file-name{display:flex;flex-wrap:nowrap}.bx-im-element-file-name-left{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bx-im-element-file-name-right{flex-shrink:0}.bx-im-element-file-size{color:#717171;font-size:12px}.bx-im-element-file-image{display:flex;cursor:pointer;align-items:center;justify-content:center;overflow:hidden;min-width:100px;min-height:100px}.bx-im-element-file-image-source{display:inline-block}.bx-im-element-file-image-source-text{display:inline-block;width:100%;max-height:280px}.bx-im-element-file-image-source.bx-lazyload-loading,.bx-im-element-file-image-source.bx-lazyload-hidden{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20fill-rule%3D%22nonzero%22%20d%3D%22M63.14%2032.0863H10.008v54.4566h55V32.0873H63.14v-.001zm-.132%2052.4754h-51V34.0665h51v50.4952z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20d%3D%22M60.008%2081.591v-2.97l-12-11.881-6%205.94-15-14.851-12%2011.881v11.881z%22/%3E%0A%20%20%20%20%3Cellipse%20cx%3D%2251.712%22%20cy%3D%2246.785%22%20fill%3D%22%23B9BEC4%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;background-position:center;background-size:inherit}.bx-im-element-file-image-source.bx-lazyload-error{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7%2034.897l7.515%2053.474%2023.219-3.263-.676-34.282-6.84-19.191%202.611-.367L7%2034.897zM36.367%2083.28l-21.14%202.97L8.27%2036.739l21.139-2.97%206.227%2017.258.732%2032.255z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M37.529%2079.675l-.147-15.915-9.094-6.782-10.23%2013.435%201.654%2011.766z%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%20transform%3D%22rotate%285%20-359.005%20511.676%29%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M.316.001l3.638%2019.956L1%2054h24V.001H.316zM24%2052H2.353l1.601-16.033%201.621-16.01L2%202h22v50z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M20.008%2049.591v-2.97l-12-11.881L1.96%2049.591z%22/%3E%0A%20%20%20%20%20%20%3Cellipse%20cx%3D%2211.712%22%20cy%3D%2214.785%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;background-position:center;background-size:inherit}.bx-im-element-file-image+.bx-im-message-content-body-without-text .bx-im-message-content-params{margin-top:-21px}element/file/messenger.component.element.file.bundle.css000066400000011124147744271350017454 0ustar00.bx-im-element-file { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: nowrap; flex-wrap: nowrap; overflow: hidden; margin-left: -4px; cursor: pointer; min-width: 135px; } .bx-im-message-content-name + .bx-im-message-content-body .bx-im-element-file:first-child { margin-top: 5px; } .bx-im-dialog-list-item + .bx-im-dialog-list-item .bx-im-element-file:first-child { margin-top: 0; } .bx-im-element-file + .bx-im-message-content-body-with-text { display: block; margin-top:7px } .bx-im-element-file + .bx-im-message-content-body-without-text .bx-im-message-content-params { margin-top: -21px; } .bx-im-element-file + .bx-im-element-file { margin-top: 10px; } .bx-im-element-file-icon { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-negative: 0; flex-shrink: 0; padding-right: 7px; } .bx-im-element-file-block { overflow: hidden; } .bx-im-element-file-name { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: nowrap; flex-wrap: nowrap; } .bx-im-element-file-name-left { white-space: nowrap; -o-text-overflow: ellipsis; text-overflow: ellipsis; overflow: hidden; } .bx-im-element-file-name-right { -ms-flex-negative: 0; flex-shrink: 0; } .bx-im-element-file-size { color: #717171; font-size: 12px; } .bx-im-element-file-image { display: -webkit-box; display: -ms-flexbox; display: flex; cursor: pointer; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; overflow: hidden; min-width: 100px; min-height: 100px; } .bx-im-element-file-image-source { display: inline-block; } .bx-im-element-file-image-source-text { display: inline-block; width: 100%; max-height: 280px; } .bx-im-element-file-image-source.bx-lazyload-loading, .bx-im-element-file-image-source.bx-lazyload-hidden { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20fill-rule%3D%22nonzero%22%20d%3D%22M63.14%2032.0863H10.008v54.4566h55V32.0873H63.14v-.001zm-.132%2052.4754h-51V34.0665h51v50.4952z%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23B9BEC4%22%20d%3D%22M60.008%2081.591v-2.97l-12-11.881-6%205.94-15-14.851-12%2011.881v11.881z%22/%3E%0A%20%20%20%20%3Cellipse%20cx%3D%2251.712%22%20cy%3D%2246.785%22%20fill%3D%22%23B9BEC4%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; background-position: center; background-size: inherit; } .bx-im-element-file-image-source.bx-lazyload-error { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2275%22%20height%3D%2298%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23E5E8EB%22%20d%3D%22M0%200h54l21%2022.227V98H0z%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M7%2034.897l7.515%2053.474%2023.219-3.263-.676-34.282-6.84-19.191%202.611-.367L7%2034.897zM36.367%2083.28l-21.14%202.97L8.27%2036.739l21.139-2.97%206.227%2017.258.732%2032.255z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M37.529%2079.675l-.147-15.915-9.094-6.782-10.23%2013.435%201.654%2011.766z%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23535C69%22%20d%3D%22M54%200l21%2022.227H54z%22%20opacity%3D%22.3%22/%3E%0A%20%20%20%20%3Cg%20fill%3D%22%23B9BEC4%22%20transform%3D%22rotate%285%20-359.005%20511.676%29%22%3E%0A%20%20%20%20%20%20%3Cpath%20fill-rule%3D%22nonzero%22%20d%3D%22M.316.001l3.638%2019.956L1%2054h24V.001H.316zM24%2052H2.353l1.601-16.033%201.621-16.01L2%202h22v50z%22/%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M20.008%2049.591v-2.97l-12-11.881L1.96%2049.591z%22/%3E%0A%20%20%20%20%20%20%3Cellipse%20cx%3D%2211.712%22%20cy%3D%2214.785%22%20rx%3D%225.231%22%20ry%3D%225.172%22/%3E%0A%20%20%20%20%3C/g%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; background-position: center; background-size: inherit; } .bx-im-element-file-image + .bx-im-message-content-body-without-text .bx-im-message-content-params { margin-top: -21px; } /*# sourceMappingURL=messenger.component.element.file.bundle.css.map */element/file/messenger.component.element.file.bundle.map.js000066400000004437147744271350020065 0ustar00{"version":3,"sources":["messenger.component.element.file.bundle.js"],"names":["exports","BX","Vue","component","props","userId","default","file","type","Object","Messenger","Model","Files","getFileBlank","methods","download","event","image","urlShow","window","open","video","urlDownload","computed","localize","getFilteredPhrases","this","$root","$bitrixMessages","fileNameLeft","end","name","length","fileNameRight","substring","cutLength","extension","start","fileSize","size","sizes","position","Math","round","template","cloneComponent","getImageSize","width","height","maxWidth","aspectRatio","styleFileSizes","backgroundSize","styleBoxSizes","parseInt","fileSource","urlPreview"],"mappings":"CAAC,SAAUA,GACV,aAWAC,GAAGC,IAAIC,UAAU,6BACfC,OACEC,QACEC,QAAS,GAEXC,MACEC,KAAMC,OACNH,QAASL,GAAGS,UAAUC,MAAMC,MAAMC,eAGtCC,SACEC,SAAU,SAASA,EAASR,EAAMS,GAChC,GAAIT,EAAKU,OAASV,EAAKW,QAAS,CAC9BC,OAAOC,KAAKb,EAAKW,QAAS,eACrB,GAAIX,EAAKc,OAASd,EAAKW,QAAS,CACrCC,OAAOC,KAAKb,EAAKW,QAAS,eACrB,GAAIX,EAAKe,YAAa,CAC3BH,OAAOC,KAAKb,EAAKe,YAAa,aACzB,CACLH,OAAOC,KAAKb,EAAKW,QAAS,aAIhCK,UACEC,SAAU,SAASA,IACjB,OAAOvB,GAAGC,IAAIuB,mBAAmB,6BAA8BC,KAAKC,MAAMC,kBAE5EC,aAAc,SAASA,IACrB,IAAIC,EAAMJ,KAAKnB,KAAKwB,KAAKC,OAASN,KAAKO,cAAcD,OACrD,OAAON,KAAKnB,KAAKwB,KAAKG,UAAU,EAAGJ,IAErCG,cAAe,SAASA,IACtB,IAAIE,EAAYT,KAAKnB,KAAK6B,UAAUJ,OAAS,EAE7C,GAAIN,KAAKnB,KAAKwB,KAAKC,OAAS,GAAI,CAC9BG,EAAYA,EAAY,EAG1B,IAAIE,EAAQX,KAAKnB,KAAKwB,KAAKC,OAAS,EAAIG,EACxC,OAAOT,KAAKnB,KAAKwB,KAAKG,UAAUG,IAElCC,SAAU,SAASA,IACjB,IAAIC,EAAOb,KAAKnB,KAAKgC,KACrB,IAAIC,GAAS,OAAQ,KAAM,KAAM,KAAM,MACvC,IAAIC,EAAW,EAEf,MAAOF,GAAQ,MAAQE,EAAW,EAAG,CACnCF,GAAQ,KACRE,IAGF,OAAOC,KAAKC,MAAMJ,GAAQ,IAAMb,KAAKF,SAAS,kCAAoCgB,EAAMC,MAG5FG,SAAU,ukBAEZ3C,GAAGC,IAAI2C,eAAe,kCAAmC,6BACvD/B,SACEgC,aAAc,SAASA,EAAaC,EAAOC,EAAQC,GACjD,IAAIC,EAEJ,GAAIH,EAAQE,EAAU,CACpBC,EAAcD,EAAWF,MACpB,CACLG,EAAc,EAGhB,OACEH,MAAOA,EAAQG,EACfF,OAAQA,EAASE,KAIvB3B,UACE4B,eAAgB,SAASA,IACvB,IAAIX,EAAQd,KAAKoB,aAAapB,KAAKnB,KAAKU,MAAM8B,MAAOrB,KAAKnB,KAAKU,MAAM+B,OAAQ,KAC7E,OACED,MAAOP,EAAMO,MAAQ,KACrBC,OAAQR,EAAMQ,OAAS,KACvBI,eAAgBZ,EAAMO,MAAQ,KAAOP,EAAMQ,OAAS,IAAM,UAAY,YAG1EK,cAAe,SAASA,IACtB,GAAIC,SAAS5B,KAAKyB,eAAeH,SAAW,IAAK,CAC/C,SAGF,OACEA,OAAQ,UAGZO,WAAY,SAASA,IACnB,OAAO7B,KAAKnB,KAAKiD,aAGrBZ,SAAU,qZA3Gb,CA8GGlB,KAAKP,OAASO,KAAKP","file":"messenger.component.element.file.bundle.map.js"}element/file/bundle.config.min.js000066400000000266147744271350012775 0ustar00module.exports={input:"./messenger.component.element.file.js",output:"./messenger.component.element.file.bundle.js",namespaceFunction:null}; //# sourceMappingURL=bundle.config.map.jselement/file/bundle.config.map.js000066400000000312147744271350012757 0ustar00{"version":3,"sources":["bundle.config.js"],"names":["module","exports","input","output","namespaceFunction"],"mappings":"AAAAA,OAAOC,SACNC,MAAO,wCACPC,OAAQ,+CACRC,kBAAmB","file":"bundle.config.map.js"}element/file/messenger.component.element.file.bundle.js000066400000007660147744271350017312 0ustar00(function (exports) { 'use strict'; /** * Bitrix Messenger * File element Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ BX.Vue.component('bx-messenger-element-file', { props: { userId: { default: 0 }, file: { type: Object, default: BX.Messenger.Model.Files.getFileBlank } }, methods: { download: function download(file, event) { if (file.image && file.urlShow) { window.open(file.urlShow, '_blank'); } else if (file.video && file.urlShow) { window.open(file.urlShow, '_blank'); } else if (file.urlDownload) { window.open(file.urlDownload, '_self'); } else { window.open(file.urlShow, '_blank'); } } }, computed: { localize: function localize() { return BX.Vue.getFilteredPhrases('IM_MESSENGER_ELEMENT_FILE_', this.$root.$bitrixMessages); }, fileNameLeft: function fileNameLeft() { var end = this.file.name.length - this.fileNameRight.length; return this.file.name.substring(0, end); }, fileNameRight: function fileNameRight() { var cutLength = this.file.extension.length + 1; if (this.file.name.length > 30) { cutLength = cutLength + 5; } var start = this.file.name.length - 1 - cutLength; return this.file.name.substring(start); }, fileSize: function fileSize() { var size = this.file.size; var sizes = ["BYTE", "KB", "MB", "GB", "TB"]; var position = 0; while (size >= 1024 && position < 4) { size /= 1024; position++; } return Math.round(size) + " " + this.localize['IM_MESSENGER_ELEMENT_FILE_SIZE_' + sizes[position]]; } }, template: "\n\t\t<div class=\"bx-im-element-file\" @click=\"download(file, $event)\">\n\t\t\t<div class=\"bx-im-element-file-icon\">\n\t\t\t\t<div :class=\"['ui-icon', 'ui-icon-file-'+file.icon]\"><i></i></div>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-element-file-block\">\n\t\t\t\t<div class=\"bx-im-element-file-name\" :title=\"file.name\">\n\t\t\t\t\t<span class=\"bx-im-element-file-name-left\">{{fileNameLeft}}</span><span class=\"bx-im-element-file-name-right\">{{fileNameRight}}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-element-file-size\">{{fileSize}}</div>\n\t\t\t</div>\n\t\t</div>\n\t" }); BX.Vue.cloneComponent('bx-messenger-element-file-image', 'bx-messenger-element-file', { methods: { getImageSize: function getImageSize(width, height, maxWidth) { var aspectRatio; if (width > maxWidth) { aspectRatio = maxWidth / width; } else { aspectRatio = 1; } return { width: width * aspectRatio, height: height * aspectRatio }; } }, computed: { styleFileSizes: function styleFileSizes() { var sizes = this.getImageSize(this.file.image.width, this.file.image.height, 280); return { width: sizes.width + 'px', height: sizes.height + 'px', backgroundSize: sizes.width < 100 || sizes.height < 100 ? 'contain' : 'initial' }; }, styleBoxSizes: function styleBoxSizes() { if (parseInt(this.styleFileSizes.height) <= 280) { return {}; } return { height: '280px' }; }, fileSource: function fileSource() { return this.file.urlPreview; } }, template: "\n\t\t<div class=\"bx-im-element-file-image\" @click=\"download(file, $event)\" :style=\"styleBoxSizes\">\n\t\t\t<img v-bx-lazyload\n\t\t\t\tclass=\"bx-im-element-file-image-source\"\n\t\t\t\t:data-lazyload-src=\"fileSource\"\n\t\t\t\t:title=\"localize.IM_MESSENGER_ELEMENT_FILE_SHOW_TITLE.replace('#NAME#', file.name).replace('#SIZE#', fileSize)\"\n\t\t\t\t:style=\"styleFileSizes\"\n\t\t\t/>\n\t\t</div>\n\t" }); }((this.window = this.window || {}))); //# sourceMappingURL=messenger.component.element.file.bundle.js.map element/file/messenger.component.element.file.bundle.js.map000066400000016735147744271350020071 0ustar00{"version":3,"file":"messenger.component.element.file.bundle.js","sources":["messenger.component.element.file.js"],"sourcesContent":["import \"./messenger.component.element.file.css\";\n\n/**\n * Bitrix Messenger\n * File element Vue component\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2019 Bitrix\n */\n\nBX.Vue.component('bx-messenger-element-file',\n{\n\tprops:\n\t{\n\t\tuserId: { default: 0 },\n\t\tfile: {\n\t\t\ttype: Object,\n\t\t\tdefault: BX.Messenger.Model.Files.getFileBlank\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tdownload(file, event)\n\t\t{\n\t\t\tif (file.image && file.urlShow)\n\t\t\t{\n\t\t\t\twindow.open(file.urlShow, '_blank');\n\t\t\t}\n\t\t\telse if (file.video && file.urlShow)\n\t\t\t{\n\t\t\t\twindow.open(file.urlShow, '_blank');\n\t\t\t}\n\t\t\telse if (file.urlDownload)\n\t\t\t{\n\t\t\t\twindow.open(file.urlDownload, '_self');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\twindow.open(file.urlShow, '_blank');\n\t\t\t}\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tlocalize()\n\t\t{\n\t\t\treturn BX.Vue.getFilteredPhrases('IM_MESSENGER_ELEMENT_FILE_', this.$root.$bitrixMessages);\n\t\t},\n\t\tfileNameLeft()\n\t\t{\n\t\t\tlet end = this.file.name.length - this.fileNameRight.length;\n\n\t\t\treturn this.file.name.substring(0, end);\n\t\t},\n\t\tfileNameRight()\n\t\t{\n\t\t\tlet cutLength = this.file.extension.length+1;\n\t\t\tif (this.file.name.length > 30)\n\t\t\t{\n\t\t\t\tcutLength = cutLength+5;\n\t\t\t}\n\n\t\t\tlet start = this.file.name.length-1 - cutLength;\n\n\t\t\treturn this.file.name.substring(start);\n\t\t},\n\t\tfileSize()\n\t\t{\n\t\t\tlet size = this.file.size;\n\n\t\t\tlet sizes = [\"BYTE\", \"KB\", \"MB\", \"GB\", \"TB\"];\n\t\t\tlet position = 0;\n\n\t\t\twhile (size >= 1024 && position < 4)\n\t\t\t{\n\t\t\t\tsize /= 1024;\n\t\t\t\tposition++;\n\t\t\t}\n\n\t\t\treturn Math.round(size) + \" \" + this.localize['IM_MESSENGER_ELEMENT_FILE_SIZE_'+sizes[position]];\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-element-file\" @click=\"download(file, $event)\">\n\t\t\t<div class=\"bx-im-element-file-icon\">\n\t\t\t\t<div :class=\"['ui-icon', 'ui-icon-file-'+file.icon]\"><i></i></div>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-element-file-block\">\n\t\t\t\t<div class=\"bx-im-element-file-name\" :title=\"file.name\">\n\t\t\t\t\t<span class=\"bx-im-element-file-name-left\">{{fileNameLeft}}</span><span class=\"bx-im-element-file-name-right\">{{fileNameRight}}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-element-file-size\">{{fileSize}}</div>\n\t\t\t</div>\n\t\t</div>\n\t`\n});\n\nBX.Vue.cloneComponent('bx-messenger-element-file-image', 'bx-messenger-element-file',\n{\n\tmethods:\n\t{\n\t\tgetImageSize(width, height, maxWidth)\n\t\t{\n\t\t\tlet aspectRatio;\n\n\t\t\tif (width > maxWidth)\n\t\t\t{\n\t\t\t\taspectRatio = maxWidth / width;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\taspectRatio = 1;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\twidth: width * aspectRatio,\n\t\t\t\theight: height * aspectRatio\n\t\t\t};\n\t\t}\n\t},\n\tcomputed:\n\t{\n\t\tstyleFileSizes()\n\t\t{\n\t\t\tlet sizes = this.getImageSize(this.file.image.width, this.file.image.height, 280);\n\n\t\t\treturn {\n\t\t\t\twidth: sizes.width+'px',\n\t\t\t\theight: sizes.height+'px',\n\t\t\t\tbackgroundSize: sizes.width < 100 || sizes.height < 100? 'contain': 'initial'\n\t\t\t}\n\t\t},\n\t\tstyleBoxSizes()\n\t\t{\n\t\t\tif (parseInt(this.styleFileSizes.height) <= 280)\n\t\t\t{\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\theight: '280px'\n\t\t\t}\n\t\t},\n\t\tfileSource()\n\t\t{\n\t\t\treturn this.file.urlPreview;\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-element-file-image\" @click=\"download(file, $event)\" :style=\"styleBoxSizes\">\n\t\t\t<img v-bx-lazyload\n\t\t\t\tclass=\"bx-im-element-file-image-source\"\n\t\t\t\t:data-lazyload-src=\"fileSource\"\n\t\t\t\t:title=\"localize.IM_MESSENGER_ELEMENT_FILE_SHOW_TITLE.replace('#NAME#', file.name).replace('#SIZE#', fileSize)\"\n\t\t\t\t:style=\"styleFileSizes\"\n\t\t\t/>\n\t\t</div>\n\t`\n});"],"names":["BX","Vue","component","props","userId","default","file","type","Object","Messenger","Model","Files","getFileBlank","methods","download","event","image","urlShow","window","open","video","urlDownload","computed","localize","getFilteredPhrases","$root","$bitrixMessages","fileNameLeft","end","name","length","fileNameRight","substring","cutLength","extension","start","fileSize","size","sizes","position","Math","round","template","cloneComponent","getImageSize","width","height","maxWidth","aspectRatio","styleFileSizes","backgroundSize","styleBoxSizes","parseInt","fileSource","urlPreview"],"mappings":"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"}message/messenger.component.message.bundle.min.css000066400000016430147744271350016374 0ustar00.bx-im-message{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin:10px 0}.bx-im-message.bx-im-message-type-self{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;margin-right:15px;margin-left:0}.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message{margin-top:-5px}.bx-im-message-without-avatar{margin-left:15px}.bx-im-message-without-menu{margin-right:15px}.bx-im-message-without-menu.bx-im-message-type-opponent{margin-right:30px}.bx-im-message-avatar{-ms-flex-negative:0;flex-shrink:0;width:65px;height:52px;text-align:center}.bx-im-message-avatar-image{width:40px;height:40px;border-radius:50%;background-size:cover;margin:15px auto 0;cursor:pointer}.bx-im-message-avatar-image-source{width:40px;height:40px;border-radius:50%}.bx-im-message-avatar-image-default{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20100%22%3E%0A%20%20%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M72.7857%2062.254c0-2.311-3.029-4.951-9-6.489a20.3%2020.3%200%200%201-5.7-2.584c-.383-.218-.325-2.236-.325-2.236l-1.922-.292c0-.164-.164-2.584-.164-2.584%202.3-.77%202.063-5.314%202.063-5.314%201.46.807%202.411-2.784%202.411-2.784%201.728-4.994-.86-4.693-.86-4.693.822-3.738%200-9.2001%200-9.2001-1.15-10.116-18.47-7.37-16.417-4.065-5.062-.934-3.907%2010.551-3.907%2010.551l1.1%202.969c-2.156%201.392-.658%203.079-.585%205.02.106%202.865%201.861%202.272%201.861%202.272.109%204.7281%202.446%205.3501%202.446%205.3501.44%202.969.166%202.464.166%202.464l-2.082.25a8.2231%208.2231%200%200%201-.164%202.013c-2.449%201.093-2.971%201.727-5.406%202.793-4.7%202.053-9.808%204.723-10.715%208.3171-.907%203.594-2.585%2011.983-2.585%2011.983h53l-3.215-13.741z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat}.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-avatar-image{display:none}.bx-im-message-box{overflow:hidden}.bx-im-message-command{border-bottom:1px dashed #2067b0;cursor:pointer;color:#2067b0;display:inline-block}.bx-im-message-command-data{display:none}.bx-im-message-box-status{-ms-flex-negative:0;flex-shrink:0;width:33px;height:52px;position:relative}.bx-im-message-sending{display:inline-block;width:21px;height:21px;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII=');background-repeat:no-repeat;-webkit-animation:bx-im-message-sending .8s linear infinite;animation:bx-im-message-sending .8s linear infinite;margin-top:15px;margin-left:7px;opacity:1;position:absolute}@-webkit-keyframes bx-im-message-sending{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes bx-im-message-sending{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.bx-im-message-sending-enter-active{-webkit-animation:bx-im-message-sending-show 10s linear;animation:bx-im-message-sending-show 10s linear}.bx-im-message-sending-leave-active{opacity:0}@-webkit-keyframes bx-im-message-sending-show{0%{opacity:0}92%{opacity:0;-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{opacity:1;-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes bx-im-message-sending-show{0%{opacity:0}92%{opacity:0;-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{opacity:1;-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.bx-im-message-status-retry{width:33px;height:52px;text-align:center;position:absolute}.bx-im-message-retry-icon{display:inline-block;width:19px;height:19px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm5.5291-9.9206V4.77l-1.2384%201.2388c-1.0083-1.2414-2.5432-2.037-4.2676-2.037-3.0412%200-5.5064%202.4653-5.5064%205.5065s2.4652%205.506%205.5064%205.506c1.2971%200%202.487-.4515%203.4282-1.2017l-1.3953-1.7122c-.5604.44-1.2653.705-2.033.705-1.8208%200-3.297-1.4762-3.297-3.297%200-1.821%201.4762-3.2975%203.297-3.2975%201.1142%200%202.0986.5538%202.6951%201.4l-1.4983%201.4984h4.3093z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;opacity:.8;-webkit-transition:opacity .1s ease-out;-o-transition:opacity .1s ease-out;transition:opacity .1s ease-out;cursor:pointer;margin-top:16px}.bx-im-message-retry-icon:hover .bx-im-message-retry-icon:hover{opacity:1}.bx-im-message-status-retry-enter-active{-webkit-transition:opacity .1s ease-out;-o-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.bx-im-message-status-retry-enter{opacity:0}.bx-im-message-status-retry-leave-active{-webkit-animation:bx-im-message-status-retry .2s linear;animation:bx-im-message-status-retry .2s linear}@-webkit-keyframes bx-im-message-status-retry{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}90%{opacity:1}100%{opacity:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes bx-im-message-status-retry{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}90%{opacity:1}100%{opacity:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}}.bx-im-message-status-menu{width:33px;height:52px}.bx-im-message-menu{-ms-flex-negative:0;flex-shrink:0;width:33px;height:52px;text-align:center}.bx-im-message-menu-icon{display:inline-block;width:19px;height:19px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm0-8.6806L5.6053%206.4247%203.658%208.372%209.5%2014.214l5.842-5.842-1.9473-1.9473L9.5%2010.3194z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;opacity:0;-webkit-transition:opacity .05s ease-out;-o-transition:opacity .05s ease-out;transition:opacity .05s ease-out;cursor:pointer;margin-top:16px}.bx-im-message:hover .bx-im-message-menu-icon{opacity:.5;-webkit-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.bx-im-message:hover .bx-im-message-menu-icon:hover{opacity:1}message/messenger.component.message.js000066400000013323147744271350014164 0ustar00import "./messenger.component.message.css"; /** * Bitrix Messenger * Message Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ const MessageType = Object.freeze({ self: 'self', opponent: 'opponent', system: 'system', }); const MessengerStore = Object.freeze({ messages: BX.Messenger.Model.Messages.getName(), dialogues: BX.Messenger.Model.Dialogues.getName(), users: BX.Messenger.Model.Users.getName(), files: BX.Messenger.Model.Files.getName(), }); BX.Vue.component('bx-messenger-message', { /** * @emits 'clickByUserName' {user: object, event: MouseEvent} * @emits 'clickByMessageMenu' {message: object, event: MouseEvent} * @emits 'clickByMessageRetry' {message: object, event: MouseEvent} */ props: { userId: { default: 0 }, dialogId: { default: 0 }, chatId: { default: 0 }, enableEmotions: { default: true }, enableDateActions: { default: true }, enableCreateContent: { default: true }, showAvatar: { default: true }, showMenu: { default: true }, showName: { default: true }, referenceContentClassName: { default: ''}, referenceContentBodyClassName: { default: ''}, message: { type: Object, default: BX.Messenger.Model.Messages.getMessageBlank }, }, data() { return { componentBodyId: 'bx-messenger-message-body' } }, methods: { clickByUserName(event) { this.$emit('clickByUserName', event) }, clickByMessageMenu(message, event) { this.$emit('clickByMessageMenu', {message, event}) }, clickByMessageRetry(message, event) { this.$emit('clickByMessageRetry', {message, event}) }, }, computed: { MessageType: () => MessageType, type() { if (this.message.system || this.message.authorId == 0) { return MessageType.system; } else if (this.message.authorId === -1 || this.message.authorId == this.userId) { return MessageType.self; } else { return MessageType.opponent; } }, localize() { let localize = BX.Vue.getFilteredPhrases('IM_MESSENGER_MESSAGE_', this.$root.$bitrixMessages); return Object.freeze( Object.assign({}, localize, { 'IM_MESSENGER_MESSAGE_MENU_TITLE': localize.IM_MESSENGER_MESSAGE_MENU_TITLE.replace('#SHORTCUT#', BX.Messenger.Utils.platform.isMac()? 'CMD':'CTRL') }) ); }, userData() { let result; if (typeof this.$store.state[MessengerStore.users].collection[this.message.authorId] !== 'undefined') { result = this.$store.state[MessengerStore.users].collection[this.message.authorId]; } else { result = BX.Messenger.Model.Users.getUserBlank({defaultName: this.localize.IM_MESSENGER_MESSAGE_USER_ANONYM}) } return result; }, filesData() { let result; if (typeof this.$store.state[MessengerStore.files].index[this.chatId] !== 'undefined') { result = this.$store.state[MessengerStore.files].index[this.chatId]; } else { result = {} } return result; }, isEdited() { return this.message.params.IS_EDITED == 'Y'; }, isDeleted() { return this.message.params.IS_DELETED == 'Y'; } }, template: ` <div :class="['bx-im-message', { 'bx-im-message-without-menu': !showMenu, 'bx-im-message-without-avatar': !showAvatar, 'bx-im-message-type-system': type == MessageType.system, 'bx-im-message-type-self': type == MessageType.self, 'bx-im-message-type-opponent': type == MessageType.opponent, 'bx-im-message-status-error': message.error, 'bx-im-message-status-unread': message.unread, 'bx-im-message-status-blink': message.blink, 'bx-im-message-status-edited': isEdited, 'bx-im-message-status-deleted': isDeleted, }]"> <template v-if="type == MessageType.opponent"> <div v-if="showAvatar" class="bx-im-message-avatar" @click="clickByUserName(userData, $event)"> <div :class="['bx-im-message-avatar-image', { 'bx-im-message-avatar-image-default': !userData.avatar }]" :style="{ backgroundColor: !userData.avatar? userData.color: '', backgroundImage: userData.avatar? 'url('+userData.avatar+')': '' }" :title="userData.name" ></div> </div> </template> <div class="bx-im-message-box"> <component :is="componentBodyId" :userId="userId" :dialogId="dialogId" :chatId="chatId" :messageType="type" :message="message" :user="userData" :files="filesData" :showAvatar="showAvatar" :showName="showName" :enableEmotions="enableEmotions" :referenceContentBodyClassName="referenceContentBodyClassName" @clickByUserName="clickByUserName" /> </div> <template v-if="type == MessageType.self"> <div class="bx-im-message-box-status"> <transition name="bx-im-message-sending"> <template v-if="message.sending"> <div class="bx-im-message-sending"></div> </template> </transition> <transition name="bx-im-message-status-retry"> <template v-if="!message.sending && message.error"> <div class="bx-im-message-status-retry" :title="localize.IM_MESSENGER_MESSAGE_RETRY_TITLE" @click="clickByMessageRetry(message, $event)"> <span class="bx-im-message-retry-icon"></span> </div> </template> </transition> <template v-if="showMenu && !message.sending && !message.error"> <div class="bx-im-message-status-menu" :title="localize.IM_MESSENGER_MESSAGE_MENU_TITLE" @click="clickByMessageMenu(message, $event)"> <span class="bx-im-message-menu-icon"></span> </div> </template> </div> </template> <template v-else-if="showMenu"> <div class="bx-im-message-menu" :title="localize.IM_MESSENGER_MESSAGE_MENU_TITLE" @click="clickByMessageMenu(message, $event)"> <span class="bx-im-message-menu-icon"></span> </div> </template> </div> ` });message/messenger.component.message.min.css000066400000015205147744271350015123 0ustar00.bx-im-message{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;margin:10px 0}.bx-im-message.bx-im-message-type-self{flex-direction:row-reverse;margin-right:15px;margin-left:0}.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message{margin-top:-5px}.bx-im-message-without-avatar{margin-left:15px}.bx-im-message-without-menu{margin-right:15px}.bx-im-message-without-menu.bx-im-message-type-opponent{margin-right:30px}.bx-im-message-avatar{flex-shrink:0;width:65px;height:52px;text-align:center}.bx-im-message-avatar-image{width:40px;height:40px;border-radius:50%;background-size:cover;margin:15px auto 0;cursor:pointer}.bx-im-message-avatar-image-source{width:40px;height:40px;border-radius:50%}.bx-im-message-avatar-image-default{background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20100%22%3E%0A%20%20%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M72.7857%2062.254c0-2.311-3.029-4.951-9-6.489a20.3%2020.3%200%200%201-5.7-2.584c-.383-.218-.325-2.236-.325-2.236l-1.922-.292c0-.164-.164-2.584-.164-2.584%202.3-.77%202.063-5.314%202.063-5.314%201.46.807%202.411-2.784%202.411-2.784%201.728-4.994-.86-4.693-.86-4.693.822-3.738%200-9.2001%200-9.2001-1.15-10.116-18.47-7.37-16.417-4.065-5.062-.934-3.907%2010.551-3.907%2010.551l1.1%202.969c-2.156%201.392-.658%203.079-.585%205.02.106%202.865%201.861%202.272%201.861%202.272.109%204.7281%202.446%205.3501%202.446%205.3501.44%202.969.166%202.464.166%202.464l-2.082.25a8.2231%208.2231%200%200%201-.164%202.013c-2.449%201.093-2.971%201.727-5.406%202.793-4.7%202.053-9.808%204.723-10.715%208.3171-.907%203.594-2.585%2011.983-2.585%2011.983h53l-3.215-13.741z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat}.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-avatar-image{display:none}.bx-im-message-box{overflow:hidden}.bx-im-message-command{border-bottom:1px dashed #2067b0;cursor:pointer;color:#2067b0;display:inline-block}.bx-im-message-command-data{display:none}.bx-im-message-box-status{flex-shrink:0;width:33px;height:52px;position:relative}.bx-im-message-sending{display:inline-block;width:21px;height:21px;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII=');background-repeat:no-repeat;-webkit-animation:bx-im-message-sending .8s linear infinite;animation:bx-im-message-sending .8s linear infinite;margin-top:15px;margin-left:7px;opacity:1;position:absolute}@-webkit-keyframes bx-im-message-sending{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes bx-im-message-sending{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}.bx-im-message-sending-enter-active{-webkit-animation:bx-im-message-sending-show 10s linear;animation:bx-im-message-sending-show 10s linear}.bx-im-message-sending-leave-active{opacity:0}@-webkit-keyframes bx-im-message-sending-show{0%{opacity:0}92%{opacity:0;-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{opacity:1;-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes bx-im-message-sending-show{0%{opacity:0}92%{opacity:0;-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{opacity:1;-moz-transform:rotate(360deg);transform:rotate(360deg)}}.bx-im-message-status-retry{width:33px;height:52px;text-align:center;position:absolute}.bx-im-message-retry-icon{display:inline-block;width:19px;height:19px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm5.5291-9.9206V4.77l-1.2384%201.2388c-1.0083-1.2414-2.5432-2.037-4.2676-2.037-3.0412%200-5.5064%202.4653-5.5064%205.5065s2.4652%205.506%205.5064%205.506c1.2971%200%202.487-.4515%203.4282-1.2017l-1.3953-1.7122c-.5604.44-1.2653.705-2.033.705-1.8208%200-3.297-1.4762-3.297-3.297%200-1.821%201.4762-3.2975%203.297-3.2975%201.1142%200%202.0986.5538%202.6951%201.4l-1.4983%201.4984h4.3093z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;opacity:.8;transition:opacity .1s ease-out;cursor:pointer;margin-top:16px}.bx-im-message-retry-icon:hover .bx-im-message-retry-icon:hover{opacity:1}.bx-im-message-status-retry-enter-active{transition:opacity .1s ease-out}.bx-im-message-status-retry-enter{opacity:0}.bx-im-message-status-retry-leave-active{-webkit-animation:bx-im-message-status-retry .2s linear;animation:bx-im-message-status-retry .2s linear}@-webkit-keyframes bx-im-message-status-retry{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}90%{opacity:1}100%{opacity:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes bx-im-message-status-retry{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}90%{opacity:1}100%{opacity:0;-moz-transform:rotate(180deg);transform:rotate(180deg)}}.bx-im-message-status-menu{width:33px;height:52px}.bx-im-message-menu{flex-shrink:0;width:33px;height:52px;text-align:center}.bx-im-message-menu-icon{display:inline-block;width:19px;height:19px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm0-8.6806L5.6053%206.4247%203.658%208.372%209.5%2014.214l5.842-5.842-1.9473-1.9473L9.5%2010.3194z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;opacity:0;transition:opacity .05s ease-out;cursor:pointer;margin-top:16px}.bx-im-message:hover .bx-im-message-menu-icon{opacity:.5;transition:opacity .2s ease-out}.bx-im-message:hover .bx-im-message-menu-icon:hover{opacity:1}message/config.php000066400000001027147744271350010166 0ustar00<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } return [ 'js' => [ '/bitrix/js/messenger/component/message/messenger.component.message.bundle.js', ], 'css' => [ '/bitrix/js/messenger/component/message/messenger.component.message.bundle.css', ], 'rel' => [ 'main.polyfill.complex', 'ui.vue', 'ui.vue.vuex', 'messenger.component.message.body', 'messenger.model.dialogues', 'messenger.model.messages', 'messenger.model.users', 'messenger.model.files', ], 'skip_core' => true, ];message/messenger.component.message.bundle.js.map000066400000026356147744271350016222 0ustar00{"version":3,"file":"messenger.component.message.bundle.js","sources":["messenger.component.message.js"],"sourcesContent":["import \"./messenger.component.message.css\";\n\n/**\n * Bitrix Messenger\n * Message Vue component\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2019 Bitrix\n */\n\nconst MessageType = Object.freeze({\n\tself: 'self',\n\topponent: 'opponent',\n\tsystem: 'system',\n});\n\nconst MessengerStore = Object.freeze({\n\tmessages: BX.Messenger.Model.Messages.getName(),\n\tdialogues: BX.Messenger.Model.Dialogues.getName(),\n\tusers: BX.Messenger.Model.Users.getName(),\n\tfiles: BX.Messenger.Model.Files.getName(),\n});\n\nBX.Vue.component('bx-messenger-message',\n{\n\t/**\n\t * @emits 'clickByUserName' {user: object, event: MouseEvent}\n\t * @emits 'clickByMessageMenu' {message: object, event: MouseEvent}\n\t * @emits 'clickByMessageRetry' {message: object, event: MouseEvent}\n\t */\n\tprops:\n\t{\n\t\tuserId: { default: 0 },\n\t\tdialogId: { default: 0 },\n\t\tchatId: { default: 0 },\n\t\tenableEmotions: { default: true },\n\t\tenableDateActions: { default: true },\n\t\tenableCreateContent: { default: true },\n\t\tshowAvatar: { default: true },\n\t\tshowMenu: { default: true },\n\t\tshowName: { default: true },\n\t\treferenceContentClassName: { default: ''},\n\t\treferenceContentBodyClassName: { default: ''},\n\t\tmessage: {\n\t\t\ttype: Object,\n\t\t\tdefault: BX.Messenger.Model.Messages.getMessageBlank\n\t\t},\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tcomponentBodyId: 'bx-messenger-message-body'\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\tclickByUserName(event)\n\t\t{\n\t\t\tthis.$emit('clickByUserName', event)\n\t\t},\n\t\tclickByMessageMenu(message, event)\n\t\t{\n\t\t\tthis.$emit('clickByMessageMenu', {message, event})\n\t\t},\n\t\tclickByMessageRetry(message, event)\n\t\t{\n\t\t\tthis.$emit('clickByMessageRetry', {message, event})\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tMessageType: () => MessageType,\n\n\t\ttype()\n\t\t{\n\t\t\tif (this.message.system || this.message.authorId == 0)\n\t\t\t{\n\t\t\t\treturn MessageType.system;\n\t\t\t}\n\t\t\telse if (this.message.authorId === -1 || this.message.authorId == this.userId)\n\t\t\t{\n\t\t\t\treturn MessageType.self;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn MessageType.opponent;\n\t\t\t}\n\t\t},\n\n\t\tlocalize()\n\t\t{\n\t\t\tlet localize = BX.Vue.getFilteredPhrases('IM_MESSENGER_MESSAGE_', this.$root.$bitrixMessages);\n\n\t\t\treturn Object.freeze(\n\t\t\t\tObject.assign({}, localize, {\n\t\t\t\t\t'IM_MESSENGER_MESSAGE_MENU_TITLE': localize.IM_MESSENGER_MESSAGE_MENU_TITLE.replace('#SHORTCUT#', BX.Messenger.Utils.platform.isMac()? 'CMD':'CTRL')\n\t\t\t\t})\n\t\t\t);\n\t\t},\n\n\t\tuserData()\n\t\t{\n\t\t\tlet result;\n\n\t\t\tif (typeof this.$store.state[MessengerStore.users].collection[this.message.authorId] !== 'undefined')\n\t\t\t{\n\t\t\t\tresult = this.$store.state[MessengerStore.users].collection[this.message.authorId];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult = BX.Messenger.Model.Users.getUserBlank({defaultName: this.localize.IM_MESSENGER_MESSAGE_USER_ANONYM})\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tfilesData()\n\t\t{\n\t\t\tlet result;\n\n\t\t\tif (typeof this.$store.state[MessengerStore.files].index[this.chatId] !== 'undefined')\n\t\t\t{\n\t\t\t\tresult = this.$store.state[MessengerStore.files].index[this.chatId];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult = {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tisEdited()\n\t\t{\n\t\t\treturn this.message.params.IS_EDITED == 'Y';\n\t\t},\n\n\t\tisDeleted()\n\t\t{\n\t\t\treturn this.message.params.IS_DELETED == 'Y';\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div :class=\"['bx-im-message', {\n\t\t\t'bx-im-message-without-menu': !showMenu,\n\t\t\t'bx-im-message-without-avatar': !showAvatar,\n\t\t\t'bx-im-message-type-system': type == MessageType.system,\n\t\t\t'bx-im-message-type-self': type == MessageType.self,\n\t\t\t'bx-im-message-type-opponent': type == MessageType.opponent,\n\t\t\t'bx-im-message-status-error': message.error,\n\t\t\t'bx-im-message-status-unread': message.unread,\n\t\t\t'bx-im-message-status-blink': message.blink,\n\t\t\t'bx-im-message-status-edited': isEdited,\n\t\t\t'bx-im-message-status-deleted': isDeleted,\n\t\t}]\">\n\t\t\t<template v-if=\"type == MessageType.opponent\">\n\t\t\t\t<div v-if=\"showAvatar\" class=\"bx-im-message-avatar\" @click=\"clickByUserName(userData, $event)\">\n\t\t\t\t\t<div :class=\"['bx-im-message-avatar-image', {\n\t\t\t\t\t\t\t'bx-im-message-avatar-image-default': !userData.avatar\n\t\t\t\t\t\t}]\"\n\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\tbackgroundColor: !userData.avatar? userData.color: '', \n\t\t\t\t\t\t\tbackgroundImage: userData.avatar? 'url('+userData.avatar+')': ''\n\t\t\t\t\t\t}\" \n\t\t\t\t\t\t:title=\"userData.name\"\n\t\t\t\t\t></div>\t\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<div class=\"bx-im-message-box\">\n\t\t\t\t<component :is=\"componentBodyId\"\n\t\t\t\t\t:userId=\"userId\" \n\t\t\t\t\t:dialogId=\"dialogId\"\n\t\t\t\t\t:chatId=\"chatId\"\n\t\t\t\t\t:messageType=\"type\"\n\t\t\t\t\t:message=\"message\"\n\t\t\t\t\t:user=\"userData\"\n\t\t\t\t\t:files=\"filesData\"\n\t\t\t\t\t:showAvatar=\"showAvatar\"\n\t\t\t\t\t:showName=\"showName\"\n\t\t\t\t\t:enableEmotions=\"enableEmotions\"\n\t\t\t\t\t:referenceContentBodyClassName=\"referenceContentBodyClassName\"\n\t\t\t\t\t@clickByUserName=\"clickByUserName\"\n\t\t\t\t/>\n\t\t\t</div>\t\n\t\t\t<template v-if=\"type == MessageType.self\">\n\t\t\t\t<div class=\"bx-im-message-box-status\">\n\t\t\t\t\t<transition name=\"bx-im-message-sending\">\n\t\t\t\t\t\t<template v-if=\"message.sending\">\n\t\t\t\t\t\t\t<div class=\"bx-im-message-sending\"></div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<transition name=\"bx-im-message-status-retry\">\n\t\t\t\t\t\t<template v-if=\"!message.sending && message.error\">\n\t\t\t\t\t\t\t<div class=\"bx-im-message-status-retry\" :title=\"localize.IM_MESSENGER_MESSAGE_RETRY_TITLE\" @click=\"clickByMessageRetry(message, $event)\">\n\t\t\t\t\t\t\t\t<span class=\"bx-im-message-retry-icon\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<template v-if=\"showMenu && !message.sending && !message.error\">\n\t\t\t\t\t\t<div class=\"bx-im-message-status-menu\" :title=\"localize.IM_MESSENGER_MESSAGE_MENU_TITLE\" @click=\"clickByMessageMenu(message, $event)\">\n\t\t\t\t\t\t\t<span class=\"bx-im-message-menu-icon\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template> \n\t\t\t\t</div>\n\t\t\t</template> \n\t\t\t<template v-else-if=\"showMenu\">\n\t\t\t\t<div class=\"bx-im-message-menu\" :title=\"localize.IM_MESSENGER_MESSAGE_MENU_TITLE\" @click=\"clickByMessageMenu(message, $event)\">\n\t\t\t\t\t<span class=\"bx-im-message-menu-icon\"></span>\n\t\t\t\t</div>\n\t\t\t</template> \n\t\t</div>\n\t`\n});"],"names":["MessageType","Object","freeze","self","opponent","system","MessengerStore","messages","BX","Messenger","Model","Messages","getName","dialogues","Dialogues","users","Users","files","Files","Vue","component","props","userId","default","dialogId","chatId","enableEmotions","enableDateActions","enableCreateContent","showAvatar","showMenu","showName","referenceContentClassName","referenceContentBodyClassName","message","type","getMessageBlank","data","componentBodyId","methods","clickByUserName","event","$emit","clickByMessageMenu","clickByMessageRetry","computed","authorId","localize","getFilteredPhrases","$root","$bitrixMessages","assign","IM_MESSENGER_MESSAGE_MENU_TITLE","replace","Utils","platform","isMac","userData","result","$store","state","collection","getUserBlank","defaultName","IM_MESSENGER_MESSAGE_USER_ANONYM","filesData","index","isEdited","params","IS_EDITED","isDeleted","IS_DELETED","template"],"mappings":"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"}message/bundle.config.js000066400000000217147744271350011263 0ustar00module.exports = { input: './messenger.component.message.js', output: './messenger.component.message.bundle.js', namespaceFunction: null, };message/body/messenger.component.message.body.css000066400000030442147744271350016232 0ustar00.bx-im-message-content-wrap { padding-bottom: 1px; } .bx-im-message-content { font: 14px/19px "Helvetica Neue", Helvetica, Arial, sans-serif; display: block; padding: 8px 16px; border: 1px solid rgba(0,0,0,.07); border-radius: 12px; background: #CFEFFF; color: #333; box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.15); word-break: break-word; transition: background-color 1s, color 1s; overflow: hidden; } .bx-im-message-content a {color:#1d54a2; text-decoration:underline;} .bx-im-message-content a:hover {text-decoration:none;} .bx-im-message-type-opponent .bx-im-message-content, .bx-im-message-type-opponent .bx-im-message-content-name, .bx-im-message-type-opponent .bx-im-message-content-body-with-text { border: 0; background-color: #fff; } .bx-im-message-type-system .bx-im-message-content { border: 0; background: transparent; box-shadow: none; color: #717171; } .bx-im-message-status-unread .bx-im-message-content, .bx-im-message-status-unread .bx-im-message-content-name, .bx-im-message-status-unread .bx-im-message-content-body-with-text { background-color: #fffadd; } .bx-im-message-status-deleted .bx-im-message-content { font-style: italic; color: #7d7d7d; } .bx-im-message-status-blink .bx-im-message-content { background-color: #fffadd; } .bx-im-message-status-error .bx-im-message-content { background-color: #fcdcde; box-shadow: 0 1px 0 0 rgba(255, 0, 0, 0.15); } .bx-im-message-content-box { padding: 7px 0 7px; display: inline-block; word-wrap: break-word; width: 100%; vertical-align: middle; } .bx-im-message-content-box .bx-smile { vertical-align: bottom; } .bx-im-message-content-name { font-size: 14px; color: #048bd0; cursor: pointer; transition: background-color 1s, color 1s; } .bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-content-name { display: none; } .bx-im-message-content-body-with-text { transition: background-color 1s, color 1s; } .bx-im-message-content-quote { display: inline-block; vertical-align: top; } .bx-im-message-content-quote-wrap { border-left: 2px solid #c2c4c6; padding-left: 8px; font-size: 12px; color: #505050; padding-bottom: 2px; padding-top: 0; } .bx-im-message-content-quote-name { padding-bottom: 0; font-size: 12px; color: #767a7e; padding-top: 1px; white-space: nowrap; } .bx-im-message-content-code { white-space: pre-line; padding-left: 5px; color: #505050; border-left: 3px solid #505050; } .bx-im-message-content-quote-time { display: inline-block; padding-left: 5px; font-size: 11px; } .bx-im-message-content-params { float: right; display: block; white-space: nowrap; position: relative; padding-right: 10px; margin-right: -10px; } .bx-im-message-content-date { display:inline-block; font: 11px/18px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #546d77; text-align: right; padding-top: 1px; padding-left: 10px; } .bx-im-message-type-opponent .bx-im-message-content-date { color: #8e8e8e; } .bx-im-message-type-system .bx-im-message-content-date { color: #717171; } .bx-im-message-status-error .bx-im-message-content-date { color: #fa6168; } .bx-im-message-status-edited .bx-im-message-content-date { color: #484848; padding-left: 23px; } .bx-im-message-status-edited .bx-im-message-content-date:before { position: absolute; content: ''; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; background-size: cover; height: 8px; width: 8px; margin-top: 5px; margin-left: -13px; } .bx-im-message .bx-im-message-content-fit { padding: 0; border: 0; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-box { padding:0; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-name { padding: 10px 16px 9px 16px; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text { padding: 0 16px 0 16px } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-params { margin-top: -28px; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-date { color: #fff; text-shadow: 0 0 1px #000, 0 0 1px #fff; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-with-text { padding: 7px 16px 8px 16px; } .bx-im-smile-like { display: inline-block; height: 20px; width: 20px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%233BC8F5%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2016.6095c0-.5573.4434-1.009%201.0094-1.009h1.9812c.5575%200%201.0094.4388%201.0094%201.009v10.313c0%20.5573-.4434%201.009-1.0094%201.009h-1.9812c-.5575%200-1.0094-.4388-1.0094-1.009v-10.313zm20.1278-1.294c1.034%200%201.2214%201.0147%201.2147%201.7227-.0067.708-.1353%201.406-1.048%201.854.6713.6454.4347%202.6414-.7707%203.104.7287.3747.4527%202.634-.6666%202.8747.8333.7293-.0787%202.6447-.8547%202.938-.7753.2927-1.614.21-1.614.21s-.9093.0393-1.042.0393h-8.3567c-.7253%200-1.3146-.58-1.3146-1.296V16.1576c0-.342.14-.6727.386-.9154%200%200%203.2346-2.266%205.9053-6.1786.3753-.55%201.1433-.508%201.6587%200%20.246.242.3866.5726.3866.9146v1.046c0%20.0967-.012.3134-.0933.8507-.0827.538-1.152%202.9487-1.152%202.9487-.144.638.64.492%201.4867.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-size: cover; } .bx-im-smile-dislike { display: inline-block; height: 20px; width: 20px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%23FE908E%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2024.1154c0%20.5573.4434%201.009%201.0094%201.009h1.9812c.5575%200%201.0094-.4388%201.0094-1.009v-10.313c0-.5573-.4434-1.009-1.0094-1.009h-1.9812c-.5575%200-1.0094.4388-1.0094%201.009v10.313zm20.1278%201.294c1.034%200%201.2214-1.0147%201.2147-1.7227-.0067-.708-.1353-1.406-1.048-1.854.6713-.6454.4347-2.6414-.7707-3.104.7287-.3747.4527-2.634-.6666-2.8747.8333-.7293-.0787-2.6447-.8547-2.938-.7753-.2927-1.614-.21-1.614-.21s-.9093-.0393-1.042-.0393h-8.3567c-.7253%200-1.3146.58-1.3146%201.296v10.6046c0%20.342.14.6727.386.9154%200%200%203.2346%202.266%205.9053%206.1786.3753.55%201.1433.508%201.6587%200%20.246-.242.3866-.5726.3866-.9146v-1.046c0-.0967-.012-.3134-.0933-.8507-.0827-.538-1.152-2.9487-1.152-2.9487-.144-.638.64-.492%201.4867-.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-size: cover; } /* temporary */ /* region 04. Message params (date, like, etc) */ .bx-messenger-content-item-params { float: right;display: block; white-space: nowrap; position: relative;} .bx-messenger-content-item-params { padding-right: 10px; margin-right: -10px; transition: background .3s; border-radius: 12px; background: transparent; } .bx-messenger-content-item-content-without-padding:hover .bx-messenger-content-item-params { background-color: rgba(14, 14, 14, 0.78); } .bx-messenger-content-item-ol-start .bx-messenger-content-item-params { display: none; } .bx-messenger-content-item-like { display:inline-block; font: 11px/18px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #bac5cd; text-align: right; padding-top: 1px; padding-left: 3px;margin-right: -9px;white-space: nowrap; -moz-user-select:none; -khtml-user-select:none; -o-user-select:none; -webkit-user-select:none; user-select:none; } .bx-messenger-content-like-digit { font: 11px/18px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #b0b6be;display: inline-block;min-width: 6px; cursor: pointer; } .bx-messenger-content-item-like-disable .bx-messenger-content-like-button, .bx-messenger-content-like-digit-off { cursor: default; } .bx-messenger-content-like-button { background: no-repeat scroll -129px -1073px transparent; cursor: pointer; display: inline-block; position: relative; vertical-align: top; line-height: 18px; padding-left: 18px; padding-right: 10px; color: #c2c4c7; transition: all .3s; height: 19px; } .bx-messenger-content-item-liked .bx-messenger-content-like-button {background-position: -129px -1047px;} .bx-messenger-content-item-liked .bx-messenger-content-like-digit, .bx-im-message-content-self .bx-messenger-content-item-liked .bx-messenger-content-like-digit { color: #f99500;} .bx-messenger-content-item-system .bx-messenger-content-item-liked .bx-messenger-content-like-digit { color: #378ad1;} .bx-messenger-content-item-system .bx-messenger-content-like-button {color: #c6c8cb;} .bx-messenger-content-item-liked .bx-messenger-content-like-digit, .bx-im-message-type-opponent .bx-messenger-content-item-liked .bx-messenger-content-like-digit {color: #6a9cd9;} .bx-messenger-content-item-content-progress-error .bx-messenger-content-item-like { display: none; } .bx-messenger-content-item-vote .bx-messenger-content-item-like {display: none;} .bx-messenger-content-item-ol-output .bx-messenger-content-item-date { color: #bac5cd!important; } .bx-messenger-content-item-ol-attention .bx-messenger-content-item-date { color: #a6aaae!important; } .bx-messenger-content-item-system .bx-messenger-content-item-date { color: #fff; } .bx-messenger-content-item-new .bx-messenger-content-item-date { color: #bbb178; } .bx-messenger-content-item-content-progress-error .bx-messenger-content-item-date { color: #fa6168; } .bx-messenger-content-item-ol-output .bx-messenger-content-item-date, .bx-messenger-content-item-vote .bx-messenger-content-item-date { color: #859aa9!important; } .bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date { padding-right: 15px; cursor: pointer; } .bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date:after { background: rgba(255,255,255,.9) no-repeat scroll -58px -4px; content: ''; height: 16px; position: absolute; width: 17px; margin-left: 5px; margin-top: 1px; border-radius: 50%; } .bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date { padding-right: 0; cursor: default;} .bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date:after { display: none; } .bx-messenger-content-item-notice .bx-messenger-content-item-date { color: #717171; } .bx-messenger-content-item-ol-output .bx-messenger-content-item-date { color: #bac5cd!important; } .bx-messenger-content-item-ol-attention .bx-messenger-content-item-date { color: #a6aaae!important; } .bx-messenger-content-item-menu-with-apps { background-position: 0 -30px; opacity: .8; } .bx-messenger-content-item-menu-with-apps:hover { background-position: 0 -15px; } .bx-messenger-content-item:hover .bx-messenger-content-item-menu { opacity: 0.6 } .bx-messenger-content-item:hover .bx-messenger-content-item-menu-with-apps { opacity: .8 } .bx-messenger-content-item-menu-hover .bx-messenger-content-item-menu { opacity: 1!important; } .bx-im-message-type-opponent .bx-messenger-content-item-menu { float: right; margin-left: 0; margin-right: -42px; } .bx-messenger-chat-guest .bx-messenger-content-item-menu { display: none; } /* endregion 03. Message params (date, like, etc) */ .bx-notifier-popup-user-more, .bx-messenger-cl, .bx-messenger-cl-notify-button, .bx-messenger-content-item-avatar, .bx-messenger-content-item-date, .bx-messenger-history-item-avatar, .bx-messenger-textarea-cntr-enter, .bx-notifier-item-help-popup { -moz-user-select:none; -khtml-user-select:none; -o-user-select:none; -webkit-user-select:none; user-select:none; cursor: default; } message/body/messenger.component.message.body.bundle.css000066400000031646147744271350017511 0ustar00.bx-im-message-content-wrap { padding-bottom: 1px; } .bx-im-message-content { font: 14px/19px "Helvetica Neue", Helvetica, Arial, sans-serif; display: block; padding: 8px 16px; border: 1px solid rgba(0,0,0,.07); border-radius: 12px; background: #CFEFFF; color: #333; -webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.15); box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.15); word-break: break-word; -webkit-transition: background-color 1s, color 1s; -o-transition: background-color 1s, color 1s; transition: background-color 1s, color 1s; overflow: hidden; } .bx-im-message-content a {color:#1d54a2; text-decoration:underline;} .bx-im-message-content a:hover {text-decoration:none;} .bx-im-message-type-opponent .bx-im-message-content, .bx-im-message-type-opponent .bx-im-message-content-name, .bx-im-message-type-opponent .bx-im-message-content-body-with-text { border: 0; background-color: #fff; } .bx-im-message-type-system .bx-im-message-content { border: 0; background: transparent; -webkit-box-shadow: none; box-shadow: none; color: #717171; } .bx-im-message-status-unread .bx-im-message-content, .bx-im-message-status-unread .bx-im-message-content-name, .bx-im-message-status-unread .bx-im-message-content-body-with-text { background-color: #fffadd; } .bx-im-message-status-deleted .bx-im-message-content { font-style: italic; color: #7d7d7d; } .bx-im-message-status-blink .bx-im-message-content { background-color: #fffadd; } .bx-im-message-status-error .bx-im-message-content { background-color: #fcdcde; -webkit-box-shadow: 0 1px 0 0 rgba(255, 0, 0, 0.15); box-shadow: 0 1px 0 0 rgba(255, 0, 0, 0.15); } .bx-im-message-content-box { padding: 7px 0 7px; display: inline-block; word-wrap: break-word; width: 100%; vertical-align: middle; } .bx-im-message-content-box .bx-smile { vertical-align: bottom; } .bx-im-message-content-name { font-size: 14px; color: #048bd0; cursor: pointer; -webkit-transition: background-color 1s, color 1s; -o-transition: background-color 1s, color 1s; transition: background-color 1s, color 1s; } .bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-content-name { display: none; } .bx-im-message-content-body-with-text { -webkit-transition: background-color 1s, color 1s; -o-transition: background-color 1s, color 1s; transition: background-color 1s, color 1s; } .bx-im-message-content-quote { display: inline-block; vertical-align: top; } .bx-im-message-content-quote-wrap { border-left: 2px solid #c2c4c6; padding-left: 8px; font-size: 12px; color: #505050; padding-bottom: 2px; padding-top: 0; } .bx-im-message-content-quote-name { padding-bottom: 0; font-size: 12px; color: #767a7e; padding-top: 1px; white-space: nowrap; } .bx-im-message-content-code { white-space: pre-line; padding-left: 5px; color: #505050; border-left: 3px solid #505050; } .bx-im-message-content-quote-time { display: inline-block; padding-left: 5px; font-size: 11px; } .bx-im-message-content-params { float: right; display: block; white-space: nowrap; position: relative; padding-right: 10px; margin-right: -10px; } .bx-im-message-content-date { display:inline-block; font: 11px/18px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #546d77; text-align: right; padding-top: 1px; padding-left: 10px; } .bx-im-message-type-opponent .bx-im-message-content-date { color: #8e8e8e; } .bx-im-message-type-system .bx-im-message-content-date { color: #717171; } .bx-im-message-status-error .bx-im-message-content-date { color: #fa6168; } .bx-im-message-status-edited .bx-im-message-content-date { color: #484848; padding-left: 23px; } .bx-im-message-status-edited .bx-im-message-content-date:before { position: absolute; content: ''; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; background-size: cover; height: 8px; width: 8px; margin-top: 5px; margin-left: -13px; } .bx-im-message .bx-im-message-content-fit { padding: 0; border: 0; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-box { padding:0; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-name { padding: 10px 16px 9px 16px; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text { padding: 0 16px 0 16px } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-params { margin-top: -28px; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-date { color: #fff; text-shadow: 0 0 1px #000, 0 0 1px #fff; } .bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-with-text { padding: 7px 16px 8px 16px; } .bx-im-smile-like { display: inline-block; height: 20px; width: 20px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%233BC8F5%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2016.6095c0-.5573.4434-1.009%201.0094-1.009h1.9812c.5575%200%201.0094.4388%201.0094%201.009v10.313c0%20.5573-.4434%201.009-1.0094%201.009h-1.9812c-.5575%200-1.0094-.4388-1.0094-1.009v-10.313zm20.1278-1.294c1.034%200%201.2214%201.0147%201.2147%201.7227-.0067.708-.1353%201.406-1.048%201.854.6713.6454.4347%202.6414-.7707%203.104.7287.3747.4527%202.634-.6666%202.8747.8333.7293-.0787%202.6447-.8547%202.938-.7753.2927-1.614.21-1.614.21s-.9093.0393-1.042.0393h-8.3567c-.7253%200-1.3146-.58-1.3146-1.296V16.1576c0-.342.14-.6727.386-.9154%200%200%203.2346-2.266%205.9053-6.1786.3753-.55%201.1433-.508%201.6587%200%20.246.242.3866.5726.3866.9146v1.046c0%20.0967-.012.3134-.0933.8507-.0827.538-1.152%202.9487-1.152%202.9487-.144.638.64.492%201.4867.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-size: cover; } .bx-im-smile-dislike { display: inline-block; height: 20px; width: 20px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%23FE908E%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2024.1154c0%20.5573.4434%201.009%201.0094%201.009h1.9812c.5575%200%201.0094-.4388%201.0094-1.009v-10.313c0-.5573-.4434-1.009-1.0094-1.009h-1.9812c-.5575%200-1.0094.4388-1.0094%201.009v10.313zm20.1278%201.294c1.034%200%201.2214-1.0147%201.2147-1.7227-.0067-.708-.1353-1.406-1.048-1.854.6713-.6454.4347-2.6414-.7707-3.104.7287-.3747.4527-2.634-.6666-2.8747.8333-.7293-.0787-2.6447-.8547-2.938-.7753-.2927-1.614-.21-1.614-.21s-.9093-.0393-1.042-.0393h-8.3567c-.7253%200-1.3146.58-1.3146%201.296v10.6046c0%20.342.14.6727.386.9154%200%200%203.2346%202.266%205.9053%206.1786.3753.55%201.1433.508%201.6587%200%20.246-.242.3866-.5726.3866-.9146v-1.046c0-.0967-.012-.3134-.0933-.8507-.0827-.538-1.152-2.9487-1.152-2.9487-.144-.638.64-.492%201.4867-.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A'); background-size: cover; } /* temporary */ /* region 04. Message params (date, like, etc) */ .bx-messenger-content-item-params { float: right;display: block; white-space: nowrap; position: relative;} .bx-messenger-content-item-params { padding-right: 10px; margin-right: -10px; -webkit-transition: background .3s; -o-transition: background .3s; transition: background .3s; border-radius: 12px; background: transparent; } .bx-messenger-content-item-content-without-padding:hover .bx-messenger-content-item-params { background-color: rgba(14, 14, 14, 0.78); } .bx-messenger-content-item-ol-start .bx-messenger-content-item-params { display: none; } .bx-messenger-content-item-like { display:inline-block; font: 11px/18px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #bac5cd; text-align: right; padding-top: 1px; padding-left: 3px;margin-right: -9px;white-space: nowrap; -moz-user-select:none; -o-user-select:none; -webkit-user-select:none; -ms-user-select:none; user-select:none; } .bx-messenger-content-like-digit { font: 11px/18px "Helvetica Neue", Helvetica, Arial, sans-serif; color: #b0b6be;display: inline-block;min-width: 6px; cursor: pointer; } .bx-messenger-content-item-like-disable .bx-messenger-content-like-button, .bx-messenger-content-like-digit-off { cursor: default; } .bx-messenger-content-like-button { background: no-repeat scroll -129px -1073px transparent; cursor: pointer; display: inline-block; position: relative; vertical-align: top; line-height: 18px; padding-left: 18px; padding-right: 10px; color: #c2c4c7; -webkit-transition: all .3s; -o-transition: all .3s; transition: all .3s; height: 19px; } .bx-messenger-content-item-liked .bx-messenger-content-like-button {background-position: -129px -1047px;} .bx-messenger-content-item-liked .bx-messenger-content-like-digit, .bx-im-message-content-self .bx-messenger-content-item-liked .bx-messenger-content-like-digit { color: #f99500;} .bx-messenger-content-item-system .bx-messenger-content-item-liked .bx-messenger-content-like-digit { color: #378ad1;} .bx-messenger-content-item-system .bx-messenger-content-like-button {color: #c6c8cb;} .bx-messenger-content-item-liked .bx-messenger-content-like-digit, .bx-im-message-type-opponent .bx-messenger-content-item-liked .bx-messenger-content-like-digit {color: #6a9cd9;} .bx-messenger-content-item-content-progress-error .bx-messenger-content-item-like { display: none; } .bx-messenger-content-item-vote .bx-messenger-content-item-like {display: none;} .bx-messenger-content-item-ol-output .bx-messenger-content-item-date { color: #bac5cd!important; } .bx-messenger-content-item-ol-attention .bx-messenger-content-item-date { color: #a6aaae!important; } .bx-messenger-content-item-system .bx-messenger-content-item-date { color: #fff; } .bx-messenger-content-item-new .bx-messenger-content-item-date { color: #bbb178; } .bx-messenger-content-item-content-progress-error .bx-messenger-content-item-date { color: #fa6168; } .bx-messenger-content-item-ol-output .bx-messenger-content-item-date, .bx-messenger-content-item-vote .bx-messenger-content-item-date { color: #859aa9!important; } .bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date { padding-right: 15px; cursor: pointer; } .bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date:after { background: rgba(255,255,255,.9) no-repeat scroll -58px -4px; content: ''; height: 16px; position: absolute; width: 17px; margin-left: 5px; margin-top: 1px; border-radius: 50%; } .bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date { padding-right: 0; cursor: default;} .bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date:after { display: none; } .bx-messenger-content-item-notice .bx-messenger-content-item-date { color: #717171; } .bx-messenger-content-item-ol-output .bx-messenger-content-item-date { color: #bac5cd!important; } .bx-messenger-content-item-ol-attention .bx-messenger-content-item-date { color: #a6aaae!important; } .bx-messenger-content-item-menu-with-apps { background-position: 0 -30px; opacity: .8; } .bx-messenger-content-item-menu-with-apps:hover { background-position: 0 -15px; } .bx-messenger-content-item:hover .bx-messenger-content-item-menu { opacity: 0.6 } .bx-messenger-content-item:hover .bx-messenger-content-item-menu-with-apps { opacity: .8 } .bx-messenger-content-item-menu-hover .bx-messenger-content-item-menu { opacity: 1!important; } .bx-im-message-type-opponent .bx-messenger-content-item-menu { float: right; margin-left: 0; margin-right: -42px; } .bx-messenger-chat-guest .bx-messenger-content-item-menu { display: none; } /* endregion 03. Message params (date, like, etc) */ .bx-notifier-popup-user-more, .bx-messenger-cl, .bx-messenger-cl-notify-button, .bx-messenger-content-item-avatar, .bx-messenger-content-item-date, .bx-messenger-history-item-avatar, .bx-messenger-textarea-cntr-enter, .bx-notifier-item-help-popup { -moz-user-select:none; -o-user-select:none; -webkit-user-select:none; -ms-user-select:none; user-select:none; cursor: default; } /*# sourceMappingURL=messenger.component.message.body.bundle.css.map */message/body/messenger.component.message.body.js000066400000015406147744271350016061 0ustar00import "./messenger.component.message.body.css"; /** * Bitrix Messenger * Message Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ const BX = window.BX; const MessageType = Object.freeze({ self: 'self', opponent: 'opponent', system: 'system', }); const ContentType = Object.freeze({ default: 'default', image: 'image', video: 'video', richLink: 'richLink', }); const MessengerStore = Object.freeze({ files: BX.Messenger.Model.Files.getName(), }); BX.Vue.component('bx-messenger-message-body', { /** * @emits 'clickByUserName' {user: object, event: MouseEvent} */ props: { userId: { default: 0 }, dialogId: { default: 0 }, chatId: { default: 0 }, messageType: { default: MessageType.self }, message: { type: Object, default: BX.Messenger.Model.Messages.getMessageBlank }, user: { type: Object, default: BX.Messenger.Model.Users.getUserBlank }, files: { type: Object, default: {} }, enableEmotions: { default: true }, showName: { default: true }, showAvatar: { default: true }, referenceContentBodyClassName: { default: ''}, }, created() { this.dateFormatFunction = null; this.cacheFormatDate = {}; }, methods: { clickByUserName(user, event) { this.$emit('clickByUserName', {user, event}) }, formatDate(date) { const id = date.toJSON().slice(0, 10); if (this.cacheFormatDate[id]) { return this.cacheFormatDate[id]; } let dateFormat = BX.Messenger.Utils.getDateFormatType( BX.Messenger.Const.dateFormat.message, this.$root.$bitrixMessages ); this.cacheFormatDate[id] = this._getDateFormat().format(dateFormat, date); return this.cacheFormatDate[id]; }, _getDateFormat() { if (this.dateFormatFunction) { return this.dateFormatFunction; } this.dateFormatFunction = Object.create(BX.Main.Date); if (this.$root.$bitrixMessages) { this.dateFormatFunction._getMessage = (phrase) => this.$root.$bitrixMessages[phrase]; } return this.dateFormatFunction; }, }, computed: { MessageType: () => MessageType, ContentType: () => ContentType, contentType() { if (this.filesData.length > 0) { let onlyImage = false; let onlyVideo = false; for (let file of this.filesData) { if (file.type == 'image') { if (onlyVideo) { onlyVideo = false; break; } onlyImage = true; } else if (false && file.type == 'video') { if (onlyImage) { onlyImage = false; break; } onlyVideo = true; } else { onlyImage = false; onlyVideo = false; break; } } if (onlyImage) { return ContentType.image; } else if (onlyVideo) { return ContentType.video; } } return ContentType.default; }, localize() { return BX.Vue.getFilteredPhrases('IM_MESSENGER_MESSAGE_', this.$root.$bitrixMessages); }, formattedDate() { return this.formatDate(this.message.date); }, messageText() { if (this.isDeleted) { return this.localize.IM_MESSENGER_MESSAGE_DELETED; } return this.message.textConverted; }, isEdited() { return this.message.params.IS_EDITED == 'Y'; }, isDeleted() { return this.message.params.IS_DELETED == 'Y'; }, filesData() { let files = []; if (!this.message.params.FILE_ID || this.message.params.FILE_ID.length <= 0) { return files; } this.message.params.FILE_ID.forEach(fileId => { if (this.files[fileId]) { files.push(this.files[fileId]); } }); return files; } }, template: ` <div class="bx-im-message-content-wrap"> <template v-if="contentType == ContentType.default"> <div class="bx-im-message-content"> <span class="bx-im-message-content-box"> <template v-if="showName && messageType == MessageType.opponent"> <div class="bx-im-message-content-name" :style="{color: user.color}" @click="clickByUserName(user, $event)">{{!showAvatar? user.name: (user.firstName? user.firstName: user.name)}}</div> </template> <div :class="['bx-im-message-content-body', referenceContentBodyClassName]"> <template v-for="file in filesData"> <bx-messenger-element-file :file="file"/> </template> <div :class="['bx-im-message-content-body-wrap', { 'bx-im-message-content-body-with-text': messageText.length > 0, 'bx-im-message-content-body-without-text': messageText.length <= 0, }]"> <template v-if="messageText"> <span class="bx-im-message-content-text" v-html="messageText"></span> </template> <span class="bx-im-message-content-params"> <span class="bx-im-message-content-date">{{formattedDate}}</span> </span> </div> </div> </span> </div> <!-- keyboard --> </template> <template v-else-if="contentType == ContentType.richLink"> <!-- richLink type markup --> </template> <template v-else-if="contentType == ContentType.image || contentType == ContentType.video"> <div class="bx-im-message-content bx-im-message-content-fit"> <span class="bx-im-message-content-box"> <template v-if="showName && messageType == MessageType.opponent"> <div class="bx-im-message-content-name" :style="{color: user.color}" @click="clickByUserName(user, $event)">{{!showAvatar? user.name: (user.firstName? user.firstName: user.name)}}</div> </template> <div :class="['bx-im-message-content-body', referenceContentBodyClassName]"> <template v-if="contentType == ContentType.image"> <template v-for="file in filesData"> <bx-messenger-element-file-image :file="file"/> </template> </template> <template v-else-if="contentType == ContentType.video"> <template v-for="file in filesData"> <bx-messenger-element-file-video :file="file"/> </template> </template> <div :class="['bx-im-message-content-body-wrap', { 'bx-im-message-content-body-with-text': messageText.length > 0, 'bx-im-message-content-body-without-text': messageText.length <= 0, }]"> <template v-if="messageText"> <span class="bx-im-message-content-text" v-html="messageText"></span> </template> <span class="bx-im-message-content-params"> <span class="bx-im-message-content-date">{{formattedDate}}</span> </span> </div> </div> </span> </div> <!-- keyboard --> </template> </div> ` }); /* <span class="bx-messenger-content-item-like bx-messenger-content-like-digit-off"> <span> </span> <span class="bx-messenger-content-like-digit"></span> <span data-messageid="28571160" class="bx-messenger-content-like-button">{{localize.IM_MESSENGER_MESSAGE_LIKE}}</span> </span> */message/body/config.php000066400000001015147744271350011120 0ustar00<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } return [ 'js' => [ '/bitrix/js/messenger/component/message/body/messenger.component.message.body.bundle.js', ], 'css' => [ '/bitrix/js/messenger/component/message/body/messenger.component.message.body.bundle.css', ], 'rel' => [ 'main.polyfill.complex', 'ui.vue', 'ui.vue.vuex', 'messenger.component.element.file', 'messenger.model.dialogues', 'messenger.model.users', 'messenger.model.files', ], 'skip_core' => true, ];message/body/messenger.component.message.body.min.css000066400000026501147744271350017015 0ustar00.bx-im-message-content-wrap{padding-bottom:1px}.bx-im-message-content{font:14px/19px "Helvetica Neue",Helvetica,Arial,sans-serif;display:block;padding:8px 16px;border:1px solid rgba(0,0,0,.07);border-radius:12px;background:#cfefff;color:#333;box-shadow:0 1px 0 0 rgba(0,0,0,0.15);word-break:break-word;transition:background-color 1s,color 1s;overflow:hidden}.bx-im-message-content a{color:#1d54a2;text-decoration:underline}.bx-im-message-content a:hover{text-decoration:none}.bx-im-message-type-opponent .bx-im-message-content,.bx-im-message-type-opponent .bx-im-message-content-name,.bx-im-message-type-opponent .bx-im-message-content-body-with-text{border:0;background-color:#fff}.bx-im-message-type-system .bx-im-message-content{border:0;background:transparent;box-shadow:none;color:#717171}.bx-im-message-status-unread .bx-im-message-content,.bx-im-message-status-unread .bx-im-message-content-name,.bx-im-message-status-unread .bx-im-message-content-body-with-text{background-color:#fffadd}.bx-im-message-status-deleted .bx-im-message-content{font-style:italic;color:#7d7d7d}.bx-im-message-status-blink .bx-im-message-content{background-color:#fffadd}.bx-im-message-status-error .bx-im-message-content{background-color:#fcdcde;box-shadow:0 1px 0 0 rgba(255,0,0,0.15)}.bx-im-message-content-box{padding:7px 0 7px;display:inline-block;word-wrap:break-word;width:100%;vertical-align:middle}.bx-im-message-content-box .bx-smile{vertical-align:bottom}.bx-im-message-content-name{font-size:14px;color:#048bd0;cursor:pointer;transition:background-color 1s,color 1s}.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-content-name{display:none}.bx-im-message-content-body-with-text{transition:background-color 1s,color 1s}.bx-im-message-content-quote{display:inline-block;vertical-align:top}.bx-im-message-content-quote-wrap{border-left:2px solid #c2c4c6;padding-left:8px;font-size:12px;color:#505050;padding-bottom:2px;padding-top:0}.bx-im-message-content-quote-name{padding-bottom:0;font-size:12px;color:#767a7e;padding-top:1px;white-space:nowrap}.bx-im-message-content-code{white-space:pre-line;padding-left:5px;color:#505050;border-left:3px solid #505050}.bx-im-message-content-quote-time{display:inline-block;padding-left:5px;font-size:11px}.bx-im-message-content-params{float:right;display:block;white-space:nowrap;position:relative;padding-right:10px;margin-right:-10px}.bx-im-message-content-date{display:inline-block;font:11px/18px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#546d77;text-align:right;padding-top:1px;padding-left:10px}.bx-im-message-type-opponent .bx-im-message-content-date{color:#8e8e8e}.bx-im-message-type-system .bx-im-message-content-date{color:#717171}.bx-im-message-status-error .bx-im-message-content-date{color:#fa6168}.bx-im-message-status-edited .bx-im-message-content-date{color:#484848;padding-left:23px}.bx-im-message-status-edited .bx-im-message-content-date:before{position:absolute;content:'';background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;background-size:cover;height:8px;width:8px;margin-top:5px;margin-left:-13px}.bx-im-message .bx-im-message-content-fit{padding:0;border:0}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-box{padding:0}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-name{padding:10px 16px 9px 16px}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text{padding:0 16px 0 16px}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-params{margin-top:-28px}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-date{color:#fff;text-shadow:0 0 1px #000,0 0 1px #fff}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-with-text{padding:7px 16px 8px 16px}.bx-im-smile-like{display:inline-block;height:20px;width:20px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%233BC8F5%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2016.6095c0-.5573.4434-1.009%201.0094-1.009h1.9812c.5575%200%201.0094.4388%201.0094%201.009v10.313c0%20.5573-.4434%201.009-1.0094%201.009h-1.9812c-.5575%200-1.0094-.4388-1.0094-1.009v-10.313zm20.1278-1.294c1.034%200%201.2214%201.0147%201.2147%201.7227-.0067.708-.1353%201.406-1.048%201.854.6713.6454.4347%202.6414-.7707%203.104.7287.3747.4527%202.634-.6666%202.8747.8333.7293-.0787%202.6447-.8547%202.938-.7753.2927-1.614.21-1.614.21s-.9093.0393-1.042.0393h-8.3567c-.7253%200-1.3146-.58-1.3146-1.296V16.1576c0-.342.14-.6727.386-.9154%200%200%203.2346-2.266%205.9053-6.1786.3753-.55%201.1433-.508%201.6587%200%20.246.242.3866.5726.3866.9146v1.046c0%20.0967-.012.3134-.0933.8507-.0827.538-1.152%202.9487-1.152%202.9487-.144.638.64.492%201.4867.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-size:cover}.bx-im-smile-dislike{display:inline-block;height:20px;width:20px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%23FE908E%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2024.1154c0%20.5573.4434%201.009%201.0094%201.009h1.9812c.5575%200%201.0094-.4388%201.0094-1.009v-10.313c0-.5573-.4434-1.009-1.0094-1.009h-1.9812c-.5575%200-1.0094.4388-1.0094%201.009v10.313zm20.1278%201.294c1.034%200%201.2214-1.0147%201.2147-1.7227-.0067-.708-.1353-1.406-1.048-1.854.6713-.6454.4347-2.6414-.7707-3.104.7287-.3747.4527-2.634-.6666-2.8747.8333-.7293-.0787-2.6447-.8547-2.938-.7753-.2927-1.614-.21-1.614-.21s-.9093-.0393-1.042-.0393h-8.3567c-.7253%200-1.3146.58-1.3146%201.296v10.6046c0%20.342.14.6727.386.9154%200%200%203.2346%202.266%205.9053%206.1786.3753.55%201.1433.508%201.6587%200%20.246-.242.3866-.5726.3866-.9146v-1.046c0-.0967-.012-.3134-.0933-.8507-.0827-.538-1.152-2.9487-1.152-2.9487-.144-.638.64-.492%201.4867-.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-size:cover}.bx-messenger-content-item-params{float:right;display:block;white-space:nowrap;position:relative}.bx-messenger-content-item-params{padding-right:10px;margin-right:-10px;transition:background .3s;border-radius:12px;background:transparent}.bx-messenger-content-item-content-without-padding:hover .bx-messenger-content-item-params{background-color:rgba(14,14,14,0.78)}.bx-messenger-content-item-ol-start .bx-messenger-content-item-params{display:none}.bx-messenger-content-item-like{display:inline-block;font:11px/18px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#bac5cd;text-align:right;padding-top:1px;padding-left:3px;margin-right:-9px;white-space:nowrap;-moz-user-select:none;-khtml-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none}.bx-messenger-content-like-digit{font:11px/18px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#b0b6be;display:inline-block;min-width:6px;cursor:pointer}.bx-messenger-content-item-like-disable .bx-messenger-content-like-button,.bx-messenger-content-like-digit-off{cursor:default}.bx-messenger-content-like-button{background:no-repeat scroll -129px -1073px transparent;cursor:pointer;display:inline-block;position:relative;vertical-align:top;line-height:18px;padding-left:18px;padding-right:10px;color:#c2c4c7;transition:all .3s;height:19px}.bx-messenger-content-item-liked .bx-messenger-content-like-button{background-position:-129px -1047px}.bx-messenger-content-item-liked .bx-messenger-content-like-digit,.bx-im-message-content-self .bx-messenger-content-item-liked .bx-messenger-content-like-digit{color:#f99500}.bx-messenger-content-item-system .bx-messenger-content-item-liked .bx-messenger-content-like-digit{color:#378ad1}.bx-messenger-content-item-system .bx-messenger-content-like-button{color:#c6c8cb}.bx-messenger-content-item-liked .bx-messenger-content-like-digit,.bx-im-message-type-opponent .bx-messenger-content-item-liked .bx-messenger-content-like-digit{color:#6a9cd9}.bx-messenger-content-item-content-progress-error .bx-messenger-content-item-like{display:none}.bx-messenger-content-item-vote .bx-messenger-content-item-like{display:none}.bx-messenger-content-item-ol-output .bx-messenger-content-item-date{color:#bac5cd!important}.bx-messenger-content-item-ol-attention .bx-messenger-content-item-date{color:#a6aaae!important}.bx-messenger-content-item-system .bx-messenger-content-item-date{color:#fff}.bx-messenger-content-item-new .bx-messenger-content-item-date{color:#bbb178}.bx-messenger-content-item-content-progress-error .bx-messenger-content-item-date{color:#fa6168}.bx-messenger-content-item-ol-output .bx-messenger-content-item-date,.bx-messenger-content-item-vote .bx-messenger-content-item-date{color:#859aa9!important}.bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date{padding-right:15px;cursor:pointer}.bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date:after{background:rgba(255,255,255,.9) no-repeat scroll -58px -4px;content:'';height:16px;position:absolute;width:17px;margin-left:5px;margin-top:1px;border-radius:50%}.bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date{padding-right:0;cursor:default}.bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date:after{display:none}.bx-messenger-content-item-notice .bx-messenger-content-item-date{color:#717171}.bx-messenger-content-item-ol-output .bx-messenger-content-item-date{color:#bac5cd!important}.bx-messenger-content-item-ol-attention .bx-messenger-content-item-date{color:#a6aaae!important}.bx-messenger-content-item-menu-with-apps{background-position:0 -30px;opacity:.8}.bx-messenger-content-item-menu-with-apps:hover{background-position:0 -15px}.bx-messenger-content-item:hover .bx-messenger-content-item-menu{opacity:.6}.bx-messenger-content-item:hover .bx-messenger-content-item-menu-with-apps{opacity:.8}.bx-messenger-content-item-menu-hover .bx-messenger-content-item-menu{opacity:1!important}.bx-im-message-type-opponent .bx-messenger-content-item-menu{float:right;margin-left:0;margin-right:-42px}.bx-messenger-chat-guest .bx-messenger-content-item-menu{display:none}.bx-notifier-popup-user-more,.bx-messenger-cl,.bx-messenger-cl-notify-button,.bx-messenger-content-item-avatar,.bx-messenger-content-item-date,.bx-messenger-history-item-avatar,.bx-messenger-textarea-cntr-enter,.bx-notifier-item-help-popup{-moz-user-select:none;-khtml-user-select:none;-o-user-select:none;-webkit-user-select:none;user-select:none;cursor:default}message/body/bundle.config.js000066400000000231147744271350012214 0ustar00module.exports = { input: './messenger.component.message.body.js', output: './messenger.component.message.body.bundle.js', namespaceFunction: null, };message/body/messenger.component.message.body.bundle.min.js000066400000014072147744271350020111 0ustar00(function(t){"use strict";var e=window.BX;var s=Object.freeze({self:"self",opponent:"opponent",system:"system"});var n=Object.freeze({default:"default",image:"image",video:"video",richLink:"richLink"});var a=Object.freeze({files:e.Messenger.Model.Files.getName()});e.Vue.component("bx-messenger-message-body",{props:{userId:{default:0},dialogId:{default:0},chatId:{default:0},messageType:{default:s.self},message:{type:Object,default:e.Messenger.Model.Messages.getMessageBlank},user:{type:Object,default:e.Messenger.Model.Users.getUserBlank},files:{type:Object,default:{}},enableEmotions:{default:true},showName:{default:true},showAvatar:{default:true},referenceContentBodyClassName:{default:""}},created:function t(){this.dateFormatFunction=null;this.cacheFormatDate={}},methods:{clickByUserName:function t(e,s){this.$emit("clickByUserName",{user:e,event:s})},formatDate:function t(s){var n=s.toJSON().slice(0,10);if(this.cacheFormatDate[n]){return this.cacheFormatDate[n]}var a=e.Messenger.Utils.getDateFormatType(e.Messenger.Const.dateFormat.message,this.$root.$bitrixMessages);this.cacheFormatDate[n]=this._getDateFormat().format(a,s);return this.cacheFormatDate[n]},_getDateFormat:function t(){var s=this;if(this.dateFormatFunction){return this.dateFormatFunction}this.dateFormatFunction=Object.create(e.Main.Date);if(this.$root.$bitrixMessages){this.dateFormatFunction._getMessage=function(t){return s.$root.$bitrixMessages[t]}}return this.dateFormatFunction}},computed:{MessageType:function t(){return s},ContentType:function t(){return n},contentType:function t(){if(this.filesData.length>0){var e=false;var s=false;var a=true;var i=false;var r=undefined;try{for(var m=this.filesData[Symbol.iterator](),o;!(a=(o=m.next()).done);a=true){var l=o.value;if(l.type=="image"){if(s){s=false;break}e=true}else{e=false;s=false;break}}}catch(t){i=true;r=t}finally{try{if(!a&&m.return!=null){m.return()}}finally{if(i){throw r}}}if(e){return n.image}else if(s){return n.video}}return n.default},localize:function t(){return e.Vue.getFilteredPhrases("IM_MESSENGER_MESSAGE_",this.$root.$bitrixMessages)},formattedDate:function t(){return this.formatDate(this.message.date)},messageText:function t(){if(this.isDeleted){return this.localize.IM_MESSENGER_MESSAGE_DELETED}return this.message.textConverted},isEdited:function t(){return this.message.params.IS_EDITED=="Y"},isDeleted:function t(){return this.message.params.IS_DELETED=="Y"},filesData:function t(){var e=this;var s=[];if(!this.message.params.FILE_ID||this.message.params.FILE_ID.length<=0){return s}this.message.params.FILE_ID.forEach(function(t){if(e.files[t]){s.push(e.files[t])}});return s}},template:'\n\t\t<div class="bx-im-message-content-wrap">\n\t\t\t<template v-if="contentType == ContentType.default">\n\t\t\t\t<div class="bx-im-message-content">\n\t\t\t\t\t<span class="bx-im-message-content-box">\n\t\t\t\t\t\t<template v-if="showName && messageType == MessageType.opponent">\n\t\t\t\t\t\t\t<div class="bx-im-message-content-name" :style="{color: user.color}" @click="clickByUserName(user, $event)">{{!showAvatar? user.name: (user.firstName? user.firstName: user.name)}}</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div :class="[\'bx-im-message-content-body\', referenceContentBodyClassName]">\n\t\t\t\t\t\t\t<template v-for="file in filesData">\n\t\t\t\t\t\t\t\t<bx-messenger-element-file :file="file"/>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<div :class="[\'bx-im-message-content-body-wrap\', {\n\t\t\t\t\t\t\t\t\'bx-im-message-content-body-with-text\': messageText.length > 0,\n\t\t\t\t\t\t\t\t\'bx-im-message-content-body-without-text\': messageText.length <= 0,\n\t\t\t\t\t\t\t}]">\n\t\t\t\t\t\t\t\t<template v-if="messageText">\n\t\t\t\t\t\t\t\t\t<span class="bx-im-message-content-text" v-html="messageText"></span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<span class="bx-im-message-content-params">\n\t\t\t\t\t\t\t\t\t<span class="bx-im-message-content-date">{{formattedDate}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t\x3c!-- keyboard --\x3e\n\t\t\t</template>\n\t\t\t<template v-else-if="contentType == ContentType.richLink">\n\t\t\t\t\x3c!-- richLink type markup --\x3e\n\t\t\t</template>\n\t\t\t<template v-else-if="contentType == ContentType.image || contentType == ContentType.video">\n\t\t\t\t<div class="bx-im-message-content bx-im-message-content-fit">\n\t\t\t\t\t<span class="bx-im-message-content-box">\n\t\t\t\t\t\t<template v-if="showName && messageType == MessageType.opponent">\n\t\t\t\t\t\t\t<div class="bx-im-message-content-name" :style="{color: user.color}" @click="clickByUserName(user, $event)">{{!showAvatar? user.name: (user.firstName? user.firstName: user.name)}}</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div :class="[\'bx-im-message-content-body\', referenceContentBodyClassName]">\n\t\t\t\t\t\t\t<template v-if="contentType == ContentType.image">\n\t\t\t\t\t\t\t\t<template v-for="file in filesData">\n\t\t\t\t\t\t\t\t\t<bx-messenger-element-file-image :file="file"/>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else-if="contentType == ContentType.video">\n\t\t\t\t\t\t\t\t<template v-for="file in filesData">\n\t\t\t\t\t\t\t\t\t<bx-messenger-element-file-video :file="file"/>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<div :class="[\'bx-im-message-content-body-wrap\', {\n\t\t\t\t\t\t\t\t\'bx-im-message-content-body-with-text\': messageText.length > 0,\n\t\t\t\t\t\t\t\t\'bx-im-message-content-body-without-text\': messageText.length <= 0,\n\t\t\t\t\t\t\t}]">\n\t\t\t\t\t\t\t\t<template v-if="messageText">\n\t\t\t\t\t\t\t\t\t<span class="bx-im-message-content-text" v-html="messageText"></span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<span class="bx-im-message-content-params">\n\t\t\t\t\t\t\t\t\t<span class="bx-im-message-content-date">{{formattedDate}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t\x3c!-- keyboard --\x3e\n\t\t\t</template>\n\t\t</div>\n\t'})})(this.window=this.window||{}); //# sourceMappingURL=messenger.component.message.body.bundle.map.jsmessage/body/lang/ua/config.php000066400000000250147744271350012446 0ustar00<? $MESS["IM_MESSENGER_MESSAGE_LIKE"] = "Подобається"; $MESS["IM_MESSENGER_MESSAGE_DELETED"] = "Це повідомлення було видалено."; ?>message/body/lang/en/config.php000066400000000167147744271350012452 0ustar00<? $MESS["IM_MESSENGER_MESSAGE_LIKE"] = "Like"; $MESS["IM_MESSENGER_MESSAGE_DELETED"] = "This message was deleted."; ?>message/body/lang/ru/config.php000066400000000231147744271350012466 0ustar00<? $MESS["IM_MESSENGER_MESSAGE_LIKE"] = "Нравится"; $MESS["IM_MESSENGER_MESSAGE_DELETED"] = "Это сообщение было удалено.";message/body/lang/de/config.php000066400000000206147744271350012432 0ustar00<? $MESS["IM_MESSENGER_MESSAGE_LIKE"] = "Gefällt mir"; $MESS["IM_MESSENGER_MESSAGE_DELETED"] = "Diese Nachricht wurde gelöscht."; ?>message/body/messenger.component.message.body.bundle.js.map000066400000032611147744271350020102 0ustar00{"version":3,"file":"messenger.component.message.body.bundle.js","sources":["messenger.component.message.body.js"],"sourcesContent":["import \"./messenger.component.message.body.css\";\n\n/**\n * Bitrix Messenger\n * Message Vue component\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2019 Bitrix\n */\n\nconst BX = window.BX;\n\nconst MessageType = Object.freeze({\n\tself: 'self',\n\topponent: 'opponent',\n\tsystem: 'system',\n});\n\nconst ContentType = Object.freeze({\n\tdefault: 'default',\n\timage: 'image',\n\tvideo: 'video',\n\trichLink: 'richLink',\n});\n\nconst MessengerStore = Object.freeze({\n\tfiles: BX.Messenger.Model.Files.getName(),\n});\n\nBX.Vue.component('bx-messenger-message-body',\n{\n\t/**\n\t * @emits 'clickByUserName' {user: object, event: MouseEvent}\n\t */\n\tprops:\n\t{\n\t\tuserId: { default: 0 },\n\t\tdialogId: { default: 0 },\n\t\tchatId: { default: 0 },\n\t\tmessageType: { default: MessageType.self },\n\t\tmessage: {\n\t\t\ttype: Object,\n\t\t\tdefault: BX.Messenger.Model.Messages.getMessageBlank\n\t\t},\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\tdefault: BX.Messenger.Model.Users.getUserBlank\n\t\t},\n\t\tfiles: {\n\t\t\ttype: Object,\n\t\t\tdefault: {}\n\t\t},\n\t\tenableEmotions: { default: true },\n\t\tshowName: { default: true },\n\t\tshowAvatar: { default: true },\n\t\treferenceContentBodyClassName: { default: ''},\n\t},\n\tcreated()\n\t{\n\t\tthis.dateFormatFunction = null;\n\t\tthis.cacheFormatDate = {};\n\t},\n\tmethods:\n\t{\n\t\tclickByUserName(user, event)\n\t\t{\n\t\t\tthis.$emit('clickByUserName', {user, event})\n\t\t},\n\t\tformatDate(date)\n\t\t{\n\t\t\tconst id = date.toJSON().slice(0, 10);\n\n\t\t\tif (this.cacheFormatDate[id])\n\t\t\t{\n\t\t\t\treturn this.cacheFormatDate[id];\n\t\t\t}\n\n\t\t\tlet dateFormat = BX.Messenger.Utils.getDateFormatType(\n\t\t\t\tBX.Messenger.Const.dateFormat.message,\n\t\t\t\tthis.$root.$bitrixMessages\n\t\t\t);\n\n\t\t\tthis.cacheFormatDate[id] = this._getDateFormat().format(dateFormat, date);\n\n\t\t\treturn this.cacheFormatDate[id];\n\t\t},\n\t\t_getDateFormat()\n\t\t{\n\t\t\tif (this.dateFormatFunction)\n\t\t\t{\n\t\t\t\treturn this.dateFormatFunction;\n\t\t\t}\n\n\t\t\tthis.dateFormatFunction = Object.create(BX.Main.Date);\n\t\t\tif (this.$root.$bitrixMessages)\n\t\t\t{\n\t\t\t\tthis.dateFormatFunction._getMessage = (phrase) => this.$root.$bitrixMessages[phrase];\n\t\t\t}\n\n\t\t\treturn this.dateFormatFunction;\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tMessageType: () => MessageType,\n\t\tContentType: () => ContentType,\n\n\t\tcontentType()\n\t\t{\n\t\t\tif (this.filesData.length > 0)\n\t\t\t{\n\t\t\t\tlet onlyImage = false;\n\t\t\t\tlet onlyVideo = false;\n\n\t\t\t\tfor (let file of this.filesData)\n\t\t\t\t{\n\t\t\t\t\tif (file.type == 'image')\n\t\t\t\t\t{\n\t\t\t\t\t\tif (onlyVideo)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tonlyVideo = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonlyImage = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (false && file.type == 'video')\n\t\t\t\t\t{\n\t\t\t\t\t\tif (onlyImage)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tonlyImage = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonlyVideo = true;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tonlyImage = false;\n\t\t\t\t\t\tonlyVideo = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (onlyImage)\n\t\t\t\t{\n\t\t\t\t\treturn ContentType.image;\n\t\t\t\t}\n\t\t\t\telse if (onlyVideo)\n\t\t\t\t{\n\t\t\t\t\treturn ContentType.video;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ContentType.default;\n\t\t},\n\n\t\tlocalize()\n\t\t{\n\t\t\treturn BX.Vue.getFilteredPhrases('IM_MESSENGER_MESSAGE_', this.$root.$bitrixMessages);\n\t\t},\n\n\t\tformattedDate()\n\t\t{\n\t\t\treturn this.formatDate(this.message.date);\n\t\t},\n\n\t\tmessageText()\n\t\t{\n\t\t\tif (this.isDeleted)\n\t\t\t{\n\t\t\t\treturn this.localize.IM_MESSENGER_MESSAGE_DELETED;\n\t\t\t}\n\n\t\t\treturn this.message.textConverted;\n\t\t},\n\n\t\tisEdited()\n\t\t{\n\t\t\treturn this.message.params.IS_EDITED == 'Y';\n\t\t},\n\n\t\tisDeleted()\n\t\t{\n\t\t\treturn this.message.params.IS_DELETED == 'Y';\n\t\t},\n\n\t\tfilesData()\n\t\t{\n\t\t\tlet files = [];\n\n\t\t\tif (!this.message.params.FILE_ID || this.message.params.FILE_ID.length <= 0)\n\t\t\t{\n\t\t\t\treturn files;\n\t\t\t}\n\n\t\t\tthis.message.params.FILE_ID.forEach(fileId => {\n\t\t\t\tif (this.files[fileId])\n\t\t\t\t{\n\t\t\t\t\tfiles.push(this.files[fileId]);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn files;\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-message-content-wrap\">\n\t\t\t<template v-if=\"contentType == ContentType.default\">\n\t\t\t\t<div class=\"bx-im-message-content\">\n\t\t\t\t\t<span class=\"bx-im-message-content-box\">\n\t\t\t\t\t\t<template v-if=\"showName && messageType == MessageType.opponent\">\n\t\t\t\t\t\t\t<div class=\"bx-im-message-content-name\" :style=\"{color: user.color}\" @click=\"clickByUserName(user, $event)\">{{!showAvatar? user.name: (user.firstName? user.firstName: user.name)}}</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div :class=\"['bx-im-message-content-body', referenceContentBodyClassName]\">\n\t\t\t\t\t\t\t<template v-for=\"file in filesData\">\n\t\t\t\t\t\t\t\t<bx-messenger-element-file :file=\"file\"/>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<div :class=\"['bx-im-message-content-body-wrap', {\n\t\t\t\t\t\t\t\t'bx-im-message-content-body-with-text': messageText.length > 0,\n\t\t\t\t\t\t\t\t'bx-im-message-content-body-without-text': messageText.length <= 0,\n\t\t\t\t\t\t\t}]\">\n\t\t\t\t\t\t\t\t<template v-if=\"messageText\">\n\t\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-text\" v-html=\"messageText\"></span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-params\">\n\t\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-date\">{{formattedDate}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<!-- keyboard -->\n\t\t\t</template>\n\t\t\t<template v-else-if=\"contentType == ContentType.richLink\">\n\t\t\t\t<!-- richLink type markup -->\n\t\t\t</template>\n\t\t\t<template v-else-if=\"contentType == ContentType.image || contentType == ContentType.video\">\n\t\t\t\t<div class=\"bx-im-message-content bx-im-message-content-fit\">\n\t\t\t\t\t<span class=\"bx-im-message-content-box\">\n\t\t\t\t\t\t<template v-if=\"showName && messageType == MessageType.opponent\">\n\t\t\t\t\t\t\t<div class=\"bx-im-message-content-name\" :style=\"{color: user.color}\" @click=\"clickByUserName(user, $event)\">{{!showAvatar? user.name: (user.firstName? user.firstName: user.name)}}</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div :class=\"['bx-im-message-content-body', referenceContentBodyClassName]\">\n\t\t\t\t\t\t\t<template v-if=\"contentType == ContentType.image\">\n\t\t\t\t\t\t\t\t<template v-for=\"file in filesData\">\n\t\t\t\t\t\t\t\t\t<bx-messenger-element-file-image :file=\"file\"/>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else-if=\"contentType == ContentType.video\">\n\t\t\t\t\t\t\t\t<template v-for=\"file in filesData\">\n\t\t\t\t\t\t\t\t\t<bx-messenger-element-file-video :file=\"file\"/>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<div :class=\"['bx-im-message-content-body-wrap', {\n\t\t\t\t\t\t\t\t'bx-im-message-content-body-with-text': messageText.length > 0,\n\t\t\t\t\t\t\t\t'bx-im-message-content-body-without-text': messageText.length <= 0,\n\t\t\t\t\t\t\t}]\">\n\t\t\t\t\t\t\t\t<template v-if=\"messageText\">\n\t\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-text\" v-html=\"messageText\"></span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-params\">\n\t\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-date\">{{formattedDate}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<!-- keyboard -->\n\t\t\t</template>\n\t\t</div>\n\t`\n});\n\n/*\n\t<span class=\"bx-messenger-content-item-like bx-messenger-content-like-digit-off\">\n\t\t<span> </span>\n\t\t<span class=\"bx-messenger-content-like-digit\"></span>\n\t\t<span data-messageid=\"28571160\" class=\"bx-messenger-content-like-button\">{{localize.IM_MESSENGER_MESSAGE_LIKE}}</span>\n\t</span>\n */"],"names":["BX","window","MessageType","Object","freeze","self","opponent","system","ContentType","default","image","video","richLink","MessengerStore","files","Messenger","Model","Files","getName","Vue","component","props","userId","dialogId","chatId","messageType","message","type","Messages","getMessageBlank","user","Users","getUserBlank","enableEmotions","showName","showAvatar","referenceContentBodyClassName","created","dateFormatFunction","cacheFormatDate","methods","clickByUserName","event","$emit","formatDate","date","id","toJSON","slice","dateFormat","Utils","getDateFormatType","Const","$root","$bitrixMessages","_getDateFormat","format","create","Main","Date","_getMessage","phrase","computed","contentType","filesData","length","onlyImage","onlyVideo","file","localize","getFilteredPhrases","formattedDate","messageText","isDeleted","IM_MESSENGER_MESSAGE_DELETED","textConverted","isEdited","params","IS_EDITED","IS_DELETED","FILE_ID","forEach","fileId","push","template"],"mappings":"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"}message/body/messenger.component.message.body.bundle.js000066400000021546147744271350017333 0ustar00(function (exports) { 'use strict'; /** * Bitrix Messenger * Message Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ var BX = window.BX; var _MessageType = Object.freeze({ self: 'self', opponent: 'opponent', system: 'system' }); var _ContentType = Object.freeze({ default: 'default', image: 'image', video: 'video', richLink: 'richLink' }); var MessengerStore = Object.freeze({ files: BX.Messenger.Model.Files.getName() }); BX.Vue.component('bx-messenger-message-body', { /** * @emits 'clickByUserName' {user: object, event: MouseEvent} */ props: { userId: { default: 0 }, dialogId: { default: 0 }, chatId: { default: 0 }, messageType: { default: _MessageType.self }, message: { type: Object, default: BX.Messenger.Model.Messages.getMessageBlank }, user: { type: Object, default: BX.Messenger.Model.Users.getUserBlank }, files: { type: Object, default: {} }, enableEmotions: { default: true }, showName: { default: true }, showAvatar: { default: true }, referenceContentBodyClassName: { default: '' } }, created: function created() { this.dateFormatFunction = null; this.cacheFormatDate = {}; }, methods: { clickByUserName: function clickByUserName(user, event) { this.$emit('clickByUserName', { user: user, event: event }); }, formatDate: function formatDate(date) { var id = date.toJSON().slice(0, 10); if (this.cacheFormatDate[id]) { return this.cacheFormatDate[id]; } var dateFormat = BX.Messenger.Utils.getDateFormatType(BX.Messenger.Const.dateFormat.message, this.$root.$bitrixMessages); this.cacheFormatDate[id] = this._getDateFormat().format(dateFormat, date); return this.cacheFormatDate[id]; }, _getDateFormat: function _getDateFormat() { var _this = this; if (this.dateFormatFunction) { return this.dateFormatFunction; } this.dateFormatFunction = Object.create(BX.Main.Date); if (this.$root.$bitrixMessages) { this.dateFormatFunction._getMessage = function (phrase) { return _this.$root.$bitrixMessages[phrase]; }; } return this.dateFormatFunction; } }, computed: { MessageType: function MessageType() { return _MessageType; }, ContentType: function ContentType() { return _ContentType; }, contentType: function contentType() { if (this.filesData.length > 0) { var onlyImage = false; var onlyVideo = false; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = this.filesData[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var file = _step.value; if (file.type == 'image') { if (onlyVideo) { onlyVideo = false; break; } onlyImage = true; } else { onlyImage = false; onlyVideo = false; break; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } if (onlyImage) { return _ContentType.image; } else if (onlyVideo) { return _ContentType.video; } } return _ContentType.default; }, localize: function localize() { return BX.Vue.getFilteredPhrases('IM_MESSENGER_MESSAGE_', this.$root.$bitrixMessages); }, formattedDate: function formattedDate() { return this.formatDate(this.message.date); }, messageText: function messageText() { if (this.isDeleted) { return this.localize.IM_MESSENGER_MESSAGE_DELETED; } return this.message.textConverted; }, isEdited: function isEdited() { return this.message.params.IS_EDITED == 'Y'; }, isDeleted: function isDeleted() { return this.message.params.IS_DELETED == 'Y'; }, filesData: function filesData() { var _this2 = this; var files = []; if (!this.message.params.FILE_ID || this.message.params.FILE_ID.length <= 0) { return files; } this.message.params.FILE_ID.forEach(function (fileId) { if (_this2.files[fileId]) { files.push(_this2.files[fileId]); } }); return files; } }, template: "\n\t\t<div class=\"bx-im-message-content-wrap\">\n\t\t\t<template v-if=\"contentType == ContentType.default\">\n\t\t\t\t<div class=\"bx-im-message-content\">\n\t\t\t\t\t<span class=\"bx-im-message-content-box\">\n\t\t\t\t\t\t<template v-if=\"showName && messageType == MessageType.opponent\">\n\t\t\t\t\t\t\t<div class=\"bx-im-message-content-name\" :style=\"{color: user.color}\" @click=\"clickByUserName(user, $event)\">{{!showAvatar? user.name: (user.firstName? user.firstName: user.name)}}</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div :class=\"['bx-im-message-content-body', referenceContentBodyClassName]\">\n\t\t\t\t\t\t\t<template v-for=\"file in filesData\">\n\t\t\t\t\t\t\t\t<bx-messenger-element-file :file=\"file\"/>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<div :class=\"['bx-im-message-content-body-wrap', {\n\t\t\t\t\t\t\t\t'bx-im-message-content-body-with-text': messageText.length > 0,\n\t\t\t\t\t\t\t\t'bx-im-message-content-body-without-text': messageText.length <= 0,\n\t\t\t\t\t\t\t}]\">\n\t\t\t\t\t\t\t\t<template v-if=\"messageText\">\n\t\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-text\" v-html=\"messageText\"></span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-params\">\n\t\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-date\">{{formattedDate}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<!-- keyboard -->\n\t\t\t</template>\n\t\t\t<template v-else-if=\"contentType == ContentType.richLink\">\n\t\t\t\t<!-- richLink type markup -->\n\t\t\t</template>\n\t\t\t<template v-else-if=\"contentType == ContentType.image || contentType == ContentType.video\">\n\t\t\t\t<div class=\"bx-im-message-content bx-im-message-content-fit\">\n\t\t\t\t\t<span class=\"bx-im-message-content-box\">\n\t\t\t\t\t\t<template v-if=\"showName && messageType == MessageType.opponent\">\n\t\t\t\t\t\t\t<div class=\"bx-im-message-content-name\" :style=\"{color: user.color}\" @click=\"clickByUserName(user, $event)\">{{!showAvatar? user.name: (user.firstName? user.firstName: user.name)}}</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<div :class=\"['bx-im-message-content-body', referenceContentBodyClassName]\">\n\t\t\t\t\t\t\t<template v-if=\"contentType == ContentType.image\">\n\t\t\t\t\t\t\t\t<template v-for=\"file in filesData\">\n\t\t\t\t\t\t\t\t\t<bx-messenger-element-file-image :file=\"file\"/>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else-if=\"contentType == ContentType.video\">\n\t\t\t\t\t\t\t\t<template v-for=\"file in filesData\">\n\t\t\t\t\t\t\t\t\t<bx-messenger-element-file-video :file=\"file\"/>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<div :class=\"['bx-im-message-content-body-wrap', {\n\t\t\t\t\t\t\t\t'bx-im-message-content-body-with-text': messageText.length > 0,\n\t\t\t\t\t\t\t\t'bx-im-message-content-body-without-text': messageText.length <= 0,\n\t\t\t\t\t\t\t}]\">\n\t\t\t\t\t\t\t\t<template v-if=\"messageText\">\n\t\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-text\" v-html=\"messageText\"></span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-params\">\n\t\t\t\t\t\t\t\t\t<span class=\"bx-im-message-content-date\">{{formattedDate}}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<!-- keyboard -->\n\t\t\t</template>\n\t\t</div>\n\t" }); /* <span class="bx-messenger-content-item-like bx-messenger-content-like-digit-off"> <span> </span> <span class="bx-messenger-content-like-digit"></span> <span data-messageid="28571160" class="bx-messenger-content-like-button">{{localize.IM_MESSENGER_MESSAGE_LIKE}}</span> </span> */ }((this.window = this.window || {}))); //# sourceMappingURL=messenger.component.message.body.bundle.js.map message/body/messenger.component.message.body.bundle.min.css000066400000027462147744271350020274 0ustar00.bx-im-message-content-wrap{padding-bottom:1px}.bx-im-message-content{font:14px/19px "Helvetica Neue",Helvetica,Arial,sans-serif;display:block;padding:8px 16px;border:1px solid rgba(0,0,0,.07);border-radius:12px;background:#cfefff;color:#333;-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,0.15);box-shadow:0 1px 0 0 rgba(0,0,0,0.15);word-break:break-word;-webkit-transition:background-color 1s,color 1s;-o-transition:background-color 1s,color 1s;transition:background-color 1s,color 1s;overflow:hidden}.bx-im-message-content a{color:#1d54a2;text-decoration:underline}.bx-im-message-content a:hover{text-decoration:none}.bx-im-message-type-opponent .bx-im-message-content,.bx-im-message-type-opponent .bx-im-message-content-name,.bx-im-message-type-opponent .bx-im-message-content-body-with-text{border:0;background-color:#fff}.bx-im-message-type-system .bx-im-message-content{border:0;background:transparent;-webkit-box-shadow:none;box-shadow:none;color:#717171}.bx-im-message-status-unread .bx-im-message-content,.bx-im-message-status-unread .bx-im-message-content-name,.bx-im-message-status-unread .bx-im-message-content-body-with-text{background-color:#fffadd}.bx-im-message-status-deleted .bx-im-message-content{font-style:italic;color:#7d7d7d}.bx-im-message-status-blink .bx-im-message-content{background-color:#fffadd}.bx-im-message-status-error .bx-im-message-content{background-color:#fcdcde;-webkit-box-shadow:0 1px 0 0 rgba(255,0,0,0.15);box-shadow:0 1px 0 0 rgba(255,0,0,0.15)}.bx-im-message-content-box{padding:7px 0 7px;display:inline-block;word-wrap:break-word;width:100%;vertical-align:middle}.bx-im-message-content-box .bx-smile{vertical-align:bottom}.bx-im-message-content-name{font-size:14px;color:#048bd0;cursor:pointer;-webkit-transition:background-color 1s,color 1s;-o-transition:background-color 1s,color 1s;transition:background-color 1s,color 1s}.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-content-name{display:none}.bx-im-message-content-body-with-text{-webkit-transition:background-color 1s,color 1s;-o-transition:background-color 1s,color 1s;transition:background-color 1s,color 1s}.bx-im-message-content-quote{display:inline-block;vertical-align:top}.bx-im-message-content-quote-wrap{border-left:2px solid #c2c4c6;padding-left:8px;font-size:12px;color:#505050;padding-bottom:2px;padding-top:0}.bx-im-message-content-quote-name{padding-bottom:0;font-size:12px;color:#767a7e;padding-top:1px;white-space:nowrap}.bx-im-message-content-code{white-space:pre-line;padding-left:5px;color:#505050;border-left:3px solid #505050}.bx-im-message-content-quote-time{display:inline-block;padding-left:5px;font-size:11px}.bx-im-message-content-params{float:right;display:block;white-space:nowrap;position:relative;padding-right:10px;margin-right:-10px}.bx-im-message-content-date{display:inline-block;font:11px/18px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#546d77;text-align:right;padding-top:1px;padding-left:10px}.bx-im-message-type-opponent .bx-im-message-content-date{color:#8e8e8e}.bx-im-message-type-system .bx-im-message-content-date{color:#717171}.bx-im-message-status-error .bx-im-message-content-date{color:#fa6168}.bx-im-message-status-edited .bx-im-message-content-date{color:#484848;padding-left:23px}.bx-im-message-status-edited .bx-im-message-content-date:before{position:absolute;content:'';background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A');background-repeat:no-repeat;background-size:cover;height:8px;width:8px;margin-top:5px;margin-left:-13px}.bx-im-message .bx-im-message-content-fit{padding:0;border:0}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-box{padding:0}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-name{padding:10px 16px 9px 16px}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text{padding:0 16px 0 16px}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-params{margin-top:-28px}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-date{color:#fff;text-shadow:0 0 1px #000,0 0 1px #fff}.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-with-text{padding:7px 16px 8px 16px}.bx-im-smile-like{display:inline-block;height:20px;width:20px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%233BC8F5%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2016.6095c0-.5573.4434-1.009%201.0094-1.009h1.9812c.5575%200%201.0094.4388%201.0094%201.009v10.313c0%20.5573-.4434%201.009-1.0094%201.009h-1.9812c-.5575%200-1.0094-.4388-1.0094-1.009v-10.313zm20.1278-1.294c1.034%200%201.2214%201.0147%201.2147%201.7227-.0067.708-.1353%201.406-1.048%201.854.6713.6454.4347%202.6414-.7707%203.104.7287.3747.4527%202.634-.6666%202.8747.8333.7293-.0787%202.6447-.8547%202.938-.7753.2927-1.614.21-1.614.21s-.9093.0393-1.042.0393h-8.3567c-.7253%200-1.3146-.58-1.3146-1.296V16.1576c0-.342.14-.6727.386-.9154%200%200%203.2346-2.266%205.9053-6.1786.3753-.55%201.1433-.508%201.6587%200%20.246.242.3866.5726.3866.9146v1.046c0%20.0967-.012.3134-.0933.8507-.0827.538-1.152%202.9487-1.152%202.9487-.144.638.64.492%201.4867.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-size:cover}.bx-im-smile-dislike{display:inline-block;height:20px;width:20px;background-image:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%23FE908E%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2024.1154c0%20.5573.4434%201.009%201.0094%201.009h1.9812c.5575%200%201.0094-.4388%201.0094-1.009v-10.313c0-.5573-.4434-1.009-1.0094-1.009h-1.9812c-.5575%200-1.0094.4388-1.0094%201.009v10.313zm20.1278%201.294c1.034%200%201.2214-1.0147%201.2147-1.7227-.0067-.708-.1353-1.406-1.048-1.854.6713-.6454.4347-2.6414-.7707-3.104.7287-.3747.4527-2.634-.6666-2.8747.8333-.7293-.0787-2.6447-.8547-2.938-.7753-.2927-1.614-.21-1.614-.21s-.9093-.0393-1.042-.0393h-8.3567c-.7253%200-1.3146.58-1.3146%201.296v10.6046c0%20.342.14.6727.386.9154%200%200%203.2346%202.266%205.9053%206.1786.3753.55%201.1433.508%201.6587%200%20.246-.242.3866-.5726.3866-.9146v-1.046c0-.0967-.012-.3134-.0933-.8507-.0827-.538-1.152-2.9487-1.152-2.9487-.144-.638.64-.492%201.4867-.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');background-size:cover}.bx-messenger-content-item-params{float:right;display:block;white-space:nowrap;position:relative}.bx-messenger-content-item-params{padding-right:10px;margin-right:-10px;-webkit-transition:background .3s;-o-transition:background .3s;transition:background .3s;border-radius:12px;background:transparent}.bx-messenger-content-item-content-without-padding:hover .bx-messenger-content-item-params{background-color:rgba(14,14,14,0.78)}.bx-messenger-content-item-ol-start .bx-messenger-content-item-params{display:none}.bx-messenger-content-item-like{display:inline-block;font:11px/18px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#bac5cd;text-align:right;padding-top:1px;padding-left:3px;margin-right:-9px;white-space:nowrap;-moz-user-select:none;-o-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.bx-messenger-content-like-digit{font:11px/18px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#b0b6be;display:inline-block;min-width:6px;cursor:pointer}.bx-messenger-content-item-like-disable .bx-messenger-content-like-button,.bx-messenger-content-like-digit-off{cursor:default}.bx-messenger-content-like-button{background:no-repeat scroll -129px -1073px transparent;cursor:pointer;display:inline-block;position:relative;vertical-align:top;line-height:18px;padding-left:18px;padding-right:10px;color:#c2c4c7;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s;height:19px}.bx-messenger-content-item-liked .bx-messenger-content-like-button{background-position:-129px -1047px}.bx-messenger-content-item-liked .bx-messenger-content-like-digit,.bx-im-message-content-self .bx-messenger-content-item-liked .bx-messenger-content-like-digit{color:#f99500}.bx-messenger-content-item-system .bx-messenger-content-item-liked .bx-messenger-content-like-digit{color:#378ad1}.bx-messenger-content-item-system .bx-messenger-content-like-button{color:#c6c8cb}.bx-messenger-content-item-liked .bx-messenger-content-like-digit,.bx-im-message-type-opponent .bx-messenger-content-item-liked .bx-messenger-content-like-digit{color:#6a9cd9}.bx-messenger-content-item-content-progress-error .bx-messenger-content-item-like{display:none}.bx-messenger-content-item-vote .bx-messenger-content-item-like{display:none}.bx-messenger-content-item-ol-output .bx-messenger-content-item-date{color:#bac5cd!important}.bx-messenger-content-item-ol-attention .bx-messenger-content-item-date{color:#a6aaae!important}.bx-messenger-content-item-system .bx-messenger-content-item-date{color:#fff}.bx-messenger-content-item-new .bx-messenger-content-item-date{color:#bbb178}.bx-messenger-content-item-content-progress-error .bx-messenger-content-item-date{color:#fa6168}.bx-messenger-content-item-ol-output .bx-messenger-content-item-date,.bx-messenger-content-item-vote .bx-messenger-content-item-date{color:#859aa9!important}.bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date{padding-right:15px;cursor:pointer}.bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date:after{background:rgba(255,255,255,.9) no-repeat scroll -58px -4px;content:'';height:16px;position:absolute;width:17px;margin-left:5px;margin-top:1px;border-radius:50%}.bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date{padding-right:0;cursor:default}.bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date:after{display:none}.bx-messenger-content-item-notice .bx-messenger-content-item-date{color:#717171}.bx-messenger-content-item-ol-output .bx-messenger-content-item-date{color:#bac5cd!important}.bx-messenger-content-item-ol-attention .bx-messenger-content-item-date{color:#a6aaae!important}.bx-messenger-content-item-menu-with-apps{background-position:0 -30px;opacity:.8}.bx-messenger-content-item-menu-with-apps:hover{background-position:0 -15px}.bx-messenger-content-item:hover .bx-messenger-content-item-menu{opacity:.6}.bx-messenger-content-item:hover .bx-messenger-content-item-menu-with-apps{opacity:.8}.bx-messenger-content-item-menu-hover .bx-messenger-content-item-menu{opacity:1!important}.bx-im-message-type-opponent .bx-messenger-content-item-menu{float:right;margin-left:0;margin-right:-42px}.bx-messenger-chat-guest .bx-messenger-content-item-menu{display:none}.bx-notifier-popup-user-more,.bx-messenger-cl,.bx-messenger-cl-notify-button,.bx-messenger-content-item-avatar,.bx-messenger-content-item-date,.bx-messenger-history-item-avatar,.bx-messenger-textarea-cntr-enter,.bx-notifier-item-help-popup{-moz-user-select:none;-o-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:default}message/body/bundle.config.min.js000066400000000266147744271350013006 0ustar00module.exports={input:"./messenger.component.message.body.js",output:"./messenger.component.message.body.bundle.js",namespaceFunction:null}; //# sourceMappingURL=bundle.config.map.jsmessage/body/bundle.config.map.js000066400000000312147744271350012770 0ustar00{"version":3,"sources":["bundle.config.js"],"names":["module","exports","input","output","namespaceFunction"],"mappings":"AAAAA,OAAOC,SACNC,MAAO,wCACPC,OAAQ,+CACRC,kBAAmB","file":"bundle.config.map.js"}message/body/messenger.component.message.body.bundle.map.js000066400000007454147744271350020111 0ustar00{"version":3,"sources":["messenger.component.message.body.bundle.js"],"names":["exports","BX","window","_MessageType","Object","freeze","self","opponent","system","_ContentType","default","image","video","richLink","MessengerStore","files","Messenger","Model","Files","getName","Vue","component","props","userId","dialogId","chatId","messageType","message","type","Messages","getMessageBlank","user","Users","getUserBlank","enableEmotions","showName","showAvatar","referenceContentBodyClassName","created","this","dateFormatFunction","cacheFormatDate","methods","clickByUserName","event","$emit","formatDate","date","id","toJSON","slice","dateFormat","Utils","getDateFormatType","Const","$root","$bitrixMessages","_getDateFormat","format","_this","create","Main","Date","_getMessage","phrase","computed","MessageType","ContentType","contentType","filesData","length","onlyImage","onlyVideo","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_iterator","Symbol","iterator","_step","next","done","file","value","err","return","localize","getFilteredPhrases","formattedDate","messageText","isDeleted","IM_MESSENGER_MESSAGE_DELETED","textConverted","isEdited","params","IS_EDITED","IS_DELETED","_this2","FILE_ID","forEach","fileId","push","template"],"mappings":"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","file":"messenger.component.message.body.bundle.map.js"}message/body/messenger.component.message.body.bundle.css.map000066400000040263147744271350020260 0ustar00{"version":3,"sources":["im/install/js/messenger/component/message/body/messenger.component.message.body.css"],"names":[],"mappings":"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","file":"im/install/js/messenger/component/message/body/messenger.component.message.body.bundle.css","sourcesContent":[".bx-im-message-content-wrap {\n\tpadding-bottom: 1px;\n}\n.bx-im-message-content {\n\tfont: 14px/19px \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\tdisplay: block;\n\tpadding: 8px 16px;\n\tborder: 1px solid rgba(0,0,0,.07);\n\tborder-radius: 12px;\n\tbackground: #CFEFFF;\n\tcolor: #333;\n\tbox-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.15);\n\tword-break: break-word;\n\ttransition: background-color 1s, color 1s;\n\toverflow: hidden;\n}\n\n.bx-im-message-content a {color:#1d54a2; text-decoration:underline;}\n.bx-im-message-content a:hover {text-decoration:none;}\n\n.bx-im-message-type-opponent .bx-im-message-content,\n.bx-im-message-type-opponent .bx-im-message-content-name,\n.bx-im-message-type-opponent .bx-im-message-content-body-with-text {\n\tborder: 0;\n\tbackground-color: #fff;\n}\n\n.bx-im-message-type-system .bx-im-message-content {\n\tborder: 0;\n\tbackground: transparent;\n\tbox-shadow: none;\n\tcolor: #717171;\n}\n\n.bx-im-message-status-unread .bx-im-message-content,\n.bx-im-message-status-unread .bx-im-message-content-name,\n.bx-im-message-status-unread .bx-im-message-content-body-with-text {\n\tbackground-color: #fffadd;\n}\n\n.bx-im-message-status-deleted .bx-im-message-content {\n\tfont-style: italic;\n color: #7d7d7d;\n}\n\n.bx-im-message-status-blink .bx-im-message-content {\n\tbackground-color: #fffadd;\n}\n\n.bx-im-message-status-error .bx-im-message-content {\n\tbackground-color: #fcdcde;\n\tbox-shadow: 0 1px 0 0 rgba(255, 0, 0, 0.15);\n}\n\n.bx-im-message-content-box {\n\tpadding: 7px 0 7px;\n\tdisplay: inline-block;\n\tword-wrap: break-word;\n\twidth: 100%;\n\tvertical-align: middle;\n}\n\n.bx-im-message-content-box .bx-smile {\n\tvertical-align: bottom;\n}\n\n.bx-im-message-content-name {\n\tfont-size: 14px;\n\tcolor: #048bd0;\n\tcursor: pointer;\n\ttransition: background-color 1s, color 1s;\n}\n.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-content-name {\n\tdisplay: none;\n}\n\n.bx-im-message-content-body-with-text\n{\n\ttransition: background-color 1s, color 1s;\n}\n\n.bx-im-message-content-quote {\n\tdisplay: inline-block;\n\tvertical-align: top;\n}\n.bx-im-message-content-quote-wrap {\n\tborder-left: 2px solid #c2c4c6;\n\tpadding-left: 8px;\n\tfont-size: 12px;\n\tcolor: #505050;\n\tpadding-bottom: 2px;\n\tpadding-top: 0;\n}\n.bx-im-message-content-quote-name {\n\tpadding-bottom: 0;\n\tfont-size: 12px;\n\tcolor: #767a7e;\n\tpadding-top: 1px;\n\twhite-space: nowrap;\n}\n.bx-im-message-content-code {\n\twhite-space: pre-line;\n\tpadding-left: 5px;\n\tcolor: #505050;\n\tborder-left: 3px solid #505050;\n}\n.bx-im-message-content-quote-time {\n\tdisplay: inline-block;\n\tpadding-left: 5px;\n\tfont-size: 11px;\n}\n\n\n.bx-im-message-content-params {\n\tfloat: right;\n\tdisplay: block;\n\twhite-space: nowrap;\n\tposition: relative;\n\tpadding-right: 10px;\n margin-right: -10px;\n}\n\n.bx-im-message-content-date {\n\tdisplay:inline-block;\n\tfont: 11px/18px \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\tcolor: #546d77;\n\ttext-align: right;\n\tpadding-top: 1px;\n\tpadding-left: 10px;\n}\n.bx-im-message-type-opponent .bx-im-message-content-date { color: #8e8e8e; }\n.bx-im-message-type-system .bx-im-message-content-date { color: #717171; }\n.bx-im-message-status-error .bx-im-message-content-date { color: #fa6168; }\n\n.bx-im-message-status-edited .bx-im-message-content-date { color: #484848; padding-left: 23px; }\n.bx-im-message-status-edited .bx-im-message-content-date:before {\n\tposition: absolute;\n\tcontent: '';\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%0A%20%20%3Cpath%20fill%3D%22%23717171%22%20fill-rule%3D%22evenodd%22%20d%3D%22M7.8128%204.807L5.1751%202.1694a.041.041%200%200%200-.0578%200L.0328%207.2538c-.0739.0733%200%202.696%200%202.696s2.6222.0734%202.6961%200l5.0845-5.0844a.0416.0416%200%200%200-.0006-.0583zM1.0647%208.9376v-1.047h1.0495V8.94H1.0647v-.0025zm8.8785-6.2584L7.3054.0413a.0421.0421%200%200%200-.0578%200L6.1144%201.1746a.0416.0416%200%200%200%200%20.0577l2.6378%202.6378a.041.041%200%200%200%20.0577%200l1.1338-1.1333a.0427.0427%200%200%200-.0028-.0577h.0023z%22/%3E%0A%3C/svg%3E%0A');\n\tbackground-repeat: no-repeat;\n\tbackground-size: cover;\n\theight: 8px;\n\twidth: 8px;\n\tmargin-top: 5px;\n\tmargin-left: -13px;\n}\n\n.bx-im-message .bx-im-message-content-fit {\n\tpadding: 0;\n\tborder: 0;\n}\n.bx-im-message .bx-im-message-content-fit .bx-im-message-content-box {\n\tpadding:0;\n}\n.bx-im-message .bx-im-message-content-fit .bx-im-message-content-name {\n\tpadding: 10px 16px 9px 16px;\n}\n.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text\n{\n\tpadding: 0 16px 0 16px\n}\n.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-params {\n\tmargin-top: -28px;\n}\n.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-without-text .bx-im-message-content-date {\n\tcolor: #fff;\n\ttext-shadow: 0 0 1px #000, 0 0 1px #fff;\n}\n.bx-im-message .bx-im-message-content-fit .bx-im-message-content-body-with-text {\n\tpadding: 7px 16px 8px 16px;\n}\n\n.bx-im-smile-like {\n\tdisplay: inline-block;\n\theight: 20px;\n\twidth: 20px;\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%233BC8F5%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2016.6095c0-.5573.4434-1.009%201.0094-1.009h1.9812c.5575%200%201.0094.4388%201.0094%201.009v10.313c0%20.5573-.4434%201.009-1.0094%201.009h-1.9812c-.5575%200-1.0094-.4388-1.0094-1.009v-10.313zm20.1278-1.294c1.034%200%201.2214%201.0147%201.2147%201.7227-.0067.708-.1353%201.406-1.048%201.854.6713.6454.4347%202.6414-.7707%203.104.7287.3747.4527%202.634-.6666%202.8747.8333.7293-.0787%202.6447-.8547%202.938-.7753.2927-1.614.21-1.614.21s-.9093.0393-1.042.0393h-8.3567c-.7253%200-1.3146-.58-1.3146-1.296V16.1576c0-.342.14-.6727.386-.9154%200%200%203.2346-2.266%205.9053-6.1786.3753-.55%201.1433-.508%201.6587%200%20.246.242.3866.5726.3866.9146v1.046c0%20.0967-.012.3134-.0933.8507-.0827.538-1.152%202.9487-1.152%202.9487-.144.638.64.492%201.4867.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');\n\tbackground-size: cover;\n\n}\n.bx-im-smile-dislike {\n\tdisplay: inline-block;\n\theight: 20px;\n\twidth: 20px;\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Crect%20width%3D%2240%22%20height%3D%2240%22%20fill%3D%22%23FE908E%22%20rx%3D%2220%22/%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M10%2024.1154c0%20.5573.4434%201.009%201.0094%201.009h1.9812c.5575%200%201.0094-.4388%201.0094-1.009v-10.313c0-.5573-.4434-1.009-1.0094-1.009h-1.9812c-.5575%200-1.0094.4388-1.0094%201.009v10.313zm20.1278%201.294c1.034%200%201.2214-1.0147%201.2147-1.7227-.0067-.708-.1353-1.406-1.048-1.854.6713-.6454.4347-2.6414-.7707-3.104.7287-.3747.4527-2.634-.6666-2.8747.8333-.7293-.0787-2.6447-.8547-2.938-.7753-.2927-1.614-.21-1.614-.21s-.9093-.0393-1.042-.0393h-8.3567c-.7253%200-1.3146.58-1.3146%201.296v10.6046c0%20.342.14.6727.386.9154%200%200%203.2346%202.266%205.9053%206.1786.3753.55%201.1433.508%201.6587%200%20.246-.242.3866-.5726.3866-.9146v-1.046c0-.0967-.012-.3134-.0933-.8507-.0827-.538-1.152-2.9487-1.152-2.9487-.144-.638.64-.492%201.4867-.492h5.8746z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E%0A');\n\tbackground-size: cover;\n}\n\n\n/*\ntemporary\n */\n\n\n/* region 04. Message params (date, like, etc) */\n.bx-messenger-content-item-params { float: right;display: block; white-space: nowrap; position: relative;}\n.bx-messenger-content-item-params {\n\tpadding-right: 10px;\n margin-right: -10px;\n\ttransition: background .3s;\n\tborder-radius: 12px;\n\tbackground: transparent;\n}\n.bx-messenger-content-item-content-without-padding:hover .bx-messenger-content-item-params {\n\tbackground-color: rgba(14, 14, 14, 0.78);\n}\n.bx-messenger-content-item-ol-start .bx-messenger-content-item-params { display: none; }\n\n.bx-messenger-content-item-like {\n\tdisplay:inline-block;\n\tfont: 11px/18px \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\tcolor: #bac5cd; text-align: right; padding-top: 1px; padding-left: 3px;margin-right: -9px;white-space: nowrap;\n\t-moz-user-select:none; -khtml-user-select:none; -o-user-select:none; -webkit-user-select:none; user-select:none;\n}\n.bx-messenger-content-like-digit {\n\tfont: 11px/18px \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\tcolor: #b0b6be;display: inline-block;min-width: 6px; cursor: pointer;\n}\n.bx-messenger-content-item-like-disable .bx-messenger-content-like-button,\n.bx-messenger-content-like-digit-off { cursor: default; }\n.bx-messenger-content-like-button {\n\tbackground: no-repeat scroll -129px -1073px transparent;\n\tcursor: pointer;\n\tdisplay: inline-block;\n\tposition: relative;\n\tvertical-align: top;\n\tline-height: 18px;\n\tpadding-left: 18px;\n\tpadding-right: 10px;\n\tcolor: #c2c4c7;\n\ttransition: all .3s;\n\theight: 19px;\n}\n\n.bx-messenger-content-item-liked .bx-messenger-content-like-button {background-position: -129px -1047px;}\n.bx-messenger-content-item-liked .bx-messenger-content-like-digit,\n.bx-im-message-content-self .bx-messenger-content-item-liked .bx-messenger-content-like-digit { color: #f99500;}\n.bx-messenger-content-item-system .bx-messenger-content-item-liked .bx-messenger-content-like-digit { color: #378ad1;}\n.bx-messenger-content-item-system .bx-messenger-content-like-button {color: #c6c8cb;}\n\n.bx-messenger-content-item-liked .bx-messenger-content-like-digit,\n.bx-im-message-type-opponent .bx-messenger-content-item-liked .bx-messenger-content-like-digit {color: #6a9cd9;}\n\n.bx-messenger-content-item-content-progress-error .bx-messenger-content-item-like { display: none; }\n.bx-messenger-content-item-vote .bx-messenger-content-item-like {display: none;}\n\n.bx-messenger-content-item-ol-output .bx-messenger-content-item-date { color: #bac5cd!important; }\n.bx-messenger-content-item-ol-attention .bx-messenger-content-item-date { color: #a6aaae!important; }\n\n.bx-messenger-content-item-system .bx-messenger-content-item-date { color: #fff; }\n.bx-messenger-content-item-new .bx-messenger-content-item-date { color: #bbb178; }\n.bx-messenger-content-item-content-progress-error .bx-messenger-content-item-date { color: #fa6168; }\n\n.bx-messenger-content-item-ol-output .bx-messenger-content-item-date,\n.bx-messenger-content-item-vote .bx-messenger-content-item-date { color: #859aa9!important; }\n\n.bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date { padding-right: 15px; cursor: pointer; }\n.bx-messenger-chat-lines .bx-messenger-content-item-system .bx-messenger-content-item-date:after {\n background: rgba(255,255,255,.9) no-repeat scroll -58px -4px;\n content: '';\n height: 16px;\n position: absolute;\n width: 17px;\n margin-left: 5px;\n margin-top: 1px;\n border-radius: 50%;\n}\n.bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date { padding-right: 0; cursor: default;}\n.bx-messenger-chat-lines .bx-messenger-content-item-ol-output .bx-messenger-content-item-date:after { display: none; }\n.bx-messenger-content-item-notice .bx-messenger-content-item-date { color: #717171; }\n\n.bx-messenger-content-item-ol-output .bx-messenger-content-item-date { color: #bac5cd!important; }\n.bx-messenger-content-item-ol-attention .bx-messenger-content-item-date { color: #a6aaae!important; }\n\n.bx-messenger-content-item-menu-with-apps { background-position: 0 -30px; opacity: .8; }\n.bx-messenger-content-item-menu-with-apps:hover { background-position: 0 -15px; }\n.bx-messenger-content-item:hover .bx-messenger-content-item-menu { opacity: 0.6 }\n.bx-messenger-content-item:hover .bx-messenger-content-item-menu-with-apps { opacity: .8 }\n.bx-messenger-content-item-menu-hover .bx-messenger-content-item-menu { opacity: 1!important; }\n.bx-im-message-type-opponent .bx-messenger-content-item-menu { float: right; margin-left: 0; margin-right: -42px; }\n.bx-messenger-chat-guest .bx-messenger-content-item-menu { display: none; }\n\n/* endregion 03. Message params (date, like, etc) */\n\n.bx-notifier-popup-user-more, .bx-messenger-cl, .bx-messenger-cl-notify-button, .bx-messenger-content-item-avatar, .bx-messenger-content-item-date, .bx-messenger-history-item-avatar,\n.bx-messenger-textarea-cntr-enter, .bx-notifier-item-help-popup { -moz-user-select:none; -khtml-user-select:none; -o-user-select:none; -webkit-user-select:none; user-select:none; cursor: default; }\n"]}message/lang/ua/config.php000066400000000642147744271350011516 0ustar00<? $MESS["IM_MESSENGER_MESSAGE_USER_ANONYM"] = "Анонім"; $MESS["IM_MESSENGER_MESSAGE_MENU_TITLE"] = "Натисніть, щоб відкрити меню дій або клікніть утримуючи #SHORTCUT# для цитування повідомлення"; $MESS["IM_MESSENGER_MESSAGE_RETRY_TITLE"] = "Клікніть для повторного відправлення повідомлення"; ?>message/lang/en/config.php000066400000000426147744271350011513 0ustar00<? $MESS["IM_MESSENGER_MESSAGE_USER_ANONYM"] = "Anonymous"; $MESS["IM_MESSENGER_MESSAGE_MENU_TITLE"] = "Click to open the action menu, or click while holding #SHORTCUT# down to quote the message"; $MESS["IM_MESSENGER_MESSAGE_RETRY_TITLE"] = "Click to send the message again"; ?>message/lang/ru/config.php000066400000000624147744271350011537 0ustar00<? $MESS["IM_MESSENGER_MESSAGE_USER_ANONYM"] = "Аноним"; $MESS["IM_MESSENGER_MESSAGE_MENU_TITLE"] = "Кликните для открытия меню действий или кликните удерживая #SHORTCUT# для цитирования сообщения"; $MESS["IM_MESSENGER_MESSAGE_RETRY_TITLE"] = "Кликните для повторной отправки сообщения";message/lang/de/config.php000066400000000526147744271350011502 0ustar00<? $MESS["IM_MESSENGER_MESSAGE_USER_ANONYM"] = "Anonymus"; $MESS["IM_MESSENGER_MESSAGE_MENU_TITLE"] = "Klicken Sie, um das Kontextmenü zu öffnen, oder klicken Sie, indem Sie gleichzeitig auf #SHORTCUT# drücken, um die Nachricht zu zitieren"; $MESS["IM_MESSENGER_MESSAGE_RETRY_TITLE"] = "Klicken Sie, um die Nachricht erneut zu senden"; ?>message/messenger.component.message.bundle.min.js000066400000012455147744271350016223 0ustar00(function(t){"use strict";var e=Object.freeze({self:"self",opponent:"opponent",system:"system"});var s=Object.freeze({messages:BX.Messenger.Model.Messages.getName(),dialogues:BX.Messenger.Model.Dialogues.getName(),users:BX.Messenger.Model.Users.getName(),files:BX.Messenger.Model.Files.getName()});BX.Vue.component("bx-messenger-message",{props:{userId:{default:0},dialogId:{default:0},chatId:{default:0},enableEmotions:{default:true},enableDateActions:{default:true},enableCreateContent:{default:true},showAvatar:{default:true},showMenu:{default:true},showName:{default:true},referenceContentClassName:{default:""},referenceContentBodyClassName:{default:""},message:{type:Object,default:BX.Messenger.Model.Messages.getMessageBlank}},data:function t(){return{componentBodyId:"bx-messenger-message-body"}},methods:{clickByUserName:function t(e){this.$emit("clickByUserName",e)},clickByMessageMenu:function t(e,s){this.$emit("clickByMessageMenu",{message:e,event:s})},clickByMessageRetry:function t(e,s){this.$emit("clickByMessageRetry",{message:e,event:s})}},computed:{MessageType:function t(){return e},type:function t(){if(this.message.system||this.message.authorId==0){return e.system}else if(this.message.authorId===-1||this.message.authorId==this.userId){return e.self}else{return e.opponent}},localize:function t(){var t=BX.Vue.getFilteredPhrases("IM_MESSENGER_MESSAGE_",this.$root.$bitrixMessages);return Object.freeze(Object.assign({},t,{IM_MESSENGER_MESSAGE_MENU_TITLE:t.IM_MESSENGER_MESSAGE_MENU_TITLE.replace("#SHORTCUT#",BX.Messenger.Utils.platform.isMac()?"CMD":"CTRL")}))},userData:function t(){var e;if(typeof this.$store.state[s.users].collection[this.message.authorId]!=="undefined"){e=this.$store.state[s.users].collection[this.message.authorId]}else{e=BX.Messenger.Model.Users.getUserBlank({defaultName:this.localize.IM_MESSENGER_MESSAGE_USER_ANONYM})}return e},filesData:function t(){var e;if(typeof this.$store.state[s.files].index[this.chatId]!=="undefined"){e=this.$store.state[s.files].index[this.chatId]}else{e={}}return e},isEdited:function t(){return this.message.params.IS_EDITED=="Y"},isDeleted:function t(){return this.message.params.IS_DELETED=="Y"}},template:'\n\t\t<div :class="[\'bx-im-message\', {\n\t\t\t\'bx-im-message-without-menu\': !showMenu,\n\t\t\t\'bx-im-message-without-avatar\': !showAvatar,\n\t\t\t\'bx-im-message-type-system\': type == MessageType.system,\n\t\t\t\'bx-im-message-type-self\': type == MessageType.self,\n\t\t\t\'bx-im-message-type-opponent\': type == MessageType.opponent,\n\t\t\t\'bx-im-message-status-error\': message.error,\n\t\t\t\'bx-im-message-status-unread\': message.unread,\n\t\t\t\'bx-im-message-status-blink\': message.blink,\n\t\t\t\'bx-im-message-status-edited\': isEdited,\n\t\t\t\'bx-im-message-status-deleted\': isDeleted,\n\t\t}]">\n\t\t\t<template v-if="type == MessageType.opponent">\n\t\t\t\t<div v-if="showAvatar" class="bx-im-message-avatar" @click="clickByUserName(userData, $event)">\n\t\t\t\t\t<div :class="[\'bx-im-message-avatar-image\', {\n\t\t\t\t\t\t\t\'bx-im-message-avatar-image-default\': !userData.avatar\n\t\t\t\t\t\t}]"\n\t\t\t\t\t\t:style="{\n\t\t\t\t\t\t\tbackgroundColor: !userData.avatar? userData.color: \'\', \n\t\t\t\t\t\t\tbackgroundImage: userData.avatar? \'url(\'+userData.avatar+\')\': \'\'\n\t\t\t\t\t\t}" \n\t\t\t\t\t\t:title="userData.name"\n\t\t\t\t\t></div>\t\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<div class="bx-im-message-box">\n\t\t\t\t<component :is="componentBodyId"\n\t\t\t\t\t:userId="userId" \n\t\t\t\t\t:dialogId="dialogId"\n\t\t\t\t\t:chatId="chatId"\n\t\t\t\t\t:messageType="type"\n\t\t\t\t\t:message="message"\n\t\t\t\t\t:user="userData"\n\t\t\t\t\t:files="filesData"\n\t\t\t\t\t:showAvatar="showAvatar"\n\t\t\t\t\t:showName="showName"\n\t\t\t\t\t:enableEmotions="enableEmotions"\n\t\t\t\t\t:referenceContentBodyClassName="referenceContentBodyClassName"\n\t\t\t\t\t@clickByUserName="clickByUserName"\n\t\t\t\t/>\n\t\t\t</div>\t\n\t\t\t<template v-if="type == MessageType.self">\n\t\t\t\t<div class="bx-im-message-box-status">\n\t\t\t\t\t<transition name="bx-im-message-sending">\n\t\t\t\t\t\t<template v-if="message.sending">\n\t\t\t\t\t\t\t<div class="bx-im-message-sending"></div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<transition name="bx-im-message-status-retry">\n\t\t\t\t\t\t<template v-if="!message.sending && message.error">\n\t\t\t\t\t\t\t<div class="bx-im-message-status-retry" :title="localize.IM_MESSENGER_MESSAGE_RETRY_TITLE" @click="clickByMessageRetry(message, $event)">\n\t\t\t\t\t\t\t\t<span class="bx-im-message-retry-icon"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<template v-if="showMenu && !message.sending && !message.error">\n\t\t\t\t\t\t<div class="bx-im-message-status-menu" :title="localize.IM_MESSENGER_MESSAGE_MENU_TITLE" @click="clickByMessageMenu(message, $event)">\n\t\t\t\t\t\t\t<span class="bx-im-message-menu-icon"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template> \n\t\t\t\t</div>\n\t\t\t</template> \n\t\t\t<template v-else-if="showMenu">\n\t\t\t\t<div class="bx-im-message-menu" :title="localize.IM_MESSENGER_MESSAGE_MENU_TITLE" @click="clickByMessageMenu(message, $event)">\n\t\t\t\t\t<span class="bx-im-message-menu-icon"></span>\n\t\t\t\t</div>\n\t\t\t</template> \n\t\t</div>\n\t'})})(this.window=this.window||{}); //# sourceMappingURL=messenger.component.message.bundle.map.jsmessage/messenger.component.message.bundle.css.map000066400000024621147744271350016367 0ustar00{"version":3,"sources":["im/install/js/messenger/component/message/messenger.component.message.css"],"names":[],"mappings":"AAAA,qBAAqB;AACrB;CACC,qBAAc;CAAd,qBAAc;CAAd,cAAc;CACd,+BAAoB;CAApB,8BAAoB;KAApB,wBAAoB;SAApB,oBAAoB;CACpB,sBAAkB;KAAlB,kBAAkB;CAClB,yBAAwB;KAAxB,sBAAwB;SAAxB,wBAAwB;CACxB,eAAe;CACf;AACD;CACC,+BAA4B;CAA5B,+BAA4B;KAA5B,gCAA4B;SAA5B,4BAA4B;CAC5B,mBAAmB;CACnB,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB;AACD;CACC,mBAAmB;CACnB;AACD;CACC,mBAAmB;CACnB;AACD,eAAe;;AAEf,uBAAuB;AACvB;CACC,qBAAe;KAAf,eAAe;CACf,YAAY;IACT,aAAa;CAChB,mBAAmB;CACnB;;AAED;CACC,YAAY;IACT,aAAa;CAChB,mBAAmB;CACnB,uBAAuB;CACvB,oBAAoB;CACpB,gBAAgB;CAChB;AACD;CACC,YAAY;IACT,aAAa;CAChB,mBAAmB;CACnB;AACD;CACC,28BAA28B;CAC38B,6BAA6B;CAC7B;;AAED;CACC,cAAc;CACd;AACD,eAAe;;AAEf;CACC,iBAAiB;CACjB;;AAED,yBAAyB,kCAAkC,CAAC,gBAAgB,CAAC,eAAe,CAAC,sBAAsB,EAAE;AACrH,8BAA8B,cAAc,EAAE;;AAE9C,8CAA8C;;AAE9C;CACC,qBAAe;KAAf,eAAe;CACf,YAAY;IACT,aAAa;CAChB,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,YAAY;CACZ,aAAa;CACb,43BAA43B;CAC53B,6BAA6B;CAC7B,6DAA6D;CAC7D,qDAAqD;CACrD,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,mBAAmB;CACnB;AACD;CACC;EACC,+BAA+B;EAC/B,uBAAuB;EACvB;CACD;EACC,iCAAiC;EACjC,yBAAyB;EACzB;CACD;AACD;CACC;EAEC,+BAAuB;UAAvB,uBAAuB;EACvB;CACD;;EAGC,iCAAyB;UAAzB,yBAAyB;EACzB;CACD;AACD;CACC,yDAAyD;CACzD,iDAAiD;CACjD;AACD;CACC,WAAW;CACX;;AAED;CACC;EACC,WAAW;EACX;CACD;EACC,WAAW;EACX,+BAA+B;EAC/B,uBAAuB;EACvB;CACD;EACC,WAAW;EACX,iCAAiC;EACjC,yBAAyB;EACzB;CACD;AACD;CACC;EACC,WAAW;EACX;CACD;EACC,WAAW;EAEX,+BAAuB;UAAvB,uBAAuB;EACvB;CACD;EACC,WAAW;EAEX,iCAAyB;UAAzB,yBAAyB;EACzB;CACD;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,YAAY;CACZ,aAAa;CACb,svBAAsvB;CACtvB,6BAA6B;CAC7B,YAAY;CACZ,yCAAiC;CAAjC,oCAAiC;CAAjC,iCAAiC;CACjC,gBAAgB;CAChB,iBAAiB;CACjB;AACD;CACC,WAAW;CACX;;AAED;CACC,yCAAiC;CAAjC,oCAAiC;CAAjC,iCAAiC;CACjC;AACD;CACC,WAAW;CACX;;AAED;CACC,yDAAyD;CACzD,iDAAiD;CACjD;;AAED;CACC;EACC,+BAA+B;EAC/B,uBAAuB;EACvB;CACD;EACC,WAAW;EACX;CACD;EACC,WAAW;EACX,iCAAiC;EACjC,yBAAyB;EACzB;CACD;AACD;CACC;EAEC,+BAAuB;UAAvB,uBAAuB;EACvB;CACD;EACC,WAAW;EACX;CACD;EACC,WAAW;EAEX,iCAAyB;UAAzB,yBAAyB;EACzB;CACD;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED,8BAA8B;;AAE9B,qBAAqB;AACrB;CACC,qBAAe;KAAf,eAAe;CACf,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,YAAY;CACZ,aAAa;CACb,wdAAwd;CACxd,6BAA6B;CAC7B,WAAW;CACX,0CAAkC;CAAlC,qCAAkC;CAAlC,kCAAkC;CAClC,gBAAgB;CAChB,iBAAiB;CACjB;AACD;CACC,YAAY;CACZ,yCAAiC;CAAjC,oCAAiC;CAAjC,iCAAiC;CACjC;AACD;CACC,WAAW;CACX;AACD,eAAe","file":"im/install/js/messenger/component/message/messenger.component.message.bundle.css","sourcesContent":["/* region 01. base */\n.bx-im-message {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: flex-start;\n\tmargin: 10px 0;\n}\n.bx-im-message.bx-im-message-type-self {\n\tflex-direction: row-reverse;\n\tmargin-right: 15px;\n\tmargin-left: 0;\n}\n\n.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message {\n\tmargin-top: -5px;\n}\n\n.bx-im-message-without-avatar {\n\tmargin-left: 15px;\n}\n.bx-im-message-without-menu {\n\tmargin-right: 15px;\n}\n.bx-im-message-without-menu.bx-im-message-type-opponent {\n\tmargin-right: 30px;\n}\n/* endregion */\n\n/* region 02. avatar */\n.bx-im-message-avatar {\n\tflex-shrink: 0;\n\twidth: 65px;\n height: 52px;\n\ttext-align: center;\n}\n\n.bx-im-message-avatar-image {\n\twidth: 40px;\n height: 40px;\n\tborder-radius: 50%;\n\tbackground-size: cover;\n\tmargin: 15px auto 0;\n\tcursor: pointer;\n}\n.bx-im-message-avatar-image-source {\n\twidth: 40px;\n height: 40px;\n\tborder-radius: 50%;\n}\n.bx-im-message-avatar-image-default {\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20100%22%3E%0A%20%20%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M72.7857%2062.254c0-2.311-3.029-4.951-9-6.489a20.3%2020.3%200%200%201-5.7-2.584c-.383-.218-.325-2.236-.325-2.236l-1.922-.292c0-.164-.164-2.584-.164-2.584%202.3-.77%202.063-5.314%202.063-5.314%201.46.807%202.411-2.784%202.411-2.784%201.728-4.994-.86-4.693-.86-4.693.822-3.738%200-9.2001%200-9.2001-1.15-10.116-18.47-7.37-16.417-4.065-5.062-.934-3.907%2010.551-3.907%2010.551l1.1%202.969c-2.156%201.392-.658%203.079-.585%205.02.106%202.865%201.861%202.272%201.861%202.272.109%204.7281%202.446%205.3501%202.446%205.3501.44%202.969.166%202.464.166%202.464l-2.082.25a8.2231%208.2231%200%200%201-.164%202.013c-2.449%201.093-2.971%201.727-5.406%202.793-4.7%202.053-9.808%204.723-10.715%208.3171-.907%203.594-2.585%2011.983-2.585%2011.983h53l-3.215-13.741z%22/%3E%0A%3C/svg%3E%0A');\n\tbackground-repeat: no-repeat;\n}\n\n.bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-avatar-image {\n\tdisplay: none;\n}\n/* endregion */\n\n.bx-im-message-box {\n\toverflow: hidden;\n}\n\n.bx-im-message-command { border-bottom: 1px dashed #2067B0; cursor: pointer; color: #2067B0; display: inline-block; }\n.bx-im-message-command-data { display: none; }\n\n/* region 03. status: sending, retry, menu */\n\n.bx-im-message-box-status {\n\tflex-shrink: 0;\n\twidth: 33px;\n height: 52px;\n\tposition: relative;\n}\n\n.bx-im-message-sending {\n\tdisplay: inline-block;\n\twidth: 21px;\n\theight: 21px;\n\tbackground-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII=');\n\tbackground-repeat: no-repeat;\n\t-webkit-animation: bx-im-message-sending .8s linear infinite;\n\tanimation: bx-im-message-sending .8s linear infinite;\n\tmargin-top: 15px;\n\tmargin-left: 7px;\n\topacity: 1;\n\tposition: absolute;\n}\n@-webkit-keyframes bx-im-message-sending {\n\t0% {\n\t\t-webkit-transform:rotate(0deg);\n\t\ttransform:rotate(0deg);\n\t}\n\t100% {\n\t\t-webkit-transform:rotate(360deg);\n\t\ttransform:rotate(360deg);\n\t}\n}\n@keyframes bx-im-message-sending {\n\t0% {\n\t\t-moz-transform:rotate(0deg);\n\t\ttransform:rotate(0deg);\n\t}\n\t100%\n\t{\n\t\t-moz-transform:rotate(360deg);\n\t\ttransform:rotate(360deg);\n\t}\n}\n.bx-im-message-sending-enter-active {\n\t-webkit-animation: bx-im-message-sending-show 10s linear;\n\tanimation: bx-im-message-sending-show 10s linear;\n}\n.bx-im-message-sending-leave-active {\n\topacity: 0;\n}\n\n@-webkit-keyframes bx-im-message-sending-show {\n\t0% {\n\t\topacity: 0;\n\t}\n\t92% {\n\t\topacity: 0;\n\t\t-webkit-transform:rotate(0deg);\n\t\ttransform:rotate(0deg);\n\t}\n\t100% {\n\t\topacity: 1;\n\t\t-webkit-transform:rotate(360deg);\n\t\ttransform:rotate(360deg);\n\t}\n}\n@keyframes bx-im-message-sending-show {\n\t0% {\n\t\topacity: 0;\n\t}\n\t92% {\n\t\topacity: 0;\n\t\t-moz-transform:rotate(0deg);\n\t\ttransform:rotate(0deg);\n\t}\n\t100% {\n\t\topacity: 1;\n\t\t-moz-transform:rotate(360deg);\n\t\ttransform:rotate(360deg);\n\t}\n}\n\n.bx-im-message-status-retry {\n\twidth: 33px;\n\theight: 52px;\n\ttext-align: center;\n\tposition: absolute;\n}\n\n.bx-im-message-retry-icon {\n\tdisplay: inline-block;\n\twidth: 19px;\n\theight: 19px;\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm5.5291-9.9206V4.77l-1.2384%201.2388c-1.0083-1.2414-2.5432-2.037-4.2676-2.037-3.0412%200-5.5064%202.4653-5.5064%205.5065s2.4652%205.506%205.5064%205.506c1.2971%200%202.487-.4515%203.4282-1.2017l-1.3953-1.7122c-.5604.44-1.2653.705-2.033.705-1.8208%200-3.297-1.4762-3.297-3.297%200-1.821%201.4762-3.2975%203.297-3.2975%201.1142%200%202.0986.5538%202.6951%201.4l-1.4983%201.4984h4.3093z%22/%3E%0A%3C/svg%3E%0A');\n\tbackground-repeat: no-repeat;\n\topacity: .8;\n\ttransition: opacity .1s ease-out;\n\tcursor: pointer;\n\tmargin-top: 16px;\n}\n.bx-im-message-retry-icon:hover .bx-im-message-retry-icon:hover {\n\topacity: 1;\n}\n\n.bx-im-message-status-retry-enter-active {\n\ttransition: opacity .1s ease-out;\n}\n.bx-im-message-status-retry-enter {\n\topacity: 0;\n}\n\n.bx-im-message-status-retry-leave-active {\n\t-webkit-animation: bx-im-message-status-retry .2s linear;\n\tanimation: bx-im-message-status-retry .2s linear;\n}\n\n@-webkit-keyframes bx-im-message-status-retry {\n\t0% {\n\t\t-webkit-transform:rotate(0deg);\n\t\ttransform:rotate(0deg);\n\t}\n\t90% {\n\t\topacity: 1;\n\t}\n\t100% {\n\t\topacity: 0;\n\t\t-webkit-transform:rotate(180deg);\n\t\ttransform:rotate(180deg);\n\t}\n}\n@keyframes bx-im-message-status-retry {\n\t0% {\n\t\t-moz-transform:rotate(0deg);\n\t\ttransform:rotate(0deg);\n\t}\n\t90% {\n\t\topacity: 1;\n\t}\n\t100% {\n\t\topacity: 0;\n\t\t-moz-transform:rotate(180deg);\n\t\ttransform:rotate(180deg);\n\t}\n}\n\n.bx-im-message-status-menu {\n\twidth: 33px;\n\theight: 52px;\n}\n\n/* endregion message status */\n\n/* region 04. menu */\n.bx-im-message-menu {\n\tflex-shrink: 0;\n\twidth: 33px;\n\theight: 52px;\n\ttext-align: center;\n}\n\n.bx-im-message-menu-icon {\n\tdisplay: inline-block;\n\twidth: 19px;\n\theight: 19px;\n\tbackground-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm0-8.6806L5.6053%206.4247%203.658%208.372%209.5%2014.214l5.842-5.842-1.9473-1.9473L9.5%2010.3194z%22/%3E%0A%3C/svg%3E%0A');\n\tbackground-repeat: no-repeat;\n\topacity: 0;\n\ttransition: opacity .05s ease-out;\n\tcursor: pointer;\n\tmargin-top: 16px;\n}\n.bx-im-message:hover .bx-im-message-menu-icon {\n\topacity: .5;\n\ttransition: opacity .2s ease-out;\n}\n.bx-im-message:hover .bx-im-message-menu-icon:hover {\n\topacity: 1;\n}\n/* endregion */"]}message/messenger.component.message.css000066400000016700147744271350014342 0ustar00/* region 01. base */ .bx-im-message { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: flex-start; margin: 10px 0; } .bx-im-message.bx-im-message-type-self { flex-direction: row-reverse; margin-right: 15px; margin-left: 0; } .bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message { margin-top: -5px; } .bx-im-message-without-avatar { margin-left: 15px; } .bx-im-message-without-menu { margin-right: 15px; } .bx-im-message-without-menu.bx-im-message-type-opponent { margin-right: 30px; } /* endregion */ /* region 02. avatar */ .bx-im-message-avatar { flex-shrink: 0; width: 65px; height: 52px; text-align: center; } .bx-im-message-avatar-image { width: 40px; height: 40px; border-radius: 50%; background-size: cover; margin: 15px auto 0; cursor: pointer; } .bx-im-message-avatar-image-source { width: 40px; height: 40px; border-radius: 50%; } .bx-im-message-avatar-image-default { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20100%22%3E%0A%20%20%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M72.7857%2062.254c0-2.311-3.029-4.951-9-6.489a20.3%2020.3%200%200%201-5.7-2.584c-.383-.218-.325-2.236-.325-2.236l-1.922-.292c0-.164-.164-2.584-.164-2.584%202.3-.77%202.063-5.314%202.063-5.314%201.46.807%202.411-2.784%202.411-2.784%201.728-4.994-.86-4.693-.86-4.693.822-3.738%200-9.2001%200-9.2001-1.15-10.116-18.47-7.37-16.417-4.065-5.062-.934-3.907%2010.551-3.907%2010.551l1.1%202.969c-2.156%201.392-.658%203.079-.585%205.02.106%202.865%201.861%202.272%201.861%202.272.109%204.7281%202.446%205.3501%202.446%205.3501.44%202.969.166%202.464.166%202.464l-2.082.25a8.2231%208.2231%200%200%201-.164%202.013c-2.449%201.093-2.971%201.727-5.406%202.793-4.7%202.053-9.808%204.723-10.715%208.3171-.907%203.594-2.585%2011.983-2.585%2011.983h53l-3.215-13.741z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; } .bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-avatar-image { display: none; } /* endregion */ .bx-im-message-box { overflow: hidden; } .bx-im-message-command { border-bottom: 1px dashed #2067B0; cursor: pointer; color: #2067B0; display: inline-block; } .bx-im-message-command-data { display: none; } /* region 03. status: sending, retry, menu */ .bx-im-message-box-status { flex-shrink: 0; width: 33px; height: 52px; position: relative; } .bx-im-message-sending { display: inline-block; width: 21px; height: 21px; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII='); background-repeat: no-repeat; -webkit-animation: bx-im-message-sending .8s linear infinite; animation: bx-im-message-sending .8s linear infinite; margin-top: 15px; margin-left: 7px; opacity: 1; position: absolute; } @-webkit-keyframes bx-im-message-sending { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { -webkit-transform:rotate(360deg); transform:rotate(360deg); } } @keyframes bx-im-message-sending { 0% { -moz-transform:rotate(0deg); transform:rotate(0deg); } 100% { -moz-transform:rotate(360deg); transform:rotate(360deg); } } .bx-im-message-sending-enter-active { -webkit-animation: bx-im-message-sending-show 10s linear; animation: bx-im-message-sending-show 10s linear; } .bx-im-message-sending-leave-active { opacity: 0; } @-webkit-keyframes bx-im-message-sending-show { 0% { opacity: 0; } 92% { opacity: 0; -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { opacity: 1; -webkit-transform:rotate(360deg); transform:rotate(360deg); } } @keyframes bx-im-message-sending-show { 0% { opacity: 0; } 92% { opacity: 0; -moz-transform:rotate(0deg); transform:rotate(0deg); } 100% { opacity: 1; -moz-transform:rotate(360deg); transform:rotate(360deg); } } .bx-im-message-status-retry { width: 33px; height: 52px; text-align: center; position: absolute; } .bx-im-message-retry-icon { display: inline-block; width: 19px; height: 19px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm5.5291-9.9206V4.77l-1.2384%201.2388c-1.0083-1.2414-2.5432-2.037-4.2676-2.037-3.0412%200-5.5064%202.4653-5.5064%205.5065s2.4652%205.506%205.5064%205.506c1.2971%200%202.487-.4515%203.4282-1.2017l-1.3953-1.7122c-.5604.44-1.2653.705-2.033.705-1.8208%200-3.297-1.4762-3.297-3.297%200-1.821%201.4762-3.2975%203.297-3.2975%201.1142%200%202.0986.5538%202.6951%201.4l-1.4983%201.4984h4.3093z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; opacity: .8; transition: opacity .1s ease-out; cursor: pointer; margin-top: 16px; } .bx-im-message-retry-icon:hover .bx-im-message-retry-icon:hover { opacity: 1; } .bx-im-message-status-retry-enter-active { transition: opacity .1s ease-out; } .bx-im-message-status-retry-enter { opacity: 0; } .bx-im-message-status-retry-leave-active { -webkit-animation: bx-im-message-status-retry .2s linear; animation: bx-im-message-status-retry .2s linear; } @-webkit-keyframes bx-im-message-status-retry { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 90% { opacity: 1; } 100% { opacity: 0; -webkit-transform:rotate(180deg); transform:rotate(180deg); } } @keyframes bx-im-message-status-retry { 0% { -moz-transform:rotate(0deg); transform:rotate(0deg); } 90% { opacity: 1; } 100% { opacity: 0; -moz-transform:rotate(180deg); transform:rotate(180deg); } } .bx-im-message-status-menu { width: 33px; height: 52px; } /* endregion message status */ /* region 04. menu */ .bx-im-message-menu { flex-shrink: 0; width: 33px; height: 52px; text-align: center; } .bx-im-message-menu-icon { display: inline-block; width: 19px; height: 19px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm0-8.6806L5.6053%206.4247%203.658%208.372%209.5%2014.214l5.842-5.842-1.9473-1.9473L9.5%2010.3194z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; opacity: 0; transition: opacity .05s ease-out; cursor: pointer; margin-top: 16px; } .bx-im-message:hover .bx-im-message-menu-icon { opacity: .5; transition: opacity .2s ease-out; } .bx-im-message:hover .bx-im-message-menu-icon:hover { opacity: 1; } /* endregion */message/messenger.component.message.bundle.js000066400000015741147744271350015442 0ustar00(function (exports) { 'use strict'; /** * Bitrix Messenger * Message Vue component * * @package bitrix * @subpackage im * @copyright 2001-2019 Bitrix */ var _MessageType = Object.freeze({ self: 'self', opponent: 'opponent', system: 'system' }); var MessengerStore = Object.freeze({ messages: BX.Messenger.Model.Messages.getName(), dialogues: BX.Messenger.Model.Dialogues.getName(), users: BX.Messenger.Model.Users.getName(), files: BX.Messenger.Model.Files.getName() }); BX.Vue.component('bx-messenger-message', { /** * @emits 'clickByUserName' {user: object, event: MouseEvent} * @emits 'clickByMessageMenu' {message: object, event: MouseEvent} * @emits 'clickByMessageRetry' {message: object, event: MouseEvent} */ props: { userId: { default: 0 }, dialogId: { default: 0 }, chatId: { default: 0 }, enableEmotions: { default: true }, enableDateActions: { default: true }, enableCreateContent: { default: true }, showAvatar: { default: true }, showMenu: { default: true }, showName: { default: true }, referenceContentClassName: { default: '' }, referenceContentBodyClassName: { default: '' }, message: { type: Object, default: BX.Messenger.Model.Messages.getMessageBlank } }, data: function data() { return { componentBodyId: 'bx-messenger-message-body' }; }, methods: { clickByUserName: function clickByUserName(event) { this.$emit('clickByUserName', event); }, clickByMessageMenu: function clickByMessageMenu(message, event) { this.$emit('clickByMessageMenu', { message: message, event: event }); }, clickByMessageRetry: function clickByMessageRetry(message, event) { this.$emit('clickByMessageRetry', { message: message, event: event }); } }, computed: { MessageType: function MessageType() { return _MessageType; }, type: function type() { if (this.message.system || this.message.authorId == 0) { return _MessageType.system; } else if (this.message.authorId === -1 || this.message.authorId == this.userId) { return _MessageType.self; } else { return _MessageType.opponent; } }, localize: function localize() { var localize = BX.Vue.getFilteredPhrases('IM_MESSENGER_MESSAGE_', this.$root.$bitrixMessages); return Object.freeze(Object.assign({}, localize, { 'IM_MESSENGER_MESSAGE_MENU_TITLE': localize.IM_MESSENGER_MESSAGE_MENU_TITLE.replace('#SHORTCUT#', BX.Messenger.Utils.platform.isMac() ? 'CMD' : 'CTRL') })); }, userData: function userData() { var result; if (typeof this.$store.state[MessengerStore.users].collection[this.message.authorId] !== 'undefined') { result = this.$store.state[MessengerStore.users].collection[this.message.authorId]; } else { result = BX.Messenger.Model.Users.getUserBlank({ defaultName: this.localize.IM_MESSENGER_MESSAGE_USER_ANONYM }); } return result; }, filesData: function filesData() { var result; if (typeof this.$store.state[MessengerStore.files].index[this.chatId] !== 'undefined') { result = this.$store.state[MessengerStore.files].index[this.chatId]; } else { result = {}; } return result; }, isEdited: function isEdited() { return this.message.params.IS_EDITED == 'Y'; }, isDeleted: function isDeleted() { return this.message.params.IS_DELETED == 'Y'; } }, template: "\n\t\t<div :class=\"['bx-im-message', {\n\t\t\t'bx-im-message-without-menu': !showMenu,\n\t\t\t'bx-im-message-without-avatar': !showAvatar,\n\t\t\t'bx-im-message-type-system': type == MessageType.system,\n\t\t\t'bx-im-message-type-self': type == MessageType.self,\n\t\t\t'bx-im-message-type-opponent': type == MessageType.opponent,\n\t\t\t'bx-im-message-status-error': message.error,\n\t\t\t'bx-im-message-status-unread': message.unread,\n\t\t\t'bx-im-message-status-blink': message.blink,\n\t\t\t'bx-im-message-status-edited': isEdited,\n\t\t\t'bx-im-message-status-deleted': isDeleted,\n\t\t}]\">\n\t\t\t<template v-if=\"type == MessageType.opponent\">\n\t\t\t\t<div v-if=\"showAvatar\" class=\"bx-im-message-avatar\" @click=\"clickByUserName(userData, $event)\">\n\t\t\t\t\t<div :class=\"['bx-im-message-avatar-image', {\n\t\t\t\t\t\t\t'bx-im-message-avatar-image-default': !userData.avatar\n\t\t\t\t\t\t}]\"\n\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\tbackgroundColor: !userData.avatar? userData.color: '', \n\t\t\t\t\t\t\tbackgroundImage: userData.avatar? 'url('+userData.avatar+')': ''\n\t\t\t\t\t\t}\" \n\t\t\t\t\t\t:title=\"userData.name\"\n\t\t\t\t\t></div>\t\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<div class=\"bx-im-message-box\">\n\t\t\t\t<component :is=\"componentBodyId\"\n\t\t\t\t\t:userId=\"userId\" \n\t\t\t\t\t:dialogId=\"dialogId\"\n\t\t\t\t\t:chatId=\"chatId\"\n\t\t\t\t\t:messageType=\"type\"\n\t\t\t\t\t:message=\"message\"\n\t\t\t\t\t:user=\"userData\"\n\t\t\t\t\t:files=\"filesData\"\n\t\t\t\t\t:showAvatar=\"showAvatar\"\n\t\t\t\t\t:showName=\"showName\"\n\t\t\t\t\t:enableEmotions=\"enableEmotions\"\n\t\t\t\t\t:referenceContentBodyClassName=\"referenceContentBodyClassName\"\n\t\t\t\t\t@clickByUserName=\"clickByUserName\"\n\t\t\t\t/>\n\t\t\t</div>\t\n\t\t\t<template v-if=\"type == MessageType.self\">\n\t\t\t\t<div class=\"bx-im-message-box-status\">\n\t\t\t\t\t<transition name=\"bx-im-message-sending\">\n\t\t\t\t\t\t<template v-if=\"message.sending\">\n\t\t\t\t\t\t\t<div class=\"bx-im-message-sending\"></div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<transition name=\"bx-im-message-status-retry\">\n\t\t\t\t\t\t<template v-if=\"!message.sending && message.error\">\n\t\t\t\t\t\t\t<div class=\"bx-im-message-status-retry\" :title=\"localize.IM_MESSENGER_MESSAGE_RETRY_TITLE\" @click=\"clickByMessageRetry(message, $event)\">\n\t\t\t\t\t\t\t\t<span class=\"bx-im-message-retry-icon\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<template v-if=\"showMenu && !message.sending && !message.error\">\n\t\t\t\t\t\t<div class=\"bx-im-message-status-menu\" :title=\"localize.IM_MESSENGER_MESSAGE_MENU_TITLE\" @click=\"clickByMessageMenu(message, $event)\">\n\t\t\t\t\t\t\t<span class=\"bx-im-message-menu-icon\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template> \n\t\t\t\t</div>\n\t\t\t</template> \n\t\t\t<template v-else-if=\"showMenu\">\n\t\t\t\t<div class=\"bx-im-message-menu\" :title=\"localize.IM_MESSENGER_MESSAGE_MENU_TITLE\" @click=\"clickByMessageMenu(message, $event)\">\n\t\t\t\t\t<span class=\"bx-im-message-menu-icon\"></span>\n\t\t\t\t</div>\n\t\t\t</template> \n\t\t</div>\n\t" }); }((this.window = this.window || {}))); //# sourceMappingURL=messenger.component.message.bundle.js.map message/bundle.config.min.js000066400000000254147744271350012046 0ustar00module.exports={input:"./messenger.component.message.js",output:"./messenger.component.message.bundle.js",namespaceFunction:null}; //# sourceMappingURL=bundle.config.map.jsmessage/messenger.component.message.bundle.css000066400000020474147744271350015615 0ustar00/* region 01. base */ .bx-im-message { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -ms-flex-wrap: nowrap; flex-wrap: nowrap; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; margin: 10px 0; } .bx-im-message.bx-im-message-type-self { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; margin-right: 15px; margin-left: 0; } .bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message { margin-top: -5px; } .bx-im-message-without-avatar { margin-left: 15px; } .bx-im-message-without-menu { margin-right: 15px; } .bx-im-message-without-menu.bx-im-message-type-opponent { margin-right: 30px; } /* endregion */ /* region 02. avatar */ .bx-im-message-avatar { -ms-flex-negative: 0; flex-shrink: 0; width: 65px; height: 52px; text-align: center; } .bx-im-message-avatar-image { width: 40px; height: 40px; border-radius: 50%; background-size: cover; margin: 15px auto 0; cursor: pointer; } .bx-im-message-avatar-image-source { width: 40px; height: 40px; border-radius: 50%; } .bx-im-message-avatar-image-default { background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20100%22%3E%0A%20%20%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M72.7857%2062.254c0-2.311-3.029-4.951-9-6.489a20.3%2020.3%200%200%201-5.7-2.584c-.383-.218-.325-2.236-.325-2.236l-1.922-.292c0-.164-.164-2.584-.164-2.584%202.3-.77%202.063-5.314%202.063-5.314%201.46.807%202.411-2.784%202.411-2.784%201.728-4.994-.86-4.693-.86-4.693.822-3.738%200-9.2001%200-9.2001-1.15-10.116-18.47-7.37-16.417-4.065-5.062-.934-3.907%2010.551-3.907%2010.551l1.1%202.969c-2.156%201.392-.658%203.079-.585%205.02.106%202.865%201.861%202.272%201.861%202.272.109%204.7281%202.446%205.3501%202.446%205.3501.44%202.969.166%202.464.166%202.464l-2.082.25a8.2231%208.2231%200%200%201-.164%202.013c-2.449%201.093-2.971%201.727-5.406%202.793-4.7%202.053-9.808%204.723-10.715%208.3171-.907%203.594-2.585%2011.983-2.585%2011.983h53l-3.215-13.741z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; } .bx-im-dialog-list-item+.bx-im-dialog-list-item .bx-im-message-avatar-image { display: none; } /* endregion */ .bx-im-message-box { overflow: hidden; } .bx-im-message-command { border-bottom: 1px dashed #2067B0; cursor: pointer; color: #2067B0; display: inline-block; } .bx-im-message-command-data { display: none; } /* region 03. status: sending, retry, menu */ .bx-im-message-box-status { -ms-flex-negative: 0; flex-shrink: 0; width: 33px; height: 52px; position: relative; } .bx-im-message-sending { display: inline-block; width: 21px; height: 21px; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACP0lEQVQ4T63UPWhTURQH8P+5SZM2qVSoOjtkKEaF5AW3arBQ+4KTWHWRurTS3KRdHBRFih+LFFGb16IOghFRu0pfiFbqJpgPiFQcqpubSFMNrW1yj7zWlCZWY2PeeM85Pw7n3HcJNT5fj+yyCfaUWDgItATwx4wZe/W3Mtos2NEl291OXAYoQoommNgGwgdi3qMIK8QYYMat+eLK9U8v7+Wrjd/QgB4+zhD9YH6cThgPAXB1UTA4Yl9o+nJK2HlIEa5kpoznG3MqUI8edbYRx9NTsRO1xlKOa6FIklXpXCYxkSufVaDe3l7H7OTk8r+C67Auk0y4U+5405luFbXyNV1mlxa5c3Zm/HvDUN8ReVoIeNOmcb5hqLWP7VDzKdNoaRj6awTjAuppY9GQvE+K3pAvJA/aWdBbc+x1PQvaWKOF5BAUQH492i+gAinTONsAdK1Tf3fksBB8LJUwIv+N6uEJBX6yOlNNl8vbFne6ZmZGivXCu4Nnmne4Wr+mpmKuVTQQkjeUolwmEXtUL6r1yD6AOtKJ2IW1TrWBNtrV9CJlGgfqRQN6JLP8Od+Zy8UL61fKH5JHiTGUNo3urcKaLqcJNJoyY6ZVW3FP93YN7nc6xOhWYL8upxnFaNa8+37TV8o6tDoWjKslhZvfhHg2Z479qO7cWkp7s/skEQ0DuFju8I+oFfAGw63NLXSJgGEGHoDQBIV3ENgH5iKR6GOF2ysqfy2XjBdqvvzVCT598JCNbR4W7CZFhRLRXLbG3/cTppTaSIGxlgcAAAAASUVORK5CYII='); background-repeat: no-repeat; -webkit-animation: bx-im-message-sending .8s linear infinite; animation: bx-im-message-sending .8s linear infinite; margin-top: 15px; margin-left: 7px; opacity: 1; position: absolute; } @-webkit-keyframes bx-im-message-sending { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { -webkit-transform:rotate(360deg); transform:rotate(360deg); } } @keyframes bx-im-message-sending { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { -webkit-transform:rotate(360deg); transform:rotate(360deg); } } .bx-im-message-sending-enter-active { -webkit-animation: bx-im-message-sending-show 10s linear; animation: bx-im-message-sending-show 10s linear; } .bx-im-message-sending-leave-active { opacity: 0; } @-webkit-keyframes bx-im-message-sending-show { 0% { opacity: 0; } 92% { opacity: 0; -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { opacity: 1; -webkit-transform:rotate(360deg); transform:rotate(360deg); } } @keyframes bx-im-message-sending-show { 0% { opacity: 0; } 92% { opacity: 0; -webkit-transform:rotate(0deg); transform:rotate(0deg); } 100% { opacity: 1; -webkit-transform:rotate(360deg); transform:rotate(360deg); } } .bx-im-message-status-retry { width: 33px; height: 52px; text-align: center; position: absolute; } .bx-im-message-retry-icon { display: inline-block; width: 19px; height: 19px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm5.5291-9.9206V4.77l-1.2384%201.2388c-1.0083-1.2414-2.5432-2.037-4.2676-2.037-3.0412%200-5.5064%202.4653-5.5064%205.5065s2.4652%205.506%205.5064%205.506c1.2971%200%202.487-.4515%203.4282-1.2017l-1.3953-1.7122c-.5604.44-1.2653.705-2.033.705-1.8208%200-3.297-1.4762-3.297-3.297%200-1.821%201.4762-3.2975%203.297-3.2975%201.1142%200%202.0986.5538%202.6951%201.4l-1.4983%201.4984h4.3093z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; opacity: .8; -webkit-transition: opacity .1s ease-out; -o-transition: opacity .1s ease-out; transition: opacity .1s ease-out; cursor: pointer; margin-top: 16px; } .bx-im-message-retry-icon:hover .bx-im-message-retry-icon:hover { opacity: 1; } .bx-im-message-status-retry-enter-active { -webkit-transition: opacity .1s ease-out; -o-transition: opacity .1s ease-out; transition: opacity .1s ease-out; } .bx-im-message-status-retry-enter { opacity: 0; } .bx-im-message-status-retry-leave-active { -webkit-animation: bx-im-message-status-retry .2s linear; animation: bx-im-message-status-retry .2s linear; } @-webkit-keyframes bx-im-message-status-retry { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 90% { opacity: 1; } 100% { opacity: 0; -webkit-transform:rotate(180deg); transform:rotate(180deg); } } @keyframes bx-im-message-status-retry { 0% { -webkit-transform:rotate(0deg); transform:rotate(0deg); } 90% { opacity: 1; } 100% { opacity: 0; -webkit-transform:rotate(180deg); transform:rotate(180deg); } } .bx-im-message-status-menu { width: 33px; height: 52px; } /* endregion message status */ /* region 04. menu */ .bx-im-message-menu { -ms-flex-negative: 0; flex-shrink: 0; width: 33px; height: 52px; text-align: center; } .bx-im-message-menu-icon { display: inline-block; width: 19px; height: 19px; background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2219%22%20height%3D%2219%22%3E%0A%20%20%3Cpath%20fill%3D%22%2380868E%22%20fill-rule%3D%22evenodd%22%20d%3D%22M9.5%2019C4.2533%2019%200%2014.7467%200%209.5S4.2533%200%209.5%200%2019%204.2533%2019%209.5%2014.7467%2019%209.5%2019zm0-8.6806L5.6053%206.4247%203.658%208.372%209.5%2014.214l5.842-5.842-1.9473-1.9473L9.5%2010.3194z%22/%3E%0A%3C/svg%3E%0A'); background-repeat: no-repeat; opacity: 0; -webkit-transition: opacity .05s ease-out; -o-transition: opacity .05s ease-out; transition: opacity .05s ease-out; cursor: pointer; margin-top: 16px; } .bx-im-message:hover .bx-im-message-menu-icon { opacity: .5; -webkit-transition: opacity .2s ease-out; -o-transition: opacity .2s ease-out; transition: opacity .2s ease-out; } .bx-im-message:hover .bx-im-message-menu-icon:hover { opacity: 1; } /* endregion */ /*# sourceMappingURL=messenger.component.message.bundle.css.map */message/bundle.config.map.js000066400000000312147744271350012033 0ustar00{"version":3,"sources":["bundle.config.js"],"names":["module","exports","input","output","namespaceFunction"],"mappings":"AAAAA,OAAOC,SACNC,MAAO,mCACPC,OAAQ,0CACRC,kBAAmB","file":"bundle.config.map.js"}message/messenger.component.message.bundle.map.js000066400000005513147744271350016212 0ustar00{"version":3,"sources":["messenger.component.message.bundle.js"],"names":["exports","_MessageType","Object","freeze","self","opponent","system","MessengerStore","messages","BX","Messenger","Model","Messages","getName","dialogues","Dialogues","users","Users","files","Files","Vue","component","props","userId","default","dialogId","chatId","enableEmotions","enableDateActions","enableCreateContent","showAvatar","showMenu","showName","referenceContentClassName","referenceContentBodyClassName","message","type","getMessageBlank","data","componentBodyId","methods","clickByUserName","event","this","$emit","clickByMessageMenu","clickByMessageRetry","computed","MessageType","authorId","localize","getFilteredPhrases","$root","$bitrixMessages","assign","IM_MESSENGER_MESSAGE_MENU_TITLE","replace","Utils","platform","isMac","userData","result","$store","state","collection","getUserBlank","defaultName","IM_MESSENGER_MESSAGE_USER_ANONYM","filesData","index","isEdited","params","IS_EDITED","isDeleted","IS_DELETED","template","window"],"mappings":"CAAC,SAAUA,GACV,aAWA,IAAIC,EAAeC,OAAOC,QACxBC,KAAM,OACNC,SAAU,WACVC,OAAQ,WAGV,IAAIC,EAAiBL,OAAOC,QAC1BK,SAAUC,GAAGC,UAAUC,MAAMC,SAASC,UACtCC,UAAWL,GAAGC,UAAUC,MAAMI,UAAUF,UACxCG,MAAOP,GAAGC,UAAUC,MAAMM,MAAMJ,UAChCK,MAAOT,GAAGC,UAAUC,MAAMQ,MAAMN,YAElCJ,GAAGW,IAAIC,UAAU,wBAMfC,OACEC,QACEC,QAAS,GAEXC,UACED,QAAS,GAEXE,QACEF,QAAS,GAEXG,gBACEH,QAAS,MAEXI,mBACEJ,QAAS,MAEXK,qBACEL,QAAS,MAEXM,YACEN,QAAS,MAEXO,UACEP,QAAS,MAEXQ,UACER,QAAS,MAEXS,2BACET,QAAS,IAEXU,+BACEV,QAAS,IAEXW,SACEC,KAAMlC,OACNsB,QAASf,GAAGC,UAAUC,MAAMC,SAASyB,kBAGzCC,KAAM,SAASA,IACb,OACEC,gBAAiB,8BAGrBC,SACEC,gBAAiB,SAASA,EAAgBC,GACxCC,KAAKC,MAAM,kBAAmBF,IAEhCG,mBAAoB,SAASA,EAAmBV,EAASO,GACvDC,KAAKC,MAAM,sBACTT,QAASA,EACTO,MAAOA,KAGXI,oBAAqB,SAASA,EAAoBX,EAASO,GACzDC,KAAKC,MAAM,uBACTT,QAASA,EACTO,MAAOA,MAIbK,UACEC,YAAa,SAASA,IACpB,OAAO/C,GAETmC,KAAM,SAASA,IACb,GAAIO,KAAKR,QAAQ7B,QAAUqC,KAAKR,QAAQc,UAAY,EAAG,CACrD,OAAOhD,EAAaK,YACf,GAAIqC,KAAKR,QAAQc,YAAc,GAAKN,KAAKR,QAAQc,UAAYN,KAAKpB,OAAQ,CAC/E,OAAOtB,EAAaG,SACf,CACL,OAAOH,EAAaI,WAGxB6C,SAAU,SAASA,IACjB,IAAIA,EAAWzC,GAAGW,IAAI+B,mBAAmB,wBAAyBR,KAAKS,MAAMC,iBAC7E,OAAOnD,OAAOC,OAAOD,OAAOoD,UAAWJ,GACrCK,gCAAmCL,EAASK,gCAAgCC,QAAQ,aAAc/C,GAAGC,UAAU+C,MAAMC,SAASC,QAAU,MAAQ,YAGpJC,SAAU,SAASA,IACjB,IAAIC,EAEJ,UAAWlB,KAAKmB,OAAOC,MAAMxD,EAAeS,OAAOgD,WAAWrB,KAAKR,QAAQc,YAAc,YAAa,CACpGY,EAASlB,KAAKmB,OAAOC,MAAMxD,EAAeS,OAAOgD,WAAWrB,KAAKR,QAAQc,cACpE,CACLY,EAASpD,GAAGC,UAAUC,MAAMM,MAAMgD,cAChCC,YAAavB,KAAKO,SAASiB,mCAI/B,OAAON,GAETO,UAAW,SAASA,IAClB,IAAIP,EAEJ,UAAWlB,KAAKmB,OAAOC,MAAMxD,EAAeW,OAAOmD,MAAM1B,KAAKjB,UAAY,YAAa,CACrFmC,EAASlB,KAAKmB,OAAOC,MAAMxD,EAAeW,OAAOmD,MAAM1B,KAAKjB,YACvD,CACLmC,KAGF,OAAOA,GAETS,SAAU,SAASA,IACjB,OAAO3B,KAAKR,QAAQoC,OAAOC,WAAa,KAE1CC,UAAW,SAASA,IAClB,OAAO9B,KAAKR,QAAQoC,OAAOG,YAAc,MAG7CC,SAAU,kkGA7Ib,CAgJGhC,KAAKiC,OAASjC,KAAKiC","file":"messenger.component.message.bundle.map.js"}
/var/www/axolotl/data/www/arhangelsk.axolotls.ru/a537b/component.tar