{"version":3,"sources":["webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/mixins/applicationable/index.ts","webpack:///./src/layouts/default/Drawer.vue?f900","webpack:///src/layouts/default/Drawer.vue","webpack:///./src/layouts/default/Drawer.vue?9392","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///./src/layouts/default/Drawer.vue","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/mixins/bootable/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/mixins/dependent/index.ts","webpack:///./src/layouts/default/Drawer.vue?b23a","webpack:///../../src/util/dom.ts","webpack:///../../../src/mixins/overlayable/index.ts"],"names":["events","name","props","app","Boolean","computed","applicationProperty","watch","prev","this","removeApplication","activated","created","i","length","mounted","deactivated","destroyed","methods","callUpdate","force","updateApplication","_vm","_h","$createElement","_c","_self","attrs","dark","$vuetify","rtl","drawerImage","image","mini","on","$event","scopedSlots","_u","key","fn","_b","gradient","model","value","callback","$$v","drawer","expression","staticClass","items","logout","_v","staticRenderFns","baseMixins","mixins","directives","ClickOutside","Resize","Touch","provide","isInNav","tag","bottom","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","height","type","Number","default","miniVariant","miniVariantWidth","permanent","right","src","String","stateless","temporary","touchless","width","data","isMouseover","touchArea","left","stackMinZIndex","classes","themeClasses","computedMaxHeight","application","computedTop","computedTransform","computedWidth","isMiniVariant","hasApp","isBottom","isMobile","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","styles","translate","top","maxHeight","transform","$route","isActive","removeOverlay","val","beforeMount","calculateTouchArea","parent","$el","parentRect","closeConditional","genAppend","genPosition","genBackground","$scopedSlots","img","VImg","genDirectives","handler","include","getOpenDependentElements","swipeRight","genListeners","transitionend","e","resizeEvent","document","window","slot","genPrepend","genContent","$slots","genBorder","init","onRouteChange","swipeLeft","Math","isNaN","updateMiniVariant","$emit","render","children","h","setBackgroundColor","class","style","component","VDivider","VIcon","VListItem","VListItemIcon","VListItemTitle","VList","VNavigationDrawer","eager","isBooted","hasContent","showLazyContent","content","defaultConditional","checkEvent","checkIsActive","root","ShadowRoot","elements","binding","el","directive","setTimeout","handleShadow","inserted","onClick","onMousedown","lastMousedownWasOutside","unbind","hasIntersect","intersect","alt","contain","lazySrc","options","rootMargin","threshold","undefined","position","sizes","srcset","transition","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","hasError","computedAspectRatio","normalisedSrc","aspect","aspectRatio","__cachedImage","backgroundImage","backgroundPosition","mode","loadImage","lazyImg","onLoad","endsWith","startsWith","naturalHeight","onError","getSrc","err","pollForSize","timeout","poll","__genPlaceholder","placeholder","appear","node","role","modifiers","once","searchChildren","results","index","child","closeDependents","isDependent","openDependents","getOpenDependents","result","getClickableDependentElements","$refs","overlay","composed","hideOverlay","overlayColor","overlayOpacity","animationFrame","genOverlay","beforeDestroy","createOverlay","propsData","absolute","color","opacity","requestAnimationFrame","showScroll","cancelAnimationFrame","scrollListener","includes","up","down","checkPath","hasScrollbar","Node","shouldScroll","alreadyAtTop","alreadyAtBottom","scrollingUp","delta","scrollingDown","isInside","path","dialog","selected","hideScroll","breakpoint","passive"],"mappings":"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","file":"js/chunk-4fce868a.369fb253.js","sourcesContent":["import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","import { factory as PositionableFactory } from '../positionable'\nimport { TargetProp } from 'vuetify/types/services/application'\n\n// Util\nimport mixins from '../../util/mixins'\n\nexport default function applicationable (value: TargetProp, events: string[] = []) {\n /* @vue/component */\n return mixins(PositionableFactory(['absolute', 'fixed'])).extend({\n name: 'applicationable',\n\n props: {\n app: Boolean,\n },\n\n computed: {\n applicationProperty (): TargetProp {\n return value\n },\n },\n\n watch: {\n // If previous value was app\n // reset the provided prop\n app (x: boolean, prev: boolean) {\n prev\n ? this.removeApplication(true)\n : this.callUpdate()\n },\n applicationProperty (newVal, oldVal) {\n this.$vuetify.application.unregister(this._uid, oldVal)\n },\n },\n\n activated () {\n this.callUpdate()\n },\n\n created () {\n for (let i = 0, length = events.length; i < length; i++) {\n this.$watch(events[i], this.callUpdate)\n }\n this.callUpdate()\n },\n\n mounted () {\n this.callUpdate()\n },\n\n deactivated () {\n this.removeApplication()\n },\n\n destroyed () {\n this.removeApplication()\n },\n\n methods: {\n callUpdate () {\n if (!this.app) return\n\n this.$vuetify.application.register(\n this._uid,\n this.applicationProperty,\n this.updateApplication()\n )\n },\n removeApplication (force = false) {\n if (!force && !this.app) return\n\n this.$vuetify.application.unregister(\n this._uid,\n this.applicationProperty\n )\n },\n updateApplication: () => 0,\n },\n })\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{attrs:{\"id\":\"default-drawer\",\"dark\":_vm.dark,\"right\":_vm.$vuetify.rtl,\"src\":_vm.drawerImage ? _vm.image : '',\"mini-variant\":_vm.mini,\"mini-variant-width\":\"80\",\"app\":\"\",\"width\":\"260\"},on:{\"update:miniVariant\":function($event){_vm.mini=$event},\"update:mini-variant\":function($event){_vm.mini=$event}},scopedSlots:_vm._u([(_vm.drawerImage)?{key:\"img\",fn:function(props){return [_c('v-img',_vm._b({key:_vm.image,attrs:{\"gradient\":_vm.gradient}},'v-img',props,false))]}}:null],null,true),model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('div',{staticClass:\"px-2\"},[_c('default-drawer-header'),_c('v-divider',{staticClass:\"mx-3 mb-2\"}),_c('default-list',{attrs:{\"items\":_vm.items}}),_c('v-list-item',{on:{\"click\":_vm.logout}},[_c('v-list-item-icon',{staticClass:\"my-2 align-self-center\"},[_c('v-icon',[_vm._v(\"mdi-logout\")])],1),_c('v-list-item-title',[_vm._v(\"Salir\")])],1)],1),_c('div',{staticClass:\"pt-12\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n\n \n \n\n \n\n \n\n \n \n mdi-logout\n \n Salir\n \n\n \n\n \n \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!./Drawer.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!./Drawer.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 \"./Drawer.vue?vue&type=template&id=1aec90fc&\"\nimport script from \"./Drawer.vue?vue&type=script&lang=js&\"\nexport * from \"./Drawer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Drawer.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 { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\ninstallComponents(component, {VDivider,VIcon,VImg,VListItem,VListItemIcon,VListItemTitle,VNavigationDrawer})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Utilities\nimport { removed } from '../../util/console'\n\n// Types\nimport Vue, { VNode } from 'vue'\ninterface Toggleable extends Vue {\n isActive?: boolean\n}\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in \"isActive\" to automatically boot\n * Otherwise can be set manually\n */\n/* @vue/component */\nexport default Vue.extend().extend({\n name: 'bootable',\n\n props: {\n eager: Boolean,\n },\n\n data: () => ({\n isBooted: false,\n }),\n\n computed: {\n hasContent (): boolean | undefined {\n return this.isBooted || this.eager || this.isActive\n },\n },\n\n watch: {\n isActive () {\n this.isBooted = true\n },\n },\n\n created () {\n /* istanbul ignore next */\n if ('lazy' in this.$attrs) {\n removed('lazy', this)\n }\n },\n\n methods: {\n showLazyContent (content?: () => VNode[]): VNode[] {\n return (this.hasContent && content) ? content() : [this.$createElement()]\n },\n },\n})\n","import { attachedRoot } from '../../util/dom'\nimport { VNodeDirective } from 'vue/types/vnode'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirective): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n inserted (el: HTMLElement, binding: ClickOutsideDirective) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n el._clickOutside = {\n lastMousedownWasOutside: true,\n onClick,\n onMousedown,\n }\n },\n\n unbind (el: HTMLElement) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside) return\n app.removeEventListener('click', el._clickOutside.onClick, true)\n app.removeEventListener('mousedown', el._clickOutside.onMousedown, true)\n })\n\n delete el._clickOutside\n },\n}\n\nexport default ClickOutside\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","import Vue from 'vue'\n\nimport mixins from '../../util/mixins'\nimport { VOverlay } from '../../components/VOverlay'\n\ninterface options extends Vue {\n $el: HTMLElement\n $refs: {\n content: HTMLElement\n }\n overlay?: InstanceType\n}\n\ninterface DependentInstance extends Vue {\n isActive?: boolean\n isDependent?: boolean\n}\n\nfunction searchChildren (children: Vue[]): DependentInstance[] {\n const results = []\n for (let index = 0; index < children.length; index++) {\n const child = children[index] as DependentInstance\n if (child.isActive && child.isDependent) {\n results.push(child)\n } else {\n results.push(...searchChildren(child.$children))\n }\n }\n\n return results\n}\n\n/* @vue/component */\nexport default mixins().extend({\n name: 'dependent',\n\n data () {\n return {\n closeDependents: true,\n isActive: false,\n isDependent: true,\n }\n },\n\n watch: {\n isActive (val) {\n if (val) return\n\n const openDependents = this.getOpenDependents()\n for (let index = 0; index < openDependents.length; index++) {\n openDependents[index].isActive = false\n }\n },\n },\n\n methods: {\n getOpenDependents (): any[] {\n if (this.closeDependents) return searchChildren(this.$children)\n\n return []\n },\n getOpenDependentElements (): HTMLElement[] {\n const result = []\n const openDependents = this.getOpenDependents()\n\n for (let index = 0; index < openDependents.length; index++) {\n result.push(...openDependents[index].getClickableDependentElements())\n }\n\n return result\n },\n getClickableDependentElements (): HTMLElement[] {\n const result = [this.$el]\n if (this.$refs.content) result.push(this.$refs.content)\n if (this.overlay) result.push(this.overlay.$el as HTMLElement)\n result.push(...this.getOpenDependentElements())\n\n return result\n },\n },\n})\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!./Drawer.vue?vue&type=style&index=0&lang=sass&\"","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\n}\n","// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n keyCodes,\n addOnceEventListener,\n addPassiveEventListener,\n getZIndex,\n composedPath,\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 this.isActive\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): boolean {\n if (el.hasAttribute('data-app')) return false\n\n const alreadyAtTop = el.scrollTop === 0\n const alreadyAtBottom = el.scrollTop + el.clientHeight === el.scrollHeight\n const scrollingUp = delta < 0\n const scrollingDown = delta > 0\n\n if (!alreadyAtTop && scrollingUp) return true\n if (!alreadyAtBottom && scrollingDown) return true\n if ((alreadyAtTop || alreadyAtBottom)) {\n return this.shouldScroll(el.parentNode as Element, delta)\n }\n\n return false\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 = 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 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":""}