@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) • 4 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.popup.min","kendo.icons.min"],e):e()}((function(){!function(e,t){var n=window.kendo,o=n.htmlEncode,i=n.ui.Widget,s=n.ui,a=".kendoActionSheet",p=s.Popup,r=p.TabKeyTrap,c=e(document.documentElement),d="k-hidden",l="actionsheet-header",u=e.extend,m=n.template,h="click",f=/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/,k=function(e){var t=e.title;return'<span id="'+l+'" class="k-actionsheet-header">'+t+"</span>"},_=function(e){var t=e.disabled,n=e.icon,i=e.text,s=e.description;return'<span role="button" tabindex="0" class="k-actionsheet-item '+(t?"k-disabled":"")+'"><span class="k-actionsheet-action">'+(n||"")+'<span class="k-actionsheet-item-text"><span class="k-actionsheet-item-title">'+o(i)+"</span>"+(s?'<span class="k-actionsheet-item-description">'+o(s)+"</span>":"")+"</span></span></span>"},v={text:"",description:"",iconClass:"",iconSize:0,iconColor:"",click:e.noop,group:"top",disabled:!1};var w=i.extend({init:function(e,t){var o=this;i.fn.init.call(o,e,t),o._hasItems=t.items&&t.items.length,o._mapItems(),o._wrapper(),o._popup(),o._header(),o._items(),o._footer(),o._tabKeyTrap=new r(o.wrapper),o.downEvent=n.applyEventMap("down",n.guid()),o._mousedownProxy=o._mousedown.bind(o),o.wrapper.on("keydown"+a,o,o._keydown.bind(o))},events:["open","close"],options:{name:"ActionSheet",title:"",items:[],popup:null},_mapItems:function(){var e=this;e._hasItems&&(e.options.items=e.options.items.map(C))},_wrapper:function(){var t,n=this.element;n.addClass("k-actionsheet k-actionsheet-jq k-actionsheet-bottom k-popup"),this.wrapper=t=n.wrap("<div class='k-actionsheet-container k-hidden'></div>").parent(),t.prepend(e("<div></div>").addClass("k-overlay")),n.attr({role:"dialog","aria-modal":!0,"aria-labelledby":l})},_popup:function(){var e=this,t=e.options;e.popup=new p(e.element,u(t.popup,t,{name:"Popup",isRtl:n.support.isRtl(t.anchor),omitOriginOffsets:!0,appendTo:e.wrapper,modal:!0,animation:!1,anchor:e.wrapper})),e.popup.bind("activate",e._openHandler.bind(e))},_header:function(){var e=this.options;e.title&&this.element.append(m(k)(e))},_items:function(){this._hasItems&&this._createItems(g)},_createItems:function(t){var o,i,s,p,r,c,d,l,k=this,v=k.options.items.filter(t),w=e("<div class='k-actionsheet-items' role='group'></div>");if(v.length)for(k.element.append(w),s=m(_),o=0;o<v.length;o++)i=v[o],d=void 0,l=void 0,l={},r=(c=i).iconClass||c.icon?(d=e(n.html.renderIcon({icon:c.icon,iconClass:c.iconClass+" k-actionsheet-item-icon"})),c.iconColor&&f.test(c.iconColor)?l.color=c.iconColor:c.iconColor&&d.addClass("k-text-"+c.iconColor),c.iconSize&&(l.fontSize=c.iconSize),Object.keys(l).length&&d.css(l),d):"",p=e(s(u({},i,{icon:r&&r.prop("outerHTML")}))),w.append(p),i.click&&p.on(h+a,i.click.bind(k))},_footer:function(){var e=this;e._hasItems&&(e.element.append('<hr class="k-hr" />'),e._createItems(y))},destroy:function(){var e=this;i.fn.destroy.call(e),e.element.off(a),e.wrapper.off(a),e.popup.destroy()},open:function(){var e=this;e.wrapper.removeClass(d),e._elementHeight=e._elementHeight||e.element.outerHeight(),e.popup.open((e.wrapper.outerWidth()-e.element.outerWidth())/2,e.wrapper.outerHeight()-e._elementHeight),c.off(e.downEvent,e._mousedownProxy).on(e.downEvent,e._mousedownProxy),e._tabKeyTrap.trap()},close:function(){var e=this;e.popup.close(),e.wrapper.addClass(d),c.off(e.downEvent,e._mousedownProxy)},_keydown:function(t){var o=n.keys,i=t.keyCode,s=e(t.target);i==o.ESC?(t.stopPropagation(),this.close()):s.hasClass("k-actionsheet-item ")&&i===o.ENTER&&s.trigger(h)},_openHandler:function(){this.element.find(".k-actionsheet-item").eq(0).trigger("focus")},_mousedown:function(t){(function(t,n){return!(!t||!n)&&(t===n||e.contains(t,n))})(this.element[0],n.eventTarget(t))||this.close()}});function g(e){return"top"===e.group}function y(e){return"top"!==e.group}function C(e){return u({},v,e)}s.plugin(w)}(window.kendo.jQuery)}));
//# sourceMappingURL=kendo.actionsheet.min.js.map