kendo-ui-core
Version:
3 lines (2 loc) • 7.12 kB
JavaScript
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i(require("kendo.core.js"),require("kendo.popup.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.popup.min","kendo.icons.min"],i):((t="undefined"!=typeof globalThis?globalThis:t||self).kendonotification=t.kendonotification||{},t.kendonotification.js=i())}(this,(function(){return function(t,i){var n,e=window.kendo,o=e.ui.Widget,a=t.extend,s=e.htmlEncode,p=window.setTimeout,d="click",c="show",l="hide",u="k-notification",r="k-close-icon",f=".k-notification-actions ."+r,h="k-hiding",m="info",g="success",_="warning",k="error",w=((n={})[m]="info-circle",n[k]="x-outline",n[_]="exclamation-circle",n[g]="check-outline",n),v="top",T="left",b="bottom",y="right",C=".kendoNotification",P=function(i){return function(n){var o=n.typeIcon,a=n.content;n.closeButton;return e.ui.icon(t('<span title="'+s(o)+'"></span>'),{icon:w[s(o)]||s(o)})+'<div class="k-notification-content">'+(i?s(a):a)+"</div>"}},A=P(!1),S=P(!0),H={close:{template:e.ui.icon(t('<span aria-hidden="true" title="Hide"></span>'),{icon:"x",iconClass:r})}},x=o.extend({init:function(i,n){var a=this;o.fn.init.call(a,i,n),(n=a.options).appendTo&&t(n.appendTo).is(i)||a.element.hide(),a._compileTemplates(n.templates),a._guid="_"+e.guid(),a._isRtl=e.support.isRtl(i),a._compileStacking(n.stacking,n.position.top,n.position.left),e.notify(a)},events:[c,l],options:{name:"Notification",position:{pinned:!0,top:null,left:null,bottom:20,right:20},stacking:"default",hideOnClick:!0,button:!1,allowHideAfter:0,autoHideAfter:5e3,appendTo:null,width:null,height:null,templates:[],title:null,animation:{open:{effects:"fade:in",duration:300},close:{effects:"fade:out",duration:600,hide:!0}}},_compileTemplates:function(i){var n=this,o=e.template;n._compiled={},t.each(i,(function(i,e){n._compiled[e.type]=o(e.template||t("#"+e.templateId).html())})),n._defaultCompiled=o(A),n._safeCompiled=o(S)},_getCompiled:function(t,i){var n=i?this._safeCompiled:this._defaultCompiled;return t&&this._compiled[t]||n},_compileStacking:function(t,i,n){var e,o,a=this,s={paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0},p=null!==n?T:y;switch(t){case"down":e=b+" "+p,o=v+" "+p,delete s.paddingBottom;break;case y:e=v+" "+y,o=v+" "+T,delete s.paddingRight;break;case T:e=v+" "+T,o=v+" "+y,delete s.paddingLeft;break;case"up":e=v+" "+p,o=b+" "+p,delete s.paddingTop;break;default:null!==i?(e=b+" "+p,o=v+" "+p,delete s.paddingBottom):(e=v+" "+p,o=b+" "+p,delete s.paddingTop)}a._popupOrigin=e,a._popupPosition=o,a._popupPaddings=s},_attachPopupEvents:function(t,i){var n,e=this,o=t.allowHideAfter,a=!isNaN(o)&&o>0;function s(t){t.on(d+C,(function(){e._hidePopup(i)}))}t.hideOnClick?i.bind("activate",(function(){a?p((function(){s(i.element)}),o):s(i.element)})):t.button&&(n=i.element.find(f),a?p((function(){s(n)}),o):s(n))},_showPopup:function(i,n){var o,s,d=this,c=n.autoHideAfter,l=n.position.left,u=n.position.top;s=t("."+d._guid+":not(."+h+")").last(),o=new e.ui.Popup(i,{anchor:s[0]?s:document.body,origin:d._popupOrigin,position:d._popupPosition,_resizeOnWrap:!0,animation:n.animation,copyAnchorStyles:!1,autosize:!0,modal:!0,collision:"",isRtl:d._isRtl,close:function(){d._triggerHide(this.element)},deactivate:function(t){t.sender.element.off(C),t.sender.element.find(f).off(C),t.sender.destroy()}}),d._attachPopupEvents(n,o),i.removeClass("k-group k-reset k-popup"),s[0]?o.open():(null===l&&(l=t(window).width()-i.outerWidth()-n.position.right),null===u&&(u=t(window).height()-i.outerHeight()-n.position.bottom),o.open(l,u)),i.removeClass("k-popup"),o.wrapper.addClass(d._guid).css(a({margin:0,zIndex:10050},d._popupPaddings)),n.position.pinned?(o.wrapper.css("position","fixed"),s[0]&&d._togglePin(o.wrapper,!0)):s[0]||d._togglePin(o.wrapper,!1),c>0&&p((function(){d._hidePopup(o)}),c)},_hidePopup:function(t){t.wrapper.addClass(h),t.close()},_togglePin:function(i,n){var e=t(window),o=n?-1:1;i.css({top:parseInt(i.css(v),10)+o*e.scrollTop(),left:parseInt(i.css(T),10)+o*e.scrollLeft()})},_attachStaticEvents:function(t,i){var n=this,e=t.allowHideAfter,o=!isNaN(e)&&e>0;function a(t){t.on(d+C,n._hideStatic.bind(n,i))}t.hideOnClick?o?p((function(){a(i)}),e):a(i):t.button&&(o?p((function(){a(i.find(f))}),e):a(i.find(f)))},_showStatic:function(i,n){var o=this,a=n.autoHideAfter,s=n.animation,d="up"==n.stacking||n.stacking==T?"prependTo":"appendTo";o._hideTimeouts||(o._hideTimeouts=[]),i.removeClass("k-popup").addClass(o._guid)[d](n.appendTo).hide().kendoAnimate(s.open||!1),i.css("display",""),o.getNotifications().each((function(i,s){o._attachStaticEvents(n,t(s)),a>0&&!t(s).attr(e.attr("has-hidetimeout"))&&(t(s).attr(e.attr("has-hidetimeout"),!0),o._hideTimeouts.push(p((function(){o._hideStatic(t(s))}),a)))}))},_hideStatic:function(t){t.kendoAnimate(a(this.options.animation.close||!1,{complete:function(){t.off(C).find(f).off(C),t.remove()}})),this._triggerHide(t)},_triggerHide:function(t){this.trigger(l,{element:t}),this.angular("cleanup",(function(){return{elements:t}}))},show:function(n,o,s){var p,d,l=this,r=l.options,f=t('<div role="alert" aria-live="polite" class="k-notification"></div>'),h=e.guid();return o||(o=m),f.attr("aria-label",o),null!==n&&n!==i&&""!==n&&(e.isFunction(n)&&(n=n()),d={typeIcon:o,content:"",closeButton:r.button},p=t.isPlainObject(n)?a(d,n):a(d,{content:n}),f.addClass(u+"-"+o).toggleClass(u+"-closable",r.button).attr({"data-role":"alert",title:r.title}).css({width:r.width,height:r.height}).append(l._getCompiled(o,s)(p)),l.options.button&&f.append(l.addActions("close")),f.find(".k-notification-content").attr("id",h),f.attr("aria-describedby",h),l.angular("compile",(function(){return{elements:f,data:[{dataItem:p}]}})),t(r.appendTo)[0]?l._showStatic(f,r):l._showPopup(f,r),l.trigger(c,{element:f})),l},showText:function(t,i){this.show(t,i,!0)},info:function(t){return this.show(t,m)},success:function(t){return this.show(t,g)},warning:function(t){return this.show(t,_)},error:function(t){return this.show(t,k)},hide:function(){var i=this,n=i.getNotifications();return i.options.appendTo?(i._hideTimeouts&&i._hideTimeouts.forEach(clearTimeout),i._hideTimeouts=[],n.each((function(n,e){i._hideStatic(t(e))}))):n.each((function(n,e){var o=t(e).data("kendoPopup");o&&i._hidePopup(o)})),i},getNotifications:function(){var i=t("."+this._guid+":not(."+h+")");return this.options.appendTo?i:i.find(">.k-child-animation-container >."+u)},setOptions:function(t){var n,e=this;o.fn.setOptions.call(e,t),n=e.options,t.templates!==i&&e._compileTemplates(n.templates),t.stacking===i&&t.position===i||e._compileStacking(n.stacking,n.position.top,n.position.left)},destroy:function(){o.fn.destroy.call(this),this.getNotifications().off(C).find(f).off(C)},addActions:function(i){var n=t('<span class="k-notification-actions"/>');return Array.isArray(i)||(i=[i]),i.forEach((function(i){t(H[i].template).wrap('<span class="k-notification-action k-notification-'+i+'-action">').parent().appendTo(n)})),n}});e.ui.plugin(x)}(window.kendo.jQuery),kendo}));
//# sourceMappingURL=kendo.notification.min.js.map