{"version":3,"file":"js/vendor/layout-helpers-4088f96ffb3204acc8f3.js","mappings":"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","sources":["webpack://camp/./vendor/assets/javascripts/layout-helpers.js"],"sourcesContent":["// 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"],"names":["TRANSITION_EVENTS","TRANSITION_PROPERTIES","requiredParam","name","Error","concat","layoutHelpers","CONTAINER","window","document","documentElement","LAYOUT_BREAKPOINT","RESIZE_DELAY","_curStyle","_styleEl","_resizeTimeout","_resizeCallback","_transitionCallback","_transitionCallbackTimeout","_listeners","_initialized","_autoUpdate","_lastWindowHeight","_addClass","cls","el","arguments","length","undefined","this","split","forEach","c","classList","add","_removeClass","remove","_hasClass","result","contains","_supportsTransitionEnd","QUnit","body","evnt","style","_getAnimationDuration","duration","getComputedStyle","transitionDuration","parseFloat","indexOf","_triggerWindowEvent","event","createEvent","Event","initEvent","dispatchEvent","fireEvent","createEventObject","_triggerEvent","filter","listener","callback","call","_updateInlineStyle","navbarHeight","footerHeight","createElement","type","head","appendChild","newStyle","replace","textContent","_removeInlineStyle","removeChild","_redrawLayoutSidenav","layoutSidenav","getLayoutSidenav","querySelector","inner","scrollTop","pageScrollTop","display","offsetHeight","_getNavbarHeight","_this","layoutNavbar","getLayoutNavbar","isSmallScreen","getBoundingClientRect","height","clonedEl","cloneNode","id","visibility","position","Array","prototype","slice","querySelectorAll","parentNode","insertBefore","_getFooterHeight","layoutFooter","getLayoutFooter","_bindLayoutAnimationEndEvent","modifier","cb","_this2","sidenav","getSidenav","e","target","_unbindLayoutAnimationEndEvent","addEventListener","setTimeout","_this3","clearTimeout","removeEventListener","_bindWindowResizeEvent","_this4","_unbindWindowResizeEvent","_setSidenavHoverState","hovered","_setCollapsed","collapsed","_this5","_findParent","tagName","toUpperCase","_bindSidenavMouseEvents","_this6","_sidenavMouseEnter","_sidenavMouseLeave","_windowTouchStart","_unbindSidenavMouseEvents","isOffcanvas","getLayoutContainer","isMobileDevice","orientation","navigator","userAgent","innerWidth","clientWidth","isLayout1","isCollapsed","isFixed","isNavbarFixed","isFooterFixed","isReversed","setCollapsed","_this7","animate","toggleCollapsed","setPosition","fixed","offcanvas","update","setNavbarFixed","setFooterFixed","setReversed","setAutoUpdate","_this8","enable","on","off","_event$split2","_toArray","_event","namespace","join","push","_this9","_event$split4","splice","init","_this10","documentMode","destroy","_this11","chrome","readyState","onContentLoaded"],"sourceRoot":""}