kendo-ui-core
Version:
3 lines (2 loc) • 15.5 kB
JavaScript
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("kendo.core.js"),require("kendo.popup.js"),require("kendo.textbox.js"),require("kendo.icons.js")):"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.popup.min","kendo.textbox.min","kendo.icons.min"],e):((t="undefined"!=typeof globalThis?globalThis:t||self).kendodialog=t.kendodialog||{},t.kendodialog.js=e())}(this,(function(){return function(t,e){var i,n=window.kendo,o=n.ui.Widget,r=n.ui.Popup.TabKeyTrap,a=n.template,s=n.keys,l=n.isFunction,d=n.htmlEncode,c="kendoWindow",p=".k-dialog-wrapper",u=".k-window",h="[data-role='close']",f=".k-window-content",m="k-scroll",g=".k-dialog-title",_=".k-dialog-titlebar",v=".k-dialog-actions",k=".k-button",w=":visible",b="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=o.extend({init:function(t,e){var i=this;o.fn.init.call(i,t,e),i._init(i.element,i.options),n.notify(i),i._showWatermarkOverlay&&i._showWatermarkOverlay(i.wrapper[0])},_init:function(n,o){var a,s=this;s._centerCallback=s._center.bind(s),s.appendTo=t(y),z(o.visible)&&null!==o.visible||(o.visible=n.is(w)),s.wrapperTemplate===e&&(s.wrapperTemplate=i.wrapper),s._createDialog(),a=s.wrapper=n.closest(".k-dialog"),s.dialogWrapper=a.closest(p),o._defaultFocus===e&&(s._defaultFocus=n[0]),s._tabindex(n),s._dimensions(),!o.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(n.getValidCssClass("k-dialog-","themeColor",r.options.themeColor)),i=t.extend(r.options,i),o.fn.setOptions.call(r,i),i.title!==e&&r.title(i.title),i.content&&(n.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(n.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,n=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(),i&&(i.toString().indexOf("%")>0?t.width(i):t.outerWidth($(i,e.minWidth,e.maxWidth))),n&&(n.toString().indexOf("%")>0?t.height(n):t.outerHeight($(n,e.minHeight,e.maxHeight)),this._setElementHeight()),o&&F[o]&&t.addClass(F[o])},_setElementMaxHeight:function(){var t,e=this,i=e.element,n=e.options.maxHeight;n!=1/0&&(t=parseFloat(n,10)-e._uiHeight())>0&&i.css({maxHeight:R(t)+"px"})},_setElementHeight:function(){var t=this,e=t.element,i=t.wrapper.outerHeight(!0),n=parseFloat(i,10)-t._uiHeight();n<0&&(n=0),e.css({height:R(n)+"px"}),this._applyScrollClassName(e)},_applyScrollClassName:function(t){t.get(0).scrollHeight>t.outerHeight()?t.addClass(m):t.removeClass(m)},_uiHeight:function(){var t=this.wrapper,e=t.children(v),i=e[0]&&e[0].offsetHeight||0,n=t.children(_);return i+(n[0]&&n[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,o=e.element,r=e.options,a=n.support.isRtl(o),s=t(i.titlebar(r)),l=(o.id||n.guid())+"_title",d=t(e.wrapperTemplate(r));o.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(o),r.themeColor&&"none"!==r.themeColor&&d.addClass(d.addClass(n.getValidCssClass("k-dialog-","themeColor",r.themeColor))),r.content&&(n.destroy(o.children()),o.html(r.content)),r.actions.length&&e._createActionbar(d)},_closable:function(t){var e=this,n=e.options,o=t.children(_).find(".k-window-titlebar-actions");(o.length?o.find(h):t.find(h)).remove(),!1!==n.closable&&(!1!==n.title&&o.length?o.append(i.close(n)):t.prepend(i.close(n)),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 n="stretched"===this.options.buttonLayout?"stretched":"end",o=t(i.actionbar({buttonLayout:n}));this._addButtons(o),e.append(o)},_addButtons:function(e){for(var n,o,r=this,a=r._actionClick.bind(r),s=r._actionKeyHandler.bind(r),l=r.options.actions,d=l.length,p=0;p<d;p++)n=l[p],o=r._mergeTextWithOptions(n),t(i.action(n,o)).autoApplyNS(c).appendTo(e).addClass(n.cssClass).data("action",n.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),n=e.find(v+" "+k);o.fn._tabindex.call(this,t);var r=t.attr("tabindex");i.attr("tabIndex",r),n.attr("tabIndex",r)},_actionClick:function(t){this.dialogWrapper.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 i=this;if(!i._closing){var n=t(e).data("action");l(n)&&!1===n({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,o=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),o.duration&&n.effects.Fade){var a=n.fx(t).fadeIn();a.duration(o.duration||0),a.endValue(.5),a.play()}e.dialogWrapper.show()}(r.modal?e.wrapper:e.dialogWrapper).show().kendoStop().kendoAnimate({effects:o.effects,duration:o.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,n=+i.css(b),o=n;return e.center(),t(u+","+p).each((function(e,i){var o=t(i).css(b);isNaN(o)||(n=Math.max(+o,n))})),(!i[0].style.zIndex||o<n)&&i.css(b,n+2),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,n=e.options,o=this._animationOptions("open"),r=this._animationOptions("close");if(i.is(w)&&!e.trigger(S,{userTriggered:!t})){if(e._closing)return;e._closing=!0,n.visible=!1,this._handleDocumentScrolling(),(n.modal?e.wrapper:e.dialogWrapper).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.dialogWrapper,i=t(window),n=0+Math.max(0,(i.width()-e.width())/2),o=0+Math.max(0,(i.height()-e.height()-parseInt(e.css("paddingTop"),10))/2);return e.css({left:n,top:o}),this},_centerOnResize:function(){this._trackResize||(n.onResize(this._centerCallback),this._trackResize=!0)},_stopCenterOnResize:function(){n.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 o=t("html"),r=o[0];e._storeOverflowRule(o),o.css(E,H),n.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,n=t(e.target),o=e.changedTouches[0].pageY-t(this).data(A)>0,r=n.is(f)&&o&&0===n.scrollTop()||!o&&n.scrollTop()===i.scrollHeight-i.clientHeight;n.is(f)&&!r||e.preventDefault()},_enableDocumentScrolling:function(){var e=this,i=t(document.body),o=t("html"),r=o[0];e._restoreOverflowRule(i),e._restoreOverflowRule(o),n.support.mobileOS.ios&&(o.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(w)}));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),o=n.widgetInstance(i);return o||e},destroy:function(){var e=this;e._destroy(),o.fn.destroy.call(e),n.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 n=this,o=n.wrapper,r=n.options,a=o.children(_),s=a.children(g),l=d(e);return arguments.length?(!1===e?a.remove():(a.length||(s=(a=t(i.titlebar(r)).prependTo(o)).children(g)),s.html(l)),n.options.title=l,n):s.html()},content:function(t){var e=this,i=e.wrapper.children(f);return z(t)?(n.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"}}});n.ui.plugin(B);var K=M.extend({_init:function(t,e){var n=this;n.wrapperTemplate=i.alertWrapper,e._defaultFocus=null,n._ensureContentId(t),M.fn._init.call(n,t,e),n.bind(D,n.destroy.bind(n)),n._ariaDescribedBy(),n._initFocus()},_ensureContentId:function(e){var i=t(e);i.attr("id")||i.attr("id",n.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)}`}]}});n.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()}}]}});n.ui.plugin(N);var P=K.extend({_init:function(e,i){var n=this;K.fn._init.call(n,e,i),n._createPrompt(),n.result=t.Deferred()},_createPrompt:function(){var e=this.options.value,o=t(i.promptInputContainer(this.options)).insertAfter(this.element);this.input=new n.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:({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)}}]}});n.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 ${n.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>`))},n.alert=function(e){return t(i.alert).kendoAlert({content:e}).data("kendoAlert").open()},n.confirm=function(e){return t(i.confirm).kendoConfirm({content:e}).data("kendoConfirm").open().result},n.prompt=function(e,n){return t(i.prompt).kendoPrompt({content:e,value:n}).data("kendoPrompt").open().result}}(window.kendo.jQuery),kendo}));
//# sourceMappingURL=kendo.dialog.min.js.map