UNPKG

@progress/kendo-ui

Version:

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

3 lines 9.06 kB
/* @license */ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.userevents.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.userevents.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Drawer={}),e.kendo._globals.Userevents))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let n={id:`drawer`,name:`Drawer`,category:`web`,description:`The Kendo Drawer widget provides slide to reveal sidebar`,depends:[`userevents`]};(function(e,t){var n=window.kendo,r=n.ui.Widget,i=`show`,a=`hide`,o=`.kendoDrawer`,s=`k-focus`,c=n.keys,l=`itemClick`,u=`tabIndex`,d=`push`,f=`overlay`,p=`left`,m=`start`,h=`end`,g=`right`,_=`.`,v=`k-drawer-items`,y=n.ui.Widget.extend({init:function(t,i){var a=this,o;r.fn.init.call(this,t,i),i=a.options,a._element(t),a._wrapper(t),a._navigatable(),a.position(),a._mode(),i.mini&&a._miniMode(),a._initDrawerItems(),i.mini&&i.mode!=d&&a._setBodyOffset(),o=this.userEvents=new n.UserEvents(i.mode==d?this.drawerContainer:e(document.body),{fastTap:!0,allowSelection:!0}),a.tap=function(t){e.contains(a.drawerItemsWrapper.filter(_+v)[0],t.event.target)&&a._itemClick(t),i.autoCollapse&&a.visible&&!a.trigger(`hide`,{sender:this})&&(a.hide(),t.preventDefault())},this.options.swipeToOpen?(o.bind(`start`,function(e){a._start(e)}),o.bind(`move`,function(e){a._update(e)}),o.bind(`end`,function(e){a._end(e)}),o.bind(`tap`,a.tap)):o.bind(`press`,a.tap),i.minHeight&&i.mode==d&&a.drawerContainer.css(`min-height`,i.minHeight),a._showWatermarkOverlay&&a._showWatermarkOverlay(a.drawerContainer[0]),i.expanded&&(a._removeTransition(),a.show())},_element:function(){var t=this,n=t.element,r=t.options;t.contentElement=n.children().wrapAll(`<div class='k-drawer-content'></div>`).parent(),r.template instanceof Function?t.drawerElement=e(r.template()):t.drawerElement=e(r.template),n.addClass(`k-drawer`)},_navigatable:function(){var e=this,t=e.element;t.find(`[data-role='drawer-item']`).first().parent().attr(`role`,`menubar`).attr(`aria-orientation`,`vertical`),this.options.navigatable&&t.attr(u,0).on(`focus`+o,e._focus.bind(e)).on(`focusout`+o,e._blur.bind(e)).on(`keydown`+o,e,e._keyDown.bind(e))},_blur:function(){var e=this;e._current&&e._current.removeClass(s)},_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,i=n.guid(),a=e(t);r._current&&(e(r._current).removeClass(s).removeAttr(`id`),r.drawerItemsWrapper.removeAttr(`aria-activedescendant`)),a.attr(`id`,i).addClass(s),r.drawerItemsWrapper.attr(`aria-activedescendant`,i),r._current=a},_keyDown:function(t){var n=this,r=!1,i=n._current,a;t.keyCode==c.UP&&(r=!0,a=i.prevAll(`[data-role='drawer-item']`).first(),a.length?n._setCurrent(a):n._setCurrent(i.parent().find(`[data-role='drawer-item']`).last())),t.keyCode==c.DOWN&&(r=!0,a=i.nextAll(`[data-role='drawer-item']`).first(),a.length?n._setCurrent(a):n._setCurrent(i.parent().find(`[data-role='drawer-item']`).first())),t.keyCode==c.HOME&&(r=!0,n._setCurrent(n.drawerItemsWrapper.find(`[data-role='drawer-item']`).eq(0))),t.keyCode==c.END&&(r=!0,n._setCurrent(n.drawerItemsWrapper.find(`[data-role='drawer-item']`).last())),(t.keyCode==c.SPACEBAR||t.keyCode==c.ENTER)&&(r=!0,n.tap({event:{target:i[0]},preventDefault:e.noop})),t.keyCode==c.ESC&&(r=!0,n.hide()),r&&t.preventDefault()},_wrapper:function(){var e=this.options,t=this.drawerElement,n=this.element,r=this.contentElement,i=this.drawerWrapper=(this.drawerItemsWrapper=t).wrapAll(`<div class='k-drawer-wrapper'></div>`).parent(),a=this.drawerContainer=n.wrap(`<div class='k-drawer-container'></div>`).parent();t.filter(`ul`).addClass(v),e.mini?e.mini.width&&i.width(e.mini.width):i.width(0),a.append(r),n.append(i)},_addTransition:function(){this.drawerWrapper.css(`transition`,`all .3s ease-out`)},_removeTransition:function(){this.drawerWrapper.css(`transition`,`none`)},_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']`),n=e.find(`[data-role='drawer-separator']`);t.addClass(`k-drawer-item`).attr(`role`,`menuitem`),n.addClass(`k-drawer-item k-drawer-separator`).attr(`role`,`separator`),this._toggleLevelClasses(!!this.visible),t.each((e,t)=>{t.setAttribute(`aria-label`,t.textContent.trim())}),this._selectedItemIndex>=0&&(t.removeClass(`k-selected`),t.eq(this._selectedItemIndex).addClass(`k-selected`))},_toggleLevelClasses:function(t){let n=this.drawerItemsWrapper.find(`[data-role='drawer-item']`),r,i;n.each((n,a)=>{r=e(a).data(`level`)||0,i=`k-level-`+r,e(a).toggleClass(i,t)})},_mode:function(){var t=this.options,n=this.drawerContainer,r;t.mode==d?n.addClass(`k-drawer-`+d):(n.addClass(`k-drawer-`+f),r=this.overlayContainer=e(`<div class="k-overlay"></div>`),r.hide(),n.prepend(r))},_miniMode:function(){var t=this.options,n=this.drawerContainer,r=t.mini.width,i=this._miniTemplate=t.mini.template,a=this.drawerItemsWrapper,o=this.drawerWrapper;if(n.addClass(`k-drawer-mini`),i)if(i instanceof Function){let t=i();a.html(e(t))}else a.html(e(i));r&&o.width(r),this.minWidth=t.mini.width||this.drawerWrapper.width()},show:function(){var e=this.drawerWrapper,t=this.drawerContainer,n=this.options,r=t.hasClass(`k-drawer-expanded`),i=this._miniTemplate,a=this.drawerItemsWrapper;r||(t.addClass(`k-drawer-expanded`),this.visible=!0),i&&(a.html(i),this._initDrawerItems(),this._selectItem()),e.width(n.width),n.mini&&t.removeClass(`k-drawer-mini`),n.mode===f&&(this.overlayContainer.show(),this.visible=!0),this._toggleLevelClasses(!0)},hide:function(){var e=this,t=e.drawerWrapper,n=e.drawerContainer,r=this.options,i=this.drawerItemsWrapper,a=this._miniTemplate,o=r.mini&&r.mini.width;this._addTransition(),this._miniTemplate&&(i.html(a),e._initDrawerItems(),this._selectItem()),r.mini?(n.addClass(`k-drawer-mini`),o?t.width(o):t.width(``)):t.width(0),this.visible&&=(n.removeClass(`k-drawer-expanded`),!1),r.mode===f&&this.overlayContainer.hide(),this._toggleLevelClasses(!1)},position:function(e){var t=this,n=t.options,r=e||n.position;r==g?(t.element.removeClass(`k-drawer-`+m),t.element.addClass(`k-drawer-`+h)):(t.element.removeClass(`k-drawer-`+h),t.element.addClass(`k-drawer-`+m)),this.leftPositioned=r===p},_start:function(e){var t=this,r=this.options;this.drawerWrapper;var i=this.drawerItemsWrapper,a=e.sender;if(Math.abs(e.x.velocity)<Math.abs(e.y.velocity)||n.triggeredByInput(e.event)){a.cancel();return}this.drawerMini&&i.html(t.drawerElement),this._removeTransition(),r.mode!=d&&this.overlayContainer.show()},_update:function(e){this.options.mode==d?this._push(e):this._overlay(e)},_end:function(e){var t=e.x.velocity,n=this.options,r=this.drawerWrapper.width()>n.width/2,i=.8,a;this._addTransition(),a=this.leftPositioned?t>-i&&(t>i||r):t<i&&(t<-i||r),a?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,n=t.mini&&t.mini.width||this.minWidth||0,r=this.drawerWrapper,i=r.width(),a,o=i+(this.leftPositioned?e.x.delta:-e.x.delta);a=Math.min(Math.max(o,n),t.width),e.event.preventDefault(),e.event.stopPropagation(),r.width(a)},_push:function(e){var t=this.options,n=t.mini&&t.mini.width||this.minWidth||0,r=this.drawerWrapper,i=r.width(),a,o=i+(this.leftPositioned?e.x.delta:-e.x.delta);a=Math.min(Math.max(o,n),t.width),e.event.preventDefault(),e.event.stopPropagation(),r.width(a)},_selectItem:function(e){var t;if(e){e.addClass(`k-selected`),this.trigger(`itemClick`,{item:e,sender:this}),this._selectedItemIndex=e.index();return}t=this._selectedItemIndex,t&&this.drawerItemsWrapper.find(`[data-role='drawer-item']`).eq(t).addClass(`k-selected`)},_itemClick:function(t){var n=this,r;e(t.event.target).find(`.k-drawer-item`).length>0?r=e(t.event.target).find(`.k-drawer-item`):e(t.event.target).closest(`.k-drawer-item`).length>0?r=e(t.event.target).closest(`.k-drawer-item`):e(t.event.target).hasClass(`.k-drawer-item`)&&(r=e(t.event.target)),n.drawerItemsWrapper.find(`.k-drawer-item`).removeClass(`k-selected`),n._selectItem(r),n.options.navigatable&&n._setCurrent(r)},destroy:function(){this.options.mode!=d&&(this.leftPositioned?e(document.body).css(`padding-left`,0):e(document.body).css(`padding-right`,0)),r.fn.destroy.call(this),this.userEvents.destroy(),n.destroy(this.element),this.element=this.drawerWrapper=this.drawerElement=this.drawerContainer=this.drawerItemsWrapper=this._miniTemplate=null},options:{name:`Drawer`,autoCollapse:!0,expanded:!1,position:p,mode:`overlay`,swipeToOpen:!0,width:280,mini:!1,navigatable:!1,template:``},events:[a,i,l]});n.ui.plugin(y)})(window.kendo.jQuery);var r=kendo;e.__meta__=n,e.default=r}); //# sourceMappingURL=kendo.drawer.min.js.map