{"version":3,"sources":["webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/components/VToolbar/index.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VList/index.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../src/locale/nl.ts","webpack:///./node_modules/vuetify-loader/lib/runtime/installComponents.js","webpack:///../../../src/components/VAvatar/index.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/components/VApp/VApp.ts","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/components/VTextField/VTextField.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VCard/index.ts","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VCard/VCard.ts","webpack:///../../../src/components/VBottomNavigation/VBottomNavigation.ts","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///../../../src/components/VList/VListItem.ts","webpack:///../../../src/directives/resize/index.ts","webpack:///../src/install.ts","webpack:///../src/framework.ts","webpack:///../../../src/components/VMain/VMain.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///../../../src/directives/scroll/index.ts"],"names":["mergeTransitions","dest","Array","origin","name","functional","props","group","type","default","hideOnLeave","leaveAbsolute","mode","render","tag","context","data","on","beforeEnter","el","h","mergeData","functions","expandedParentClass","x","sizeProperty","offsetProperty","transition","overflow","enter","initialStyle","offset","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","size","VTabTransition","createSimpleTransition","VTabReverseTransition","VFabTransition","VFadeTransition","VScaleTransition","VSlideXTransition","VExpandTransition","createJavascriptTransition","VExpandXTransition","isFontAwesome5","some","val","iconType","isSvgPath","test","icon","SIZE_MAP","VIcon","dense","disabled","left","right","Number","required","computed","medium","hasClickListener","Boolean","this","listeners$","click","methods","getIcon","iconName","$slots","text","getSize","sizes","xSmall","small","large","xLarge","explicitSize","key","getDefaultData","staticClass","class","attrs","attrs$","getSvgWrapperData","fontSize","wrapperData","style","height","width","undefined","applyColors","themeClasses","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","renderSvgIcon","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","$_wrapperFor","children","filteredChild","VNode","provide","isInGroup","listItemGroup","classes","genData","setTextColor","VToolbarTitle","VToolbarItems","baseMixins","mixins","active","backgroundColor","backgroundOpacity","bufferValue","color","indeterminate","query","reverse","rounded","stream","striped","value","internalLazyValue","__cachedBackground","$createElement","setBackgroundColor","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","styles","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","parseFloat","opacity","isReversed","normalizedBuffer","computedTransition","$vuetify","rtl","normalize","normalizedValue","reactive","$listeners","genContent","slot","genListeners","listeners","onClick","$el","e","bottom","top","directives","Scroll","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","isActive","applicationProperty","canScroll","collapse","app","currentScroll","computedContentHeight","min","max","difference","iteration","Math","computedFontSize","increment","computedLeft","application","computedMarginTop","computedOpacity","computedScrollThreshold","computedOriginalHeight","parseInt","computedRight","computedTransform","hideShadow","isCollapsed","isProminent","marginTop","transform","watch","created","genBackground","_b","updateApplication","computedHeight","thresholdMet","isScrollingUp","currentThreshold","arg","onScroll","button","rotate","radius","calculatedSize","circumference","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","viewBoxSize","genCircle","fill","cx","cy","r","genSvg","genInfo","DELAY_RIPPLE","isTouchEvent","isKeyboardEvent","calculate","localX","localY","target","scale","centerX","centerY","y","ripples","show","container","document","animation","window","String","performance","setTimeout","hide","diff","delay","isRippleEnabled","rippleShow","element","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","updateRipple","enabled","binding","passive","removeListeners","directive","unbind","update","wasEnabled","Ripple","bind","ripple","activeClass","appendIcon","noAction","prependIcon","subGroup","list","listClick","$route","register","matchRoute","beforeDestroy","unregister","genIcon","genAppendIcon","VListItemIcon","genHeader","VListItem","inputValue","genItems","showLazyContent","genPrependIcon","onRouteChange","to","toggle","_uid","isBooted","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListItemAction","VListItemAvatar","VListItemGroup","BaseItemGroup","mandatory","multiple","items","selectedIndex","selectedItem","indexOf","selectedItems","filter","selectedValues","internalValue","toggleMethod","v","getValue","item","i","index","push","valueIndex","updateInternalValue","updateItem","updateItemsState","updateMultiple","updateSingle","updateMandatory","defaultValue","isSame","itemGroup","badge","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","datePicker","itemsSelected","nextMonthAriaLabel","nextYearAriaLabel","prevMonthAriaLabel","prevYearAriaLabel","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","fileInput","counter","counterSize","timePicker","am","pm","pagination","wrapper","previous","page","currentPage","module","exports","components","options","extendOptions","absolute","extended","extensionHeight","flat","floating","prominent","short","src","isExtended","isNaN","breakpoint","breakingProps","original","replacement","image","$scopedSlots","img","genExtension","dark","id","light","isDark","theme","beforeCreate","Error","domProps","roundedClasses","minWidth","measurableStyles","horizontal","tile","btnToggle","block","depressed","fab","loading","outlined","retainFocusOnClick","proxyClass","sizeableClasses","contained","computedRipple","defaultRipple","circle","isFlat","isRound","genLoader","loader","setColor","includes","JSON","content","isGreater","ctx","onVisible","dirtyTypes","resize","inheritAttrs","appendOuterIcon","autofocus","clearable","clearIcon","counterValue","filled","fullWidth","label","placeholder","prefix","prependInnerIcon","shaped","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isClearing","VInput","computedColor","computedCounterValue","hasCounter","hasDetails","get","set","isDirty","isEnclosed","isLabelActive","isSingle","isSolo","labelPosition","labelValue","showLabel","hasLabel","isFocused","$attrs","hasOwnProperty","console","mounted","focus","blur","clearableCallback","$refs","input","genAppendSlot","genSlot","genPrependInnerSlot","genIconSlot","genInputSlot","prepend","genClearIcon","genCounter","genControl","genDefaultSlot","genFieldset","genLabel","focused","for","VLabel","genLegend","span","innerHTML","genInput","Object","lazyValue","readonly","keydown","onKeyDown","ref","modifiers","quiet","onResize","genMessages","messagesNode","counterNode","genTextFieldSlot","genAffix","onBlur","$nextTick","onFocus","$emit","onInput","onMouseDown","onMouseUp","setLabelWidth","scrollWidth","setPrefixWidth","setPrependWidth","tryAutofocus","updateValue","isInList","inject","isInMenu","isInNav","expand","nav","subheader","threeLine","twoLine","groups","findIndex","g","splice","inserted","handler","observer","IntersectionObserver","entries","isIntersecting","entry","init","observe","Intersect","VCardActions","VCardSubtitle","VCardText","VCardTitle","defaultConditional","elements","ClickOutside","zIndex","__scrim","aspectRatio","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","hasIntersect","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","position","srcset","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","hasError","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","onError","getSrc","err","pollForSize","timeout","poll","naturalHeight","__genPlaceholder","appear","node","once","hover","link","loaderHeight","raised","genProgress","grow","shift","change","genChildren","map","genMessage","message","hideDetails","hint","persistentHint","hasMouseDown","computedId","messagesToDisplay","length","hasHint","validations","validation","validationResult","showDetails","$options","model","extraData","eventName","hasListener","cb","mouseup","mousedown","hasMessages","scopedSlots","genPrependSlot","handleGesture","touchendY","dirRatio","minDistance","touchendX","touchstartX","touchstartY","touch","event","createHandlers","touchmoveX","touchmoveY","offsetX","offsetY","up","down","start","move","end","touchstart","touchend","touchmove","handlers","vnode","Touch","inset","vertical","orientation","inactive","selectable","isClickable","genAttrs","tabindex","callback","Resize","args","install","Vue","registerComponents","beforeMount","vuetify","hasAttribute","userPreset","framework","isHydrating","installed","preset","property","service","Service","version","config","silent","paddingTop","paddingRight","footer","paddingLeft","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","miniVariant","miniVariantWidth","permanent","stateless","temporary","touchless","isMouseover","touchArea","stackMinZIndex","computedMaxHeight","computedTop","computedWidth","isMiniVariant","hasApp","isBottom","isMobile","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","translate","maxHeight","removeOverlay","calculateTouchArea","parent","parentRect","closeConditional","genAppend","genPosition","genDirectives","include","getOpenDependentElements","swipeRight","transitionend","resizeEvent","genPrepend","genBorder","swipeLeft","updateMiniVariant","self"],"mappings":"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","file":"js/chunk-vendors~4a7e9e0b.b1104e5c.js","sourcesContent":["import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n dest: Function | Function[] = [],\n ...transitions: (Function | Function[])[]\n) {\n /* eslint-disable-next-line no-array-constructor */\n return Array().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 overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const 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","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n xSmall = '12px',\n small = '16px',\n default = '24px',\n medium = '28px',\n large = '36px',\n xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n return ['fas', 'far', 'fal', 'fab', 'fad'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\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 VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\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","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VToolbar,\n VToolbarItems,\n VToolbarTitle,\n },\n}\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-icon',\n\n functional: true,\n\n render (h, { data, children }): VNode {\n data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n return h('div', data, children)\n },\n})\n","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// 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 reverse: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(this.normalizedBuffer - this.normalizedValue, '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--reverse': this.isReversed,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n isReversed (): boolean {\n return this.$vuetify.rtl !== this.reverse\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\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 VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","// Styles\nimport './VAppBar.sass'\n\n// Extensions\nimport VToolbar from '../VToolbar/VToolbar'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Scrollable from '../../mixins/scrollable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VToolbar,\n Scrollable,\n SSRBootable,\n Toggleable,\n Applicationable('top', [\n 'clippedLeft',\n 'clippedRight',\n 'computedHeight',\n 'invertedScroll',\n 'isExtended',\n 'isProminent',\n 'value',\n ])\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-app-bar',\n\n directives: { Scroll },\n\n props: {\n clippedLeft: Boolean,\n clippedRight: Boolean,\n collapseOnScroll: Boolean,\n elevateOnScroll: Boolean,\n fadeImgOnScroll: Boolean,\n hideOnScroll: Boolean,\n invertedScroll: Boolean,\n scrollOffScreen: Boolean,\n shrinkOnScroll: Boolean,\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n isActive: this.value,\n }\n },\n\n computed: {\n applicationProperty (): string {\n return !this.bottom ? 'top' : 'bottom'\n },\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.invertedScroll ||\n this.elevateOnScroll ||\n this.hideOnScroll ||\n this.collapseOnScroll ||\n this.isBooted ||\n // If falsey, user has provided an\n // explicit value which should\n // overwrite anything we do\n !this.value\n )\n )\n },\n classes (): object {\n return {\n ...VToolbar.options.computed.classes.call(this),\n 'v-toolbar--collapse': this.collapse || this.collapseOnScroll,\n 'v-app-bar': true,\n 'v-app-bar--clipped': this.clippedLeft || this.clippedRight,\n 'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll,\n 'v-app-bar--elevate-on-scroll': this.elevateOnScroll,\n 'v-app-bar--fixed': !this.absolute && (this.app || this.fixed),\n 'v-app-bar--hide-shadow': this.hideShadow,\n 'v-app-bar--is-scrolled': this.currentScroll > 0,\n 'v-app-bar--shrink-on-scroll': this.shrinkOnScroll,\n }\n },\n computedContentHeight (): number {\n if (!this.shrinkOnScroll) return VToolbar.options.computed.computedContentHeight.call(this)\n\n const height = this.computedOriginalHeight\n\n const min = this.dense ? 48 : 56\n const max = height\n const difference = max - min\n const iteration = difference / this.computedScrollThreshold\n const offset = this.currentScroll * iteration\n\n return Math.max(min, max - offset)\n },\n computedFontSize (): number | undefined {\n if (!this.isProminent) return undefined\n\n const max = this.dense ? 96 : 128\n const difference = max - this.computedContentHeight\n const increment = 0.00347\n\n // 1.5rem to a minimum of 1.25rem\n return Number((1.50 - difference * increment).toFixed(2))\n },\n computedLeft (): number {\n if (!this.app || this.clippedLeft) return 0\n\n return this.$vuetify.application.left\n },\n computedMarginTop (): number {\n if (!this.app) return 0\n\n return this.$vuetify.application.bar\n },\n computedOpacity (): number | undefined {\n if (!this.fadeImgOnScroll) return undefined\n\n const opacity = Math.max(\n (this.computedScrollThreshold - this.currentScroll) / this.computedScrollThreshold,\n 0\n )\n\n return Number(parseFloat(opacity).toFixed(2))\n },\n computedOriginalHeight (): number {\n let height = VToolbar.options.computed.computedContentHeight.call(this)\n if (this.isExtended) height += parseInt(this.extensionHeight)\n return height\n },\n computedRight (): number {\n if (!this.app || this.clippedRight) return 0\n\n return this.$vuetify.application.right\n },\n computedScrollThreshold (): number {\n if (this.scrollThreshold) return Number(this.scrollThreshold)\n\n return this.computedOriginalHeight - (this.dense ? 48 : 56)\n },\n computedTransform (): number {\n if (\n !this.canScroll ||\n (this.elevateOnScroll && this.currentScroll === 0 && this.isActive)\n ) return 0\n\n if (this.isActive) return 0\n\n const scrollOffScreen = this.scrollOffScreen\n ? this.computedHeight\n : this.computedContentHeight\n\n return this.bottom ? scrollOffScreen : -scrollOffScreen\n },\n hideShadow (): boolean {\n if (this.elevateOnScroll && this.isExtended) {\n return this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.elevateOnScroll) {\n return this.currentScroll === 0 ||\n this.computedTransform < 0\n }\n\n return (\n !this.isExtended ||\n this.scrollOffScreen\n ) && this.computedTransform !== 0\n },\n isCollapsed (): boolean {\n if (!this.collapseOnScroll) {\n return VToolbar.options.computed.isCollapsed.call(this)\n }\n\n return this.currentScroll > 0\n },\n isProminent (): boolean {\n return (\n VToolbar.options.computed.isProminent.call(this) ||\n this.shrinkOnScroll\n )\n },\n styles (): object {\n return {\n ...VToolbar.options.computed.styles.call(this),\n fontSize: convertToUnit(this.computedFontSize, 'rem'),\n marginTop: convertToUnit(this.computedMarginTop),\n transform: `translateY(${convertToUnit(this.computedTransform)})`,\n left: convertToUnit(this.computedLeft),\n right: convertToUnit(this.computedRight),\n }\n },\n },\n\n watch: {\n canScroll: 'onScroll',\n computedTransform () {\n // Normally we do not want the v-app-bar\n // to update the application top value\n // to avoid screen jump. However, in\n // this situation, we must so that\n // the clipped drawer can update\n // its top value when scrolled\n if (\n !this.canScroll ||\n (!this.clippedLeft && !this.clippedRight)\n ) return\n\n this.callUpdate()\n },\n invertedScroll (val: boolean) {\n this.isActive = !val || this.currentScroll !== 0\n },\n },\n\n created () {\n if (this.invertedScroll) this.isActive = false\n },\n\n methods: {\n genBackground () {\n const render = VToolbar.options.methods.genBackground.call(this)\n\n render.data = this._b(render.data || {}, render.tag!, {\n style: { opacity: this.computedOpacity },\n })\n\n return render\n },\n updateApplication (): number {\n return this.invertedScroll\n ? 0\n : this.computedHeight + this.computedTransform\n },\n thresholdMet () {\n if (this.invertedScroll) {\n this.isActive = this.currentScroll > this.computedScrollThreshold\n return\n }\n\n if (this.hideOnScroll) {\n this.isActive = this.isScrollingUp ||\n this.currentScroll < this.computedScrollThreshold\n }\n\n if (this.currentThreshold < this.computedScrollThreshold) return\n\n this.savedScroll = this.currentScroll\n },\n },\n\n render (h): VNode {\n const render = VToolbar.options.render.call(this, h)\n\n render.data = render.data || {}\n\n if (this.canScroll) {\n render.data.directives = render.data.directives || []\n render.data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return render\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 './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\ntype VuetifyRippleEvent = MouseEvent | TouchEvent | KeyboardEvent\n\nconst DELAY_RIPPLE = 80\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: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\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 (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\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: VuetifyRippleEvent) {\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 || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element && element._ripple && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\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('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\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('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\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","// 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","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","export default {\n badge: 'insigne',\n close: 'Sluiten',\n dataIterator: {\n noResultsText: 'Geen overeenkomende resultaten gevonden',\n loadingText: 'Items aan het laden...',\n },\n dataTable: {\n itemsPerPageText: 'Rijen per pagina:',\n ariaLabel: {\n sortDescending: 'Aflopend gesorteerd.',\n sortAscending: 'Oplopend gesorteerd.',\n sortNone: 'Niet gesorteerd.',\n activateNone: 'Activeer om de sortering te verwijderen.',\n activateDescending: 'Activeer om aflopend te sorteren.',\n activateAscending: 'Activeer om oplopend te sorteren.',\n },\n sortBy: 'Sorteer volgens',\n },\n dataFooter: {\n itemsPerPageText: 'Aantal per pagina:',\n itemsPerPageAll: 'Alles',\n nextPage: 'Volgende pagina',\n prevPage: 'Vorige pagina',\n firstPage: 'Eerste pagina',\n lastPage: 'Laatste pagina',\n pageText: '{0}-{1} van {2}',\n },\n datePicker: {\n itemsSelected: '{0} geselecteerd',\n nextMonthAriaLabel: 'Volgende maand',\n nextYearAriaLabel: 'Volgend jaar',\n prevMonthAriaLabel: 'Vorige maand',\n prevYearAriaLabel: 'Vorig jaar',\n },\n noDataText: 'Geen gegevens beschikbaar',\n carousel: {\n prev: 'Vorig beeld',\n next: 'Volgend beeld',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} meer',\n },\n fileInput: {\n counter: '{0} bestanden',\n counterSize: '{0} bestanden ({1} in totaal)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n },\n pagination: {\n ariaLabel: {\n wrapper: 'Paginanavigatie',\n next: 'Volgende pagina',\n previous: 'Vorige pagina',\n page: 'Ga naar pagina {0}',\n currentPage: 'Huidige pagina, pagina {0}',\n },\n },\n}\n","// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function installComponents (component, components) {\n var options = typeof component.exports === 'function'\n ? component.exports.extendOptions\n : component.options\n\n if (typeof component.exports === 'function') {\n options.components = component.exports.options.components\n }\n\n options.components = options.components || {}\n\n for (var i in components) {\n options.components[i] = options.components[i] || components[i]\n }\n}\n","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n },\n\n data: () => ({\n isExtended: false,\n }),\n\n computed: {\n computedHeight (): number {\n const height = this.computedContentHeight\n\n if (!this.isExtended) return height\n\n const extensionHeight = parseInt(this.extensionHeight)\n\n return this.isCollapsed\n ? height\n : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n },\n computedContentHeight (): number {\n if (this.height) return parseInt(this.height)\n if (this.isProminent && this.dense) return 96\n if (this.isProminent && this.short) return 112\n if (this.isProminent) return 128\n if (this.dense) return 48\n if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n return 64\n },\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-toolbar': true,\n 'v-toolbar--absolute': this.absolute,\n 'v-toolbar--bottom': this.bottom,\n 'v-toolbar--collapse': this.collapse,\n 'v-toolbar--collapsed': this.isCollapsed,\n 'v-toolbar--dense': this.dense,\n 'v-toolbar--extended': this.isExtended,\n 'v-toolbar--flat': this.flat,\n 'v-toolbar--floating': this.floating,\n 'v-toolbar--prominent': this.isProminent,\n }\n },\n isCollapsed (): boolean {\n return this.collapse\n },\n isProminent (): boolean {\n return this.prominent\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n height: convertToUnit(this.computedHeight),\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['app', ''],\n ['manual-scroll', ''],\n ['clipped-left', ''],\n ['clipped-right', ''],\n ['inverted-scroll', ''],\n ['scroll-off-screen', ''],\n ['scroll-target', ''],\n ['scroll-threshold', ''],\n ['card', ''],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n genBackground () {\n const props = {\n height: convertToUnit(this.computedHeight),\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img({ props })\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-toolbar__image',\n }, [image])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__content',\n style: {\n height: convertToUnit(this.computedContentHeight),\n },\n }, getSlot(this))\n },\n genExtension () {\n return this.$createElement('div', {\n staticClass: 'v-toolbar__extension',\n style: {\n height: convertToUnit(this.extensionHeight),\n },\n }, getSlot(this, 'extension'))\n },\n },\n\n render (h): VNode {\n this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n const children = [this.genContent()]\n const data = this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n })\n\n if (this.isExtended) children.push(this.genExtension())\n if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n return h(this.tag, data, children)\n },\n})\n","// Styles\nimport './VApp.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Themeable\n).extend({\n name: 'v-app',\n\n props: {\n dark: {\n type: Boolean,\n default: undefined,\n },\n id: {\n type: String,\n default: 'app',\n },\n light: {\n type: Boolean,\n default: undefined,\n },\n },\n\n computed: {\n isDark (): boolean {\n return this.$vuetify.theme.dark\n },\n },\n\n beforeCreate () {\n if (!this.$vuetify || (this.$vuetify === this.$root as any)) {\n throw new Error('Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object')\n }\n },\n\n render (h) {\n const wrapper = h('div', { staticClass: 'v-application--wrap' }, this.$slots.default)\n\n return h('div', {\n staticClass: 'v-application',\n class: {\n 'v-application--is-rtl': this.$vuetify.rtl,\n 'v-application--is-ltr': !this.$vuetify.rtl,\n ...this.themeClasses,\n },\n attrs: { 'data-app': true },\n domProps: { id: this.id },\n }, [wrapper])\n },\n})\n","import './VAvatar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n Colorable,\n Measurable,\n Roundable,\n /* @vue/component */\n).extend({\n name: 'v-avatar',\n\n props: {\n left: Boolean,\n right: Boolean,\n size: {\n type: [Number, String],\n default: 48,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-avatar--left': this.left,\n 'v-avatar--right': this.right,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return {\n height: convertToUnit(this.size),\n minWidth: convertToUnit(this.size),\n width: convertToUnit(this.size),\n ...this.measurableStyles,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-avatar',\n class: this.classes,\n style: this.styles,\n on: this.$listeners,\n }\n\n return h('div', this.setBackgroundColor(this.color, data), this.$slots.default)\n },\n})\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n name: 'v-list-item-avatar',\n\n props: {\n horizontal: Boolean,\n size: {\n type: [Number, String],\n default: 40,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-item__avatar--horizontal': this.horizontal,\n ...VAvatar.options.computed.classes.call(this),\n 'v-avatar--tile': this.tile || this.horizontal,\n }\n },\n },\n\n render (h): VNode {\n const render = VAvatar.options.render.call(this, h)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-list-item__avatar'\n\n return render\n },\n})\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n VSheet,\n Routable,\n Positionable,\n Sizeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.btnToggle) return ''\n\n return this.btnToggle.activeClass\n },\n } as any as PropValidator,\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n icon: Boolean,\n loading: Boolean,\n outlined: Boolean,\n retainFocusOnClick: Boolean,\n rounded: Boolean,\n tag: {\n type: String,\n default: 'button',\n },\n text: Boolean,\n tile: Boolean,\n type: {\n type: String,\n default: 'button',\n },\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-btn--active',\n }),\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n ...Routable.options.computed.classes.call(this),\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--contained': this.contained,\n 'v-btn--depressed': (this.depressed) || this.outlined,\n 'v-btn--disabled': this.disabled,\n 'v-btn--fab': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--flat': this.isFlat,\n 'v-btn--icon': this.icon,\n 'v-btn--left': this.left,\n 'v-btn--loading': this.loading,\n 'v-btn--outlined': this.outlined,\n 'v-btn--right': this.right,\n 'v-btn--round': this.isRound,\n 'v-btn--rounded': this.rounded,\n 'v-btn--router': this.to,\n 'v-btn--text': this.text,\n 'v-btn--tile': this.tile,\n 'v-btn--top': this.top,\n ...this.themeClasses,\n ...this.groupClasses,\n ...this.elevationClasses,\n ...this.sizeableClasses,\n }\n },\n contained (): boolean {\n return Boolean(\n !this.isFlat &&\n !this.depressed &&\n // Contained class only adds elevation\n // is not needed if user provides value\n !this.elevation\n )\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple ?? defaultRipple\n },\n isFlat (): boolean {\n return Boolean(\n this.icon ||\n this.text ||\n this.outlined\n )\n },\n isRound (): boolean {\n return Boolean(\n this.icon ||\n this.fab\n )\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['flat', 'text'],\n ['outline', 'outlined'],\n ['round', 'rounded'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n // TODO: Remove this in v3\n !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-btn__content',\n }, this.$slots.default)\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loader',\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2,\n },\n })])\n },\n },\n\n render (h): VNode {\n const children = [\n this.genContent(),\n this.loading && this.genLoader(),\n ]\n const setColor = !this.isFlat ? this.setBackgroundColor : this.setTextColor\n const { tag, data } = this.generateRouteLink()\n\n if (tag === 'button') {\n data.attrs!.type = this.type\n data.attrs!.disabled = this.disabled\n }\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n return h(tag, this.disabled ? data : setColor(this.color, data), children)\n },\n})\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-text-field',\n\n directives: {\n resize,\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.options.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('input', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && (!this.isSingle || (!this.isLabelActive && !this.placeholder))\n },\n labelValue (): boolean {\n return !this.isSingle &&\n Boolean(this.isFocused || this.isLabelActive || this.placeholder)\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('box')) {\n breaking('box', 'filled', this)\n }\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n\n this.autofocus && this.tryAutofocus()\n\n requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner'] as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.options.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n const data = this.isDirty ? undefined : { attrs: { disabled: true } }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback, data),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n return this.$createElement(VCounter, {\n props: {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n },\n })\n },\n genControl () {\n return VInput.options.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n props: {\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n },\n }\n\n return this.$createElement(VLabel, data, this.$slots.label || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n })\n\n return this.$createElement('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n },\n attrs: {\n ...this.attrs$,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.placeholder,\n readonly: this.isReadonly,\n type: this.type,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: this.onInput,\n focus: this.onFocus,\n keydown: this.onKeyDown,\n }),\n ref: 'input',\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n })\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return this.$createElement('div', {\n staticClass: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return this.$createElement('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n if (document.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.enter) this.$emit('change', this.internalValue)\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs.label\n ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input ||\n document.activeElement === this.$refs.input\n ) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\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 subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Roundable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n outlined: Boolean,\n shaped: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--outlined': this.outlined,\n 'v-sheet--shaped': this.shaped,\n ...this.themeClasses,\n ...this.elevationClasses,\n ...this.roundedClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers?: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\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 handler && (\n !modifiers.quiet ||\n el._observe.init\n )\n ) {\n const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting))\n\n handler(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 }, 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","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VCard,\n VCardActions,\n VCardSubtitle,\n VCardText,\n VCardTitle,\n },\n}\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","import { VNodeDirective } from 'vue/types/vnode'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): void {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\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 // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n !elements.some(el => el.contains(e.target as Node)) && setTimeout(() => {\n isActive(e) && handler && handler(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 './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 './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","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n image.src = this.normalisedSrc.src\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else {\n timeout != null && !this.hasError && setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n","// Styles\nimport './VBottomNavigation.sass'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport ButtonGroup from '../../mixins/button-group'\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Proxyable from '../../mixins/proxyable'\nimport Scrollable from '../../mixins/scrollable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Applicationable('bottom', [\n 'height',\n 'inputValue',\n ]),\n Colorable,\n Measurable,\n ToggleableFactory('inputValue'),\n Proxyable,\n Scrollable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-bottom-navigation',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-btn--active',\n },\n backgroundColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: 56,\n },\n hideOnScroll: Boolean,\n horizontal: Boolean,\n inputValue: {\n type: Boolean,\n default: true,\n },\n mandatory: Boolean,\n shift: Boolean,\n },\n\n data () {\n return {\n isActive: this.inputValue,\n }\n },\n\n computed: {\n canScroll (): boolean {\n return (\n Scrollable.options.computed.canScroll.call(this) &&\n (\n this.hideOnScroll ||\n !this.inputValue\n )\n )\n },\n classes (): object {\n return {\n 'v-bottom-navigation--absolute': this.absolute,\n 'v-bottom-navigation--grow': this.grow,\n 'v-bottom-navigation--fixed': !this.absolute && (this.app || this.fixed),\n 'v-bottom-navigation--horizontal': this.horizontal,\n 'v-bottom-navigation--shift': this.shift,\n }\n },\n styles (): object {\n return {\n ...this.measurableStyles,\n transform: this.isActive ? 'none' : 'translateY(100%)',\n }\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('active')) {\n breaking('active.sync', 'value or v-model', this)\n }\n },\n\n methods: {\n thresholdMet () {\n this.isActive = !this.isScrollingUp\n this.$emit('update:input-value', this.isActive)\n },\n updateApplication (): number {\n return this.$el\n ? this.$el.clientHeight\n : 0\n },\n updateValue (val: any) {\n this.$emit('change', val)\n },\n },\n\n render (h): VNode {\n const data = this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-bottom-navigation',\n class: this.classes,\n style: this.styles,\n props: {\n activeClass: this.activeClass,\n mandatory: Boolean(\n this.mandatory ||\n this.value !== undefined\n ),\n value: this.internalValue,\n },\n on: { change: this.updateValue },\n })\n\n if (this.canScroll) {\n data.directives = data.directives || []\n\n data.directives.push({\n arg: this.scrollTarget,\n name: 'scroll',\n value: this.onScroll,\n })\n }\n\n return h(ButtonGroup, this.setTextColor(this.color, data), this.$slots.default)\n },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-label',\n\n functional: true,\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n focused: Boolean,\n for: String,\n left: {\n type: [Number, String],\n default: 0,\n },\n right: {\n type: [Number, String],\n default: 'auto',\n },\n value: Boolean,\n },\n\n render (h, ctx): VNode {\n const { children, listeners, props } = ctx\n const data = {\n staticClass: 'v-label',\n class: {\n 'v-label--active': props.value,\n 'v-label--is-disabled': props.disabled,\n ...functionalThemeClasses(ctx),\n },\n attrs: {\n for: props.for,\n 'aria-hidden': !props.for,\n },\n on: listeners,\n style: {\n left: convertToUnit(props.left),\n right: convertToUnit(props.right),\n position: props.absolute ? 'absolute' : 'relative',\n },\n ref: 'label',\n }\n\n return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/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","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n name: 'v-divider',\n\n props: {\n inset: Boolean,\n vertical: Boolean,\n },\n\n render (h): VNode {\n // WAI-ARIA attributes\n let orientation\n if (!this.$attrs.role || this.$attrs.role === 'separator') {\n orientation = this.vertical ? 'vertical' : 'horizontal'\n }\n return h('hr', {\n class: {\n 'v-divider': true,\n 'v-divider--inset': this.inset,\n 'v-divider--vertical': this.vertical,\n ...this.themeClasses,\n },\n attrs: {\n role: 'separator',\n 'aria-orientation': orientation,\n ...this.$attrs,\n },\n on: this.$listeners,\n })\n },\n})\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\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 inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\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[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n return h(tag, this.setTextColor(this.color, data), children)\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 OurVue, { VueConstructor } from 'vue'\nimport { VuetifyUseOptions } from 'vuetify/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, this.$ssrContext)\n this.$vuetify = Vue.observable(options.vuetify.framework)\n } else {\n this.$vuetify = (options.parent && options.parent.$vuetify) || this\n }\n },\n beforeMount () {\n // @ts-ignore\n if (this.$options.vuetify && this.$el && this.$el.hasAttribute('data-server-rendered')) {\n // @ts-ignore\n this.$vuetify.isHydrating = true\n // @ts-ignore\n this.$vuetify.breakpoint.update(true)\n }\n },\n mounted () {\n // @ts-ignore\n if (this.$options.vuetify && this.$vuetify.isHydrating) {\n // @ts-ignore\n this.$vuetify.isHydrating = false\n // @ts-ignore\n this.$vuetify.breakpoint.update()\n }\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 static config = {\n silent: false,\n }\n\n public framework: Dictionary = {\n isHydrating: false,\n } as any\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","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n this.$slots.default\n ),\n ])\n },\n})\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\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 Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record 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","import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions } from 'vue'\n\ninterface ScrollVNodeDirective extends Omit {\n value: EventListener | {\n handler: EventListener\n options?: boolean | AddEventListenerOptions\n } | EventListenerObject & { options?: boolean | AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction inserted (el: HTMLElement, binding: ScrollVNodeDirective) {\n const { self = false } = binding.modifiers || {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unbind (el: HTMLElement) {\n if (!el._onScroll) return\n\n const { handler, options, target = el } = el._onScroll\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll\n}\n\nexport const Scroll = {\n inserted,\n unbind,\n} as DirectiveOptions\n\nexport default Scroll\n"],"sourceRoot":""}