{"version":3,"sources":["webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/components/VTextField/index.ts","webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/components/VTooltip/VTooltip.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///../../../src/components/VList/index.ts","webpack:///../../../src/components/VPicker/VPicker.ts","webpack:///../../../src/components/VPicker/index.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VTextField/VTextField.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///../../../src/components/VPagination/VPagination.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///../../../src/components/VWindow/VWindowItem.ts","webpack:///../../../src/components/VTabs/VTabItem.ts","webpack:///../../../src/components/VList/VListItem.ts","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/components/VMain/VMain.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VTabs/VTabs.ts"],"names":["mergeTransitions","dest","Array","origin","name","functional","props","group","type","default","hideOnLeave","leaveAbsolute","mode","render","tag","context","data","on","beforeEnter","el","offsetHeight","position","top","left","width","height","offsetTop","offsetLeft","offsetWidth","h","mergeData","functions","expandedParentClass","x","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","offset","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","size","VFabTransition","createSimpleTransition","VFadeTransition","VSlideXTransition","VExpandTransition","createJavascriptTransition","VExpandXTransition","children","filteredChild","VNode","mixins","absolute","color","dark","opacity","Number","value","zIndex","computed","__scrim","this","setBackgroundColor","staticClass","style","computedOpacity","$createElement","classes","themeClasses","isActive","styles","methods","genContent","$slots","class","app","centered","contentClass","multiLine","text","timeout","Boolean","validator","v","vertical","activeTimeout","bottom","hasBackground","isDark","$vuetify","paddingBottom","paddingLeft","paddingRight","paddingTop","bar","watch","mounted","setTimeout","created","$attrs","hasOwnProperty","genActions","attrs","role","genWrapper","setColor","directives","pointerenter","window","pointerleave","genTransition","baseMixins","intersect","active","backgroundColor","backgroundOpacity","bufferValue","indeterminate","query","reverse","rounded","stream","striped","internalLazyValue","isVisible","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","setTextColor","parseFloat","isReversed","Math","normalizedBuffer","computedTransition","rtl","normalize","normalizedValue","reactive","$listeners","slot","genListeners","listeners","onClick","$el","e","onObserve","undefined","closeDelay","disabled","openDelay","openOnHover","openOnFocus","String","calculatedMinWidth","closeDependents","calculatedLeft","content","unknown","activatorLeft","attach","activator","right","parseInt","calcXOverflow","dimensions","calculatedTop","activatorTop","calcYOverflow","offsetY","offsetX","maxWidth","minWidth","activeZIndex","beforeMount","activate","deactivate","genActivatorListeners","genActivatorAttributes","activatorFixed","isContentActive","ref","showLazyContent","root","node","button","rotate","radius","calculatedSize","circumference","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","transform","viewBoxSize","genCircle","fill","cx","cy","r","genSvg","xmlns","viewBox","genInfo","ripple","activeClass","appendIcon","noAction","prependIcon","subGroup","list","listClick","$route","register","matchRoute","beforeDestroy","unregister","click","genIcon","genAppendIcon","icon","genHeader","inputValue","genItems","genPrependIcon","onRouteChange","to","toggle","_uid","isBooted","provide","isInGroup","listItemGroup","genData","VAvatar","horizontal","tile","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListGroup","VListItem","VListItemAction","VListItemIcon","flat","fullWidth","landscape","noTitle","computedTitleColor","defaultTitleColor","genTitle","genBodyTransition","genBody","elevationClasses","title","actions","BaseItemGroup","mandatory","max","multiple","items","selectedIndex","selectedItem","indexOf","selectedItems","filter","selectedValues","internalValue","toggleMethod","intern","getValue","item","i","index","push","valueIndex","updateInternalValue","updateItem","updateItemsState","updateMultiple","updateSingle","updateMandatory","defaultValue","val","isSame","itemGroup","proxyClass","groupClasses","$router","Object","resolve","href","blur","tabsBar","tabindex","keydown","collapse","dense","extended","extensionHeight","floating","prominent","short","src","isExtended","computedHeight","isCollapsed","isNaN","computedContentHeight","isProminent","breakpoint","breakingProps","original","replacement","genBackground","image","$scopedSlots","img","genExtension","aspectRatio","computedAspectRatio","aspectStyle","__cachedSizer","onVisible","dirtyTypes","resize","inheritAttrs","appendOuterIcon","autofocus","clearable","clearIcon","counter","counterValue","filled","label","outlined","placeholder","prefix","prependInnerIcon","persistentPlaceholder","shaped","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isClearing","computedColor","computedCounterValue","hasCounter","hasDetails","get","set","isDirty","isEnclosed","isLabelActive","isSingle","isSolo","labelPosition","labelValue","showLabel","hasLabel","isFocused","focus","clearableCallback","$refs","input","genAppendSlot","genSlot","genPrependInnerSlot","genIconSlot","genInputSlot","prepend","genClearIcon","genCounter","attrs$","light","genControl","genDefaultSlot","genFieldset","genLabel","focused","for","genLegend","span","domProps","innerHTML","genInput","inputAttrs","lazyValue","id","readonly","onKeyDown","modifiers","quiet","onResize","genMessages","messagesNode","counterNode","genTextFieldSlot","genAffix","onBlur","$nextTick","onFocus","$emit","onInput","target","onMouseDown","onMouseUp","setLabelWidth","scrollWidth","setPrefixWidth","setPrependWidth","tryAutofocus","document","updateValue","isInList","inject","isInMenu","isInNav","expand","nav","subheader","threeLine","twoLine","groups","findIndex","g","splice","Resize","circle","length","nextIcon","prevIcon","totalVisible","pageAriaLabel","currentPageAriaLabel","previousAriaLabel","nextAriaLabel","wrapperAriaLabel","maxButtons","selected","maxLength","range","even","firstItem","lastItem","start","end","secondItem","beforeLastItem","init","parentElement","next","previous","from","fn","genItem","isCurrentPage","ariaLabel","lang","t","map","key","genList","roundedClasses","listeners$","autoGrow","noResize","rowHeight","rows","noResizeHandle","calculateInputHeight","minHeight","Touch","windowGroup","continuous","showArrows","showArrowsOnHover","touch","touchless","required","changedByDelimiters","internalHeight","transitionHeight","transitionCount","isReverse","axis","internalReverse","direction","hasActiveItems","find","hasNext","internalIndex","hasPrev","updateReverse","genContainer","VBtn","VIcon","large","genControlIcons","icons","getNextIndex","nextIndex","getPrevIndex","prevIndex","prev","lastIndex","itemsLength","oldVal","inset","action","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","parsedItems","tileActiveClass","staticNoDataTile","mousedown","genTileContent","genAction","VSimpleCheckbox","genDivider","VDivider","genFilteredText","getMaskedCharacters","genHighlight","middle","genTile","hasItem","getDisabled","parent","scopedSlot","needsTile","getText","defaultMenuProps","closeOnClick","closeOnContentClick","disableKeys","openOnClick","maxHeight","ClickOutside","cacheItems","chips","deletableChips","disableLookup","eager","itemColor","menuProps","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","concat","computedItems","computedOwns","handler","closeConditional","include","dynamicHeight","hasChips","hasSlot","listData","scopeId","$vnode","select","selectItem","scopedSlots","staticList","console","VSelectList","virtualizedItems","$_menuProps","slice","menuCanShow","normalisedProps","split","acc","p","nudgeBottom","immediate","activateMenu","getContent","contains","uniqueValues","arr","findExistingIndex","menu","genChipSelection","isDisabled","isInteractive","VChip","close","small","JSON","genCommaSelection","last","selections","VInput","autocomplete","keypress","onKeyPress","genHiddenInput","genListWithSlot","slots","slotName","genMenu","VMenu","scroll","onScroll","genSelections","genSelection","genSlotSelection","selection","getMenuIndex","onChipInput","setValue","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","now","performance","isReadonly","keyCode","onUpDown","onTabDown","onSpaceDown","onMenuActiveChange","hasMouseDown","showMoreItems","scrollHeight","scrollTop","activeTile","setMenuIndex","setSelectedItems","values","valueComparator","appendInner","ctx","reverseTransition","inTransition","genWindowItem","onAfterTransition","onBeforeTransition","onTransitionCancelled","onEnter","beforeLeave","VWindowItem","Ripple","inactive","link","selectable","isClickable","genAttrs","genChildren","genMessage","message","theme","auto","calculatedTopAuto","defaultOffset","hasJustFocused","listIndex","resizeTimeout","tiles","menuWidth","calcLeft","calculatedMaxHeight","calculatedMaxWidth","pageWidth","hasClickableTiles","transformOrigin","contentHeight","appOffset","duration","container","classList","remove","calcScrollPosition","maxScrollTop","calcLeftAuto","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","computedTop","changeListIndex","attributes","genDirectives","options","menuable__content__active","getTiles","querySelectorAll","mouseEnterHandler","mouseLeaveHandler","nextTile","prevTile","lastTile","firstTile","clearTimeout","arg","footer","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","miniVariant","miniVariantWidth","permanent","stateless","temporary","isMouseover","touchArea","stackMinZIndex","applicationProperty","computedMaxHeight","application","computedTransform","computedWidth","isMiniVariant","hasApp","isBottom","isMobile","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","translate","removeOverlay","calculateTouchArea","parentRect","genAppend","genPosition","getOpenDependentElements","swipeRight","mouseenter","mouseleave","transitionend","resizeEvent","genPrepend","genBorder","swipeLeft","updateApplication","updateMiniVariant","bias","c","clientWidth","selectedElement","widths","currentScrollOffset","totalWidth","itemOffset","additionalOffset","offsetCentered","BaseSlideGroup","centerActive","internalItemsLength","isOverflowing","startX","isSwipingHorizontal","isSwiping","scrollOffset","wrapper","canTouch","__cachedNext","__cachedPrev","hasAffixes","beforeUpdate","$children","updated","onFocusin","vm","calculateUpdatedOffset","genNext","focusin","location","upperLocation","hasAffix","genPrev","move","calculateNewOffset","sign","newAbosluteOffset","onAffixClick","onTouchStart","onTouchMove","diffX","diffY","onTouchEnd","maxScrollOffset","overflowCheck","scrollIntoView","lastItemPosition","wrapperPosition","calculateCenteredOffset","scrollTo","setWidths","slideGroup","callSlider","newPath","oldPath","hasNew","hasOld","alignWithTitle","fixedTabs","grow","hideSlider","iconsAndText","mobileBreakpoint","optional","sliderColor","sliderSize","slider","transitionTime","sliderStyles","activeTab","genBar","change","VTabsBar","genSlider","VTabsItems","VTabsSlider","parseNodes","tab","vnode"],"mappings":"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","file":"js/chunk-vendors~793fb972.42cacfff.js","sourcesContent":["import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n  dest: Function | Function[] = [],\n  ...transitions: (Function | Function[])[]\n) {\n  /* eslint-disable-next-line no-array-constructor */\n  return Array<Function>().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n  name: string,\n  origin = 'top center 0',\n  mode?: string\n): FunctionalComponentOptions {\n  return {\n    name,\n\n    functional: true,\n\n    props: {\n      group: {\n        type: Boolean,\n        default: false,\n      },\n      hideOnLeave: {\n        type: Boolean,\n        default: false,\n      },\n      leaveAbsolute: {\n        type: Boolean,\n        default: false,\n      },\n      mode: {\n        type: String,\n        default: mode,\n      },\n      origin: {\n        type: String,\n        default: origin,\n      },\n    },\n\n    render (h, context): VNode {\n      const tag = `transition${context.props.group ? '-group' : ''}`\n      const data: VNodeData = {\n        props: {\n          name,\n          mode: context.props.mode,\n        },\n        on: {\n          beforeEnter (el: HTMLElement) {\n            el.style.transformOrigin = context.props.origin\n            el.style.webkitTransformOrigin = context.props.origin\n          },\n        },\n      }\n\n      if (context.props.leaveAbsolute) {\n        data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n          const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n          el._transitionInitialStyles = {\n            position: el.style.position,\n            top: el.style.top,\n            left: el.style.left,\n            width: el.style.width,\n            height: el.style.height,\n          }\n          el.style.position = 'absolute'\n          el.style.top = offsetTop + 'px'\n          el.style.left = offsetLeft + 'px'\n          el.style.width = offsetWidth + 'px'\n          el.style.height = offsetHeight + 'px'\n        })\n        data.on!.afterLeave = mergeTransitions(data.on!.afterLeave, (el?: HTMLElement) => {\n          if (el && el._transitionInitialStyles) {\n            const { position, top, left, width, height } = el._transitionInitialStyles\n            delete el._transitionInitialStyles\n            el.style.position = position || ''\n            el.style.top = top || ''\n            el.style.left = left || ''\n            el.style.width = width || ''\n            el.style.height = height || ''\n          }\n        })\n      }\n      if (context.props.hideOnLeave) {\n        data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => {\n          el.style.setProperty('display', 'none', 'important')\n        })\n      }\n\n      return h(tag, mergeData(context.data, data), context.children)\n    },\n  }\n}\n\nexport function createJavascriptTransition (\n  name: string,\n  functions: Record<string, any>,\n  mode = 'in-out'\n): FunctionalComponentOptions {\n  return {\n    name,\n\n    functional: true,\n\n    props: {\n      mode: {\n        type: String,\n        default: mode,\n      },\n    },\n\n    render (h, context): VNode {\n      return h(\n        'transition',\n        mergeData(context.data, {\n          props: { name },\n          on: functions,\n        }),\n        context.children\n      )\n    },\n  }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n  _parent?: (Node & ParentNode & HTMLElement) | null\n  _initialStyle?: {\n    transition: string\n    overflow: string\n    height?: string | null\n    width?: string | null\n  }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n  const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n  const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n  return {\n    beforeEnter (el: HTMLExpandElement) {\n      el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n      el._initialStyle = {\n        transition: el.style.transition,\n        overflow: el.style.overflow,\n        [sizeProperty]: el.style[sizeProperty],\n      }\n    },\n\n    enter (el: HTMLExpandElement) {\n      const initialStyle = el._initialStyle!\n\n      el.style.setProperty('transition', 'none', 'important')\n      // Hide overflow to account for collapsed margins in the calculated height\n      el.style.overflow = 'hidden'\n      const offset = `${el[offsetProperty]}px`\n\n      el.style[sizeProperty] = '0'\n\n      void el.offsetHeight // force reflow\n\n      el.style.transition = initialStyle.transition\n\n      if (expandedParentClass && el._parent) {\n        el._parent.classList.add(expandedParentClass)\n      }\n\n      requestAnimationFrame(() => {\n        el.style[sizeProperty] = offset\n      })\n    },\n\n    afterEnter: resetStyles,\n    enterCancelled: resetStyles,\n\n    leave (el: HTMLExpandElement) {\n      el._initialStyle = {\n        transition: '',\n        overflow: el.style.overflow,\n        [sizeProperty]: el.style[sizeProperty],\n      }\n\n      el.style.overflow = 'hidden'\n      el.style[sizeProperty] = `${el[offsetProperty]}px`\n      void el.offsetHeight // force reflow\n\n      requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n    },\n\n    afterLeave,\n    leaveCancelled: afterLeave,\n  }\n\n  function afterLeave (el: HTMLExpandElement) {\n    if (expandedParentClass && el._parent) {\n      el._parent.classList.remove(expandedParentClass)\n    }\n    resetStyles(el)\n  }\n\n  function resetStyles (el: HTMLExpandElement) {\n    const size = el._initialStyle![sizeProperty]\n    el.style.overflow = el._initialStyle!.overflow\n    if (size != null) el.style[sizeProperty] = size\n    delete el._initialStyle\n  }\n}\n","import {\n  createSimpleTransition,\n  createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createSimpleTransition('dialog-top-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n  $_vuetify_subcomponents: {\n    VCarouselTransition,\n    VCarouselReverseTransition,\n    VDialogTransition,\n    VDialogBottomTransition,\n    VDialogTopTransition,\n    VFabTransition,\n    VFadeTransition,\n    VMenuTransition,\n    VScaleTransition,\n    VScrollXTransition,\n    VScrollXReverseTransition,\n    VScrollYTransition,\n    VScrollYReverseTransition,\n    VSlideXTransition,\n    VSlideXReverseTransition,\n    VSlideYTransition,\n    VSlideYReverseTransition,\n    VTabReverseTransition,\n    VTabTransition,\n    VExpandTransition,\n    VExpandXTransition,\n  },\n}\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'v-list-item-action',\n\n  functional: true,\n\n  render (h, { data, children = [] }): VNode {\n    data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n    const filteredChild = children.filter(VNode => {\n      return VNode.isComment === false && VNode.text !== ' '\n    })\n    if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n    return h('div', data, children)\n  },\n})\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n  Colorable,\n  Themeable,\n  Toggleable\n).extend({\n  name: 'v-overlay',\n\n  props: {\n    absolute: Boolean,\n    color: {\n      type: String,\n      default: '#212121',\n    },\n    dark: {\n      type: Boolean,\n      default: true,\n    },\n    opacity: {\n      type: [Number, String],\n      default: 0.46,\n    },\n    value: {\n      default: true,\n    },\n    zIndex: {\n      type: [Number, String],\n      default: 5,\n    },\n  },\n\n  computed: {\n    __scrim (): VNode {\n      const data = this.setBackgroundColor(this.color, {\n        staticClass: 'v-overlay__scrim',\n        style: {\n          opacity: this.computedOpacity,\n        },\n      })\n\n      return this.$createElement('div', data)\n    },\n    classes (): object {\n      return {\n        'v-overlay--absolute': this.absolute,\n        'v-overlay--active': this.isActive,\n        ...this.themeClasses,\n      }\n    },\n    computedOpacity (): number {\n      return Number(this.isActive ? this.opacity : 0)\n    },\n    styles (): object {\n      return {\n        zIndex: this.zIndex,\n      }\n    },\n  },\n\n  methods: {\n    genContent () {\n      return this.$createElement('div', {\n        staticClass: 'v-overlay__content',\n      }, this.$slots.default)\n    },\n  },\n\n  render (h): VNode {\n    const children = [this.__scrim]\n\n    if (this.isActive) children.push(this.genContent())\n\n    return h('div', {\n      staticClass: 'v-overlay',\n      on: this.$listeners,\n      class: this.classes,\n      style: this.styles,\n    }, children)\n  },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","import VTextField from './VTextField'\n\nexport { VTextField }\nexport default VTextField\n","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { deprecate, removed } from '../../util/console'\n\n// Types\nimport { PropType, VNode } from 'vue'\n\nexport default mixins(\n  VSheet,\n  Colorable,\n  Toggleable,\n  PositionableFactory([\n    'absolute',\n    'bottom',\n    'left',\n    'right',\n    'top',\n  ])\n/* @vue/component */\n).extend({\n  name: 'v-snackbar',\n\n  props: {\n    app: Boolean,\n    centered: Boolean,\n    contentClass: {\n      type: String,\n      default: '',\n    },\n    multiLine: Boolean,\n    text: Boolean,\n    timeout: {\n      type: [Number, String],\n      default: 5000,\n    },\n    transition: {\n      type: [Boolean, String] as PropType<false | string>,\n      default: 'v-snack-transition',\n      validator: v => typeof v === 'string' || v === false,\n    },\n    vertical: Boolean,\n  },\n\n  data: () => ({\n    activeTimeout: -1,\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        'v-snack--absolute': this.absolute,\n        'v-snack--active': this.isActive,\n        'v-snack--bottom': this.bottom || !this.top,\n        'v-snack--centered': this.centered,\n        'v-snack--has-background': this.hasBackground,\n        'v-snack--left': this.left,\n        'v-snack--multi-line': this.multiLine && !this.vertical,\n        'v-snack--right': this.right,\n        'v-snack--text': this.text,\n        'v-snack--top': this.top,\n        'v-snack--vertical': this.vertical,\n      }\n    },\n    // Text and outlined styles both\n    // use transparent backgrounds\n    hasBackground (): boolean {\n      return (\n        !this.text &&\n        !this.outlined\n      )\n    },\n    // Snackbar is dark by default\n    // override themeable logic.\n    isDark (): boolean {\n      return this.hasBackground\n        ? !this.light\n        : Themeable.options.computed.isDark.call(this)\n    },\n    styles (): object {\n      if (this.absolute || !this.app) return {}\n\n      const {\n        bar,\n        bottom,\n        footer,\n        insetFooter,\n        left,\n        right,\n        top,\n      } = this.$vuetify.application\n\n      return {\n        paddingBottom: convertToUnit(bottom + footer + insetFooter),\n        paddingLeft: convertToUnit(left),\n        paddingRight: convertToUnit(right),\n        paddingTop: convertToUnit(bar + top),\n      }\n    },\n  },\n\n  watch: {\n    isActive: 'setTimeout',\n    timeout: 'setTimeout',\n  },\n\n  mounted () {\n    if (this.isActive) this.setTimeout()\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('auto-height')) {\n      removed('auto-height', this)\n    }\n\n    /* istanbul ignore next */\n    // eslint-disable-next-line eqeqeq\n    if (this.timeout == 0) {\n      deprecate('timeout=\"0\"', '-1', this)\n    }\n  },\n\n  methods: {\n    genActions () {\n      return this.$createElement('div', {\n        staticClass: 'v-snack__action ',\n      }, [\n        getSlot(this, 'action', {\n          attrs: { class: 'v-snack__btn' },\n        }),\n      ])\n    },\n    genContent () {\n      return this.$createElement('div', {\n        staticClass: 'v-snack__content',\n        class: {\n          [this.contentClass]: true,\n        },\n        attrs: {\n          role: 'status',\n          'aria-live': 'polite',\n        },\n      }, [getSlot(this)])\n    },\n    genWrapper () {\n      const setColor = this.hasBackground\n        ? this.setBackgroundColor\n        : this.setTextColor\n\n      const data = setColor(this.color, {\n        staticClass: 'v-snack__wrapper',\n        class: VSheet.options.computed.classes.call(this),\n        style: VSheet.options.computed.styles.call(this),\n        directives: [{\n          name: 'show',\n          value: this.isActive,\n        }],\n        on: {\n          pointerenter: () => window.clearTimeout(this.activeTimeout),\n          pointerleave: this.setTimeout,\n        },\n      })\n\n      return this.$createElement('div', data, [\n        this.genContent(),\n        this.genActions(),\n      ])\n    },\n    genTransition () {\n      return this.$createElement('transition', {\n        props: { name: this.transition },\n      }, [this.genWrapper()])\n    },\n    setTimeout () {\n      window.clearTimeout(this.activeTimeout)\n\n      const timeout = Number(this.timeout)\n\n      if (\n        !this.isActive ||\n        // TODO: remove 0 in v3\n        [0, -1].includes(timeout)\n      ) {\n        return\n      }\n\n      this.activeTimeout = window.setTimeout(() => {\n        this.isActive = false\n      }, timeout)\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-snack',\n      class: this.classes,\n      style: this.styles,\n    }, [\n      this.transition !== false\n        ? this.genTransition()\n        : this.genWrapper(),\n    ])\n  },\n})\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'v-list-item-icon',\n\n  functional: true,\n\n  render (h, { data, children }): VNode {\n    data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n    return h('div', data, children)\n  },\n})\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n  VFadeTransition,\n  VSlideXTransition,\n} from '../transitions'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n  Colorable,\n  PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n  Proxyable,\n  Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-progress-linear',\n\n  directives: { intersect },\n\n  props: {\n    active: {\n      type: Boolean,\n      default: true,\n    },\n    backgroundColor: {\n      type: String,\n      default: null,\n    },\n    backgroundOpacity: {\n      type: [Number, String],\n      default: null,\n    },\n    bufferValue: {\n      type: [Number, String],\n      default: 100,\n    },\n    color: {\n      type: String,\n      default: 'primary',\n    },\n    height: {\n      type: [Number, String],\n      default: 4,\n    },\n    indeterminate: Boolean,\n    query: Boolean,\n    reverse: Boolean,\n    rounded: Boolean,\n    stream: Boolean,\n    striped: Boolean,\n    value: {\n      type: [Number, String],\n      default: 0,\n    },\n  },\n\n  data () {\n    return {\n      internalLazyValue: this.value || 0,\n      isVisible: true,\n    }\n  },\n\n  computed: {\n    __cachedBackground (): VNode {\n      return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n        staticClass: 'v-progress-linear__background',\n        style: this.backgroundStyle,\n      }))\n    },\n    __cachedBar (): VNode {\n      return this.$createElement(this.computedTransition, [this.__cachedBarType])\n    },\n    __cachedBarType (): VNode {\n      return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n    },\n    __cachedBuffer (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-progress-linear__buffer',\n        style: this.styles,\n      })\n    },\n    __cachedDeterminate (): VNode {\n      return this.$createElement('div', this.setBackgroundColor(this.color, {\n        staticClass: `v-progress-linear__determinate`,\n        style: {\n          width: convertToUnit(this.normalizedValue, '%'),\n        },\n      }))\n    },\n    __cachedIndeterminate (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-progress-linear__indeterminate',\n        class: {\n          'v-progress-linear__indeterminate--active': this.active,\n        },\n      }, [\n        this.genProgressBar('long'),\n        this.genProgressBar('short'),\n      ])\n    },\n    __cachedStream (): VNode | null {\n      if (!this.stream) return null\n\n      return this.$createElement('div', this.setTextColor(this.color, {\n        staticClass: 'v-progress-linear__stream',\n        style: {\n          width: convertToUnit(100 - this.normalizedBuffer, '%'),\n        },\n      }))\n    },\n    backgroundStyle (): object {\n      const backgroundOpacity = this.backgroundOpacity == null\n        ? (this.backgroundColor ? 1 : 0.3)\n        : parseFloat(this.backgroundOpacity)\n\n      return {\n        opacity: backgroundOpacity,\n        [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n        width: convertToUnit(Math.max(0, this.normalizedBuffer - this.normalizedValue), '%'),\n      }\n    },\n    classes (): object {\n      return {\n        'v-progress-linear--absolute': this.absolute,\n        'v-progress-linear--fixed': this.fixed,\n        'v-progress-linear--query': this.query,\n        'v-progress-linear--reactive': this.reactive,\n        'v-progress-linear--reverse': this.isReversed,\n        'v-progress-linear--rounded': this.rounded,\n        'v-progress-linear--striped': this.striped,\n        'v-progress-linear--visible': this.isVisible,\n        ...this.themeClasses,\n      }\n    },\n    computedTransition (): FunctionalComponentOptions {\n      return this.indeterminate ? VFadeTransition : VSlideXTransition\n    },\n    isReversed (): boolean {\n      return this.$vuetify.rtl !== this.reverse\n    },\n    normalizedBuffer (): number {\n      return this.normalize(this.bufferValue)\n    },\n    normalizedValue (): number {\n      return this.normalize(this.internalLazyValue)\n    },\n    reactive (): boolean {\n      return Boolean(this.$listeners.change)\n    },\n    styles (): object {\n      const styles: Record<string, any> = {}\n\n      if (!this.active) {\n        styles.height = 0\n      }\n\n      if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n        styles.width = convertToUnit(this.normalizedBuffer, '%')\n      }\n\n      return styles\n    },\n  },\n\n  methods: {\n    genContent () {\n      const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n      if (!slot) return null\n\n      return this.$createElement('div', {\n        staticClass: 'v-progress-linear__content',\n      }, slot)\n    },\n    genListeners () {\n      const listeners = this.$listeners\n\n      if (this.reactive) {\n        listeners.click = this.onClick\n      }\n\n      return listeners\n    },\n    genProgressBar (name: 'long' | 'short') {\n      return this.$createElement('div', this.setBackgroundColor(this.color, {\n        staticClass: 'v-progress-linear__indeterminate',\n        class: {\n          [name]: true,\n        },\n      }))\n    },\n    onClick (e: MouseEvent) {\n      if (!this.reactive) return\n\n      const { width } = this.$el.getBoundingClientRect()\n\n      this.internalValue = e.offsetX / width * 100\n    },\n    onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n      this.isVisible = isIntersecting\n    },\n    normalize (value: string | number) {\n      if (value < 0) return 0\n      if (value > 100) return 100\n      return parseFloat(value)\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-progress-linear',\n      attrs: {\n        role: 'progressbar',\n        'aria-valuemin': 0,\n        'aria-valuemax': this.normalizedBuffer,\n        'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n      },\n      class: this.classes,\n      directives: [{\n        name: 'intersect',\n        value: this.onObserve,\n      }],\n      style: {\n        bottom: this.bottom ? 0 : undefined,\n        height: this.active ? convertToUnit(this.height) : 0,\n        top: this.top ? 0 : undefined,\n      },\n      on: this.genListeners(),\n    }\n\n    return h('div', data, [\n      this.__cachedStream,\n      this.__cachedBackground,\n      this.__cachedBuffer,\n      this.__cachedBar,\n      this.genContent(),\n    ])\n  },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import './VTooltip.sass'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Helpers\nimport { convertToUnit, keyCodes, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Colorable, Delayable, Dependent, Menuable, Toggleable).extend({\n  name: 'v-tooltip',\n\n  props: {\n    closeDelay: {\n      type: [Number, String],\n      default: 0,\n    },\n    disabled: Boolean,\n    openDelay: {\n      type: [Number, String],\n      default: 0,\n    },\n    openOnHover: {\n      type: Boolean,\n      default: true,\n    },\n    openOnFocus: {\n      type: Boolean,\n      default: true,\n    },\n    tag: {\n      type: String,\n      default: 'span',\n    },\n    transition: String,\n  },\n\n  data: () => ({\n    calculatedMinWidth: 0,\n    closeDependents: false,\n  }),\n\n  computed: {\n    calculatedLeft (): string {\n      const { activator, content } = this.dimensions\n      const unknown = !this.bottom && !this.left && !this.top && !this.right\n      const activatorLeft = this.attach !== false ? activator.offsetLeft : activator.left\n      let left = 0\n\n      if (this.top || this.bottom || unknown) {\n        left = (\n          activatorLeft +\n          (activator.width / 2) -\n          (content.width / 2)\n        )\n      } else if (this.left || this.right) {\n        left = (\n          activatorLeft +\n          (this.right ? activator.width : -content.width) +\n          (this.right ? 10 : -10)\n        )\n      }\n\n      if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n      if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n      return `${this.calcXOverflow(left, this.dimensions.content.width)}px`\n    },\n    calculatedTop (): string {\n      const { activator, content } = this.dimensions\n      const activatorTop = this.attach !== false ? activator.offsetTop : activator.top\n      let top = 0\n\n      if (this.top || this.bottom) {\n        top = (\n          activatorTop +\n          (this.bottom ? activator.height : -content.height) +\n          (this.bottom ? 10 : -10)\n        )\n      } else if (this.left || this.right) {\n        top = (\n          activatorTop +\n          (activator.height / 2) -\n          (content.height / 2)\n        )\n      }\n\n      if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n      if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n      if (this.attach === false) top += this.pageYOffset\n\n      return `${this.calcYOverflow(top)}px`\n    },\n    classes (): object {\n      return {\n        'v-tooltip--top': this.top,\n        'v-tooltip--right': this.right,\n        'v-tooltip--bottom': this.bottom,\n        'v-tooltip--left': this.left,\n        'v-tooltip--attached':\n          this.attach === '' ||\n          this.attach === true ||\n          this.attach === 'attach',\n      }\n    },\n    computedTransition (): string {\n      if (this.transition) return this.transition\n\n      return this.isActive ? 'scale-transition' : 'fade-transition'\n    },\n    offsetY (): boolean {\n      return this.top || this.bottom\n    },\n    offsetX (): boolean {\n      return this.left || this.right\n    },\n    styles (): object {\n      return {\n        left: this.calculatedLeft,\n        maxWidth: convertToUnit(this.maxWidth),\n        minWidth: convertToUnit(this.minWidth),\n        top: this.calculatedTop,\n        zIndex: this.zIndex || this.activeZIndex,\n      }\n    },\n  },\n\n  beforeMount () {\n    this.$nextTick(() => {\n      this.value && this.callActivate()\n    })\n  },\n\n  mounted () {\n    if (getSlotType(this, 'activator', true) === 'v-slot') {\n      consoleError(`v-tooltip's activator slot must be bound, try '<template #activator=\"data\"><v-btn v-on=\"data.on>'`, this)\n    }\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(this.startTransition)\n    },\n    deactivate () {\n      this.runDelay('close')\n    },\n    genActivatorListeners () {\n      const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n      if (this.openOnFocus) {\n        listeners.focus = (e: Event) => {\n          this.getActivator(e)\n          this.runDelay('open')\n        }\n        listeners.blur = (e: Event) => {\n          this.getActivator(e)\n          this.runDelay('close')\n        }\n      }\n\n      listeners.keydown = (e: KeyboardEvent) => {\n        if (e.keyCode === keyCodes.esc) {\n          this.getActivator(e)\n          this.runDelay('close')\n        }\n      }\n\n      return listeners\n    },\n    genActivatorAttributes () {\n      return {\n        'aria-haspopup': true,\n        'aria-expanded': String(this.isActive),\n      }\n    },\n    genTransition () {\n      const content = this.genContent()\n\n      if (!this.computedTransition) return content\n\n      return this.$createElement('transition', {\n        props: {\n          name: this.computedTransition,\n        },\n      }, [content])\n    },\n    genContent () {\n      return this.$createElement(\n        'div',\n        this.setBackgroundColor(this.color, {\n          staticClass: 'v-tooltip__content',\n          class: {\n            [this.contentClass]: true,\n            menuable__content__active: this.isActive,\n            'v-tooltip__content--fixed': this.activatorFixed,\n          },\n          style: this.styles,\n          attrs: this.getScopeIdAttrs(),\n          directives: [{\n            name: 'show',\n            value: this.isContentActive,\n          }],\n          ref: 'content',\n        }),\n        this.getContentSlot()\n      )\n    },\n  },\n\n  render (h): VNode {\n    return h(this.tag, {\n      staticClass: 'v-tooltip',\n      class: this.classes,\n    }, [\n      this.showLazyContent(() => [this.genTransition()]),\n      this.genActivator(),\n    ])\n  },\n})\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n  name: 'v-theme-provider',\n\n  props: { root: Boolean },\n\n  computed: {\n    isDark (): boolean {\n      return this.root\n        ? this.rootIsDark\n        : Themeable.options.computed.isDark.call(this)\n    },\n  },\n\n  render (): VNode {\n    /* istanbul ignore next */\n    return (\n      this.$slots.default! &&\n      this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n    )\n  },\n})\n","// Styles\nimport './VProgressCircular.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n  name: 'v-progress-circular',\n\n  directives: { intersect },\n\n  props: {\n    button: Boolean,\n    indeterminate: Boolean,\n    rotate: {\n      type: [Number, String],\n      default: 0,\n    },\n    size: {\n      type: [Number, String],\n      default: 32,\n    },\n    width: {\n      type: [Number, String],\n      default: 4,\n    },\n    value: {\n      type: [Number, String],\n      default: 0,\n    },\n  },\n\n  data: () => ({\n    radius: 20,\n    isVisible: true,\n  }),\n\n  computed: {\n    calculatedSize (): number {\n      return Number(this.size) + (this.button ? 8 : 0)\n    },\n\n    circumference (): number {\n      return 2 * Math.PI * this.radius\n    },\n\n    classes (): object {\n      return {\n        'v-progress-circular--visible': this.isVisible,\n        'v-progress-circular--indeterminate': this.indeterminate,\n        'v-progress-circular--button': this.button,\n      }\n    },\n\n    normalizedValue (): number {\n      if (this.value < 0) {\n        return 0\n      }\n\n      if (this.value > 100) {\n        return 100\n      }\n\n      return parseFloat(this.value)\n    },\n\n    strokeDashArray (): number {\n      return Math.round(this.circumference * 1000) / 1000\n    },\n\n    strokeDashOffset (): string {\n      return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n    },\n\n    strokeWidth (): number {\n      return Number(this.width) / +this.size * this.viewBoxSize * 2\n    },\n\n    styles (): object {\n      return {\n        height: convertToUnit(this.calculatedSize),\n        width: convertToUnit(this.calculatedSize),\n      }\n    },\n\n    svgStyles (): object {\n      return {\n        transform: `rotate(${Number(this.rotate)}deg)`,\n      }\n    },\n\n    viewBoxSize (): number {\n      return this.radius / (1 - Number(this.width) / +this.size)\n    },\n  },\n\n  methods: {\n    genCircle (name: string, offset: string | number): VNode {\n      return this.$createElement('circle', {\n        class: `v-progress-circular__${name}`,\n        attrs: {\n          fill: 'transparent',\n          cx: 2 * this.viewBoxSize,\n          cy: 2 * this.viewBoxSize,\n          r: this.radius,\n          'stroke-width': this.strokeWidth,\n          'stroke-dasharray': this.strokeDashArray,\n          'stroke-dashoffset': offset,\n        },\n      })\n    },\n    genSvg (): VNode {\n      const children = [\n        this.indeterminate || this.genCircle('underlay', 0),\n        this.genCircle('overlay', this.strokeDashOffset),\n      ] as VNodeChildren\n\n      return this.$createElement('svg', {\n        style: this.svgStyles,\n        attrs: {\n          xmlns: 'http://www.w3.org/2000/svg',\n          viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n        },\n      }, children)\n    },\n    genInfo (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-progress-circular__info',\n      }, this.$slots.default)\n    },\n    onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n      this.isVisible = isIntersecting\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.setTextColor(this.color, {\n      staticClass: 'v-progress-circular',\n      attrs: {\n        role: 'progressbar',\n        'aria-valuemin': 0,\n        'aria-valuemax': 100,\n        'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n      },\n      class: this.classes,\n      directives: [{\n        name: 'intersect',\n        value: this.onObserve,\n      }],\n      style: this.styles,\n      on: this.$listeners,\n    }), [\n      this.genSvg(),\n      this.genInfo(),\n    ])\n  },\n})\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n  BindsAttrs,\n  Bootable,\n  Colorable,\n  RegistrableInject('list'),\n  Toggleable\n)\n\ntype VListInstance = InstanceType<typeof VList>\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  list: VListInstance\n  $refs: {\n    group: HTMLElement\n  }\n  $route: Route\n}\n\nexport default baseMixins.extend<options>().extend({\n  name: 'v-list-group',\n\n  directives: { ripple },\n\n  props: {\n    activeClass: {\n      type: String,\n      default: '',\n    },\n    appendIcon: {\n      type: String,\n      default: '$expand',\n    },\n    color: {\n      type: String,\n      default: 'primary',\n    },\n    disabled: Boolean,\n    group: [String, RegExp],\n    noAction: Boolean,\n    prependIcon: String,\n    ripple: {\n      type: [Boolean, Object],\n      default: true,\n    },\n    subGroup: Boolean,\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-list-group--active': this.isActive,\n        'v-list-group--disabled': this.disabled,\n        'v-list-group--no-action': this.noAction,\n        'v-list-group--sub-group': this.subGroup,\n      }\n    },\n  },\n\n  watch: {\n    isActive (val: boolean) {\n      /* istanbul ignore else */\n      if (!this.subGroup && val) {\n        this.list && this.list.listClick(this._uid)\n      }\n    },\n    $route: 'onRouteChange',\n  },\n\n  created () {\n    this.list && this.list.register(this)\n\n    if (this.group &&\n      this.$route &&\n      this.value == null\n    ) {\n      this.isActive = this.matchRoute(this.$route.path)\n    }\n  },\n\n  beforeDestroy () {\n    this.list && this.list.unregister(this)\n  },\n\n  methods: {\n    click (e: Event) {\n      if (this.disabled) return\n\n      this.isBooted = true\n\n      this.$emit('click', e)\n      this.$nextTick(() => (this.isActive = !this.isActive))\n    },\n    genIcon (icon: string | false): VNode {\n      return this.$createElement(VIcon, icon)\n    },\n    genAppendIcon (): VNode | null {\n      const icon = !this.subGroup ? this.appendIcon : false\n\n      if (!icon && !this.$slots.appendIcon) return null\n\n      return this.$createElement(VListItemIcon, {\n        staticClass: 'v-list-group__header__append-icon',\n      }, [\n        this.$slots.appendIcon || this.genIcon(icon),\n      ])\n    },\n    genHeader (): VNode {\n      return this.$createElement(VListItem, {\n        staticClass: 'v-list-group__header',\n        attrs: {\n          'aria-expanded': String(this.isActive),\n          role: 'button',\n        },\n        class: {\n          [this.activeClass]: this.isActive,\n        },\n        props: {\n          inputValue: this.isActive,\n        },\n        directives: [{\n          name: 'ripple',\n          value: this.ripple,\n        }],\n        on: {\n          ...this.listeners$,\n          click: this.click,\n        },\n      }, [\n        this.genPrependIcon(),\n        this.$slots.activator,\n        this.genAppendIcon(),\n      ])\n    },\n    genItems (): VNode[] {\n      return this.showLazyContent(() => [\n        this.$createElement('div', {\n          staticClass: 'v-list-group__items',\n          directives: [{\n            name: 'show',\n            value: this.isActive,\n          }],\n        }, getSlot(this)),\n      ])\n    },\n    genPrependIcon (): VNode | null {\n      const icon = this.subGroup && this.prependIcon == null\n        ? '$subgroup'\n        : this.prependIcon\n\n      if (!icon && !this.$slots.prependIcon) return null\n\n      return this.$createElement(VListItemIcon, {\n        staticClass: 'v-list-group__header__prepend-icon',\n      }, [\n        this.$slots.prependIcon || this.genIcon(icon),\n      ])\n    },\n    onRouteChange (to: Route) {\n      /* istanbul ignore if */\n      if (!this.group) return\n\n      const isActive = this.matchRoute(to.path)\n\n      /* istanbul ignore else */\n      if (isActive && this.isActive !== isActive) {\n        this.list && this.list.listClick(this._uid)\n      }\n\n      this.isActive = isActive\n    },\n    toggle (uid: number) {\n      const isActive = this._uid === uid\n\n      if (isActive) this.isBooted = true\n      this.$nextTick(() => (this.isActive = isActive))\n    },\n    matchRoute (to: string) {\n      return to.match(this.group) !== null\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.setTextColor(this.isActive && this.color, {\n      staticClass: 'v-list-group',\n      class: this.classes,\n    }), [\n      this.genHeader(),\n      h(VExpandTransition, this.genItems()),\n    ])\n  },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n  BaseItemGroup,\n  Colorable\n).extend({\n  name: 'v-list-item-group',\n\n  provide () {\n    return {\n      isInGroup: true,\n      listItemGroup: this,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        ...BaseItemGroup.options.computed.classes.call(this),\n        'v-list-item-group': true,\n      }\n    },\n  },\n\n  methods: {\n    genData (): object {\n      return this.setTextColor(this.color, {\n        ...BaseItemGroup.options.methods.genData.call(this),\n        attrs: {\n          role: 'listbox',\n        },\n      })\n    },\n  },\n})\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n  name: 'v-list-item-avatar',\n\n  props: {\n    horizontal: Boolean,\n    size: {\n      type: [Number, String],\n      default: 40,\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-list-item__avatar--horizontal': this.horizontal,\n        ...VAvatar.options.computed.classes.call(this),\n        'v-avatar--tile': this.tile || this.horizontal,\n      }\n    },\n  },\n\n  render (h): VNode {\n    const render = VAvatar.options.render.call(this, h)\n\n    render.data = render.data || {}\n    render.data.staticClass += ' v-list-item__avatar'\n\n    return render\n  },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n  VList,\n  VListGroup,\n  VListItem,\n  VListItemAction,\n  VListItemAvatar,\n  VListItemIcon,\n  VListItemGroup,\n}\n\nexport default {\n  $_vuetify_subcomponents: {\n    VList,\n    VListGroup,\n    VListItem,\n    VListItemAction,\n    VListItemActionText,\n    VListItemAvatar,\n    VListItemContent,\n    VListItemGroup,\n    VListItemIcon,\n    VListItemSubtitle,\n    VListItemTitle,\n  },\n}\n","import './VPicker.sass'\nimport '../VCard/VCard.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n  Colorable,\n  Elevatable,\n  Themeable\n).extend({\n  name: 'v-picker',\n\n  props: {\n    flat: Boolean,\n    fullWidth: Boolean,\n    landscape: Boolean,\n    noTitle: Boolean,\n    transition: {\n      type: String,\n      default: 'fade-transition',\n    },\n    width: {\n      type: [Number, String],\n      default: 290,\n    },\n  },\n\n  computed: {\n    computedTitleColor (): string | false {\n      const defaultTitleColor = this.isDark ? false : (this.color || 'primary')\n      return this.color || defaultTitleColor\n    },\n  },\n\n  methods: {\n    genTitle () {\n      return this.$createElement('div', this.setBackgroundColor(this.computedTitleColor, {\n        staticClass: 'v-picker__title',\n        class: {\n          'v-picker__title--landscape': this.landscape,\n        },\n      }), this.$slots.title)\n    },\n    genBodyTransition () {\n      return this.$createElement('transition', {\n        props: {\n          name: this.transition,\n        },\n      }, this.$slots.default)\n    },\n    genBody () {\n      return this.$createElement('div', {\n        staticClass: 'v-picker__body',\n        class: {\n          'v-picker__body--no-title': this.noTitle,\n          ...this.themeClasses,\n        },\n        style: this.fullWidth ? undefined : {\n          width: convertToUnit(this.width),\n        },\n      }, [\n        this.genBodyTransition(),\n      ])\n    },\n    genActions () {\n      return this.$createElement('div', {\n        staticClass: 'v-picker__actions v-card__actions',\n        class: {\n          'v-picker__actions--no-title': this.noTitle,\n        },\n      }, this.$slots.actions)\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-picker v-card',\n      class: {\n        'v-picker--flat': this.flat,\n        'v-picker--landscape': this.landscape,\n        'v-picker--full-width': this.fullWidth,\n        ...this.themeClasses,\n        ...this.elevationClasses,\n      },\n    }, [\n      this.$slots.title ? this.genTitle() : null,\n      this.genBody(),\n      this.$slots.actions ? this.genActions() : null,\n    ])\n  },\n})\n","import VPicker from './VPicker'\n\nexport { VPicker }\nexport default VPicker\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType<typeof Groupable> & {\n  id?: string\n  to?: any\n  value?: any\n }\n\nexport const BaseItemGroup = mixins(\n  Comparable,\n  Proxyable,\n  Themeable\n).extend({\n  name: 'base-item-group',\n\n  props: {\n    activeClass: {\n      type: String,\n      default: 'v-item--active',\n    },\n    mandatory: Boolean,\n    max: {\n      type: [Number, String],\n      default: null,\n    },\n    multiple: Boolean,\n    tag: {\n      type: String,\n      default: 'div',\n    },\n  },\n\n  data () {\n    return {\n      // As long as a value is defined, show it\n      // Otherwise, check if multiple\n      // to determine which default to provide\n      internalLazyValue: this.value !== undefined\n        ? this.value\n        : this.multiple ? [] : undefined,\n      items: [] as GroupableInstance[],\n    }\n  },\n\n  computed: {\n    classes (): Record<string, boolean> {\n      return {\n        'v-item-group': true,\n        ...this.themeClasses,\n      }\n    },\n    selectedIndex (): number {\n      return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n    },\n    selectedItem (): GroupableInstance | undefined {\n      if (this.multiple) return undefined\n\n      return this.selectedItems[0]\n    },\n    selectedItems (): GroupableInstance[] {\n      return this.items.filter((item, index) => {\n        return this.toggleMethod(this.getValue(item, index))\n      })\n    },\n    selectedValues (): any[] {\n      if (this.internalValue == null) return []\n\n      return Array.isArray(this.internalValue)\n        ? this.internalValue\n        : [this.internalValue]\n    },\n    toggleMethod (): (v: any) => boolean {\n      if (!this.multiple) {\n        return (v: any) => this.valueComparator(this.internalValue, v)\n      }\n\n      const internalValue = this.internalValue\n      if (Array.isArray(internalValue)) {\n        return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n      }\n\n      return () => false\n    },\n  },\n\n  watch: {\n    internalValue: 'updateItemsState',\n    items: 'updateItemsState',\n  },\n\n  created () {\n    if (this.multiple && !Array.isArray(this.internalValue)) {\n      consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n    }\n  },\n\n  methods: {\n\n    genData (): object {\n      return {\n        class: this.classes,\n      }\n    },\n    getValue (item: GroupableInstance, i: number): unknown {\n      return item.value === undefined\n        ? i\n        : item.value\n    },\n    onClick (item: GroupableInstance) {\n      this.updateInternalValue(\n        this.getValue(item, this.items.indexOf(item))\n      )\n    },\n    register (item: GroupableInstance) {\n      const index = this.items.push(item) - 1\n\n      item.$on('change', () => this.onClick(item))\n\n      // If no value provided and mandatory,\n      // assign first registered item\n      if (this.mandatory && !this.selectedValues.length) {\n        this.updateMandatory()\n      }\n\n      this.updateItem(item, index)\n    },\n    unregister (item: GroupableInstance) {\n      if (this._isDestroyed) return\n\n      const index = this.items.indexOf(item)\n      const value = this.getValue(item, index)\n\n      this.items.splice(index, 1)\n\n      const valueIndex = this.selectedValues.indexOf(value)\n\n      // Items is not selected, do nothing\n      if (valueIndex < 0) return\n\n      // If not mandatory, use regular update process\n      if (!this.mandatory) {\n        return this.updateInternalValue(value)\n      }\n\n      // Remove the value\n      if (this.multiple && Array.isArray(this.internalValue)) {\n        this.internalValue = this.internalValue.filter(v => v !== value)\n      } else {\n        this.internalValue = undefined\n      }\n\n      // If mandatory and we have no selection\n      // add the last item as value\n      /* istanbul ignore else */\n      if (!this.selectedItems.length) {\n        this.updateMandatory(true)\n      }\n    },\n    updateItem (item: GroupableInstance, index: number) {\n      const value = this.getValue(item, index)\n\n      item.isActive = this.toggleMethod(value)\n    },\n    // https://github.com/vuetifyjs/vuetify/issues/5352\n    updateItemsState () {\n      this.$nextTick(() => {\n        if (this.mandatory &&\n          !this.selectedItems.length\n        ) {\n          return this.updateMandatory()\n        }\n\n        // TODO: Make this smarter so it\n        // doesn't have to iterate every\n        // child in an update\n        this.items.forEach(this.updateItem)\n      })\n    },\n    updateInternalValue (value: any) {\n      this.multiple\n        ? this.updateMultiple(value)\n        : this.updateSingle(value)\n    },\n    updateMandatory (last?: boolean) {\n      if (!this.items.length) return\n\n      const items = this.items.slice()\n\n      if (last) items.reverse()\n\n      const item = items.find(item => !item.disabled)\n\n      // If no tabs are available\n      // aborts mandatory value\n      if (!item) return\n\n      const index = this.items.indexOf(item)\n\n      this.updateInternalValue(\n        this.getValue(item, index)\n      )\n    },\n    updateMultiple (value: any) {\n      const defaultValue = Array.isArray(this.internalValue)\n        ? this.internalValue\n        : []\n      const internalValue = defaultValue.slice()\n      const index = internalValue.findIndex(val => val === value)\n\n      if (\n        this.mandatory &&\n        // Item already exists\n        index > -1 &&\n        // value would be reduced below min\n        internalValue.length - 1 < 1\n      ) return\n\n      if (\n        // Max is set\n        this.max != null &&\n        // Item doesn't exist\n        index < 0 &&\n        // value would be increased above max\n        internalValue.length + 1 > this.max\n      ) return\n\n      index > -1\n        ? internalValue.splice(index, 1)\n        : internalValue.push(value)\n\n      this.internalValue = internalValue\n    },\n    updateSingle (value: any) {\n      const isSame = value === this.internalValue\n\n      if (this.mandatory && isSame) return\n\n      this.internalValue = isSame ? undefined : value\n    },\n  },\n\n  render (h): VNode {\n    return h(this.tag, this.genData(), this.$slots.default)\n  },\n})\n\nexport default BaseItemGroup.extend({\n  name: 'v-item-group',\n\n  provide (): object {\n    return {\n      itemGroup: this,\n    }\n  },\n})\n","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { ExtractVue } from './../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n// Components\nimport VTabsBar from '../VTabs/VTabsBar'\n\nconst baseMixins = mixins(\n  Routable,\n  // Must be after routable\n  // to overwrite activeClass\n  GroupableFactory('tabsBar'),\n  Themeable\n)\n\ntype VTabBarInstance = InstanceType<typeof VTabsBar>\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  $el: HTMLElement\n  tabsBar: VTabBarInstance\n}\n\nexport default baseMixins.extend<options>().extend(\n  /* @vue/component */\n).extend({\n  name: 'v-tab',\n\n  props: {\n    ripple: {\n      type: [Boolean, Object],\n      default: true,\n    },\n  },\n\n  data: () => ({\n    proxyClass: 'v-tab--active',\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        'v-tab': true,\n        ...Routable.options.computed.classes.call(this),\n        'v-tab--disabled': this.disabled,\n        ...this.groupClasses,\n      }\n    },\n    value (): any {\n      let to = this.to || this.href\n\n      if (to == null) return to\n\n      if (this.$router &&\n        this.to === Object(this.to)\n      ) {\n        const resolve = this.$router.resolve(\n          this.to,\n          this.$route,\n          this.append\n        )\n\n        to = resolve.href\n      }\n\n      return to.replace('#', '')\n    },\n  },\n\n  methods: {\n    click (e: KeyboardEvent | MouseEvent): void {\n      // Prevent keyboard actions\n      // from children elements\n      // within disabled tabs\n      if (this.disabled) {\n        e.preventDefault()\n        return\n      }\n\n      // If user provides an\n      // actual link, do not\n      // prevent default\n      if (this.href &&\n        this.href.indexOf('#') > -1\n      ) e.preventDefault()\n\n      if (e.detail) this.$el.blur()\n\n      this.$emit('click', e)\n\n      this.to || this.toggle()\n    },\n    toggle () {\n      // VItemGroup treats a change event as a click\n      if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {\n        this.$emit('change')\n      }\n    },\n  },\n\n  render (h): VNode {\n    const { tag, data } = this.generateRouteLink()\n\n    data.attrs = {\n      ...data.attrs,\n      'aria-selected': String(this.isActive),\n      role: 'tab',\n      tabindex: this.disabled ? -1 : 0,\n    }\n    data.on = {\n      ...data.on,\n      keydown: (e: KeyboardEvent) => {\n        if (e.keyCode === keyCodes.enter) this.click(e)\n\n        this.$emit('keydown', e)\n      },\n    }\n\n    return h(tag, data, this.$slots.default)\n  },\n})\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n  name: 'v-toolbar',\n\n  props: {\n    absolute: Boolean,\n    bottom: Boolean,\n    collapse: Boolean,\n    dense: Boolean,\n    extended: Boolean,\n    extensionHeight: {\n      default: 48,\n      type: [Number, String],\n    },\n    flat: Boolean,\n    floating: Boolean,\n    prominent: Boolean,\n    short: Boolean,\n    src: {\n      type: [String, Object] as PropType<string | srcObject>,\n      default: '',\n    },\n    tag: {\n      type: String,\n      default: 'header',\n    },\n  },\n\n  data: () => ({\n    isExtended: false,\n  }),\n\n  computed: {\n    computedHeight (): number {\n      const height = this.computedContentHeight\n\n      if (!this.isExtended) return height\n\n      const extensionHeight = parseInt(this.extensionHeight)\n\n      return this.isCollapsed\n        ? height\n        : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n    },\n    computedContentHeight (): number {\n      if (this.height) return parseInt(this.height)\n      if (this.isProminent && this.dense) return 96\n      if (this.isProminent && this.short) return 112\n      if (this.isProminent) return 128\n      if (this.dense) return 48\n      if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n      return 64\n    },\n    classes (): object {\n      return {\n        ...VSheet.options.computed.classes.call(this),\n        'v-toolbar': true,\n        'v-toolbar--absolute': this.absolute,\n        'v-toolbar--bottom': this.bottom,\n        'v-toolbar--collapse': this.collapse,\n        'v-toolbar--collapsed': this.isCollapsed,\n        'v-toolbar--dense': this.dense,\n        'v-toolbar--extended': this.isExtended,\n        'v-toolbar--flat': this.flat,\n        'v-toolbar--floating': this.floating,\n        'v-toolbar--prominent': this.isProminent,\n      }\n    },\n    isCollapsed (): boolean {\n      return this.collapse\n    },\n    isProminent (): boolean {\n      return this.prominent\n    },\n    styles (): object {\n      return {\n        ...this.measurableStyles,\n        height: convertToUnit(this.computedHeight),\n      }\n    },\n  },\n\n  created () {\n    const breakingProps = [\n      ['app', '<v-app-bar app>'],\n      ['manual-scroll', '<v-app-bar :value=\"false\">'],\n      ['clipped-left', '<v-app-bar clipped-left>'],\n      ['clipped-right', '<v-app-bar clipped-right>'],\n      ['inverted-scroll', '<v-app-bar inverted-scroll>'],\n      ['scroll-off-screen', '<v-app-bar scroll-off-screen>'],\n      ['scroll-target', '<v-app-bar scroll-target>'],\n      ['scroll-threshold', '<v-app-bar scroll-threshold>'],\n      ['card', '<v-app-bar flat>'],\n    ]\n\n    /* istanbul ignore next */\n    breakingProps.forEach(([original, replacement]) => {\n      if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n    })\n  },\n\n  methods: {\n    genBackground () {\n      const props = {\n        height: convertToUnit(this.computedHeight),\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-toolbar__image',\n      }, [image])\n    },\n    genContent () {\n      return this.$createElement('div', {\n        staticClass: 'v-toolbar__content',\n        style: {\n          height: convertToUnit(this.computedContentHeight),\n        },\n      }, getSlot(this))\n    },\n    genExtension () {\n      return this.$createElement('div', {\n        staticClass: 'v-toolbar__extension',\n        style: {\n          height: convertToUnit(this.extensionHeight),\n        },\n      }, getSlot(this, 'extension'))\n    },\n  },\n\n  render (h): VNode {\n    this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n    const children = [this.genContent()]\n    const data = this.setBackgroundColor(this.color, {\n      class: this.classes,\n      style: this.styles,\n      on: this.$listeners,\n    })\n\n    if (this.isExtended) children.push(this.genExtension())\n    if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n    return h(this.tag, data, children)\n  },\n})\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n  name: 'v-responsive',\n\n  props: {\n    aspectRatio: [String, Number] as NumberOrNumberString,\n    contentClass: String,\n  },\n\n  computed: {\n    computedAspectRatio (): number {\n      return Number(this.aspectRatio)\n    },\n    aspectStyle (): object | undefined {\n      return this.computedAspectRatio\n        ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n        : undefined\n    },\n    __cachedSizer (): VNode | [] {\n      if (!this.aspectStyle) return []\n\n      return this.$createElement('div', {\n        style: this.aspectStyle,\n        staticClass: 'v-responsive__sizer',\n      })\n    },\n  },\n\n  methods: {\n    genContent (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-responsive__content',\n        class: this.contentClass,\n      }, this.$slots.default)\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-responsive',\n      style: this.measurableStyles,\n      on: this.$listeners,\n    }, [\n      this.__cachedSizer,\n      this.genContent(),\n    ])\n  },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n  VInput,\n  Intersectable({\n    onVisible: [\n      'onResize',\n      'tryAutofocus',\n    ],\n  }),\n  Loadable,\n)\ninterface options extends InstanceType<typeof baseMixins> {\n  $refs: {\n    label: HTMLElement\n    input: HTMLInputElement\n    'prepend-inner': HTMLElement\n    prefix: HTMLElement\n    suffix: HTMLElement\n  }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-text-field',\n\n  directives: {\n    resize,\n    ripple,\n  },\n\n  inheritAttrs: false,\n\n  props: {\n    appendOuterIcon: String,\n    autofocus: Boolean,\n    clearable: Boolean,\n    clearIcon: {\n      type: String,\n      default: '$clear',\n    },\n    counter: [Boolean, Number, String],\n    counterValue: Function as PropType<(value: any) => number>,\n    filled: Boolean,\n    flat: Boolean,\n    fullWidth: Boolean,\n    label: String,\n    outlined: Boolean,\n    placeholder: String,\n    prefix: String,\n    prependInnerIcon: String,\n    persistentPlaceholder: Boolean,\n    reverse: Boolean,\n    rounded: Boolean,\n    shaped: Boolean,\n    singleLine: Boolean,\n    solo: Boolean,\n    soloInverted: Boolean,\n    suffix: String,\n    type: {\n      type: String,\n      default: 'text',\n    },\n  },\n\n  data: () => ({\n    badInput: false,\n    labelWidth: 0,\n    prefixWidth: 0,\n    prependWidth: 0,\n    initialValue: null,\n    isBooted: false,\n    isClearing: false,\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        ...VInput.options.computed.classes.call(this),\n        'v-text-field': true,\n        'v-text-field--full-width': this.fullWidth,\n        'v-text-field--prefix': this.prefix,\n        'v-text-field--single-line': this.isSingle,\n        'v-text-field--solo': this.isSolo,\n        'v-text-field--solo-inverted': this.soloInverted,\n        'v-text-field--solo-flat': this.flat,\n        'v-text-field--filled': this.filled,\n        'v-text-field--is-booted': this.isBooted,\n        'v-text-field--enclosed': this.isEnclosed,\n        'v-text-field--reverse': this.reverse,\n        'v-text-field--outlined': this.outlined,\n        'v-text-field--placeholder': this.placeholder,\n        'v-text-field--rounded': this.rounded,\n        'v-text-field--shaped': this.shaped,\n      }\n    },\n    computedColor (): string | undefined {\n      const computedColor = Validatable.options.computed.computedColor.call(this)\n\n      if (!this.soloInverted || !this.isFocused) return computedColor\n\n      return this.color || 'primary'\n    },\n    computedCounterValue (): number {\n      if (typeof this.counterValue === 'function') {\n        return this.counterValue(this.internalValue)\n      }\n      return [...(this.internalValue || '').toString()].length\n    },\n    hasCounter (): boolean {\n      return this.counter !== false && this.counter != null\n    },\n    hasDetails (): boolean {\n      return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n    },\n    internalValue: {\n      get (): any {\n        return this.lazyValue\n      },\n      set (val: any) {\n        this.lazyValue = val\n        this.$emit('input', this.lazyValue)\n      },\n    },\n    isDirty (): boolean {\n      return this.lazyValue?.toString().length > 0 || this.badInput\n    },\n    isEnclosed (): boolean {\n      return (\n        this.filled ||\n        this.isSolo ||\n        this.outlined\n      )\n    },\n    isLabelActive (): boolean {\n      return this.isDirty || dirtyTypes.includes(this.type)\n    },\n    isSingle (): boolean {\n      return (\n        this.isSolo ||\n        this.singleLine ||\n        this.fullWidth ||\n        // https://material.io/components/text-fields/#filled-text-field\n        (this.filled && !this.hasLabel)\n      )\n    },\n    isSolo (): boolean {\n      return this.solo || this.soloInverted\n    },\n    labelPosition (): Record<'left' | 'right', string | number | undefined> {\n      let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n      if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n      return (this.$vuetify.rtl === this.reverse) ? {\n        left: offset,\n        right: 'auto',\n      } : {\n        left: 'auto',\n        right: offset,\n      }\n    },\n    showLabel (): boolean {\n      return this.hasLabel && !(this.isSingle && this.labelValue)\n    },\n    labelValue (): boolean {\n      return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n    },\n  },\n\n  watch: {\n    // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n    outlined: 'setLabelWidth',\n    label () {\n      this.$nextTick(this.setLabelWidth)\n    },\n    prefix () {\n      this.$nextTick(this.setPrefixWidth)\n    },\n    isFocused: 'updateValue',\n    value (val) {\n      this.lazyValue = val\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('box')) {\n      breaking('box', 'filled', this)\n    }\n\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n      breaking('browser-autocomplete', 'autocomplete', this)\n    }\n\n    /* istanbul ignore if */\n    if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n      consoleWarn('shaped should be used with either filled or outlined', this)\n    }\n  },\n\n  mounted () {\n    // #11533\n    this.$watch(() => this.labelValue, this.setLabelWidth)\n    this.autofocus && this.tryAutofocus()\n    requestAnimationFrame(() => {\n      this.isBooted = true\n      requestAnimationFrame(() => {\n        if (!this.isIntersecting) {\n          this.onResize()\n        }\n      })\n    })\n  },\n\n  methods: {\n    /** @public */\n    focus () {\n      this.onFocus()\n    },\n    /** @public */\n    blur (e?: Event) {\n      // https://github.com/vuetifyjs/vuetify/issues/5913\n      // Safari tab order gets broken if called synchronous\n      window.requestAnimationFrame(() => {\n        this.$refs.input && this.$refs.input.blur()\n      })\n    },\n    clearableCallback () {\n      this.$refs.input && this.$refs.input.focus()\n      this.$nextTick(() => this.internalValue = null)\n    },\n    genAppendSlot () {\n      const slot = []\n\n      if (this.$slots['append-outer']) {\n        slot.push(this.$slots['append-outer'] as VNode[])\n      } else if (this.appendOuterIcon) {\n        slot.push(this.genIcon('appendOuter'))\n      }\n\n      return this.genSlot('append', 'outer', slot)\n    },\n    genPrependInnerSlot () {\n      const slot = []\n\n      if (this.$slots['prepend-inner']) {\n        slot.push(this.$slots['prepend-inner'] as VNode[])\n      } else if (this.prependInnerIcon) {\n        slot.push(this.genIcon('prependInner'))\n      }\n\n      return this.genSlot('prepend', 'inner', slot)\n    },\n    genIconSlot () {\n      const slot = []\n\n      if (this.$slots.append) {\n        slot.push(this.$slots.append as VNode[])\n      } else if (this.appendIcon) {\n        slot.push(this.genIcon('append'))\n      }\n\n      return this.genSlot('append', 'inner', slot)\n    },\n    genInputSlot () {\n      const input = VInput.options.methods.genInputSlot.call(this)\n\n      const prepend = this.genPrependInnerSlot()\n\n      if (prepend) {\n        input.children = input.children || []\n        input.children.unshift(prepend)\n      }\n\n      return input\n    },\n    genClearIcon () {\n      if (!this.clearable) return null\n\n      // if the text field has no content then don't display the clear icon.\n      // We add an empty div because other controls depend on a ref to append inner\n      if (!this.isDirty) {\n        return this.genSlot('append', 'inner', [\n          this.$createElement('div'),\n        ])\n      }\n\n      return this.genSlot('append', 'inner', [\n        this.genIcon('clear', this.clearableCallback),\n      ])\n    },\n    genCounter () {\n      if (!this.hasCounter) return null\n\n      const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n      const props = {\n        dark: this.dark,\n        light: this.light,\n        max,\n        value: this.computedCounterValue,\n      }\n\n      return this.$scopedSlots.counter?.({ props }) ?? this.$createElement(VCounter, { props })\n    },\n    genControl () {\n      return VInput.options.methods.genControl.call(this)\n    },\n    genDefaultSlot () {\n      return [\n        this.genFieldset(),\n        this.genTextFieldSlot(),\n        this.genClearIcon(),\n        this.genIconSlot(),\n        this.genProgress(),\n      ]\n    },\n    genFieldset () {\n      if (!this.outlined) return null\n\n      return this.$createElement('fieldset', {\n        attrs: {\n          'aria-hidden': true,\n        },\n      }, [this.genLegend()])\n    },\n    genLabel () {\n      if (!this.showLabel) return null\n\n      const data = {\n        props: {\n          absolute: true,\n          color: this.validationState,\n          dark: this.dark,\n          disabled: this.isDisabled,\n          focused: !this.isSingle && (this.isFocused || !!this.validationState),\n          for: this.computedId,\n          left: this.labelPosition.left,\n          light: this.light,\n          right: this.labelPosition.right,\n          value: this.labelValue,\n        },\n      }\n\n      return this.$createElement(VLabel, data, this.$slots.label || this.label)\n    },\n    genLegend () {\n      const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n      const span = this.$createElement('span', {\n        domProps: { innerHTML: '&#8203;' },\n        staticClass: 'notranslate',\n      })\n\n      return this.$createElement('legend', {\n        style: {\n          width: !this.isSingle ? convertToUnit(width) : undefined,\n        },\n      }, [span])\n    },\n    genInput () {\n      const listeners = Object.assign({}, this.listeners$)\n      delete listeners.change // Change should not be bound externally\n      const { title, ...inputAttrs } = this.attrs$\n\n      return this.$createElement('input', {\n        style: {},\n        domProps: {\n          value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n        },\n        attrs: {\n          ...inputAttrs,\n          autofocus: this.autofocus,\n          disabled: this.isDisabled,\n          id: this.computedId,\n          placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n          readonly: this.isReadonly,\n          type: this.type,\n        },\n        on: Object.assign(listeners, {\n          blur: this.onBlur,\n          input: this.onInput,\n          focus: this.onFocus,\n          keydown: this.onKeyDown,\n        }),\n        ref: 'input',\n        directives: [{\n          name: 'resize',\n          modifiers: { quiet: true },\n          value: this.onResize,\n        }],\n      })\n    },\n    genMessages () {\n      if (!this.showDetails) return null\n\n      const messagesNode = VInput.options.methods.genMessages.call(this)\n      const counterNode = this.genCounter()\n\n      return this.$createElement('div', {\n        staticClass: 'v-text-field__details',\n      }, [\n        messagesNode,\n        counterNode,\n      ])\n    },\n    genTextFieldSlot () {\n      return this.$createElement('div', {\n        staticClass: 'v-text-field__slot',\n      }, [\n        this.genLabel(),\n        this.prefix ? this.genAffix('prefix') : null,\n        this.genInput(),\n        this.suffix ? this.genAffix('suffix') : null,\n      ])\n    },\n    genAffix (type: 'prefix' | 'suffix') {\n      return this.$createElement('div', {\n        class: `v-text-field__${type}`,\n        ref: type,\n      }, this[type])\n    },\n    onBlur (e?: Event) {\n      this.isFocused = false\n      e && this.$nextTick(() => this.$emit('blur', e))\n    },\n    onClick () {\n      if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n      this.$refs.input.focus()\n    },\n    onFocus (e?: Event) {\n      if (!this.$refs.input) return\n\n      const root = attachedRoot(this.$el)\n      if (!root) return\n\n      if (root.activeElement !== this.$refs.input) {\n        return this.$refs.input.focus()\n      }\n\n      if (!this.isFocused) {\n        this.isFocused = true\n        e && this.$emit('focus', e)\n      }\n    },\n    onInput (e: Event) {\n      const target = e.target as HTMLInputElement\n      this.internalValue = target.value\n      this.badInput = target.validity && target.validity.badInput\n    },\n    onKeyDown (e: KeyboardEvent) {\n      if (\n        e.keyCode === keyCodes.enter &&\n        this.lazyValue !== this.initialValue\n      ) {\n        this.initialValue = this.lazyValue\n        this.$emit('change', this.initialValue)\n      }\n\n      this.$emit('keydown', e)\n    },\n    onMouseDown (e: Event) {\n      // Prevent input from being blurred\n      if (e.target !== this.$refs.input) {\n        e.preventDefault()\n        e.stopPropagation()\n      }\n\n      VInput.options.methods.onMouseDown.call(this, e)\n    },\n    onMouseUp (e: Event) {\n      if (this.hasMouseDown) this.focus()\n\n      VInput.options.methods.onMouseUp.call(this, e)\n    },\n    setLabelWidth () {\n      if (!this.outlined) return\n\n      this.labelWidth = this.$refs.label\n        ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n        : 0\n    },\n    setPrefixWidth () {\n      if (!this.$refs.prefix) return\n\n      this.prefixWidth = this.$refs.prefix.offsetWidth\n    },\n    setPrependWidth () {\n      if (!this.outlined || !this.$refs['prepend-inner']) return\n\n      this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n    },\n    tryAutofocus () {\n      if (\n        !this.autofocus ||\n        typeof document === 'undefined' ||\n        !this.$refs.input) return false\n\n      const root = attachedRoot(this.$el)\n      if (!root || root.activeElement === this.$refs.input) return false\n\n      this.$refs.input.focus()\n\n      return true\n    },\n    updateValue (val: boolean) {\n      // Sets validationState from validatable\n      this.hasColor = val\n\n      if (val) {\n        this.initialValue = this.lazyValue\n      } else if (this.initialValue !== this.lazyValue) {\n        this.$emit('change', this.lazyValue)\n      }\n    },\n    onResize () {\n      this.setLabelWidth()\n      this.setPrefixWidth()\n      this.setPrependWidth()\n    },\n  },\n})\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType<typeof VListGroup>\n\ninterface options extends InstanceType<typeof VSheet> {\n  isInMenu: boolean\n  isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend<options>().extend({\n  name: 'v-list',\n\n  provide (): object {\n    return {\n      isInList: true,\n      list: this,\n    }\n  },\n\n  inject: {\n    isInMenu: {\n      default: false,\n    },\n    isInNav: {\n      default: false,\n    },\n  },\n\n  props: {\n    dense: Boolean,\n    disabled: Boolean,\n    expand: Boolean,\n    flat: Boolean,\n    nav: Boolean,\n    rounded: Boolean,\n    subheader: Boolean,\n    threeLine: Boolean,\n    twoLine: Boolean,\n  },\n\n  data: () => ({\n    groups: [] as VListGroupInstance[],\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        ...VSheet.options.computed.classes.call(this),\n        'v-list--dense': this.dense,\n        'v-list--disabled': this.disabled,\n        'v-list--flat': this.flat,\n        'v-list--nav': this.nav,\n        'v-list--rounded': this.rounded,\n        'v-list--subheader': this.subheader,\n        'v-list--two-line': this.twoLine,\n        'v-list--three-line': this.threeLine,\n      }\n    },\n  },\n\n  methods: {\n    register (content: VListGroupInstance) {\n      this.groups.push(content)\n    },\n    unregister (content: VListGroupInstance) {\n      const index = this.groups.findIndex(g => g._uid === content._uid)\n\n      if (index > -1) this.groups.splice(index, 1)\n    },\n    listClick (uid: number) {\n      if (this.expand) return\n\n      for (const group of this.groups) {\n        group.toggle(uid)\n      }\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-list',\n      class: this.classes,\n      style: this.styles,\n      attrs: {\n        role: this.isInNav || this.isInMenu ? undefined : 'list',\n        ...this.attrs$,\n      },\n    }\n\n    return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n  },\n})\n","import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n  Colorable,\n  Intersectable({ onVisible: ['init'] }),\n  Themeable\n).extend({\n  name: 'v-pagination',\n\n  directives: { Resize },\n\n  props: {\n    circle: Boolean,\n    disabled: Boolean,\n    length: {\n      type: Number,\n      default: 0,\n      validator: (val: number) => val % 1 === 0,\n    },\n    nextIcon: {\n      type: String,\n      default: '$next',\n    },\n    prevIcon: {\n      type: String,\n      default: '$prev',\n    },\n    totalVisible: [Number, String],\n    value: {\n      type: Number,\n      default: 0,\n    },\n    pageAriaLabel: {\n      type: String,\n      default: '$vuetify.pagination.ariaLabel.page',\n    },\n    currentPageAriaLabel: {\n      type: String,\n      default: '$vuetify.pagination.ariaLabel.currentPage',\n    },\n    previousAriaLabel: {\n      type: String,\n      default: '$vuetify.pagination.ariaLabel.previous',\n    },\n    nextAriaLabel: {\n      type: String,\n      default: '$vuetify.pagination.ariaLabel.next',\n    },\n    wrapperAriaLabel: {\n      type: String,\n      default: '$vuetify.pagination.ariaLabel.wrapper',\n    },\n  },\n\n  data () {\n    return {\n      maxButtons: 0,\n      selected: null as number | null,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-pagination': true,\n        'v-pagination--circle': this.circle,\n        'v-pagination--disabled': this.disabled,\n        ...this.themeClasses,\n      }\n    },\n\n    items (): (string | number)[] {\n      const totalVisible = parseInt(this.totalVisible, 10)\n\n      if (totalVisible === 0) {\n        return []\n      }\n\n      const maxLength = Math.min(\n        Math.max(0, totalVisible) || this.length,\n        Math.max(0, this.maxButtons) || this.length,\n        this.length\n      )\n\n      if (this.length <= maxLength) {\n        return this.range(1, this.length)\n      }\n\n      const even = maxLength % 2 === 0 ? 1 : 0\n      const left = Math.floor(maxLength / 2)\n      const right = this.length - left + 1 + even\n\n      if (this.value > left && this.value < right) {\n        const firstItem = 1\n        const lastItem = this.length\n        const start = this.value - left + 2\n        const end = this.value + left - 2 - even\n        const secondItem = start - 1 === firstItem + 1 ? 2 : '...'\n        const beforeLastItem = end + 1 === lastItem - 1 ? end + 1 : '...'\n\n        return [1, secondItem, ...this.range(start, end), beforeLastItem, this.length]\n      } else if (this.value === left) {\n        const end = this.value + left - 1 - even\n        return [...this.range(1, end), '...', this.length]\n      } else if (this.value === right) {\n        const start = this.value - left + 1\n        return [1, '...', ...this.range(start, this.length)]\n      } else {\n        return [\n          ...this.range(1, left),\n          '...',\n          ...this.range(right, this.length),\n        ]\n      }\n    },\n  },\n\n  watch: {\n    value () {\n      this.init()\n    },\n  },\n\n  mounted () {\n    this.init()\n  },\n\n  methods: {\n    init () {\n      this.selected = null\n\n      this.$nextTick(this.onResize)\n      // TODO: Change this (f75dee3a, cbdf7caa)\n      setTimeout(() => (this.selected = this.value), 100)\n    },\n    onResize () {\n      const width = this.$el && this.$el.parentElement\n        ? this.$el.parentElement.clientWidth\n        : window.innerWidth\n\n      this.maxButtons = Math.floor((width - 96) / 42)\n    },\n    next (e: Event) {\n      e.preventDefault()\n      this.$emit('input', this.value + 1)\n      this.$emit('next')\n    },\n    previous (e: Event) {\n      e.preventDefault()\n      this.$emit('input', this.value - 1)\n      this.$emit('previous')\n    },\n    range (from: number, to: number) {\n      const range = []\n\n      from = from > 0 ? from : 1\n\n      for (let i = from; i <= to; i++) {\n        range.push(i)\n      }\n\n      return range\n    },\n    genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n      return h('li', [\n        h('button', {\n          staticClass: 'v-pagination__navigation',\n          class: {\n            'v-pagination__navigation--disabled': disabled,\n          },\n          attrs: {\n            disabled,\n            type: 'button',\n            'aria-label': label,\n          },\n          on: disabled ? {} : { click: fn },\n        }, [h(VIcon, [icon])]),\n      ])\n    },\n    genItem (h: CreateElement, i: string | number): VNode {\n      const color: string | false = (i === this.value) && (this.color || 'primary')\n      const isCurrentPage = i === this.value\n      const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n      return h('button', this.setBackgroundColor(color, {\n        staticClass: 'v-pagination__item',\n        class: {\n          'v-pagination__item--active': i === this.value,\n        },\n        attrs: {\n          type: 'button',\n          'aria-current': isCurrentPage,\n          'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n        },\n        on: {\n          click: () => this.$emit('input', i),\n        },\n      }), [i.toString()])\n    },\n    genItems (h: CreateElement): VNode[] {\n      return this.items.map((i, index) => {\n        return h('li', { key: index }, [\n          isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n        ])\n      })\n    },\n    genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n      return h('ul', {\n        directives: [{\n          modifiers: { quiet: true },\n          name: 'resize',\n          value: this.onResize,\n        }],\n        class: this.classes,\n      }, children)\n    },\n  },\n\n  render (h): VNode {\n    const children = [\n      this.genIcon(h,\n        this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n        this.value <= 1,\n        this.previous,\n        this.$vuetify.lang.t(this.previousAriaLabel)),\n      this.genItems(h),\n      this.genIcon(h,\n        this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n        this.value >= this.length,\n        this.next,\n        this.$vuetify.lang.t(this.nextAriaLabel)),\n    ]\n\n    return h('nav', {\n      attrs: {\n        role: 'navigation',\n        'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n      },\n    }, [this.genList(h, children)])\n  },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n  BindsAttrs,\n  Colorable,\n  Elevatable,\n  Measurable,\n  Roundable,\n  Themeable\n).extend({\n  name: 'v-sheet',\n\n  props: {\n    outlined: Boolean,\n    shaped: Boolean,\n    tag: {\n      type: String,\n      default: 'div',\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-sheet': true,\n        'v-sheet--outlined': this.outlined,\n        'v-sheet--shaped': this.shaped,\n        ...this.themeClasses,\n        ...this.elevationClasses,\n        ...this.roundedClasses,\n      }\n    },\n    styles (): object {\n      return this.measurableStyles\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      class: this.classes,\n      style: this.styles,\n      on: this.listeners$,\n    }\n\n    return h(\n      this.tag,\n      this.setBackgroundColor(this.color, data),\n      this.$slots.default\n    )\n  },\n})\n","// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(Colorable).extend({\n  name: 'v-tabs-slider',\n\n  render (h): VNode {\n    return h('div', this.setBackgroundColor(this.color, {\n      staticClass: 'v-tabs-slider',\n    }))\n  },\n})\n","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n  $refs: {\n    input: HTMLTextAreaElement\n  }\n}\n\nconst baseMixins = mixins<options &\n  InstanceType<typeof VTextField>\n>(\n  VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-textarea',\n\n  props: {\n    autoGrow: Boolean,\n    noResize: Boolean,\n    rowHeight: {\n      type: [Number, String],\n      default: 24,\n      validator: (v: any) => !isNaN(parseFloat(v)),\n    },\n    rows: {\n      type: [Number, String],\n      default: 5,\n      validator: (v: any) => !isNaN(parseInt(v, 10)),\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-textarea': true,\n        'v-textarea--auto-grow': this.autoGrow,\n        'v-textarea--no-resize': this.noResizeHandle,\n        ...VTextField.options.computed.classes.call(this),\n      }\n    },\n    noResizeHandle (): boolean {\n      return this.noResize || this.autoGrow\n    },\n  },\n\n  watch: {\n    autoGrow (val: boolean) {\n      this.$nextTick(() => {\n        val\n          ? this.calculateInputHeight()\n          : this.$refs.input?.style.removeProperty('height')\n      })\n    },\n    lazyValue () {\n      this.autoGrow && this.$nextTick(this.calculateInputHeight)\n    },\n    rowHeight () {\n      this.autoGrow && this.$nextTick(this.calculateInputHeight)\n    },\n  },\n\n  mounted () {\n    setTimeout(() => {\n      this.autoGrow && this.calculateInputHeight()\n    }, 0)\n  },\n\n  methods: {\n    calculateInputHeight () {\n      const input = this.$refs.input\n      if (!input) return\n\n      input.style.height = '0'\n      const height = input.scrollHeight\n      const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n      // This has to be done ASAP, waiting for Vue\n      // to update the DOM causes ugly layout jumping\n      input.style.height = Math.max(minHeight, height) + 'px'\n    },\n    genInput () {\n      const input = VTextField.options.methods.genInput.call(this)\n\n      input.tag = 'textarea'\n      delete input.data!.attrs!.type\n      input.data!.attrs!.rows = this.rows\n\n      return input\n    },\n    onInput (e: Event) {\n      VTextField.options.methods.onInput.call(this, e)\n      this.autoGrow && this.calculateInputHeight()\n    },\n    onKeyDown (e: KeyboardEvent) {\n      // Prevents closing of a\n      // dialog when pressing\n      // enter\n      if (this.isFocused && e.keyCode === 13) {\n        e.stopPropagation()\n      }\n\n      this.$emit('keydown', e)\n    },\n  },\n})\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from 'vuetify/types'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default BaseItemGroup.extend({\n  name: 'v-window',\n\n  directives: { Touch },\n\n  provide (): object {\n    return {\n      windowGroup: this,\n    }\n  },\n\n  props: {\n    activeClass: {\n      type: String,\n      default: 'v-window-item--active',\n    },\n    continuous: Boolean,\n    mandatory: {\n      type: Boolean,\n      default: true,\n    },\n    nextIcon: {\n      type: [Boolean, String],\n      default: '$next',\n    },\n    prevIcon: {\n      type: [Boolean, String],\n      default: '$prev',\n    },\n    reverse: Boolean,\n    showArrows: Boolean,\n    showArrowsOnHover: Boolean,\n    touch: Object as PropType<TouchHandlers>,\n    touchless: Boolean,\n    value: {\n      required: false,\n    },\n    vertical: Boolean,\n  },\n\n  data () {\n    return {\n      changedByDelimiters: false,\n      internalHeight: undefined as undefined | string, // This can be fixed by child class.\n      transitionHeight: undefined as undefined | string, // Intermediate height during transition.\n      transitionCount: 0, // Number of windows in transition state.\n      isBooted: false,\n      isReverse: false,\n    }\n  },\n\n  computed: {\n    isActive (): boolean {\n      return this.transitionCount > 0\n    },\n    classes (): object {\n      return {\n        ...BaseItemGroup.options.computed.classes.call(this),\n        'v-window--show-arrows-on-hover': this.showArrowsOnHover,\n      }\n    },\n    computedTransition (): string {\n      if (!this.isBooted) return ''\n\n      const axis = this.vertical ? 'y' : 'x'\n      const reverse = this.internalReverse ? !this.isReverse : this.isReverse\n      const direction = reverse ? '-reverse' : ''\n\n      return `v-window-${axis}${direction}-transition`\n    },\n    hasActiveItems (): boolean {\n      return Boolean(\n        this.items.find(item => !item.disabled)\n      )\n    },\n    hasNext (): boolean {\n      return this.continuous || this.internalIndex < this.items.length - 1\n    },\n    hasPrev (): boolean {\n      return this.continuous || this.internalIndex > 0\n    },\n    internalIndex (): number {\n      return this.items.findIndex((item, i) => {\n        return this.internalValue === this.getValue(item, i)\n      })\n    },\n    internalReverse (): boolean {\n      return this.$vuetify.rtl ? !this.reverse : this.reverse\n    },\n  },\n\n  watch: {\n    internalIndex (val, oldVal) {\n      this.isReverse = this.updateReverse(val, oldVal)\n    },\n  },\n\n  mounted () {\n    window.requestAnimationFrame(() => (this.isBooted = true))\n  },\n\n  methods: {\n    genDefaultSlot () {\n      return this.$slots.default\n    },\n    genContainer (): VNode {\n      const children = [this.genDefaultSlot()]\n\n      if (this.showArrows) {\n        children.push(this.genControlIcons())\n      }\n\n      return this.$createElement('div', {\n        staticClass: 'v-window__container',\n        class: {\n          'v-window__container--is-active': this.isActive,\n        },\n        style: {\n          height: this.internalHeight || this.transitionHeight,\n        },\n      }, children)\n    },\n    genIcon (\n      direction: 'prev' | 'next',\n      icon: string,\n      click: () => void\n    ) {\n      const on = {\n        click: (e: Event) => {\n          e.stopPropagation()\n          this.changedByDelimiters = true\n          click()\n        },\n      }\n      const attrs = {\n        'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`),\n      }\n      const children = this.$scopedSlots[direction]?.({\n        on,\n        attrs,\n      }) ?? [this.$createElement(VBtn, {\n        props: { icon: true },\n        attrs,\n        on,\n      }, [\n        this.$createElement(VIcon, {\n          props: { large: true },\n        }, icon),\n      ])]\n\n      return this.$createElement('div', {\n        staticClass: `v-window__${direction}`,\n      }, children)\n    },\n    genControlIcons () {\n      const icons = []\n\n      const prevIcon = this.$vuetify.rtl\n        ? this.nextIcon\n        : this.prevIcon\n\n      /* istanbul ignore else */\n      if (\n        this.hasPrev &&\n        prevIcon &&\n        typeof prevIcon === 'string'\n      ) {\n        const icon = this.genIcon('prev', prevIcon, this.prev)\n        icon && icons.push(icon)\n      }\n\n      const nextIcon = this.$vuetify.rtl\n        ? this.prevIcon\n        : this.nextIcon\n\n      /* istanbul ignore else */\n      if (\n        this.hasNext &&\n        nextIcon &&\n        typeof nextIcon === 'string'\n      ) {\n        const icon = this.genIcon('next', nextIcon, this.next)\n        icon && icons.push(icon)\n      }\n\n      return icons\n    },\n    getNextIndex (index: number): number {\n      const nextIndex = (index + 1) % this.items.length\n      const item = this.items[nextIndex]\n\n      if (item.disabled) return this.getNextIndex(nextIndex)\n\n      return nextIndex\n    },\n    getPrevIndex (index: number): number {\n      const prevIndex = (index + this.items.length - 1) % this.items.length\n      const item = this.items[prevIndex]\n\n      if (item.disabled) return this.getPrevIndex(prevIndex)\n\n      return prevIndex\n    },\n    next () {\n      /* istanbul ignore if */\n      if (!this.hasActiveItems || !this.hasNext) return\n\n      const nextIndex = this.getNextIndex(this.internalIndex)\n      const item = this.items[nextIndex]\n\n      this.internalValue = this.getValue(item, nextIndex)\n    },\n    prev () {\n      /* istanbul ignore if */\n      if (!this.hasActiveItems || !this.hasPrev) return\n\n      const lastIndex = this.getPrevIndex(this.internalIndex)\n      const item = this.items[lastIndex]\n\n      this.internalValue = this.getValue(item, lastIndex)\n    },\n    updateReverse (val: number, oldVal: number) {\n      const itemsLength = this.items.length\n      const lastIndex = itemsLength - 1\n\n      if (itemsLength <= 2) return val < oldVal\n\n      if (val === lastIndex && oldVal === 0) {\n        return true\n      } else if (val === 0 && oldVal === lastIndex) {\n        return false\n      } else {\n        return val < oldVal\n      }\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-window',\n      class: this.classes,\n      directives: [] as VNodeDirective[],\n    }\n\n    if (!this.touchless) {\n      const value = this.touch || {\n        left: () => {\n          this.$vuetify.rtl ? this.prev() : this.next()\n        },\n        right: () => {\n          this.$vuetify.rtl ? this.next() : this.prev()\n        },\n        end: (e: TouchEvent) => {\n          e.stopPropagation()\n        },\n        start: (e: TouchEvent) => {\n          e.stopPropagation()\n        },\n      }\n\n      data.directives.push({\n        name: 'touch',\n        value,\n      })\n    }\n\n    return h('div', data, [this.genContainer()])\n  },\n})\n","// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n// Types & Components\nimport { BaseItemGroup, GroupableInstance } from './../VItemGroup/VItemGroup'\n\n/* @vue/component */\nexport default VWindow.extend({\n  name: 'v-tabs-items',\n\n  props: {\n    mandatory: {\n      type: Boolean,\n      default: false,\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        ...VWindow.options.computed.classes.call(this),\n        'v-tabs-items': true,\n      }\n    },\n    isDark (): boolean {\n      return this.rootIsDark\n    },\n  },\n\n  methods: {\n    getValue (item: GroupableInstance, i: number) {\n      return item.id || BaseItemGroup.options.methods.getValue.call(this, item, i)\n    },\n  },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n  Themeable\n  /* @vue/component */\n).extend({\n  name: 'v-subheader',\n\n  props: {\n    inset: Boolean,\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-subheader',\n      class: {\n        'v-subheader--inset': this.inset,\n        ...this.themeClasses,\n      },\n      attrs: this.$attrs,\n      on: this.$listeners,\n    }, this.$slots.default)\n  },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n  VList,\n  VListItem,\n  VListItemAction,\n  VListItemContent,\n  VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport {\n  escapeHTML,\n  getPropertyFromItem,\n} from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n  name: 'v-select-list',\n\n  // https://github.com/vuejs/vue/issues/6872\n  directives: {\n    ripple,\n  },\n\n  props: {\n    action: Boolean,\n    dense: Boolean,\n    hideSelected: Boolean,\n    items: {\n      type: Array,\n      default: () => [],\n    } as PropValidator<any[]>,\n    itemDisabled: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'disabled',\n    },\n    itemText: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'text',\n    },\n    itemValue: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'value',\n    },\n    noDataText: String,\n    noFilter: Boolean,\n    searchInput: null as unknown as PropType<any>,\n    selectedItems: {\n      type: Array,\n      default: () => [],\n    } as PropValidator<any[]>,\n  },\n\n  computed: {\n    parsedItems (): any[] {\n      return this.selectedItems.map(item => this.getValue(item))\n    },\n    tileActiveClass (): string {\n      return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n    },\n    staticNoDataTile (): VNode {\n      const tile = {\n        attrs: {\n          role: undefined,\n        },\n        on: {\n          mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n        },\n      }\n\n      return this.$createElement(VListItem, tile, [\n        this.genTileContent(this.noDataText),\n      ])\n    },\n  },\n\n  methods: {\n    genAction (item: object, inputValue: any): VNode {\n      return this.$createElement(VListItemAction, [\n        this.$createElement(VSimpleCheckbox, {\n          props: {\n            color: this.color,\n            value: inputValue,\n            ripple: false,\n          },\n          on: {\n            input: () => this.$emit('select', item),\n          },\n        }),\n      ])\n    },\n    genDivider (props: { [key: string]: any }) {\n      return this.$createElement(VDivider, { props })\n    },\n    genFilteredText (text: string) {\n      text = text || ''\n\n      if (!this.searchInput || this.noFilter) return escapeHTML(text)\n\n      const { start, middle, end } = this.getMaskedCharacters(text)\n\n      return `${escapeHTML(start)}${this.genHighlight(middle)}${escapeHTML(end)}`\n    },\n    genHeader (props: { [key: string]: any }): VNode {\n      return this.$createElement(VSubheader, { props }, props.header)\n    },\n    genHighlight (text: string): string {\n      return `<span class=\"v-list-item__mask\">${escapeHTML(text)}</span>`\n    },\n    getMaskedCharacters (text: string): {\n      start: string\n      middle: string\n      end: string\n    } {\n      const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n      const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n      if (index < 0) return { start: text, middle: '', end: '' }\n\n      const start = text.slice(0, index)\n      const middle = text.slice(index, index + searchInput.length)\n      const end = text.slice(index + searchInput.length)\n      return { start, middle, end }\n    },\n    genTile ({\n      item,\n      index,\n      disabled = null,\n      value = false,\n    }: ListTile): VNode | VNode[] | undefined {\n      if (!value) value = this.hasItem(item)\n\n      if (item === Object(item)) {\n        disabled = disabled !== null\n          ? disabled\n          : this.getDisabled(item)\n      }\n\n      const tile = {\n        attrs: {\n          // Default behavior in list does not\n          // contain aria-selected by default\n          'aria-selected': String(value),\n          id: `list-item-${this._uid}-${index}`,\n          role: 'option',\n        },\n        on: {\n          mousedown: (e: Event) => {\n            // Prevent onBlur from being called\n            e.preventDefault()\n          },\n          click: () => disabled || this.$emit('select', item),\n        },\n        props: {\n          activeClass: this.tileActiveClass,\n          disabled,\n          ripple: true,\n          inputValue: value,\n        },\n      }\n\n      if (!this.$scopedSlots.item) {\n        return this.$createElement(VListItem, tile, [\n          this.action && !this.hideSelected && this.items.length > 0\n            ? this.genAction(item, value)\n            : null,\n          this.genTileContent(item, index),\n        ])\n      }\n\n      const parent = this\n      const scopedSlot = this.$scopedSlots.item({\n        parent,\n        item,\n        attrs: {\n          ...tile.attrs,\n          ...tile.props,\n        },\n        on: tile.on,\n      })\n\n      return this.needsTile(scopedSlot)\n        ? this.$createElement(VListItem, tile, scopedSlot)\n        : scopedSlot\n    },\n    genTileContent (item: any, index = 0): VNode {\n      const innerHTML = this.genFilteredText(this.getText(item))\n\n      return this.$createElement(VListItemContent,\n        [this.$createElement(VListItemTitle, {\n          domProps: { innerHTML },\n        })]\n      )\n    },\n    hasItem (item: object) {\n      return this.parsedItems.indexOf(this.getValue(item)) > -1\n    },\n    needsTile (slot: VNode[] | undefined) {\n      return slot!.length !== 1 ||\n        slot![0].componentOptions == null ||\n        slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n    },\n    getDisabled (item: object) {\n      return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n    },\n    getText (item: object) {\n      return String(getPropertyFromItem(item, this.itemText, item))\n    },\n    getValue (item: object) {\n      return getPropertyFromItem(item, this.itemValue, this.getText(item))\n    },\n  },\n\n  render (): VNode {\n    const children: VNodeChildren = []\n    const itemsLength = this.items.length\n    for (let index = 0; index < itemsLength; index++) {\n      const item = this.items[index]\n\n      if (this.hideSelected &&\n        this.hasItem(item)\n      ) continue\n\n      if (item == null) children.push(this.genTile({ item, index }))\n      else if (item.header) children.push(this.genHeader(item))\n      else if (item.divider) children.push(this.genDivider(item))\n      else children.push(this.genTile({ item, index }))\n    }\n\n    children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n    this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n    this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n    return this.$createElement(VList, {\n      staticClass: 'v-select-list',\n      class: this.themeClasses,\n      attrs: {\n        role: 'listbox',\n        tabindex: -1,\n      },\n      props: { dense: this.dense },\n    }, children)\n  },\n})\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Dependent from '../../mixins/dependent'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n  closeOnClick: false,\n  closeOnContentClick: false,\n  disableKeys: true,\n  openOnClick: false,\n  maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n  VTextField,\n  Comparable,\n  Dependent,\n  Filterable\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n  $refs: {\n    menu: InstanceType<typeof VMenu>\n    content: HTMLElement\n    label: HTMLElement\n    input: HTMLInputElement\n    'prepend-inner': HTMLElement\n    'append-inner': HTMLElement\n    prefix: HTMLElement\n    suffix: HTMLElement\n  }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-select',\n\n  directives: {\n    ClickOutside,\n  },\n\n  props: {\n    appendIcon: {\n      type: String,\n      default: '$dropdown',\n    },\n    attach: {\n      type: null as unknown as PropType<string | boolean | Element | VNode>,\n      default: false,\n    },\n    cacheItems: Boolean,\n    chips: Boolean,\n    clearable: Boolean,\n    deletableChips: Boolean,\n    disableLookup: Boolean,\n    eager: Boolean,\n    hideSelected: Boolean,\n    items: {\n      type: Array,\n      default: () => [],\n    } as PropValidator<any[]>,\n    itemColor: {\n      type: String,\n      default: 'primary',\n    },\n    itemDisabled: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'disabled',\n    },\n    itemText: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'text',\n    },\n    itemValue: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'value',\n    },\n    menuProps: {\n      type: [String, Array, Object],\n      default: () => defaultMenuProps,\n    },\n    multiple: Boolean,\n    openOnClear: Boolean,\n    returnObject: Boolean,\n    smallChips: Boolean,\n  },\n\n  data () {\n    return {\n      cachedItems: this.cacheItems ? this.items : [],\n      menuIsBooted: false,\n      isMenuActive: false,\n      lastItem: 20,\n      // As long as a value is defined, show it\n      // Otherwise, check if multiple\n      // to determine which default to provide\n      lazyValue: this.value !== undefined\n        ? this.value\n        : this.multiple ? [] : undefined,\n      selectedIndex: -1,\n      selectedItems: [] as any[],\n      keyboardLookupPrefix: '',\n      keyboardLookupLastTime: 0,\n    }\n  },\n\n  computed: {\n    /* All items that the select has */\n    allItems (): object[] {\n      return this.filterDuplicates(this.cachedItems.concat(this.items))\n    },\n    classes (): object {\n      return {\n        ...VTextField.options.computed.classes.call(this),\n        'v-select': true,\n        'v-select--chips': this.hasChips,\n        'v-select--chips--small': this.smallChips,\n        'v-select--is-menu-active': this.isMenuActive,\n        'v-select--is-multi': this.multiple,\n      }\n    },\n    /* Used by other components to overwrite */\n    computedItems (): object[] {\n      return this.allItems\n    },\n    computedOwns (): string {\n      return `list-${this._uid}`\n    },\n    computedCounterValue (): number {\n      const value = this.multiple\n        ? this.selectedItems\n        : (this.getText(this.selectedItems[0]) || '').toString()\n\n      if (typeof this.counterValue === 'function') {\n        return this.counterValue(value)\n      }\n\n      return value.length\n    },\n    directives (): VNodeDirective[] | undefined {\n      return this.isFocused ? [{\n        name: 'click-outside',\n        value: {\n          handler: this.blur,\n          closeConditional: this.closeConditional,\n          include: () => this.getOpenDependentElements(),\n        },\n      }] : undefined\n    },\n    dynamicHeight () {\n      return 'auto'\n    },\n    hasChips (): boolean {\n      return this.chips || this.smallChips\n    },\n    hasSlot (): boolean {\n      return Boolean(this.hasChips || this.$scopedSlots.selection)\n    },\n    isDirty (): boolean {\n      return this.selectedItems.length > 0\n    },\n    listData (): object {\n      const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n      const attrs = scopeId ? {\n        [scopeId]: true,\n      } : {}\n\n      return {\n        attrs: {\n          ...attrs,\n          id: this.computedOwns,\n        },\n        props: {\n          action: this.multiple,\n          color: this.itemColor,\n          dense: this.dense,\n          hideSelected: this.hideSelected,\n          items: this.virtualizedItems,\n          itemDisabled: this.itemDisabled,\n          itemText: this.itemText,\n          itemValue: this.itemValue,\n          noDataText: this.$vuetify.lang.t(this.noDataText),\n          selectedItems: this.selectedItems,\n        },\n        on: {\n          select: this.selectItem,\n        },\n        scopedSlots: {\n          item: this.$scopedSlots.item,\n        },\n      }\n    },\n    staticList (): VNode {\n      if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n        consoleError('assert: staticList should not be called if slots are used')\n      }\n\n      return this.$createElement(VSelectList, this.listData)\n    },\n    virtualizedItems (): object[] {\n      return (this.$_menuProps as any).auto\n        ? this.computedItems\n        : this.computedItems.slice(0, this.lastItem)\n    },\n    menuCanShow: () => true,\n    $_menuProps (): object {\n      let normalisedProps = typeof this.menuProps === 'string'\n        ? this.menuProps.split(',')\n        : this.menuProps\n\n      if (Array.isArray(normalisedProps)) {\n        normalisedProps = normalisedProps.reduce((acc, p) => {\n          acc[p.trim()] = true\n          return acc\n        }, {})\n      }\n\n      return {\n        ...defaultMenuProps,\n        eager: this.eager,\n        value: this.menuCanShow && this.isMenuActive,\n        nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n        ...normalisedProps,\n      }\n    },\n  },\n\n  watch: {\n    internalValue (val) {\n      this.initialValue = val\n      this.setSelectedItems()\n    },\n    isMenuActive (val) {\n      window.setTimeout(() => this.onMenuActiveChange(val))\n    },\n    items: {\n      immediate: true,\n      handler (val) {\n        if (this.cacheItems) {\n          // Breaks vue-test-utils if\n          // this isn't calculated\n          // on the next tick\n          this.$nextTick(() => {\n            this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n          })\n        }\n\n        this.setSelectedItems()\n      },\n    },\n  },\n\n  methods: {\n    /** @public */\n    blur (e?: Event) {\n      VTextField.options.methods.blur.call(this, e)\n      this.isMenuActive = false\n      this.isFocused = false\n      this.selectedIndex = -1\n      this.setMenuIndex(-1)\n    },\n    /** @public */\n    activateMenu () {\n      if (\n        !this.isInteractive ||\n        this.isMenuActive\n      ) return\n\n      this.isMenuActive = true\n    },\n    clearableCallback () {\n      this.setValue(this.multiple ? [] : null)\n      this.setMenuIndex(-1)\n      this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n      if (this.openOnClear) this.isMenuActive = true\n    },\n    closeConditional (e: Event) {\n      if (!this.isMenuActive) return true\n\n      return (\n        !this._isDestroyed &&\n\n        // Click originates from outside the menu content\n        // Multiple selects don't close when an item is clicked\n        (!this.getContent() ||\n        !this.getContent().contains(e.target as Node)) &&\n\n        // Click originates from outside the element\n        this.$el &&\n        !this.$el.contains(e.target as Node) &&\n        e.target !== this.$el\n      )\n    },\n    filterDuplicates (arr: any[]) {\n      const uniqueValues = new Map()\n      for (let index = 0; index < arr.length; ++index) {\n        const item = arr[index]\n\n        // Do not return null values if existant (#14421)\n        if (item == null) {\n          continue\n        }\n        // Do not deduplicate headers or dividers (#12517)\n        if (item.header || item.divider) {\n          uniqueValues.set(item, item)\n          continue\n        }\n\n        const val = this.getValue(item)\n\n        // TODO: comparator\n        !uniqueValues.has(val) && uniqueValues.set(val, item)\n      }\n      return Array.from(uniqueValues.values())\n    },\n    findExistingIndex (item: object) {\n      const itemValue = this.getValue(item)\n\n      return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n    },\n    getContent () {\n      return this.$refs.menu && this.$refs.menu.$refs.content\n    },\n    genChipSelection (item: object, index: number) {\n      const isDisabled = (\n        this.isDisabled ||\n        this.getDisabled(item)\n      )\n      const isInteractive = !isDisabled && this.isInteractive\n\n      return this.$createElement(VChip, {\n        staticClass: 'v-chip--select',\n        attrs: { tabindex: -1 },\n        props: {\n          close: this.deletableChips && isInteractive,\n          disabled: isDisabled,\n          inputValue: index === this.selectedIndex,\n          small: this.smallChips,\n        },\n        on: {\n          click: (e: MouseEvent) => {\n            if (!isInteractive) return\n\n            e.stopPropagation()\n\n            this.selectedIndex = index\n          },\n          'click:close': () => this.onChipInput(item),\n        },\n        key: JSON.stringify(this.getValue(item)),\n      }, this.getText(item))\n    },\n    genCommaSelection (item: object, index: number, last: boolean) {\n      const color = index === this.selectedIndex && this.computedColor\n      const isDisabled = (\n        this.isDisabled ||\n        this.getDisabled(item)\n      )\n\n      return this.$createElement('div', this.setTextColor(color, {\n        staticClass: 'v-select__selection v-select__selection--comma',\n        class: {\n          'v-select__selection--disabled': isDisabled,\n        },\n        key: JSON.stringify(this.getValue(item)),\n      }), `${this.getText(item)}${last ? '' : ', '}`)\n    },\n    genDefaultSlot (): (VNode | VNode[] | null)[] {\n      const selections = this.genSelections()\n      const input = this.genInput()\n\n      // If the return is an empty array\n      // push the input\n      if (Array.isArray(selections)) {\n        selections.push(input)\n      // Otherwise push it into children\n      } else {\n        selections.children = selections.children || []\n        selections.children.push(input)\n      }\n\n      return [\n        this.genFieldset(),\n        this.$createElement('div', {\n          staticClass: 'v-select__slot',\n          directives: this.directives,\n        }, [\n          this.genLabel(),\n          this.prefix ? this.genAffix('prefix') : null,\n          selections,\n          this.suffix ? this.genAffix('suffix') : null,\n          this.genClearIcon(),\n          this.genIconSlot(),\n          this.genHiddenInput(),\n        ]),\n        this.genMenu(),\n        this.genProgress(),\n      ]\n    },\n    genIcon (\n      type: string,\n      cb?: (e: Event) => void,\n      extraData?: VNodeData\n    ) {\n      const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n      if (type === 'append') {\n        // Don't allow the dropdown icon to be focused\n        icon.children![0].data = mergeData(icon.children![0].data!, {\n          attrs: {\n            tabindex: icon.children![0].componentOptions!.listeners && '-1',\n            'aria-hidden': 'true',\n            'aria-label': undefined,\n          },\n        })\n      }\n\n      return icon\n    },\n    genInput (): VNode {\n      const input = VTextField.options.methods.genInput.call(this)\n\n      delete input.data!.attrs!.name\n\n      input.data = mergeData(input.data!, {\n        domProps: { value: null },\n        attrs: {\n          readonly: true,\n          type: 'text',\n          'aria-readonly': String(this.isReadonly),\n          'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n          autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n          placeholder: (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) ? this.placeholder : undefined,\n        },\n        on: { keypress: this.onKeyPress },\n      })\n\n      return input\n    },\n    genHiddenInput (): VNode {\n      return this.$createElement('input', {\n        domProps: { value: this.lazyValue },\n        attrs: {\n          type: 'hidden',\n          name: this.attrs$.name,\n        },\n      })\n    },\n    genInputSlot (): VNode {\n      const render = VTextField.options.methods.genInputSlot.call(this)\n\n      render.data!.attrs = {\n        ...render.data!.attrs,\n        role: 'button',\n        'aria-haspopup': 'listbox',\n        'aria-expanded': String(this.isMenuActive),\n        'aria-owns': this.computedOwns,\n      }\n\n      return render\n    },\n    genList (): VNode {\n      // If there's no slots, we can use a cached VNode to improve performance\n      if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n        return this.genListWithSlot()\n      } else {\n        return this.staticList\n      }\n    },\n    genListWithSlot (): VNode {\n      const slots = ['prepend-item', 'no-data', 'append-item']\n        .filter(slotName => this.$slots[slotName])\n        .map(slotName => this.$createElement('template', {\n          slot: slotName,\n        }, this.$slots[slotName]))\n      // Requires destructuring due to Vue\n      // modifying the `on` property when passed\n      // as a referenced object\n      return this.$createElement(VSelectList, {\n        ...this.listData,\n      }, slots)\n    },\n    genMenu (): VNode {\n      const props = this.$_menuProps as any\n      props.activator = this.$refs['input-slot']\n\n      // Attach to root el so that\n      // menu covers prepend/append icons\n      if (\n        // TODO: make this a computed property or helper or something\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      ) {\n        props.attach = this.$el\n      } else {\n        props.attach = this.attach\n      }\n\n      return this.$createElement(VMenu, {\n        attrs: { role: undefined },\n        props,\n        on: {\n          input: (val: boolean) => {\n            this.isMenuActive = val\n            this.isFocused = val\n          },\n          scroll: this.onScroll,\n        },\n        ref: 'menu',\n      }, [this.genList()])\n    },\n    genSelections (): VNode {\n      let length = this.selectedItems.length\n      const children = new Array(length)\n\n      let genSelection\n      if (this.$scopedSlots.selection) {\n        genSelection = this.genSlotSelection\n      } else if (this.hasChips) {\n        genSelection = this.genChipSelection\n      } else {\n        genSelection = this.genCommaSelection\n      }\n\n      while (length--) {\n        children[length] = genSelection(\n          this.selectedItems[length],\n          length,\n          length === children.length - 1\n        )\n      }\n\n      return this.$createElement('div', {\n        staticClass: 'v-select__selections',\n      }, children)\n    },\n    genSlotSelection (item: object, index: number): VNode[] | undefined {\n      return this.$scopedSlots.selection!({\n        attrs: {\n          class: 'v-chip--select',\n        },\n        parent: this,\n        item,\n        index,\n        select: (e: Event) => {\n          e.stopPropagation()\n          this.selectedIndex = index\n        },\n        selected: index === this.selectedIndex,\n        disabled: !this.isInteractive,\n      })\n    },\n    getMenuIndex () {\n      return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n    },\n    getDisabled (item: object) {\n      return getPropertyFromItem(item, this.itemDisabled, false)\n    },\n    getText (item: object) {\n      return getPropertyFromItem(item, this.itemText, item)\n    },\n    getValue (item: object) {\n      return getPropertyFromItem(item, this.itemValue, this.getText(item))\n    },\n    onBlur (e?: Event) {\n      e && this.$emit('blur', e)\n    },\n    onChipInput (item: object) {\n      if (this.multiple) this.selectItem(item)\n      else this.setValue(null)\n      // If all items have been deleted,\n      // open `v-menu`\n      if (this.selectedItems.length === 0) {\n        this.isMenuActive = true\n      } else {\n        this.isMenuActive = false\n      }\n      this.selectedIndex = -1\n    },\n    onClick (e: MouseEvent) {\n      if (!this.isInteractive) return\n\n      if (!this.isAppendInner(e.target)) {\n        this.isMenuActive = true\n      }\n\n      if (!this.isFocused) {\n        this.isFocused = true\n        this.$emit('focus')\n      }\n\n      this.$emit('click', e)\n    },\n    onEscDown (e: Event) {\n      e.preventDefault()\n      if (this.isMenuActive) {\n        e.stopPropagation()\n        this.isMenuActive = false\n      }\n    },\n    onKeyPress (e: KeyboardEvent) {\n      if (\n        this.multiple ||\n        !this.isInteractive ||\n        this.disableLookup\n      ) return\n\n      const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n      const now = performance.now()\n      if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n        this.keyboardLookupPrefix = ''\n      }\n      this.keyboardLookupPrefix += e.key.toLowerCase()\n      this.keyboardLookupLastTime = now\n\n      const index = this.allItems.findIndex(item => {\n        const text = (this.getText(item) || '').toString()\n\n        return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n      })\n      const item = this.allItems[index]\n      if (index !== -1) {\n        this.lastItem = Math.max(this.lastItem, index + 5)\n        this.setValue(this.returnObject ? item : this.getValue(item))\n        this.$nextTick(() => this.$refs.menu.getTiles())\n        setTimeout(() => this.setMenuIndex(index))\n      }\n    },\n    onKeyDown (e: KeyboardEvent) {\n      if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n      const keyCode = e.keyCode\n      const menu = this.$refs.menu\n\n      this.$emit('keydown', e)\n\n      if (!menu) return\n\n      // If menu is active, allow default\n      // listIndex change from menu\n      if (this.isMenuActive && [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end, keyCodes.enter].includes(keyCode)) {\n        this.$nextTick(() => {\n          menu.changeListIndex(e)\n          this.$emit('update:list-index', menu.listIndex)\n        })\n      }\n\n      // If enter, space, open menu\n      if ([\n        keyCodes.enter,\n        keyCodes.space,\n      ].includes(keyCode)) this.activateMenu()\n\n      // If menu is not active, up/down/home/end can do\n      // one of 2 things. If multiple, opens the\n      // menu, if not, will cycle through all\n      // available options\n      if (\n        !this.isMenuActive &&\n        [keyCodes.up, keyCodes.down, keyCodes.home, keyCodes.end].includes(keyCode)\n      ) return this.onUpDown(e)\n\n      // If escape deactivate the menu\n      if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n      // If tab - select item or close menu\n      if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n      // If space preventDefault\n      if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n    },\n    onMenuActiveChange (val: boolean) {\n      // If menu is closing and mulitple\n      // or menuIndex is already set\n      // skip menu index recalculation\n      if (\n        (this.multiple && !val) ||\n        this.getMenuIndex() > -1\n      ) return\n\n      const menu = this.$refs.menu\n\n      if (!menu || !this.isDirty) return\n\n      // When menu opens, set index of first active item\n      this.$refs.menu.getTiles()\n      for (let i = 0; i < menu.tiles.length; i++) {\n        if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n          this.setMenuIndex(i)\n          break\n        }\n      }\n    },\n    onMouseUp (e: MouseEvent) {\n      // eslint-disable-next-line sonarjs/no-collapsible-if\n      if (\n        this.hasMouseDown &&\n        e.which !== 3 &&\n        this.isInteractive\n      ) {\n        // If append inner is present\n        // and the target is itself\n        // or inside, toggle menu\n        if (this.isAppendInner(e.target)) {\n          this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n        }\n      }\n\n      VTextField.options.methods.onMouseUp.call(this, e)\n    },\n    onScroll () {\n      if (!this.isMenuActive) {\n        requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n      } else {\n        if (this.lastItem > this.computedItems.length) return\n\n        const showMoreItems = (\n          this.getContent().scrollHeight -\n          (this.getContent().scrollTop +\n          this.getContent().clientHeight)\n        ) < 200\n\n        if (showMoreItems) {\n          this.lastItem += 20\n        }\n      }\n    },\n    onSpaceDown (e: KeyboardEvent) {\n      e.preventDefault()\n    },\n    onTabDown (e: KeyboardEvent) {\n      const menu = this.$refs.menu\n\n      if (!menu) return\n\n      const activeTile = menu.activeTile\n\n      // An item that is selected by\n      // menu-index should toggled\n      if (\n        !this.multiple &&\n        activeTile &&\n        this.isMenuActive\n      ) {\n        e.preventDefault()\n        e.stopPropagation()\n\n        activeTile.click()\n      } else {\n        // If we make it here,\n        // the user has no selected indexes\n        // and is probably tabbing out\n        this.blur(e)\n      }\n    },\n    onUpDown (e: KeyboardEvent) {\n      const menu = this.$refs.menu\n\n      if (!menu) return\n\n      e.preventDefault()\n\n      // Multiple selects do not cycle their value\n      // when pressing up or down, instead activate\n      // the menu\n      if (this.multiple) return this.activateMenu()\n\n      const keyCode = e.keyCode\n\n      // Cycle through available values to achieve\n      // select native behavior\n      menu.isBooted = true\n\n      window.requestAnimationFrame(() => {\n        menu.getTiles()\n\n        if (!menu.hasClickableTiles) return this.activateMenu()\n\n        switch (keyCode) {\n          case keyCodes.up:\n            menu.prevTile()\n            break\n          case keyCodes.down:\n            menu.nextTile()\n            break\n          case keyCodes.home:\n            menu.firstTile()\n            break\n          case keyCodes.end:\n            menu.lastTile()\n            break\n        }\n        this.selectItem(this.allItems[this.getMenuIndex()])\n      })\n    },\n    selectItem (item: object) {\n      if (!this.multiple) {\n        this.setValue(this.returnObject ? item : this.getValue(item))\n        this.isMenuActive = false\n      } else {\n        const internalValue = (this.internalValue || []).slice()\n        const i = this.findExistingIndex(item)\n\n        i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n        this.setValue(internalValue.map((i: object) => {\n          return this.returnObject ? i : this.getValue(i)\n        }))\n\n        // When selecting multiple\n        // adjust menu after each\n        // selection\n        this.$nextTick(() => {\n          this.$refs.menu &&\n            (this.$refs.menu as { [key: string]: any }).updateDimensions()\n        })\n\n        // There is no item to re-highlight\n        // when selections are hidden\n        if (this.hideSelected) {\n          this.setMenuIndex(-1)\n        } else {\n          const index = this.allItems.indexOf(item)\n          if (~index) {\n            this.$nextTick(() => this.$refs.menu.getTiles())\n            setTimeout(() => this.setMenuIndex(index))\n          }\n        }\n      }\n    },\n    setMenuIndex (index: number) {\n      this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n    },\n    setSelectedItems () {\n      const selectedItems = []\n      const values = !this.multiple || !Array.isArray(this.internalValue)\n        ? [this.internalValue]\n        : this.internalValue\n\n      for (const value of values) {\n        const index = this.allItems.findIndex(v => this.valueComparator(\n          this.getValue(v),\n          this.getValue(value)\n        ))\n\n        if (index > -1) {\n          selectedItems.push(this.allItems[index])\n        }\n      }\n\n      this.selectedItems = selectedItems\n    },\n    setValue (value: any) {\n      if (!this.valueComparator(value, this.internalValue)) {\n        this.internalValue = value\n        this.$emit('change', value)\n      }\n    },\n    isAppendInner (target: any) {\n      // return true if append inner is present\n      // and the target is itself or inside\n      const appendInner = this.$refs['append-inner']\n\n      return appendInner && (appendInner === target || appendInner.contains(target))\n    },\n  },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n  name: 'v-label',\n\n  functional: true,\n\n  props: {\n    absolute: Boolean,\n    color: {\n      type: String,\n      default: 'primary',\n    },\n    disabled: Boolean,\n    focused: Boolean,\n    for: String,\n    left: {\n      type: [Number, String],\n      default: 0,\n    },\n    right: {\n      type: [Number, String],\n      default: 'auto',\n    },\n    value: Boolean,\n  },\n\n  render (h, ctx): VNode {\n    const { children, listeners, props } = ctx\n    const data = {\n      staticClass: 'v-label',\n      class: {\n        'v-label--active': props.value,\n        'v-label--is-disabled': props.disabled,\n        ...functionalThemeClasses(ctx),\n      },\n      attrs: {\n        for: props.for,\n        'aria-hidden': !props.for,\n      },\n      on: listeners,\n      style: {\n        left: convertToUnit(props.left),\n        right: convertToUnit(props.right),\n        position: props.absolute ? 'absolute' : 'relative',\n      },\n      ref: 'label',\n    }\n\n    return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n  },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Components\nimport VWindow from './VWindow'\n\n// Mixins\nimport Bootable from '../../mixins/bootable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n  Bootable,\n  GroupableFactory('windowGroup', 'v-window-item', 'v-window')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  $el: HTMLElement\n  windowGroup: InstanceType<typeof VWindow>\n}\n\nexport default baseMixins.extend<options>().extend(\n  /* @vue/component */\n).extend({\n  name: 'v-window-item',\n\n  directives: {\n    Touch,\n  },\n\n  props: {\n    disabled: Boolean,\n    reverseTransition: {\n      type: [Boolean, String],\n      default: undefined,\n    },\n    transition: {\n      type: [Boolean, String],\n      default: undefined,\n    },\n    value: {\n      required: false,\n    },\n  },\n\n  data () {\n    return {\n      isActive: false,\n      inTransition: false,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return this.groupClasses\n    },\n    computedTransition (): string | boolean {\n      if (!this.windowGroup.internalReverse) {\n        return typeof this.transition !== 'undefined'\n          ? this.transition || ''\n          : this.windowGroup.computedTransition\n      }\n\n      return typeof this.reverseTransition !== 'undefined'\n        ? this.reverseTransition || ''\n        : this.windowGroup.computedTransition\n    },\n  },\n\n  methods: {\n    genDefaultSlot () {\n      return this.$slots.default\n    },\n    genWindowItem () {\n      return this.$createElement('div', {\n        staticClass: 'v-window-item',\n        class: this.classes,\n        directives: [{\n          name: 'show',\n          value: this.isActive,\n        }],\n        on: this.$listeners,\n      }, this.genDefaultSlot())\n    },\n    onAfterTransition () {\n      if (!this.inTransition) {\n        return\n      }\n\n      // Finalize transition state.\n      this.inTransition = false\n      if (this.windowGroup.transitionCount > 0) {\n        this.windowGroup.transitionCount--\n\n        // Remove container height if we are out of transition.\n        if (this.windowGroup.transitionCount === 0) {\n          this.windowGroup.transitionHeight = undefined\n        }\n      }\n    },\n    onBeforeTransition () {\n      if (this.inTransition) {\n        return\n      }\n\n      // Initialize transition state here.\n      this.inTransition = true\n      if (this.windowGroup.transitionCount === 0) {\n        // Set initial height for height transition.\n        this.windowGroup.transitionHeight = convertToUnit(this.windowGroup.$el.clientHeight)\n      }\n      this.windowGroup.transitionCount++\n    },\n    onTransitionCancelled () {\n      this.onAfterTransition() // This should have the same path as normal transition end.\n    },\n    onEnter (el: HTMLElement) {\n      if (!this.inTransition) {\n        return\n      }\n\n      this.$nextTick(() => {\n        // Do not set height if no transition or cancelled.\n        if (!this.computedTransition || !this.inTransition) {\n          return\n        }\n\n        // Set transition target height.\n        this.windowGroup.transitionHeight = convertToUnit(el.clientHeight)\n      })\n    },\n  },\n\n  render (h): VNode {\n    return h('transition', {\n      props: {\n        name: this.computedTransition,\n      },\n      on: {\n        // Handlers for enter windows.\n        beforeEnter: this.onBeforeTransition,\n        afterEnter: this.onAfterTransition,\n        enterCancelled: this.onTransitionCancelled,\n\n        // Handlers for leave windows.\n        beforeLeave: this.onBeforeTransition,\n        afterLeave: this.onAfterTransition,\n        leaveCancelled: this.onTransitionCancelled,\n\n        // Enter handler for height transition.\n        enter: this.onEnter,\n      },\n    }, this.showLazyContent(() => [this.genWindowItem()]))\n  },\n})\n","// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n/* @vue/component */\nexport default VWindowItem.extend({\n  name: 'v-tab-item',\n\n  props: {\n    id: String,\n  },\n\n  methods: {\n    genWindowItem () {\n      const item = VWindowItem.options.methods.genWindowItem.call(this)\n\n      item.data!.domProps = item.data!.domProps || {}\n      item.data!.domProps.id = this.id || this.value\n\n      return item\n    },\n  },\n})\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n  Colorable,\n  Routable,\n  Themeable,\n  GroupableFactory('listItemGroup'),\n  ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  $el: HTMLElement\n  isInGroup: boolean\n  isInList: boolean\n  isInMenu: boolean\n  isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-list-item',\n\n  directives: {\n    Ripple,\n  },\n\n  inject: {\n    isInGroup: {\n      default: false,\n    },\n    isInList: {\n      default: false,\n    },\n    isInMenu: {\n      default: false,\n    },\n    isInNav: {\n      default: false,\n    },\n  },\n\n  inheritAttrs: false,\n\n  props: {\n    activeClass: {\n      type: String,\n      default (): string | undefined {\n        if (!this.listItemGroup) return ''\n\n        return this.listItemGroup.activeClass\n      },\n    } as any as PropValidator<string>,\n    dense: Boolean,\n    inactive: Boolean,\n    link: Boolean,\n    selectable: {\n      type: Boolean,\n    },\n    tag: {\n      type: String,\n      default: 'div',\n    },\n    threeLine: Boolean,\n    twoLine: Boolean,\n    value: null as any as PropType<any>,\n  },\n\n  data: () => ({\n    proxyClass: 'v-list-item--active',\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        'v-list-item': true,\n        ...Routable.options.computed.classes.call(this),\n        'v-list-item--dense': this.dense,\n        'v-list-item--disabled': this.disabled,\n        'v-list-item--link': this.isClickable && !this.inactive,\n        'v-list-item--selectable': this.selectable,\n        'v-list-item--three-line': this.threeLine,\n        'v-list-item--two-line': this.twoLine,\n        ...this.themeClasses,\n      }\n    },\n    isClickable (): boolean {\n      return Boolean(\n        Routable.options.computed.isClickable.call(this) ||\n        this.listItemGroup\n      )\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('avatar')) {\n      removed('avatar', this)\n    }\n  },\n\n  methods: {\n    click (e: MouseEvent | KeyboardEvent) {\n      if (e.detail) this.$el.blur()\n\n      this.$emit('click', e)\n\n      this.to || this.toggle()\n    },\n    genAttrs () {\n      const attrs: Record<string, any> = {\n        'aria-disabled': this.disabled ? true : undefined,\n        tabindex: this.isClickable && !this.disabled ? 0 : -1,\n        ...this.$attrs,\n      }\n\n      if (this.$attrs.hasOwnProperty('role')) {\n        // do nothing, role already provided\n      } else if (this.isInNav) {\n        // do nothing, role is inherit\n      } else if (this.isInGroup) {\n        attrs.role = 'option'\n        attrs['aria-selected'] = String(this.isActive)\n      } else if (this.isInMenu) {\n        attrs.role = this.isClickable ? 'menuitem' : undefined\n        attrs.id = attrs.id || `list-item-${this._uid}`\n      } else if (this.isInList) {\n        attrs.role = 'listitem'\n      }\n\n      return attrs\n    },\n    toggle () {\n      if (this.to && this.inputValue === undefined) {\n        this.isActive = !this.isActive\n      }\n      this.$emit('change')\n    },\n  },\n\n  render (h): VNode {\n    let { tag, data } = this.generateRouteLink()\n\n    data.attrs = {\n      ...data.attrs,\n      ...this.genAttrs(),\n    }\n    data[this.to ? 'nativeOn' : 'on'] = {\n      ...data[this.to ? 'nativeOn' : 'on'],\n      keydown: (e: KeyboardEvent) => {\n        /* istanbul ignore else */\n        if (e.keyCode === keyCodes.enter) this.click(e)\n\n        this.$emit('keydown', e)\n      },\n    }\n\n    if (this.inactive) tag = 'div'\n    if (this.inactive && this.to) {\n      data.on = data.nativeOn\n      delete data.nativeOn\n    }\n\n    const children = this.$scopedSlots.default\n      ? this.$scopedSlots.default({\n        active: this.isActive,\n        toggle: this.toggle,\n      })\n      : this.$slots.default\n\n    return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n  },\n})\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n  name: 'v-messages',\n\n  props: {\n    value: {\n      type: Array,\n      default: () => ([]),\n    } as PropValidator<string[]>,\n  },\n\n  methods: {\n    genChildren () {\n      return this.$createElement('transition-group', {\n        staticClass: 'v-messages__wrapper',\n        attrs: {\n          name: 'message-transition',\n          tag: 'div',\n        },\n      }, this.value.map(this.genMessage))\n    },\n    genMessage (message: string, key: number) {\n      return this.$createElement('div', {\n        staticClass: 'v-messages__message',\n        key,\n      }, getSlot(this, 'default', { message, key }) || [message])\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.setTextColor(this.color, {\n      staticClass: 'v-messages',\n      class: this.themeClasses,\n    }), [this.genChildren()])\n  },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\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'\nimport goTo from '../../services/goto'\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    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        const scrollTop = this.$refs.content.scrollTop\n        const contentHeight = this.$refs.content.clientHeight\n\n        if (scrollTop > tile.offsetTop - 8) {\n          goTo(tile.offsetTop - tile.clientHeight, {\n            appOffset: false,\n            duration: 300,\n            container: this.$refs.content,\n          })\n        } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n          goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n            appOffset: false,\n            duration: 300,\n            container: this.$refs.content,\n          })\n        }\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, .v-divider, .v-subheader'))\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","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n  name: 'v-main',\n\n  props: {\n    tag: {\n      type: String,\n      default: 'main',\n    },\n  },\n\n  computed: {\n    styles (): object {\n      const {\n        bar, top, right, footer, insetFooter, bottom, left,\n      } = this.$vuetify.application\n\n      return {\n        paddingTop: `${top + bar}px`,\n        paddingRight: `${right}px`,\n        paddingBottom: `${footer + insetFooter + bottom}px`,\n        paddingLeft: `${left}px`,\n      }\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-main',\n      style: this.styles,\n      ref: 'main',\n    }\n\n    return h(this.tag, data, [\n      h(\n        'div',\n        { staticClass: 'v-main__wrap' },\n        this.$slots.default\n      ),\n    ])\n  },\n})\n","// 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<string | srcObject>,\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<any>,\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<string, (e: Event) => void> = {\n        mouseenter: () => (this.isMouseover = true),\n        mouseleave: () => (this.isMouseover = false),\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      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.miniVariant ? this.miniVariantWidth : this.width)\n\n      return isNaN(width) ? this.$el.clientWidth : width\n    },\n    updateMiniVariant (val: boolean) {\n      if (this.expandOnHover && 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","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath } from '../../util/helpers'\n\ninterface TouchEvent {\n  touchstartX: number\n  touchstartY: number\n  touchmoveX: number\n  touchmoveY: number\n  stopPropagation: Function\n}\n\ninterface Widths {\n  content: number\n  wrapper: number\n}\n\ninterface options extends Vue {\n  $refs: {\n    content: HTMLElement\n    wrapper: HTMLElement\n  }\n}\n\nfunction bias (val: number) {\n  const c = 0.501\n  const x = Math.abs(val)\n  return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n  selectedElement: HTMLElement,\n  widths: Widths,\n  rtl: boolean,\n  currentScrollOffset: number\n): number {\n  const clientWidth = selectedElement.clientWidth\n  const offsetLeft = rtl\n    ? (widths.content - selectedElement.offsetLeft - clientWidth)\n    : selectedElement.offsetLeft\n\n  if (rtl) {\n    currentScrollOffset = -currentScrollOffset\n  }\n\n  const totalWidth = widths.wrapper + currentScrollOffset\n  const itemOffset = clientWidth + offsetLeft\n  const additionalOffset = clientWidth * 0.4\n\n  if (offsetLeft <= currentScrollOffset) {\n    currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n  } else if (totalWidth <= itemOffset) {\n    currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n  }\n\n  return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n  selectedElement: HTMLElement,\n  widths: Widths,\n  rtl: boolean\n): number {\n  const { offsetLeft, clientWidth } = selectedElement\n\n  if (rtl) {\n    const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n    return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n  } else {\n    const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n    return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n  }\n}\n\nexport const BaseSlideGroup = mixins<options &\n/* eslint-disable indent */\n  ExtractVue<[\n    typeof BaseItemGroup,\n    typeof Mobile,\n  ]>\n/* eslint-enable indent */\n>(\n  BaseItemGroup,\n  Mobile,\n  /* @vue/component */\n).extend({\n  name: 'base-slide-group',\n\n  directives: {\n    Resize,\n    Touch,\n  },\n\n  props: {\n    activeClass: {\n      type: String,\n      default: 'v-slide-item--active',\n    },\n    centerActive: Boolean,\n    nextIcon: {\n      type: String,\n      default: '$next',\n    },\n    prevIcon: {\n      type: String,\n      default: '$prev',\n    },\n    showArrows: {\n      type: [Boolean, String],\n      validator: v => (\n        typeof v === 'boolean' || [\n          'always',\n          'desktop',\n          'mobile',\n        ].includes(v)\n      ),\n    },\n  },\n\n  data: () => ({\n    internalItemsLength: 0,\n    isOverflowing: false,\n    resizeTimeout: 0,\n    startX: 0,\n    isSwipingHorizontal: false,\n    isSwiping: false,\n    scrollOffset: 0,\n    widths: {\n      content: 0,\n      wrapper: 0,\n    },\n  }),\n\n  computed: {\n    canTouch (): boolean {\n      return typeof window !== 'undefined'\n    },\n    __cachedNext (): VNode {\n      return this.genTransition('next')\n    },\n    __cachedPrev (): VNode {\n      return this.genTransition('prev')\n    },\n    classes (): object {\n      return {\n        ...BaseItemGroup.options.computed.classes.call(this),\n        'v-slide-group': true,\n        'v-slide-group--has-affixes': this.hasAffixes,\n        'v-slide-group--is-overflowing': this.isOverflowing,\n      }\n    },\n    hasAffixes (): Boolean {\n      switch (this.showArrows) {\n        // Always show arrows on desktop & mobile\n        case 'always': return true\n\n        // Always show arrows on desktop\n        case 'desktop': return !this.isMobile\n\n        // Show arrows on mobile when overflowing.\n        // This matches the default 2.2 behavior\n        case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n        // Always show on mobile\n        case 'mobile': return (\n          this.isMobile ||\n          (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n        )\n\n        // https://material.io/components/tabs#scrollable-tabs\n        // Always show arrows when\n        // overflowed on desktop\n        default: return (\n          !this.isMobile &&\n          (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n        )\n      }\n    },\n    hasNext (): boolean {\n      if (!this.hasAffixes) return false\n\n      const { content, wrapper } = this.widths\n\n      // Check one scroll ahead to know the width of right-most item\n      return content > Math.abs(this.scrollOffset) + wrapper\n    },\n    hasPrev (): boolean {\n      return this.hasAffixes && this.scrollOffset !== 0\n    },\n  },\n\n  watch: {\n    internalValue: 'setWidths',\n    // When overflow changes, the arrows alter\n    // the widths of the content and wrapper\n    // and need to be recalculated\n    isOverflowing: 'setWidths',\n    scrollOffset (val) {\n      if (this.$vuetify.rtl) val = -val\n\n      let scroll =\n        val <= 0\n          ? bias(-val)\n          : val > this.widths.content - this.widths.wrapper\n            ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n            : -val\n\n      if (this.$vuetify.rtl) scroll = -scroll\n\n      this.$refs.content.style.transform = `translateX(${scroll}px)`\n    },\n  },\n\n  beforeUpdate () {\n    this.internalItemsLength = (this.$children || []).length\n  },\n\n  updated () {\n    if (this.internalItemsLength === (this.$children || []).length) return\n    this.setWidths()\n  },\n\n  methods: {\n    onScroll () {\n      this.$refs.wrapper.scrollLeft = 0\n    },\n    onFocusin (e: FocusEvent) {\n      if (!this.isOverflowing) return\n\n      // Focused element is likely to be the root of an item, so a\n      // breadth-first search will probably find it in the first iteration\n      for (const el of composedPath(e)) {\n        for (const vm of this.items) {\n          if (vm.$el === el) {\n            this.scrollOffset = calculateUpdatedOffset(\n              vm.$el as HTMLElement,\n              this.widths,\n              this.$vuetify.rtl,\n              this.scrollOffset\n            )\n            return\n          }\n        }\n      }\n    },\n    // Always generate next for scrollable hint\n    genNext (): VNode | null {\n      const slot = this.$scopedSlots.next\n        ? this.$scopedSlots.next({})\n        : this.$slots.next || this.__cachedNext\n\n      return this.$createElement('div', {\n        staticClass: 'v-slide-group__next',\n        class: {\n          'v-slide-group__next--disabled': !this.hasNext,\n        },\n        on: {\n          click: () => this.onAffixClick('next'),\n        },\n        key: 'next',\n      }, [slot])\n    },\n    genContent (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-slide-group__content',\n        ref: 'content',\n        on: {\n          focusin: this.onFocusin,\n        },\n      }, this.$slots.default)\n    },\n    genData (): object {\n      return {\n        class: this.classes,\n        directives: [{\n          name: 'resize',\n          value: this.onResize,\n        }],\n      }\n    },\n    genIcon (location: 'prev' | 'next'): VNode | null {\n      let icon = location\n\n      if (this.$vuetify.rtl && location === 'prev') {\n        icon = 'next'\n      } else if (this.$vuetify.rtl && location === 'next') {\n        icon = 'prev'\n      }\n\n      const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n      const hasAffix = (this as any)[`has${upperLocation}`]\n\n      if (\n        !this.showArrows &&\n        !hasAffix\n      ) return null\n\n      return this.$createElement(VIcon, {\n        props: {\n          disabled: !hasAffix,\n        },\n      }, (this as any)[`${icon}Icon`])\n    },\n    // Always generate prev for scrollable hint\n    genPrev (): VNode | null {\n      const slot = this.$scopedSlots.prev\n        ? this.$scopedSlots.prev({})\n        : this.$slots.prev || this.__cachedPrev\n\n      return this.$createElement('div', {\n        staticClass: 'v-slide-group__prev',\n        class: {\n          'v-slide-group__prev--disabled': !this.hasPrev,\n        },\n        on: {\n          click: () => this.onAffixClick('prev'),\n        },\n        key: 'prev',\n      }, [slot])\n    },\n    genTransition (location: 'prev' | 'next') {\n      return this.$createElement(VFadeTransition, [this.genIcon(location)])\n    },\n    genWrapper (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-slide-group__wrapper',\n        directives: [{\n          name: 'touch',\n          value: {\n            start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n            move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n            end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n          },\n        }],\n        ref: 'wrapper',\n        on: {\n          scroll: this.onScroll,\n        },\n      }, [this.genContent()])\n    },\n    calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n      const sign = rtl ? -1 : 1\n      const newAbosluteOffset = sign * currentScrollOffset +\n        (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n      return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n    },\n    onAffixClick (location: 'prev' | 'next') {\n      this.$emit(`click:${location}`)\n      this.scrollTo(location)\n    },\n    onResize () {\n      /* istanbul ignore next */\n      if (this._isDestroyed) return\n\n      this.setWidths()\n    },\n    onTouchStart (e: TouchEvent) {\n      const { content } = this.$refs\n\n      this.startX = this.scrollOffset + e.touchstartX as number\n\n      content.style.setProperty('transition', 'none')\n      content.style.setProperty('willChange', 'transform')\n    },\n    onTouchMove (e: TouchEvent) {\n      if (!this.canTouch) return\n\n      if (!this.isSwiping) {\n        // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n        // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n        const diffX = e.touchmoveX - e.touchstartX\n        const diffY = e.touchmoveY - e.touchstartY\n        this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n        this.isSwiping = true\n      }\n\n      if (this.isSwipingHorizontal) {\n        // sliding horizontally\n        this.scrollOffset = this.startX - e.touchmoveX\n        // temporarily disable window vertical scrolling\n        document.documentElement.style.overflowY = 'hidden'\n      }\n    },\n    onTouchEnd () {\n      if (!this.canTouch) return\n\n      const { content, wrapper } = this.$refs\n      const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n      content.style.setProperty('transition', null)\n      content.style.setProperty('willChange', null)\n\n      if (this.$vuetify.rtl) {\n        /* istanbul ignore else */\n        if (this.scrollOffset > 0 || !this.isOverflowing) {\n          this.scrollOffset = 0\n        } else if (this.scrollOffset <= -maxScrollOffset) {\n          this.scrollOffset = -maxScrollOffset\n        }\n      } else {\n        /* istanbul ignore else */\n        if (this.scrollOffset < 0 || !this.isOverflowing) {\n          this.scrollOffset = 0\n        } else if (this.scrollOffset >= maxScrollOffset) {\n          this.scrollOffset = maxScrollOffset\n        }\n      }\n\n      this.isSwiping = false\n      // rollback whole page scrolling to default\n      document.documentElement.style.removeProperty('overflow-y')\n    },\n    overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n      e.stopPropagation()\n      this.isOverflowing && fn(e)\n    },\n    scrollIntoView /* istanbul ignore next */ () {\n      if (!this.selectedItem && this.items.length) {\n        const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n        const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n        if (\n          (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n          (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n        ) {\n          this.scrollTo('prev')\n        }\n      }\n\n      if (!this.selectedItem) {\n        return\n      }\n\n      if (\n        this.selectedIndex === 0 ||\n        (!this.centerActive && !this.isOverflowing)\n      ) {\n        this.scrollOffset = 0\n      } else if (this.centerActive) {\n        this.scrollOffset = calculateCenteredOffset(\n          this.selectedItem.$el as HTMLElement,\n          this.widths,\n          this.$vuetify.rtl\n        )\n      } else if (this.isOverflowing) {\n        this.scrollOffset = calculateUpdatedOffset(\n          this.selectedItem.$el as HTMLElement,\n          this.widths,\n          this.$vuetify.rtl,\n          this.scrollOffset\n        )\n      }\n    },\n    scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n      this.scrollOffset = this.calculateNewOffset(location, {\n        // Force reflow\n        content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n        wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n      }, this.$vuetify.rtl, this.scrollOffset)\n    },\n    setWidths () {\n      window.requestAnimationFrame(() => {\n        if (this._isDestroyed) return\n\n        const { content, wrapper } = this.$refs\n\n        this.widths = {\n          content: content ? content.clientWidth : 0,\n          wrapper: wrapper ? wrapper.clientWidth : 0,\n        }\n\n        // https://github.com/vuetifyjs/vuetify/issues/13212\n        // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n        // gets calculated wrongly by the browser if using a different zoom-level.\n        this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n        this.scrollIntoView()\n      })\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.genData(), [\n      this.genPrev(),\n      this.genWrapper(),\n      this.genNext(),\n    ])\n  },\n})\n\nexport default BaseSlideGroup.extend({\n  name: 'v-slide-group',\n\n  provide (): object {\n    return {\n      slideGroup: this,\n    }\n  },\n})\n","// Extensions\nimport { BaseSlideGroup } from '../VSlideGroup/VSlideGroup'\n\n// Components\nimport VTab from './VTab'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { Route } from 'vue-router'\nimport { VNode } from 'vue'\n\ntype VTabInstance = InstanceType<typeof VTab>\n\nexport default mixins(\n  BaseSlideGroup,\n  SSRBootable,\n  Themeable\n  /* @vue/component */\n).extend({\n  name: 'v-tabs-bar',\n\n  provide () {\n    return {\n      tabsBar: this,\n    }\n  },\n\n  computed: {\n    classes () {\n      return {\n        ...BaseSlideGroup.options.computed.classes.call(this),\n        'v-tabs-bar': true,\n        'v-tabs-bar--is-mobile': this.isMobile,\n        // TODO: Remove this and move to v-slide-group\n        'v-tabs-bar--show-arrows': this.showArrows,\n        ...this.themeClasses,\n      }\n    },\n  },\n\n  watch: {\n    items: 'callSlider',\n    internalValue: 'callSlider',\n    $route: 'onRouteChange',\n  },\n\n  methods: {\n    callSlider () {\n      if (!this.isBooted) return\n\n      this.$emit('call:slider')\n    },\n    genContent () {\n      const render = BaseSlideGroup.options.methods.genContent.call(this)\n\n      render.data = render.data || {}\n      render.data.staticClass += ' v-tabs-bar__content'\n\n      return render\n    },\n    onRouteChange (val: Route, oldVal: Route) {\n      /* istanbul ignore next */\n      if (this.mandatory) return\n\n      const items = this.items as unknown as VTabInstance[]\n      const newPath = val.path\n      const oldPath = oldVal.path\n\n      let hasNew = false\n      let hasOld = false\n\n      for (const item of items) {\n        if (item.to === oldPath) hasOld = true\n        else if (item.to === newPath) hasNew = true\n\n        if (hasNew && hasOld) break\n      }\n\n      // If we have an old item and not a new one\n      // it's assumed that the user navigated to\n      // a path that is not present in the items\n      if (!hasNew && hasOld) this.internalValue = undefined\n    },\n  },\n\n  render (h): VNode {\n    const render = BaseSlideGroup.options.render.call(this, h)\n\n    render.data!.attrs = {\n      role: 'tablist',\n    }\n\n    return render\n  },\n})\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n  Colorable,\n  Proxyable,\n  Themeable\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  $refs: {\n    items: InstanceType<typeof VTabsBar>\n  }\n}\n\nexport default baseMixins.extend<options>().extend({\n  name: 'v-tabs',\n\n  directives: {\n    Resize,\n  },\n\n  props: {\n    activeClass: {\n      type: String,\n      default: '',\n    },\n    alignWithTitle: Boolean,\n    backgroundColor: String,\n    centerActive: Boolean,\n    centered: Boolean,\n    fixedTabs: Boolean,\n    grow: Boolean,\n    height: {\n      type: [Number, String],\n      default: undefined,\n    },\n    hideSlider: Boolean,\n    iconsAndText: Boolean,\n    mobileBreakpoint: [String, Number],\n    nextIcon: {\n      type: String,\n      default: '$next',\n    },\n    optional: Boolean,\n    prevIcon: {\n      type: String,\n      default: '$prev',\n    },\n    right: Boolean,\n    showArrows: [Boolean, String],\n    sliderColor: String,\n    sliderSize: {\n      type: [Number, String],\n      default: 2,\n    },\n    vertical: Boolean,\n  },\n\n  data () {\n    return {\n      resizeTimeout: 0,\n      slider: {\n        height: null as null | number,\n        left: null as null | number,\n        right: null as null | number,\n        top: null as null | number,\n        width: null as null | number,\n      },\n      transitionTime: 300,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-tabs--align-with-title': this.alignWithTitle,\n        'v-tabs--centered': this.centered,\n        'v-tabs--fixed-tabs': this.fixedTabs,\n        'v-tabs--grow': this.grow,\n        'v-tabs--icons-and-text': this.iconsAndText,\n        'v-tabs--right': this.right,\n        'v-tabs--vertical': this.vertical,\n        ...this.themeClasses,\n      }\n    },\n    isReversed (): boolean {\n      return this.$vuetify.rtl && this.vertical\n    },\n    sliderStyles (): object {\n      return {\n        height: convertToUnit(this.slider.height),\n        left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n        right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n        top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n        transition: this.slider.left != null ? null : 'none',\n        width: convertToUnit(this.slider.width),\n      }\n    },\n    computedColor (): string {\n      if (this.color) return this.color\n      else if (this.isDark && !this.appIsDark) return 'white'\n      else return 'primary'\n    },\n  },\n\n  watch: {\n    alignWithTitle: 'callSlider',\n    centered: 'callSlider',\n    centerActive: 'callSlider',\n    fixedTabs: 'callSlider',\n    grow: 'callSlider',\n    iconsAndText: 'callSlider',\n    right: 'callSlider',\n    showArrows: 'callSlider',\n    vertical: 'callSlider',\n    '$vuetify.application.left': 'onResize',\n    '$vuetify.application.right': 'onResize',\n    '$vuetify.rtl': 'onResize',\n  },\n\n  mounted () {\n    this.$nextTick(() => {\n      window.setTimeout(this.callSlider, 30)\n    })\n  },\n\n  methods: {\n    callSlider () {\n      if (\n        this.hideSlider ||\n        !this.$refs.items ||\n        !this.$refs.items.selectedItems.length\n      ) {\n        this.slider.width = 0\n        return false\n      }\n\n      this.$nextTick(() => {\n        // Give screen time to paint\n        const activeTab = this.$refs.items.selectedItems[0]\n        /* istanbul ignore if */\n        if (!activeTab || !activeTab.$el) {\n          this.slider.width = 0\n          this.slider.left = 0\n          return\n        }\n        const el = activeTab.$el as HTMLElement\n\n        this.slider = {\n          height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n          left: this.vertical ? 0 : el.offsetLeft,\n          right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n          top: el.offsetTop,\n          width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n        }\n      })\n\n      return true\n    },\n    genBar (items: VNode[], slider: VNode | null) {\n      const data = {\n        style: {\n          height: convertToUnit(this.height),\n        },\n        props: {\n          activeClass: this.activeClass,\n          centerActive: this.centerActive,\n          dark: this.dark,\n          light: this.light,\n          mandatory: !this.optional,\n          mobileBreakpoint: this.mobileBreakpoint,\n          nextIcon: this.nextIcon,\n          prevIcon: this.prevIcon,\n          showArrows: this.showArrows,\n          value: this.internalValue,\n        },\n        on: {\n          'call:slider': this.callSlider,\n          change: (val: any) => {\n            this.internalValue = val\n          },\n        },\n        ref: 'items',\n      }\n\n      this.setTextColor(this.computedColor, data)\n      this.setBackgroundColor(this.backgroundColor, data)\n\n      return this.$createElement(VTabsBar, data, [\n        this.genSlider(slider),\n        items,\n      ])\n    },\n    genItems (items: VNode | null, item: VNode[]) {\n      // If user provides items\n      // opt to use theirs\n      if (items) return items\n\n      // If no tabs are provided\n      // render nothing\n      if (!item.length) return null\n\n      return this.$createElement(VTabsItems, {\n        props: {\n          value: this.internalValue,\n        },\n        on: {\n          change: (val: any) => {\n            this.internalValue = val\n          },\n        },\n      }, item)\n    },\n    genSlider (slider: VNode | null) {\n      if (this.hideSlider) return null\n\n      if (!slider) {\n        slider = this.$createElement(VTabsSlider, {\n          props: { color: this.sliderColor },\n        })\n      }\n\n      return this.$createElement('div', {\n        staticClass: 'v-tabs-slider-wrapper',\n        style: this.sliderStyles,\n      }, [slider])\n    },\n    onResize () {\n      if (this._isDestroyed) return\n\n      clearTimeout(this.resizeTimeout)\n      this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n    },\n    parseNodes () {\n      let items = null\n      let slider = null\n      const item = []\n      const tab = []\n      const slot = this.$slots.default || []\n      const length = slot.length\n\n      for (let i = 0; i < length; i++) {\n        const vnode = slot[i]\n\n        if (vnode.componentOptions) {\n          switch (vnode.componentOptions.Ctor.options.name) {\n            case 'v-tabs-slider': slider = vnode\n              break\n            case 'v-tabs-items': items = vnode\n              break\n            case 'v-tab-item': item.push(vnode)\n              break\n            // case 'v-tab' - intentionally omitted\n            default: tab.push(vnode)\n          }\n        } else {\n          tab.push(vnode)\n        }\n      }\n\n      /**\n       * tab: array of `v-tab`\n       * slider: single `v-tabs-slider`\n       * items: single `v-tabs-items`\n       * item: array of `v-tab-item`\n       */\n      return { tab, slider, items, item }\n    },\n  },\n\n  render (h): VNode {\n    const { tab, slider, items, item } = this.parseNodes()\n\n    return h('div', {\n      staticClass: 'v-tabs',\n      class: this.classes,\n      directives: [{\n        name: 'resize',\n        modifiers: { quiet: true },\n        value: this.onResize,\n      }],\n    }, [\n      this.genBar(tab, slider),\n      this.genItems(items, item),\n    ])\n  },\n})\n"],"sourceRoot":""}