{"version":3,"file":"kendo.drawer.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendodrawer","js","this","$","undefined$1","kendo","window","Widget","ui","NS","FOCUSED","keys","PUSH","OVERLAY","LEFT","Drawer","extend","init","element","options","userEvents","that","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","wrapAll","parent","drawerElement","template","addClass","find","first","attr","navigatable","on","_focus","_blur","_keyDown","_current","removeClass","_setCurrent","eq","current","id","guid","next","removeAttr","handled","keyCode","UP","prevAll","length","last","DOWN","nextAll","HOME","END","SPACEBAR","ENTER","noop","ESC","drawerWrapper","wrap","width","append","after","prepend","overlayMiniOffset","outerWidth","leftPositioned","drawerItems","separatorItems","each","i","item","setAttribute","textContent","trim","_selectedItemIndex","overlayContainer","miniWidth","miniTemplate","_miniTemplate","html","minWidth","show","isExpanded","hasClass","_selectItem","value","Math","abs","x","velocity","y","triggeredByInput","cancel","drawerMini","_push","_overlay","pastHalf","velocityThreshold","moveEventArgs","limitedPosition","updatedPosition","delta","min","max","stopPropagation","selectedItemIndex","index","closest","destroy","name","events","plugin","jQuery"],"sources":["kendo.drawer.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.userevents.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.userevents'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendodrawer = global.kendodrawer || {}, global.kendodrawer.js = factory()));\n})(this, (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\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n Widget = ui.Widget,\n SHOW = \"show\",\n HIDE = \"hide\",\n NS = \".kendoDrawer\",\n FOCUSED = \"k-focus\",\n keys = kendo.keys,\n ITEMCLICK = \"itemClick\",\n TABINDEX = \"tabIndex\",\n PUSH = \"push\",\n OVERLAY = \"overlay\",\n LEFT = \"left\",\n START = \"start\",\n END = \"end\",\n RIGHT = \"right\";\n\n var Drawer = kendo.ui.Widget.extend({\n init: function(element, options) {\n var that = this;\n var userEvents;\n\n Widget.fn.init.call(this, element, options);\n\n options = that.options;\n\n that._element(element);\n\n that._wrapper(element);\n\n that._navigatable();\n\n that.position();\n\n that._mode();\n\n if (options.mini) {\n that._miniMode();\n }\n\n that._initDrawerItems();\n\n if (options.mini && options.mode != PUSH) {\n that._setBodyOffset();\n }\n\n userEvents = this.userEvents = new kendo.UserEvents(options.mode != PUSH ? $(document.body) : this.drawerContainer, { fastTap: true, 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\n if (this.options.swipeToOpen) {\n userEvents.bind(\"start\", function(e) { that._start(e); });\n userEvents.bind(\"move\", function(e) { that._update(e); });\n userEvents.bind(\"end\", function(e) { that._end(e); });\n userEvents.bind(\"tap\", that.tap);\n } else {\n userEvents.bind(\"press\", that.tap);\n }\n\n if (options.minHeight && options.mode == PUSH) {\n that.drawerContainer.css(\"min-height\", options.minHeight);\n }\n },\n\n _element: function() {\n var that = this;\n\n var element = that.element;\n var options = that.options;\n that.contentElement = element.children()\n .wrapAll(\"
\")\n .parent();\n that.drawerElement = $(options.template);\n\n element.addClass(\"k-widget k-drawer\");\n },\n\n _navigatable: function() {\n var that = this;\n var element = that.element;\n var drawerItems = element.find(\"[data-role='drawer-item']\");\n\n drawerItems.first().parent()\n .attr(\"role\", \"menu\")\n .attr(\"aria-orientation\", \"vertical\");\n\n if (!this.options.navigatable) {\n return;\n }\n\n element\n .attr(TABINDEX, 0)\n .on(\"focus\" + NS, that._focus.bind(that))\n .on(\"focusout\" + NS, that._blur.bind(that))\n .on(\"keydown\" + NS, that, that._keyDown.bind(that));\n },\n\n _blur: function() {\n var that = this;\n\n if (that._current) {\n that._current.removeClass(FOCUSED);\n }\n },\n\n _focus: function() {\n var that = this;\n\n that._setCurrent(that._current ? that._current : that.drawerItemsWrapper.find(\"[data-role='drawer-item']\").eq(0));\n },\n\n _setCurrent: function(current) {\n var that = this;\n var id = kendo.guid();\n var next = $(current);\n\n if (that._current) {\n $(that._current)\n .removeClass(FOCUSED)\n .removeAttr(\"id\");\n\n that.element.removeAttr(\"aria-activedescendant\");\n }\n\n next\n .attr(\"id\", id)\n .addClass(FOCUSED);\n\n that.element.attr(\"aria-activedescendant\", id);\n\n that._current = next;\n },\n\n _keyDown: function(e) {\n var that = this;\n var handled = false;\n var current = that._current;\n var next;\n\n if (e.keyCode == keys.UP) {\n handled = true;\n next = current.prevAll(\"[data-role='drawer-item']\").first();\n\n if (next.length) {\n that._setCurrent(next);\n } else {\n that._setCurrent(current.parent().find(\"[data-role='drawer-item']\").last());\n }\n\n }\n\n if (e.keyCode == keys.DOWN) {\n handled = true;\n next = current.nextAll(\"[data-role='drawer-item']\").first();\n\n if (next.length) {\n that._setCurrent(next);\n } else {\n that._setCurrent(current.parent().find(\"[data-role='drawer-item']\").first());\n }\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\n if (e.keyCode == keys.END) {\n handled = true;\n that._setCurrent(that.drawerItemsWrapper.find(\"[data-role='drawer-item']\").last());\n }\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\n if (e.keyCode == keys.ESC) {\n handled = true;\n that.hide();\n }\n\n if (handled) {\n //prevent scrolling while pressing the keys\n e.preventDefault();\n }\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\n if (options.mini) {\n if (options.mini.width) {\n drawerWrapper.width(options.mini.width);\n }\n } else {\n drawerWrapper.width(0);\n }\n\n\n if (options.mode === PUSH) {\n drawerContainer.append(contentElement);\n }\n else if (options.mode === OVERLAY) {\n drawerContainer.after(contentElement);\n $(document.body).prepend(drawerContainer);\n }\n\n element.append( drawerWrapper );\n },\n\n _setBodyOffset: function() {\n var overlayMiniOffset = this.element.outerWidth();\n\n if (this.leftPositioned) {\n $(document.body).css(\"padding-left\", overlayMiniOffset);\n }\n else {\n $(document.body).css(\"padding-right\", overlayMiniOffset);\n }\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\n drawerItems.addClass(\"k-drawer-item\").attr(\"role\", \"menuitem\");\n separatorItems.addClass(\"k-drawer-item k-drawer-separator\").attr(\"role\", \"separator\");\n\n drawerItems.each(function (i, item) {\n item.setAttribute(\"aria-label\", item.textContent.trim());\n });\n\n if (this._selectedItemIndex >= 0) {\n drawerItems.removeClass(\"k-selected\");\n drawerItems.eq(this._selectedItemIndex).addClass(\"k-selected\");\n }\n },\n\n _mode: function() {\n var options = this.options;\n var drawerContainer = this.drawerContainer;\n var overlayContainer;\n\n if (options.mode == PUSH) {\n drawerContainer.addClass('k-drawer-' + PUSH);\n }\n else {\n drawerContainer.addClass('k-drawer-' + OVERLAY);\n overlayContainer = this.overlayContainer = $('');\n overlayContainer.hide();\n drawerContainer.prepend(overlayContainer);\n }\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\n drawerContainer.addClass(\"k-drawer-mini\");\n\n if (miniTemplate) {\n drawerItemsWrapper.html(miniTemplate);\n }\n\n if (miniWidth) {\n drawerWrapper.width(miniWidth);\n }\n\n this.minWidth = options.mini.width || this.drawerWrapper.width();\n },\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\n if (!isExpanded) {\n drawerContainer.addClass('k-drawer-expanded');\n this.visible = true;\n }\n\n if (miniTemplate) {\n drawerItemsWrapper.html(drawerElement);\n this._initDrawerItems();\n this._selectItem();\n }\n\n drawerWrapper.width(options.width);\n\n if (options.mini) {\n drawerContainer.removeClass(\"k-drawer-mini\");\n }\n\n if (options.mode === OVERLAY) {\n this.overlayContainer.show();\n this.visible = true;\n }\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\n if (this._miniTemplate) {\n drawerItemsWrapper.html(miniTemplate);\n that._initDrawerItems();\n this._selectItem();\n }\n\n if (options.mini) {\n drawerContainer.addClass(\"k-drawer-mini\");\n if (miniWidth) {\n drawerWrapper.width(miniWidth);\n } else {\n drawerWrapper.width(\"\");\n }\n } else {\n drawerWrapper.width(0);\n }\n\n if (this.visible) {\n drawerContainer.removeClass('k-drawer-expanded');\n this.visible = false;\n }\n\n if (options.mode === OVERLAY) {\n this.overlayContainer.hide();\n }\n },\n\n position: function(value) {\n var that = this;\n var options = that.options;\n var position = value || options.position;\n\n if (position == RIGHT) {\n that.element.removeClass('k-drawer-' + START);\n that.element.addClass('k-drawer-' + END);\n }\n else {\n that.element.removeClass('k-drawer-' + END);\n that.element.addClass('k-drawer-' + START);\n }\n\n this.leftPositioned = position === LEFT;\n },\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\n\n // ignore non-horizontal swipes\n if (Math.abs(e.x.velocity) < Math.abs(e.y.velocity) || kendo.triggeredByInput(e.event)) {\n userEvents.cancel();\n return;\n }\n\n\n if (this.drawerMini) {\n drawerItemsWrapper.html(that.drawerElement);\n }\n\n drawerWrapper.css(\"transition\", \"none\");\n\n if (options.mode != PUSH) {\n this.overlayContainer.show();\n }\n },\n\n _update: function(e) {\n var options = this.options;\n var mode = options.mode;\n\n if (mode == PUSH) {\n this._push(e);\n }\n else {\n this._overlay(e);\n }\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\n drawerWrapper.css(\"transition\", \"all .3s ease-out\");\n\n if (this.leftPositioned) {\n shouldShow = velocity > -velocityThreshold && (velocity > velocityThreshold || pastHalf);\n }\n else {\n shouldShow = velocity < velocityThreshold && (velocity < -velocityThreshold || pastHalf);\n }\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\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\n updatedPosition = elementWidth + (this.leftPositioned ? moveEventArgs.x.delta : -moveEventArgs.x.delta);\n\n limitedPosition = Math.min(Math.max(updatedPosition, minWidth), options.width);\n\n moveEventArgs.event.preventDefault();\n moveEventArgs.event.stopPropagation();\n\n drawerWrapper.width(limitedPosition);\n },\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\n updatedPosition = elementWidth + (this.leftPositioned ? moveEventArgs.x.delta : -moveEventArgs.x.delta);\n\n limitedPosition = Math.min(Math.max(updatedPosition, minWidth), options.width);\n\n moveEventArgs.event.preventDefault();\n moveEventArgs.event.stopPropagation();\n\n drawerWrapper.width(limitedPosition);\n },\n\n _selectItem: function(item) {\n var selectedItemIndex;\n\n if (item) {\n item.addClass(\"k-selected\");\n this.trigger(\"itemClick\", { item: item, sender: this });\n this._selectedItemIndex = item.index();\n return;\n }\n\n selectedItemIndex = this._selectedItemIndex;\n\n if (selectedItemIndex) {\n this.drawerItemsWrapper.find(\"[data-role='drawer-item']\").eq(selectedItemIndex).addClass(\"k-selected\");\n }\n },\n\n _itemClick: function(e) {\n var that = this;\n var item;\n var items;\n\n if ($(e.event.target).find(\".k-drawer-item\").length > 0) {\n item = $(e.event.target).find(\".k-drawer-item\");\n }\n else if ($(e.event.target).closest(\".k-drawer-item\").length > 0) {\n item = $(e.event.target).closest(\".k-drawer-item\");\n }\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-selected\");\n that._selectItem(item);\n\n if (that.options.navigatable) {\n that._setCurrent(item);\n }\n },\n\n destroy: function() {\n var options = this.options;\n\n if (options.mode != PUSH) {\n if (this.leftPositioned) {\n $(document.body).css(\"padding-left\", 0);\n }\n else {\n $(document.body).css(\"padding-right\", 0);\n }\n }\n\n Widget.fn.destroy.call(this);\n\n this.userEvents.destroy();\n\n kendo.destroy(this.element);\n this.element = this.drawerWrapper = this.drawerElement = this.drawerContainer = this.drawerItemsWrapper = this._miniTemplate = null;\n },\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\n events: [\n HIDE,\n SHOW,\n ITEMCLICK\n ]\n\n });\n kendo.ui.plugin(Drawer);\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}