{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///./src/components/NavigationDrawer.vue?5f42","webpack:///./src/components/NavigationDrawer.vue?2d85","webpack:///src/components/NavigationDrawer.vue","webpack:///./src/components/NavigationDrawer.vue?b9ac","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///./src/components/NavigationDrawer.vue","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/mixins/overlayable/index.ts"],"names":["breakpoints","ALIGNMENT","makeProps","props","prefix","def","alignValidator","str","alignProps","type","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","justify","alignContent","classMap","breakpointClass","className","val","breakpoint","prop","cache","name","functional","tag","dense","noGutters","render","children","cacheKey","String","classList","value","h","data","staticClass","class","_vm","this","_h","$createElement","_c","_self","attrs","_l","item","i","heading","mini","key","_v","_s","_e","scopedSlots","_u","fn","staticStyle","icon","text","proxy","model","callback","$$v","$set","expression","child","target","href","domProps","disabled","staticRenderFns","mounted","isActive","$store","state","user","drawer","watch","commit","computed","navigationMenu","userMenu","baseMixins","mixins","directives","ClickOutside","Resize","Touch","provide","isInNav","bottom","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","height","Number","app","miniVariant","miniVariantWidth","permanent","right","src","stateless","temporary","touchless","width","isMouseover","touchArea","left","stackMinZIndex","applicationProperty","classes","themeClasses","computedMaxHeight","$vuetify","application","computedTop","computedTransform","computedWidth","isMiniVariant","hasApp","isBottom","isMobile","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","styles","translate","top","maxHeight","transform","$route","prev","removeOverlay","beforeMount","methods","calculateTouchArea","parent","$el","parentRect","closeConditional","genAppend","genPosition","genBackground","image","$scopedSlots","img","VImg","genDirectives","handler","include","getOpenDependentElements","swipeRight","genListeners","on","transitionend","e","resizeEvent","document","window","slot","genPrepend","genContent","$slots","genBorder","init","onRouteChange","swipeLeft","Math","updateApplication","isNaN","updateMiniVariant","$emit","setBackgroundColor","style","component","VCol","VDivider","VIcon","VList","VListGroup","VListItem","VListItemAction","VListItemAvatar","VListItemContent","VListItemTitle","VNavigationDrawer","VRow","VSubheader","absolute","color","dark","opacity","zIndex","__scrim","computedOpacity","handleGesture","wrapper","touchendY","dirRatio","minDistance","touchendX","touchstartX","touchstartY","touch","event","createHandlers","touchmoveX","touchmoveY","offsetX","offsetY","up","down","start","move","end","touchstart","touchend","touchmove","inserted","binding","el","options","passive","handlers","vnode","eventName","unbind","inset","Boolean","$listeners","mobileBreakpoint","v","includes","mobile","mobileWidth","parseInt","isNumber","created","$attrs","hasOwnProperty","hideOverlay","overlayColor","overlayOpacity","animationFrame","overlay","genOverlay","beforeDestroy","createOverlay","propsData","requestAnimationFrame","showScroll","cancelAnimationFrame","scrollListener","checkPath","hasScrollbar","Node","shouldScroll","delta","isInside","path","composedPath","dialog","$refs","selected","index","hideScroll"],"mappings":"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","file":"js/chunk-a8a4bf9c.7c52c681.js","sourcesContent":["import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=style&index=0&lang=sass&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{attrs:{\"app\":\"\",\"color\":\"#212121\",\"persistent\":\"\",\"permanent\":\"\",\"mini-variant\":\"\",\"enable-resize-watcher\":\"\",\"width\":\"180\"}},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{staticClass:\"px-2\"},[_c('a',{attrs:{\"href\":\"/\"}},[_c('v-list-item-avatar',[_c('img',{attrs:{\"alt\":\"meteron-logo\",\"src\":\"/logo.png\"}})])],1)]),_vm._l((_vm.navigationMenu),function(item,i){return [(item.heading && i === 0 && !_vm.mini)?_c('v-row',{key:i,attrs:{\"align-center\":\"\"}},[_c('v-col',[(item.heading)?_c('v-subheader',[_vm._v(\" \"+_vm._s(item.heading)+\" \")]):_vm._e()],1)],1):(item.heading && !_vm.mini)?_c('v-row',{key:i,attrs:{\"align-center\":\"\"}},[_c('v-col',[(item.heading)?_c('v-subheader',[_vm._v(\" \"+_vm._s(item.heading)+\" \")]):_vm._e()],1)],1):(item.divider)?_c('v-divider',{key:i}):(item.children)?_c('v-list-group',{key:i,staticClass:\"v-list-group--default\",attrs:{\"no-action\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-action',{staticStyle:{\"iconify {\\n color\":\"red\"}},[_c('v-icon',{staticClass:\"secondary--text\"},[_vm._v(_vm._s(item.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.text))])],1)]},proxy:true}],null,true),model:{value:(item.model),callback:function ($$v) {_vm.$set(item, \"model\", $$v)},expression:\"item.model\"}},_vm._l((item.children),function(child,i){return _c('span',{key:i,attrs:{\"link\":\"\",\"to\":!child.target ? child.href : null,\"href\":child.target ? child.href : null,\"ripple\":\"\",\"router\":!child.target,\"target\":child.target}},[_c('v-list-group',{attrs:{\"value\":true,\"no-action\":\"\",\"sub-group\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(child.text)}})],1)]},proxy:true}],null,true)},_vm._l((child.children),function(child,i){return _c('v-list-item',{key:i,attrs:{\"link\":\"\",\"to\":!child.target ? child.href : null,\"href\":child.target ? child.href : null,\"ripple\":\"\",\"router\":!child.target,\"target\":child.target}},[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(child.text)}})],1)}),1)],1)}),0):_c('span',{key:i},[_c('v-list-item',{attrs:{\"to\":!item.target ? item.href : null,\"href\":item.target ? item.href : null,\"ripple\":\"\",\"router\":!item.target,\"target\":item.target,\"disabled\":item.disabled}},[(item.icon)?_c('v-list-item-action',[_c('v-icon',{staticClass:\"secondary--text\"},[_vm._v(_vm._s(item.icon))])],1):_vm._e(),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.text)+\" \")])],1)],1)],1)]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationDrawer.vue?vue&type=script&lang=js&\"","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n if (this.expandOnHover) {\n on.mouseenter = () => (this.isMouseover = true)\n on.mouseleave = () => (this.isMouseover = false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, this.$slots.default)\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.computedWidth)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n","import { render, staticRenderFns } from \"./NavigationDrawer.vue?vue&type=template&id=fcaf9d5c&\"\nimport script from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationDrawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavigationDrawer.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\ninstallComponents(component, {VCol,VDivider,VIcon,VList,VListGroup,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemTitle,VNavigationDrawer,VRow,VSubheader})\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'mobile',\n\n props: {\n mobileBreakpoint: {\n type: [Number, String] as PropType,\n default (): number | BreakpointName | undefined {\n // Avoid destroying unit\n // tests for users\n return this.$vuetify\n ? this.$vuetify.breakpoint.mobileBreakpoint\n : undefined\n },\n validator: v => (\n !isNaN(Number(v)) ||\n ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n ),\n },\n },\n\n computed: {\n isMobile (): boolean {\n const {\n mobile,\n width,\n name,\n mobileBreakpoint,\n } = this.$vuetify.breakpoint\n\n // Check if local mobileBreakpoint matches\n // the application's mobileBreakpoint\n if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n const isNumber = !isNaN(mobileWidth)\n\n return isNumber\n ? width < mobileWidth\n : name === this.mobileBreakpoint\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n deprecate('mobile-break-point', 'mobile-breakpoint', this)\n }\n },\n})\n","// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n activeZIndex: number\n}\n\ninterface options {\n absolute?: boolean\n $refs: {\n dialog?: HTMLElement\n content?: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'overlayable',\n\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String],\n },\n\n data () {\n return {\n animationFrame: 0,\n overlay: null as InstanceType | null,\n }\n },\n\n watch: {\n hideOverlay (value) {\n if (!this.isActive) return\n\n if (value) this.removeOverlay()\n else this.genOverlay()\n },\n },\n\n beforeDestroy () {\n this.removeOverlay()\n },\n\n methods: {\n createOverlay () {\n const overlay = new VOverlay({\n propsData: {\n absolute: this.absolute,\n value: false,\n color: this.overlayColor,\n opacity: this.overlayOpacity,\n },\n })\n\n overlay.$mount()\n\n const parent = this.absolute\n ? this.$el.parentNode\n : document.querySelector('[data-app]')\n\n parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n this.overlay = overlay\n },\n genOverlay () {\n this.hideScroll()\n\n if (this.hideOverlay) return\n\n if (!this.overlay) this.createOverlay()\n\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1)\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el)\n }\n\n this.overlay.value = true\n })\n\n return true\n },\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay (showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (\n !this.overlay ||\n !this.overlay.$el ||\n !this.overlay.$el.parentNode ||\n this.overlay.value\n ) return\n\n this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n this.overlay.$destroy()\n this.overlay = null\n })\n\n // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n cancelAnimationFrame(this.animationFrame)\n\n this.overlay.value = false\n }\n\n showScroll && this.showScroll()\n },\n scrollListener (e: WheelEvent & KeyboardEvent) {\n if (e.type === 'keydown') {\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n // https://github.com/vuetifyjs/vuetify/issues/4715\n (e.target as HTMLElement).isContentEditable\n ) return\n\n const up = [keyCodes.up, keyCodes.pageup]\n const down = [keyCodes.down, keyCodes.pagedown]\n\n if (up.includes(e.keyCode)) {\n (e as any).deltaY = -1\n } else if (down.includes(e.keyCode)) {\n (e as any).deltaY = 1\n } else {\n return\n }\n }\n\n if (e.target === this.overlay ||\n (e.type !== 'keydown' && e.target === document.body) ||\n this.checkPath(e)) e.preventDefault()\n },\n hasScrollbar (el?: Element) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ['auto', 'scroll'].includes(style.overflowY!) && el.scrollHeight > el.clientHeight\n },\n shouldScroll (el: Element, delta: number) {\n if (el.scrollTop === 0 && delta < 0) return true\n return el.scrollTop + el.clientHeight === el.scrollHeight && delta > 0\n },\n isInside (el: Element, parent: Element): boolean {\n if (el === parent) {\n return true\n } else if (el === null || el === document.body) {\n return false\n } else {\n return this.isInside(el.parentNode as Element, parent)\n }\n },\n checkPath (e: WheelEvent) {\n const path = e.path || this.composedPath(e)\n const delta = e.deltaY\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog\n // getSelection returns null in firefox in some edge cases, can be ignored\n const selected = window.getSelection()!.anchorNode as Element\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return this.shouldScroll(dialog, delta)\n }\n return true\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (el === document) return true\n if (el === document.documentElement) return true\n if (el === this.$refs.content) return true\n\n if (this.hasScrollbar(el as Element)) return this.shouldScroll(el as Element, delta)\n }\n\n return true\n },\n /**\n * Polyfill for Event.prototype.composedPath\n */\n composedPath (e: WheelEvent): EventTarget[] {\n if (e.composedPath) return e.composedPath()\n\n const path = []\n let el = e.target as Element\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n\n return path\n }\n\n el = el.parentElement!\n }\n return path\n },\n hideScroll () {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement!.classList.add('overflow-y-hidden')\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener as EventHandlerNonNull, { passive: false })\n window.addEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n }\n },\n showScroll () {\n document.documentElement!.classList.remove('overflow-y-hidden')\n window.removeEventListener('wheel', this.scrollListener as EventHandlerNonNull)\n window.removeEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n },\n },\n})\n"],"sourceRoot":""}