UNPKG

@progress/kendo-ui

Version:

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

1 lines 11.5 kB
module.exports=function(s){var i={};function n(t){if(i[t])return i[t].exports;var e=i[t]={exports:{},id:t,loaded:!1};return s[t].call(e.exports,e,e.exports,n),e.loaded=!0,e.exports}return n.m=s,n.c=i,n.p="",n(0)}({0:function(t,e,s){t.exports=s(22)},3:function(t,e){t.exports=function(){throw Error("define cannot be used indirect")}},20:function(t,e){t.exports=require("../kendo.core")},22:function(t,e,s){var i;s(3),s=[s(20),s(23)],void 0===(e="function"==typeof(i=function(){var o=window.kendo.jQuery,t=void 0,l=window.kendo,s=l.ui.Widget,c=o.extend,d=".",r=" ",e=".kendoChat",u=l.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>"),g=l.template('<div me class="#=styles.messageGroup# #=styles.self# #= url ? "" : styles.noAvatar #">'+"# if (url) { #"+'<img src="#=url#" alt="#:text#" class="#=styles.avatar#">'+"# } #"+"</div>"),i=l.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>"),n=l.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>"),h=l.template('<div class="#=styles.suggestedActions#">'+"# for (var i = 0; i < suggestedActions.length; i++) { #"+'<span role="button" tabindex="0" class="#=styles.suggestedAction#" data-value="#:suggestedActions[i].value#">#:suggestedActions[i].title#</span>'+"# } #"+"</div>"),m=l.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>"),f=(c(l.chat,{Templates:{},Components:{}}),l.chat.registerTemplate=function(t,e){l.chat.Templates[t]=l.template(e)},l.chat.getTemplate=function(t){return l.chat.Templates[t]||i},l.chat.registerTemplate("text",i),l.chat.registerTemplate("message",i),l.chat.registerTemplate("typing",n),l.chat.registerTemplate("suggestedAction",h),l.chat.registerTemplate("heroCard",m),l.chat.registerTemplate("application/vnd.microsoft.card.hero",m),l.chat.registerComponent=function(t,e){l.chat.Components[t]=e},l.chat.getComponent=function(t){return l.chat.Components[t]||null},l.chat.Component=l.Class.extend({init:function(t,e){this.element=o("<div></div>");this.options=t;this.view=e},destroy:function(){l.destroy(this.element)}})),y=f.extend({init:function(t,e){f.fn.init.call(this,t,e);this.element.kendoCalendar({change:function(){e.trigger("suggestedAction",{text:l.toString(this.value(),"d"),type:"message"})}})},destroy:function(){}}),a=(l.chat.registerComponent("calendar",y),{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",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",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"}),p=l.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);if(this._scrollDraggable)this._scrollDraggable.destroy();this.element.empty();this.element.off(e);this.list=null;this._lastSender=null},_list:function(){var t=p.styles;this.element.addClass(t.messageList).attr("role","log").attr("aria-label",this.options.messages.messageListLabel);this.list=o("<div>").addClass(t.messageListContent).appendTo(this.element)},_attachEvents:function(){var t=p.styles;this.element.on("click"+e,this._listClick.bind(this)).on("click"+e,d+t.message,this._messageClick.bind(this)).on("click"+e,d+t.suggestedAction,this._suggestedActionClick.bind(this)).on("click"+e,d+t.cardAction+r+d+t.button,this._cardActionClick.bind(this));this.element.on("keydown"+e,d+t.suggestedAction,this._suggestedActionKeydown.bind(this))},_scrollable:function(){var t=p.styles;this.element.on("click"+e,d+t.cardDeckScrollWrap+r+d+t.button,this._scrollButtonClick.bind(this))},_scrollButtonClick:function(t){var e=p.styles;var s=o(t.currentTarget);var i=s.find(d+e.scrollButtonIconLeft).length!==0;var n=s.siblings(d+e.cardDeck);var a=n.find(d+e.card).last();var r=a.outerWidth(true);if(i)l.scrollLeft(n,l.scrollLeft(n)-r);else l.scrollLeft(n,l.scrollLeft(n)+r)},getTemplate:function(t){return l.chat.getTemplate(t)},getComponent:function(t){return l.chat.getComponent(t)},renderMessage:function(t,e){if(!t.timestamp)t.timestamp=new Date;if(!t.text)t.text="";var s=this._renderTemplate(t.type,t);this._renderBubble(t.type,s,e);if(t.type=="typing"){if(this.typingParticipants.length>0)this._removeTypingParticipant(e)}else 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);var s=t.attachmentLayout==="carousel"?e.find(d+p.styles.cardDeck):e;var i=t.attachments;if(!i.length)return;for(var n=0;n<i.length;n++){var a=this._renderTemplate(i[n].contentType,i[n].content);s.append(a)}this._removeSuggestedActions();this._removeTypingIndicator();this.list.append(e);this._lastSender=null},renderComponent:function(t){var e=this.getComponent(t);var s=new e({},this);this.list.append(s.element);this._scrollToBottom()},_renderAttachmentWrapper:function(t){var e=p.styles;var s=o("<div>");if(t==="carousel"){s.addClass(e.cardDeckScrollWrap);var i=this._renderScrollButton(e.scrollButtonIconLeft);s.append(i);s.append(o("<div>").addClass(e.cardDeck));var n=this._renderScrollButton(e.scrollButtonIconRight);s.append(n)}else s.addClass(e.cardList);return s},_renderScrollButton:function(t){var e=p.styles;return o("<button>").addClass(e.button).addClass(e.buttonDefaults).addClass(e.iconButton).append(o("<span>").addClass(e.buttonIcon).addClass(e.scrollButtonIcon).addClass(t))},_removeSuggestedActions:function(){this.list.find(d+p.styles.suggestedActions).remove()},_listClick:function(t){var e=p.styles;var s=o(t.target);if(s.hasClass(e.message)||s.parents(d+e.message).length)return;this._clearSelection()},_messageClick:function(t){this._clearSelection();o(t.currentTarget).addClass(p.styles.selected)},_suggestedActionClick:function(t){var e=o(t.target).data("value")||"";this.trigger("actionClick",{text:e});this._removeSuggestedActions()},_suggestedActionKeydown:function(t){if(t.keyCode===l.keys.SPACEBAR||t.keyCode===l.keys.ENTER)this._suggestedActionClick(t)},_cardActionClick:function(t){var e=o(t.target).data("value")||"";this.trigger("actionClick",{text:e})},_renderBubble:function(t,e,s){this._removeSuggestedActions();this._removeTypingIndicator();var i=this._getMessageGroup(s,t);this._appendToGroup(i,e,t);this._scrollToBottom()},_renderTemplate:function(t,e){var s=this.getComponent(t);var i;if(s){var n=new s(e,this);i=n.element}else{var a=this.getTemplate(t);var r=c(true,{},e,{styles:p.styles});i=o(a(r))}return i},_getMessageGroup:function(t,e){var s=p.styles;var i=this._getMessageGroupTemplate(t,e);var n=e=="typing"?this.element:this.list;var a;if(t.id===this._lastSender&&this._lastSender!==null&&e!=="typing"){a=this.list.find(d+s.messageGroup).last();if(a.length)return a}return o(i({text:t.name,url:t.iconUrl,styles:s})).appendTo(n)},_getMessageGroupTemplate:function(t,e){var s=t.id===this.options.user.id;var i=s?g:u;if(e=="typing")i=n;return i},_appendToGroup:function(t,e,s){var i=p.styles;var n=t.find(d+i.message);var a=n.length;var r=this.element.find(d+i.typingIndicator);if(r.length&&s=="typing")return;e.addClass(a===0?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(t){var e=this.element.find(d+a.typingIndicatorBubble),s,i;this._addTypingParticipant(t);if(e.length){i=this._composeTypingParticipantsText(this.typingParticipants);s=e.find(d+a.author).first();s.text(i)}else o(n({text:t.name+this.options.messages.isTyping,styles:a})).appendTo(this.element);this._scrollToBottom()},_addTypingParticipant:function(t){var e=false;for(var s=0;s<this.typingParticipants.length;s+=1)if(this.typingParticipants[s].id==t.id){e=true;break}if(!e)this.typingParticipants.push(t)},_removeTypingParticipant:function(t){var e=this.element.find(d+a.typingIndicatorBubble),s,i;if(e.length){for(var n=0;n<this.typingParticipants.length;n+=1)if(this.typingParticipants[n].id==t.id)this.typingParticipants.splice(n,1);i=this._composeTypingParticipantsText(this.typingParticipants);if(i==="")e.remove();else{s=e.find(d+a.author).first();s.text(i)}}},_composeTypingParticipantsText:function(t){var e=this.options.messages,s=t.length==1?e.isTyping:e.areTyping,i="";if(t.length===0)return i;i=this.typingParticipants.map(function(t){return t.name}).join(", ").replace(/,(?!.*,)/gim,e.and.trimRight())+s;return i},_removeTypingIndicator:function(){var t=this.element.find(d+a.typingIndicatorBubble);if(t.length){this.typingParticipants=[];t.remove()}},_clearSelection:function(){var t=p.styles.selected;this.element.find(d+t).removeClass(t)},_scrollToBottom:function(){this.element.scrollTop(this.element.prop("scrollHeight"))}});return c(true,p,{styles:a}),window.kendo})?i.apply(e,s):i)||(t.exports=e)},23:function(t,e){t.exports=require("../kendo.draganddrop")}});