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