@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) • 15.8 kB
JavaScript
!function(t){"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.popup.min","kendo.textbox.min","kendo.icons.min"],t):t()}((function(){!function(t,e){var n,i=window.kendo,o=i.ui.Widget,r=i.ui.Popup.TabKeyTrap,a=i.template,s=i.keys,l=i.isFunction,c=i.htmlEncode,d="kendoWindow",u=".k-window",p=".k-dialog-close",h=".k-window-content",f="k-scroll",m="k-dialog-titleless",v=".k-dialog-title",_=".k-dialog-titlebar",g=".k-dialog-actions",k=".k-button",w=":visible",b="zIndex",y="body",C="initOpen",x="touchstart",O="touchmove",T="open",S="close",H="show",A="hide",F={small:"k-window-sm",medium:"k-window-md",large:"k-window-lg"},I="hidden",E="overflow",D="original-overflow-rule",R="tap-y",z={okText:"OK",cancel:"Cancel",promptInput:"Input"},W=Math.ceil,M=":not(link,meta,script,style)";function N(t){return void 0!==t}function B(t,e,n){return Math.max(Math.min(parseInt(t,10),n===1/0?n:parseInt(n,10)),parseInt(e,10))}function j(t){return t.keyCode==s.ENTER||t.keyCode==s.SPACEBAR}var K=o.extend({init:function(t,e){var n=this;o.fn.init.call(n,t,e),n._init(n.element,n.options),i.notify(n)},_init:function(i,o){var a,s=this;s._centerCallback=s._center.bind(s),s.appendTo=t(y),N(o.visible)&&null!==o.visible||(o.visible=i.is(w)),s.wrapperTemplate===e&&(s.wrapperTemplate=n.wrapper),s._createDialog(),a=s.wrapper=i.closest(".k-dialog"),o._defaultFocus===e&&(s._defaultFocus=i[0]),s._tabindex(i),s._dimensions(),this._tabKeyTrap=new r(a),s.options.visible?s._triggerOpen():s.wrapper.hide()},setOptions:function(n){var r=this,a=r.options.size;if(r.wrapper.removeClass(i.getValidCssClass("k-dialog-","themeColor",r.options.themeColor)),n=t.extend(r.options,n),o.fn.setOptions.call(r,n),n.title!==e&&r.title(n.title),n.content&&(i.destroy(r.element.children()),r.element.html(n.content)),n.actions&&(r.wrapper.children(g).remove(),r._createActionbar(r.wrapper)),r.wrapper.show(),r._closable(r.wrapper),r.wrapper.removeClass(F[a]),r._dimensions(),n.visible?r._triggerOpen():r.wrapper.hide(),n.themeColor&&"none"!==n.themeColor&&r.wrapper.addClass(i.getValidCssClass("k-dialog-","themeColor",r.options.themeColor)),void 0!==n.modal){var s=!1!==r.options.visible;r._enableDocumentScrolling(),r._overlay(n.modal&&s)}},_dimensions:function(){for(var t=this.wrapper,e=this.options,n=e.width,i=e.height,o=e.size,r=["minWidth","minHeight","maxWidth","maxHeight"],a=0;a<r.length;a++){var s=e[r[a]];s&&s!=1/0&&t.css(r[a],s)}this._setElementMaxHeight(),n&&(n.toString().indexOf("%")>0?t.width(n):t.outerWidth(B(n,e.minWidth,e.maxWidth))),i&&(i.toString().indexOf("%")>0?t.height(i):t.outerHeight(B(i,e.minHeight,e.maxHeight)),this._setElementHeight()),o&&F[o]&&t.addClass(F[o])},_setElementMaxHeight:function(){var t,e=this,n=e.element,i=e.options.maxHeight;i!=1/0&&(t=parseFloat(i,10)-e._uiHeight())>0&&n.css({maxHeight:W(t)+"px"})},_setElementHeight:function(){var t=this,e=t.element,n=t.wrapper.outerHeight(!0),i=parseFloat(n,10)-t._uiHeight();i<0&&(i=0),e.css({height:W(i)+"px"}),this._applyScrollClassName(e)},_applyScrollClassName:function(t){t.get(0).scrollHeight>t.outerHeight()?t.addClass(f):t.removeClass(f)},_uiHeight:function(){var t=this.wrapper,e=t.children(g),n=e[0]&&e[0].offsetHeight||0,i=t.children(_);return n+(i[0]&&i[0].offsetHeight||0)},_overlay:function(e){var i=this.appendTo.children(".k-overlay"),o=this.wrapper;return i.length||(i=t(n.overlay)),i.insertBefore(o[0]).toggle(e).css(b,parseInt(o.css(b),10)-1),e?this._waiAriaOverlay():this._removeWaiAriaOverlay(),this.options.modal.preventScroll&&this._stopDocumentScrolling(),i},_waiAriaOverlay:function(){var e=this.wrapper;this._overlayedNodes=e.prevAll(M).add(e.nextAll(M)).each((function(){var e=t(this);e.data("ariaHidden",e.attr("aria-hidden")),e.attr("aria-hidden","true")}))},_removeWaiAriaOverlay:function(){return this._overlayedNodes&&this._overlayedNodes.each((function(){var e=t(this),n=e.data("ariaHidden");n?e.attr("aria-hidden",n):e.removeAttr("aria-hidden")}))},_closeClick:function(t){t.preventDefault(),this.close(!1)},_closeKeyHandler:function(t){(j(t)||t.keyCode==s.ESC)&&this.close(!1)},_keydown:function(t){var e=this,n=e.options;t.keyCode==s.ESC&&!e._closing&&n.closable&&e.close(!1)},_createDialog:function(){var e=this,o=e.element,r=e.options,a=i.support.isRtl(o),s=t(n.titlebar(r)),l=(o.id||i.guid())+"_title",c=t(e.wrapperTemplate(r));c.toggleClass("k-rtl",a),o.addClass("k-window-content k-dialog-content"),e.appendTo.append(c),!1!==r.title?(c.append(s),s.attr("id",l),c.attr("aria-labelledby",l)):c.addClass(m),e._closable(c),c.append(o),r.themeColor&&"none"!==r.themeColor&&c.addClass(c.addClass(i.getValidCssClass("k-dialog-","themeColor",r.themeColor))),r.content&&(i.destroy(o.children()),o.html(r.content)),r.actions.length&&e._createActionbar(c)},_closable:function(t){var e=this,i=e.options,o=t.children(_).find(".k-window-titlebar-actions");(o.length?o.find(".k-dialog-close"):t.find(".k-dialog-close")).remove(),!1!==i.closable&&(!1!==i.title&&o.length?o.append(n.close(i)):t.prepend(n.close(i)),t.autoApplyNS(d),e.element.autoApplyNS(d),t.find(p).on("click",e._closeClick.bind(e)).on("keydown",e._closeKeyHandler.bind(e)),e.element.on("keydown",e._keydown.bind(e)))},_createActionbar:function(e){var i="stretched"===this.options.buttonLayout?"stretch":"end",o=t(n.actionbar({buttonLayout:i}));this._addButtons(o),e.append(o)},_addButtons:function(e){for(var i,o,r=this,a=r._actionClick.bind(r),s=r._actionKeyHandler.bind(r),l=r.options.actions,c=l.length,u=0;u<c;u++)i=l[u],o=r._mergeTextWithOptions(i),t(n.action(i)).autoApplyNS(d).html(o).appendTo(e).addClass(i.cssClass).data("action",i.action).on("click",a).on("keydown",s)},_mergeTextWithOptions:function(t){var e=t.text;return e?a(e)(this.options):""},_tabindex:function(t){var e=this.wrapper,n=e.find(p),i=e.find(g+" "+k);o.fn._tabindex.call(this,t);var r=t.attr("tabindex");n.attr("tabIndex",r),i.attr("tabIndex",r)},_actionClick:function(t){this.wrapper.is(w)&&this._runActionBtn(t.currentTarget)},_actionKeyHandler:function(t){j(t)?(t.preventDefault(),this._runActionBtn(t.currentTarget)):t.keyCode==s.ESC&&this.close(!1)},_runActionBtn:function(e){var n=this;if(!n._closing){var i=t(e).data("action");l(i)&&!1===i({sender:n})||n.close(!1)}},_triggerOpen:function(){var t=this,e=t.options,n=t.wrapper;t.toFront(),t._triggerInitOpen(),t.trigger(T),e.modal&&(t._overlay(n.is(w)).css({opacity:.5}),t._focusDialog())},open:function(){var t,e,n=this,o=n.wrapper,r=this._animationOptions(T),a=n.options;if(this._triggerInitOpen(),!n.trigger(T)){if(n._closing&&o.kendoStop(!0,!0),n._closing=!1,n.toFront(),a.visible=!0,a.modal){if(e=!!n._modals().length,(t=n._overlay(e)).kendoStop(!0,!0),r.duration&&i.effects.Fade&&!e){var s=i.fx(t).fadeIn();s.duration(r.duration||0),s.endValue(.5),s.play()}else t.css("opacity",.5);t.show()}o.show().kendoStop().kendoAnimate({effects:r.effects,duration:r.duration,complete:n._openAnimationEnd.bind(n)}),o.show()}return n},_animationOptions:function(t){var e=this.options.animation;return e&&e[t]||{open:{effects:{}},close:{hide:!0,effects:{}}}[t]},_openAnimationEnd:function(){this.options.modal&&this._focusDialog(),this.trigger(H)},_triggerInitOpen:function(){N(this._initOpenTriggered)||(this._initOpenTriggered=!0,this.trigger(C))},toFront:function(){var e=this,n=e.wrapper,i=+n.css(b),o=i;return e.center(),t(u).each((function(e,n){var o=t(n).css(b);isNaN(o)||(i=Math.max(+o,i))})),(!n[0].style.zIndex||o<i)&&n.css(b,i+2),e.element.find("> .k-overlay").remove(),n=null,e},close:function(t){return arguments.length||(t=!0),this._close(t),this._stopCenterOnResize(),this},_close:function(t){var e=this,n=e.wrapper,i=e.options,o=this._animationOptions("open"),r=this._animationOptions("close");if(n.is(w)&&!e.trigger(S,{userTriggered:!t})){if(e._closing)return;e._closing=!0,i.visible=!1,this._removeOverlay(),n.kendoStop().kendoAnimate({effects:r.effects||o.effects,reverse:!0===r.reverse,duration:r.duration,complete:this._closeAnimationEnd.bind(this)})}return e},center:function(){this._center(),this._centerOnResize()},_center:function(){var e=this.wrapper,n=t(window),i=0+Math.max(0,(n.width()-e.width())/2),o=0+Math.max(0,(n.height()-e.height()-parseInt(e.css("paddingTop"),10))/2);return e.css({left:i,top:o}),this},_centerOnResize:function(){this._trackResize||(i.onResize(this._centerCallback),this._trackResize=!0)},_stopCenterOnResize:function(){i.unbindResize(this._centerCallback),this._trackResize=!1},_removeOverlay:function(){var t=this._modals(),e=this.options;e.modal&&!t.length?(this._overlay(!1).remove(),e.modal.preventScroll&&this._enableDocumentScrolling()):t.length&&(this._object(t.last())._overlay(!0),e.modal.preventScroll&&this._stopDocumentScrolling())},_stopDocumentScrolling:function(){var e=this,n=t("body");e._storeOverflowRule(n),n.css(E,I);var o=t("html"),r=o[0];e._storeOverflowRule(o),o.css(E,I),i.support.mobileOS.ios&&(r.addEventListener(x,e._touchStart,{passive:!1}),r.addEventListener(O,e._touchMove,{passive:!1}))},_touchStart:function(e){t(this).data(R,e.changedTouches[0].pageY)},_touchMove:function(e){var n=e.target,i=t(e.target),o=e.changedTouches[0].pageY-t(this).data(R)>0,r=i.is(h)&&o&&0===i.scrollTop()||!o&&i.scrollTop()===n.scrollHeight-n.clientHeight;i.is(h)&&!r||e.preventDefault()},_enableDocumentScrolling:function(){var e=this,n=t(document.body),o=t("html"),r=o[0];e._restoreOverflowRule(n),e._restoreOverflowRule(o),i.support.mobileOS.ios&&(o.removeData(R),r.removeEventListener(x,e._touchStart,{passive:!1}),r.removeEventListener(O,e._touchMove,{passive:!1}))},_storeOverflowRule:function(t){if(!this._isOverflowStored(t)){var e=t.get(0).style.overflow;"string"==typeof e&&t.data(D,e)}},_isOverflowStored:function(t){return"string"==typeof t.data(D)},_restoreOverflowRule:function(t){var n=t.data(D);null!==n&&n!==e?(t.css(E,n),t.removeData(D)):t.css(E,"")},_closeAnimationEnd:function(){var t=this,e=t._previousFocus;if(t._closing=!1,t.wrapper.hide().css("opacity",""),t.trigger(A),t.options.modal){var n=t._object(t._modals().last());n?n.toFront():e&&(t._previousFocus=null,setTimeout((function(){e.focus()})))}},_modals:function(){var e=this,n=t(u).filter((function(){var n=e._object(t(this));return n&&n.options&&n.options.modal&&n.options.visible&&n.options.appendTo===e.options.appendTo&&!n.containment&&t(n.element).is(w)})).sort((function(e,n){return+t(e).css("zIndex")-+t(n).css("zIndex")}));return e=null,n},_object:function(t){var n=t.children(h),o=i.widgetInstance(n);return o||e},destroy:function(){var e=this;e._destroy(),o.fn.destroy.call(e),i.destroy(e.wrapper),e.wrapper.remove(),e.wrapper=e.element=t()},_destroy:function(){var t=this,e="."+d;t.wrapper.off(e),t.element.off(e),t.wrapper.find(p+","+g+" > "+k).off(e),t._stopCenterOnResize()},title:function(e){var i=this,o=i.wrapper,r=i.options,a=o.children(_),s=a.children(v),l=c(e);return arguments.length?(!1===e?(a.remove(),o.addClass(m)):(a.length||(s=(a=t(n.titlebar(r)).prependTo(o)).children(v),o.removeClass(m)),s.html(l)),i.options.title=l,i):s.html()},content:function(t,e){var n=this,o=n.wrapper.children(h);return N(t)?(this.angular("cleanup",(function(){return{elements:o.children()}})),i.destroy(o.children()),o.html(t),this.angular("compile",(function(){for(var t=[],n=o.length;--n>=0;)t.push({dataItem:e});return{elements:o.children(),data:t}})),n.options.content=t,n):o.html()},_focusDialog:function(){var t=this._object(this._modals().first());this._previousFocus=t&&t._previousFocus?t._previousFocus:document.activeElement,this._defaultFocus&&this._focus(this._defaultFocus),this._tabKeyTrap.trap()},_focus:function(t){t&&t.focus()},events:[C,T,S,H,A],options:{title:"",buttonLayout:"stretched",themeColor:"",actions:[],modal:!0,size:"auto",width:null,height:null,minWidth:0,minHeight:0,maxWidth:1/0,maxHeight:1/0,content:null,visible:null,appendTo:y,closable:!0}}),L=K.extend({options:{name:"Dialog",messages:{close:"Close"}}});i.ui.plugin(L);var P=K.extend({_init:function(t,e){var i=this;i.wrapperTemplate=n.alertWrapper,e._defaultFocus=null,i._ensureContentId(t),K.fn._init.call(i,t,e),i.bind(A,i.destroy.bind(i)),i._ariaDescribedBy(),i._initFocus()},_ensureContentId:function(e){var n=t(e);n.attr("id")||n.attr("id",i.guid()+"_k-popup")},_ariaDescribedBy:function(){this.wrapper.attr("aria-describedby",this.element.attr("id"))},_initFocus:function(){var t=this.options;this._defaultFocus=this._chooseEntryFocus(),this._defaultFocus&&t.visible&&t.modal&&this._focusDialog()},_chooseEntryFocus:function(){return this.wrapper.find(g+" > "+k)[0]},options:{title:window.location.host,closable:!1,messages:z}}),V=P.extend({_init:function(t,e){P.fn._init.call(this,t,e),this.wrapper.addClass("k-alert")},options:{name:"Alert",modal:!0,actions:[{text:function(){return""+c(z.okText)}}]}});i.ui.plugin(V);var Y=P.extend({_init:function(e,n){var i=this;P.fn._init.call(i,e,n),i.wrapper.addClass("k-confirm"),i.result=t.Deferred()},options:{name:"Confirm",modal:!0,actions:[{text:function(t){var e=t.messages;return""+c(e.okText)},primary:!0,action:function(t){t.sender.result.resolve()}},{text:function(t){var e=t.messages;return""+c(e.cancel)},action:function(t){t.sender.result.reject()}}]}});i.ui.plugin(Y);var Q=P.extend({_init:function(e,n){var i=this;P.fn._init.call(i,e,n),i.wrapper.addClass("k-prompt"),i._createPrompt(),i.result=t.Deferred()},_createPrompt:function(){var e=this.options.value,o=t(n.promptInputContainer(this.options)).insertAfter(this.element);this.input=new i.ui.TextBox(o.find("input")),e&&this.input.value(e),this._defaultFocus=this._chooseEntryFocus(),this._focusDialog()},_chooseEntryFocus:function(){return this.wrapper.find(".k-input-inner")[0]},options:{name:"Prompt",modal:!0,value:"",actions:[{text:function(t){var e=t.messages;return""+c(e.okText)},primary:!0,action:function(t){var e=t.sender,n=e.input.value();e.result.resolve(n)}},{text:function(t){var e=t.messages;return""+c(e.cancel)},action:function(t){var e=t.sender.input.value();t.sender.result.reject(e)}}]}});i.ui.plugin(Q);n={wrapper:a((function(){return"<div class='k-window k-dialog' role='dialog'></div>"})),action:a((function(t){return"<button type='button' class='k-button k-button-md k-rounded-md k-button-solid "+(t.primary?"k-button-solid-primary":"k-button-solid-base")+"'></button>"})),titlebar:a((function(t){var e=t.title;return"<div class='k-window-titlebar k-dialog-titlebar'><span class='k-window-title k-dialog-title'>"+c(e)+"</span><div class='k-window-titlebar-actions k-dialog-titlebar-actions k-hstack'></div></div>"})),close:a((function(t){var e=t.messages;return'<button class="k-window-titlebar-action k-dialog-titlebar-action k-button k-button-md k-button-flat k-button-flat-base k-rounded-md k-icon-button k-dialog-close" title=\''+c(e.close)+"' aria-label='"+c(e.close)+"' tabindex='-1'>\n "+i.ui.icon({icon:"x",iconClass:"k-button-icon"})+"\n </button>"})),actionbar:a((function(t){var e=t.buttonLayout;return"<div class='k-dialog-actions k-actions k-hstack k-justify-content-"+c(e)+"'></div>"})),overlay:"<div class='k-overlay'></div>",alertWrapper:a((function(){return"<div class='k-window k-dialog' role='alertdialog'></div>"})),alert:"<div></div>",confirm:"<div></div>",prompt:"<div></div>",promptInputContainer:a((function(t){var e=t.messages;return"<div class='k-prompt-container'><input type='text' title='"+c(e.promptInput)+"' aria-label='"+c(e.promptInput)+"' /></div>"}))},i.alert=function(e){return t(n.alert).kendoAlert({content:e}).data("kendoAlert").open()},i.confirm=function(e){return t(n.confirm).kendoConfirm({content:e}).data("kendoConfirm").open().result},i.prompt=function(e,i){return t(n.prompt).kendoPrompt({content:e,value:i}).data("kendoPrompt").open().result}}(window.kendo.jQuery)}));
//# sourceMappingURL=kendo.dialog.min.js.map