{"version":3,"file":"kendo.chat.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendochat","js","this","$","undefined$1","kendo","window","Widget","ui","extend","NS","keys","ChatMessageBox","init","element","options","fn","call","_wrapper","_attachEvents","_typing","events","messages","placeholder","toggleButton","sendButton","destroy","input","off","remove","empty","styles","inputId","guid","inputWrapper","addClass","appendTo","attr","inputSuffix","toolbar","toggleable","buttons","length","html","renderButton","icon","buttonToggleIcon","fillMode","size","buttonSendIcon","on","_keydown","bind","_input","_inputFocusout","buttonSend","_buttonClick","buttonToggle","_toggleToolbar","start","val","_triggerTyping","e","keyCode","ENTER","preventDefault","_sendMessage","F10","trigger","value","args","text","ev","originalEvent","button","buttonFlat","iconButton","buttonIcon","hidden","chat","jQuery","DATA_K_BUTTON_NAME","SCROLL_LEFT_NAME","SCROLL_RIGHT_NAME","VISIBLE","TABINDEX","DEFAULT_ANIMATION","effects","duration","NO_ANIMATION","expand","show","collapse","hide","ChatToolBar","toolbarOptions","name","buttonsDefined","_createButtonList","scrollable","buttonsWidth","width","_initScrolling","_setupAnimation","toggle","_onClick","_onKeydown","buttonList","i","_createButton","append","first","removeAttr","btnOptions","attributes","buttonElm","title","type","tabindex","data","buttonDefaults","iconClass","prepend","renderIcon","target","closest","is","scrollButton","_scrolling","_scroll","key","LEFT","_focusButton","RIGHT","dir","current","not","candidate","index","removeAttribute","focus","scrollButtonLeft","scrollButtonLeftIcon","class","scrollButtonRight","scrollButtonRightIcon","_refreshScrollButtons","commandName","that","buttonWidth","maxScrollSize","scrollAmmount","scrollValue","currentScrollLeft","Math","min","max","scrollLeft","isNaN","parseInt","animation","defaultExpandAnimation","defaultCollapseAnimation","reverse","_animationComplete","_animationCompleteExpand","round","scrollWidth","clientWidth","children","last","outerWidth","skipAnimation","complete","kendoStop","kendoAnimate","encode","htmlEncode","DOT","AVATAR_TEMPLATE","ref","url","IMG_TEMPLATE","MESSAGE_GROUP_TEMPLATE","noAvatar","SELF_MESSAGE_GROUP_TEMPLATE","TEXT_MESSAGE_TEMPLATE","timestamp","toString","parseDate","TYPING_INDICATOR_TEMPLATE","CARD_ACTIONS_TEMPLATE","map","CARD_ACTION_BUTTON_TEMPLATE","join","HERO_CARD_TEMPLATE","images","subtitle","HERO_IMG_TEMPLATE","Templates","Components","registerTemplate","templateName","template","getTemplate","suggestedActions","action","SUGGESTED_ACTION_TEMPLATE","registerComponent","componentName","component","getComponent","Component","Class","view","Calendar","kendoCalendar","change","viewStyles","wrapper","messageList","messageListContent","messageTime","messageGroup","message","only","middle","author","avatar","buttonPrimary","scrollButtonIconLeft","scrollButtonIconRight","typingIndicator","typingIndicatorBubble","bubble","suggestedAction","cardWrapper","cardDeckScrollWrap","cardDeck","cardList","card","cardRich","cardBody","cardMedia","cardTitle","cardSubtitle","cardActions","cardActionsVertical","cardActionsHorizontal","cardActionsStart","cardActionsCenter","cardActionsEnd","cardActionsStretched","cardAction","selected","ChatView","_list","_lastSender","typingParticipants","_scrollable","isTyping","areTyping","and","_scrollDraggable","list","messageListLabel","_listClick","_messageClick","_suggestedActionClick","_cardActionClick","_suggestedActionKeydown","_scrollButtonClick","currentTarget","scrollToLeft","find","scrollContainer","siblings","cardWidth","renderMessage","sender","Date","bubbleElement","_renderTemplate","_renderBubble","_removeTypingParticipant","id","renderSuggestedActions","_removeSuggestedActions","_scrollToBottom","renderAttachments","_renderAttachmentWrapper","attachmentLayout","cardContainer","attachments","cardElement","contentType","content","_removeTypingIndicator","renderComponent","layout","buttonLeft","_renderScrollButton","buttonRight","directionClass","targetElement","hasClass","parents","_clearSelection","SPACEBAR","messageType","group","_getMessageGroup","_appendToGroup","componentType","templateOptions","_getMessageGroupTemplate","appendTarget","iconUrl","user","messageElement","childrenCount","filter","removeClass","_renderTypingIndicator","participants","indicator","_addTypingParticipant","_composeTypingParticipantsText","found","push","splice","typingAction","typingText","replace","trimRight","selectedClass","scrollTop","prop","chatStyles","canvas","viewWrapper","messageBoxWrapper","toolbarBoxWrapper","Chat","_events","_user","_view","_toolbar","_messageBox","notify","setOptions","_setEvents","messageBox","unbind","_resetToolbarButtons","getUser","height","uiElements","toolbarElement","css","postMessage","toggleToolbar","toolbarId","postArgs","from","renderUserTypingIndicator","clearUserTypingIndicator","removeTypingIndicator","plugin"],"sources":["kendo.chat.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.html.button.js'), require('kendo.icons.js'), require('kendo.draganddrop.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.html.button', 'kendo.icons', 'kendo.draganddrop'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendochat = global.kendochat || {}, global.kendochat.js = factory()));\n})(this, (function () {\n (function($, undefined$1) {\n\n var kendo = window.kendo;\n var Widget = kendo.ui.Widget;\n var extend = $.extend;\n var DOT = \".\";\n var NS = \".kendoChat\";\n var keys = kendo.keys;\n\n var messageBoxStyles = {\n input: \"k-input-inner\",\n inputWrapper: \"k-textbox k-input k-input-lg k-input-solid\",\n button: \"k-button\",\n buttonFlat: \"k-button-lg k-button-flat k-button-flat-base\",\n iconButton: \"k-icon-button\",\n buttonIcon: \"k-button-icon\",\n buttonSend: \"k-chat-send\",\n buttonSendIcon: \"paper-plane\",\n buttonToggle: \"k-button-toggle\",\n buttonToggleIcon: \"more-horizontal\",\n hidden: \"k-hidden\",\n inputSuffix: \"k-input-suffix\"\n };\n\n var ChatMessageBox = Widget.extend({\n init: function(element, options) {\n Widget.fn.init.call(this, element, options);\n\n this._wrapper();\n\n this._attachEvents();\n\n this._typing = false;\n },\n\n events: [\n \"focusToolbar\",\n \"sendMessage\",\n \"toggleToolbar\",\n \"typingEnd\",\n \"typingStart\"\n ],\n\n options: {\n messages: {\n placeholder: \"Type a message...\",\n toggleButton: \"Toggle toolbar\",\n sendButton: \"Send message\"\n }\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n if (this.input) {\n this.input.off(NS);\n this.input.remove();\n this.input = null;\n }\n\n this.element.off(NS);\n this.element.empty();\n },\n\n _wrapper: function() {\n var styles = ChatMessageBox.styles;\n var options = this.options;\n var messages = options.messages;\n var inputId = \"inputId_\" + kendo.guid();\n\n this.inputWrapper = this.element\n .addClass(styles.inputWrapper)\n .appendTo(this.element);\n\n this.input = $(\"\")\n .addClass(styles.input)\n .attr(\"id\", inputId)\n .attr(\"aria-label\", messages.placeholder)\n .attr(\"placeholder\", messages.placeholder)\n .appendTo(this.inputWrapper);\n\n this.inputSuffix = $(\"\")\n .addClass(styles.inputSuffix)\n .appendTo(this.inputWrapper);\n\n if (options.toolbar && options.toolbar.toggleable && options.toolbar.buttons && options.toolbar.buttons.length) {\n $(kendo.html.renderButton((\"\"),\n {\n icon: styles.buttonToggleIcon,\n fillMode: \"flat\",\n size: \"large\"\n }))\n .appendTo(this.inputSuffix);\n }\n\n $(kendo.html.renderButton((\"\"),\n {\n icon: styles.buttonSendIcon,\n fillMode: \"flat\",\n size: \"large\"\n }))\n .appendTo(this.inputSuffix);\n },\n\n _attachEvents: function() {\n var styles = ChatMessageBox.styles;\n\n this.input\n .on(\"keydown\" + NS, this._keydown.bind(this))\n .on(\"input\" + NS, this._input.bind(this))\n .on(\"focusout\" + NS, this._inputFocusout.bind(this));\n\n this.element\n .on(\"click\" + NS, DOT + styles.buttonSend, this._buttonClick.bind(this));\n\n this.element\n .on(\"click\" + NS, DOT + styles.buttonToggle, this._toggleToolbar.bind(this));\n },\n\n _input: function() {\n var currentValue = this.input.val();\n var start = currentValue.length > 0;\n\n this._triggerTyping(start);\n },\n\n _keydown: function(e) {\n var key = e.keyCode;\n\n switch (key) {\n case keys.ENTER:\n e.preventDefault();\n\n this._sendMessage();\n break;\n case keys.F10:\n e.preventDefault();\n\n this.trigger(\"focusToolbar\");\n break;\n }\n },\n\n _buttonClick: function(e) {\n e.preventDefault();\n\n this._sendMessage();\n },\n\n _sendMessage: function() {\n var value = this.input.val();\n\n if (!value.length) {\n return;\n }\n\n this._triggerTyping(false);\n\n var args = {\n text: value\n };\n\n this.trigger(\"sendMessage\", args);\n\n this.input.val(\"\");\n },\n\n _inputFocusout: function() {\n this._triggerTyping(false);\n },\n\n _triggerTyping: function(start) {\n if (start) {\n if (!this._typing) {\n this.trigger(\"typingStart\", {});\n this._typing = true;\n }\n } else {\n if (this._typing) {\n this.trigger(\"typingEnd\", {});\n this._typing = false;\n }\n }\n },\n\n _toggleToolbar: function(ev) {\n this.trigger(\"toggleToolbar\", { originalEvent: ev });\n }\n });\n\n extend(true, ChatMessageBox, { styles: messageBoxStyles });\n extend(kendo, {\n chat: {\n ChatMessageBox: ChatMessageBox\n }\n });\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n\n var kendo = window.kendo;\n var Widget = kendo.ui.Widget;\n var extend = $.extend;\n var DOT = \".\";\n var NS = \".kendoChat\";\n\n var DATA_K_BUTTON_NAME = \"kButtonName\";\n var SCROLL_LEFT_NAME = \"chatToolbarScrollLeft\";\n var SCROLL_RIGHT_NAME = \"chatToolbarScrollRight\";\n var VISIBLE = \":visible\";\n var TABINDEX = \"tabindex\";\n\n var DEFAULT_ANIMATION = {\n effects: \"expand:vertical\",\n duration: 200\n };\n var NO_ANIMATION = {\n expand: {\n show: true\n },\n collapse: {\n hide: true\n }\n };\n\n var toolbarStyles = {\n button: \"k-button\",\n buttonDefaults: \"k-button-md k-rounded-md k-button-solid k-button-solid-base\",\n buttonList: \"k-button-list k-toolbar-group\",\n scrollButton: \"k-scroll-button\",\n scrollButtonLeft: \"k-scroll-button-left\",\n scrollButtonRight: \"k-scroll-button-right\",\n scrollButtonLeftIcon: \"chevron-left\",\n scrollButtonRightIcon: \"chevron-right\",\n iconButton: \"k-icon-button\"\n };\n\n var ChatToolBar = Widget.extend({\n init: function(element, options) {\n options = extend({}, options, { name: \"ChatToolbar\" });\n var toolbarOptions = options.toolbar;\n var buttonsDefined = toolbarOptions.buttons && toolbarOptions.buttons.length;\n\n Widget.fn.init.call(this, element, options);\n\n if (buttonsDefined) {\n this._createButtonList();\n }\n\n if (buttonsDefined && toolbarOptions.scrollable &&\n this.buttonsWidth() > this.element.width()) {\n this._initScrolling();\n }\n\n this._setupAnimation();\n\n if (buttonsDefined && toolbarOptions.toggleable) {\n this.toggle(true);\n }\n\n this.element\n .on(\"click\" + NS, this._onClick.bind(this))\n .on(\"keydown\" + NS, this._onKeydown.bind(this));\n },\n\n events: [\n \"click\"\n ],\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n this.element.off(NS);\n this.element.empty();\n },\n\n _createButtonList: function() {\n var that = this;\n var styles = ChatToolBar.styles;\n var buttons = that.options.toolbar.buttons;\n var buttonList = $(\"
\");\n\n for (var i = 0; i < buttons.length; i++) {\n var button = that._createButton(buttons[i]);\n buttonList.append(button);\n }\n\n buttonList.appendTo(this.element);\n\n this.buttonList = buttonList;\n this.buttons().first().removeAttr(TABINDEX);\n },\n\n _createButton: function(btnOptions) {\n var styles = ChatToolBar.styles;\n var buttonElm = $(\"\");\n };\n\n var CARD_ACTIONS_TEMPLATE = function (ref) {\n var styles = ref.styles;\n var buttons = ref.buttons;\n\n return (\"
\\n \" + (buttons.map(function (button) { return CARD_ACTION_BUTTON_TEMPLATE({ styles: styles, button: button }); }).join('')) + \"\\n
\");\n };\n\n var HERO_CARD_TEMPLATE = function (ref) {\n var styles = ref.styles;\n var images = ref.images;\n var buttons = ref.buttons;\n var title = ref.title;\n var subtitle = ref.subtitle;\n var text = ref.text;\n\n return (\"
\\n \" + ((typeof images !== \"undefined\" && images.length > 0) ? HERO_IMG_TEMPLATE({ images: images, styles: styles }) : '') + \"\\n
\\n \" + (typeof title !== \"undefined\" ? (function () { return (\"
\" + (encode(title)) + \"
\"); })() : '') + \"\\n \" + (typeof subtitle !== \"undefined\" ? (function () { return (\"
\" + (encode(subtitle)) + \"
\"); })() : '') + \"\\n \" + (typeof text !== \"undefined\" ? (function () { return (\"

\" + (encode(text)) + \"

\"); })() : '') + \"\\n
\\n \" + ((typeof buttons !== \"undefined\" && buttons.length > 0) ? CARD_ACTIONS_TEMPLATE({ buttons: buttons, styles: styles }) : '') + \"\\n
\");\n };\n\n extend(kendo.chat, {\n Templates: {},\n Components: {}\n });\n\n kendo.chat.registerTemplate = function(templateName, template) {\n kendo.chat.Templates[templateName] = kendo.template(template);\n };\n\n kendo.chat.getTemplate = function(templateName) {\n return kendo.chat.Templates[templateName] || TEXT_MESSAGE_TEMPLATE;\n };\n\n kendo.chat.registerTemplate(\"text\", TEXT_MESSAGE_TEMPLATE);\n kendo.chat.registerTemplate(\"message\", TEXT_MESSAGE_TEMPLATE);\n kendo.chat.registerTemplate(\"typing\", TYPING_INDICATOR_TEMPLATE);\n kendo.chat.registerTemplate(\"suggestedAction\", SUGGESTED_ACTIONS_TEMPLATE);\n kendo.chat.registerTemplate(\"heroCard\", HERO_CARD_TEMPLATE);\n kendo.chat.registerTemplate(\"application/vnd.microsoft.card.hero\", HERO_CARD_TEMPLATE);\n\n kendo.chat.registerComponent = function(componentName, component) {\n kendo.chat.Components[componentName] = component;\n };\n\n kendo.chat.getComponent = function(componentName) {\n return kendo.chat.Components[componentName] || null;\n };\n\n var Component = kendo.chat.Component = kendo.Class.extend({\n init: function(options, view) {\n this.element = $('
');\n this.options = options;\n this.view = view;\n },\n\n destroy: function() {\n kendo.destroy(this.element);\n }\n });\n\n var Calendar = Component.extend({\n init: function(options, view) {\n Component.fn.init.call(this, options, view);\n\n this.element.kendoCalendar({\n change: function() {\n view.trigger(\"suggestedAction\", { text: kendo.toString(this.value(), 'd'), type: \"message\" });\n }\n });\n },\n\n destroy: function() {\n }\n });\n kendo.chat.registerComponent(\"calendar\", Calendar);\n\n var viewStyles = {\n wrapper: \"k-chat\",\n messageList: \"k-avatars\",\n messageListContent: \"k-message-list-content\",\n messageTime: \"k-message-time\",\n messageGroup: \"k-message-group\",\n message: \"k-message\",\n only: \"k-only\",\n first: \"k-first\",\n middle: \"k-middle\",\n last: \"k-last\",\n author: \"k-author\",\n avatar: \"k-avatar\",\n noAvatar: \"k-no-avatar\",\n self: \"k-alt\",\n button: \"k-button\",\n buttonDefaults: \"k-button-md k-rounded-md k-button-solid k-button-solid-base\",\n iconButton: \"k-icon-button\",\n buttonIcon: \"k-button-icon\",\n buttonPrimary: \"k-button-md k-rounded-md k-button-flat k-button-flat-primary\",\n scrollButtonIconLeft: \"chevron-left\",\n scrollButtonIconRight: \"chevron-right\",\n typingIndicator: \"k-typing-indicator\",\n typingIndicatorBubble: \"k-typing-indicator-bubble\",\n bubble: \"k-chat-bubble\",\n suggestedActions: \"k-quick-replies\",\n suggestedAction: \"k-quick-reply\",\n cardWrapper: \"k-card-container\",\n cardDeckScrollWrap: \"k-card-deck-scrollwrap\",\n cardDeck: \"k-card-deck\",\n cardList: \"k-card-list\",\n card: \"k-card\",\n cardRich: \"k-card-type-rich\",\n cardBody: \"k-card-body\",\n cardMedia: \"k-card-media\",\n cardTitle: \"k-card-title\",\n cardSubtitle: \"k-card-subtitle\",\n cardActions: \"k-card-actions\",\n cardActionsVertical: \"k-actions-vertical\",\n cardActionsHorizontal: \"k-actions-horizontal\",\n cardActionsStart: \"k-actions-start\",\n cardActionsCenter: \"k-actions-center\",\n cardActionsEnd: \"k-actions-end\",\n cardActionsStretched: \"k-actions-stretched\",\n cardAction: \"k-card-action\",\n selected: \"k-selected\"\n };\n\n var ChatView = kendo.chat.ChatView = Widget.extend({\n init: function(element, options) {\n Widget.fn.init.call(this, element, options);\n\n this._list();\n\n this._lastSender = null;\n\n this.typingParticipants = [];\n\n this._attachEvents();\n\n this._scrollable();\n },\n\n events: [\n ],\n\n options: {\n messages: {\n isTyping: \" is typing.\",\n areTyping: \" are typing.\",\n and: \" and \"\n }\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n\n if (this._scrollDraggable) {\n this._scrollDraggable.destroy();\n }\n\n this.element.empty();\n this.element.off(NS);\n\n this.list = null;\n this._lastSender = null;\n },\n\n _list: function() {\n var viewStyles = ChatView.styles;\n\n this.element\n .addClass(viewStyles.messageList)\n .attr(\"role\", \"log\")\n .attr(\"aria-label\", this.options.messages.messageListLabel);\n\n this.list = $(\"
\")\n .addClass(viewStyles.messageListContent)\n .appendTo(this.element);\n },\n\n _attachEvents: function() {\n var styles = ChatView.styles;\n\n this.element\n .on(\"click\" + NS, this._listClick.bind(this))\n .on(\"click\" + NS, DOT + styles.message, this._messageClick.bind(this))\n .on(\"click\" + NS, DOT + styles.suggestedAction, this._suggestedActionClick.bind(this))\n .on(\"click\" + NS, DOT + styles.cardAction + SPACE + DOT + styles.button, this._cardActionClick.bind(this));\n\n this.element.on(\"keydown\" + NS, DOT + styles.suggestedAction, this._suggestedActionKeydown.bind(this));\n },\n\n _scrollable: function() {\n var viewStyles = ChatView.styles;\n\n this.element\n .on(\"click\" + NS, DOT + viewStyles.cardDeckScrollWrap + SPACE + DOT + viewStyles.button, this._scrollButtonClick.bind(this));\n },\n\n _scrollButtonClick: function(e) {\n var viewStyles = ChatView.styles;\n var button = $(e.currentTarget);\n var scrollToLeft = button.find(((DOT + viewStyles.buttonIcon) + \"[class*=\" + (viewStyles.scrollButtonIconLeft) + \"]\")).length !== 0;\n var scrollContainer = button.siblings(DOT + viewStyles.cardDeck);\n var lastCard = scrollContainer.find(DOT + viewStyles.card).last();\n var cardWidth = lastCard.outerWidth(true);\n\n if (scrollToLeft) {\n kendo.scrollLeft(scrollContainer, kendo.scrollLeft(scrollContainer) - cardWidth);\n } else {\n kendo.scrollLeft(scrollContainer, kendo.scrollLeft(scrollContainer) + cardWidth);\n }\n },\n\n getTemplate: function(templateName) {\n return kendo.chat.getTemplate(templateName);\n },\n\n getComponent: function(type) {\n return kendo.chat.getComponent(type);\n },\n\n renderMessage: function(message, sender) {\n if (!message.timestamp) {\n message.timestamp = new Date();\n }\n\n if (!message.text) {\n message.text = \"\";\n }\n\n var bubbleElement = this._renderTemplate(message.type, message);\n\n this._renderBubble(message.type, bubbleElement, sender);\n\n if (message.type == \"typing\") {\n if (this.typingParticipants.length > 0) {\n this._removeTypingParticipant(sender);\n }\n } else {\n this._lastSender = sender.id;\n }\n },\n\n renderSuggestedActions: function(suggestedActions) {\n this._removeSuggestedActions();\n\n var element = this._renderTemplate(\"suggestedAction\", { suggestedActions: suggestedActions });\n\n this.list.append(element);\n\n this._scrollToBottom();\n },\n\n renderAttachments: function(options) {\n var wrapper = this._renderAttachmentWrapper(options.attachmentLayout);\n var cardContainer = options.attachmentLayout === \"carousel\" ? wrapper.find(DOT + ChatView.styles.cardDeck) : wrapper;\n var attachments = options.attachments;\n\n if (!attachments.length) {\n return;\n }\n\n for (var i = 0; i < attachments.length; i++) {\n var cardElement = this._renderTemplate(attachments[i].contentType, attachments[i].content);\n\n cardContainer.append(cardElement);\n }\n\n this._removeSuggestedActions();\n this._removeTypingIndicator();\n\n this.list.append(wrapper);\n\n this._lastSender = null;\n },\n\n renderComponent: function(type) {\n var componentType = this.getComponent(type);\n var component = new componentType({}, this);\n\n this.list.append(component.element);\n\n this._scrollToBottom();\n },\n\n _renderAttachmentWrapper: function(layout) {\n var viewStyles = ChatView.styles;\n var wrapper = $(\"
\");\n\n if (layout === \"carousel\") {\n wrapper.addClass(viewStyles.cardDeckScrollWrap);\n\n var buttonLeft = this._renderScrollButton(viewStyles.scrollButtonIconLeft);\n wrapper.append(buttonLeft);\n\n wrapper.append($(\"
\").addClass(viewStyles.cardDeck));\n\n var buttonRight = this._renderScrollButton(viewStyles.scrollButtonIconRight);\n wrapper.append(buttonRight);\n } else {\n wrapper.addClass(viewStyles.cardList);\n }\n\n return wrapper;\n },\n\n _renderScrollButton: function(directionClass) {\n var viewStyles = ChatView.styles;\n\n return $(\"