{"version":3,"sources":["webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///../../../src/components/VList/index.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/directives/resize/index.ts","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/components/VList/VListItem.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/components/VWindow/VWindow.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../src/framework.ts","webpack:///../src/install.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VTabs/VTabsItems.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///../../../src/components/VTabs/VTab.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///../../../src/components/VTabs/VTabsBar.ts","webpack:///../../../src/components/VTabs/VTabsSlider.ts","webpack:///../../../src/components/VTabs/VTabs.ts"],"names":["VAvatar","name","props","horizontal","size","type","Number","default","computed","classes","this","tile","render","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListGroup","VListItem","VListItemAction","VListItemGroup","VListItemIcon","BaseItemGroup","activeClass","mandatory","max","multiple","Boolean","data","internalLazyValue","undefined","value","items","themeClasses","selectedIndex","selectedItem","indexOf","selectedItems","filter","selectedValues","internalValue","Array","toggleMethod","v","watch","created","methods","genData","class","getValue","item","i","onClick","register","index","push","unregister","updateInternalValue","updateItem","updateItemsState","updateMultiple","updateSingle","updateMandatory","val","isSame","h","$slots","provide","itemGroup","Resize","inserted","callback","binding","options","passive","window","el","unbind","mergeTransitions","dest","origin","functional","group","hideOnLeave","leaveAbsolute","mode","tag","context","on","beforeEnter","mergeData","functions","expandedParentClass","x","sizeProperty","offsetProperty","transition","visibility","overflow","enter","initialStyle","offset","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","createSimpleTransition","VTabTransition","VTabReverseTransition","VFadeTransition","VScaleTransition","VSlideXTransition","VExpandTransition","createJavascriptTransition","VExpandXTransition","transform","opacity","isTouchEvent","e","calculate","target","localX","localY","radius","scale","Math","centerX","centerY","y","ripples","show","container","document","animation","String","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","element","rippleHide","updateRipple","enabled","removeListeners","Ripple","bind","update","handleGesture","wrapper","touchendY","touchendX","touchstartX","touchstartY","createHandlers","touchmoveX","touchmoveY","offsetX","offsetY","left","right","up","down","start","move","end","touchstart","touch","event","Object","touchend","touchmove","Touch","handlers","vnode","eventName","closeConditional","ClickOutside","isActive","elements","directive","app","elevationClasses","styles","style","listeners$","setBackgroundColor","children","baseMixins","directives","inheritAttrs","inject","isInGroup","isInList","isInMenu","isInNav","listItemGroup","dense","inactive","link","selectable","threeLine","twoLine","proxyClass","isClickable","$attrs","hasOwnProperty","click","$el","blur","genAttrs","attrs","disabled","tabindex","keydown","$scopedSlots","active","toggle","setTextColor","mixins","aspectRatio","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","$createElement","staticClass","genContent","$listeners","windowGroup","continuous","nextIcon","prevIcon","reverse","showArrows","showArrowsOnHover","touchless","required","vertical","changedByDelimiters","internalHeight","transitionHeight","transitionCount","isBooted","isReverse","computedTransition","axis","direction","$vuetify","rtl","hasActiveItems","find","hasNext","internalIndex","length","hasPrev","findIndex","internalReverse","mounted","genContainer","height","genIcon","icon","lang","t","fn","large","genControlIcons","icons","getNextIndex","nextIndex","getPrevIndex","prevIndex","next","prev","lastIndex","updateReverse","button","indeterminate","rotate","width","calculatedSize","circumference","normalizedValue","parseFloat","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","viewBoxSize","genCircle","fill","cx","cy","r","genSvg","xmlns","viewBox","genInfo","role","list","expand","flat","nav","rounded","shaped","subheader","groups","g","content","splice","listClick","attrs$","ripple","appendIcon","color","noAction","prependIcon","subGroup","$route","matchRoute","beforeDestroy","genAppendIcon","genHeader","inputValue","genItems","showLazyContent","genPrependIcon","onRouteChange","to","_uid","VNode","backgroundColor","backgroundOpacity","bufferValue","query","stream","striped","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","normalizedBuffer","normalize","reactive","slot","genListeners","listeners","bottom","top","userPreset","framework","installed","preset","property","service","Service","includes","install","args","console","components","Vue","registerComponents","component","beforeCreate","version","Intersect","modifiers","observer","IntersectionObserver","entries","isIntersecting","entry","init","observe","isDark","absolute","dark","zIndex","__scrim","computedOpacity","root","node","theme","auto","closeOnClick","closeOnContentClick","disableKeys","maxHeight","openOnClick","openOnHover","calculatedTopAuto","defaultOffset","hasJustFocused","listIndex","resizeTimeout","tiles","activeTile","calculatedLeft","menuWidth","dimensions","calcXOverflow","calcLeft","calculatedMaxHeight","calculatedMaxWidth","calculatedMinWidth","minWidth","activator","pageWidth","isNaN","parseInt","calculatedTop","calcYOverflow","hasClickableTiles","maxWidth","transformOrigin","activeZIndex","isContentActive","classList","remove","activate","calcScrollPosition","$refs","maxScrollTop","calcLeftAuto","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","computedTop","changeListIndex","contains","genActivatorAttributes","attributes","id","genActivatorListeners","genTransition","genDirectives","include","menuable__content__active","contentClass","ref","onKeyDown","light","getTiles","querySelectorAll","mouseEnterHandler","mouseLeaveHandler","nextTile","prevTile","onResize","clearTimeout","attach","arg","inset","multiLine","timeout","activeTimeout","groupClasses","$router","resolve","href","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","miniVariant","miniVariantWidth","mobileBreakPoint","permanent","src","stateless","temporary","isMouseover","touchArea","stackMinZIndex","applicationProperty","computedMaxHeight","application","computedTransform","computedWidth","isMiniVariant","hasApp","isBottom","isMobile","breakpoint","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","translate","removeOverlay","beforeMount","calculateTouchArea","parent","parentRect","genAppend","genPosition","genBackground","image","img","getOpenDependentElements","swipeRight","transitionend","resizeEvent","genPrepend","genBorder","swipeLeft","updateApplication","updateMiniVariant","$emit","BaseSlideGroup","centerActive","validator","internalItemsLength","isOverflowing","startX","scrollOffset","widths","__cachedNext","__cachedPrev","hasAffixes","beforeUpdate","$children","updated","genNext","key","location","upperLocation","hasAffix","VIcon","genPrev","genWrapper","calculateNewOffset","sign","newAbosluteOffset","onAffixClick","onTouchStart","onTouchMove","onTouchEnd","maxScrollOffset","overflowCheck","scrollIntoView","calculateCenteredOffset","calculateUpdatedOffset","clientWidth","selectedElement","offsetLeft","currentScrollOffset","totalWidth","itemOffset","additionalOffset","offsetCentered","scrollTo","setWidths","slideGroup","tabsBar","callSlider","newPath","oldPath","oldVal","hasNew","hasOld","alignWithTitle","centered","fixedTabs","grow","hideSlider","iconsAndText","optional","sliderColor","sliderSize","slider","transitionTime","isReversed","sliderStyles","computedColor","activeTab","scrollWidth","genBar","change","VTabsBar","genSlider","VTabsItems","VTabsSlider","parseNodes","tab","quiet"],"mappings":"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","file":"vendors~app~78934547.js","sourcesContent":["// 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","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\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 & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\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 },\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 {\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.internalValue === v\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.includes(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 == null || item.value === ''\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('div', 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","import { VNodeDirective } from 'vue/types/vnode'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n value?: () => void\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective) {\n const callback = binding.value!\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n el._onResize = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unbind (el: HTMLElement) {\n if (!el._onResize) return\n\n const { callback, options } = el._onResize\n window.removeEventListener('resize', callback, options)\n delete el._onResize\n}\n\nexport const Resize = {\n inserted,\n unbind,\n}\n\nexport default Resize\n","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().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) => (el.style.position = 'absolute'))\n }\n if (context.props.hideOnLeave) {\n data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => (el.style.display = 'none'))\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,\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 visibility: string | null\n overflow: string | null\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 visibility: el.style.visibility,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle\n const offset = `${el[offsetProperty]}px`\n\n el.style.setProperty('transition', 'none', 'important')\n el.style.visibility = 'hidden'\n el.style.visibility = initialStyle.visibility\n el.style.overflow = 'hidden'\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 visibility: '',\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 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 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","// Styles\nimport './VRipple.sass'\n\nimport { VNode, VNodeDirective } from 'vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction transform (el: HTMLElement, value: string) {\n el.style['transform'] = value\n el.style['webkitTransform'] = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style['opacity'] = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: MouseEvent | TouchEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nconst calculate = (e: MouseEvent | TouchEvent, el: HTMLElement, value: RippleOptions = {}) => {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n const localX = target.clientX - offset.left\n const localY = target.clientY - offset.top\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (e: MouseEvent | TouchEvent, el: HTMLElement, value: RippleOptions = {}) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: MouseEvent | TouchEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n if (!element || !element._ripple || element._ripple.touched) return\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n ripples.show(e, element, value)\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element) return\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('dragstart', rippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'types'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start &&\n wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end &&\n wrapper.end(Object.assign(event, wrapper))\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const value = binding.value!\n const target = value.parent ? el.parentElement : el\n const options = value.options || { passive: true }\n\n // Needed to pass unit tests\n if (!target) return\n\n const handlers = createHandlers(binding.value!)\n target._touchHandlers = Object(target._touchHandlers)\n target._touchHandlers![vnode.context!._uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n const target = binding.value!.parent ? el.parentElement : el\n if (!target || !target._touchHandlers) return\n\n const handlers = target._touchHandlers[vnode.context!._uid]\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n inserted,\n unbind,\n}\n\nexport default Touch\n","import { VNodeDirective } from 'vue/types/vnode'\n\ninterface ClickOutsideBindingArgs {\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: (e: Event) => void\n args?: ClickOutsideBindingArgs\n}\n\nfunction closeConditional () {\n return false\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): void {\n // Args may not always be supplied\n binding.args = binding.args || {}\n\n // If no closeConditional was supplied assign a default\n const isActive = (binding.args.closeConditional || closeConditional)\n\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || isActive(e) === false) return\n\n // If click was triggered programmaticaly (domEl.click()) then\n // it shouldn't be treated as click-outside\n // Chrome/Firefox support isTrusted property\n // IE/Edge support pointerType property (empty if not triggered\n // by pointing device)\n if (('isTrusted' in e && !e.isTrusted) ||\n ('pointerType' in e && !e.pointerType)\n ) return\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = (binding.args.include || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n !elements.some(el => el.contains(e.target as Node)) && setTimeout(() => {\n isActive(e) && binding.value && binding.value(e)\n }, 0)\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n inserted (el: HTMLElement, binding: ClickOutsideDirective) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n // iOS does not recognize click events on document\n // or body, this is the entire purpose of the v-app\n // component and [data-app], stop removing this\n const app = document.querySelector('[data-app]') ||\n document.body // This is only for unit tests\n app.addEventListener('click', onClick, true)\n el._clickOutside = onClick\n },\n\n unbind (el: HTMLElement) {\n if (!el._clickOutside) return\n\n const app = document.querySelector('[data-app]') ||\n document.body // This is only for unit tests\n app && app.removeEventListener('click', el._clickOutside, true)\n delete el._clickOutside\n },\n}\n\nexport default ClickOutside\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 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 Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\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","// 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 VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\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 {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inheritAttrs: false,\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 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,\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,\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 = {\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 = 'listitem'\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 },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data.on = {\n ...data.on,\n click: this.click,\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 const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n tag = this.inactive ? 'div' : tag\n\n return h(tag, this.setTextColor(this.color, 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 },\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 }, 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","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","// Styles\nimport './VWindow.sass'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue/types/vnode'\nimport { PropType } from 'vue'\nimport { TouchHandlers } from '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 provide (): object {\n return {\n windowGroup: this,\n }\n },\n\n directives: { Touch },\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: {\n type: Boolean,\n default: undefined,\n },\n showArrows: Boolean,\n showArrowsOnHover: Boolean,\n touch: Object as PropType,\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.$vuetify.rtl && axis === 'x' ? !this.internalReverse : this.internalReverse\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.reverse ? !this.isReverse : this.isReverse\n },\n },\n\n watch: {\n internalIndex: 'updateReverse',\n },\n\n mounted () {\n window.requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n genContainer (): VNode {\n const children = [this.$slots.default]\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 fn: () => void\n ) {\n return this.$createElement('div', {\n staticClass: `v-window__${direction}`,\n }, [\n this.$createElement(VBtn, {\n props: { icon: true },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(`$vuetify.carousel.${direction}`),\n },\n on: {\n click: () => {\n this.changedByDelimiters = true\n fn()\n },\n },\n }, [\n this.$createElement(VIcon, {\n props: { large: true },\n }, icon),\n ]),\n ])\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 this.isReverse = this.$vuetify.rtl\n\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 this.isReverse = !this.$vuetify.rtl\n\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 if (this.changedByDelimiters) {\n this.changedByDelimiters = false\n return\n }\n\n this.isReverse = val < oldVal\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","// Styles\nimport './VProgressCircular.sass'\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 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 }),\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--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 },\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 style: this.styles,\n on: this.$listeners,\n }), [\n this.genSvg(),\n this.genInfo(),\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\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().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 shaped: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n tile: {\n type: Boolean,\n default: true,\n },\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--shaped': this.shaped,\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","// 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","// 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\n\ninterface options extends ExtractVue {\n list: VListInstance\n $refs: {\n group: HTMLElement\n }\n $route: Route\n}\n\nexport default baseMixins.extend().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,\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","// 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","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\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 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 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 }\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.$vuetify.rtl ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(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--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\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 = {}\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 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 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 { install } from './install'\n\n// Types\nimport Vue from 'vue'\nimport {\n UserVuetifyPreset,\n VuetifyPreset,\n} from 'vuetify/types/services/presets'\nimport {\n VuetifyService,\n VuetifyServiceContract,\n} from 'vuetify/types/services'\n\n// Services\nimport * as services from './services'\n\nexport default class Vuetify {\n static install = install\n\n static installed = false\n\n static version = __VUETIFY_VERSION__\n\n public framework: Dictionary = {}\n\n public installed: string[] = []\n\n public preset = {} as VuetifyPreset\n\n public userPreset: UserVuetifyPreset = {}\n\n constructor (userPreset: UserVuetifyPreset = {}) {\n this.userPreset = userPreset\n\n this.use(services.Presets)\n this.use(services.Application)\n this.use(services.Breakpoint)\n this.use(services.Goto)\n this.use(services.Icons)\n this.use(services.Lang)\n this.use(services.Theme)\n }\n\n // Called on the new vuetify instance\n // bootstrap in install beforeCreate\n // Exposes ssrContext if available\n init (root: Vue, ssrContext?: object) {\n this.installed.forEach(property => {\n const service = this.framework[property]\n\n service.framework = this.framework\n\n service.init(root, ssrContext)\n })\n\n // rtl is not installed and\n // will never be called by\n // the init process\n this.framework.rtl = Boolean(this.preset.rtl) as any\n }\n\n // Instantiate a VuetifyService\n use (Service: VuetifyService) {\n const property = Service.property\n\n if (this.installed.includes(property)) return\n\n // TODO maybe a specific type for arg 2?\n this.framework[property] = new Service(this.preset, this as any)\n this.installed.push(property)\n }\n}\n","import OurVue, { VueConstructor } from 'vue'\nimport { VuetifyUseOptions } from 'types'\nimport { consoleError } from './util/console'\n\nexport function install (Vue: VueConstructor, args: VuetifyUseOptions = {}) {\n if ((install as any).installed) return\n (install as any).installed = true\n\n if (OurVue !== Vue) {\n consoleError('Multiple instances of Vue detected\\nSee https://github.com/vuetifyjs/vuetify/issues/4068\\n\\nIf you\\'re seeing \"$attrs is readonly\", it\\'s caused by this')\n }\n\n const components = args.components || {}\n const directives = args.directives || {}\n\n for (const name in directives) {\n const directive = directives[name]\n\n Vue.directive(name, directive)\n }\n\n (function registerComponents (components: any) {\n if (components) {\n for (const key in components) {\n const component = components[key]\n if (component && !registerComponents(component.$_vuetify_subcomponents)) {\n Vue.component(key, component as typeof Vue)\n }\n }\n return true\n }\n return false\n })(components)\n\n // Used to avoid multiple mixins being setup\n // when in dev mode and hot module reload\n // https://github.com/vuejs/vue/issues/5089#issuecomment-284260111\n if (Vue.$_vuetify_installed) return\n Vue.$_vuetify_installed = true\n\n Vue.mixin({\n beforeCreate () {\n const options = this.$options as any\n\n if (options.vuetify) {\n options.vuetify.init(this, options.ssrContext)\n this.$vuetify = Vue.observable(options.vuetify.framework)\n } else {\n this.$vuetify = (options.parent && options.parent.$vuetify) || this\n }\n },\n })\n}\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import { VNodeDirective } from 'vue/types/vnode'\n\ninterface ObserveVNodeDirective extends VNodeDirective {\n options?: IntersectionObserverInit\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n const modifiers = binding.modifiers || /* istanbul ignore next */ {}\n const value = binding.value\n const isObject = typeof value === 'object'\n const callback = isObject ? value.handler : value\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n callback && (\n !modifiers.quiet ||\n el._observe.init\n )\n ) {\n const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting))\n\n callback(entries, observer, isIntersecting)\n }\n\n // If has already been initted and\n // has the once modifier, unbind\n if (el._observe.init && modifiers.once) unbind(el)\n // Otherwise, mark the observer as initted\n else (el._observe.init = true)\n }, value.options || {})\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\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 './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 class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\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 './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 Detachable from '../../mixins/detachable'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Detachable,\n Menuable,\n Returnable,\n Toggleable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n this.$refs.content.scrollTop = tile.offsetTop - tile.clientHeight\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.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 }, this.showLazyContent(() => [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: () => { this.isActive = false },\n args: {\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n } as any)\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 '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.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(\n 'div',\n options,\n [this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, this.getContentSlot())]\n )\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n this.isActive = 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 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.genTransition(),\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","// Styles\nimport './VSnackbar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { removed } from '../../util/console'\n\nexport default mixins(\n Colorable,\n Toggleable,\n PositionableFactory(['absolute', 'top', 'bottom', 'left', 'right'])\n/* @vue/component */\n).extend({\n name: 'v-snackbar',\n\n props: {\n multiLine: Boolean,\n // TODO: change this to closeDelay to match other API in delayable.js\n timeout: {\n type: Number,\n default: 6000,\n },\n vertical: Boolean,\n },\n\n data: () => ({\n activeTimeout: -1,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-snack--active': this.isActive,\n 'v-snack--absolute': this.absolute,\n 'v-snack--bottom': this.bottom || !this.top,\n 'v-snack--left': this.left,\n 'v-snack--multi-line': this.multiLine && !this.vertical,\n 'v-snack--right': this.right,\n 'v-snack--top': this.top,\n 'v-snack--vertical': this.vertical,\n }\n },\n },\n\n watch: {\n isActive () {\n this.setTimeout()\n },\n },\n\n created () {\n if (this.$attrs.hasOwnProperty('auto-height')) {\n removed('auto-height', this)\n }\n },\n\n mounted () {\n this.setTimeout()\n },\n\n methods: {\n setTimeout () {\n window.clearTimeout(this.activeTimeout)\n\n if (this.isActive && this.timeout) {\n this.activeTimeout = window.setTimeout(() => {\n this.isActive = false\n }, this.timeout)\n }\n },\n },\n\n render (h): VNode {\n return h('transition', {\n attrs: { name: 'v-snack-transition' },\n }, [\n this.isActive && h('div', {\n staticClass: 'v-snack',\n class: this.classes,\n on: this.$listeners,\n }, [\n h('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-snack__wrapper',\n attrs: {\n role: 'alert',\n },\n }), [\n h('div', {\n staticClass: 'v-snack__content',\n }, this.$slots.default),\n ]),\n ]),\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\nconst baseMixins = mixins(\n Routable,\n // Must be after routable\n // to overwrite activeClass\n GroupableFactory('tabsBar'),\n Themeable\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().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 (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 mounted () {\n this.onRouteChange()\n },\n\n methods: {\n click (e: KeyboardEvent | MouseEvent): void {\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 },\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: 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 './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 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 '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 Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\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 mobileBreakPoint: {\n type: [Number, String],\n default: 1264,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\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,\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 this.$vuetify.breakpoint.width < parseInt(this.mobileBreakPoint, 10)\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.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n const styles = {\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 return styles\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: () => (this.isActive = false),\n args: {\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 void> = {\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 if (this.expandOnHover) {\n on.mouseenter = () => (this.isMouseover = true)\n on.mouseleave = () => (this.isMouseover = 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.computedWidth)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (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// 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'\n\ninterface TouchEvent {\n touchstartX: number\n touchmoveX: 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\nexport const BaseSlideGroup = mixins\n/* eslint-enable indent */\n>(\n BaseItemGroup\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 mobileBreakPoint: {\n type: [Number, String],\n default: 1264,\n validator: (v: any) => !isNaN(parseInt(v)),\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: Boolean,\n },\n\n data: () => ({\n internalItemsLength: 0,\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\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 return (\n (this.showArrows || !this.isMobile) &&\n this.isOverflowing\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 isMobile (): boolean {\n return this.$vuetify.breakpoint.width < this.mobileBreakPoint\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 this.$refs.content.style.transform = `translateX(${-val}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 genNext (): VNode | null {\n if (!this.hasAffixes) return null\n\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 }, 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 }, [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 this.scrollOffset = this.startX - e.touchmoveX\n },\n onTouchEnd () {\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 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) {\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 = this.calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = this.calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n calculateUpdatedOffset (selectedElement: HTMLElement, widths: Widths, rtl: boolean, currentScrollOffset: number): 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 calculateCenteredOffset (selectedElement: HTMLElement, widths: Widths, rtl: boolean): 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 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 /* istanbul ignore next */ () {\n window.requestAnimationFrame(() => {\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 this.isOverflowing = this.widths.wrapper < 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\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 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 === newPath) hasNew = true\n else if (item.to === oldPath) hasOld = 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","// 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 './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 {\n $refs: {\n items: InstanceType\n }\n}\n\nexport default baseMixins.extend().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: {\n type: [Number, String],\n default: 1264,\n },\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,\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 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":""}