{"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/VAlert/VAlert.ts","webpack:///../../../src/components/VGrid/VFlex.ts","webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VSheet/index.ts","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///../../../src/components/VRating/VRating.ts","webpack:///../../../src/components/VToolbar/index.ts","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///../../../src/components/VRadioGroup/VRadioGroup.ts","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/directives/ripple/index.ts","webpack:///../../../src/components/VStepper/VStepperStep.ts","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///./node_modules/vuetify-loader/lib/runtime/installComponents.js","webpack:///../../../src/components/VRadioGroup/VRadio.ts","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///../../../src/components/VApp/VApp.ts","webpack:///../../../src/components/VStepper/VStepper.ts","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.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/VSheet/VSheet.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///../../../src/components/VStepper/index.ts","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///../../../src/components/VGrid/VLayout.ts","webpack:///../../../src/components/VContent/VContent.ts","webpack:///../../../src/components/VBtn/index.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/components/VStepper/VStepperContent.ts","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../src/install.ts","webpack:///../src/framework.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","visibility","overflow","enter","initialStyle","offset","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","size","createSimpleTransition","VTabTransition","VTabReverseTransition","VFadeTransition","VSlideXTransition","createJavascriptTransition","border","validator","closeLabel","coloredBorder","dense","dismissible","icon","Boolean","val","outlined","prominent","text","value","computed","__cachedBorder","this","staticClass","class","setBackgroundColor","$createElement","__cachedDismissible","color","small","attrs","$vuetify","lang","t","click","__cachedIcon","iconColor","classes","computedColor","computedIcon","includes","hasColoredIcon","hasText","isDark","created","$attrs","hasOwnProperty","methods","genWrapper","children","$slots","prepend","$scopedSlots","close","toggle","genContent","genAlert","role","style","directives","isActive","setColor","breakpoints","ALIGNMENT","makeProps","prefix","def","alignValidator","str","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","justify","alignContent","classMap","breakpointClass","className","breakpoint","prop","cache","noGutters","cacheKey","String","classList","isFontAwesome5","some","iconType","isSvgPath","test","SIZE_MAP","VIcon","disabled","left","right","Number","required","medium","getIcon","iconName","getSize","sizes","xSmall","large","xLarge","explicitSize","key","getDefaultData","hasClickListener","listeners$","attrs$","applyColors","themeClasses","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","fontSize","renderSvgIcon","wrapperData","height","width","undefined","svgData","xmlns","viewBox","d","renderSvgIconComponent","component","$_wrapperFor","backgroundColor","clearable","emptyIcon","fullIcon","halfIcon","halfIncrements","hover","length","readonly","hoverIndex","internalValue","circle","iconProps","dark","light","isHovering","watch","$emit","createClickFn","e","newValue","createProps","index","isFilled","Math","isHovered","i","genHoverIndex","isHalf","isHalfEvent","getIconName","isFull","getColor","rect","onMouseEnter","onMouseLeave","genItem","item","listeners","setTextColor","VToolbarTitle","VToolbarItems","baseMixins","mixins","active","backgroundOpacity","bufferValue","indeterminate","query","rounded","stream","striped","internalLazyValue","__cachedBackground","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","styles","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","parseFloat","opacity","rtl","normalizedBuffer","computedTransition","normalize","normalizedValue","reactive","$listeners","slot","genListeners","onClick","$el","bottom","top","Scroll","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","applicationProperty","canScroll","collapse","app","currentScroll","computedContentHeight","min","max","difference","iteration","computedFontSize","increment","computedLeft","application","computedMarginTop","computedOpacity","computedScrollThreshold","computedOriginalHeight","parseInt","computedRight","computedTransform","hideShadow","isCollapsed","isProminent","marginTop","transform","genBackground","_b","updateApplication","computedHeight","thresholdMet","currentThreshold","arg","onScroll","BaseItemGroup","activeClass","mandatory","multiple","items","selectedIndex","selectedItem","indexOf","selectedItems","filter","selectedValues","toggleMethod","v","console","genData","getValue","register","push","unregister","valueIndex","updateInternalValue","updateItem","updateItemsState","updateMultiple","updateSingle","updateMandatory","defaultValue","isSame","provide","itemGroup","radioGroup","column","row","VInput","genDefaultSlot","id","computedId","genInputSlot","genLabel","label","inheritAttrs","lazyValidation","inputs","watchers","errorBag","handler","errors","deep","immediate","watchInput","watcher","input","_uid","valid","shouldValidate","validate","reset","resetErrorBag","setTimeout","resetValidation","found","find","unwatch","novalidate","submit","isTouchEvent","calculate","target","localX","localY","radius","scale","centerX","centerY","y","ripples","show","container","document","animation","window","performance","hide","diff","delay","isRippleEnabled","rippleShow","element","rippleHide","updateRipple","enabled","binding","passive","removeListeners","directive","unbind","update","wasEnabled","Ripple","bind","ripple","inject","complete","completeIcon","editable","editIcon","errorIcon","rules","step","isInactive","hasError","mounted","stepper","beforeDestroy","genIcon","genStep","genStepContent","breakpointProps","offsetProps","orderProps","col","order","cols","alignSelf","parent","hasColClasses","module","exports","components","options","extendOptions","offIcon","onIcon","isFocused","groupClasses","hasLabel","hasState","isDisabled","isReadonly","computedName","validationState","genInput","for","focused","genRadio","genRipple","onFocus","onBlur","onChange","onKeydown","aspectRatio","computedAspectRatio","aspectStyle","paddingBottom","__cachedSizer","intersect","alt","contain","eager","gradient","lazySrc","root","rootMargin","threshold","position","src","srcset","currentSrc","image","isLoading","calculatedAspectRatio","naturalWidth","normalisedSrc","aspect","hasIntersect","__cachedImage","backgroundImage","backgroundPosition","loadImage","init","lazyImg","onLoad","onError","getSrc","err","pollForSize","timeout","poll","naturalHeight","content","__genPlaceholder","placeholder","appear","node","modifiers","once","VSheet","absolute","extended","extensionHeight","flat","floating","short","tile","isExtended","isNaN","breakingProps","original","replacement","img","genExtension","theme","beforeCreate","Error","wrapper","domProps","stepClick","isVertical","vertical","altLabels","nonLinear","isBooted","steps","isReverse","oldVal","updateView","button","rotate","calculatedSize","circumference","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","viewBoxSize","genCircle","fill","cx","cy","r","genSvg","genInfo","btnToggle","block","depressed","fab","loading","retainFocusOnClick","proxyClass","sizeableClasses","contained","computedRipple","defaultRipple","isFlat","isRound","measurableStyles","genLoader","loader","JSON","isGreater","ctx","onVisible","dirtyTypes","appendOuterIcon","autofocus","clearIcon","counter","counterValue","filled","fullWidth","prependInnerIcon","reverse","shaped","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isClearing","computedCounterValue","get","set","isDirty","lazyValue","toString","isEnclosed","isLabelActive","isSingle","isSolo","labelPosition","labelValue","showLabel","focus","blur","clearableCallback","$refs","genAppendSlot","genSlot","genPrependInnerSlot","genIconSlot","genClearIcon","genCounter","genFieldset","VLabel","genLegend","span","innerHTML","keydown","onKeyDown","ref","genMessages","hideDetails","messagesNode","counterNode","genTextFieldSlot","genAffix","$nextTick","onInput","onMouseDown","onMouseUp","setLabelWidth","scrollWidth","setPrefixWidth","setPrependWidth","updateValue","elevationClasses","inserted","isObject","callback","observer","IntersectionObserver","entries","isIntersecting","entry","observe","Intersect","VStepperHeader","VStepperItems","fluid","paddingTop","paddingRight","footer","paddingLeft","genChildren","map","genMessage","message","appendIcon","hint","persistentHint","prependIcon","hasMouseDown","hasHint","messagesToDisplay","validations","validation","validationResult","showDetails","$options","model","genControl","eventName","cb","mouseup","mousedown","hasMessages","scopedSlots","genPrependSlot","isVerticalProvided","from","current","previous","onTransition","scrollHeight","contentData","args","install","Vue","registerComponents","userPreset","framework","installed","preset","property","service","Service","version"],"mappings":"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","file":"js/chunk-vendors~4a7e9e0b.e88b3574.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 visibility: string | null\n overflow: string | null\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n return {\n beforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n visibility: el.style.visibility,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n enter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle\n const offset = `${el[offsetProperty]}px`\n\n el.style.setProperty('transition', 'none', 'important')\n el.style.visibility = 'hidden'\n el.style.visibility = initialStyle.visibility\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n afterEnter: resetStyles,\n enterCancelled: resetStyles,\n\n leave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n visibility: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n afterLeave,\n leaveCancelled: afterLeave,\n }\n\n function afterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle[sizeProperty]\n el.style.overflow = el._initialStyle.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createSimpleTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n $_vuetify_subcomponents: {\n VCarouselTransition,\n VCarouselReverseTransition,\n VDialogTransition,\n VDialogBottomTransition,\n VFabTransition,\n VFadeTransition,\n VMenuTransition,\n VScaleTransition,\n VScrollXTransition,\n VScrollXReverseTransition,\n VScrollYTransition,\n VScrollYReverseTransition,\n VSlideXTransition,\n VSlideXReverseTransition,\n VSlideYTransition,\n VSlideYReverseTransition,\n VTabReverseTransition,\n VTabTransition,\n VExpandTransition,\n VExpandXTransition,\n },\n}\n","// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n VSheet,\n Toggleable,\n Transitionable\n).extend({\n name: 'v-alert',\n\n props: {\n border: {\n type: String,\n validator (val: string) {\n return [\n 'top',\n 'right',\n 'bottom',\n 'left',\n ].includes(val)\n },\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n coloredBorder: Boolean,\n dense: Boolean,\n dismissible: Boolean,\n icon: {\n default: '',\n type: [Boolean, String],\n validator (val: boolean | string) {\n return typeof val === 'string' || val === false\n },\n },\n outlined: Boolean,\n prominent: Boolean,\n text: Boolean,\n type: {\n type: String,\n validator (val: string) {\n return [\n 'info',\n 'error',\n 'success',\n 'warning',\n ].includes(val)\n },\n },\n value: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n __cachedBorder (): VNode | null {\n if (!this.border) return null\n\n let data: VNodeData = {\n staticClass: 'v-alert__border',\n class: {\n [`v-alert__border--${this.border}`]: true,\n },\n }\n\n if (this.coloredBorder) {\n data = this.setBackgroundColor(this.computedColor, data)\n data.class['v-alert__border--has-color'] = true\n }\n\n return this.$createElement('div', data)\n },\n __cachedDismissible (): VNode | null {\n if (!this.dismissible) return null\n\n const color = this.iconColor\n\n return this.$createElement(VBtn, {\n staticClass: 'v-alert__dismissible',\n props: {\n color,\n icon: true,\n small: true,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: () => (this.isActive = false),\n },\n }, [\n this.$createElement(VIcon, {\n props: { color },\n }, '$cancel'),\n ])\n },\n __cachedIcon (): VNode | null {\n if (!this.computedIcon) return null\n\n return this.$createElement(VIcon, {\n staticClass: 'v-alert__icon',\n props: { color: this.iconColor },\n }, this.computedIcon)\n },\n classes (): object {\n const classes: Record = {\n ...VSheet.options.computed.classes.call(this),\n 'v-alert--border': Boolean(this.border),\n 'v-alert--dense': this.dense,\n 'v-alert--outlined': this.outlined,\n 'v-alert--prominent': this.prominent,\n 'v-alert--text': this.text,\n }\n\n if (this.border) {\n classes[`v-alert--border-${this.border}`] = true\n }\n\n return classes\n },\n computedColor (): string {\n return this.color || this.type\n },\n computedIcon (): string | boolean {\n if (this.icon === false) return false\n if (typeof this.icon === 'string' && this.icon) return this.icon\n if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n return `$${this.type}`\n },\n hasColoredIcon (): boolean {\n return (\n this.hasText ||\n (Boolean(this.border) && this.coloredBorder)\n )\n },\n hasText (): boolean {\n return this.text || this.outlined\n },\n iconColor (): string | undefined {\n return this.hasColoredIcon ? this.computedColor : undefined\n },\n isDark (): boolean {\n if (\n this.type &&\n !this.coloredBorder &&\n !this.outlined\n ) return true\n\n return Themeable.options.computed.isDark.call(this)\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('outline')) {\n breaking('outline', 'outlined', this)\n }\n },\n\n methods: {\n genWrapper (): VNode {\n const children = [\n this.$slots.prepend || this.__cachedIcon,\n this.genContent(),\n this.__cachedBorder,\n this.$slots.append,\n this.$scopedSlots.close\n ? this.$scopedSlots.close({ toggle: this.toggle })\n : this.__cachedDismissible,\n ]\n\n const data: VNodeData = {\n staticClass: 'v-alert__wrapper',\n }\n\n return this.$createElement('div', data, children)\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-alert__content',\n }, this.$slots.default)\n },\n genAlert (): VNode {\n let data: VNodeData = {\n staticClass: 'v-alert',\n attrs: {\n role: 'alert',\n },\n class: this.classes,\n style: this.styles,\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }\n\n if (!this.coloredBorder) {\n const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n data = setColor(this.computedColor, data)\n }\n\n return this.$createElement('div', data, [this.genWrapper()])\n },\n /** @public */\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (h): VNode {\n const render = this.genAlert()\n\n if (!this.transition) return render\n\n return h('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n mode: this.mode,\n },\n }, [render])\n },\n})\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('flex')\n","import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\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 },\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 and svg icon.\n getDefaultData (): VNodeData {\n const hasClickListener = Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n const data: VNodeData = {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !hasClickListener,\n role: hasClickListener ? 'button' : null,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n\n return data\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.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\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 wrapperData.class['v-icon--svg'] = true\n this.applyColors(wrapperData)\n\n const svgData: VNodeData = {\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n height: fontSize || '32',\n width: fontSize || '32',\n role: 'img',\n 'aria-hidden': !this.attrs$['aria-label'],\n 'aria-label': this.attrs$['aria-label'],\n },\n }\n\n return h('span', wrapperData, [\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 = this.getDefaultData()\n data.class['v-icon--is-component'] = true\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: 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(component, data)\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","// Styles\nimport './VRating.sass'\n\n// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Delayable from '../../mixins/delayable'\nimport Sizeable from '../../mixins/sizeable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { createRange } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, VNodeChildren } from 'vue'\n\ntype ItemSlotProps = {\n index: number\n value: number\n isFilled: boolean\n isHalfFilled?: boolean | undefined\n isHovered: boolean\n isHalfHovered?: boolean | undefined\n click: Function\n}\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Delayable,\n Rippleable,\n Sizeable,\n Themeable\n).extend({\n name: 'v-rating',\n\n props: {\n backgroundColor: {\n type: String,\n default: 'accent',\n },\n color: {\n type: String,\n default: 'primary',\n },\n clearable: Boolean,\n dense: Boolean,\n emptyIcon: {\n type: String,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: String,\n default: '$ratingFull',\n },\n halfIcon: {\n type: String,\n default: '$ratingHalf',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n size: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n },\n\n data () {\n return {\n hoverIndex: -1,\n internalValue: this.value,\n }\n },\n\n computed: {\n directives (): VNodeDirective[] {\n if (this.readonly || !this.ripple) return []\n\n return [{\n name: 'ripple',\n value: { circle: true },\n } as VNodeDirective]\n },\n iconProps (): object {\n const {\n dark,\n large,\n light,\n medium,\n small,\n size,\n xLarge,\n xSmall,\n } = this.$props\n\n return {\n dark,\n large,\n light,\n medium,\n size,\n small,\n xLarge,\n xSmall,\n }\n },\n isHovering (): boolean {\n return this.hover && this.hoverIndex >= 0\n },\n },\n\n watch: {\n internalValue (val) {\n val !== this.value && this.$emit('input', val)\n },\n value (val) {\n this.internalValue = val\n },\n },\n\n methods: {\n createClickFn (i: number): Function {\n return (e: MouseEvent) => {\n if (this.readonly) return\n\n const newValue = this.genHoverIndex(e, i)\n if (this.clearable && this.internalValue === newValue) {\n this.internalValue = 0\n } else {\n this.internalValue = newValue\n }\n }\n },\n createProps (i: number): ItemSlotProps {\n const props: ItemSlotProps = {\n index: i,\n value: this.internalValue,\n click: this.createClickFn(i),\n isFilled: Math.floor(this.internalValue) > i,\n isHovered: Math.floor(this.hoverIndex) > i,\n }\n\n if (this.halfIncrements) {\n props.isHalfHovered = !props.isHovered && (this.hoverIndex - i) % 1 > 0\n props.isHalfFilled = !props.isFilled && (this.internalValue - i) % 1 > 0\n }\n\n return props\n },\n genHoverIndex (e: MouseEvent, i: number) {\n let isHalf = this.isHalfEvent(e)\n if (this.$vuetify.rtl) isHalf = !isHalf\n return i + (isHalf ? 0.5 : 1)\n },\n getIconName (props: ItemSlotProps): string {\n const isFull = this.isHovering ? props.isHovered : props.isFilled\n const isHalf = this.isHovering ? props.isHalfHovered : props.isHalfFilled\n\n return isFull ? this.fullIcon : isHalf ? this.halfIcon : this.emptyIcon\n },\n getColor (props: ItemSlotProps): string {\n if (this.isHovering) {\n if (props.isHovered || props.isHalfHovered) return this.color\n } else {\n if (props.isFilled || props.isHalfFilled) return this.color\n }\n\n return this.backgroundColor\n },\n isHalfEvent (e: MouseEvent): boolean {\n if (this.halfIncrements) {\n const rect = e.target && (e.target as HTMLElement).getBoundingClientRect()\n if (rect && (e.pageX - rect.left) < rect.width / 2) return true\n }\n\n return false\n },\n onMouseEnter (e: MouseEvent, i: number): void {\n this.runDelay('open', () => {\n this.hoverIndex = this.genHoverIndex(e, i)\n })\n },\n onMouseLeave (): void {\n this.runDelay('close', () => (this.hoverIndex = -1))\n },\n genItem (i: number): VNode | VNodeChildren | string {\n const props = this.createProps(i)\n\n if (this.$scopedSlots.item) return this.$scopedSlots.item(props)\n\n const listeners: Record = {\n click: props.click,\n }\n\n if (this.hover) {\n listeners.mouseenter = (e: MouseEvent) => this.onMouseEnter(e, i)\n listeners.mouseleave = this.onMouseLeave\n\n if (this.halfIncrements) {\n listeners.mousemove = (e: MouseEvent) => this.onMouseEnter(e, i)\n }\n }\n\n return this.$createElement(VIcon, this.setTextColor(this.getColor(props), {\n directives: this.directives,\n props: this.iconProps,\n on: listeners,\n }), [this.getIconName(props)])\n },\n },\n\n render (h): VNode {\n const children = createRange(Number(this.length)).map(i => this.genItem(i))\n\n return h('div', {\n staticClass: 'v-rating',\n class: {\n 'v-rating--readonly': this.readonly,\n 'v-rating--dense': this.dense,\n },\n }, children)\n },\n})\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","import './VProgressLinear.sass'\n\n// Components\nimport {\n VFadeTransition,\n VSlideXTransition,\n} from '../transitions'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Colorable,\n PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n Proxyable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-progress-linear',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n backgroundColor: {\n type: String,\n default: null,\n },\n backgroundOpacity: {\n type: [Number, String],\n default: null,\n },\n bufferValue: {\n type: [Number, String],\n default: 100,\n },\n color: {\n type: String,\n default: 'primary',\n },\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n query: Boolean,\n rounded: Boolean,\n stream: Boolean,\n striped: Boolean,\n value: {\n type: [Number, String],\n default: 0,\n },\n },\n\n data () {\n return {\n internalLazyValue: this.value || 0,\n }\n },\n\n computed: {\n __cachedBackground (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n staticClass: 'v-progress-linear__background',\n style: this.backgroundStyle,\n }))\n },\n __cachedBar (): VNode {\n return this.$createElement(this.computedTransition, [this.__cachedBarType])\n },\n __cachedBarType (): VNode {\n return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n },\n __cachedBuffer (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__buffer',\n style: this.styles,\n })\n },\n __cachedDeterminate (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: `v-progress-linear__determinate`,\n style: {\n width: convertToUnit(this.normalizedValue, '%'),\n },\n }))\n },\n __cachedIndeterminate (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n 'v-progress-linear__indeterminate--active': this.active,\n },\n }, [\n this.genProgressBar('long'),\n this.genProgressBar('short'),\n ])\n },\n __cachedStream (): VNode | null {\n if (!this.stream) return null\n\n return this.$createElement('div', this.setTextColor(this.color, {\n staticClass: 'v-progress-linear__stream',\n style: {\n width: convertToUnit(100 - this.normalizedBuffer, '%'),\n },\n }))\n },\n backgroundStyle (): object {\n const backgroundOpacity = this.backgroundOpacity == null\n ? (this.backgroundColor ? 1 : 0.3)\n : parseFloat(this.backgroundOpacity)\n\n return {\n opacity: backgroundOpacity,\n [this.$vuetify.rtl ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n width: convertToUnit(this.normalizedBuffer - this.normalizedValue, '%'),\n }\n },\n classes (): object {\n return {\n 'v-progress-linear--absolute': this.absolute,\n 'v-progress-linear--fixed': this.fixed,\n 'v-progress-linear--query': this.query,\n 'v-progress-linear--reactive': this.reactive,\n 'v-progress-linear--rounded': this.rounded,\n 'v-progress-linear--striped': this.striped,\n ...this.themeClasses,\n }\n },\n computedTransition (): FunctionalComponentOptions {\n return this.indeterminate ? VFadeTransition : VSlideXTransition\n },\n normalizedBuffer (): number {\n return this.normalize(this.bufferValue)\n },\n normalizedValue (): number {\n return this.normalize(this.internalLazyValue)\n },\n reactive (): boolean {\n return Boolean(this.$listeners.change)\n },\n styles (): object {\n const styles: Record = {}\n\n if (!this.active) {\n styles.height = 0\n }\n\n if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n styles.width = convertToUnit(this.normalizedBuffer, '%')\n }\n\n return styles\n },\n },\n\n methods: {\n genContent () {\n const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n if (!slot) return null\n\n return this.$createElement('div', {\n staticClass: 'v-progress-linear__content',\n }, slot)\n },\n genListeners () {\n const listeners = this.$listeners\n\n if (this.reactive) {\n listeners.click = this.onClick\n }\n\n return listeners\n },\n genProgressBar (name: 'long' | 'short') {\n return this.$createElement('div', this.setBackgroundColor(this.color, {\n staticClass: 'v-progress-linear__indeterminate',\n class: {\n [name]: true,\n },\n }))\n },\n onClick (e: MouseEvent) {\n if (!this.reactive) return\n\n const { width } = this.$el.getBoundingClientRect()\n\n this.internalValue = e.offsetX / width * 100\n },\n normalize (value: string | number) {\n if (value < 0) return 0\n if (value > 100) return 100\n return parseFloat(value)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-progress-linear',\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': this.normalizedBuffer,\n 'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n },\n class: this.classes,\n style: {\n bottom: this.bottom ? 0 : undefined,\n height: this.active ? convertToUnit(this.height) : 0,\n top: this.top ? 0 : undefined,\n },\n on: this.genListeners(),\n }\n\n return h('div', data, [\n this.__cachedStream,\n this.__cachedBackground,\n this.__cachedBuffer,\n this.__cachedBar,\n this.genContent(),\n ])\n },\n})\n","import 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\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.currentThreshold < this.computedScrollThreshold) return\n\n if (this.hideOnScroll) {\n this.isActive = this.isScrollingUp\n }\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 './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 () {\n // https://github.com/vuetifyjs/vuetify/issues/5352\n this.$nextTick(this.updateItemsState)\n },\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 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.internalLazyValue == null) {\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 updateItemsState () {\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 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","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VRadioGroup.sass'\n\n// Extensions\nimport VInput from '../VInput'\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { PropType } from 'vue'\n\nconst baseMixins = mixins(\n Comparable,\n BaseItemGroup,\n VInput\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-radio-group',\n\n provide () {\n return {\n radioGroup: this,\n }\n },\n\n props: {\n column: {\n type: Boolean,\n default: true,\n },\n height: {\n type: [Number, String],\n default: 'auto',\n },\n name: String,\n row: Boolean,\n // If no value set on VRadio\n // will match valueComparator\n // force default to null\n value: null as unknown as PropType,\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--radio-group': true,\n 'v-input--radio-group--column': this.column && !this.row,\n 'v-input--radio-group--row': this.row,\n }\n },\n },\n\n methods: {\n genDefaultSlot () {\n return this.$createElement('div', {\n staticClass: 'v-input--radio-group__input',\n attrs: {\n id: this.id,\n role: 'radiogroup',\n 'aria-labelledby': this.computedId,\n },\n }, VInput.options.methods.genDefaultSlot.call(this))\n },\n genInputSlot () {\n const render = VInput.options.methods.genInputSlot.call(this)\n\n delete render.data!.on!.click\n\n return render\n },\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return null\n\n label.data!.attrs!.id = this.computedId\n // WAI considers this an orphaned label\n delete label.data!.attrs!.for\n label.tag = 'div'\n\n return label\n },\n onClick: BaseItemGroup.options.methods.onClick,\n },\n})\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n inheritAttrs: false,\n\n props: {\n lazyValidation: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\n },\n})\n","// Styles\nimport './VRipple.sass'\n\nimport { VNode, VNodeDirective } from 'vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction transform (el: HTMLElement, value: string) {\n el.style['transform'] = value\n el.style['webkitTransform'] = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style['opacity'] = value.toString()\n}\n\nexport interface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nfunction isTouchEvent (e: MouseEvent | TouchEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nconst calculate = (e: MouseEvent | TouchEvent, el: HTMLElement, value: RippleOptions = {}) => {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n const localX = target.clientX - offset.left\n const localY = target.clientY - offset.top\n\n let radius = 0\n let scale = 0.3\n if (el._ripple && el._ripple.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (e: MouseEvent | TouchEvent, el: HTMLElement, value: RippleOptions = {}) {\n if (!el._ripple || !el._ripple.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.25)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el || !el._ripple || !el._ripple.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: MouseEvent | TouchEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement\n if (!element || !element._ripple || element._ripple.touched) return\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n value.center = element._ripple.centered\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n ripples.show(e, element, value)\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element) return\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n const enabled = isRippleEnabled(binding.value)\n if (!enabled) {\n ripples.hide(el)\n }\n el._ripple = el._ripple || {}\n el._ripple.enabled = enabled\n const value = binding.value || {}\n if (value.center) {\n el._ripple.centered = true\n }\n if (value.class) {\n el._ripple.class = binding.value.class\n }\n if (value.circle) {\n el._ripple.circle = value.circle\n }\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('dragstart', rippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n updateRipple(el, binding, false)\n\n if (process.env.NODE_ENV === 'development') {\n // warn if an inline element is used, waiting for el to be in the DOM first\n node.context && node.context.$nextTick(() => {\n const computed = window.getComputedStyle(el)\n if (computed && computed.display === 'inline') {\n const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n consoleWarn('v-ripple can only be used on block-level elements', ...context)\n }\n })\n }\n}\n\nfunction unbind (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n bind: directive,\n unbind,\n update,\n}\n\nexport default Ripple\n","// Components\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype VuetifyStepperRuleValidator = () => string | boolean\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('stepper', 'v-stepper-step', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n stepClick: (step: number | string) => void\n}\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-step',\n\n directives: { ripple },\n\n inject: ['stepClick'],\n\n props: {\n color: {\n type: String,\n default: 'primary',\n },\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n errorIcon: {\n type: String,\n default: '$error',\n },\n rules: {\n type: Array as PropType,\n default: () => [],\n },\n step: [Number, String],\n },\n\n data () {\n return {\n isActive: false,\n isInactive: true,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper__step--active': this.isActive,\n 'v-stepper__step--editable': this.editable,\n 'v-stepper__step--inactive': this.isInactive,\n 'v-stepper__step--error error--text': this.hasError,\n 'v-stepper__step--complete': this.complete,\n }\n },\n hasError (): boolean {\n return this.rules.some(validate => validate() !== true)\n },\n },\n\n mounted () {\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n click (e: MouseEvent) {\n e.stopPropagation()\n\n this.$emit('click', e)\n\n if (this.editable) {\n this.stepClick(this.step)\n }\n },\n genIcon (icon: string) {\n return this.$createElement(VIcon, icon)\n },\n genLabel () {\n return this.$createElement('div', {\n staticClass: 'v-stepper__label',\n }, this.$slots.default)\n },\n genStep () {\n const color = (!this.hasError && (this.complete || this.isActive)) ? this.color : false\n\n return this.$createElement('span', this.setBackgroundColor(color, {\n staticClass: 'v-stepper__step__step',\n }), this.genStepContent())\n },\n genStepContent () {\n const children = []\n\n if (this.hasError) {\n children.push(this.genIcon(this.errorIcon))\n } else if (this.complete) {\n if (this.editable) {\n children.push(this.genIcon(this.editIcon))\n } else {\n children.push(this.genIcon(this.completeIcon))\n }\n } else {\n children.push(String(this.step))\n }\n\n return children\n },\n toggle (step: number | string) {\n this.isActive = step.toString() === this.step.toString()\n this.isInactive = Number(step) < Number(this.step)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-stepper__step',\n class: this.classes,\n directives: [{\n name: 'ripple',\n value: this.editable,\n }],\n on: { click: this.click },\n }, [\n this.genStep(),\n this.genLabel(),\n ])\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\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","// Styles\nimport './VRadio.sass'\n\n// Components\nimport VRadioGroup from './VRadioGroup'\nimport VLabel from '../VLabel'\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Rippleable from '../../mixins/rippleable'\nimport Themeable from '../../mixins/themeable'\nimport Selectable from '../../mixins/selectable'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Colorable,\n Rippleable,\n GroupableFactory('radioGroup'),\n Themeable\n)\n\ninterface options extends InstanceType {\n radioGroup: InstanceType\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-radio',\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n id: String,\n label: String,\n name: String,\n offIcon: {\n type: String,\n default: '$radioOff',\n },\n onIcon: {\n type: String,\n default: '$radioOn',\n },\n readonly: Boolean,\n value: {\n default: null,\n },\n },\n\n data: () => ({\n isFocused: false,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-radio--is-disabled': this.isDisabled,\n 'v-radio--is-focused': this.isFocused,\n ...this.themeClasses,\n ...this.groupClasses,\n }\n },\n computedColor (): string | undefined {\n return Selectable.options.computed.computedColor.call(this)\n },\n computedIcon (): string {\n return this.isActive\n ? this.onIcon\n : this.offIcon\n },\n computedId (): string {\n return VInput.options.computed.computedId.call(this)\n },\n hasLabel: VInput.options.computed.hasLabel,\n hasState (): boolean {\n return (this.radioGroup || {}).hasState\n },\n isDisabled (): boolean {\n return this.disabled || !!(this.radioGroup || {}).disabled\n },\n isReadonly (): boolean {\n return this.readonly || !!(this.radioGroup || {}).readonly\n },\n computedName (): string {\n if (this.name || !this.radioGroup) {\n return this.name\n }\n\n return this.radioGroup.name || `radio-${this.radioGroup._uid}`\n },\n validationState (): string | undefined {\n return (this.radioGroup || {}).validationState || this.computedColor\n },\n },\n\n methods: {\n genInput (args: any) {\n // We can't actually use the mixin directly because\n // it's made for standalone components, but its\n // genInput method is exactly what we need\n return Selectable.options.methods.genInput.call(this, 'radio', args)\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n on: {\n click: (e: Event) => {\n // Prevent label from\n // causing the input\n // to focus\n e.preventDefault()\n\n this.onChange()\n },\n },\n attrs: {\n for: this.computedId,\n },\n props: {\n color: this.validationState,\n focused: this.hasState,\n },\n }, getSlot(this, 'label') || this.label)\n },\n genRadio () {\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput({\n name: this.computedName,\n value: this.value,\n ...this.attrs$,\n }),\n this.genRipple(this.setTextColor(this.validationState)),\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.radioGroup && this.radioGroup.dense,\n },\n }), this.computedIcon),\n ])\n },\n onFocus (e: Event) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: Event) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n onChange () {\n if (this.isDisabled || this.isReadonly || this.isActive) return\n\n this.toggle()\n },\n onKeydown: () => {}, // Override default with noop\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-radio',\n class: this.classes,\n } as VNodeData\n\n return h('div', data, [\n this.genRadio(),\n this.genLabel(),\n ])\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// Utils\nimport { consoleError, 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\n/* @vue/component */\nexport default VResponsive.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 },\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 }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n hasIntersect () {\n return (\n typeof window !== 'undefined' &&\n 'IntersectionObserver' in window\n )\n },\n normalisedSrc (): srcObject {\n return typeof this.src === 'string'\n ? {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\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 },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc)) 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 this.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 consoleError(\n `Image load failed\\n\\n` +\n `src: ${this.normalisedSrc.src}`,\n this\n )\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 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 && 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 node.data!.staticClass += ' v-image'\n\n // Only load intersect directive if it\n // will work in the current browser.\n node.data!.directives = this.hasIntersect ? [{\n name: 'intersect',\n options: this.options,\n modifiers: { once: true },\n value: this.init,\n } as any] : []\n\n node.data!.attrs = {\n role: this.alt ? 'img' : undefined,\n 'aria-label': this.alt,\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, node.data, node.children)\n },\n})\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n name: 'v-toolbar',\n\n props: {\n absolute: Boolean,\n bottom: Boolean,\n collapse: Boolean,\n dense: Boolean,\n extended: Boolean,\n extensionHeight: {\n default: 48,\n type: [Number, String],\n },\n flat: Boolean,\n floating: Boolean,\n prominent: Boolean,\n short: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n tag: {\n type: String,\n default: 'header',\n },\n tile: {\n type: Boolean,\n default: true,\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","// Styles\nimport './VStepper.sass'\n\n// Components\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\n// Mixins\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n RegistrableProvide('stepper'),\n Proxyable,\n Themeable\n)\n\ntype VStepperStepInstance = InstanceType\ntype VStepperContentInstance = InstanceType\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-stepper',\n\n provide (): object {\n return {\n stepClick: this.stepClick,\n isVertical: this.vertical,\n }\n },\n\n props: {\n altLabels: Boolean,\n nonLinear: Boolean,\n vertical: Boolean,\n },\n\n data () {\n return {\n isBooted: false,\n steps: [] as VStepperStepInstance[],\n content: [] as VStepperContentInstance[],\n isReverse: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper--is-booted': this.isBooted,\n 'v-stepper--vertical': this.vertical,\n 'v-stepper--alt-labels': this.altLabels,\n 'v-stepper--non-linear': this.nonLinear,\n ...this.themeClasses,\n }\n },\n },\n\n watch: {\n internalValue (val, oldVal) {\n this.isReverse = Number(val) < Number(oldVal)\n\n oldVal && (this.isBooted = true)\n\n this.updateView()\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$listeners.input) {\n breaking('@input', '@change', this)\n }\n },\n\n mounted () {\n this.internalLazyValue = this.value || (this.steps[0] || {}).step || 1\n this.updateView()\n },\n\n methods: {\n register (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps.push(item as VStepperStepInstance)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content.push(item as VStepperContentInstance)\n }\n },\n unregister (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps = this.steps.filter((i: VStepperStepInstance) => i !== item)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content = this.content.filter((i: VStepperContentInstance) => i !== item)\n }\n },\n stepClick (step: string | number) {\n this.$nextTick(() => (this.internalValue = step))\n },\n updateView () {\n for (let index = this.steps.length; --index >= 0;) {\n this.steps[index].toggle(this.internalValue as any)\n }\n for (let index = this.content.length; --index >= 0;) {\n this.content[index].toggle(this.internalValue as any, this.isReverse)\n }\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-stepper',\n class: this.classes,\n }, this.$slots.default)\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","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\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 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 != null ? 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 !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'\n\n// Directives\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 'setLabelWidth',\n 'setPrefixWidth',\n 'setPrependWidth',\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: { ripple },\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 computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return (this.internalValue || '').toString().length\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 != null &&\n this.lazyValue.toString().length > 0) ||\n this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined ||\n this.fullWidth\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',\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 this.autofocus && this.onFocus()\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\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 icon = this.isDirty ? 'clear' : ''\n\n return this.genSlot('append', 'inner', [\n this.genIcon(\n icon,\n this.clearableCallback\n ),\n ])\n },\n genCounter () {\n if (this.counter === false || this.counter == null) 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 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.disabled,\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.lazyValue,\n },\n attrs: {\n ...this.attrs$,\n autofocus: this.autofocus,\n disabled: this.disabled,\n id: this.computedId,\n placeholder: this.placeholder,\n readonly: this.readonly,\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 })\n },\n genMessages () {\n if (this.hideDetails === true) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n if (this.hideDetails === 'auto' && !messagesNode && !counterNode) return null\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.disabled || !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 || !this.$refs.label) return\n\n this.labelWidth = Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\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 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 },\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 Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n Colorable,\n Elevatable,\n Measurable,\n Themeable\n).extend({\n name: 'v-sheet',\n\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n tile: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-sheet': true,\n 'v-sheet--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n styles (): object {\n return this.measurableStyles\n },\n },\n\n render (h): VNode {\n const data = {\n class: this.classes,\n style: this.styles,\n on: this.listeners$,\n }\n\n return h(\n this.tag,\n this.setBackgroundColor(this.color, data),\n this.$slots.default\n )\n },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\n\ninterface ObserveVNodeDirective extends VNodeDirective {\n options?: IntersectionObserverInit\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n const modifiers = binding.modifiers || /* istanbul ignore next */ {}\n const value = binding.value\n const isObject = typeof value === 'object'\n const callback = isObject ? value.handler : value\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n callback && (\n !modifiers.quiet ||\n el._observe.init\n )\n ) {\n const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting))\n\n callback(entries, observer, isIntersecting)\n }\n\n // If has already been initted and\n // has the once modifier, unbind\n if (el._observe.init && modifiers.once) unbind(el)\n // Otherwise, mark the observer as initted\n else (el._observe.init = true)\n }, value.options || {})\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect = {\n inserted,\n unbind,\n}\n\nexport default Intersect\n","import { createSimpleFunctional } from '../../util/helpers'\nimport VStepper from './VStepper'\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\nconst VStepperHeader = createSimpleFunctional('v-stepper__header')\nconst VStepperItems = createSimpleFunctional('v-stepper__items')\n\nexport {\n VStepper,\n VStepperContent,\n VStepperStep,\n VStepperHeader,\n VStepperItems,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VStepper,\n VStepperContent,\n VStepperStep,\n VStepperHeader,\n VStepperItems,\n },\n}\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n","import './_grid.sass'\n\nimport Grid from './grid'\n\nexport default Grid('layout')\n","// Styles\nimport './VContent.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-content',\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-content',\n style: this.styles,\n ref: 'content',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-content__wrap' },\n this.$slots.default\n ),\n ])\n },\n})\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\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, PropType } from 'vue'\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 as PropType,\n default: () => ([]),\n },\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'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from '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.disabled,\n 'v-input--is-focused': this.isFocused,\n 'v-input--is-loading': this.loading !== false && this.loading !== undefined,\n 'v-input--is-readonly': this.readonly,\n 'v-input--dense': this.dense,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\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 isDisabled (): boolean {\n return this.disabled || this.readonly\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.messagesToDisplay.length > 0)\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 ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n\n const data: VNodeData = {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.disabled,\n light: this.light,\n },\n on: !(this.listeners$[eventName] || cb)\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 }\n\n return this.$createElement('div', {\n staticClass: `v-input__icon v-input__icon--${kebabCase(type)}`,\n key: type + icon,\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 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","// Components\nimport {\n VTabTransition,\n VTabReverseTransition,\n} from '../transitions'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, FunctionalComponentOptions, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n RegistrableInject('stepper', 'v-stepper-content', 'v-stepper')\n)\n\ninterface options extends InstanceType {\n $refs: {\n wrapper: HTMLElement\n }\n isVerticalProvided: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-stepper-content',\n\n inject: {\n isVerticalProvided: {\n from: 'isVertical',\n },\n },\n\n props: {\n step: {\n type: [Number, String],\n required: true,\n },\n },\n\n data () {\n return {\n height: 0 as number | string,\n // Must be null to allow\n // previous comparison\n isActive: null as boolean | null,\n isReverse: false,\n isVertical: this.isVerticalProvided,\n }\n },\n\n computed: {\n computedTransition (): FunctionalComponentOptions {\n // Fix for #8978\n const reverse = this.$vuetify.rtl ? !this.isReverse : this.isReverse\n\n return reverse\n ? VTabReverseTransition\n : VTabTransition\n },\n styles (): object {\n if (!this.isVertical) return {}\n\n return {\n height: convertToUnit(this.height),\n }\n },\n },\n\n watch: {\n isActive (current, previous) {\n // If active and the previous state\n // was null, is just booting up\n if (current && previous == null) {\n this.height = 'auto'\n return\n }\n\n if (!this.isVertical) return\n\n if (this.isActive) this.enter()\n else this.leave()\n },\n },\n\n mounted () {\n this.$refs.wrapper.addEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.register(this)\n },\n\n beforeDestroy () {\n this.$refs.wrapper.removeEventListener(\n 'transitionend',\n this.onTransition,\n false\n )\n this.stepper && this.stepper.unregister(this)\n },\n\n methods: {\n onTransition (e: TransitionEvent) {\n if (!this.isActive ||\n e.propertyName !== 'height'\n ) return\n\n this.height = 'auto'\n },\n enter () {\n let scrollHeight = 0\n\n // Render bug with height\n requestAnimationFrame(() => {\n scrollHeight = this.$refs.wrapper.scrollHeight\n })\n\n this.height = 0\n\n // Give the collapsing element time to collapse\n setTimeout(() => this.isActive && (this.height = (scrollHeight || 'auto')), 450)\n },\n leave () {\n this.height = this.$refs.wrapper.clientHeight\n setTimeout(() => (this.height = 0), 10)\n },\n toggle (step: string | number, reverse: boolean) {\n this.isActive = step.toString() === this.step.toString()\n this.isReverse = reverse\n },\n },\n\n render (h): VNode {\n const contentData = {\n staticClass: 'v-stepper__content',\n } as VNodeData\n const wrapperData = {\n staticClass: 'v-stepper__wrapper',\n style: this.styles,\n ref: 'wrapper',\n }\n\n if (!this.isVertical) {\n contentData.directives = [{\n name: 'show',\n value: this.isActive,\n }]\n }\n\n const wrapper = h('div', wrapperData, [this.$slots.default])\n const content = h('div', contentData, [wrapper])\n\n return h(this.computedTransition, {\n on: this.$listeners,\n }, [content])\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import OurVue, { VueConstructor } from 'vue'\nimport { VuetifyUseOptions } from 'types'\nimport { consoleError } from './util/console'\n\nexport function install (Vue: VueConstructor, args: VuetifyUseOptions = {}) {\n if ((install as any).installed) return\n (install as any).installed = true\n\n if (OurVue !== Vue) {\n consoleError('Multiple instances of Vue detected\\nSee https://github.com/vuetifyjs/vuetify/issues/4068\\n\\nIf you\\'re seeing \"$attrs is readonly\", it\\'s caused by this')\n }\n\n const components = args.components || {}\n const directives = args.directives || {}\n\n for (const name in directives) {\n const directive = directives[name]\n\n Vue.directive(name, directive)\n }\n\n (function registerComponents (components: any) {\n if (components) {\n for (const key in components) {\n const component = components[key]\n if (component && !registerComponents(component.$_vuetify_subcomponents)) {\n Vue.component(key, component as typeof Vue)\n }\n }\n return true\n }\n return false\n })(components)\n\n // Used to avoid multiple mixins being setup\n // when in dev mode and hot module reload\n // https://github.com/vuejs/vue/issues/5089#issuecomment-284260111\n if (Vue.$_vuetify_installed) return\n Vue.$_vuetify_installed = true\n\n Vue.mixin({\n beforeCreate () {\n const options = this.$options as any\n\n if (options.vuetify) {\n options.vuetify.init(this, options.ssrContext)\n this.$vuetify = Vue.observable(options.vuetify.framework)\n } else {\n this.$vuetify = (options.parent && options.parent.$vuetify) || this\n }\n },\n })\n}\n","import { install } from './install'\n\n// Types\nimport Vue from 'vue'\nimport {\n UserVuetifyPreset,\n VuetifyPreset,\n} from 'vuetify/types/services/presets'\nimport {\n VuetifyService,\n VuetifyServiceContract,\n} from 'vuetify/types/services'\n\n// Services\nimport * as services from './services'\n\nexport default class Vuetify {\n static install = install\n\n static installed = false\n\n static version = __VUETIFY_VERSION__\n\n public framework: Dictionary = {}\n\n public installed: string[] = []\n\n public preset = {} as VuetifyPreset\n\n public userPreset: UserVuetifyPreset = {}\n\n constructor (userPreset: UserVuetifyPreset = {}) {\n this.userPreset = userPreset\n\n this.use(services.Presets)\n this.use(services.Application)\n this.use(services.Breakpoint)\n this.use(services.Goto)\n this.use(services.Icons)\n this.use(services.Lang)\n this.use(services.Theme)\n }\n\n // Called on the new vuetify instance\n // bootstrap in install beforeCreate\n // Exposes ssrContext if available\n init (root: Vue, ssrContext?: object) {\n this.installed.forEach(property => {\n const service = this.framework[property]\n\n service.framework = this.framework\n\n service.init(root, ssrContext)\n })\n\n // rtl is not installed and\n // will never be called by\n // the init process\n this.framework.rtl = Boolean(this.preset.rtl) as any\n }\n\n // Instantiate a VuetifyService\n use (Service: VuetifyService) {\n const property = Service.property\n\n if (this.installed.includes(property)) return\n\n // TODO maybe a specific type for arg 2?\n this.framework[property] = new Service(this.preset, this as any)\n this.installed.push(property)\n }\n}\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions } from 'vue'\n\ninterface ScrollVNodeDirective extends VNodeDirective {\n arg: string\n value: EventListenerOrEventListenerObject\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ScrollVNodeDirective) {\n const callback = binding.value\n const options = binding.options || { passive: true }\n const target = binding.arg ? document.querySelector(binding.arg) : window\n if (!target) return\n\n target.addEventListener('scroll', callback, options)\n\n el._onScroll = {\n callback,\n options,\n target,\n }\n}\n\nfunction unbind (el: HTMLElement) {\n if (!el._onScroll) return\n\n const { callback, options, target } = el._onScroll\n\n target.removeEventListener('scroll', callback, options)\n delete el._onScroll\n}\n\nexport const Scroll = {\n inserted,\n unbind,\n} as DirectiveOptions\n\nexport default Scroll\n"],"sourceRoot":""}