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) 9.18 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("kendo.core.js"),require("kendo.popup.js"),require("kendo.icons.js"),require("kendo.html.button.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.popup","kendo.icons","kendo.html.button"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).kendo=t.kendo||{},t.kendo._globals=t.kendo._globals||{},t.kendo._globals.Actionsheet={}))}(this,(function(t){!function(t){var e=window.kendo,n=e.htmlEncode,o=e.ui.Widget,i=e.ui,s=".kendoActionSheet",a=i.Popup,c=e.keys,r=e.isFunction,l=a.TabKeyTrap,p=t(document.documentElement),d="open",u="close",h="activate",f="deactivate",m=":kendoFocusable:not([tabindex='-1'])",v="k-actionsheet-bottom",k="k-actionsheet-fullscreen",_=`.k-actionsheet-item:not(.${g}),.k-actions .k-button[ref-actionsheet-action-button]:not(.${g})`,g="k-disabled",b="aria-disabled",w="k-hidden",y=e.guid(),T=t.extend,A=e.template,C=/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,x=t=>'<div class="k-text-center k-actionsheet-titlebar" >'+(t.title?`<div class="k-actionsheet-titlebar-group k-hbox"><div id="${y}" class="k-actionsheet-title"><div class="k-text-center">${t.title}</div>`+(t.subtitle?`<div class="k-actionsheet-subtitle k-text-center">${t.subtitle||""}</div>`:"")+"</div>"+(t.closeButton?'<div class="k-actionsheet-actions">'+e.html.renderButton(`<button ${e.attr("ref-actionsheet-close-button")}></button>`,{icon:"x",fillMode:"flat",size:"large"})+"</div>":"")+"</div>":"")+"</div>",B=({disabled:t,icon:e,text:o,description:i})=>`<span role="button" tabindex="0" class="k-actionsheet-item ${t?g:""}"><span class="k-actionsheet-action">`+(e?`<span class="k-icon-wrap">${e}</span>`:"")+'<span class="k-actionsheet-item-text">'+`<span class="k-actionsheet-item-title">${n(o)}</span>`+(i?'<span class="k-actionsheet-item-description">'+n(i)+"</span>":"")+"</span></span></span>",E={text:"",description:"",iconClass:"",iconSize:0,iconColor:"",click:t.noop,group:"top",disabled:!1},P={text:"",icon:"",iconClass:"",click:t.noop,disabled:!1};var I=o.extend({init:function(t,n){var i=this;n=n||{},o.fn.init.call(i,t,n),n.appendTo&&i.element.appendTo(n.appendTo),i._hasItems=n.items&&n.items.length,i._hasActionButtons=n.actionButtons&&n.actionButtons.length,i._mapItems(),i._mapActionButtons(),i._wrapper(),i._popup(),i._createContent(),i._createHeader(),i._createFooter(),i._applyAria(),i._tabKeyTrap=new l(i.wrapper),i.downEvent=e.applyEventMap("down",e.guid()),i.clickEvent=e.applyEventMap("click",e.guid()),i._mousedownProxy=i._mousedown.bind(i),i._clickProxy=i._click.bind(i),i.wrapper.on("keydown"+s,i,i._keydown.bind(i))},events:[d,u,h,f],options:{name:"ActionSheet",title:"",items:[],popup:null,fullscreen:!1,footerTemplate:null,headerTemplate:null,contentTemplate:null,actionButtons:[],closeButton:!1,adaptive:!1,focusOnActivate:!0},_mapItems:function(){var t=this;t._hasItems&&(t.options.items=t.options.items.map(F))},_mapActionButtons:function(){var t=this;t._hasActionButtons&&(t.options.actionButtons=t.options.actionButtons.map(S))},_wrapper:function(){var e,n=this,o=n.element,i=1==n.options.fullscreen?k:v;o.addClass("k-actionsheet "+i+(n.options.adaptive?" k-adaptive-actionsheet":" k-actionsheet-jq")),n.wrapper=e=o.wrap("<div class='k-actionsheet-container "+w+"'></div>").parent(),e.prepend(t("<div></div>").addClass("k-overlay"))},_applyAria:function(){var t=this,e=t.element,n=t.wrapper.find(".k-actionsheet-title").attr("id");e.attr({role:"dialog","aria-modal":!0,"aria-labelledby":t.options.title?n:null})},_popup:function(){var t=this,n=t.options,o=!!n.adaptive&&{open:{effects:"slideIn:up",transition:!0,duration:200}};n.open=null,n.close=null,n.activate=null,n.deactivate=null,t.popup=new a(t.element,T(n.popup,n,{name:"Popup",isRtl:e.support.isRtl(n.anchor),omitOriginOffsets:!0,appendTo:t.wrapper,modal:!0,animation:o,position:"top center",anchor:n.anchor||t.wrapper})),n.focusOnActivate&&t.popup.bind(h,t._openHandler.bind(t)),t.popup.bind(h,(e=>{t.trigger(h,e)})),t.popup.bind(f,(e=>{t.wrapper.addClass(w),p.off(t.downEvent,t._mousedownProxy),p.off(t.clickEvent,t._clickProxy),t.trigger(f,e)})),t.popup.bind(d,(e=>{t.trigger(d,e)})),t.popup.bind(u,(e=>{var n=t._closeButtonPressed;t._closeButtonPressed=!1,t.trigger(u,T({},e,{closeButton:n}))}))},_createHeader:function(){var t=this.options;(t.title||t.headerTemplate)&&this.element.prepend(A(t.headerTemplate||x)(t))},_items:function(){var t=this;if(t._hasItems){var e=t.options.items.reduce(((t,e)=>{const n=e.group||"top";return t[n]=t[n]||[],t[n].push(e),t}),new Map),n=e.top,o=e.bottom;t._createItems(n),n&&n.length&&o&&o.length&&t._content.append('<hr class="k-hr" />'),t._createItems(o)}},_createContent:function(){var e=this,n=e.options;e.element.wrapInner(t("<div class='k-actionsheet-content'></div>"));var o=e._content=e.element.find(".k-actionsheet-content");if(e._hasItems)return o.empty(),void e._items();(n.contentTemplate||n.hideOverflowContent)&&o.addClass("!k-overflow-hidden"),n.contentTemplate&&o.html(A(n.contentTemplate)(n))},_createItems:function(n){var o,i,s,a,c,r,l,p,d=this._content,u=t("<div class='k-list-ul' role='group'></div>");if(n&&n.length)for(d.append(u),s=A(B),o=0;o<n.length;o++)i=n[o],l=void 0,p=void 0,p={},c=(r=i).iconClass||r.icon?(l=t(e.html.renderIcon({icon:r.icon,iconClass:r.iconClass+" k-actionsheet-item-icon"})),r.iconColor&&C.test(r.iconColor)?p.color=r.iconColor:r.iconColor&&l.addClass("k-text-"+r.iconColor),r.iconSize&&(p.fontSize=r.iconSize+"px"),Object.keys(p).length&&l.css(p),l):"",a=t(s(T({},i,{icon:c&&c.prop("outerHTML")}))),u.append(a),i.click&&a.data("action",i.click)},_createActionButtons:function(){for(var n,o=this.options.actionButtons,i=this._footer,s=0;s<o.length;s++){var a=o[s],c=!0!==a.disabled;n=t(e.html.renderButton(`<button ref-actionsheet-action-button>${a.text||""}</button>`,t.extend({size:"large"},a))),i.append(n),n.toggleClass(g,!c),n.attr("disabled",!c),c?n.removeAttr(b):n.attr(b,!c),a.click&&n.data("action",a.click)}},_createFooter:function(){var e,n=this,o=n.options;if(n._hasActionButtons||o.footerTemplate){if((e=n._footer=t("<div class='k-actionsheet-footer'></div>")).insertAfter(n._content),n._hasActionButtons)return e.addClass("k-actions k-actions-stretched k-actions-horizontal"),void n._createActionButtons();o.footerTemplate&&n._footer.append(A(o.footerTemplate)(o))}},destroy:function(){var t=this;t.close(),o.fn.destroy.call(t),t._content=null,t._footer=null,t._header=null,t.element.off(s),t.wrapper.off(s),t.popup.destroy()},open:function(t){var e=this;e.altTarget=t&&t.altTarget,e.wrapper.removeClass(w),e._elementHeight=e._elementHeight||e.element.outerHeight(),e.options.adaptive&&e.wrapper.width("100%"),e.popup.open("auto",0),e.popup.wrapper.find(">.k-child-animation-container").css({bottom:0,width:"100%"}),p.off(e.downEvent,e._mousedownProxy).on(e.downEvent,e._mousedownProxy),p.off(e.clickEvent,e._clickProxy).on(e.clickEvent,e._clickProxy),e._tabKeyTrap.trap()},visible:function(){return this.popup.visible()},toggle:function(){this.visible()?this.close():this.open()},fullscreen:function(t){var e=this;e.element.toggleClass(k,!0===t),e.element.toggleClass(v,!0!==t),e.element.closest(".k-child-animation-container").css({height:t?"100%":"auto"})},close:function(){this.popup.close()},position:t.noop,_focusFirstFocusableElement:function(){var t=this.element.find(m).first();t.length&&t.trigger("focus")},_focusLastFocusableElement:function(){var t=this.element.find(m).last();t.length&&t.trigger("focus")},_openHandler:function(){var t=this;if(t._hasItems){var e=t._content.find(".k-actionsheet-item")[0];e&&e.focus()}else t._focusFirstFocusableElement()},_isActionableButton:function(e){return t(e).closest(_).length>0},_triggerAction:function(e){var n=t(e.target).closest(_).data("action");r(n)&&n(e),e.isDefaultPrevented()||this.close()},_keydown:function(n){var o=this,i=e.keys,s=n.keyCode,a=t(n.target);if(s==i.ESC)n.stopPropagation(),o.close();else if(o._isActionableButton(a)&&$(n))o._triggerAction(n);else if(n.keyCode===e.keys.TAB){var c=this.wrapper.find(m),r=c.first(),l=c.last();n.shiftKey?document.activeElement===r[0]&&(l.trigger("focus"),n.preventDefault()):document.activeElement===l[0]&&(r.trigger("focus"),n.preventDefault())}},_click:function(t){var n=e.eventTarget(t);this._isActionableButton(n)&&this._triggerAction(t)},_mousedown:function(n){var o=this,i=o.element[0],s=e.eventTarget(n);o.altTarget&&o.altTarget.is(t(s))||(!function(e,n){return!(!e||!n)&&(e===n||t.contains(e,n))}(i,s)||t(s).closest(`[${e.attr("ref-actionsheet-close-button")}]`,t(i).find("k-actionsheet-titlebar")).length>0)&&(o._closeButtonPressed=!0,o.close())}});function $(t){return t.keyCode==c.ENTER||t.keyCode==c.SPACEBAR}function F(t){return T({},E,t)}function S(t){return T({},P,t)}i.plugin(I)}(window.kendo.jQuery);var e=kendo;t.__meta__={id:"actionsheet",name:"ActionSheet",category:"web",description:"The ActionSheet widget displays a set of choices related to a task the user initiates.",depends:["core","popup","icons","html.button"]},t.default=e,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.actionsheet.min.js.map