{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./vendor/assets/javascripts/layout-helpers.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","TRANSITION_EVENTS","TRANSITION_PROPERTIES","INLINE_STYLE","requiredParam","Error","layoutHelpers","CONTAINER","window","document","documentElement","LAYOUT_BREAKPOINT","RESIZE_DELAY","_curStyle","_styleEl","_resizeTimeout","_resizeCallback","_transitionCallback","_transitionCallbackTimeout","_listeners","_initialized","_autoUpdate","_lastWindowHeight","cls","el","this","split","forEach","classList","add","remove","result","contains","QUnit","body","evnt","style","duration","getComputedStyle","transitionDuration","parseFloat","indexOf","createEvent","event","Event","initEvent","dispatchEvent","fireEvent","createEventObject","_triggerWindowEvent","filter","listener","callback","navbarHeight","footerHeight","createElement","type","head","appendChild","newStyle","replace","textContent","removeChild","layoutSidenav","getLayoutSidenav","querySelector","inner","scrollTop","pageScrollTop","display","offsetHeight","layoutNavbar","getLayoutNavbar","isSmallScreen","getBoundingClientRect","height","clonedEl","cloneNode","id","visibility","position","Array","slice","querySelectorAll","_removeClass","parentNode","insertBefore","layoutFooter","getLayoutFooter","modifier","cb","sidenav","getSidenav","_getAnimationDuration","e","target","_unbindLayoutAnimationEndEvent","addEventListener","setTimeout","clearTimeout","removeEventListener","_unbindWindowResizeEvent","_triggerEvent","hovered","collapsed","_addClass","_redrawLayoutSidenav","tagName","toUpperCase","_sidenavMouseEnter","_sidenavMouseLeave","_windowTouchStart","_unbindSidenavMouseEvents","_hasClass","isOffcanvas","_setSidenavHoverState","_findParent","getLayoutContainer","isMobileDevice","orientation","navigator","userAgent","innerWidth","clientWidth","isLayout1","isFixed","animate","_supportsTransitionEnd","_bindLayoutAnimationEndEvent","_setCollapsed","setCollapsed","isCollapsed","fixed","offcanvas","update","reversed","isNavbarFixed","isFooterFixed","_updateInlineStyle","_getNavbarHeight","_getFooterHeight","_bindSidenavMouseEvents","enable","on","off","_event","namespace","join","push","splice","_bindWindowResizeEvent","documentMode","_removeInlineStyle","setAutoUpdate","init","chrome","readyState","onContentLoaded"],"mappings":"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","file":"js/vendor/layout-helpers-e207797807f53dbf0366.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 368);\n","// Constants\nconst TRANSITION_EVENTS = ['transitionend','webkitTransitionEnd','oTransitionEnd']\nconst TRANSITION_PROPERTIES = ['transition', 'MozTransition', 'webkitTransition', 'WebkitTransition', 'OTransition']\nconst INLINE_STYLE = `\n.layout-fixed .layout-1 .layout-sidenav,\n.layout-fixed-offcanvas .layout-1 .layout-sidenav {\n top: {navbarHeight}px !important;\n}\n.layout-container {\n padding-top: {navbarHeight}px !important;\n}\n.layout-content {\n padding-bottom: {footerHeight}px !important;\n}`\n\n// Guard\nfunction requiredParam(name) {\n throw new Error(`Parameter required${name ? ': `' + name + '`' : ''}`)\n}\n\nconst layoutHelpers = {\n // Root container\n CONTAINER: typeof window !== 'undefined' ? document.documentElement : null,\n\n // Large screens breakpoint\n LAYOUT_BREAKPOINT: 992,\n\n // Resize delay in milliseconds\n RESIZE_DELAY: 200,\n\n // Internal variables\n _curStyle: null,\n _styleEl: null,\n _resizeTimeout: null,\n _resizeCallback: null,\n _transitionCallback: null,\n _transitionCallbackTimeout: null,\n _listeners: [],\n _initialized: false,\n _autoUpdate: false,\n _lastWindowHeight: 0,\n\n\n // *******************************************************************************\n // * Utilities\n\n // ---\n // Add class\n _addClass(cls, el = this.CONTAINER) {\n cls.split(' ').forEach(c => el.classList.add(c))\n },\n\n // ---\n // Remove class\n _removeClass(cls, el = this.CONTAINER) {\n cls.split(' ').forEach(c => el.classList.remove(c))\n },\n\n // ---\n // Has class\n _hasClass(cls, el = this.CONTAINER) {\n let result = false\n\n cls.split(' ').forEach(c => {\n if (el.classList.contains(c)) result = true\n })\n\n return result\n },\n\n // ---\n // Check for transition support\n _supportsTransitionEnd() {\n if (window.QUnit) return false\n\n const el = document.body || document.documentElement\n\n if (!el) return false\n\n let result = false\n TRANSITION_PROPERTIES.forEach(evnt => {\n if (typeof el.style[evnt] !== 'undefined') result = true\n })\n\n return result\n },\n\n // ---\n // Get animation duration of element\n _getAnimationDuration(el) {\n let duration = window.getComputedStyle(el).transitionDuration\n\n return parseFloat(duration) * (duration.indexOf('ms') !== -1 ? 1 : 1000)\n },\n\n // ---\n // Trigger window event\n _triggerWindowEvent(name) {\n if (typeof window === 'undefined') return\n\n if (document.createEvent) {\n let event\n\n if (typeof(Event) === 'function') {\n event = new Event(name)\n } else {\n event = document.createEvent('Event')\n event.initEvent(name, false, true)\n }\n\n window.dispatchEvent(event)\n } else {\n window.fireEvent(`on${name}`, document.createEventObject())\n }\n },\n\n // ---\n // Trigger event\n _triggerEvent(name) {\n this._triggerWindowEvent(`layout${name}`)\n\n this._listeners\n .filter(listener => listener.event === name)\n .forEach(listener => listener.callback.call(null))\n },\n\n // ---\n // Update style\n _updateInlineStyle(navbarHeight = 0, footerHeight = 0) {\n if (!this._styleEl) {\n this._styleEl = document.createElement('style')\n this._styleEl.type = 'text/css'\n document.head.appendChild(this._styleEl)\n }\n\n const newStyle = INLINE_STYLE\n .replace(/\\{navbarHeight\\}/ig, navbarHeight)\n .replace(/\\{footerHeight\\}/ig, footerHeight)\n\n if (this._curStyle !== newStyle) {\n this._curStyle = newStyle\n this._styleEl.textContent = newStyle\n }\n },\n\n // ---\n // Remove style\n _removeInlineStyle() {\n if (this._styleEl) document.head.removeChild(this._styleEl)\n this._styleEl = null\n this._curStyle = null\n },\n\n // ---\n // Redraw layout sidenav (Safari bugfix)\n _redrawLayoutSidenav() {\n const layoutSidenav = this.getLayoutSidenav()\n\n if (layoutSidenav && layoutSidenav.querySelector('.sidenav')) {\n const inner = layoutSidenav.querySelector('.sidenav-inner')\n const scrollTop = inner.scrollTop\n const pageScrollTop = document.documentElement.scrollTop\n\n layoutSidenav.style.display = 'none'\n layoutSidenav.offsetHeight\n layoutSidenav.style.display = ''\n inner.scrollTop = scrollTop\n document.documentElement.scrollTop = pageScrollTop\n\n return true\n }\n\n return false\n },\n\n // ---\n // Calculate current navbar height\n _getNavbarHeight() {\n const layoutNavbar = this.getLayoutNavbar()\n\n if (!layoutNavbar) return 0\n if (!this.isSmallScreen()) return layoutNavbar.getBoundingClientRect().height\n\n // Needs some logic to get navbar height on small screens\n\n const clonedEl = layoutNavbar.cloneNode(true)\n clonedEl.id = null\n clonedEl.style.visibility = 'hidden'\n clonedEl.style.position = 'absolute'\n\n Array.prototype.slice.call(clonedEl.querySelectorAll('.collapse.show'))\n .forEach(el => this._removeClass('show', el))\n\n layoutNavbar.parentNode.insertBefore(clonedEl, layoutNavbar)\n\n const navbarHeight = clonedEl.getBoundingClientRect().height\n\n clonedEl.parentNode.removeChild(clonedEl)\n\n return navbarHeight\n },\n\n // ---\n // Get current footer height\n _getFooterHeight() {\n const layoutFooter = this.getLayoutFooter()\n\n if (!layoutFooter) return 0\n\n return layoutFooter.getBoundingClientRect().height\n },\n\n // ---\n // Add layout sivenav toggle animationEnd event\n _bindLayoutAnimationEndEvent(modifier, cb) {\n const sidenav = this.getSidenav()\n const duration = sidenav ? this._getAnimationDuration(sidenav) + 50 : 0\n\n if (!duration) {\n modifier.call(this)\n cb.call(this)\n return\n }\n\n this._transitionCallback = e => {\n if (e.target !== sidenav) return\n this._unbindLayoutAnimationEndEvent()\n cb.call(this)\n }\n\n TRANSITION_EVENTS.forEach(e => {\n sidenav.addEventListener(e, this._transitionCallback, false)\n })\n\n modifier.call(this)\n\n this._transitionCallbackTimeout = setTimeout(() => {\n this._transitionCallback.call(this, { target: sidenav })\n }, duration)\n },\n\n // ---\n // Remove layout sivenav toggle animationEnd event\n _unbindLayoutAnimationEndEvent() {\n const sidenav = this.getSidenav()\n\n if (this._transitionCallbackTimeout) {\n clearTimeout(this._transitionCallbackTimeout)\n this._transitionCallbackTimeout = null\n }\n\n if (sidenav && this._transitionCallback) {\n TRANSITION_EVENTS.forEach(e => {\n sidenav.removeEventListener(e, this._transitionCallback, false)\n })\n }\n\n if (this._transitionCallback) {\n this._transitionCallback = null\n }\n },\n\n // ---\n // Bind delayed window resize event\n _bindWindowResizeEvent() {\n this._unbindWindowResizeEvent()\n\n const cb = () => {\n if (this._resizeTimeout) {\n clearTimeout(this._resizeTimeout)\n this._resizeTimeout = null\n }\n this._triggerEvent('resize')\n }\n\n this._resizeCallback = () => {\n if (this._resizeTimeout) clearTimeout(this._resizeTimeout)\n this._resizeTimeout = setTimeout(cb, this.RESIZE_DELAY)\n }\n\n window.addEventListener('resize', this._resizeCallback, false)\n },\n\n // ---\n // Unbind delayed window resize event\n _unbindWindowResizeEvent() {\n if (this._resizeTimeout) {\n clearTimeout(this._resizeTimeout)\n this._resizeTimeout = null\n }\n\n if (this._resizeCallback) {\n window.removeEventListener('resize', this._resizeCallback, false)\n this._resizeCallback = null\n }\n },\n\n // ---\n // Set sidenav hover state\n _setSidenavHoverState(hovered) {\n this[hovered ? '_addClass' : '_removeClass']('layout-sidenav-hover')\n },\n\n // ---\n // Toggle collapsed\n _setCollapsed(collapsed) {\n if (this.isSmallScreen()) {\n if (collapsed) {\n this._removeClass('layout-expanded')\n } else {\n setTimeout(() => {\n this._addClass('layout-expanded')\n }, this._redrawLayoutSidenav() ? 5 : 0)\n }\n } else {\n this[collapsed ? '_addClass' : '_removeClass']('layout-collapsed')\n }\n },\n\n _findParent(el, cls) {\n if (el && el.tagName.toUpperCase() === 'BODY') return null\n el = el.parentNode\n while (el && el.tagName.toUpperCase() !== 'BODY' && !el.classList.contains(cls)) {\n el = el.parentNode\n }\n el = el && el.tagName.toUpperCase() !== 'BODY' ? el : null\n return el\n },\n\n _bindSidenavMouseEvents() {\n if (this._sidenavMouseEnter && this._sidenavMouseLeave && this._windowTouchStart) return\n\n const layoutSidenav = this.getLayoutSidenav()\n if (!layoutSidenav) return this._unbindSidenavMouseEvents()\n\n if (!this._sidenavMouseEnter) {\n this._sidenavMouseEnter = () => {\n if (this.isSmallScreen() || !this._hasClass('layout-collapsed') ||\n this.isOffcanvas() || this._hasClass('layout-transitioning')) {\n return this._setSidenavHoverState(false)\n }\n\n this._setSidenavHoverState(true)\n }\n layoutSidenav.addEventListener('mouseenter', this._sidenavMouseEnter, false)\n layoutSidenav.addEventListener('touchstart', this._sidenavMouseEnter, false)\n }\n\n if (!this._sidenavMouseLeave) {\n this._sidenavMouseLeave = () => {\n this._setSidenavHoverState(false)\n }\n layoutSidenav.addEventListener('mouseleave', this._sidenavMouseLeave, false)\n }\n\n if (!this._windowTouchStart) {\n this._windowTouchStart = e => {\n if (!e || !e.target || !this._findParent(e.target, '.layout-sidenav')) {\n this._setSidenavHoverState(false)\n }\n }\n window.addEventListener('touchstart', this._windowTouchStart, true)\n }\n },\n\n _unbindSidenavMouseEvents() {\n if (!this._sidenavMouseEnter && !this._sidenavMouseLeave && !this._windowTouchStart) return\n\n const layoutSidenav = this.getLayoutSidenav()\n\n if (this._sidenavMouseEnter) {\n if (layoutSidenav) {\n layoutSidenav.removeEventListener('mouseenter', this._sidenavMouseEnter, false)\n layoutSidenav.removeEventListener('touchstart', this._sidenavMouseEnter, false)\n }\n this._sidenavMouseEnter = null\n }\n\n if (this._sidenavMouseLeave) {\n if (layoutSidenav) {\n layoutSidenav.removeEventListener('mouseleave', this._sidenavMouseLeave, false)\n }\n this._sidenavMouseLeave = null\n }\n\n if (this._windowTouchStart) {\n if (layoutSidenav) {\n window.addEventListener('touchstart', this._windowTouchStart, true)\n }\n this._windowTouchStart = null\n }\n\n this._setSidenavHoverState(false)\n },\n\n\n // *******************************************************************************\n // * Getters\n\n getLayoutSidenav() {\n return document.querySelector('.layout-sidenav')\n },\n\n getSidenav() {\n const layoutSidenav = this.getLayoutSidenav()\n\n if (!layoutSidenav) return null\n\n return !this._hasClass('sidenav', layoutSidenav) ?\n layoutSidenav.querySelector('.sidenav') :\n layoutSidenav\n },\n\n getLayoutNavbar() {\n return document.querySelector('.layout-navbar')\n },\n\n getLayoutFooter() {\n return document.querySelector('.layout-footer')\n },\n\n getLayoutContainer() {\n return document.querySelector('.layout-container')\n },\n\n\n // *******************************************************************************\n // * Tests\n\n isMobileDevice() {\n return (typeof window.orientation !== \"undefined\") || (navigator.userAgent.indexOf('IEMobile') !== -1)\n },\n\n isSmallScreen() {\n return (\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n ) < this.LAYOUT_BREAKPOINT\n },\n\n isLayout1() {\n return !!document.querySelector('.layout-wrapper.layout-1')\n },\n\n isCollapsed() {\n if (this.isSmallScreen()) {\n return !this._hasClass('layout-expanded')\n } else {\n return this._hasClass('layout-collapsed')\n }\n },\n\n isFixed() {\n return this._hasClass('layout-fixed layout-fixed-offcanvas')\n },\n\n isOffcanvas() {\n return this._hasClass('layout-offcanvas layout-fixed-offcanvas')\n },\n\n isNavbarFixed() {\n return this._hasClass('layout-navbar-fixed') ||\n (!this.isSmallScreen() && this.isFixed() && this.isLayout1())\n },\n\n isFooterFixed() {\n return this._hasClass('layout-footer-fixed');\n },\n\n isReversed() {\n return this._hasClass('layout-reversed')\n },\n\n\n // *******************************************************************************\n // * Methods\n\n // ---\n // Collapse / expand layout\n setCollapsed(collapsed = requiredParam('collapsed'), animate = true) {\n const layoutSidenav = this.getLayoutSidenav()\n\n if (!layoutSidenav) return\n\n this._unbindLayoutAnimationEndEvent()\n\n if (animate && this._supportsTransitionEnd()) {\n this._addClass('layout-transitioning')\n if (collapsed) this._setSidenavHoverState(false)\n\n this._bindLayoutAnimationEndEvent(() => {\n // Collapse / Expand\n this._setCollapsed(collapsed)\n }, () => {\n this._removeClass('layout-transitioning')\n this._triggerWindowEvent('resize')\n this._triggerEvent('toggle')\n this._setSidenavHoverState(false)\n })\n } else {\n this._addClass('layout-no-transition')\n if (collapsed) this._setSidenavHoverState(false)\n\n // Collapse / Expand\n this._setCollapsed(collapsed)\n\n setTimeout(() => {\n this._removeClass('layout-no-transition')\n this._triggerWindowEvent('resize')\n this._triggerEvent('toggle')\n this._setSidenavHoverState(false)\n }, 1)\n }\n },\n\n // ---\n // Toggle layout\n toggleCollapsed(animate = true) {\n this.setCollapsed(!this.isCollapsed(), animate)\n },\n\n // ---\n // Set layout positioning\n setPosition(fixed = requiredParam('fixed'), offcanvas = requiredParam('offcanvas')) {\n this._removeClass('layout-offcanvas layout-fixed layout-fixed-offcanvas')\n\n if (!fixed && offcanvas) {\n this._addClass('layout-offcanvas')\n } else if (fixed && !offcanvas) {\n this._addClass('layout-fixed')\n this._redrawLayoutSidenav()\n } else if (fixed && offcanvas) {\n this._addClass('layout-fixed-offcanvas')\n this._redrawLayoutSidenav()\n }\n\n this.update()\n },\n\n setNavbarFixed(fixed = requiredParam('fixed')) {\n this[fixed ? '_addClass' : '_removeClass']('layout-navbar-fixed')\n this.update()\n },\n\n setFooterFixed(fixed = requiredParam('fixed')) {\n this[fixed ? '_addClass' : '_removeClass']('layout-footer-fixed')\n this.update()\n },\n\n setReversed(reversed = requiredParam('reversed')) {\n this[reversed ? '_addClass' : '_removeClass']('layout-reversed')\n },\n\n\n // *******************************************************************************\n // * Update\n\n update() {\n if (\n (this.getLayoutNavbar() && (\n (!this.isSmallScreen() && this.isLayout1() && this.isFixed()) || this.isNavbarFixed()\n )) || (this.getLayoutFooter() && this.isFooterFixed())\n ) {\n this._updateInlineStyle(this._getNavbarHeight(), this._getFooterHeight())\n }\n\n this._bindSidenavMouseEvents()\n },\n\n setAutoUpdate(enable = requiredParam('enable')) {\n if (enable && !this._autoUpdate) {\n this.on('resize.layoutHelpers:autoUpdate', () => this.update())\n this._autoUpdate = true\n } else if (!enable && this._autoUpdate) {\n this.off('resize.layoutHelpers:autoUpdate')\n this._autoUpdate = false\n }\n },\n\n\n // *******************************************************************************\n // * Events\n\n on(event = requiredParam('event'), callback = requiredParam('callback')) {\n let [_event, ...namespace] = event.split('.')\n namespace = namespace.join('.') || null\n\n this._listeners.push({ event: _event, namespace, callback })\n },\n\n off(event = requiredParam('event')) {\n let [_event, ...namespace] = event.split('.')\n namespace = namespace.join('.') || null\n\n this._listeners\n .filter(listener => listener.event === _event && listener.namespace === namespace)\n .forEach(listener => this._listeners.splice(this._listeners.indexOf(listener), 1))\n },\n\n\n // *******************************************************************************\n // * Life cycle\n\n init() {\n if (this._initialized) return\n this._initialized = true\n\n // Initialize `style` element\n this._updateInlineStyle(0)\n\n // Bind window resize event\n this._bindWindowResizeEvent()\n\n // Bind init event\n this.off('init._layoutHelpers')\n this.on('init._layoutHelpers', () => {\n this.off('resize._layoutHelpers:redrawSidenav')\n this.on('resize._layoutHelpers:redrawSidenav', () => {\n this.isSmallScreen() && !this.isCollapsed() && this._redrawLayoutSidenav()\n })\n\n // Force repaint in IE 10\n if (typeof document.documentMode === 'number' && document.documentMode < 11) {\n this.off('resize._layoutHelpers:ie10RepaintBody')\n this.on('resize._layoutHelpers:ie10RepaintBody', () => {\n if (this.isFixed()) return\n const scrollTop = document.documentElement.scrollTop\n document.body.style.display = 'none'\n document.body.offsetHeight\n document.body.style.display = 'block'\n document.documentElement.scrollTop = scrollTop\n })\n }\n })\n\n this._triggerEvent('init')\n },\n\n destroy() {\n if (!this._initialized) return\n this._initialized = false\n\n this._removeClass('layout-transitioning')\n this._removeInlineStyle()\n this._unbindLayoutAnimationEndEvent()\n this._unbindWindowResizeEvent()\n this._unbindSidenavMouseEvents()\n this.setAutoUpdate(false)\n\n this.off('init._layoutHelpers')\n\n // Remove all listeners except `init`\n this._listeners\n .filter(listener => listener.event !== 'init')\n .forEach(listener => this._listeners.splice(this._listeners.indexOf(listener), 1))\n }\n}\n\n\n// *******************************************************************************\n// * Initialization\n\nif (typeof window !== 'undefined') {\n layoutHelpers.init()\n\n if (layoutHelpers.isMobileDevice() && window.chrome) {\n document.documentElement.classList.add('layout-sidenav-100vh')\n }\n\n // Update layout after page load\n if (document.readyState === 'complete') layoutHelpers.update()\n else document.addEventListener('DOMContentLoaded', function onContentLoaded() {\n layoutHelpers.update()\n document.removeEventListener('DOMContentLoaded', onContentLoaded)\n })\n}\n\n// ---\nexport { layoutHelpers }\n"],"sourceRoot":""}