{"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: '​' },\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":""}