{"version":3,"sources":["webpack:///../../../src/mixins/menuable/index.ts"],"names":["baseMixins","mixins","Stackable","positionableFactory","Activatable","Detachable","extend","name","props","allowOverflow","Boolean","light","dark","maxWidth","type","Number","String","default","minWidth","nudgeBottom","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","offsetOverflow","positionX","positionY","zIndex","data","activatorNode","absoluteX","absoluteY","activatedBy","activatorFixed","dimensions","activator","top","left","bottom","right","width","height","offsetTop","scrollHeight","offsetLeft","content","relativeYOffset","hasJustFocused","hasWindow","inputActivator","isContentActive","pageWidth","pageYOffset","stackClass","stackMinZIndex","computed","computedLeft","a","this","c","activatorLeft","attach","Math","max","$vuetify","rtl","offsetX","isNaN","min","parseInt","computedTop","offsetY","hasActivator","$slots","$scopedSlots","absoluteYOffset","watch","disabled","val","callDeactivate","isActive","callActivate","beforeMount","window","addEventListener","updateDimensions","beforeDestroy","removeEventListener","methods","absolutePosition","activate","calcLeft","menuWidth","convertToUnit","calcXOverflow","calcTop","calcYOverflow","xOverflow","getOffsetLeft","documentHeight","getInnerHeight","toTop","contentHeight","totalHeight","isOverflowing","deactivate","checkForPageYOffset","getOffsetTop","checkActivatorFixed","el","getActivator","getComputedStyle","position","offsetParent","genActivatorListeners","listeners","options","call","onClick","click","e","openOnClick","clientX","clientY","innerHeight","document","documentElement","clientHeight","pageXOffset","scrollLeft","scrollTop","getRoundedBoundedClientRect","rect","getBoundingClientRect","round","measure","style","marginLeft","marginTop","sneakPeek","cb","requestAnimationFrame","$refs","display","startTransition","Promise","resolve","clientWidth","absolute","offsetRect"],"mappings":"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","file":"js/chunk-2d22cca1.48d2204c.js","sourcesContent":["// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Stackable,\n positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n Activatable,\n Detachable,\n)\n\ninterface dimensions {\n top: number\n left: number\n bottom: number\n right: number\n width: number\n height: number\n offsetTop: number\n scrollHeight: number\n offsetLeft: number\n}\n\ninterface options extends ExtractVue {\n attach: boolean | string | Element\n offsetY: boolean\n offsetX: boolean\n dimensions: {\n activator: dimensions\n content: dimensions\n }\n $refs: {\n content: HTMLElement\n activator: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'menuable',\n\n props: {\n allowOverflow: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [Number, String],\n default: 'auto',\n },\n minWidth: [Number, String],\n nudgeBottom: {\n type: [Number, String],\n default: 0,\n },\n nudgeLeft: {\n type: [Number, String],\n default: 0,\n },\n nudgeRight: {\n type: [Number, String],\n default: 0,\n },\n nudgeTop: {\n type: [Number, String],\n default: 0,\n },\n nudgeWidth: {\n type: [Number, String],\n default: 0,\n },\n offsetOverflow: Boolean,\n positionX: {\n type: Number,\n default: null,\n },\n positionY: {\n type: Number,\n default: null,\n },\n zIndex: {\n type: [Number, String],\n default: null,\n },\n },\n\n data: () => ({\n activatorNode: [] as VNode[],\n absoluteX: 0,\n absoluteY: 0,\n activatedBy: null as EventTarget | null,\n activatorFixed: false,\n dimensions: {\n activator: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n offsetLeft: 0,\n },\n content: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n },\n },\n relativeYOffset: 0,\n hasJustFocused: false,\n hasWindow: false,\n inputActivator: false,\n isContentActive: false,\n pageWidth: 0,\n pageYOffset: 0,\n stackClass: 'v-menu__content--active',\n stackMinZIndex: 6,\n }),\n\n computed: {\n computedLeft () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n const minWidth = Math.max(a.width, c.width)\n let left = 0\n left += activatorLeft\n if (this.left || (this.$vuetify.rtl && !this.right)) left -= (minWidth - a.width)\n if (this.offsetX) {\n const maxWidth = isNaN(Number(this.maxWidth))\n ? a.width\n : Math.min(a.width, Number(this.maxWidth))\n\n left += this.left ? -maxWidth : a.width\n }\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return left\n },\n computedTop () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n let top = 0\n\n if (this.top) top += a.height - c.height\n if (this.attach !== false) top += a.offsetTop\n else top += a.top + this.pageYOffset\n if (this.offsetY) top += this.top ? -a.height : a.height\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return top\n },\n hasActivator (): boolean {\n return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator\n },\n absoluteYOffset (): number {\n return this.pageYOffset - this.relativeYOffset\n },\n },\n\n watch: {\n disabled (val) {\n val && this.callDeactivate()\n },\n isActive (val) {\n if (this.disabled) return\n\n val ? this.callActivate() : this.callDeactivate()\n },\n positionX: 'updateDimensions',\n positionY: 'updateDimensions',\n },\n\n beforeMount () {\n this.hasWindow = typeof window !== 'undefined'\n\n if (this.hasWindow) {\n window.addEventListener('resize', this.updateDimensions, false)\n }\n },\n\n beforeDestroy () {\n if (this.hasWindow) {\n window.removeEventListener('resize', this.updateDimensions, false)\n }\n },\n\n methods: {\n absolutePosition () {\n return {\n offsetTop: this.positionY || this.absoluteY,\n offsetLeft: this.positionX || this.absoluteX,\n scrollHeight: 0,\n top: this.positionY || this.absoluteY,\n bottom: this.positionY || this.absoluteY,\n left: this.positionX || this.absoluteX,\n right: this.positionX || this.absoluteX,\n height: 0,\n width: 0,\n }\n },\n activate () {},\n calcLeft (menuWidth: number) {\n return convertToUnit(this.attach !== false\n ? this.computedLeft\n : this.calcXOverflow(this.computedLeft, menuWidth))\n },\n calcTop () {\n return convertToUnit(this.attach !== false\n ? this.computedTop\n : this.calcYOverflow(this.computedTop))\n },\n calcXOverflow (left: number, menuWidth: number) {\n const xOverflow = left + menuWidth - this.pageWidth + 12\n\n if ((!this.left || this.right) && xOverflow > 0) {\n left = Math.max(left - xOverflow, 0)\n } else {\n left = Math.max(left, 12)\n }\n\n return left + this.getOffsetLeft()\n },\n calcYOverflow (top: number) {\n const documentHeight = this.getInnerHeight()\n const toTop = this.absoluteYOffset + documentHeight\n const activator = this.dimensions.activator\n const contentHeight = this.dimensions.content.height\n const totalHeight = top + contentHeight\n const isOverflowing = toTop < totalHeight\n\n // If overflowing bottom and offset\n // TODO: set 'bottom' position instead of 'top'\n if (isOverflowing &&\n this.offsetOverflow &&\n // If we don't have enough room to offset\n // the overflow, don't offset\n activator.top > contentHeight\n ) {\n top = this.pageYOffset + (activator.top - contentHeight)\n // If overflowing bottom\n } else if (isOverflowing && !this.allowOverflow) {\n top = toTop - contentHeight - 12\n // If overflowing top\n } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n top = this.absoluteYOffset + 12\n }\n\n return top < 12 ? 12 : top\n },\n callActivate () {\n if (!this.hasWindow) return\n\n this.activate()\n },\n callDeactivate () {\n this.isContentActive = false\n\n this.deactivate()\n },\n checkForPageYOffset () {\n if (this.hasWindow) {\n this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n }\n },\n checkActivatorFixed () {\n if (this.attach !== false) {\n this.activatorFixed = false\n return\n }\n let el = this.getActivator()\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n this.activatorFixed = true\n return\n }\n el = el.offsetParent as HTMLElement\n }\n this.activatorFixed = false\n },\n deactivate () {},\n genActivatorListeners () {\n const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n const onClick = listeners.click\n\n if (onClick) {\n listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n if (this.openOnClick) {\n onClick && onClick(e)\n }\n\n this.absoluteX = e.clientX\n this.absoluteY = e.clientY\n }\n }\n\n return listeners\n },\n getInnerHeight () {\n if (!this.hasWindow) return 0\n\n return window.innerHeight ||\n document.documentElement.clientHeight\n },\n getOffsetLeft () {\n if (!this.hasWindow) return 0\n\n return window.pageXOffset ||\n document.documentElement.scrollLeft\n },\n getOffsetTop () {\n if (!this.hasWindow) return 0\n\n return window.pageYOffset ||\n document.documentElement.scrollTop\n },\n getRoundedBoundedClientRect (el: Element) {\n const rect = el.getBoundingClientRect()\n return {\n top: Math.round(rect.top),\n left: Math.round(rect.left),\n bottom: Math.round(rect.bottom),\n right: Math.round(rect.right),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n }\n },\n measure (el: HTMLElement) {\n if (!el || !this.hasWindow) return null\n\n const rect = this.getRoundedBoundedClientRect(el)\n\n // Account for activator margin\n if (this.attach !== false) {\n const style = window.getComputedStyle(el)\n\n rect.left = parseInt(style.marginLeft!)\n rect.top = parseInt(style.marginTop!)\n }\n\n return rect\n },\n sneakPeek (cb: () => void) {\n requestAnimationFrame(() => {\n const el = this.$refs.content\n\n if (!el || el.style.display !== 'none') {\n cb()\n return\n }\n\n el.style.display = 'inline-block'\n cb()\n el.style.display = 'none'\n })\n },\n startTransition () {\n return new Promise(resolve => requestAnimationFrame(() => {\n this.isContentActive = this.hasJustFocused = this.isActive\n resolve()\n }))\n },\n updateDimensions () {\n this.hasWindow = typeof window !== 'undefined'\n this.checkActivatorFixed()\n this.checkForPageYOffset()\n this.pageWidth = document.documentElement.clientWidth\n\n const dimensions: any = {\n activator: { ...this.dimensions.activator },\n content: { ...this.dimensions.content },\n }\n\n // Activator should already be shown\n if (!this.hasActivator || this.absolute) {\n dimensions.activator = this.absolutePosition()\n } else {\n const activator = this.getActivator()\n if (!activator) return\n\n dimensions.activator = this.measure(activator)\n dimensions.activator.offsetLeft = activator.offsetLeft\n if (this.attach !== false) {\n // account for css padding causing things to not line up\n // this is mostly for v-autocomplete, hopefully it won't break anything\n dimensions.activator.offsetTop = activator.offsetTop\n } else {\n dimensions.activator.offsetTop = 0\n }\n }\n\n // Display and hide to get dimensions\n this.sneakPeek(() => {\n if (this.$refs.content) {\n if (this.$refs.content.offsetParent) {\n const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n this.relativeYOffset = window.pageYOffset + offsetRect.top\n dimensions.activator.top -= this.relativeYOffset\n dimensions.activator.left -= window.pageXOffset + offsetRect.left\n }\n\n dimensions.content = this.measure(this.$refs.content)\n }\n\n this.dimensions = dimensions\n })\n },\n },\n})\n"],"sourceRoot":""}