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