@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 7.35 kB
JavaScript
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports,require("kendo.core.js"),require("kendo.popup.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.popup","kendo.icons"],i):i(((t="undefined"!=typeof globalThis?globalThis:t||self).kendo=t.kendo||{},t.kendo._globals=t.kendo._globals||{},t.kendo._globals.Notification={}))}(this,(function(t){!function(t,i){var o=window.kendo,e=o.ui.Widget,n=t.extend,a=o.htmlEncode,s=window.setTimeout,p="click",d="show",c="hide",l="k-notification",r=".k-notification-actions .k-icon",u="k-hiding",f="info",h="success",g="warning",m="error",_={[f]:"info-circle",[m]:"x-outline",[g]:"exclamation-circle",[h]:"check-outline"},k="top",w="left",v="bottom",b="right",T=".kendoNotification",y=i=>({typeIcon:e,content:n,closeButton:s})=>o.ui.icon(t(`<span class="k-notification-status" title="${a(e)}"></span>`),{icon:_[a(e)]||a(e)})+`<div class="k-notification-content">${i?a(n):n}</div>`,P=y(!1),C=y(!0),A={close:{template:o.ui.icon(t('<span aria-hidden="true" title="Hide"></span>'),{icon:"x"})}},x=e.extend({init:function(i,n){let a=this;e.fn.init.call(a,i,n),n&&n.button&&!n.position&&a.options.position&&(a.options.position.right=40),(n=a.options).appendTo&&t(n.appendTo).is(i)||a.element.hide(),a._compileTemplates(n.templates),a._guid="_"+o.guid(),a._isRtl=o.support.isRtl(i),a._compileStacking(n.stacking,n.position.top,n.position.left),o.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 e=this,n=o.template;e._compiled={},t.each(i,(function(i,o){e._compiled[o.type]=n(o.template||t("#"+o.templateId).html())})),e._defaultCompiled=n(P),e._safeCompiled=n(C)},_getCompiled:function(t,i){var o=i?this._safeCompiled:this._defaultCompiled;return t&&this._compiled[t]||o},_compileStacking:function(t,i,o){var e,n,a=this,s={paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0},p=null!==o?w:b;switch(t){case"down":e=v+" "+p,n=k+" "+p,delete s.paddingBottom;break;case b:e=k+" "+b,n=k+" "+w,delete s.paddingRight;break;case w:e=k+" "+w,n=k+" "+b,delete s.paddingLeft;break;case"up":e=k+" "+p,n=v+" "+p,delete s.paddingTop;break;default:null!==i?(e=v+" "+p,n=k+" "+p,delete s.paddingBottom):(e=k+" "+p,n=v+" "+p,delete s.paddingTop)}a._popupOrigin=e,a._popupPosition=n,a._popupPaddings=s},_attachPopupEvents:function(t,i){var o,e=this,n=t.allowHideAfter,a=!isNaN(n)&&n>0;function d(t){t.on(p+T,(function(){e._hidePopup(i)}))}t.hideOnClick?i.bind("activate",(function(){a?s((function(){d(i.element)}),n):d(i.element)})):t.button&&(o=i.element.find(r),a?s((function(){d(o)}),n):d(o))},_showPopup:function(i,e){var a,p,d=this,c=e.autoHideAfter,l=e.position.left,f=e.position.top;p=t("."+d._guid+":not(."+u+")").last(),a=new o.ui.Popup(i,{anchor:p[0]?p:document.body,origin:d._popupOrigin,position:d._popupPosition,_resizeOnWrap:!0,animation:e.animation,copyAnchorStyles:!1,autosize:!0,modal:!0,collision:"",isRtl:d._isRtl,close:function(){d._triggerHide(this.element)},deactivate:function(t){t.sender.element.off(T),t.sender.element.find(r).off(T),t.sender.destroy()}}),d._attachPopupEvents(e,a),i.removeClass("k-group k-reset k-popup"),p[0]?a.open():(null===l&&(l=t(window).width()-i.outerWidth()-e.position.right),null===f&&(f=t(window).height()-i.outerHeight()-e.position.bottom),a.open(l,f)),i.removeClass("k-popup"),a.wrapper.addClass(d._guid).css(n({margin:0,zIndex:10050},d._popupPaddings)),e.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(u),t.close()},_togglePin:function(i,o){var e=t(window),n=o?-1:1;i.css({top:parseInt(i.css(k),10)+n*e.scrollTop(),left:parseInt(i.css(w),10)+n*e.scrollLeft()})},_attachStaticEvents:function(t,i){var o=this,e=t.allowHideAfter,n=!isNaN(e)&&e>0;function a(t){t.on(p+T,o._hideStatic.bind(o,i))}t.hideOnClick?n?s((function(){a(i)}),e):a(i):t.button&&(n?s((function(){a(i.find(r))}),e):a(i.find(r)))},_showStatic:function(i,e){var n=this,a=e.autoHideAfter,p=e.animation,d="up"==e.stacking||e.stacking==w?"prependTo":"appendTo";n._hideTimeouts||(n._hideTimeouts=[]),i.removeClass("k-popup").addClass(n._guid)[d](e.appendTo).hide().kendoAnimate(p.open||!1),i.css("display",""),n.getNotifications().each((function(i,p){n._attachStaticEvents(e,t(p)),a>0&&!t(p).attr(o.attr("has-hidetimeout"))&&(t(p).attr(o.attr("has-hidetimeout"),!0),n._hideTimeouts.push(s((function(){n._hideStatic(t(p))}),a)))}))},_hideStatic:function(t){t.kendoAnimate(n(this.options.animation.close||!1,{complete:function(){t.off(T).find(r).off(T),t.remove()}})),this._triggerHide(t)},_triggerHide:function(t){this.trigger(c,{element:t})},show:function(e,a,s){var p,c,r=this,u=r.options,h=t('<div role="alert" aria-live="polite" class="k-notification"></div>'),g=o.guid();return a||(a=f),h.attr("aria-label",a),null!==e&&e!==i&&""!==e&&(o.isFunction(e)&&(e=e()),c={typeIcon:a,content:"",closeButton:u.button},p=t.isPlainObject(e)?n(c,e):n(c,{content:e}),h.addClass(l+"-"+a).toggleClass(l+"-closable",u.button).attr({"data-role":"alert",title:u.title}).css({width:u.width,height:u.height}).append(r._getCompiled(a,s)(p)),r.options.button&&h.append(r.addActions("close")),h.find(".k-notification-content").attr("id",g),h.attr("aria-describedby",g),t(u.appendTo)[0]?r._showStatic(h,u):r._showPopup(h,u),r.trigger(d,{element:h})),r},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,g)},error:function(t){return this.show(t,m)},hide:function(){var i=this,o=i.getNotifications();return i.options.appendTo?(i._hideTimeouts&&i._hideTimeouts.forEach(clearTimeout),i._hideTimeouts=[],o.each((function(o,e){i._hideStatic(t(e))}))):o.each((function(o,e){var n=t(e).data("kendoPopup");n&&i._hidePopup(n)})),i},getNotifications:function(){var i=t("."+this._guid+":not(."+u+")");return this.options.appendTo?i:i.find(">.k-child-animation-container >."+l)},setOptions:function(t){var o,n=this;e.fn.setOptions.call(n,t),o=n.options,t.templates!==i&&n._compileTemplates(o.templates),t.stacking===i&&t.position===i||n._compileStacking(o.stacking,o.position.top,o.position.left)},destroy:function(){e.fn.destroy.call(this),this.getNotifications().off(T).find(r).off(T)},addActions:function(i){var o=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(o)})),o}});o.ui.plugin(x)}(window.kendo.jQuery);var i=kendo;t.__meta__={id:"notification",name:"Notification",category:"web",description:"The Notification widget displays user alerts.",depends:["core","popup","icons"],features:[{id:"notification-fx",name:"Animation",description:"Support for animation",depends:["fx"]}]},t.default=i,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=kendo.notification.min.js.map