UNPKG

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