chunk-5887f980.b685a11f.js.map 65.2 KB
Newer Older
Yoelvis Gonzalez's avatar
Yoelvis Gonzalez committed
1
{"version":3,"sources":["webpack:///../../../src/mixins/delayable/index.ts","webpack:///../../../src/mixins/stackable/index.ts","webpack:///../../../src/mixins/activatable/index.ts","webpack:///../../../src/mixins/detachable/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/mixins/dependent/index.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///../../../src/mixins/menuable/index.ts"],"names":["name","props","openDelay","type","Number","default","closeDelay","data","openTimeout","closeTimeout","undefined","methods","clearDelay","clearTimeout","this","runDelay","delay","parseInt","setTimeout","cb","open","close","stackElement","stackExclude","stackMinZIndex","isActive","computed","activeZIndex","window","content","$refs","index","getMaxZIndex","exclude","base","zis","activeElements","document","Math","baseMixins","activator","validator","val","includes","disabled","internalActivator","openOnHover","openOnFocus","Boolean","activatorElement","activatorNode","events","listeners","watch","mounted","slotType","beforeDestroy","addActivatorEvents","keys","Object","key","genActivator","node","on","attrs","genActivatorAttributes","role","String","genActivatorListeners","e","getActivator","target","length","vm","m","Node","getContentSlot","getValueProxy","self","removeActivatorEvents","resetActivator","validateAttachTarget","attach","contentClass","hasDetached","hasContent","beforeMount","Array","deactivated","console","getScopeIdAttrs","scopeId","initDetach","_isDestroyed","defaultConditional","checkEvent","checkIsActive","root","elements","binding","el","directive","handler","handleShadow","callback","ClickOutside","inserted","onClick","onMousedown","app","lastMousedownWasOutside","unbind","searchChildren","results","children","child","closeDependents","isDependent","openDependents","getOpenDependents","getOpenDependentElements","result","getClickableDependentElements","overlay","directives","Resize","provide","isInMenu","theme","auto","closeOnClick","closeOnContentClick","disableKeys","maxHeight","offsetX","offsetY","openOnClick","origin","transition","calculatedTopAuto","defaultOffset","hasJustFocused","listIndex","resizeTimeout","selectedIndex","tiles","activeTile","calculatedLeft","menuWidth","dimensions","parseFloat","calcXOverflow","calcLeft","calculatedMaxHeight","height","calculatedMaxWidth","calculatedMinWidth","minWidth","width","pageWidth","isNaN","calculatedTop","top","calcYOverflow","hasClickableTiles","find","tile","styles","maxWidth","left","transformOrigin","zIndex","isContentActive","next","prev","classList","remove","created","$attrs","hasOwnProperty","activate","requestAnimationFrame","calcScrollPosition","$el","maxScrollTop","calcLeftAuto","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","computedTop","changeListIndex","closeConditional","contains","attributes","id","genTransition","$createElement","genDirectives","value","include","genContent","options","staticClass","class","menuable__content__active","style","ref","click","keydown","onKeyDown","$listeners","getTiles","querySelectorAll","mouseEnterHandler","mouseLeaveHandler","nextTile","prevTile","lastTile","firstTile","onResize","render","arg","h","showLazyContent","light","dark","returnValue","originalValue","save","allowOverflow","nudgeBottom","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","offsetOverflow","positionX","positionY","absoluteX","absoluteY","activatedBy","activatorFixed","bottom","right","offsetTop","scrollHeight","offsetLeft","relativeYOffset","hasWindow","inputActivator","pageYOffset","stackClass","computedLeft","a","c","activatorLeft","hasActivator","$slots","$scopedSlots","absoluteYOffset","absolutePosition","calcTop","xOverflow","documentHeight","toTop","contentHeight","totalHeight","isOverflowing","callActivate","callDeactivate","checkForPageYOffset","checkActivatorFixed","deactivate","getInnerHeight","getOffsetLeft","getOffsetTop","getRoundedBoundedClientRect","rect","measure","sneakPeek","startTransition","Promise","resolve","updateDimensions","offsetRect"],"mappings":"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","file":"js/chunk-5887f980.b685a11f.js","sourcesContent":["import Vue from 'vue'\n\n/**\n * Delayable\n *\n * @mixin\n *\n * Changes the open or close delay time for elements\n */\nexport default Vue.extend<Vue & { isActive?: boolean }>().extend({\n  name: 'delayable',\n\n  props: {\n    openDelay: {\n      type: [Number, String],\n      default: 0,\n    },\n    closeDelay: {\n      type: [Number, String],\n      default: 0,\n    },\n  },\n\n  data: () => ({\n    openTimeout: undefined as number | undefined,\n    closeTimeout: undefined as number | undefined,\n  }),\n\n  methods: {\n    /**\n     * Clear any pending delay timers from executing\n     */\n    clearDelay (): void {\n      clearTimeout(this.openTimeout)\n      clearTimeout(this.closeTimeout)\n    },\n    /**\n     * Runs callback after a specified delay\n     */\n    runDelay (type: 'open' | 'close', cb?: () => void): void {\n      this.clearDelay()\n\n      const delay = parseInt((this as any)[`${type}Delay`], 10)\n\n      ;(this as any)[`${type}Timeout`] = setTimeout(cb || (() => {\n        this.isActive = { open: true, close: false }[type]\n      }), delay)\n    },\n  },\n})\n","import Vue from 'vue'\n\nimport { getZIndex } from '../../util/helpers'\n\ninterface options extends Vue {\n  $refs: {\n    content: Element\n  }\n}\n\n/* @vue/component */\nexport default Vue.extend<options>().extend({\n  name: 'stackable',\n\n  data () {\n    return {\n      stackElement: null as Element | null,\n      stackExclude: null as Element[] | null,\n      stackMinZIndex: 0,\n      isActive: false,\n    }\n  },\n  computed: {\n    activeZIndex (): number {\n      if (typeof window === 'undefined') return 0\n\n      const content = this.stackElement || this.$refs.content\n      // Return current zindex if not active\n\n      const index = !this.isActive\n        ? getZIndex(content)\n        : this.getMaxZIndex(this.stackExclude || [content]) + 2\n\n      if (index == null) return index\n\n      // Return max current z-index (excluding self) + 2\n      // (2 to leave room for an overlay below, if needed)\n      return parseInt(index)\n    },\n  },\n  methods: {\n    getMaxZIndex (exclude: Element[] = []) {\n      const base = this.$el\n      // Start with lowest allowed z-index or z-index of\n      // base component's element, whichever is greater\n      const zis = [this.stackMinZIndex, getZIndex(base)]\n      // Convert the NodeList to an array to\n      // prevent an Edge bug with Symbol.iterator\n      // https://github.com/vuetifyjs/vuetify/issues/2146\n      const activeElements = [\n        ...document.getElementsByClassName('v-menu__content--active'),\n        ...document.getElementsByClassName('v-dialog__content--active'),\n      ]\n\n      // Get z-index for all active dialogs\n      for (let index = 0; index < activeElements.length; index++) {\n        if (!exclude.includes(activeElements[index])) {\n          zis.push(getZIndex(activeElements[index]))\n        }\n      }\n\n      return Math.max(...zis)\n    },\n  },\n})\n","// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n  Delayable,\n  Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'activatable',\n\n  props: {\n    activator: {\n      default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n      validator: (val: string | object) => {\n        return ['string', 'object'].includes(typeof val)\n      },\n    },\n    disabled: Boolean,\n    internalActivator: Boolean,\n    openOnHover: Boolean,\n    openOnFocus: Boolean,\n  },\n\n  data: () => ({\n    // Do not use this directly, call getActivator() instead\n    activatorElement: null as HTMLElement | null,\n    activatorNode: [] as VNode[],\n    events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n    listeners: {} as Listeners,\n  }),\n\n  watch: {\n    activator: 'resetActivator',\n    openOnFocus: 'resetActivator',\n    openOnHover: 'resetActivator',\n  },\n\n  mounted () {\n    const slotType = getSlotType(this, 'activator', true)\n\n    if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n      consoleError(`The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, this)\n    }\n\n    this.addActivatorEvents()\n  },\n\n  beforeDestroy () {\n    this.removeActivatorEvents()\n  },\n\n  methods: {\n    addActivatorEvents () {\n      if (\n        !this.activator ||\n        this.disabled ||\n        !this.getActivator()\n      ) return\n\n      this.listeners = this.genActivatorListeners()\n      const keys = Object.keys(this.listeners)\n\n      for (const key of keys) {\n        this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n      }\n    },\n    genActivator () {\n      const node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n        on: this.genActivatorListeners(),\n        attrs: this.genActivatorAttributes(),\n      })) || []\n\n      this.activatorNode = node\n\n      return node\n    },\n    genActivatorAttributes () {\n      return {\n        role: 'button',\n        'aria-haspopup': true,\n        'aria-expanded': String(this.isActive),\n      }\n    },\n    genActivatorListeners () {\n      if (this.disabled) return {}\n\n      const listeners: Listeners = {}\n\n      if (this.openOnHover) {\n        listeners.mouseenter = (e: MouseEvent) => {\n          this.getActivator(e)\n          this.runDelay('open')\n        }\n        listeners.mouseleave = (e: MouseEvent) => {\n          this.getActivator(e)\n          this.runDelay('close')\n        }\n      } else {\n        listeners.click = (e: MouseEvent) => {\n          const activator = this.getActivator(e)\n          if (activator) activator.focus()\n\n          e.stopPropagation()\n\n          this.isActive = !this.isActive\n        }\n      }\n\n      if (this.openOnFocus) {\n        listeners.focus = (e: FocusEvent) => {\n          this.getActivator(e)\n\n          e.stopPropagation()\n\n          this.isActive = !this.isActive\n        }\n      }\n\n      return listeners\n    },\n    getActivator (e?: Event): HTMLElement | null {\n      // If we've already fetched the activator, re-use\n      if (this.activatorElement) return this.activatorElement\n\n      let activator = null\n\n      if (this.activator) {\n        const target = this.internalActivator ? this.$el : document\n\n        if (typeof this.activator === 'string') {\n          // Selector\n          activator = target.querySelector(this.activator)\n        } else if ((this.activator as any).$el) {\n          // Component (ref)\n          activator = (this.activator as any).$el\n        } else {\n          // HTMLElement | Element\n          activator = this.activator\n        }\n      } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n        // Use the contents of the activator slot\n        // There's either only one element in it or we\n        // don't have a click event to use as a last resort\n        const vm = this.activatorNode[0].componentInstance\n        if (\n          vm &&\n          vm.$options.mixins && //                         Activatable is indirectly used via Menuable\n          vm.$options.mixins.some((m: any) => m.options && ['activatable', 'menuable'].includes(m.options.name))\n        ) {\n          // Activator is actually another activatible component, use its activator (#8846)\n          activator = (vm as any).getActivator()\n        } else {\n          activator = this.activatorNode[0].elm as HTMLElement\n        }\n      } else if (e) {\n        // Activated by a click or focus event\n        activator = (e.currentTarget || e.target) as HTMLElement\n      }\n\n      // The activator should only be a valid element (Ignore comments and text nodes)\n      this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n      return this.activatorElement\n    },\n    getContentSlot () {\n      return getSlot(this, 'default', this.getValueProxy(), true)\n    },\n    getValueProxy (): object {\n      const self = this\n      return {\n        get value () {\n          return self.isActive\n        },\n        set value (isActive: boolean) {\n          self.isActive = isActive\n        },\n      }\n    },\n    removeActivatorEvents () {\n      if (\n        !this.activator ||\n        !this.activatorElement\n      ) return\n\n      const keys = Object.keys(this.listeners)\n\n      for (const key of keys) {\n        (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n      }\n\n      this.listeners = {}\n    },\n    resetActivator () {\n      this.removeActivatorEvents()\n      this.activatorElement = null\n      this.getActivator()\n      this.addActivatorEvents()\n    },\n  },\n})\n","// Mixins\nimport Bootable from '../bootable'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { PropOptions } from 'vue'\nimport { VNode } from 'vue/types'\n\ninterface options extends Vue {\n  $el: HTMLElement\n  $refs: {\n    content: HTMLElement\n  }\n}\n\nfunction validateAttachTarget (val: any) {\n  const type = typeof val\n\n  if (type === 'boolean' || type === 'string') return true\n\n  return val.nodeType === Node.ELEMENT_NODE\n}\n\n/* @vue/component */\nexport default mixins<options &\n  /* eslint-disable indent */\n  ExtractVue<typeof Bootable>\n  /* eslint-enable indent */\n>(Bootable).extend({\n  name: 'detachable',\n\n  props: {\n    attach: {\n      default: false,\n      validator: validateAttachTarget,\n    } as PropOptions<boolean | string | Element>,\n    contentClass: {\n      type: String,\n      default: '',\n    },\n  },\n\n  data: () => ({\n    activatorNode: null as null | VNode | VNode[],\n    hasDetached: false,\n  }),\n\n  watch: {\n    attach () {\n      this.hasDetached = false\n      this.initDetach()\n    },\n    hasContent () {\n      this.$nextTick(this.initDetach)\n    },\n  },\n\n  beforeMount () {\n    this.$nextTick(() => {\n      if (this.activatorNode) {\n        const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n\n        activator.forEach(node => {\n          if (!node.elm) return\n          if (!this.$el.parentNode) return\n\n          const target = this.$el === this.$el.parentNode.firstChild\n            ? this.$el\n            : this.$el.nextSibling\n\n          this.$el.parentNode.insertBefore(node.elm, target)\n        })\n      }\n    })\n  },\n\n  mounted () {\n    this.hasContent && this.initDetach()\n  },\n\n  deactivated () {\n    this.isActive = false\n  },\n\n  beforeDestroy () {\n    // IE11 Fix\n    try {\n      if (\n        this.$refs.content &&\n        this.$refs.content.parentNode\n      ) {\n        this.$refs.content.parentNode.removeChild(this.$refs.content)\n      }\n\n      if (this.activatorNode) {\n        const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n        activator.forEach(node => {\n          node.elm &&\n            node.elm.parentNode &&\n            node.elm.parentNode.removeChild(node.elm)\n        })\n      }\n    } catch (e) { console.log(e) } /* eslint-disable-line no-console */\n  },\n\n  methods: {\n    getScopeIdAttrs () {\n      const scopeId = getObjectValueByPath(this.$vnode, 'context.$options._scopeId')\n\n      return scopeId && {\n        [scopeId]: '',\n      }\n    },\n    initDetach () {\n      if (this._isDestroyed ||\n        !this.$refs.content ||\n        this.hasDetached ||\n        // Leave menu in place if attached\n        // and dev has not changed target\n        this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n        this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n        this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n      ) return\n\n      let target\n      if (this.attach === false) {\n        // Default, detach to app\n        target = document.querySelector('[data-app]')\n      } else if (typeof this.attach === 'string') {\n        // CSS selector\n        target = document.querySelector(this.attach)\n      } else {\n        // DOM Element\n        target = this.attach\n      }\n\n      if (!target) {\n        consoleWarn(`Unable to locate target ${this.attach || '[data-app]'}`, this)\n        return\n      }\n\n      target.appendChild(this.$refs.content)\n\n      this.hasDetached = true\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 (root instanceof ShadowRoot && root.host === e.target) 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.body)\n\n  if (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","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<typeof VOverlay>\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<options>().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","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n  convertToUnit,\n  keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n  Dependent,\n  Delayable,\n  Menuable,\n  Returnable,\n  Roundable,\n  Toggleable,\n  Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-menu',\n\n  directives: {\n    ClickOutside,\n    Resize,\n  },\n\n  provide (): object {\n    return {\n      isInMenu: true,\n      // Pass theme through to default slot\n      theme: this.theme,\n    }\n  },\n\n  props: {\n    auto: Boolean,\n    closeOnClick: {\n      type: Boolean,\n      default: true,\n    },\n    closeOnContentClick: {\n      type: Boolean,\n      default: true,\n    },\n    disabled: Boolean,\n    disableKeys: Boolean,\n    maxHeight: {\n      type: [Number, String],\n      default: 'auto',\n    },\n    offsetX: Boolean,\n    offsetY: Boolean,\n    openOnClick: {\n      type: Boolean,\n      default: true,\n    },\n    openOnHover: Boolean,\n    origin: {\n      type: String,\n      default: 'top left',\n    },\n    transition: {\n      type: [Boolean, String],\n      default: 'v-menu-transition',\n    },\n  },\n\n  data () {\n    return {\n      calculatedTopAuto: 0,\n      defaultOffset: 8,\n      hasJustFocused: false,\n      listIndex: -1,\n      resizeTimeout: 0,\n      selectedIndex: null as null | number,\n      tiles: [] as HTMLElement[],\n    }\n  },\n\n  computed: {\n    activeTile (): HTMLElement | undefined {\n      return this.tiles[this.listIndex]\n    },\n    calculatedLeft (): string {\n      const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n      if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n      return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n    },\n    calculatedMaxHeight (): string {\n      const height = this.auto\n        ? '200px'\n        : convertToUnit(this.maxHeight)\n\n      return height || '0'\n    },\n    calculatedMaxWidth (): string {\n      return convertToUnit(this.maxWidth) || '0'\n    },\n    calculatedMinWidth (): string {\n      if (this.minWidth) {\n        return convertToUnit(this.minWidth) || '0'\n      }\n\n      const minWidth = Math.min(\n        this.dimensions.activator.width +\n        Number(this.nudgeWidth) +\n        (this.auto ? 16 : 0),\n        Math.max(this.pageWidth - 24, 0)\n      )\n\n      const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n        ? minWidth\n        : parseInt(this.calculatedMaxWidth)\n\n      return convertToUnit(Math.min(\n        calculatedMaxWidth,\n        minWidth\n      )) || '0'\n    },\n    calculatedTop (): string {\n      const top = !this.auto\n        ? this.calcTop()\n        : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n      return top || '0'\n    },\n    hasClickableTiles (): boolean {\n      return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n    },\n    styles (): object {\n      return {\n        maxHeight: this.calculatedMaxHeight,\n        minWidth: this.calculatedMinWidth,\n        maxWidth: this.calculatedMaxWidth,\n        top: this.calculatedTop,\n        left: this.calculatedLeft,\n        transformOrigin: this.origin,\n        zIndex: this.zIndex || this.activeZIndex,\n      }\n    },\n  },\n\n  watch: {\n    isActive (val) {\n      if (!val) this.listIndex = -1\n    },\n    isContentActive (val) {\n      this.hasJustFocused = val\n    },\n    listIndex (next, prev) {\n      if (next in this.tiles) {\n        const tile = this.tiles[next]\n        tile.classList.add('v-list-item--highlighted')\n        this.$refs.content.scrollTop = tile.offsetTop - tile.clientHeight\n      }\n\n      prev in this.tiles &&\n        this.tiles[prev].classList.remove('v-list-item--highlighted')\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('full-width')) {\n      removed('full-width', this)\n    }\n  },\n\n  mounted () {\n    this.isActive && this.callActivate()\n  },\n\n  methods: {\n    activate () {\n      // Update coordinates and dimensions of menu\n      // and its activator\n      this.updateDimensions()\n      // Start the transition\n      requestAnimationFrame(() => {\n        // Once transitioning, calculate scroll and top position\n        this.startTransition().then(() => {\n          if (this.$refs.content) {\n            this.calculatedTopAuto = this.calcTopAuto()\n            this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n          }\n        })\n      })\n    },\n    calcScrollPosition () {\n      const $el = this.$refs.content\n      const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n      const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n      return activeTile\n        ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n        : $el.scrollTop\n    },\n    calcLeftAuto () {\n      return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n    },\n    calcTopAuto () {\n      const $el = this.$refs.content\n      const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n      if (!activeTile) {\n        this.selectedIndex = null\n      }\n\n      if (this.offsetY || !activeTile) {\n        return this.computedTop\n      }\n\n      this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n      const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n      const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n      return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n    },\n    changeListIndex (e: KeyboardEvent) {\n      // For infinite scroll and autocomplete, re-evaluate children\n      this.getTiles()\n\n      if (!this.isActive || !this.hasClickableTiles) {\n        return\n      } else if (e.keyCode === keyCodes.tab) {\n        this.isActive = false\n        return\n      } else if (e.keyCode === keyCodes.down) {\n        this.nextTile()\n      } else if (e.keyCode === keyCodes.up) {\n        this.prevTile()\n      } else if (e.keyCode === keyCodes.end) {\n        this.lastTile()\n      } else if (e.keyCode === keyCodes.home) {\n        this.firstTile()\n      } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n        this.tiles[this.listIndex].click()\n      } else { return }\n      // One of the conditions was met, prevent default action (#2988)\n      e.preventDefault()\n    },\n    closeConditional (e: Event) {\n      const target = e.target as HTMLElement\n\n      return this.isActive &&\n        !this._isDestroyed &&\n        this.closeOnClick &&\n        !this.$refs.content.contains(target)\n    },\n    genActivatorAttributes () {\n      const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n      if (this.activeTile && this.activeTile.id) {\n        return {\n          ...attributes,\n          'aria-activedescendant': this.activeTile.id,\n        }\n      }\n\n      return attributes\n    },\n    genActivatorListeners () {\n      const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n      if (!this.disableKeys) {\n        listeners.keydown = this.onKeyDown\n      }\n\n      return listeners\n    },\n    genTransition (): VNode {\n      const content = this.genContent()\n\n      if (!this.transition) return content\n\n      return this.$createElement('transition', {\n        props: {\n          name: this.transition,\n        },\n      }, [content])\n    },\n    genDirectives (): VNodeDirective[] {\n      const directives: VNodeDirective[] = [{\n        name: 'show',\n        value: this.isContentActive,\n      }]\n\n      // Do not add click outside for hover menu\n      if (!this.openOnHover && this.closeOnClick) {\n        directives.push({\n          name: 'click-outside',\n          value: {\n            handler: () => { this.isActive = false },\n            closeConditional: this.closeConditional,\n            include: () => [this.$el, ...this.getOpenDependentElements()],\n          },\n        })\n      }\n\n      return directives\n    },\n    genContent (): VNode {\n      const options = {\n        attrs: {\n          ...this.getScopeIdAttrs(),\n          role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n        },\n        staticClass: 'v-menu__content',\n        class: {\n          ...this.rootThemeClasses,\n          ...this.roundedClasses,\n          'v-menu__content--auto': this.auto,\n          'v-menu__content--fixed': this.activatorFixed,\n          menuable__content__active: this.isActive,\n          [this.contentClass.trim()]: true,\n        },\n        style: this.styles,\n        directives: this.genDirectives(),\n        ref: 'content',\n        on: {\n          click: (e: Event) => {\n            const target = e.target as HTMLElement\n\n            if (target.getAttribute('disabled')) return\n            if (this.closeOnContentClick) this.isActive = false\n          },\n          keydown: this.onKeyDown,\n        },\n      } as VNodeData\n\n      if (this.$listeners.scroll) {\n        options.on = options.on || {}\n        options.on.scroll = this.$listeners.scroll\n      }\n\n      if (!this.disabled && this.openOnHover) {\n        options.on = options.on || {}\n        options.on.mouseenter = this.mouseEnterHandler\n      }\n\n      if (this.openOnHover) {\n        options.on = options.on || {}\n        options.on.mouseleave = this.mouseLeaveHandler\n      }\n\n      return this.$createElement('div', options, this.getContentSlot())\n    },\n    getTiles () {\n      if (!this.$refs.content) return\n\n      this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item'))\n    },\n    mouseEnterHandler () {\n      this.runDelay('open', () => {\n        if (this.hasJustFocused) return\n\n        this.hasJustFocused = true\n      })\n    },\n    mouseLeaveHandler (e: MouseEvent) {\n      // Prevent accidental re-activation\n      this.runDelay('close', () => {\n        if (this.$refs.content.contains(e.relatedTarget as HTMLElement)) return\n\n        requestAnimationFrame(() => {\n          this.isActive = false\n          this.callDeactivate()\n        })\n      })\n    },\n    nextTile () {\n      const tile = this.tiles[this.listIndex + 1]\n\n      if (!tile) {\n        if (!this.tiles.length) return\n\n        this.listIndex = -1\n        this.nextTile()\n\n        return\n      }\n\n      this.listIndex++\n      if (tile.tabIndex === -1) this.nextTile()\n    },\n    prevTile () {\n      const tile = this.tiles[this.listIndex - 1]\n\n      if (!tile) {\n        if (!this.tiles.length) return\n\n        this.listIndex = this.tiles.length\n        this.prevTile()\n\n        return\n      }\n\n      this.listIndex--\n      if (tile.tabIndex === -1) this.prevTile()\n    },\n    lastTile () {\n      const tile = this.tiles[this.tiles.length - 1]\n\n      if (!tile) return\n\n      this.listIndex = this.tiles.length - 1\n\n      if (tile.tabIndex === -1) this.prevTile()\n    },\n    firstTile () {\n      const tile = this.tiles[0]\n\n      if (!tile) return\n\n      this.listIndex = 0\n\n      if (tile.tabIndex === -1) this.nextTile()\n    },\n    onKeyDown (e: KeyboardEvent) {\n      if (e.keyCode === keyCodes.esc) {\n        // Wait for dependent elements to close first\n        setTimeout(() => { this.isActive = false })\n        const activator = this.getActivator()\n        this.$nextTick(() => activator && activator.focus())\n      } else if (\n        !this.isActive &&\n        [keyCodes.up, keyCodes.down].includes(e.keyCode)\n      ) {\n        this.isActive = true\n      }\n\n      // Allow for isActive watcher to generate tile list\n      this.$nextTick(() => this.changeListIndex(e))\n    },\n    onResize () {\n      if (!this.isActive) return\n\n      // Account for screen resize\n      // and orientation change\n      // eslint-disable-next-line no-unused-expressions\n      this.$refs.content.offsetWidth\n      this.updateDimensions()\n\n      // When resizing to a smaller width\n      // content width is evaluated before\n      // the new activator width has been\n      // set, causing it to not size properly\n      // hacky but will revisit in the future\n      clearTimeout(this.resizeTimeout)\n      this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-menu',\n      class: {\n        'v-menu--attached':\n          this.attach === '' ||\n          this.attach === true ||\n          this.attach === 'attach',\n      },\n      directives: [{\n        arg: '500',\n        name: 'resize',\n        value: this.onResize,\n      }],\n    }\n\n    return h('div', data, [\n      !this.activator && this.genActivator(),\n      this.showLazyContent(() => [\n        this.$createElement(VThemeProvider, {\n          props: {\n            root: true,\n            light: this.light,\n            dark: this.dark,\n          },\n        }, [this.genTransition()]),\n      ]),\n    ])\n  },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'returnable',\n\n  props: {\n    returnValue: null as any,\n  },\n\n  data: () => ({\n    isActive: false,\n    originalValue: null as any,\n  }),\n\n  watch: {\n    isActive (val) {\n      if (val) {\n        this.originalValue = this.returnValue\n      } else {\n        this.$emit('update:return-value', this.originalValue)\n      }\n    },\n  },\n\n  methods: {\n    save (value: any) {\n      this.originalValue = value\n      setTimeout(() => {\n        this.isActive = false\n      })\n    },\n  },\n})\n","// Mixins\nimport Positionable from '../positionable'\nimport Stackable from '../stackable'\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  Positionable,\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<typeof baseMixins> {\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<options>().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    openOnClick: 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 += this.left ? activatorLeft - (minWidth - a.width) : activatorLeft\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: 0,\n        offsetLeft: 0,\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) return\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      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      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<void>(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":""}