UNPKG

@progress/kendo-ui

Version:

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

1 lines 10.7 kB
module.exports=function(t){function e(i){if(s[i])return s[i].exports;var n=s[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var s={};return e.m=t,e.c=s,e.p="",e(0)}({0:function(t,e,s){s(21),t.exports=s(21)},3:function(t,e){t.exports=function(){throw Error("define cannot be used indirect")}},19:function(t,e){t.exports=require("../kendo.core")},21:function(t,e,s){var i,n,a;!function(r,define){n=[s(19),s(22)],i=r,a="function"==typeof i?i.apply(e,n):i,!(void 0!==a&&(t.exports=a))}(function(){return function(t,e){var s,i,n,a,r=window.kendo,l=r.ui.Widget,o=t.extend,c=t.proxy,d=".",p=" ",g=".kendoChat",u=r.template('<div #:text# class="#=styles.messageGroup# #= url ? "" : styles.noAvatar #"><p class="#=styles.author#">#:text#</p># if (url) { #<img src="#=url#" alt="#:text#" class="#=styles.avatar#"># } #</div>'),h=r.template('<div me class="#=styles.messageGroup# #=styles.self# #= url ? "" : styles.noAvatar #"># if (url) { #<img src="#=url#" alt="#:text#" class="#=styles.avatar#"># } #</div>'),m=r.template('<div class="#=styles.message#"><time class="#=styles.messageTime#">#= kendo.toString(kendo.parseDate(timestamp), "HH:mm:ss") #</time><div class="#=styles.bubble#">#:text#</div></div>'),y=r.template('<div class="#=styles.messageListContent# #=styles.typingIndicatorBubble#"><p class="#=styles.author#">#:text#</p><div class="#=styles.message#"><div class="#=styles.bubble#"><div class="#=styles.typingIndicator#"><span></span><span></span><span></span></div></div></div></div>'),f=r.template('<div class="#=styles.suggestedActions#"># for (var i = 0; i < suggestedActions.length; i++) { #<span class="#=styles.suggestedAction#" data-value="#:suggestedActions[i].value#">#:suggestedActions[i].title#</span># } #</div>'),v=r.template('<div class="#=styles.card# #=styles.cardRich#"># if (typeof images !== "undefined" && images.length > 0) { #<img src="#:images[0].url#" alt="#:images[0].alt#" class="#=styles.cardImage#" /># } #<div class="#=styles.cardBody#"># if (typeof title !== "undefined") { #<h5 class="#=styles.cardTitle#">#:title#</h5># } ## if (typeof subtitle !== "undefined") { #<h6 class="#=styles.cardSubtitle#">#:subtitle#</h6># } ## if (typeof text !== "undefined") { #<p>#:text#</p># } #</div># if (typeof buttons !== "undefined" && buttons.length > 0) { #<div class="#=styles.cardActions# #=styles.cardActionsVertical#"># for (var i = 0; i < buttons.length; i++) { #<span class="#=styles.cardAction#"><span class="#=styles.button# #=styles.buttonPrimary#" data-value="#:buttons[i].value#">#:buttons[i].title#</span></span># } #</div># } #</div>');o(r.chat,{Templates:{},Components:{}}),r.chat.registerTemplate=function(t,e){r.chat.Templates[t]=r.template(e)},r.chat.getTemplate=function(t){return r.chat.Templates[t]||m},r.chat.registerTemplate("text",m),r.chat.registerTemplate("message",m),r.chat.registerTemplate("typing",y),r.chat.registerTemplate("suggestedAction",f),r.chat.registerTemplate("heroCard",v),r.chat.registerTemplate("application/vnd.microsoft.card.hero",v),r.chat.registerComponent=function(t,e){r.chat.Components[t]=e},r.chat.getComponent=function(t){return r.chat.Components[t]||null},s=r.chat.Component=r.Class.extend({init:function(e,s){this.element=t("<div></div>"),this.options=e,this.view=s},destroy:function(){r.destroy(this.element)}}),i=s.extend({init:function(t,e){s.fn.init.call(this,t,e),this.element.kendoCalendar({change:function(){e.trigger("suggestedAction",{text:r.toString(this.value(),"d"),type:"message"})}})},destroy:function(){}}),r.chat.registerComponent("calendar",i),n={wrapper:"k-widget 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",iconButton:"k-button-icon",buttonPrimary:"k-flat k-primary",scrollButtonIcon:"k-icon",scrollButtonIconLeft:"k-i-arrow-chevron-left",scrollButtonIconRight:"k-i-arrow-chevron-right",typingIndicator:"k-typing-indicator",typingIndicatorBubble:"k-typing-indicator-bubble",bubble:"k-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",cardImage:"k-card-image",cardTitle:"k-card-title",cardSubtitle:"k-card-subtitle",cardActions:"k-card-actions",cardActionsVertical:"k-card-actions-vertical",cardAction:"k-card-action",selected:"k-state-selected"},a=r.chat.ChatView=l.extend({init:function(t,e){l.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(){l.fn.destroy.call(this),this._scrollDraggable&&this._scrollDraggable.destroy(),this.element.empty(),this.element.off(g),this.list=null,this._lastSender=null},_list:function(){var e=a.styles;this.element.addClass(e.messageList).attr("aria-live","polite"),this.list=t("<div>").addClass(e.messageListContent).appendTo(this.element)},_attachEvents:function(){var t=a.styles;this.element.on("click"+g,c(this._listClick,this)).on("click"+g,d+t.message,c(this._messageClick,this)).on("click"+g,d+t.suggestedAction,c(this._suggestedActionClick,this)).on("click"+g,d+t.cardAction+p+d+t.button,c(this._cardActionClick,this))},_scrollable:function(){var t=a.styles;this.element.on("click"+g,d+t.cardDeckScrollWrap+p+d+t.button,c(this._scrollButtonClick,this))},_scrollButtonClick:function(e){var s=a.styles,i=t(e.currentTarget),n=0!==i.find(d+s.scrollButtonIconLeft).length,r=i.siblings(d+s.cardDeck),l=r.find(d+s.card).last(),o=l.outerWidth(!0);r.scrollLeft(n?r.scrollLeft()-o:r.scrollLeft()+o)},getTemplate:function(t){return r.chat.getTemplate(t)},getComponent:function(t){return r.chat.getComponent(t)},renderMessage:function(t,e){t.timestamp||(t.timestamp=new Date),t.text||(t.text="");var s=this._renderTemplate(t.type,t);this._renderBubble(t.type,s,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,s,i=this._renderAttachmentWrapper(t.attachmentLayout),n="carousel"===t.attachmentLayout?i.find(d+a.styles.cardDeck):i,r=t.attachments;if(r.length){for(e=0;e<r.length;e++)s=this._renderTemplate(r[e].contentType,r[e].content),n.append(s);this._removeSuggestedActions(),this._removeTypingIndicator(),this.list.append(i),this._lastSender=null}},renderComponent:function(t){var e=this.getComponent(t),s=new e({},this);this.list.append(s.element),this._scrollToBottom()},_renderAttachmentWrapper:function(e){var s,i,n=a.styles,r=t("<div>");return"carousel"===e?(r.addClass(n.cardDeckScrollWrap),s=this._renderScrollButton(n.scrollButtonIconLeft),r.append(s),r.append(t("<div>").addClass(n.cardDeck)),i=this._renderScrollButton(n.scrollButtonIconRight),r.append(i)):r.addClass(n.cardList),r},_renderScrollButton:function(e){var s=a.styles;return t("<button>").addClass(s.button).addClass(s.iconButton).append(t("<span>").addClass(s.scrollButtonIcon).addClass(e))},_removeSuggestedActions:function(){this.list.find(d+a.styles.suggestedActions).remove()},_listClick:function(e){var s=a.styles,i=t(e.target);i.hasClass(s.message)||i.parents(d+s.message).length||this._clearSelection()},_messageClick:function(e){this._clearSelection(),t(e.currentTarget).addClass(a.styles.selected)},_suggestedActionClick:function(e){var s=t(e.target).data("value")||"";this.trigger("actionClick",{text:s}),this._removeSuggestedActions()},_cardActionClick:function(e){var s=t(e.target).data("value")||"";this.trigger("actionClick",{text:s})},_renderBubble:function(t,e,s){this._removeSuggestedActions(),this._removeTypingIndicator();var i=this._getMessageGroup(s,t);this._appendToGroup(i,e,t),this._scrollToBottom()},_renderTemplate:function(e,s){var i,n,r,l,c=this.getComponent(e);return c?(n=new c(s,this),i=n.element):(r=this.getTemplate(e),l=o(!0,{},s,{styles:a.styles}),i=t(r(l))),i},_getMessageGroup:function(e,s){var i,n=a.styles,r=this._getMessageGroupTemplate(e,s),l="typing"==s?this.element:this.list;return e.id===this._lastSender&&null!==this._lastSender&&"typing"!==s&&(i=this.list.find(d+n.messageGroup).last(),i.length)?i:t(r({text:e.name,url:e.iconUrl,styles:n})).appendTo(l)},_getMessageGroupTemplate:function(t,e){var s=t.id===this.options.user.id,i=s?h:u;return"typing"==e&&(i=y),i},_appendToGroup:function(t,e,s){var i=a.styles,n=t.find(d+i.message),r=n.length,l=this.element.find(d+i.typingIndicator);l.length&&"typing"==s||(e.addClass(0===r?i.only:i.last),n.filter(d+i.only).removeClass(i.only).addClass(i.first),n.filter(d+i.last).removeClass(i.last).addClass(i.middle),t.append(e))},_renderTypingIndicator:function(e){var s,i,a=this.element.find(d+n.typingIndicatorBubble);this._addTypingParticipant(e),a.length?(i=this._composeTypingParticipantsText(this.typingParticipants),s=a.find(d+n.author).first(),s.text(i)):t(y({text:e.name+this.options.messages.isTyping,styles:n})).appendTo(this.element),this._scrollToBottom()},_addTypingParticipant:function(t){var e,s=!1;for(e=0;e<this.typingParticipants.length;e+=1)if(this.typingParticipants[e].id==t.id){s=!0;break}s||this.typingParticipants.push(t)},_removeTypingParticipant:function(t){var e,s,i,a=this.element.find(d+n.typingIndicatorBubble);if(a.length){for(i=0;i<this.typingParticipants.length;i+=1)this.typingParticipants[i].id==t.id&&this.typingParticipants.splice(i,1);s=this._composeTypingParticipantsText(this.typingParticipants),""===s?a.remove():(e=a.find(d+n.author).first(),e.text(s))}},_composeTypingParticipantsText:function(t){var e=this.options.messages,s=1==t.length?e.isTyping:e.areTyping,i="";return 0===t.length?i:i=this.typingParticipants.map(function(t){return t.name}).join(", ").replace(/,(?!.*,)/gim,e.and.trimRight())+s},_removeTypingIndicator:function(){var t=this.element.find(d+n.typingIndicatorBubble);t.length&&(this.typingParticipants=[],t.remove())},_clearSelection:function(){var t=a.styles.selected;this.element.find(d+t).removeClass(t)},_scrollToBottom:function(){this.element.scrollTop(this.element.prop("scrollHeight"))}}),o(!0,a,{styles:n})}(window.kendo.jQuery),window.kendo},s(3))},22:function(t,e){t.exports=require("../kendo.draganddrop")}});