1 |
- {"version":3,"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport '../../stylus/components/_navigation-drawer.styl'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Dependent from '../../mixins/dependent'\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, { TouchWrapper } from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// TYpes\nimport { VNode } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\nexport default mixins(\n Applicationable('left', [\n 'miniVariant',\n 'right',\n 'width'\n ]),\n Dependent,\n Overlayable,\n SSRBootable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch\n },\n\n props: {\n clipped: Boolean,\n disableRouteWatcher: Boolean,\n disableResizeWatcher: Boolean,\n height: {\n type: [Number, String],\n default: '100%'\n },\n floating: Boolean,\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 80\n },\n mobileBreakPoint: {\n type: [Number, String],\n default: 1264\n },\n permanent: Boolean,\n right: Boolean,\n stateless: Boolean,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 300\n },\n value: { required: false } as PropValidator<any>\n },\n\n data: () => ({\n isActive: false,\n touchArea: {\n left: 0,\n right: 0\n }\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 calculatedTransform (): number {\n if (this.isActive) return 0\n\n return this.right\n ? this.calculatedWidth\n : -this.calculatedWidth\n },\n calculatedWidth (): number {\n return parseInt(\n this.miniVariant\n ? this.miniVariantWidth\n : this.width\n )\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\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--mini-variant': this.miniVariant,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses\n }\n },\n hasApp (): boolean {\n return this.app &&\n (!this.isMobile && !this.temporary)\n },\n isMobile (): boolean {\n return !this.stateless &&\n !this.permanent &&\n !this.temporary &&\n this.$vuetify.breakpoint.width < parseInt(this.mobileBreakPoint, 10)\n },\n marginTop (): number {\n if (!this.hasApp) return 0\n\n let marginTop = this.$vuetify.application.bar\n\n marginTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return marginTop\n },\n maxHeight (): number | null {\n if (!this.hasApp) return null\n\n const maxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return maxHeight\n\n return maxHeight + this.$vuetify.application.top\n },\n reactsToClick (): boolean {\n return !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n },\n reactsToMobile (): boolean {\n return !this.disableResizeWatcher &&\n !this.stateless &&\n !this.permanent &&\n !this.temporary\n },\n reactsToRoute (): boolean {\n return !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n },\n resizeIsDisabled (): boolean {\n return this.disableResizeWatcher || this.stateless\n },\n showOverlay (): boolean {\n return this.isActive &&\n (this.isMobile || this.temporary)\n },\n styles (): object {\n const styles = {\n height: convertToUnit(this.height),\n marginTop: `${this.marginTop}px`,\n maxHeight: this.maxHeight != null ? `calc(100% - ${+this.maxHeight}px)` : undefined,\n transform: `translateX(${this.calculatedTransform}px)`,\n width: `${this.calculatedWidth}px`\n }\n\n return styles\n }\n },\n\n watch: {\n $route () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n isActive (val) {\n this.$emit('input', val)\n this.callUpdate()\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.resizeIsDisabled ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n this.callUpdate()\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) {\n this.isActive = true\n }\n this.callUpdate()\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n temporary () {\n this.callUpdate()\n },\n value (val) {\n if (this.permanent) return\n\n // TODO: referring to this directly causes type errors\n // all over the place for some reason\n const _this = this as any\n if (val == null) return _this.init()\n\n if (val !== this.isActive) this.isActive = val\n }\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n if (!this.$el.parentNode) return\n const parentRect = (this.$el.parentNode as Element).getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50\n }\n },\n closeConditional () {\n return this.isActive && this.reactsToClick\n },\n genDirectives () {\n const directives = [{\n name: 'click-outside',\n value: () => (this.isActive = false),\n args: {\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements\n }\n }]\n\n !this.touchless && directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight\n }\n } as any)\n\n return directives\n },\n /**\n * Sets state before mount to avoid\n * entry transitions in SSR\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 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 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 /**\n * Update the application layout\n */\n updateApplication () {\n return !this.isActive ||\n this.temporary ||\n this.isMobile\n ? 0\n : this.calculatedWidth\n }\n },\n\n render (h): VNode {\n const data = {\n 'class': this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: {\n click: () => {\n if (!this.miniVariant) return\n\n this.$emit('update:miniVariant', false)\n },\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\n return h('aside', data, [\n this.$slots.default,\n h('div', { 'class': 'v-navigation-drawer__border' })\n ])\n }\n})\n"],"sourceRoot":""}
|