{"version":3,"sources":["kendo.drawer.js"],"names":["f","define","$","undefined","kendo","window","ui","Widget","SHOW","HIDE","NS","FOCUSED","keys","ITEMCLICK","TABINDEX","proxy","PUSH","OVERLAY","LEFT","RIGHT","Drawer","extend","init","element","options","userEvents","that","this","fn","call","_element","_wrapper","_navigatable","position","_mode","mini","_miniMode","_initDrawerItems","mode","_setBodyOffset","UserEvents","document","body","drawerContainer","fastTap","allowSelection","tap","e","contains","drawerItemsWrapper","event","target","_itemClick","autoCollapse","visible","trigger","sender","hide","preventDefault","swipeToOpen","bind","_start","_update","_end","minHeight","css","contentElement","children","first","drawerElement","template","addClass","navigatable","attr","on","_focus","_blur","_keyDown","_current","removeClass","_setCurrent","find","eq","current","id","guid","next","removeAttr","handled","keyCode","UP","prevAll","length","parent","DOWN","nextAll","HOME","END","SPACEBAR","ENTER","noop","ESC","wrapAll","drawerWrapper","wrap","width","append","after","prepend","overlayMiniOffset","outerWidth","leftPositioned","drawerItems","separatorItems","_selectedItemIndex","overlayContainer","miniWidth","miniTemplate","_miniTemplate","html","minWidth","show","isExpanded","hasClass","_selectItem","value","Math","abs","x","velocity","y","triggeredByInput","cancel","drawerMini","_push","_overlay","shouldShow","elementWidth","pastHalf","velocityThreshold","moveEventArgs","updatedPosition","delta","limitedPosition","min","max","stopPropagation","item","selectedItemIndex","index","items","closest","destroy","name","events","plugin","jQuery","amd","a1","a2","a3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;CAwBC,SAAUA,EAAGC,QACVA,OAAO,gBAAiB,oBAAqBD,IAC/C,WAqbE,MA7aC,UAAUE,EAAGC,GAAb,GACOC,GAAQC,OAAOD,MAAOE,EAAKF,EAAME,GAAIC,EAASD,EAAGC,OAAQC,EAAO,OAAQC,EAAO,OAAQC,EAAK,eAAgBC,EAAU,kBAAmBC,EAAOR,EAAMQ,KAAMC,EAAY,YAAaC,EAAW,WAAYC,EAAQb,EAAEa,MAAOC,EAAO,OAAQC,EAAU,UAAWC,EAAO,OAAQC,EAAQ,QACxRC,EAAShB,EAAME,GAAGC,OAAOc,QACzBC,KAAM,SAAUC,EAASC,GAAnB,GAEEC,GADAC,EAAOC,IAEXpB,GAAOqB,GAAGN,KAAKO,KAAKF,KAAMJ,EAASC,GACnCA,EAAUE,EAAKF,QACfE,EAAKI,SAASP,GACdG,EAAKK,SAASR,GACdG,EAAKM,eACLN,EAAKO,WACLP,EAAKQ,QACDV,EAAQW,MACRT,EAAKU,YAETV,EAAKW,mBACDb,EAAQW,MAAQX,EAAQc,MAAQtB,GAChCU,EAAKa,iBAETd,EAAaE,KAAKF,WAAa,GAAIrB,GAAMoC,WAAWhB,EAAQc,MAAQtB,EAAOd,EAAEuC,SAASC,MAAQf,KAAKgB,iBAC/FC,SAAS,EACTC,gBAAgB,IAEpBnB,EAAKoB,IAAM,SAAUC,GACb7C,EAAE8C,SAAStB,EAAKuB,mBAAmB,GAAIF,EAAEG,MAAMC,SAC/CzB,EAAK0B,WAAWL,GAEhBvB,EAAQ6B,cAAgB3B,EAAK4B,UAAY5B,EAAK6B,QAAQ,QAAUC,OAAQ7B,SACxED,EAAK+B,OACLV,EAAEW,mBAGN/B,KAAKH,QAAQmC,aACblC,EAAWmC,KAAK,QAAS,SAAUb,GAC/BrB,EAAKmC,OAAOd,KAEhBtB,EAAWmC,KAAK,OAAQ,SAAUb,GAC9BrB,EAAKoC,QAAQf,KAEjBtB,EAAWmC,KAAK,MAAO,SAAUb,GAC7BrB,EAAKqC,KAAKhB,KAEdtB,EAAWmC,KAAK,MAAOlC,EAAKoB,MAE5BrB,EAAWmC,KAAK,QAASlC,EAAKoB,KAE9BtB,EAAQwC,WAAaxC,EAAQc,MAAQtB,GACrCU,EAAKiB,gBAAgBsB,IAAI,aAAczC,EAAQwC,YAGvDlC,SAAU,WAAA,GACFJ,GAAOC,KACPJ,EAAUG,EAAKH,QACfC,EAAUE,EAAKF,QACf0C,EAAiBxC,EAAKwC,eAAiB3C,EAAQ4C,WAAWC,OAC9D1C,GAAK2C,cAAgBnE,EAAEsB,EAAQ8C,UAC/BJ,EAAeK,SAAS,oBACxBhD,EAAQgD,SAAS,sBAErBvC,aAAc,WAAA,GAINN,GACAH,CAJCI,MAAKH,QAAQgD,cAGd9C,EAAOC,KACPJ,EAAUG,EAAKH,QACnBA,EAAQkD,KAAK3D,EAAU,GAAG2D,KAAK,OAAQ,WAAWA,KAAK,mBAAoB,YAC3ElD,EAAQmD,GAAG,QAAUhE,EAAIK,EAAMW,EAAKiD,OAAQjD,IAAOgD,GAAG,WAAahE,EAAIK,EAAMW,EAAKkD,MAAOlD,IAAOgD,GAAG,UAAYhE,EAAIgB,EAAMX,EAAMW,EAAKmD,SAAUnD,MAElJkD,MAAO,WACH,GAAIlD,GAAOC,IACPD,GAAKoD,UACLpD,EAAKoD,SAASC,YAAYpE,IAGlCgE,OAAQ,WACJ,GAAIjD,GAAOC,IACXD,GAAKsD,YAAYtD,EAAKoD,SAAWpD,EAAKoD,SAAWpD,EAAKuB,mBAAmBgC,KAAK,6BAA+BC,GAAG,KAEpHF,YAAa,SAAUG,GAAV,GACLzD,GAAOC,KACPyD,EAAKhF,EAAMiF,OACXC,EAAOpF,EAAEiF,EACTzD,GAAKoD,WACL5E,EAAEwB,EAAKoD,UAAUC,YAAYpE,GAAS4E,WAAW,MACjD7D,EAAKH,QAAQgE,WAAW,0BAE5BD,EAAKb,KAAK,KAAMW,GAAIb,SAAS5D,GAC7Be,EAAKH,QAAQkD,KAAK,wBAAyBW,GAC3C1D,EAAKoD,SAAWQ,GAEpBT,SAAU,SAAU9B,GAAV,GAIFuC,GAHA5D,EAAOC,KACP6D,GAAU,EACVL,EAAUzD,EAAKoD,QAEf/B,GAAE0C,SAAW7E,EAAK8E,KAClBF,GAAU,EACVF,EAAOH,EAAQQ,QAAQ,mCAEnBjE,EAAKsD,YADLM,EAAKM,OACYN,EAEAH,EAAQU,SAASZ,KAAK,oCAG3ClC,EAAE0C,SAAW7E,EAAKkF,OAClBN,GAAU,EACVF,EAAOH,EAAQY,QAAQ,mCAEnBrE,EAAKsD,YADLM,EAAKM,OACYN,EAEAH,EAAQU,SAASZ,KAAK,qCAG3ClC,EAAE0C,SAAW7E,EAAKoF,OAClBR,GAAU,EACV9D,EAAKsD,YAAYtD,EAAKuB,mBAAmBgC,KAAK,6BAA+BC,GAAG,KAEhFnC,EAAE0C,SAAW7E,EAAKqF,MAClBT,GAAU,EACV9D,EAAKsD,YAAYtD,EAAKuB,mBAAmBgC,KAAK,oCAE9ClC,EAAE0C,SAAW7E,EAAKsF,UAAYnD,EAAE0C,SAAW7E,EAAKuF,QAChDX,GAAU,EACV9D,EAAKoB,KACDI,OAASC,OAAQgC,EAAQ,IACzBzB,eAAgBxD,EAAEkG,QAGtBrD,EAAE0C,SAAW7E,EAAKyF,MAClBb,GAAU,EACV9D,EAAK+B,QAEL+B,GACAzC,EAAEW,kBAGV3B,SAAU,WAAA,GACFP,GAAUG,KAAKH,QACf6C,EAAgB1C,KAAK0C,cACrB9C,EAAUI,KAAKJ,QACf2C,EAAiBvC,KAAKuC,eACtBjB,EAAqBtB,KAAKsB,mBAAqBoB,EAAciC,QAAQ,sCAAwCT,SAC7GU,EAAgB5E,KAAK4E,cAAgBtD,EAAmBuD,KAAK,wCAA0CX,SACvGlD,EAAkBhB,KAAKgB,gBAAkBpB,EAAQiF,KAAK,0CAA4CX,QAClGrE,GAAQW,KACJX,EAAQW,KAAKsE,OACbF,EAAcE,MAAMjF,EAAQW,KAAKsE,OAGrCF,EAAcE,MAAM,GAEpBjF,EAAQc,OAAStB,EACjB2B,EAAgB+D,OAAOxC,GAChB1C,EAAQc,OAASrB,IACxB0B,EAAgBgE,MAAMzC,GACtBhE,EAAEuC,SAASC,MAAMkE,QAAQjE,IAE7BpB,EAAQmF,OAAOH,IAEnBhE,eAAgB,WACZ,GAAIsE,GAAoBlF,KAAKJ,QAAQuF,YACjCnF,MAAKoF,eACL7G,EAAEuC,SAASC,MAAMuB,IAAI,eAAgB4C,GAErC3G,EAAEuC,SAASC,MAAMuB,IAAI,gBAAiB4C,IAG9CxE,iBAAkB,WAAA,GACVY,GAAqBtB,KAAKsB,mBAC1B+D,EAAc/D,EAAmBgC,KAAK,6BACtCgC,EAAiBhE,EAAmBgC,KAAK,iCAC7C+B,GAAYzC,SAAS,iBACrB0C,EAAe1C,SAAS,oCACpB5C,KAAKuF,oBAAsB,IAC3BF,EAAYjC,YAAY,oBACxBiC,EAAY9B,GAAGvD,KAAKuF,oBAAoB3C,SAAS,qBAEjD5C,KAAKH,QAAQgD,aACbwC,EAAYvC,KAAK,iBAAiB,IAG1CvC,MAAO,WAAA,GAGCiF,GAFA3F,EAAUG,KAAKH,QACfmB,EAAkBhB,KAAKgB,eAEvBnB,GAAQc,MAAQtB,EAChB2B,EAAgB4B,SAAS,YAAcvD,IAEvC2B,EAAgB4B,SAAS,YAActD,GACvCkG,EAAmBxF,KAAKwF,iBAAmBjH,EAAE,iCAC7CiH,EAAiB1D,OACjBd,EAAgBiE,QAAQO,KAGhC/E,UAAW,WAAA,GACHZ,GAAUG,KAAKH,QACfmB,EAAkBhB,KAAKgB,gBACvByE,EAAY5F,EAAQW,KAAKsE,MACzBY,EAAe1F,KAAK2F,cAAgB9F,EAAQW,KAAKmC,UAAYpE,EAAEsB,EAAQW,KAAKmC,UAC5ErB,EAAqBtB,KAAKsB,mBAC1BsD,EAAgB5E,KAAK4E,aACzB5D,GAAgB4B,SAAS,iBACrB8C,GACApE,EAAmBsE,KAAKF,GAExBD,GACAb,EAAcE,MAAMW,GAExBzF,KAAK6F,SAAWhG,EAAQW,KAAKsE,OAAS9E,KAAK4E,cAAcE,SAE7DgB,KAAM,WAAA,GACElB,GAAgB5E,KAAK4E,cACrB5D,EAAkBhB,KAAKgB,gBACvBnB,EAAUG,KAAKH,QACfkG,EAAa/E,EAAgBgF,SAAS,qBACtCN,EAAe1F,KAAK2F,cACpBjD,EAAgB1C,KAAK0C,cACrBpB,EAAqBtB,KAAKsB,kBACzByE,KACD/E,EAAgB4B,SAAS,qBACzB5C,KAAK2B,SAAU,GAEf+D,IACApE,EAAmBsE,KAAKlD,GACxB1C,KAAKU,mBACLV,KAAKiG,eAETrB,EAAcE,MAAMjF,EAAQiF,OACxBjF,EAAQc,OAASrB,IACjBU,KAAKwF,iBAAiBM,OACtB9F,KAAK2B,SAAU,IAGvBG,KAAM,WAAA,GACE/B,GAAOC,KACP4E,EAAgB7E,EAAK6E,cACrB5D,EAAkBjB,EAAKiB,gBACvBnB,EAAUG,KAAKH,QACfyB,EAAqBtB,KAAKsB,mBAC1BoE,EAAe1F,KAAK2F,cACpBF,EAAY5F,EAAQW,MAAQX,EAAQW,KAAKsE,KACzC9E,MAAK2F,gBACLrE,EAAmBsE,KAAKF,GACxB3F,EAAKW,mBACLV,KAAKiG,eAIDrB,EAAcE,MAFlBjF,EAAQW,KACJiF,EACoBA,EAEA,GAGJ,GAEpBzF,KAAK2B,UACLX,EAAgBoC,YAAY,qBAC5BpD,KAAK2B,SAAU,GAEf9B,EAAQc,OAASrB,GACjBU,KAAKwF,iBAAiB1D,QAG9BxB,SAAU,SAAU4F,GAAV,GACFnG,GAAOC,KACPH,EAAUE,EAAKF,QACfS,EAAW4F,GAASrG,EAAQS,SAC5BU,EAAkBjB,EAAKiB,eACvBV,IAAYd,GACZwB,EAAgBoC,YAAY,YAAc7D,GAC1CyB,EAAgB4B,SAAS,YAAcpD,KAEvCwB,EAAgBoC,YAAY,YAAc5D,GAC1CwB,EAAgB4B,SAAS,YAAcrD,IAE3CS,KAAKoF,eAAiB9E,IAAaf,GAEvC2C,OAAQ,SAAUd,GAAV,GACArB,GAAOC,KACPH,EAAUG,KAAKH,QACf+E,EAAgB5E,KAAK4E,cACrBtD,EAAqBtB,KAAKsB,mBAC1BxB,EAAasB,EAAES,MACnB,OAAIsE,MAAKC,IAAIhF,EAAEiF,EAAEC,UAAYH,KAAKC,IAAIhF,EAAEmF,EAAED,WAAa7H,EAAM+H,iBAAiBpF,EAAEG,QAC5EzB,EAAW2G,SACX,IAEAzG,KAAK0G,YACLpF,EAAmBsE,KAAK7F,EAAK2C,eAEjCkC,EAActC,IAAI,aAAc,QAC5BzC,EAAQc,MAAQtB,GAChBW,KAAKwF,iBAAiBM,OAL1B,IAQJ3D,QAAS,SAAUf,GAAV,GACDvB,GAAUG,KAAKH,QACfc,EAAOd,EAAQc,IACfA,IAAQtB,EACRW,KAAK2G,MAAMvF,GAEXpB,KAAK4G,SAASxF,IAGtBgB,KAAM,SAAUhB,GAAV,GAOEyF,GANAP,EAAWlF,EAAEiF,EAAEC,SACfzG,EAAUG,KAAKH,QACf+E,EAAgB5E,KAAK4E,cACrBkC,EAAelC,EAAcE,QAC7BiC,EAAWD,EAAejH,EAAQiF,MAAQ,EAC1CkC,EAAoB,EAExBpC,GAActC,IAAI,aAAc,oBAE5BuE,EADA7G,KAAKoF,eACQkB,GAAYU,IAAsBV,EAAWU,GAAqBD,GAElET,EAAWU,IAAsBV,GAAYU,GAAqBD,GAE/EF,EACI7G,KAAK4B,QAAQ,QAAUC,OAAQ7B,QAC/BoB,EAAEW,iBACF/B,KAAK8B,QAEL9B,KAAK8F,OAGL9F,KAAK4B,QAAQ,QAAUC,OAAQ7B,QAC/BoB,EAAEW,iBACF/B,KAAK8F,QAEL9F,KAAK8B,QAIjB8E,SAAU,SAAUK,GAAV,GACFpH,GAAUG,KAAKH,QACfgG,EAAWhG,EAAQW,MAAQX,EAAQW,KAAKsE,OAAS9E,KAAK6F,UAAY,EAClEjB,EAAgB5E,KAAK4E,cACrBkC,EAAelC,EAAcE,QAE7BoC,EACcJ,GAAgB9G,KAAKoF,eAAiB6B,EAAcZ,EAAEc,OAASF,EAAcZ,EAAEc,OAF7FC,EAGcjB,KAAKkB,IAAIlB,KAAKmB,IAAIJ,EAAiBrB,GAAWhG,EAAQiF,MACxEmC,GAAc1F,MAAMQ,iBACpBkF,EAAc1F,MAAMgG,kBACpB3C,EAAcE,MAAMsC,IAExBT,MAAO,SAAUM,GAAV,GACCpH,GAAUG,KAAKH,QACfgG,EAAWhG,EAAQW,MAAQX,EAAQW,KAAKsE,OAAS9E,KAAK6F,UAAY,EAClEjB,EAAgB5E,KAAK4E,cACrBkC,EAAelC,EAAcE,QAE7BoC,EACcJ,GAAgB9G,KAAKoF,eAAiB6B,EAAcZ,EAAEc,OAASF,EAAcZ,EAAEc,OAF7FC,EAGcjB,KAAKkB,IAAIlB,KAAKmB,IAAIJ,EAAiBrB,GAAWhG,EAAQiF,MACxEmC,GAAc1F,MAAMQ,iBACpBkF,EAAc1F,MAAMgG,kBACpB3C,EAAcE,MAAMsC,IAExBnB,YAAa,SAAUuB,GACnB,GAAIC,EACJ,OAAID,IACAA,EAAK5E,SAAS,oBACd5C,KAAK4B,QAAQ,aACT4F,KAAMA,EACN3F,OAAQ7B,OAEZA,KAAKuF,mBAAqBiC,EAAKE,QAC/B,IAEJD,EAAoBzH,KAAKuF,mBACrBkC,GACAzH,KAAKsB,mBAAmBgC,KAAK,6BAA+BC,GAAGkE,GAAmB7E,SAAS,oBAF/F6E,IAKJhG,WAAY,SAAUL,GAAV,GAEJoG,GACAG,EAFA5H,EAAOC,IAGPzB,GAAE6C,EAAEG,MAAMC,QAAQ8B,KAAK,kBAAkBW,OAAS,EAClDuD,EAAOjJ,EAAE6C,EAAEG,MAAMC,QAAQ8B,KAAK,kBACvB/E,EAAE6C,EAAEG,MAAMC,QAAQoG,QAAQ,kBAAkB3D,OAAS,EAC5DuD,EAAOjJ,EAAE6C,EAAEG,MAAMC,QAAQoG,QAAQ,kBAC1BrJ,EAAE6C,EAAEG,MAAMC,QAAQwE,SAAS,oBAClCwB,EAAOjJ,EAAE6C,EAAEG,MAAMC,SAErBmG,EAAQ5H,EAAKuB,mBAAmBgC,KAAK,kBAAkBF,YAAY,oBACnErD,EAAKkG,YAAYuB,GACbzH,EAAKF,QAAQgD,cACb8E,EAAM7E,KAAK,iBAAiB,GAC5B0E,EAAK1E,KAAK,iBAAiB,GAC3B/C,EAAKsD,YAAYmE,KAGzBK,QAAS,WACL,GAAIhI,GAAUG,KAAKH,OACfA,GAAQc,MAAQtB,IACZW,KAAKoF,eACL7G,EAAEuC,SAASC,MAAMuB,IAAI,eAAgB,GAErC/D,EAAEuC,SAASC,MAAMuB,IAAI,gBAAiB,IAG9C1D,EAAOqB,GAAG4H,QAAQ3H,KAAKF,MACvBA,KAAKF,WAAW+H,UAChBpJ,EAAMoJ,QAAQ7H,KAAKJ,SACnBI,KAAKJ,QAAUI,KAAK4E,cAAgB5E,KAAK0C,cAAgB1C,KAAKgB,gBAAkBhB,KAAKsB,mBAAqBtB,KAAK2F,cAAgB,MAEnI9F,SACIiI,KAAM,SACNpG,cAAc,EACdpB,SAAUf,EACVoB,KAAM,UACNqB,aAAa,EACb8C,MAAO,IACPtE,MAAM,EACNqC,aAAa,EACbF,SAAU,IAEdoF,QACIjJ,EACAD,EACAK,IAGRT,GAAME,GAAGqJ,OAAOvI,IAClBf,OAAOD,MAAMwJ,QACRvJ,OAAOD,OACE,kBAAVH,SAAwBA,OAAO4J,IAAM5J,OAAS,SAAU6J,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.drawer.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.drawer', ['kendo.userevents'], f);\n}(function () {\n var __meta__ = {\n id: 'drawer',\n name: 'Drawer',\n category: 'web',\n description: 'The Kendo Drawer widget provides slide to reveal sidebar',\n depends: ['userevents']\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, SHOW = 'show', HIDE = 'hide', NS = '.kendoDrawer', FOCUSED = 'k-state-focused', keys = kendo.keys, ITEMCLICK = 'itemClick', TABINDEX = 'tabIndex', proxy = $.proxy, PUSH = 'push', OVERLAY = 'overlay', LEFT = 'left', RIGHT = 'right';\n var Drawer = kendo.ui.Widget.extend({\n init: function (element, options) {\n var that = this;\n var userEvents;\n Widget.fn.init.call(this, element, options);\n options = that.options;\n that._element(element);\n that._wrapper(element);\n that._navigatable();\n that.position();\n that._mode();\n if (options.mini) {\n that._miniMode();\n }\n that._initDrawerItems();\n if (options.mini && options.mode != PUSH) {\n that._setBodyOffset();\n }\n userEvents = this.userEvents = new kendo.UserEvents(options.mode != PUSH ? $(document.body) : this.drawerContainer, {\n fastTap: true,\n allowSelection: true\n });\n that.tap = function (e) {\n if ($.contains(that.drawerItemsWrapper[0], e.event.target)) {\n that._itemClick(e);\n }\n if (options.autoCollapse && that.visible && !that.trigger('hide', { sender: this })) {\n that.hide();\n e.preventDefault();\n }\n };\n if (this.options.swipeToOpen) {\n userEvents.bind('start', function (e) {\n that._start(e);\n });\n userEvents.bind('move', function (e) {\n that._update(e);\n });\n userEvents.bind('end', function (e) {\n that._end(e);\n });\n userEvents.bind('tap', that.tap);\n } else {\n userEvents.bind('press', that.tap);\n }\n if (options.minHeight && options.mode == PUSH) {\n that.drawerContainer.css('min-height', options.minHeight);\n }\n },\n _element: function () {\n var that = this;\n var element = that.element;\n var options = that.options;\n var contentElement = that.contentElement = element.children().first();\n that.drawerElement = $(options.template);\n contentElement.addClass('k-drawer-content');\n element.addClass('k-widget k-drawer');\n },\n _navigatable: function () {\n if (!this.options.navigatable) {\n return;\n }\n var that = this;\n var element = that.element;\n element.attr(TABINDEX, 0).attr('role', 'tablist').attr('aria-orientation', 'vertical');\n element.on('focus' + NS, proxy(that._focus, that)).on('focusout' + NS, proxy(that._blur, that)).on('keydown' + NS, that, proxy(that._keyDown, that));\n },\n _blur: function () {\n var that = this;\n if (that._current) {\n that._current.removeClass(FOCUSED);\n }\n },\n _focus: function () {\n var that = this;\n that._setCurrent(that._current ? that._current : that.drawerItemsWrapper.find('[data-role=\\'drawer-item\\']').eq(0));\n },\n _setCurrent: function (current) {\n var that = this;\n var id = kendo.guid();\n var next = $(current);\n if (that._current) {\n $(that._current).removeClass(FOCUSED).removeAttr('id');\n that.element.removeAttr('aria-activedescendant');\n }\n next.attr('id', id).addClass(FOCUSED);\n that.element.attr('aria-activedescendant', id);\n that._current = next;\n },\n _keyDown: function (e) {\n var that = this;\n var handled = false;\n var current = that._current;\n var next;\n if (e.keyCode == keys.UP) {\n handled = true;\n next = current.prevAll('[data-role=\\'drawer-item\\']:first');\n if (next.length) {\n that._setCurrent(next);\n } else {\n that._setCurrent(current.parent().find('[data-role=\\'drawer-item\\']:last'));\n }\n }\n if (e.keyCode == keys.DOWN) {\n handled = true;\n next = current.nextAll('[data-role=\\'drawer-item\\']:first');\n if (next.length) {\n that._setCurrent(next);\n } else {\n that._setCurrent(current.parent().find('[data-role=\\'drawer-item\\']:first'));\n }\n }\n if (e.keyCode == keys.HOME) {\n handled = true;\n that._setCurrent(that.drawerItemsWrapper.find('[data-role=\\'drawer-item\\']').eq(0));\n }\n if (e.keyCode == keys.END) {\n handled = true;\n that._setCurrent(that.drawerItemsWrapper.find('[data-role=\\'drawer-item\\']:last'));\n }\n if (e.keyCode == keys.SPACEBAR || e.keyCode == keys.ENTER) {\n handled = true;\n that.tap({\n event: { target: current[0] },\n preventDefault: $.noop\n });\n }\n if (e.keyCode == keys.ESC) {\n handled = true;\n that.hide();\n }\n if (handled) {\n e.preventDefault();\n }\n },\n _wrapper: function () {\n var options = this.options;\n var drawerElement = this.drawerElement;\n var element = this.element;\n var contentElement = this.contentElement;\n var drawerItemsWrapper = this.drawerItemsWrapper = drawerElement.wrapAll('
').parent();\n var drawerWrapper = this.drawerWrapper = drawerItemsWrapper.wrap('
').parent();\n var drawerContainer = this.drawerContainer = element.wrap('
').parent();\n if (options.mini) {\n if (options.mini.width) {\n drawerWrapper.width(options.mini.width);\n }\n } else {\n drawerWrapper.width(0);\n }\n if (options.mode === PUSH) {\n drawerContainer.append(contentElement);\n } else if (options.mode === OVERLAY) {\n drawerContainer.after(contentElement);\n $(document.body).prepend(drawerContainer);\n }\n element.append(drawerWrapper);\n },\n _setBodyOffset: function () {\n var overlayMiniOffset = this.element.outerWidth();\n if (this.leftPositioned) {\n $(document.body).css('padding-left', overlayMiniOffset);\n } else {\n $(document.body).css('padding-right', overlayMiniOffset);\n }\n },\n _initDrawerItems: function () {\n var drawerItemsWrapper = this.drawerItemsWrapper;\n var drawerItems = drawerItemsWrapper.find('[data-role=\\'drawer-item\\']');\n var separatorItems = drawerItemsWrapper.find('[data-role=\\'drawer-separator\\']');\n drawerItems.addClass('k-drawer-item');\n separatorItems.addClass('k-drawer-item k-drawer-separator');\n if (this._selectedItemIndex >= 0) {\n drawerItems.removeClass('k-state-selected');\n drawerItems.eq(this._selectedItemIndex).addClass('k-state-selected');\n }\n if (this.options.navigatable) {\n drawerItems.attr('aria-selected', false);\n }\n },\n _mode: function () {\n var options = this.options;\n var drawerContainer = this.drawerContainer;\n var overlayContainer;\n if (options.mode == PUSH) {\n drawerContainer.addClass('k-drawer-' + PUSH);\n } else {\n drawerContainer.addClass('k-drawer-' + OVERLAY);\n overlayContainer = this.overlayContainer = $('
');\n overlayContainer.hide();\n drawerContainer.prepend(overlayContainer);\n }\n },\n _miniMode: function () {\n var options = this.options;\n var drawerContainer = this.drawerContainer;\n var miniWidth = options.mini.width;\n var miniTemplate = this._miniTemplate = options.mini.template && $(options.mini.template);\n var drawerItemsWrapper = this.drawerItemsWrapper;\n var drawerWrapper = this.drawerWrapper;\n drawerContainer.addClass('k-drawer-mini');\n if (miniTemplate) {\n drawerItemsWrapper.html(miniTemplate);\n }\n if (miniWidth) {\n drawerWrapper.width(miniWidth);\n }\n this.minWidth = options.mini.width || this.drawerWrapper.width();\n },\n show: function () {\n var drawerWrapper = this.drawerWrapper;\n var drawerContainer = this.drawerContainer;\n var options = this.options;\n var isExpanded = drawerContainer.hasClass('k-drawer-expanded');\n var miniTemplate = this._miniTemplate;\n var drawerElement = this.drawerElement;\n var drawerItemsWrapper = this.drawerItemsWrapper;\n if (!isExpanded) {\n drawerContainer.addClass('k-drawer-expanded');\n this.visible = true;\n }\n if (miniTemplate) {\n drawerItemsWrapper.html(drawerElement);\n this._initDrawerItems();\n this._selectItem();\n }\n drawerWrapper.width(options.width);\n if (options.mode === OVERLAY) {\n this.overlayContainer.show();\n this.visible = true;\n }\n },\n hide: function () {\n var that = this;\n var drawerWrapper = that.drawerWrapper;\n var drawerContainer = that.drawerContainer;\n var options = this.options;\n var drawerItemsWrapper = this.drawerItemsWrapper;\n var miniTemplate = this._miniTemplate;\n var miniWidth = options.mini && options.mini.width;\n if (this._miniTemplate) {\n drawerItemsWrapper.html(miniTemplate);\n that._initDrawerItems();\n this._selectItem();\n }\n if (options.mini) {\n if (miniWidth) {\n drawerWrapper.width(miniWidth);\n } else {\n drawerWrapper.width('');\n }\n } else {\n drawerWrapper.width(0);\n }\n if (this.visible) {\n drawerContainer.removeClass('k-drawer-expanded');\n this.visible = false;\n }\n if (options.mode === OVERLAY) {\n this.overlayContainer.hide();\n }\n },\n position: function (value) {\n var that = this;\n var options = that.options;\n var position = value || options.position;\n var drawerContainer = that.drawerContainer;\n if (position == RIGHT) {\n drawerContainer.removeClass('k-drawer-' + LEFT);\n drawerContainer.addClass('k-drawer-' + RIGHT);\n } else {\n drawerContainer.removeClass('k-drawer-' + RIGHT);\n drawerContainer.addClass('k-drawer-' + LEFT);\n }\n this.leftPositioned = position === LEFT;\n },\n _start: function (e) {\n var that = this;\n var options = this.options;\n var drawerWrapper = this.drawerWrapper;\n var drawerItemsWrapper = this.drawerItemsWrapper;\n var userEvents = e.sender;\n if (Math.abs(e.x.velocity) < Math.abs(e.y.velocity) || kendo.triggeredByInput(e.event)) {\n userEvents.cancel();\n return;\n }\n if (this.drawerMini) {\n drawerItemsWrapper.html(that.drawerElement);\n }\n drawerWrapper.css('transition', 'none');\n if (options.mode != PUSH) {\n this.overlayContainer.show();\n }\n },\n _update: function (e) {\n var options = this.options;\n var mode = options.mode;\n if (mode == PUSH) {\n this._push(e);\n } else {\n this._overlay(e);\n }\n },\n _end: function (e) {\n var velocity = e.x.velocity;\n var options = this.options;\n var drawerWrapper = this.drawerWrapper;\n var elementWidth = drawerWrapper.width();\n var pastHalf = elementWidth > options.width / 2;\n var velocityThreshold = 0.8;\n var shouldShow;\n drawerWrapper.css('transition', 'all .3s ease-out');\n if (this.leftPositioned) {\n shouldShow = velocity > -velocityThreshold && (velocity > velocityThreshold || pastHalf);\n } else {\n shouldShow = velocity < velocityThreshold && (velocity < -velocityThreshold || pastHalf);\n }\n if (shouldShow) {\n if (this.trigger('show', { sender: this })) {\n e.preventDefault();\n this.hide();\n } else {\n this.show();\n }\n } else {\n if (this.trigger('hide', { sender: this })) {\n e.preventDefault();\n this.show();\n } else {\n this.hide();\n }\n }\n },\n _overlay: function (moveEventArgs) {\n var options = this.options;\n var minWidth = options.mini && options.mini.width || this.minWidth || 0;\n var drawerWrapper = this.drawerWrapper;\n var elementWidth = drawerWrapper.width();\n var limitedPosition;\n var updatedPosition;\n updatedPosition = elementWidth + (this.leftPositioned ? moveEventArgs.x.delta : -moveEventArgs.x.delta);\n limitedPosition = Math.min(Math.max(updatedPosition, minWidth), options.width);\n moveEventArgs.event.preventDefault();\n moveEventArgs.event.stopPropagation();\n drawerWrapper.width(limitedPosition);\n },\n _push: function (moveEventArgs) {\n var options = this.options;\n var minWidth = options.mini && options.mini.width || this.minWidth || 0;\n var drawerWrapper = this.drawerWrapper;\n var elementWidth = drawerWrapper.width();\n var limitedPosition;\n var updatedPosition;\n updatedPosition = elementWidth + (this.leftPositioned ? moveEventArgs.x.delta : -moveEventArgs.x.delta);\n limitedPosition = Math.min(Math.max(updatedPosition, minWidth), options.width);\n moveEventArgs.event.preventDefault();\n moveEventArgs.event.stopPropagation();\n drawerWrapper.width(limitedPosition);\n },\n _selectItem: function (item) {\n var selectedItemIndex;\n if (item) {\n item.addClass('k-state-selected');\n this.trigger('itemClick', {\n item: item,\n sender: this\n });\n this._selectedItemIndex = item.index();\n return;\n }\n selectedItemIndex = this._selectedItemIndex;\n if (selectedItemIndex) {\n this.drawerItemsWrapper.find('[data-role=\\'drawer-item\\']').eq(selectedItemIndex).addClass('k-state-selected');\n }\n },\n _itemClick: function (e) {\n var that = this;\n var item;\n var items;\n if ($(e.event.target).find('.k-drawer-item').length > 0) {\n item = $(e.event.target).find('.k-drawer-item');\n } else if ($(e.event.target).closest('.k-drawer-item').length > 0) {\n item = $(e.event.target).closest('.k-drawer-item');\n } else if ($(e.event.target).hasClass('.k-drawer-item')) {\n item = $(e.event.target);\n }\n items = that.drawerItemsWrapper.find('.k-drawer-item').removeClass('k-state-selected');\n that._selectItem(item);\n if (that.options.navigatable) {\n items.attr('aria-selected', false);\n item.attr('aria-selected', true);\n that._setCurrent(item);\n }\n },\n destroy: function () {\n var options = this.options;\n if (options.mode != PUSH) {\n if (this.leftPositioned) {\n $(document.body).css('padding-left', 0);\n } else {\n $(document.body).css('padding-right', 0);\n }\n }\n Widget.fn.destroy.call(this);\n this.userEvents.destroy();\n kendo.destroy(this.element);\n this.element = this.drawerWrapper = this.drawerElement = this.drawerContainer = this.drawerItemsWrapper = this._miniTemplate = null;\n },\n options: {\n name: 'Drawer',\n autoCollapse: true,\n position: LEFT,\n mode: 'overlay',\n swipeToOpen: true,\n width: 280,\n mini: false,\n navigatable: false,\n template: ''\n },\n events: [\n HIDE,\n SHOW,\n ITEMCLICK\n ]\n });\n kendo.ui.plugin(Drawer);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}