UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines (2 loc) 23.7 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("kendo.core.js"),require("kendo.html.button.js"),require("kendo.icons.js"),require("kendo.draganddrop.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.html.button","kendo.icons","kendo.draganddrop"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).kendo=t.kendo||{},t.kendo._globals=t.kendo._globals||{},t.kendo._globals.Chat={}))}(this,(function(t){!function(t){var e=window.kendo,n=e.ui.Widget,s=t.extend,i=".kendoChat",o=e.keys,a=n.extend({init:function(t,e){n.fn.init.call(this,t,e),this._wrapper(),this._attachEvents(),this._typing=!1},events:["focusToolbar","sendMessage","toggleToolbar","typingEnd","typingStart"],options:{messages:{placeholder:"Type a message...",toggleButton:"Toggle toolbar",sendButton:"Send message"}},destroy:function(){n.fn.destroy.call(this),this.input&&(this.input.off(i),this.input.remove(),this.input=null),this.element.off(i),this.element.empty()},_wrapper:function(){var n=a.styles,s=this.options,i=s.messages,o="inputId_"+e.guid();this.inputWrapper=this.element.addClass(n.inputWrapper).appendTo(this.element),this.input=t("<input type='text'>").addClass(n.input).attr("id",o).attr("aria-label",i.placeholder).attr("placeholder",i.placeholder).appendTo(this.inputWrapper),this.separator=t("<span></span>").addClass(n.separator).appendTo(this.inputWrapper),this.inputSuffix=t("<span></span>").addClass(n.inputSuffix).appendTo(this.inputWrapper),s.toolbar&&s.toolbar.toggleable&&s.toolbar.buttons&&s.toolbar.buttons.length&&t(e.html.renderButton(`<button class="${n.buttonToggle}" title="${i.toggleButton}" aria-label="${i.toggleButton}" aria-controls="${s.toolbarId}"></button>`,{icon:n.buttonToggleIcon,fillMode:"flat",size:"medium"})).appendTo(this.inputSuffix),t(e.html.renderButton(`<button class="${n.buttonSend}" title="${i.sendButton}" aria-label="${i.sendButton}"></button>`,{icon:n.buttonSendIcon,fillMode:"flat",size:"medium"})).appendTo(this.inputSuffix)},_attachEvents:function(){var t=a.styles;this.input.on("keydown"+i,this._keydown.bind(this)).on("input"+i,this._input.bind(this)).on("focusout"+i,this._inputFocusout.bind(this)),this.element.on("click"+i,"."+t.buttonSend,this._buttonClick.bind(this)),this.element.on("click"+i,"."+t.buttonToggle,this._toggleToolbar.bind(this))},_input:function(){var t=this.input.val().length>0;this._triggerTyping(t)},_keydown:function(t){switch(t.keyCode){case o.ENTER:t.preventDefault(),this._sendMessage();break;case o.F10:t.preventDefault(),this.trigger("focusToolbar")}},_buttonClick:function(t){t.preventDefault(),this._sendMessage()},_sendMessage:function(){var t=this.input.val();if(t.length){this._triggerTyping(!1);var e={text:t};this.trigger("sendMessage",e),this.input.val("")}},_inputFocusout:function(){this._triggerTyping(!1)},_triggerTyping:function(t){t?this._typing||(this.trigger("typingStart",{}),this._typing=!0):this._typing&&(this.trigger("typingEnd",{}),this._typing=!1)},_toggleToolbar:function(t){this.trigger("toggleToolbar",{originalEvent:t})}});s(!0,a,{styles:{input:"k-input-inner",inputWrapper:"k-textbox k-input k-input-md k-input-solid k-rounded-md",button:"k-button",buttonFlat:"k-button-lg k-button-flat k-button-flat-base",iconButton:"k-icon-button",buttonIcon:"k-button-icon",buttonSend:"k-chat-send",buttonSendIcon:"paper-plane",buttonToggle:"k-button-toggle",buttonToggleIcon:"more-horizontal",hidden:"k-hidden",inputSuffix:"k-input-suffix k-input-suffix-horizontal",separator:"k-input-separator k-input-separator-vertical"}}),s(e,{chat:{ChatMessageBox:a}})}(window.kendo.jQuery),function(t){var e=window.kendo,n=e.ui.Widget,s=t.extend,i=".kendoChat",o="kButtonName",a="chatToolbarScrollLeft",r="chatToolbarScrollRight",l=":visible",c="tabindex",d={effects:"expand:vertical",duration:200},u={expand:{show:!0},collapse:{hide:!0}},h=n.extend({init:function(t,e){var o=(e=s({},e,{name:"ChatToolbar"})).toolbar,a=o.buttons&&o.buttons.length;n.fn.init.call(this,t,e),a&&this._createButtonList(),a&&o.scrollable&&this.buttonsWidth()>this.element.width()&&this._initScrolling(),this._setupAnimation(),a&&o.toggleable&&this.toggle(!0),this.element.on("click"+i,this._onClick.bind(this)).on("keydown"+i,this._onKeydown.bind(this))},events:["click"],destroy:function(){n.fn.destroy.call(this),this.element.off(i),this.element.empty()},_createButtonList:function(){for(var e=h.styles,n=this.options.toolbar.buttons,s=t("<div class='"+e.buttonList+"'></div>"),i=0;i<n.length;i++){var o=this._createButton(n[i]);s.append(o)}s.appendTo(this.element),this.buttonList=s,this.buttons().first().removeAttr(c)},_createButton:function(n){var s,i=h.styles,a=t("<button>");return"string"==typeof n&&(n={name:n}),s=t.extend({},n.attr||{},{title:n.text||n.name,"aria-label":n.text||n.name,type:"button",tabindex:-1}),a.attr(s).addClass(n.name).data(o,n.name).addClass(i.button).addClass(i.buttonDefaults),(n.icon||n.iconClass)&&(a.addClass(i.iconButton),a.prepend(e.html.renderIcon({icon:n.icon,iconClass:"k-button-icon"+(n.iconClass?` ${n.iconClass}`:"")}))),a},_onClick:function(e){var n=h.styles,s=t(e.target).closest("."+n.button);s.is("."+n.scrollButton)&&!this._scrolling&&this._scroll(s.data(o)),s.data(o)&&(this.buttons().attr(c,-1),s.removeAttr(c),this.trigger("click",{button:s[0],name:s.data(o),originalEvent:e}))},_onKeydown:function(t){var n=t.keyCode,s=e.keys;switch(n){case s.LEFT:this._focusButton(-1);break;case s.RIGHT:this._focusButton(1)}},_focusButton:function(t){var e=this.buttons(),n=e.not("[tabindex=-1]"),s=e[n.index()+t];s&&(n.attr(c,-1),s.removeAttribute(c),s.trigger("focus"))},_initScrolling:function(){var t=h.styles;this.scrollButtonLeft=this._createButton({name:a,icon:t.scrollButtonLeftIcon,attr:{class:t.scrollButton+" "+t.scrollButtonLeft}}),this.scrollButtonRight=this._createButton({name:r,icon:t.scrollButtonRightIcon,attr:{class:t.scrollButton+" "+t.scrollButtonRight}}),this.element.prepend(this.scrollButtonLeft),this.element.append(this.scrollButtonRight),this._refreshScrollButtons(),this.element.on("keydown"+i,this._refreshScrollButtons.bind(this))},_scroll:function(t){var n=this,s=n.buttonWidth(),i=this.maxScrollSize(),o=t===a?-1*s:s,l=this.currentScrollLeft()+o;l=Math.min(Math.max(l,0),i),t!==a&&t!==r||(e.scrollLeft(n.buttonList,l),n._refreshScrollButtons(l))},_refreshScrollButtons:function(t){var e=this.maxScrollSize(),n=undefined===t||isNaN(parseInt(t,10))?this.currentScrollLeft():t;(this.scrollButtonLeft||this.scrollButtonRight)&&(this.scrollButtonLeft.toggle(0!==n),this.scrollButtonRight.toggle(n!==e))},_setupAnimation:function(){var t=this.options.toolbar.animation,e=s({},d),n=s({reverse:!0,hide:!0},d);t=!1===t?s(!0,{},u):s(!0,{expand:e,collapse:n},t),this.options.toolbar.animation=t},_animationComplete:function(){this._refreshScrollButtons()},_animationCompleteExpand:function(){this._animationComplete(),this.buttons().not("[tabindex=-1]").trigger("focus")},currentScrollLeft:function(){return Math.round(e.scrollLeft(this.buttonList))},maxScrollSize:function(){return Math.round(this.buttonList[0].scrollWidth-this.buttonList[0].clientWidth)},buttons:function(){var t=h.styles;return this.buttonList?this.buttonList.children("."+t.button):null},buttonWidth:function(){return Math.round(this.buttons().last().outerWidth(!0))},buttonsWidth:function(){var t=0;return this.buttons()&&(t=this.buttonWidth()*this.buttons().length),t},toggle:function(t){var e=this.options.toolbar.animation;t&&(e=s(!0,{},u)),e.expand.complete=this._animationCompleteExpand.bind(this),e.collapse.complete=this._animationComplete.bind(this),this.element.is(l)?this.element.kendoStop().kendoAnimate(e.collapse):this.element.kendoStop().kendoAnimate(e.expand)},focus:function(){this.element.is(l)?this.buttons().not("[tabindex=-1]").trigger("focus"):this.toggle()}});s(!0,h,{styles:{button:"k-button",buttonDefaults:"k-button-md k-rounded-md k-button-solid k-button-solid-base",buttonList:"k-button-list k-toolbar-group",scrollButton:"k-scroll-button",scrollButtonLeft:"k-scroll-button-left",scrollButtonRight:"k-scroll-button-right",scrollButtonLeftIcon:"chevron-left",scrollButtonRightIcon:"chevron-right",iconButton:"k-icon-button"}}),s(e.chat,{ChatToolBar:h})}(window.kendo.jQuery),function(t){var e=window.kendo,n=e.htmlEncode,s=e.ui.Widget,i=t.extend,o=".",a=".kendoChat",r=({url:t,text:e,styles:s})=>'<div class="k-avatar k-avatar-md k-avatar-solid k-avatar-solid-primary k-rounded-full"><span class="k-avatar-image">'+(({url:t,text:e,styles:s})=>`<img src="${t}" alt="${n(e)}">`)({url:t,text:e,styles:s})+"</span></div>",l=({text:t,url:e,styles:s})=>`<div ${n(t)} class="${s.messageGroup} ${e?"":s.noAvatar}">\n <p class="${s.author}">${n(t)}</p>\n ${e?r({url:e,text:t,styles:s}):""}\n </div>`,c=({url:t,text:e,styles:n})=>`<div me class="${n.messageGroup} ${n.self} ${t?"":n.noAvatar}">\n ${t?r({url:t,text:e,styles:n}):""}\n </div>`,d=({styles:t,text:s,timestamp:i})=>`<div class="${t.message}">\n <time class="${t.messageTime}">${e.toString(e.parseDate(i),"HH:mm:ss")}</time>\n <div class="${t.bubble}">${n(s)}</div>\n </div>`,u=({styles:t,text:e})=>`<div class="${t.messageListContent} ${t.typingIndicatorBubble}">\n <p class="${t.author}">${n(e)}</p>\n <div class="${t.message}">\n <div class="${t.bubble}">\n <div class="${t.typingIndicator}">\n <span></span><span></span><span></span>\n </div>\n </div>\n </div>\n </div>`,h=({styles:t,buttons:e})=>`<div class="k-actions ${t.cardActions} ${t.cardActionsVertical}">\n ${e.map((e=>(({button:t,styles:e})=>`<span class="${e.cardAction}"><button class="${e.button} ${e.buttonPrimary}" data-value="${n(t.value)}"><span class="k-button-text">${n(t.title)}</span></button></span>`)({styles:t,button:e}))).join("")}\n </div>`,p=({styles:t,images:e,buttons:s,title:i,subtitle:o,text:a})=>`<div class="${t.card} ${t.cardRich}">\n ${void 0!==e&&e.length>0?(({images:t,styles:e})=>`<img src="${n(t[0].url)}" alt="${t[0].alt}" class="${e.cardMedia}" />`)({images:e,styles:t}):""}\n <div class="${t.cardBody}">\n ${void 0!==i?`<h5 class="${t.cardTitle}">${n(i)}</h5>`:""}\n ${void 0!==o?`<h6 class="${t.cardSubtitle}">${n(o)}</h6>`:""}\n ${void 0!==a?`<p>${n(a)}</p>`:""}\n </div>\n ${void 0!==s&&s.length>0?h({buttons:s,styles:t}):""}\n </div>`;i(e.chat,{Templates:{},Components:{}}),e.chat.registerTemplate=function(t,n){e.chat.Templates[t]=e.template(n)},e.chat.getTemplate=function(t){return e.chat.Templates[t]||d},e.chat.registerTemplate("text",d),e.chat.registerTemplate("message",d),e.chat.registerTemplate("typing",u),e.chat.registerTemplate("suggestedAction",(({styles:t,suggestedActions:e})=>`<div class="${t.suggestedActions}">\n ${e.map((e=>(({styles:t,action:e})=>`<span role="button" tabindex="0" class="${t.suggestedAction}" data-value="${n(e.value)}">${n(e.title)}</span>`)({styles:t,action:e}))).join("")}\n </div>`)),e.chat.registerTemplate("heroCard",p),e.chat.registerTemplate("application/vnd.microsoft.card.hero",p),e.chat.registerComponent=function(t,n){e.chat.Components[t]=n},e.chat.getComponent=function(t){return e.chat.Components[t]||null};var g=e.chat.Component=e.Class.extend({init:function(e,n){this.element=t("<div></div>"),this.options=e,this.view=n},destroy:function(){e.destroy(this.element)}}),b=g.extend({init:function(t,n){g.fn.init.call(this,t,n),this.element.kendoCalendar({change:function(){n.trigger("suggestedAction",{text:e.toString(this.value(),"d"),type:"message"})}})},destroy:function(){}});e.chat.registerComponent("calendar",b);var m={wrapper:"k-chat",messageList:"k-avatars",messageListContent:"k-message-list-content",messageTime:"k-message-time",messageGroup:"k-message-group",message:"k-message",only:"k-only",first:"k-first",middle:"k-middle",last:"k-last",author:"k-author",avatar:"k-avatar",noAvatar:"k-no-avatar",self:"k-alt",button:"k-button",buttonDefaults:"k-button-md k-rounded-md k-button-solid k-button-solid-base",iconButton:"k-icon-button",buttonIcon:"k-button-icon",buttonPrimary:"k-button-md k-rounded-md k-button-flat k-button-flat-primary",scrollButtonIconLeft:"chevron-left",scrollButtonIconRight:"chevron-right",typingIndicator:"k-typing-indicator",typingIndicatorBubble:"k-typing-indicator-bubble",bubble:"k-chat-bubble",suggestedActions:"k-quick-replies",suggestedAction:"k-quick-reply",cardWrapper:"k-card-container",cardDeckScrollWrap:"k-card-deck-scrollwrap",cardDeck:"k-card-deck",cardList:"k-card-list",card:"k-card",cardRich:"k-card-type-rich",cardBody:"k-card-body",cardMedia:"k-card-media",cardTitle:"k-card-title",cardSubtitle:"k-card-subtitle",cardActions:"k-card-actions",cardActionsVertical:"k-actions-vertical",cardActionsHorizontal:"k-actions-horizontal",cardActionsStart:"k-actions-start",cardActionsCenter:"k-actions-center",cardActionsEnd:"k-actions-end",cardActionsStretched:"k-actions-stretched",cardAction:"k-card-action",selected:"k-selected"},f=e.chat.ChatView=s.extend({init:function(t,e){s.fn.init.call(this,t,e),this._list(),this._lastSender=null,this.typingParticipants=[],this._attachEvents(),this._scrollable()},events:[],options:{messages:{isTyping:" is typing.",areTyping:" are typing.",and:" and "}},destroy:function(){s.fn.destroy.call(this),this._scrollDraggable&&this._scrollDraggable.destroy(),this.element.empty(),this.element.off(a),this.list=null,this._lastSender=null},_list:function(){var e=f.styles;this.element.addClass(e.messageList).attr("role","log").attr("aria-label",this.options.messages.messageListLabel),this.list=t("<div>").addClass(e.messageListContent).appendTo(this.element)},_attachEvents:function(){var t=f.styles;this.element.on("click"+a,this._listClick.bind(this)).on("click"+a,o+t.message,this._messageClick.bind(this)).on("click"+a,o+t.suggestedAction,this._suggestedActionClick.bind(this)).on("click"+a,o+t.cardAction+" "+o+t.button,this._cardActionClick.bind(this)),this.element.on("keydown"+a,o+t.suggestedAction,this._suggestedActionKeydown.bind(this))},_scrollable:function(){var t=f.styles;this.element.on("click"+a,o+t.cardDeckScrollWrap+" "+o+t.button,this._scrollButtonClick.bind(this))},_scrollButtonClick:function(n){var s=f.styles,i=t(n.currentTarget),a=0!==i.find(`${o+s.buttonIcon}[class*=${s.scrollButtonIconLeft}]`).length,r=i.siblings(o+s.cardDeck),l=r.find(o+s.card).last().outerWidth(!0);a?e.scrollLeft(r,e.scrollLeft(r)-l):e.scrollLeft(r,e.scrollLeft(r)+l)},getTemplate:function(t){return e.chat.getTemplate(t)},getComponent:function(t){return e.chat.getComponent(t)},renderMessage:function(t,e){t.timestamp||(t.timestamp=new Date),t.text||(t.text="");var n=this._renderTemplate(t.type,t);this._renderBubble(t.type,n,e),"typing"==t.type?this.typingParticipants.length>0&&this._removeTypingParticipant(e):this._lastSender=e.id},renderSuggestedActions:function(t){this._removeSuggestedActions();var e=this._renderTemplate("suggestedAction",{suggestedActions:t});this.list.append(e),this._scrollToBottom()},renderAttachments:function(t){var e=this._renderAttachmentWrapper(t.attachmentLayout),n="carousel"===t.attachmentLayout?e.find(o+f.styles.cardDeck):e,s=t.attachments;if(s.length){for(var i=0;i<s.length;i++){var a=this._renderTemplate(s[i].contentType,s[i].content);n.append(a)}this._removeSuggestedActions(),this._removeTypingIndicator(),this.list.append(e),this._lastSender=null}},renderComponent:function(t){var e=new(this.getComponent(t))({},this);this.list.append(e.element),this._scrollToBottom()},_renderAttachmentWrapper:function(e){var n=f.styles,s=t("<div>");if("carousel"===e){s.addClass(n.cardDeckScrollWrap);var i=this._renderScrollButton(n.scrollButtonIconLeft);s.append(i),s.append(t("<div>").addClass(n.cardDeck));var o=this._renderScrollButton(n.scrollButtonIconRight);s.append(o)}else s.addClass(n.cardList);return s},_renderScrollButton:function(n){var s=f.styles;return t("<button>").addClass(s.button).addClass(s.buttonDefaults).addClass(s.iconButton).attr("type","button").append(e.html.renderIcon({icon:n,iconClass:s.buttonIcon}))},_removeSuggestedActions:function(){this.list.find(o+f.styles.suggestedActions).remove()},_listClick:function(e){var n=f.styles,s=t(e.target);s.hasClass(n.message)||s.parents(o+n.message).length||this._clearSelection()},_messageClick:function(e){this._clearSelection(),t(e.currentTarget).addClass(f.styles.selected)},_suggestedActionClick:function(e){var n=t(e.target).data("value")||"";this.trigger("actionClick",{text:n}),this._removeSuggestedActions()},_suggestedActionKeydown:function(t){t.keyCode!==e.keys.SPACEBAR&&t.keyCode!==e.keys.ENTER||this._suggestedActionClick(t)},_cardActionClick:function(e){var n=t(e.currentTarget).data("value")||"";this.trigger("actionClick",{text:n})},_renderBubble:function(t,e,n){this._removeSuggestedActions(),this._removeTypingIndicator();var s=this._getMessageGroup(n,t);this._appendToGroup(s,e,t),this._scrollToBottom()},_renderTemplate:function(e,n){var s,o=this.getComponent(e);if(o){s=new o(n,this).element}else{var a=this.getTemplate(e),r=i(!0,{},n,{styles:f.styles});s=t(a(r))}return s},_getMessageGroup:function(e,n){var s,i=f.styles,a=this._getMessageGroupTemplate(e,n),r="typing"==n?this.element:this.list;return e.id===this._lastSender&&null!==this._lastSender&&"typing"!==n&&(s=this.list.find(o+i.messageGroup).last()).length?s:t(a({text:e.name,url:e.iconUrl,styles:i})).appendTo(r)},_getMessageGroupTemplate:function(t,e){var n=t.id===this.options.user.id?c:l;return"typing"==e&&(n=u),n},_appendToGroup:function(t,e,n){var s=f.styles,i=t.find(o+s.message),a=i.length;this.element.find(o+s.typingIndicator).length&&"typing"==n||(e.addClass(0===a?s.only:s.last),i.filter(o+s.only).removeClass(s.only).addClass(s.first),i.filter(o+s.last).removeClass(s.last).addClass(s.middle),t.append(e))},_renderTypingIndicator:function(e){var n,s=this.element.find(o+m.typingIndicatorBubble);this._addTypingParticipant(e),s.length?(n=this._composeTypingParticipantsText(this.typingParticipants),s.find(o+m.author).first().text(n)):t(u({text:e.name+this.options.messages.isTyping,styles:m})).appendTo(this.element),this._scrollToBottom()},_addTypingParticipant:function(t){for(var e=!1,n=0;n<this.typingParticipants.length;n+=1)if(this.typingParticipants[n].id==t.id){e=!0;break}e||this.typingParticipants.push(t)},_removeTypingParticipant:function(t){var e,n=this.element.find(o+m.typingIndicatorBubble);if(n.length){for(var s=0;s<this.typingParticipants.length;s+=1)this.typingParticipants[s].id==t.id&&this.typingParticipants.splice(s,1);""===(e=this._composeTypingParticipantsText(this.typingParticipants))?n.remove():n.find(o+m.author).first().text(e)}},_composeTypingParticipantsText:function(t){var e=this.options.messages,n=1==t.length?e.isTyping:e.areTyping,s="";return 0===t.length?s:s=this.typingParticipants.map((function(t){return t.name})).join(", ").replace(/,(?!.*,)/gim,e.and.trimRight())+n},_removeTypingIndicator:function(){var t=this.element.find(o+m.typingIndicatorBubble);t.length&&(this.typingParticipants=[],t.remove())},_clearSelection:function(){var t=f.styles.selected;this.element.find(o+t).removeClass(t)},_scrollToBottom:function(){this.element.scrollTop(this.element.prop("scrollHeight"))}});i(!0,f,{styles:m})}(window.kendo.jQuery);!function(t,e){var n=window.kendo,s=n.ui.Widget,i=t.extend,o=".",a={wrapper:"k-chat",canvas:"k-chat-canvas",viewWrapper:"k-message-list",messageBoxWrapper:"k-message-box",toolbarBoxWrapper:"k-toolbar-box"},r=s.extend({init:function(t,e,i){s.fn.init.call(this,t,e),i&&(this._events=i),this._user(),this._wrapper(),this._view(),e&&e.toolbar&&e.toolbar.buttons&&this._toolbar(),this._messageBox(),n.notify(this)},events:["typingStart","typingEnd","post","sendMessage","actionClick","toolClick"],options:{user:{name:"User",iconUrl:""},name:"Chat",messages:{messageListLabel:"Message list",placeholder:"Type a message...",toggleButton:"Toggle toolbar",sendButton:"Send message"},toolbar:!1},setOptions:function(e){this._setEvents(e),t.extend(!0,this.options,e),this.toolbar&&"toolbar"in e&&(this.toolbar.destroy(),this.toolbar=null),this.messageBox&&(this.messageBox.unbind(),this.messageBox.destroy(),this.messageBox=null),this._messageBox(),"toolbar"in e&&(this._resetToolbarButtons(e),this._toolbar())},_resetToolbarButtons:function(t){var e=this.wrapper.find(o+a.toolbarBoxWrapper);e.is(":visible")||e.show(),t.toolbar&&"object"==typeof t.toolbar&&"buttons"in t.toolbar&&(this.options.toolbar.buttons=t.toolbar.buttons)},destroy:function(){this.view&&(this.view.unbind(),this.view.destroy(),this.view=null),this.messageBox&&(this.messageBox.unbind(),this.messageBox.destroy(),this.messageBox=null),this.toolbar&&(this.toolbar.destroy(),this.toolbar=null),s.fn.destroy.call(this)},_user:function(){this.options.user.id=n.guid()},getUser:function(){return i(!0,{},this.options.user)},_wrapper:function(){var e=r.styles,n=this.options,s=n.height,i=n.width,a="<div class='"+e.viewWrapper+"'></div><span class='"+e.messageBoxWrapper+"'></span>",l=t(`<div class="${e.toolbarBoxWrapper}" role="toolbar"></div>`).hide();this.wrapper=this.element.addClass(e.wrapper).append(a).append(l),n.toolbar&&n.toolbar.buttons&&n.toolbar.buttons.length&&this.wrapper.find(o+e.toolbarBoxWrapper).show(),s&&this.wrapper.height(s),i&&this.wrapper.css("max-width",i)},_view:function(){var t=this,e=r.styles,s=i(!0,{},this.options),a=this.wrapper.find(o+e.viewWrapper+"");this.view=new n.chat.ChatView(a,s),this.view.bind("actionClick",(function(e){t.trigger("actionClick",e),t.postMessage(e.text)}))},_messageBox:function(){let t=this,e=r.styles,s=i(!0,{},{name:t.options.name,messages:t.options.messages,toolbar:t.options.toolbar,toolbarId:t.options.toolbarId}),a=this.wrapper.find(o+e.messageBoxWrapper+"");this.messageBox=new n.chat.ChatMessageBox(a,s),this.messageBox.bind("typingStart",(function(e){t.trigger("typingStart",e)})).bind("typingEnd",(function(e){t.trigger("typingEnd",e)})).bind("sendMessage",(function(e){t.trigger("sendMessage",e),t.postMessage(e.text)})).bind("toggleToolbar",(function(){t.toggleToolbar()})).bind("focusToolbar",(function(){t.toolbar&&t.toolbar.focus()}))},_toolbar:function(){var t=this,s=r.styles,a=i(!0,{},t.options),l=t.wrapper.find(o+s.toolbarBoxWrapper+"");t.options.toolbarId=n.guid(),l.attr("id",t.options.toolbarId),a.toolbar.scrollable===e&&(this.options.toolbar.scrollable=a.toolbar.scrollable=!0),a.toolbar.toggleable===e&&(this.options.toolbar.toggleable=a.toolbar.toggleable=!1),t.toolbar=new n.chat.ChatToolBar(l,a),t.toolbar.bind("click",(function(e){t.trigger("toolClick",{sender:t,name:e.name,button:e.button,messageBox:t.messageBox.input[0],originalEvent:e.originalEvent})}))},postMessage:function(t){var e=i(!0,{},{text:t,type:"message",timestamp:new Date,from:this.getUser()});this.trigger("post",e),this.renderMessage(e,e.from)},renderMessage:function(t,e){this.view.renderMessage(t,e)},renderSuggestedActions:function(t){this.view.renderSuggestedActions(t)},renderAttachments:function(t,e){this.view.renderAttachments(t,e)},toggleToolbar:function(t){this.toolbar.toggle(t)},renderUserTypingIndicator:function(t){this.view._renderTypingIndicator(t)},clearUserTypingIndicator:function(t){this.view._removeTypingParticipant(t)},removeTypingIndicator:function(){this.view._removeTypingIndicator()}});n.ui.plugin(r),i(!0,r,{styles:a})}(window.kendo.jQuery);var e=kendo;t.__meta__={id:"chat",name:"Chat",category:"web",description:"The Chat component.",depends:["core","draganddrop","html.button"]},t.default=e,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.chat.min.js.map