{"version":3,"file":"component_sidebar.bundle.js","mappings":"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","sources":["webpack:///./Web.Base/Content/Source/Js/vendor/sidebar.js"],"sourcesContent":["/*\n * This file is part of the Sonatra package.\n *\n * (c) François Pluchino \n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*global define*/\n/*global jQuery*/\n/*global window*/\n/*global navigator*/\n/*global document*/\n/*global CSSMatrix*/\n/*global WebKitCSSMatrix*/\n/*global MSCSSMatrix*/\n/*global Hammer*/\n/*global Sidebar*/\n\n/**\n * @param {jQuery} $\n */\n(function (factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function ($) {\n 'use strict';\n\n let nativeScrollWidth = null;\n\n /**\n * Get the width of native scrollbar.\n *\n * @returns {Number}\n */\n function getNativeScrollWidth() {\n const sbDiv = document.createElement(\"div\");\n let size;\n\n sbDiv.style.width = '100px';\n sbDiv.style.height = '100px';\n sbDiv.style.overflow = 'scroll';\n sbDiv.style.position = 'absolute';\n sbDiv.style.top = '-9999px';\n document.body.appendChild(sbDiv);\n size = sbDiv.offsetWidth - sbDiv.clientWidth;\n document.body.removeChild(sbDiv);\n\n return size;\n }\n\n /**\n * Check if is a mobile device.\n *\n * @returns {boolean}\n *\n * @private\n */\n function mobileCheck() {\n if (null === nativeScrollWidth) {\n nativeScrollWidth = getNativeScrollWidth();\n }\n\n return 0 === nativeScrollWidth;\n }\n\n /**\n * Add browser prefix on event name for jquery.\n *\n * @param {String} name The event name\n * @param {String} [namespace] The namespace of jquery event\n *\n * @returns {String}\n *\n * @private\n */\n function prefixedEvent(name, namespace) {\n const pfx = ['webkit', 'moz', 'ms', 'o', ''];\n let names = '';\n\n for (let p = 0; p < pfx.length; p++) {\n if (!pfx[p]) {\n name = name.toLowerCase();\n }\n\n names += ' ' + pfx[p] + name;\n\n if (undefined !== namespace) {\n names += '.' + namespace;\n }\n }\n\n return names;\n }\n\n /**\n * Trigger the event.\n *\n * @param {String} type The event type\n * @param {Sidebar} self The sidebar instance\n * @param {*} [data] The data\n *\n * @private\n */\n function triggerEvent(type, self, data) {\n $.event.trigger({\n type: `sidebar:${type}.st.sidebar`,\n sidebar: self,\n eventData: data,\n time: new Date()\n });\n }\n\n /**\n * Changes the css transition configuration on target element.\n *\n * @param {jQuery} $target The element to edited\n * @param {string} transition The css transition configuration of target\n *\n * @private\n */\n function changeTransition($target, transition) {\n $target.css('-webkit-transition', transition);\n $target.css('transition', transition);\n }\n\n /**\n * Changes the css transform configuration on target element.\n *\n * @param {jQuery} $target The element to edited\n * @param {string} transform The css transform configuration of target\n *\n * @private\n */\n function changeTransform($target, transform) {\n $target.css('-webkit-transform', transform);\n $target.css('transform', transform);\n }\n\n /**\n * Translate the jquery element with Translate 3D CSS.\n *\n * @param {jQuery } $target The jquery element\n * @param {Number} delta The delta of translate\n */\n function changeTranslate($target, delta) {\n changeTransform($target, `translate3d(${delta}px, 0px, 0px)`);\n }\n\n /**\n * Get the horizontal position of target element.\n *\n * @param {jQuery} $target The jquery target\n *\n * @return {number}\n *\n * @private\n */\n function getTargetPosition($target) {\n const transformCss = $target.css('transform');\n let transform = {e: 0, f: 0},\n reMatrix,\n match;\n\n if (transformCss) {\n if ('function' === typeof CSSMatrix) {\n transform = new CSSMatrix(transformCss);\n\n } else if ('function' === typeof WebKitCSSMatrix) {\n transform = new WebKitCSSMatrix(transformCss);\n\n } else if ('function' === typeof MSCSSMatrix) {\n transform = new MSCSSMatrix(transformCss);\n\n } else {\n reMatrix = /matrix\\(\\s*-?\\d+(?:\\.\\d+)?\\s*,\\s*-?\\d+(?:\\.\\d+)?\\s*,\\s*-?\\d+(?:\\.\\d+)?\\s*,\\s*-?\\d+(?:\\.\\d+)?\\s*,\\s*(-?\\d+(?:\\.\\d+)?)\\s*,\\s*(-?\\d+(?:\\.\\d+)?)\\s*\\)/;\n match = transformCss.match(reMatrix);\n\n if (match) {\n transform.e = parseInt(match[1], 10);\n transform.f = parseInt(match[2], 10);\n }\n }\n }\n\n return transform.e;\n }\n\n /**\n * Binding actions of keyboard.\n *\n * @param {jQuery.Event|Event} event\n *\n * @private\n */\n function keyboardAction(event) {\n if (!(event instanceof jQuery.Event)) {\n return;\n }\n\n if (event.data.options.disabledKeyboard) {\n return;\n }\n\n const self = event.data,\n kbe = self.options.keyboardEvent;\n\n if (event.shiftKey === kbe.shiftKey &&\n event.ctrlKey === kbe.ctrlKey &&\n event.altKey === kbe.altKey &&\n event.keyCode === kbe.keyCode) {\n self.toggle(event);\n }\n }\n\n /**\n * Checks if the window width is wider than the minimum width defined in\n * options.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @returns {boolean}\n *\n * @private\n */\n function isOverMinWidth(self) {\n const $window = $(window);\n let windowWidth = $window.innerWidth();\n\n if (self.$body.height() > $window.innerHeight()) {\n windowWidth += self.nativeScrollWidth;\n }\n\n return windowWidth >= self.options.minLockWidth;\n }\n\n /**\n * Close the sidebar since external action.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function closeExternal(event) {\n const self = event.data;\n\n event.stopPropagation();\n event.preventDefault();\n\n if (isOverMinWidth(self)) {\n self.close();\n\n } else {\n self.forceClose();\n }\n }\n\n /**\n * Clean the close delay.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @private\n */\n function cleanCloseDelay(self) {\n if (null !== self.closeDelay) {\n window.clearTimeout(self.closeDelay);\n self.closeDelay = null;\n }\n }\n\n /**\n * Close the sidebar when an item is selected.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function closeOnSelect(event) {\n const self = event.data;\n\n if (self.options.closeOnSelectDelay > 0) {\n self.closeDelay = window.setTimeout(function () {\n self.close();\n }, self.options.closeOnSelectDelay * 1000);\n } else {\n self.close();\n }\n }\n\n /**\n * Lock the scroll of body.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @private\n */\n function lockBodyScroll(self) {\n const bodyPad = parseInt((self.$body.css('padding-right') || 0), 10),\n hasScrollbar = self.$body.get(0).scrollHeight > document.documentElement.clientHeight &&\n 'hidden' !== self.$body.css('overflow-y');\n\n if (hasScrollbar) {\n self.originalBodyPad = document.body.style.paddingRight || '';\n self.originalBodyOverflowY = document.body.style.overflowY || '';\n\n self.$body.css({\n 'padding-right': (bodyPad + self.nativeScrollWidth) + 'px',\n 'overflow-y': 'hidden'\n });\n\n triggerEvent('lock-body-scroll', self, self.nativeScrollWidth);\n }\n }\n\n /**\n * Unlock the scroll of body.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @private\n */\n function unlockBodyScroll(self) {\n if (null !== self.originalBodyPad || null !== self.originalBodyOverflowY) {\n self.$body.css({\n 'padding-right': self.originalBodyPad,\n 'overflow-y': self.originalBodyOverflowY\n });\n\n self.originalBodyPad = null;\n self.originalBodyOverflowY = null;\n triggerEvent('unlock-body-scroll', self, self.nativeScrollWidth);\n }\n }\n\n /**\n * Reset the scrolling locker.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function resetScrolling(event) {\n const self = event.data;\n\n self.resetScrolling = window.setTimeout(function () {\n self.resetScrolling = null;\n }, self.options.resetScrollDelay * 1000);\n }\n\n /**\n * Close the sidebar or reopen the locked sidebar on window resize event.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function onResizeWindow(event) {\n const self = event.data,\n isOver = isOverMinWidth(self);\n let isForceOpened = false;\n\n changeTransition(self.$element, 'none');\n\n if (isOver && self.isLocked()) {\n self.forceOpen();\n unlockBodyScroll(self);\n isForceOpened = true;\n }\n\n if (undefined === self.resizeDelay) {\n self.resizeDelay = window.setTimeout(function () {\n delete self.resizeDelay;\n changeTransition(self.$element, '');\n\n if (!isForceOpened && self.isLocked()) {\n if (!isOver && self.isOpen()) {\n lockBodyScroll(self);\n } else {\n unlockBodyScroll(self);\n }\n }\n }, 500);\n }\n }\n\n /**\n * Trigger the opened or closed event when the transition is finished.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function onEndTransition(event) {\n const self = event.data,\n action = event.data.isOpen() ? 'opened' : 'closed';\n\n if (event.target !== self.$element.get(0)) {\n return;\n }\n\n if (event.data.isOpen()) {\n addClassToggles(self, self.options.classOpen + '-toggle');\n\n if ($.fn.scroller && self.options.useScroller) {\n self.$element.scroller('resizeScrollbar');\n }\n\n $('a:visible:first', self.$toggles.get(0).parent()).focus();\n } else {\n removeClassToggles(self, self.options.classOpen + '-toggle');\n\n if ($.fn.scroller && self.options.useScroller) {\n self.$element.scroller('resizeScrollbar');\n }\n }\n\n if (self.isLocked()) {\n if (!isOverMinWidth(self) && self.isOpen()) {\n lockBodyScroll(self);\n } else {\n unlockBodyScroll(self);\n }\n }\n\n triggerEvent(action, self);\n }\n\n /**\n * Action of \"on drag\" hammer event.\n *\n * @param {Sidebar} self The sidebar instance\n * @param {object} event The hammer event\n *\n * @typedef {Number} event.deltaX The hammer delta X\n *\n * @private\n */\n function onDrag(self, event) {\n let delta;\n\n if (null !== self.resetScrolling || event.target === self.$overlay.get(0)) {\n return;\n }\n\n // drag start\n if (null === self.dragDirection) {\n if (Math.abs(event.deltaX) <= Math.abs(event.deltaY)) {\n return;\n }\n\n self.mouseDragEnd = null;\n self.dragDirection = event.direction;\n self.$element.css('user-select', 'none');\n cleanCloseDelay(self);\n }\n\n // drag\n if (-1 === $.inArray(self.dragDirection, [Hammer.DIRECTION_LEFT, Hammer.DIRECTION_RIGHT]) ||\n (self.options.locked && isOverMinWidth(self))) {\n return;\n }\n\n event.preventDefault();\n\n if (null === self.dragStartPosition) {\n self.dragStartPosition = getTargetPosition(self.$element);\n }\n\n delta = Math.round(self.dragStartPosition + event.deltaX);\n\n if ((Sidebar.POSITION_LEFT === self.getPosition() && delta > 0) ||\n (Sidebar.POSITION_RIGHT === self.getPosition() && delta < 0)) {\n delta = 0;\n }\n\n self.$element.addClass(self.options.classOnDragging);\n changeTransition(self.$element, 'none');\n changeTranslate(self.$element, delta);\n }\n\n /**\n * Action of \"on drag end\" hammer event.\n *\n * @param {Sidebar} self The sidebar instance\n * @param {object} event The hammer event\n *\n *\n * @typedef {Number} event.deltaX The hammer delta X\n * @typedef {Number} event.direction The hammer direction const\n *\n * @private\n */\n function onDragEnd(self, event) {\n let closeGesture = Hammer.DIRECTION_LEFT,\n openGesture = Hammer.DIRECTION_RIGHT;\n\n if (null !== self.resetScrolling || event.target === self.$overlay.get(0)) {\n return;\n }\n\n self.dragStartPosition = null;\n event.preventDefault();\n\n if (self.fixDragClick && -1 !== $.inArray(event.srcEvent.type, ['pointerup', 'mouseup'])) {\n self.mouseDragEnd = true;\n }\n\n self.$element.removeClass(self.options.classOnDragging);\n self.$element.css('user-select', '');\n changeTransition(self.$element, '');\n changeTransform(self.$element, '');\n\n if (Math.abs(event.deltaX) <= (self.$element.innerWidth() / 4)) {\n self.dragDirection = null;\n self.$toggles.focus();\n\n return;\n }\n\n if (Sidebar.POSITION_RIGHT === self.getPosition()) {\n closeGesture = Hammer.DIRECTION_RIGHT;\n openGesture = Hammer.DIRECTION_LEFT;\n }\n\n if (self.isOpen() && closeGesture === self.dragDirection) {\n self.forceClose();\n\n } else if (openGesture === self.dragDirection) {\n self.mouseDragEnd = null;\n\n if (self.isOpen() && isOverMinWidth(self) &&\n $.inArray(self.options.forceToggle, [Sidebar.FORCE_TOGGLE, Sidebar.FORCE_TOGGLE_ALWAYS]) >= 0) {\n self.forceOpen();\n\n } else if (isOverMinWidth(self) && Sidebar.FORCE_TOGGLE_ALWAYS === self.options.forceToggle) {\n self.forceOpen();\n\n } else {\n self.open();\n }\n }\n\n self.dragDirection = null;\n }\n\n /**\n * Action on item mouse down.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function onItemMouseDown(event) {\n event.preventDefault();\n }\n\n /**\n * Action on item click.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function onItemClick(event) {\n const self = event.data;\n\n if (true === self.mouseDragEnd) {\n event.preventDefault();\n cleanCloseDelay(self);\n self.mouseDragEnd = null;\n }\n }\n\n /**\n * Action on swipe is clicked.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function swipeClick(event) {\n swipeMouseLeave(event);\n event.data.toggle(event);\n }\n\n /**\n * Action when mouse enter on sur swipe.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function swipeMouseEnter(event) {\n event.data.$swipe.addClass('mouse-hover');\n }\n\n /**\n * Action when mouse leave on sur swipe.\n *\n * @param {Event} event The event\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @private\n */\n function swipeMouseLeave(event) {\n event.data.$swipe.removeClass('mouse-hover');\n }\n\n /**\n * Init the hammer instance.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @private\n */\n function initHammer(self) {\n if (!self.options.draggable || typeof Hammer !== 'function') {\n return;\n }\n\n self.$swipe = $('
');\n self.$element.after(self.$swipe);\n\n self.hammer = new Hammer(self.$wrapper.get(0), $.extend(true, {}, self.options.hammer));\n\n self.hammer.get('swipe').set({enable: false});\n self.hammer.get('tap').set({enable: false});\n\n self.hammer.on('panstart', function (event) {\n onDrag(self, event);\n });\n self.hammer.on('pan', function (event) {\n onDrag(self, event);\n });\n self.hammer.on('panend', function (event) {\n onDragEnd(self, event);\n });\n\n self.$wrapper.on('mousedown.st.sidebar', null, self, onItemMouseDown);\n self.$wrapper.on('click.st.sidebar', null, self, onItemClick);\n\n if (self.options.clickableSwipe) {\n self.$swipe\n .on('click.st.sidebar' + self.guid, null, self, swipeClick)\n .on('mouseenter.st.sidebar' + self.guid, null, self, swipeMouseEnter)\n .on('mouseleave.st.sidebar' + self.guid, null, self, swipeMouseLeave)\n ;\n }\n }\n\n /**\n * Destroy the hammer configuration.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @private\n */\n function destroyHammer(self) {\n if (!self.options.draggable || typeof Hammer !== 'function') {\n return;\n }\n\n if (self.options.clickableSwipe) {\n self.$swipe\n .off('click.st.sidebar' + self.guid, swipeClick)\n .off('mouseenter.st.sidebar' + self.guid, swipeMouseEnter)\n .off('mouseleave.st.sidebar' + self.guid, swipeMouseLeave)\n ;\n }\n\n self.$wrapper.off('mousedown.st.sidebar', onItemMouseDown);\n self.$wrapper.off('click.st.sidebar', onItemClick);\n self.$swipe.remove();\n self.hammer.destroy();\n\n delete self.$swipe;\n delete self.hammer;\n }\n\n /**\n * Init the scroller instance.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @private\n */\n function initScroller(self) {\n const options = {\n scrollbarInverse: Sidebar.POSITION_RIGHT === self.options.position\n };\n\n if ($.fn.scroller && self.options.useScroller) {\n self.$element.scroller($.extend({}, options, self.options.scroller));\n self.$element.on('scrolling.st.scroller.st.sidebar', null, self, resetScrolling);\n }\n }\n\n /**\n * Destroy the hammer scroll configuration.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @private\n */\n function destroyScroller(self) {\n if ($.fn.scroller && self.options.useScroller) {\n self.$element.scroller('destroy');\n self.$element.off('scrolling.st.scroller.st.sidebar', resetScrolling);\n }\n }\n\n /**\n * Action to detach toggle button.\n *\n * @param {Sidebar} self The sidebar instance\n * @param {jQuery} $toggle The toggle\n *\n * @this Sidebar\n */\n function doDetachToggle(self, $toggle) {\n $toggle\n .off('mouseover.st.sidebar' + self.guid, $.proxy(Sidebar.prototype.open, self))\n .off(self.eventType + '.st.sidebar' + self.guid, Sidebar.prototype.toggle)\n .removeClass(self.options.classLocked + '-toggle')\n .removeClass(self.options.classForceOpen + '-toggle')\n .removeClass(self.options.classOpen + '-toggle');\n\n if (!self.enabled) {\n $toggle.removeClass('disabled');\n }\n }\n\n /**\n * Add css classname in toggle buttons.\n *\n * @param {Sidebar} self The sidebar instance\n * @param {String} classname The css classname\n *\n * @this Sidebar\n */\n function addClassToggles(self, classname) {\n self.$toggles.each(function (index, $toggle) {\n $toggle.addClass(classname);\n });\n }\n\n /**\n * Add css classname in toggle buttons.\n *\n * @param {Sidebar} self The sidebar instance\n * @param {String} classname The css classname\n *\n * @this Sidebar\n */\n function removeClassToggles(self, classname) {\n self.$toggles.each(function (index, $toggle) {\n $toggle.removeClass(classname);\n });\n }\n\n /**\n * Set the value in local storage.\n *\n * @param {Sidebar} self The sidebar instance\n * @param {String} key The key\n * @param {String|Boolean} value The value\n *\n * @private\n */\n function setLocalStorage(self, key, value) {\n if (self.options.saveConfig && 'localStorage' in window) {\n try {\n window.localStorage.setItem(self.$element.prop('id') + '/' + key, value);\n } catch (e) {\n }\n }\n }\n\n /**\n * Get the value in local storage.\n *\n * @param {Sidebar} self The sidebar instance\n * @param {String} key The key\n * @param {String|Boolean} [defaultValue] The default value\n *\n * @return {String|null}\n */\n function getLocalStorage(self, key, defaultValue) {\n const value = undefined === defaultValue ? null : defaultValue;\n let itemValue = null;\n\n if (self.options.saveConfig && 'localStorage' in window) {\n itemValue = window.localStorage.getItem(self.$element.prop('id') + '/' + key);\n }\n\n return null !== itemValue ? itemValue : value;\n }\n\n /**\n * Init the sidebar options with the locale storage.\n *\n * @param {Sidebar} self The sidebar instance\n *\n * @private\n */\n function initWithLocalStorage(self) {\n const storageLocked = getLocalStorage(self, self.options.storageLockedKey);\n\n if (null !== storageLocked && self.options.toggleOnClick) {\n self.options.locked = storageLocked === 'true';\n\n if (!self.options.locked) {\n changeTransition(self.$element, 'none');\n self.forceClose();\n }\n }\n }\n\n // SIDEBAR CLASS DEFINITION\n // ========================\n\n /**\n * @constructor\n *\n * @param {string|elements|object|jQuery} element\n * @param {object} options\n *\n * @this Sidebar\n */\n const Sidebar = function (element, options) {\n const self = this;\n const ua = navigator.userAgent.toLowerCase();\n let isOver;\n\n this.guid = jQuery.guid;\n this.options = $.extend(true, {}, Sidebar.DEFAULTS, options);\n this.eventType = 'click';\n this.nativeScrollWidth = getNativeScrollWidth();\n this.$element = $(element);\n this.$toggles = $([]);\n this.$wrapper = $('
');\n this.$container = $('> .' + this.options.classContainer, this.$element.parent());\n this.$swipe = null;\n this.$overlay = $('
');\n this.$body = $('body');\n this.enabled = !this.$element.hasClass(self.options.classDisabled);\n this.hammer = null;\n this.dragStartPosition = null;\n this.mouseDragEnd = null;\n this.dragDirection = null;\n this.closeDelay = null;\n this.resetScrolling = null;\n this.originalBodyPad = null;\n this.originalBodyOverflowY = null;\n this.fixDragClick = ua.indexOf('firefox') > -1 || ua.indexOf('edge') > -1 || ua.indexOf('msie') > -1;\n\n this.$element.before(this.$wrapper);\n this.$wrapper.append(this.$element);\n this.$wrapper.append(this.$overlay);\n this.$element.attr('data-sidebar', 'true');\n\n if (null !== this.options.toggleId) {\n this.attachToggle('#' + this.options.toggleId);\n }\n\n if (undefined !== this.options.scrollerStickyHeader) {\n this.options.scroller.scrollerStickyHeader = this.options.scrollerStickyHeader;\n delete this.options.scrollerStickyHeader;\n }\n\n if (undefined !== this.options.scrollerScrollbar) {\n this.options.scroller.scrollbar = this.options.scrollerScrollbar;\n delete this.options.scrollerScrollbar;\n }\n\n if (this.$element.hasClass(this.options.classLocked)) {\n this.options.locked = true;\n }\n\n if (Sidebar.POSITION_RIGHT !== this.options.position) {\n this.options.position = Sidebar.POSITION_LEFT;\n\n } else {\n this.$element.addClass('sidebar--right');\n }\n\n if (this.$element.hasClass('sidebar--right')) {\n this.options.position = Sidebar.POSITION_RIGHT;\n }\n\n if (this.options.position === Sidebar.POSITION_RIGHT) {\n this.options.keyboardEvent.shiftKey = true;\n }\n\n if (!this.enabled) {\n this.$element\n .removeClass(this.options.classLocked)\n .removeClass(this.options.classForceOpen)\n .removeClass(this.options.classOpen)\n .removeClass(this.options.classOpen + '-init');\n }\n\n if (this.options.locked) {\n this.options.forceToggle = Sidebar.FORCE_TOGGLE_ALWAYS;\n changeTransition(this.$element, 'none');\n\n if (this.enabled) {\n this.$element\n .addClass(this.options.classLocked)\n .addClass(this.options.classForceOpen)\n .addClass(this.options.classOpen + '-init');\n\n this.$container.addClass('container--force-open-' + this.options.position);\n }\n }\n\n isOver = isOverMinWidth(this);\n\n $(window).on('keyup.st.sidebar' + this.guid, null, this, keyboardAction);\n $(window).on('resize.st.sidebar' + this.guid, null, this, onResizeWindow);\n\n if (this.$element.hasClass(this.options.classOpen + '-init')) {\n if (isOver) {\n this.$element.addClass(this.options.classOpen);\n\n } else {\n this.$element\n .removeClass(this.options.classOpen)\n .removeClass(this.options.classForceOpen)\n ;\n }\n\n this.$element.removeClass(this.options.classOpen + '-init');\n }\n\n if (this.$element.hasClass(this.options.classOpen) && !isOver) {\n lockBodyScroll(this);\n } else {\n unlockBodyScroll(this);\n }\n\n if (this.options.closeOnSelect) {\n this.$element.on(this.eventType + '.st.sidebar' + this.guid, this.options.itemSelector, this, closeOnSelect);\n }\n\n this.$element.on(prefixedEvent('TransitionEnd', '.st.sidebar' + this.guid), null, this, onEndTransition);\n this.$overlay.on(this.eventType + '.st.sidebar' + this.guid, null, this, closeExternal);\n\n initScroller(this);\n initHammer(this);\n initWithLocalStorage(this);\n\n window.setTimeout(function () {\n changeTransition(self.$element, '');\n self.$element.addClass('sidebar--ready');\n triggerEvent('ready', self);\n }, 0);\n };\n\n /**\n * Defaults options.\n *\n * @type {object}\n */\n Sidebar.DEFAULTS = {\n classWrapper: 'sidebar-wrapper',\n classContainer: 'container-main',\n classOpen: 'sidebar--open',\n classLocked: 'sidebar--locked',\n classForceOpen: 'sidebar--force-open',\n classOnDragging: 'sidebar--dragging',\n classDisabled: 'sidebar--disabled',\n classOverlay: 'sidebar__overlay',\n forceToggle: Sidebar.FORCE_TOGGLE_NO,\n locked: false,\n position: Sidebar.POSITION_LEFT,\n minLockWidth: 992,\n toggleId: null,\n toggleOpenOnHover: false,\n toggleOnClick: false,\n saveConfig: false,\n storageLockedKey: 'st/sidebar/locked',\n clickableSwipe: false,\n draggable: true,\n closeOnSelect: true,\n closeOnSelectDelay: 0.5,\n resetScrollDelay: 0.3,\n itemSelector: '.sidebar__menu a', \n useScroller: true,\n scrollerScrollbar: undefined,\n scroller: {\n contentSelector: '.sidebar__menu',\n scrollerStickyHeader: true,\n stickyOptions: {\n selector: '> .sidebar__menu > .sidebar__group > span'\n }\n },\n hammer: {},\n disabledKeyboard: false,\n keyboardEvent: {\n ctrlKey: true,\n shiftKey: false,\n altKey: true,\n keyCode: 'S'.charCodeAt(0)\n }\n };\n\n /**\n * Left position.\n *\n * @type {string}\n */\n Sidebar.POSITION_LEFT = 'left';\n\n /**\n * Right position.\n *\n * @type {string}\n */\n Sidebar.POSITION_RIGHT = 'right';\n\n /**\n * Not force toggle.\n *\n * @type {boolean}\n */\n Sidebar.FORCE_TOGGLE_NO = false;\n\n /**\n * Force toggle.\n *\n * @type {boolean}\n */\n Sidebar.FORCE_TOGGLE = true;\n\n /**\n * Always force toggle.\n *\n * @type {string}\n */\n Sidebar.FORCE_TOGGLE_ALWAYS = 'always';\n\n /**\n * Get sidebar position.\n *\n * @returns {string} The position (left or right)\n *\n * @this Sidebar\n */\n Sidebar.prototype.getPosition = function () {\n return this.options.position;\n };\n\n /**\n * Checks if sidebar is locked (always open).\n *\n * @returns {boolean}\n *\n * @this Sidebar\n */\n Sidebar.prototype.isLocked = function () {\n return this.options.locked;\n };\n\n /**\n * Checks if sidebar is locked (always open).\n *\n * @returns {boolean}\n *\n * @this Sidebar\n */\n Sidebar.prototype.isOpen = function () {\n return this.$element.hasClass(this.options.classOpen);\n };\n\n /**\n * Checks if sidebar is fully opened.\n *\n * @return {boolean}\n *\n * @this Sidebar\n */\n Sidebar.prototype.isFullyOpened = function () {\n return this.$element.hasClass(this.options.classForceOpen);\n };\n\n /**\n * Checks if sidebar is closable.\n *\n * @return {boolean}\n *\n * @this Sidebar\n */\n Sidebar.prototype.isClosable = function () {\n return this.enabled && this.isOpen() && !isOverMinWidth(this);\n };\n\n /**\n * Force open the sidebar.\n *\n * @this Sidebar\n */\n Sidebar.prototype.forceOpen = function () {\n if (!this.enabled || (this.isOpen() && this.isFullyOpened())) {\n return;\n }\n\n cleanCloseDelay(this);\n this.$element.addClass(this.options.classForceOpen);\n this.$container.addClass('container--force-open-' + this.options.position);\n addClassToggles(this, this.options.classForceOpen + '-toggle');\n\n triggerEvent('force-open', this);\n this.open();\n };\n\n /**\n * Force close the sidebar.\n *\n * @this Sidebar\n */\n Sidebar.prototype.forceClose = function () {\n if (!this.enabled || !this.isOpen() || (this.isLocked() && isOverMinWidth(this))) {\n return;\n }\n\n cleanCloseDelay(this);\n removeClassToggles(this, this.options.classForceOpen + '-toggle');\n this.$container.removeClass('container--force-open-' + this.options.position);\n this.$element.removeClass(this.options.classForceOpen);\n\n triggerEvent('force-close', this);\n this.close();\n };\n\n /**\n * Open the sidebar.\n *\n * @this Sidebar\n */\n Sidebar.prototype.open = function () {\n if (!this.enabled || this.isOpen()) {\n return;\n }\n\n triggerEvent('open', this);\n cleanCloseDelay(this);\n $('[data-sidebar=true]').sidebar('forceClose');\n this.$element.addClass(this.options.classOpen);\n };\n\n /**\n * Close open the sidebar.\n *\n * @this Sidebar\n */\n Sidebar.prototype.close = function () {\n if (!this.enabled || !this.isOpen() || (this.isFullyOpened() && isOverMinWidth(this))) {\n return;\n }\n\n triggerEvent('close', this);\n cleanCloseDelay(this);\n this.$element.removeClass(this.options.classOpen);\n };\n\n /**\n * Toggle the sidebar (\"close, \"open\", \"force open\").\n *\n * @param {jQuery.Event|Event} [event]\n *\n * @typedef {Sidebar} Event.data The sidebar instance\n *\n * @this Sidebar\n */\n Sidebar.prototype.toggle = function (event) {\n const self = (undefined !== event) ? event.data : this;\n\n if (!self.enabled) {\n return;\n }\n\n if (undefined !== event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n triggerEvent('toggle', this);\n\n if (self.options.toggleOnClick) {\n self.options.locked = !self.options.locked;\n setLocalStorage(self, self.options.storageLockedKey, self.options.locked);\n }\n\n if (self.isOpen()) {\n if (self.isFullyOpened()) {\n self.forceClose();\n\n } else if (isOverMinWidth(self) && $.inArray(self.options.forceToggle, [true, Sidebar.FORCE_TOGGLE_ALWAYS]) >= 0) {\n self.forceOpen();\n\n } else {\n self.close();\n }\n\n } else if (isOverMinWidth(self) && Sidebar.FORCE_TOGGLE_ALWAYS === self.options.forceToggle) {\n self.forceOpen();\n\n } else {\n self.open();\n }\n };\n\n /**\n * Refresh the scroller.\n *\n * @this Sidebar\n */\n Sidebar.prototype.refresh = function () {\n triggerEvent('refresh', this);\n\n if ($.fn.scroller && this.options.useScroller) {\n this.$element.scroller('refresh');\n }\n };\n\n /**\n * Attach a toggle button.\n *\n * @param {string|element|object|jQuery} $toggle\n *\n * @this Sidebar\n */\n Sidebar.prototype.attachToggle = function ($toggle) {\n $toggle = $($toggle);\n\n if (!this.enabled) {\n $toggle.addClass('disabled');\n }\n\n if (this.isLocked()) {\n $toggle.addClass(this.options.classLocked + '-toggle');\n } else {\n $toggle.removeClass(this.options.classLocked + '-toggle');\n }\n\n if (this.isFullyOpened()) {\n $toggle.addClass(this.options.classForceOpen + '-toggle');\n } else {\n $toggle.removeClass(this.options.classForceOpen + '-toggle');\n }\n\n if (this.isOpen()) {\n $toggle.addClass(this.options.classOpen + '-toggle');\n } else {\n $toggle.removeClass(this.options.classOpen + '-toggle');\n }\n\n $toggle.on(this.eventType + '.st.sidebar' + this.guid, null, this, Sidebar.prototype.toggle);\n\n if (!mobileCheck() && this.options.toggleOpenOnHover) {\n $toggle.on('mouseover.st.sidebar' + this.guid, $.proxy(Sidebar.prototype.open, this));\n }\n\n this.$toggles.push($toggle);\n };\n\n /**\n * Detach a toggle button.\n *\n * @param {string|element|object|jQuery} $toggle\n *\n * @this Sidebar\n */\n Sidebar.prototype.detachToggle = function ($toggle) {\n const size = this.$toggles.length;\n $toggle = $($toggle);\n\n for (let i = 0; i < size; ++i) {\n if (this.$toggles[i][0] === $toggle[0]) {\n doDetachToggle(this, this.$toggles[i]);\n this.$toggles.splice(i, 1);\n break;\n }\n }\n };\n\n /**\n * Detach a toggle button.\n *\n * @this Sidebar\n */\n Sidebar.prototype.detachToggles = function () {\n const size = this.$toggles.length;\n\n for (let i = 0; i < size; ++i) {\n doDetachToggle(this, this.$toggles[i]);\n }\n\n this.$toggles.splice(0, size);\n };\n\n /**\n * Checks if sidebar is enabled.\n *\n * @returns {boolean}\n *\n * @this Sidebar\n */\n Sidebar.prototype.isEnabled = function () {\n return this.enabled;\n };\n\n /**\n * Disable the sidebar.\n *\n * @this Sidebar\n */\n Sidebar.prototype.disable = function () {\n const prevIsLocked = this.isLocked();\n\n if (!this.enabled) {\n return;\n }\n\n triggerEvent('disable', this);\n this.options.locked = false;\n this.forceClose();\n this.options.locked = prevIsLocked;\n this.$element.addClass(self.options.classDisabled);\n addClassToggles(this, 'disabled');\n\n if (this.isLocked()) {\n addClassToggles(this, this.options.classLocked + '-toggle-disabled');\n }\n\n this.enabled = false;\n };\n\n /**\n * Enable the sidebar.\n *\n * @this Sidebar\n */\n Sidebar.prototype.enable = function () {\n if (this.enabled) {\n return;\n }\n\n triggerEvent('enable', this);\n this.enabled = true;\n this.$element.removeClass(self.options.classDisabled);\n\n if (isOverMinWidth(this) && Sidebar.FORCE_TOGGLE_ALWAYS === this.options.forceToggle) {\n this.forceOpen();\n }\n\n removeClassToggles(this, 'disabled');\n\n if (this.isLocked()) {\n removeClassToggles(this, this.options.classLocked + '-toggle-disabled');\n }\n };\n\n /**\n * Destroy instance.\n *\n * @this Sidebar\n */\n Sidebar.prototype.destroy = function () {\n cleanCloseDelay(this);\n this.detachToggles();\n this.forceClose();\n $(window).off('keyup.st.sidebar' + this.guid, keyboardAction);\n $(window).off('resize.st.sidebar' + this.guid, onResizeWindow);\n this.$element.off(this.eventType + '.st.sidebar' + this.guid, this.options.itemSelector, closeOnSelect);\n this.$element.off(prefixedEvent('TransitionEnd', '.st.sidebar' + this.guid), onEndTransition);\n this.$overlay.off(this.eventType + '.st.sidebar' + this.guid, closeExternal);\n\n destroyHammer(this);\n destroyScroller(this);\n unlockBodyScroll(this);\n\n this.$wrapper.before(this.$element);\n this.$wrapper.remove();\n\n this.$element.removeClass('sidebar--ready');\n this.$element.removeData('st.sidebar');\n\n delete this.guid;\n delete this.options;\n delete this.eventType;\n delete this.nativeScrollWidth;\n delete this.$element;\n delete this.$wrapper;\n delete this.$overlay;\n delete this.$swipe;\n delete this.$container;\n delete this.$toggles;\n delete this.$body;\n delete this.dragStartPosition;\n delete this.mouseDragEnd;\n delete this.dragDirection;\n delete this.closeDelay;\n delete this.resetScrolling;\n delete this.originalBodyPad;\n delete this.originalBodyOverflowY;\n delete this.fixDragClick;\n };\n\n\n // SIDEBAR PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n const args = Array.prototype.slice.call(arguments, 1);\n let ret = undefined;\n\n this.each(function () {\n const $this = $(this),\n options = typeof option === 'object' && option;\n let data = $this.data('st.sidebar');\n\n if (!data && option === 'destroy') {\n return;\n }\n\n if (!data) {\n data = new Sidebar(this, options);\n $this.data('st.sidebar', data);\n }\n\n if (typeof option === 'string') {\n ret = data[option].apply(data, args);\n }\n });\n\n return undefined === ret ? this : ret;\n }\n\n const old = $.fn.sidebar;\n\n $.fn.sidebar = Plugin;\n $.fn.sidebar.Constructor = Sidebar;\n\n\n // SIDEBAR NO CONFLICT\n // ===================\n\n $.fn.sidebar.noConflict = function () {\n $.fn.sidebar = old;\n\n return this;\n };\n\n\n // SIDEBAR DATA-API\n // ================\n\n $(window).on('load', function () {\n $('[data-sidebar=\"true\"]').each(function () {\n const $this = $(this);\n Plugin.call($this, $this.data());\n });\n });\n\n}));\n"],"names":["factory","define","$","nativeScrollWidth","getNativeScrollWidth","size","sbDiv","document","createElement","style","width","height","overflow","position","top","body","appendChild","offsetWidth","clientWidth","removeChild","mobileCheck","prefixedEvent","name","namespace","pfx","names","p","length","toLowerCase","undefined","triggerEvent","type","self","data","event","trigger","concat","sidebar","eventData","time","Date","changeTransition","$target","transition","css","changeTransform","transform","changeTranslate","delta","getTargetPosition","reMatrix","match","transformCss","e","f","CSSMatrix","WebKitCSSMatrix","MSCSSMatrix","parseInt","keyboardAction","jQuery","Event","options","disabledKeyboard","kbe","keyboardEvent","shiftKey","ctrlKey","altKey","keyCode","toggle","isOverMinWidth","$window","window","windowWidth","innerWidth","$body","innerHeight","minLockWidth","closeExternal","stopPropagation","preventDefault","close","forceClose","cleanCloseDelay","closeDelay","clearTimeout","closeOnSelect","closeOnSelectDelay","setTimeout","lockBodyScroll","bodyPad","get","scrollHeight","documentElement","clientHeight","originalBodyPad","paddingRight","originalBodyOverflowY","overflowY","unlockBodyScroll","resetScrolling","resetScrollDelay","onResizeWindow","isOver","isForceOpened","$element","isLocked","forceOpen","resizeDelay","isOpen","onEndTransition","action","target","addClassToggles","classOpen","fn","scroller","useScroller","$toggles","parent","focus","removeClassToggles","onDrag","$overlay","dragDirection","Math","abs","deltaX","deltaY","mouseDragEnd","direction","inArray","Hammer","DIRECTION_LEFT","DIRECTION_RIGHT","locked","dragStartPosition","round","Sidebar","POSITION_LEFT","getPosition","POSITION_RIGHT","addClass","classOnDragging","onDragEnd","closeGesture","openGesture","fixDragClick","srcEvent","removeClass","forceToggle","FORCE_TOGGLE","FORCE_TOGGLE_ALWAYS","open","onItemMouseDown","onItemClick","swipeClick","swipeMouseLeave","swipeMouseEnter","$swipe","initHammer","draggable","guid","after","hammer","$wrapper","extend","set","enable","on","clickableSwipe","destroyHammer","off","remove","destroy","initScroller","scrollbarInverse","destroyScroller","doDetachToggle","$toggle","proxy","prototype","eventType","classLocked","classForceOpen","enabled","classname","each","index","setLocalStorage","key","value","saveConfig","localStorage","setItem","prop","getLocalStorage","defaultValue","itemValue","getItem","initWithLocalStorage","storageLocked","storageLockedKey","toggleOnClick","element","this","ua","navigator","userAgent","DEFAULTS","classWrapper","$container","classContainer","classOverlay","hasClass","classDisabled","indexOf","before","append","attr","toggleId","attachToggle","scrollerStickyHeader","scrollerScrollbar","scrollbar","itemSelector","Plugin","option","args","Array","slice","call","arguments","ret","$this","_typeof","apply","FORCE_TOGGLE_NO","toggleOpenOnHover","contentSelector","stickyOptions","selector","charCodeAt","isFullyOpened","isClosable","refresh","push","detachToggle","i","splice","detachToggles","isEnabled","disable","prevIsLocked","removeData","old","Constructor","noConflict"],"sourceRoot":""}