UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 8.15 kB
module.exports=function(e){function t(r){if(i[r])return i[r].exports;var a=i[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}({0:function(e,t,i){e.exports=i(1180)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1091:function(e,t){e.exports=require("./kendo.userevents")},1180:function(e,t,i){var r,a,n;!function(s,define){a=[i(1091)],r=s,n="function"==typeof r?r.apply(t,a):r,!(void 0!==n&&(e.exports=n))}(function(){return function(e,t){var i=window.kendo,r=i.ui,a=r.Widget,n="show",s="hide",d=".kendoDrawer",o="k-state-focused",h=i.keys,l="itemClick",p="tabIndex",m=e.proxy,w="push",c="overlay",u="left",v="right",f=i.ui.Widget.extend({init:function(t,r){var n,s=this;a.fn.init.call(this,t,r),r=s.options,s._element(t),s._wrapper(t),s._navigatable(),s.position(),s._mode(),r.mini&&s._miniMode(),s._initDrawerItems(),r.mini&&r.mode!=w&&s._setBodyOffset(),n=this.userEvents=new i.UserEvents(r.mode!=w?e(document.body):this.drawerContainer,{fastTap:!0,allowSelection:!0}),s.tap=function(t){e.contains(s.drawerItemsWrapper[0],t.event.target)&&s._itemClick(t),s.visible&&!s.trigger("hide",{sender:this})&&(s.hide(),t.preventDefault())},this.options.swipeToOpen?(n.bind("start",function(e){s._start(e)}),n.bind("move",function(e){s._update(e)}),n.bind("end",function(e){s._end(e)}),n.bind("tap",s.tap)):n.bind("press",s.tap),r.minHeight&&r.mode==w&&s.drawerContainer.css("min-height",r.minHeight)},_element:function(){var t=this,i=t.element,r=t.options,a=t.contentElement=i.children().first();t.drawerElement=e(r.template),a.addClass("k-drawer-content"),i.addClass("k-widget k-drawer")},_navigatable:function(){var e,t;this.options.navigatable&&(e=this,t=e.element,t.attr(p,0).attr("role","tablist").attr("aria-orientation","vertical"),t.on("focus"+d,m(e._focus,e)).on("focusout"+d,m(e._blur,e)).on("keydown"+d,e,m(e._keyDown,e)))},_blur:function(){var e=this;e._current&&e._current.removeClass(o)},_focus:function(){var e=this;e._setCurrent(e._current?e._current:e.drawerItemsWrapper.find("[data-role='drawer-item']").eq(0))},_setCurrent:function(t){var r=this,a=i.guid(),n=e(t);r._current&&(e(r._current).removeClass(o).removeAttr("id"),r.element.removeAttr("aria-activedescendant")),n.attr("id",a).addClass(o),r.element.attr("aria-activedescendant",a),r._current=n},_keyDown:function(t){var i,r=this,a=!1,n=r._current;t.keyCode==h.UP&&(a=!0,i=n.prevAll("[data-role='drawer-item']:first"),r._setCurrent(i.length?i:n.parent().find("[data-role='drawer-item']:last"))),t.keyCode==h.DOWN&&(a=!0,i=n.nextAll("[data-role='drawer-item']:first"),r._setCurrent(i.length?i:n.parent().find("[data-role='drawer-item']:first"))),t.keyCode==h.HOME&&(a=!0,r._setCurrent(r.drawerItemsWrapper.find("[data-role='drawer-item']").eq(0))),t.keyCode==h.END&&(a=!0,r._setCurrent(r.drawerItemsWrapper.find("[data-role='drawer-item']:last"))),t.keyCode!=h.SPACEBAR&&t.keyCode!=h.ENTER||(a=!0,r.tap({event:{target:n[0]},preventDefault:e.noop})),t.keyCode==h.ESC&&(a=!0,r.hide()),a&&t.preventDefault()},_wrapper:function(){var t=this.options,i=this.drawerElement,r=this.element,a=this.contentElement,n=this.drawerItemsWrapper=i.wrapAll("<div class='k-drawer-items'></div>").parent(),s=this.drawerWrapper=n.wrap("<div class='k-drawer-wrapper'></div>").parent(),d=this.drawerContainer=r.wrap("<div class='k-drawer-container'></div>").parent();t.mini?t.mini.width&&s.width(t.mini.width):s.width(0),t.mode===w?d.append(a):t.mode===c&&(d.after(a),e(document.body).prepend(d)),r.append(s)},_setBodyOffset:function(){var t=this.element.outerWidth();this.leftPositioned?e(document.body).css("padding-left",t):e(document.body).css("padding-right",t)},_initDrawerItems:function(){var e=this.drawerItemsWrapper,t=e.find("[data-role='drawer-item']"),i=e.find("[data-role='drawer-separator']");t.addClass("k-drawer-item"),i.addClass("k-drawer-item k-drawer-separator"),this._selectedItemIndex>=0&&(t.removeClass("k-state-selected"),t.eq(this._selectedItemIndex).addClass("k-state-selected")),this.options.navigatable&&t.attr("aria-selected",!1)},_mode:function(){var t,i=this.options,r=this.drawerContainer;i.mode==w?r.addClass("k-drawer-"+w):(r.addClass("k-drawer-"+c),t=this.overlayContainer=e('<div class="k-overlay"></div>'),t.hide(),r.prepend(t))},_miniMode:function(){var t=this.options,i=this.drawerContainer,r=t.mini.width,a=this._miniTemplate=t.mini.template&&e(t.mini.template),n=this.drawerItemsWrapper,s=this.drawerWrapper;i.addClass("k-drawer-mini"),a&&n.html(a),r&&s.width(r),this.minWidth=t.mini.width||this.drawerWrapper.width()},show:function(){var e=this.drawerWrapper,t=this.drawerContainer,i=this.options,r=t.hasClass("k-drawer-expanded"),a=this._miniTemplate,n=this.drawerElement,s=this.drawerItemsWrapper;r||(t.addClass("k-drawer-expanded"),this.visible=!0),a&&(s.html(n),this._initDrawerItems(),this._selectItem()),e.width(i.width),i.mode===c&&(this.overlayContainer.show(),this.visible=!0)},hide:function(){var e=this,t=e.drawerWrapper,i=e.drawerContainer,r=this.options,a=this.drawerItemsWrapper,n=this._miniTemplate,s=r.mini&&r.mini.width;this._miniTemplate&&(a.html(n),e._initDrawerItems(),this._selectItem()),t.width(r.mini?s?s:"":0),this.visible&&(i.removeClass("k-drawer-expanded"),this.visible=!1),r.mode===c&&this.overlayContainer.hide()},position:function(e){var t=this,i=t.options,r=e||i.position,a=t.drawerContainer;r==v?(a.removeClass("k-drawer-"+u),a.addClass("k-drawer-"+v)):(a.removeClass("k-drawer-"+v),a.addClass("k-drawer-"+u)),this.leftPositioned=r===u},_start:function(e){var r=this,a=this.options,n=this.drawerWrapper,s=this.drawerItemsWrapper,d=e.sender;return Math.abs(e.x.velocity)<Math.abs(e.y.velocity)||i.triggeredByInput(e.event)?(d.cancel(),t):(this.drawerMini&&s.html(r.drawerElement),n.css("transition","none"),a.mode!=w&&this.overlayContainer.show(),t)},_update:function(e){var t=this.options,i=t.mode;i==w?this._push(e):this._overlay(e)},_end:function(e){var t,i=e.x.velocity,r=this.options,a=this.drawerWrapper,n=a.width(),s=n>r.width/2,d=.8;a.css("transition","all .3s ease-out"),t=this.leftPositioned?i>-d&&(i>d||s):i<d&&(i<-d||s),t?this.trigger("show",{sender:this})?(e.preventDefault(),this.hide()):this.show():this.trigger("hide",{sender:this})?(e.preventDefault(),this.show()):this.hide()},_overlay:function(e){var t=this.options,i=t.mini&&t.mini.width||this.minWidth||0,r=this.drawerWrapper,a=r.width(),n=a+(this.leftPositioned?e.x.delta:-e.x.delta),s=Math.min(Math.max(n,i),t.width);e.event.preventDefault(),e.event.stopPropagation(),r.width(s)},_push:function(e){var t=this.options,i=t.mini&&t.mini.width||this.minWidth||0,r=this.drawerWrapper,a=r.width(),n=a+(this.leftPositioned?e.x.delta:-e.x.delta),s=Math.min(Math.max(n,i),t.width);e.event.preventDefault(),e.event.stopPropagation(),r.width(s)},_selectItem:function(e){var i;return e?(e.addClass("k-state-selected"),this.trigger("itemClick",{item:e,sender:this}),this._selectedItemIndex=e.index(),t):(i=this._selectedItemIndex,i&&this.drawerItemsWrapper.find("[data-role='drawer-item']").eq(i).addClass("k-state-selected"),t)},_itemClick:function(t){var i,r,a=this;e(t.event.target).find(".k-drawer-item").length>0?i=e(t.event.target).find(".k-drawer-item"):e(t.event.target).closest(".k-drawer-item").length>0?i=e(t.event.target).closest(".k-drawer-item"):e(t.event.target).hasClass(".k-drawer-item")&&(i=e(t.event.target)),r=a.drawerItemsWrapper.find(".k-drawer-item").removeClass("k-state-selected"),a._selectItem(i),a.options.navigatable&&(r.attr("aria-selected",!1),i.attr("aria-selected",!0),a._setCurrent(i))},destroy:function(){var t=this.options;t.mode!=w&&(this.leftPositioned?e(document.body).css("padding-left",0):e(document.body).css("padding-right",0)),a.fn.destroy.call(this),this.userEvents.destroy(),i.destroy(this.element),this.element=this.drawerWrapper=this.drawerElement=this.drawerContainer=this.drawerItemsWrapper=this._miniTemplate=null},options:{name:"Drawer",position:u,mode:"overlay",swipeToOpen:!0,width:280,mini:!1,navigatable:!1,template:""},events:[s,n,l]});i.ui.plugin(f)}(window.kendo.jQuery),window.kendo},i(3))}});