{"version":3,"sources":["webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VLabel/VLabel.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VLabel/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VItemGroup/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VPagination/VPagination.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VIcon/VIcon.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VList/VList.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VIcon/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VItemGroup/VItemGroup.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VMenu/VMenu.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VMenu/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VPicker/VPicker.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VPicker/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VList/VListItem.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VList/VListItemAction.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VMessages/VMessages.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VMessages/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VImg/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VOverflowBtn/VOverflowBtn.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VOverlay/VOverlay.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VOverlay/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VMain/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VMain/VMain.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VLazy/VLazy.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VList/VListItemIcon.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VList/VListGroup.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VList/VListItemGroup.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VList/VListItemAvatar.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VList/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VParallax/VParallax.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VInput/VInput.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VInput/index.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VOtpInput/VOtpInput.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VItemGroup/VItem.ts","webpack:///./node_modules/@gr/authentication/node_modules/vuetify/src/components/VImg/VImg.ts"],"names":["mixins","Themeable","extend","name","functional","props","absolute","Boolean","color","type","String","default","disabled","focused","for","left","Number","right","value","render","h","ctx","children","listeners","data","staticClass","class","functionalThemeClasses","attrs","on","style","convertToUnit","position","ref","Colorable","options","methods","setTextColor","VLabel","VItem","VItemGroup","Intersectable","onVisible","directives","Resize","circle","length","validator","val","nextIcon","prevIcon","totalVisible","pageAriaLabel","currentPageAriaLabel","previousAriaLabel","nextAriaLabel","wrapperAriaLabel","maxButtons","selected","computed","classes","this","themeClasses","items","parseInt","maxLength","Math","min","max","range","even","floor","firstItem","lastItem","start","end","secondItem","beforeLastItem","watch","init","mounted","$nextTick","onResize","setTimeout","width","$el","parentElement","clientWidth","window","innerWidth","next","e","preventDefault","$emit","previous","from","to","i","push","genIcon","icon","fn","label","click","VIcon","genItem","isCurrentPage","ariaLabel","setBackgroundColor","$vuetify","lang","t","toString","genItems","map","index","key","isNaN","genList","modifiers","quiet","rtl","role","SIZE_MAP","isFontAwesome5","iconType","some","includes","isSvgPath","test","BindsAttrs","Sizeable","dense","size","tag","required","medium","hasClickListener","listeners$","getIcon","iconName","$slots","text","trim","remapInternalIcon","getSize","sizes","xSmall","small","large","xLarge","explicitSize","keys","find","getDefaultData","undefined","attrs$","getSvgWrapperData","fontSize","wrapperData","height","applyColors","renderFontIcon","newChildren","delimiterIndex","indexOf","isMaterialIcon","slice","renderSvgIcon","svgData","xmlns","viewBox","d","renderSvgIconComponent","component","nativeOn","Vue","$_wrapperFor","domProps","textContent","innerHTML","VSheet","provide","isInList","list","inject","isInMenu","isInNav","expand","flat","nav","rounded","subheader","threeLine","twoLine","groups","call","register","content","unregister","findIndex","g","_uid","splice","listClick","uid","group","toggle","styles","baseMixins","Applicationable","Dependent","Mobile","Overlayable","SSRBootable","ClickOutside","Touch","bottom","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","app","miniVariant","miniVariantWidth","permanent","src","Object","stateless","temporary","touchless","isMouseover","touchArea","stackMinZIndex","applicationProperty","isActive","fixed","isMobile","isMiniVariant","computedMaxHeight","hasApp","application","footer","bar","top","computedTop","computedTransform","isBottom","computedWidth","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","hideOverlay","translate","maxHeight","transform","$route","prev","removeOverlay","genOverlay","updateMiniVariant","beforeMount","calculateTouchArea","parent","parentNode","parentRect","getBoundingClientRect","closeConditional","_isDestroyed","genAppend","genPosition","genBackground","image","$scopedSlots","img","$createElement","VImg","genDirectives","handler","include","getOpenDependentElements","swipeLeft","swipeRight","genListeners","mouseenter","mouseleave","transitionend","target","currentTarget","resizeEvent","document","createEvent","initUIEvent","dispatchEvent","slot","getSlot","genPrepend","genContent","genBorder","onRouteChange","abs","touchendX","touchstartX","updateApplication","unshift","BaseItemGroup","Comparable","Proxyable","activeClass","mandatory","multiple","internalLazyValue","selectedIndex","selectedItem","selectedItems","filter","item","toggleMethod","getValue","selectedValues","internalValue","Array","isArray","v","valueComparator","intern","created","consoleWarn","genData","onClick","updateInternalValue","$on","updateMandatory","updateItem","valueIndex","updateItemsState","forEach","updateMultiple","updateSingle","last","reverse","defaultValue","isSame","itemGroup","Delayable","Menuable","Returnable","Roundable","Toggleable","theme","auto","closeOnClick","closeOnContentClick","disableKeys","offsetX","offsetY","openOnHover","origin","transition","calculatedTopAuto","defaultOffset","hasJustFocused","listIndex","resizeTimeout","tiles","activeTile","calculatedLeft","menuWidth","dimensions","parseFloat","calculatedMinWidth","calcXOverflow","calcLeftAuto","calcLeft","calculatedMaxHeight","calculatedMaxWidth","maxWidth","minWidth","activator","nudgeWidth","pageWidth","calculatedTop","calcYOverflow","calcTop","hasClickableTiles","tile","tabIndex","transformOrigin","zIndex","activeZIndex","isContentActive","classList","add","scrollTop","$refs","contentHeight","clientHeight","offsetTop","goTo","appOffset","duration","container","remove","$attrs","hasOwnProperty","removed","callActivate","activate","updateDimensions","requestAnimationFrame","startTransition","then","calcTopAuto","calcScrollPosition","querySelector","maxScrollTop","scrollHeight","offsetHeight","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","getTiles","keyCode","keyCodes","tab","down","nextTile","up","prevTile","lastTile","home","firstTile","enter","contains","genActivatorAttributes","attributes","Activatable","id","genActivatorListeners","keydown","onKeyDown","genTransition","getScopeIdAttrs","rootThemeClasses","roundedClasses","activatorFixed","menuable__content__active","contentClass","getAttribute","$listeners","scroll","mouseEnterHandler","mouseLeaveHandler","getContentSlot","querySelectorAll","runDelay","relatedTarget","callDeactivate","esc","getActivator","focus","offsetWidth","clearTimeout","attach","arg","genActivator","showLazyContent","VThemeProvider","root","light","dark","VMenu","Elevatable","fullWidth","landscape","noTitle","computedTitleColor","defaultTitleColor","isDark","genTitle","title","genBodyTransition","genBody","genActions","actions","elevationClasses","VPicker","Routable","GroupableFactory","ToggleableFactory","Ripple","isInGroup","inheritAttrs","listItemGroup","inactive","link","selectable","proxyClass","isClickable","detail","blur","genAttrs","tabindex","inputValue","generateRouteLink","active","filteredChild","VNode","isComment","genChildren","genMessage","message","VMessages","VAutocomplete","editable","segmented","isAnyValueAllowed","isSingle","computedItems","allItems","filteredItems","genSelections","VSelect","genCommaSelection","genSegmentedBtn","genInput","input","VTextField","internalSearch","readonly","genLabel","isFocused","itemValue","itemObj","callback","VBtn","stopPropagation","updateValue","initialValue","lazyValue","opacity","__scrim","computedOpacity","VOverlay","VMain","insetFooter","paddingTop","paddingRight","paddingBottom","paddingLeft","Measurable","intersect","rootMargin","threshold","measurableStyles","onObserve","entries","observer","isIntersecting","Bootable","RegistrableInject","ripple","appendIcon","RegExp","noAction","prependIcon","subGroup","matchRoute","path","beforeDestroy","isBooted","genAppendIcon","VListItemIcon","genHeader","VListItem","genPrependIcon","match","VExpandTransition","VAvatar","horizontal","VListItemActionText","createSimpleFunctional","VListItemContent","VListItemTitle","VListItemSubtitle","$_vuetify_subcomponents","VList","VListGroup","VListItemAction","VListItemAvatar","VListItemGroup","Translatable","alt","srcset","display","parallax","complete","addEventListener","objHeight","naturalHeight","imgData","Validatable","backgroundColor","hideDetails","hideSpinButtons","hint","loading","persistentHint","hasMouseDown","hasState","showDetails","isLabelActive","isDirty","isDisabled","isReadonly","computedId","hasDetails","messagesToDisplay","hasHint","hasMessages","hasLabel","get","set","$_modelEvent","validations","validation","validationResult","beforeCreate","$options","model","event","genPrependSlot","genControl","genAppendSlot","genInputSlot","genMessages","genDefaultSlot","cb","extraData","eventName","kebabCase","hasListener","mergeData","split","validationState","mouseup","mousedown","onMouseDown","onMouseUp","scopedSlots","genSlot","location","prepend","append","VInput","plain","badInput","otp","outlined","breaking","otpIdx","onFocus","genFieldset","genTextFieldSlot","_","genLegend","span","assign","change","maxlength","onBlur","onInput","paste","onPaste","keyup","onKeyUp","refInFor","elements","activeElement","select","applyValue","join","validity","nextIndex","changeFocus","clearFocus","onCompleted","maxCursor","inputVal","clipboardData","_event$clipboardData","getData","inputDataArray","newOtp","appIdx","targetFocus","hasColor","eventKey","rsp","BaseItem","element","_b","hasIntersect","VResponsive","contain","eager","gradient","lazySrc","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","hasError","computedAspectRatio","normalisedSrc","aspect","aspectRatio","__cachedImage","backgroundImage","backgroundPosition","mode","loadImage","lazyImg","Image","pollForSize","onLoad","getSrc","endsWith","startsWith","onError","onload","decode","catch","err","onerror","timeout","poll","__genPlaceholder","placeholder","appear","node","once","__cachedSizer"],"mappings":"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","file":"js/gr-authentication~f34cb587.c3f7fcad.js","sourcesContent":["// 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","import VItem from './VItem'\nimport VItemGroup from './VItemGroup'\n\nexport {\n VItem,\n VItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VItem,\n VItemGroup,\n },\n}\n","import './VPagination.sass'\n\nimport VIcon from '../VIcon'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Intersectable from '../../mixins/intersectable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, CreateElement, VNodeChildrenArrayContents } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Intersectable({ onVisible: ['init'] }),\n Themeable\n).extend({\n name: 'v-pagination',\n\n directives: { Resize },\n\n props: {\n circle: Boolean,\n disabled: Boolean,\n length: {\n type: Number,\n default: 0,\n validator: (val: number) => val % 1 === 0,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n totalVisible: [Number, String],\n value: {\n type: Number,\n default: 0,\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n wrapperAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.wrapper',\n },\n },\n\n data () {\n return {\n maxButtons: 0,\n selected: null as number | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-pagination': true,\n 'v-pagination--circle': this.circle,\n 'v-pagination--disabled': this.disabled,\n ...this.themeClasses,\n }\n },\n\n items (): (string | number)[] {\n const totalVisible = parseInt(this.totalVisible, 10)\n\n if (totalVisible === 0) {\n return []\n }\n\n const maxLength = Math.min(\n Math.max(0, totalVisible) || this.length,\n Math.max(0, this.maxButtons) || this.length,\n this.length\n )\n\n if (this.length <= maxLength) {\n return this.range(1, this.length)\n }\n\n const even = maxLength % 2 === 0 ? 1 : 0\n const left = Math.floor(maxLength / 2)\n const right = this.length - left + 1 + even\n\n if (this.value > left && this.value < right) {\n const firstItem = 1\n const lastItem = this.length\n const start = this.value - left + 2\n const end = this.value + left - 2 - even\n const secondItem = start - 1 === firstItem + 1 ? 2 : '...'\n const beforeLastItem = end + 1 === lastItem - 1 ? end + 1 : '...'\n\n return [1, secondItem, ...this.range(start, end), beforeLastItem, this.length]\n } else if (this.value === left) {\n const end = this.value + left - 1 - even\n return [...this.range(1, end), '...', this.length]\n } else if (this.value === right) {\n const start = this.value - left + 1\n return [1, '...', ...this.range(start, this.length)]\n } else {\n return [\n ...this.range(1, left),\n '...',\n ...this.range(right, this.length),\n ]\n }\n },\n },\n\n watch: {\n value () {\n this.init()\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n this.selected = null\n\n this.$nextTick(this.onResize)\n // TODO: Change this (f75dee3a, cbdf7caa)\n setTimeout(() => (this.selected = this.value), 100)\n },\n onResize () {\n const width = this.$el && this.$el.parentElement\n ? this.$el.parentElement.clientWidth\n : window.innerWidth\n\n this.maxButtons = Math.floor((width - 96) / 42)\n },\n next (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value + 1)\n this.$emit('next')\n },\n previous (e: Event) {\n e.preventDefault()\n this.$emit('input', this.value - 1)\n this.$emit('previous')\n },\n range (from: number, to: number) {\n const range = []\n\n from = from > 0 ? from : 1\n\n for (let i = from; i <= to; i++) {\n range.push(i)\n }\n\n return range\n },\n genIcon (h: CreateElement, icon: string, disabled: boolean, fn: EventListener, label: String): VNode {\n return h('li', [\n h('button', {\n staticClass: 'v-pagination__navigation',\n class: {\n 'v-pagination__navigation--disabled': disabled,\n },\n attrs: {\n disabled,\n type: 'button',\n 'aria-label': label,\n },\n on: disabled ? {} : { click: fn },\n }, [h(VIcon, [icon])]),\n ])\n },\n genItem (h: CreateElement, i: string | number): VNode {\n const color: string | false = (i === this.value) && (this.color || 'primary')\n const isCurrentPage = i === this.value\n const ariaLabel = isCurrentPage ? this.currentPageAriaLabel : this.pageAriaLabel\n\n return h('button', this.setBackgroundColor(color, {\n staticClass: 'v-pagination__item',\n class: {\n 'v-pagination__item--active': i === this.value,\n },\n attrs: {\n type: 'button',\n 'aria-current': isCurrentPage,\n 'aria-label': this.$vuetify.lang.t(ariaLabel, i),\n },\n on: {\n click: () => this.$emit('input', i),\n },\n }), [i.toString()])\n },\n genItems (h: CreateElement): VNode[] {\n return this.items.map((i, index) => {\n return h('li', { key: index }, [\n isNaN(Number(i)) ? h('span', { class: 'v-pagination__more' }, [i.toString()]) : this.genItem(h, i),\n ])\n })\n },\n genList (h: CreateElement, children: VNodeChildrenArrayContents): VNode {\n return h('ul', {\n directives: [{\n modifiers: { quiet: true },\n name: 'resize',\n value: this.onResize,\n }],\n class: this.classes,\n }, children)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genIcon(h,\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon,\n this.value <= 1,\n this.previous,\n this.$vuetify.lang.t(this.previousAriaLabel)),\n this.genItems(h),\n this.genIcon(h,\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon,\n this.value >= this.length,\n this.next,\n this.$vuetify.lang.t(this.nextAriaLabel)),\n ]\n\n return h('nav', {\n attrs: {\n role: 'navigation',\n 'aria-label': this.$vuetify.lang.t(this.wrapperAriaLabel),\n },\n }, [this.genList(h, children)])\n },\n})\n","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', 'fak'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n BindsAttrs,\n Colorable,\n Sizeable,\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-icon',\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n size: [Number, String],\n tag: {\n type: String,\n required: false,\n default: 'i',\n },\n },\n\n computed: {\n medium () {\n return false\n },\n hasClickListener (): boolean {\n return Boolean(\n this.listeners$.click || this.listeners$['!click']\n )\n },\n },\n\n methods: {\n getIcon (): VuetifyIcon {\n let iconName = ''\n if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n return remapInternalIcon(this, iconName)\n },\n getSize (): string | undefined {\n const sizes = {\n xSmall: this.xSmall,\n small: this.small,\n medium: this.medium,\n large: this.large,\n xLarge: this.xLarge,\n }\n\n const explicitSize = keys(sizes).find(key => sizes[key])\n\n return (\n (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n )\n },\n // Component data for both font icon and SVG wrapper span\n getDefaultData (): VNodeData {\n return {\n staticClass: 'v-icon notranslate',\n class: {\n 'v-icon--disabled': this.disabled,\n 'v-icon--left': this.left,\n 'v-icon--link': this.hasClickListener,\n 'v-icon--right': this.right,\n 'v-icon--dense': this.dense,\n },\n attrs: {\n 'aria-hidden': !this.hasClickListener,\n disabled: this.hasClickListener && this.disabled,\n type: this.hasClickListener ? 'button' : undefined,\n ...this.attrs$,\n },\n on: this.listeners$,\n }\n },\n getSvgWrapperData () {\n const fontSize = this.getSize()\n const wrapperData = {\n ...this.getDefaultData(),\n style: fontSize ? {\n fontSize,\n height: fontSize,\n width: fontSize,\n } : undefined,\n }\n this.applyColors(wrapperData)\n\n return wrapperData\n },\n applyColors (data: VNodeData): void {\n data.class = { ...data.class, ...this.themeClasses }\n this.setTextColor(this.color, data)\n },\n renderFontIcon (icon: string, h: CreateElement): VNode {\n const newChildren: VNodeChildren = []\n const data = this.getDefaultData()\n\n let iconType = 'material-icons'\n // Material Icon delimiter is _\n // https://material.io/icons/\n const delimiterIndex = icon.indexOf('-')\n const isMaterialIcon = delimiterIndex <= -1\n\n if (isMaterialIcon) {\n // Material icon uses ligatures.\n newChildren.push(icon)\n } else {\n iconType = icon.slice(0, delimiterIndex)\n if (isFontAwesome5(iconType)) iconType = ''\n }\n\n data.class[iconType] = true\n data.class[icon] = !isMaterialIcon\n\n const fontSize = this.getSize()\n if (fontSize) data.style = { fontSize }\n\n this.applyColors(data)\n\n return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n },\n renderSvgIcon (icon: string, h: CreateElement): VNode {\n const svgData: VNodeData = {\n class: 'v-icon__svg',\n attrs: {\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: '0 0 24 24',\n role: 'img',\n 'aria-hidden': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n svgData.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h('svg', svgData, [\n h('path', {\n attrs: {\n d: icon,\n },\n }),\n ]),\n ])\n },\n renderSvgIconComponent (\n icon: VuetifyIconComponent,\n h: CreateElement\n ): VNode {\n const data: VNodeData = {\n class: {\n 'v-icon__component': true,\n },\n }\n\n const size = this.getSize()\n if (size) {\n data.style = {\n fontSize: size,\n height: size,\n width: size,\n }\n }\n\n this.applyColors(data)\n\n const component = icon.component\n data.props = icon.props\n data.nativeOn = data.on\n\n return h(this.hasClickListener ? 'button' : 'span', this.getSvgWrapperData(), [\n h(component, data),\n ])\n },\n },\n\n render (h: CreateElement): VNode {\n const icon = this.getIcon()\n\n if (typeof icon === 'string') {\n if (isSvgPath(icon)) {\n return this.renderSvgIcon(icon, h)\n }\n return this.renderFontIcon(icon, h)\n }\n\n return this.renderSvgIconComponent(icon, h)\n },\n})\n\nexport default Vue.extend({\n name: 'v-icon',\n\n $_wrapperFor: VIcon,\n\n functional: true,\n\n render (h, { data, children }): VNode {\n let iconName = ''\n\n // Support usage of v-text and v-html\n if (data.domProps) {\n iconName = data.domProps.textContent ||\n data.domProps.innerHTML ||\n iconName\n\n // Remove nodes so it doesn't\n // overwrite our changes\n delete data.domProps.textContent\n delete data.domProps.innerHTML\n }\n\n return h(VIcon, data, iconName ? [iconName] : children)\n },\n})\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType\n\ninterface options extends InstanceType {\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend().extend({\n name: 'v-list',\n\n provide (): object {\n return {\n isInList: true,\n list: this,\n }\n },\n\n inject: {\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n props: {\n dense: Boolean,\n disabled: Boolean,\n expand: Boolean,\n flat: Boolean,\n nav: Boolean,\n rounded: Boolean,\n subheader: Boolean,\n threeLine: Boolean,\n twoLine: Boolean,\n },\n\n data: () => ({\n groups: [] as VListGroupInstance[],\n }),\n\n computed: {\n classes (): object {\n return {\n ...VSheet.options.computed.classes.call(this),\n 'v-list--dense': this.dense,\n 'v-list--disabled': this.disabled,\n 'v-list--flat': this.flat,\n 'v-list--nav': this.nav,\n 'v-list--rounded': this.rounded,\n 'v-list--subheader': this.subheader,\n 'v-list--two-line': this.twoLine,\n 'v-list--three-line': this.threeLine,\n }\n },\n },\n\n methods: {\n register (content: VListGroupInstance) {\n this.groups.push(content)\n },\n unregister (content: VListGroupInstance) {\n const index = this.groups.findIndex(g => g._uid === content._uid)\n\n if (index > -1) this.groups.splice(index, 1)\n },\n listClick (uid: number) {\n if (this.expand) return\n\n for (const group of this.groups) {\n group.toggle(uid)\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-list',\n class: this.classes,\n style: this.styles,\n attrs: {\n role: this.isInNav || this.isInMenu ? undefined : 'list',\n ...this.attrs$,\n },\n }\n\n return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n },\n})\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, this.$slots.default)\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.value !== undefined\n ? this.value\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState',\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => val === value)\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = value === this.internalValue\n\n if (this.mandatory && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (h): VNode {\n return h(this.tag, this.genData(), this.$slots.default)\n },\n})\n\nexport default BaseItemGroup.extend({\n name: 'v-item-group',\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Menuable,\n Returnable,\n Roundable,\n Toggleable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n },\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '200px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = this.onKeyDown\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n })\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n },\n style: this.styles,\n directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","import './VPicker.sass'\nimport '../VCard/VCard.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Elevatable,\n Themeable\n).extend({\n name: 'v-picker',\n\n props: {\n flat: Boolean,\n fullWidth: Boolean,\n landscape: Boolean,\n noTitle: Boolean,\n transition: {\n type: String,\n default: 'fade-transition',\n },\n width: {\n type: [Number, String],\n default: 290,\n },\n },\n\n computed: {\n computedTitleColor (): string | false {\n const defaultTitleColor = this.isDark ? false : (this.color || 'primary')\n return this.color || defaultTitleColor\n },\n },\n\n methods: {\n genTitle () {\n return this.$createElement('div', this.setBackgroundColor(this.computedTitleColor, {\n staticClass: 'v-picker__title',\n class: {\n 'v-picker__title--landscape': this.landscape,\n },\n }), this.$slots.title)\n },\n genBodyTransition () {\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, this.$slots.default)\n },\n genBody () {\n return this.$createElement('div', {\n staticClass: 'v-picker__body',\n class: {\n 'v-picker__body--no-title': this.noTitle,\n ...this.themeClasses,\n },\n style: this.fullWidth ? undefined : {\n width: convertToUnit(this.width),\n },\n }, [\n this.genBodyTransition(),\n ])\n },\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-picker__actions v-card__actions',\n class: {\n 'v-picker__actions--no-title': this.noTitle,\n },\n }, this.$slots.actions)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-picker v-card',\n class: {\n 'v-picker--flat': this.flat,\n 'v-picker--landscape': this.landscape,\n 'v-picker--full-width': this.fullWidth,\n ...this.themeClasses,\n ...this.elevationClasses,\n },\n }, [\n this.$slots.title ? this.genTitle() : null,\n this.genBody(),\n this.$slots.actions ? this.genActions() : null,\n ])\n },\n})\n","import VPicker from './VPicker'\n\nexport { VPicker }\nexport default VPicker\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Themeable,\n GroupableFactory('listItemGroup'),\n ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue {\n $el: HTMLElement\n isInGroup: boolean\n isInList: boolean\n isInMenu: boolean\n isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-list-item',\n\n directives: {\n Ripple,\n },\n\n inject: {\n isInGroup: {\n default: false,\n },\n isInList: {\n default: false,\n },\n isInMenu: {\n default: false,\n },\n isInNav: {\n default: false,\n },\n },\n\n inheritAttrs: false,\n\n props: {\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.listItemGroup) return ''\n\n return this.listItemGroup.activeClass\n },\n } as any as PropValidator,\n dense: Boolean,\n inactive: Boolean,\n link: Boolean,\n selectable: {\n type: Boolean,\n },\n tag: {\n type: String,\n default: 'div',\n },\n threeLine: Boolean,\n twoLine: Boolean,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-list-item--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-list-item': true,\n ...Routable.options.computed.classes.call(this),\n 'v-list-item--dense': this.dense,\n 'v-list-item--disabled': this.disabled,\n 'v-list-item--link': this.isClickable && !this.inactive,\n 'v-list-item--selectable': this.selectable,\n 'v-list-item--three-line': this.threeLine,\n 'v-list-item--two-line': this.twoLine,\n ...this.themeClasses,\n }\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.listItemGroup\n )\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('avatar')) {\n removed('avatar', this)\n }\n },\n\n methods: {\n click (e: MouseEvent | KeyboardEvent) {\n if (e.detail) this.$el.blur()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n genAttrs () {\n const attrs: Record = {\n 'aria-disabled': this.disabled ? true : undefined,\n tabindex: this.isClickable && !this.disabled ? 0 : -1,\n ...this.$attrs,\n }\n\n if (this.$attrs.hasOwnProperty('role')) {\n // do nothing, role already provided\n } else if (this.isInNav) {\n // do nothing, role is inherit\n } else if (this.isInGroup) {\n attrs.role = 'option'\n attrs['aria-selected'] = String(this.isActive)\n } else if (this.isInMenu) {\n attrs.role = this.isClickable ? 'menuitem' : undefined\n attrs.id = attrs.id || `list-item-${this._uid}`\n } else if (this.isInList) {\n attrs.role = 'listitem'\n }\n\n return attrs\n },\n toggle () {\n if (this.to && this.inputValue === undefined) {\n this.isActive = !this.isActive\n }\n this.$emit('change')\n },\n },\n\n render (h): VNode {\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n ...this.genAttrs(),\n }\n data[this.to ? 'nativeOn' : 'on'] = {\n ...data[this.to ? 'nativeOn' : 'on'],\n keydown: (e: KeyboardEvent) => {\n /* istanbul ignore else */\n if (e.keyCode === keyCodes.enter) this.click(e)\n\n this.$emit('keydown', e)\n },\n }\n\n if (this.inactive) tag = 'div'\n if (this.inactive && this.to) {\n data.on = data.nativeOn\n delete data.nativeOn\n }\n\n const children = this.$scopedSlots.default\n ? this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n : this.$slots.default\n\n return h(tag, this.isActive ? this.setTextColor(this.color, data) : data, children)\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-action',\n\n functional: true,\n\n render (h, { data, children = [] }): VNode {\n data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n const filteredChild = children.filter(VNode => {\n return VNode.isComment === false && VNode.text !== ' '\n })\n if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n name: 'v-messages',\n\n props: {\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n },\n\n methods: {\n genChildren () {\n return this.$createElement('transition-group', {\n staticClass: 'v-messages__wrapper',\n attrs: {\n name: 'message-transition',\n tag: 'div',\n },\n }, this.value.map(this.genMessage))\n },\n genMessage (message: string, key: number) {\n return this.$createElement('div', {\n staticClass: 'v-messages__message',\n key,\n }, getSlot(this, 'default', { message, key }) || [message])\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.color, {\n staticClass: 'v-messages',\n class: this.themeClasses,\n }), [this.genChildren()])\n },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","import VImg from './VImg'\n\nexport { VImg }\nexport default VImg\n","// Styles\nimport './VOverflowBtn.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete'\nimport VTextField from '../VTextField/VTextField'\n\n// Components\nimport VBtn from '../VBtn'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-overflow-btn',\n\n props: {\n editable: Boolean,\n segmented: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n ...VAutocomplete.options.computed.classes.call(this),\n 'v-overflow-btn': true,\n 'v-overflow-btn--segmented': this.segmented,\n 'v-overflow-btn--editable': this.editable,\n }\n },\n isAnyValueAllowed (): boolean {\n return this.editable ||\n VAutocomplete.options.computed.isAnyValueAllowed.call(this)\n },\n isSingle (): true {\n return true\n },\n computedItems (): object[] {\n return this.segmented ? this.allItems : this.filteredItems\n },\n },\n\n methods: {\n genSelections () {\n return this.editable\n ? VAutocomplete.options.methods.genSelections.call(this)\n : VSelect.options.methods.genSelections.call(this) // Override v-autocomplete's override\n },\n genCommaSelection (item: any, index: number, last: boolean) {\n return this.segmented\n ? this.genSegmentedBtn(item)\n : VSelect.options.methods.genCommaSelection.call(this, item, index, last)\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data = input.data || {}\n input.data.domProps!.value = this.editable ? this.internalSearch : ''\n input.data.attrs!.readonly = !this.isAnyValueAllowed\n\n return input\n },\n genLabel () {\n if (this.editable && this.isFocused) return null\n\n const label = VTextField.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label.data = label.data || {}\n\n // Reset previously set styles from parent\n label.data.style = {}\n\n return label\n },\n genSegmentedBtn (item: any) {\n const itemValue = this.getValue(item)\n const itemObj = this.computedItems.find(i => this.getValue(i) === itemValue) || item\n\n if (!itemObj.text || !itemObj.callback) {\n consoleWarn('When using \"segmented\" prop without a selection slot, items must contain both a text and callback property', this)\n return null\n }\n\n return this.$createElement(VBtn, {\n props: { text: true },\n on: {\n click (e: Event) {\n e.stopPropagation()\n itemObj.callback(e)\n },\n },\n }, [itemObj.text])\n },\n updateValue (val: boolean) {\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 './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Themeable,\n Toggleable\n).extend({\n name: 'v-overlay',\n\n props: {\n absolute: Boolean,\n color: {\n type: String,\n default: '#212121',\n },\n dark: {\n type: Boolean,\n default: true,\n },\n opacity: {\n type: [Number, String],\n default: 0.46,\n },\n value: {\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 5,\n },\n },\n\n computed: {\n __scrim (): VNode {\n const data = this.setBackgroundColor(this.color, {\n staticClass: 'v-overlay__scrim',\n style: {\n opacity: this.computedOpacity,\n },\n })\n\n return this.$createElement('div', data)\n },\n classes (): object {\n return {\n 'v-overlay--absolute': this.absolute,\n 'v-overlay--active': this.isActive,\n ...this.themeClasses,\n }\n },\n computedOpacity (): number {\n return Number(this.isActive ? this.opacity : 0)\n },\n styles (): object {\n return {\n zIndex: this.zIndex,\n }\n },\n },\n\n methods: {\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-overlay__content',\n }, this.$slots.default)\n },\n },\n\n render (h): VNode {\n const children = [this.__scrim]\n\n if (this.isActive) children.push(this.genContent())\n\n return h('div', {\n staticClass: 'v-overlay',\n on: this.$listeners,\n class: this.classes,\n style: this.styles,\n }, children)\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","import VMain from './VMain'\n\nexport { VMain }\n\nexport default VMain\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n name: 'v-main',\n\n props: {\n tag: {\n type: String,\n default: 'main',\n },\n },\n\n computed: {\n styles (): object {\n const {\n bar, top, right, footer, insetFooter, bottom, left,\n } = this.$vuetify.application\n\n return {\n paddingTop: `${top + bar}px`,\n paddingRight: `${right}px`,\n paddingBottom: `${footer + insetFooter + bottom}px`,\n paddingLeft: `${left}px`,\n }\n },\n },\n\n render (h): VNode {\n const data = {\n staticClass: 'v-main',\n style: this.styles,\n ref: 'main',\n }\n\n return h(this.tag, data, [\n h(\n 'div',\n { staticClass: 'v-main__wrap' },\n this.$slots.default\n ),\n ])\n },\n})\n","// Mixins\nimport Measurable from '../../mixins/measurable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport default mixins(\n Measurable,\n Toggleable\n).extend({\n name: 'VLazy',\n\n directives: { intersect },\n\n props: {\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n tag: {\n type: String,\n default: 'div',\n },\n transition: {\n type: String,\n default: 'fade-transition',\n },\n },\n\n computed: {\n styles (): object {\n return {\n ...this.measurableStyles,\n }\n },\n },\n\n methods: {\n genContent () {\n const children = this.isActive && getSlot(this)\n\n return this.transition\n ? this.$createElement('transition', {\n props: { name: this.transition },\n }, children)\n : children\n },\n onObserve (\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n isIntersecting: boolean,\n ) {\n if (this.isActive) return\n\n this.isActive = isIntersecting\n },\n },\n\n render (h): VNode {\n return h(this.tag, {\n staticClass: 'v-lazy',\n attrs: this.$attrs,\n directives: [{\n name: 'intersect',\n value: {\n handler: this.onObserve,\n options: this.options,\n },\n }],\n on: this.$listeners,\n style: this.styles,\n }, [this.genContent()])\n },\n})\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-list-item-icon',\n\n functional: true,\n\n render (h, { data, children }): VNode {\n data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n return h('div', data, children)\n },\n})\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Bootable,\n Colorable,\n RegistrableInject('list'),\n Toggleable\n)\n\ntype VListInstance = InstanceType\n\ninterface options extends ExtractVue {\n list: VListInstance\n $refs: {\n group: HTMLElement\n }\n $route: Route\n}\n\nexport default baseMixins.extend().extend({\n name: 'v-list-group',\n\n directives: { ripple },\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n appendIcon: {\n type: String,\n default: '$expand',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n group: [String, RegExp],\n noAction: Boolean,\n prependIcon: String,\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n subGroup: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-group--active': this.isActive,\n 'v-list-group--disabled': this.disabled,\n 'v-list-group--no-action': this.noAction,\n 'v-list-group--sub-group': this.subGroup,\n }\n },\n },\n\n watch: {\n isActive (val: boolean) {\n /* istanbul ignore else */\n if (!this.subGroup && val) {\n this.list && this.list.listClick(this._uid)\n }\n },\n $route: 'onRouteChange',\n },\n\n created () {\n this.list && this.list.register(this)\n\n if (this.group &&\n this.$route &&\n this.value == null\n ) {\n this.isActive = this.matchRoute(this.$route.path)\n }\n },\n\n beforeDestroy () {\n this.list && this.list.unregister(this)\n },\n\n methods: {\n click (e: Event) {\n if (this.disabled) return\n\n this.isBooted = true\n\n this.$emit('click', e)\n this.$nextTick(() => (this.isActive = !this.isActive))\n },\n genIcon (icon: string | false): VNode {\n return this.$createElement(VIcon, icon)\n },\n genAppendIcon (): VNode | null {\n const icon = !this.subGroup ? this.appendIcon : false\n\n if (!icon && !this.$slots.appendIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__append-icon',\n }, [\n this.$slots.appendIcon || this.genIcon(icon),\n ])\n },\n genHeader (): VNode {\n return this.$createElement(VListItem, {\n staticClass: 'v-list-group__header',\n attrs: {\n 'aria-expanded': String(this.isActive),\n role: 'button',\n },\n class: {\n [this.activeClass]: this.isActive,\n },\n props: {\n inputValue: this.isActive,\n },\n directives: [{\n name: 'ripple',\n value: this.ripple,\n }],\n on: {\n ...this.listeners$,\n click: this.click,\n },\n }, [\n this.genPrependIcon(),\n this.$slots.activator,\n this.genAppendIcon(),\n ])\n },\n genItems (): VNode[] {\n return this.showLazyContent(() => [\n this.$createElement('div', {\n staticClass: 'v-list-group__items',\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n }, getSlot(this)),\n ])\n },\n genPrependIcon (): VNode | null {\n const icon = this.subGroup && this.prependIcon == null\n ? '$subgroup'\n : this.prependIcon\n\n if (!icon && !this.$slots.prependIcon) return null\n\n return this.$createElement(VListItemIcon, {\n staticClass: 'v-list-group__header__prepend-icon',\n }, [\n this.$slots.prependIcon || this.genIcon(icon),\n ])\n },\n onRouteChange (to: Route) {\n /* istanbul ignore if */\n if (!this.group) return\n\n const isActive = this.matchRoute(to.path)\n\n /* istanbul ignore else */\n if (isActive && this.isActive !== isActive) {\n this.list && this.list.listClick(this._uid)\n }\n\n this.isActive = isActive\n },\n toggle (uid: number) {\n const isActive = this._uid === uid\n\n if (isActive) this.isBooted = true\n this.$nextTick(() => (this.isActive = isActive))\n },\n matchRoute (to: string) {\n return to.match(this.group) !== null\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-list-group',\n class: this.classes,\n }), [\n this.genHeader(),\n h(VExpandTransition, this.genItems()),\n ])\n },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItemGroup,\n Colorable\n).extend({\n name: 'v-list-item-group',\n\n provide () {\n return {\n isInGroup: true,\n listItemGroup: this,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-list-item-group': true,\n }\n },\n },\n\n methods: {\n genData (): object {\n return this.setTextColor(this.color, {\n ...BaseItemGroup.options.methods.genData.call(this),\n attrs: {\n role: 'listbox',\n },\n })\n },\n },\n})\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n name: 'v-list-item-avatar',\n\n props: {\n horizontal: Boolean,\n size: {\n type: [Number, String],\n default: 40,\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-list-item__avatar--horizontal': this.horizontal,\n ...VAvatar.options.computed.classes.call(this),\n 'v-avatar--tile': this.tile || this.horizontal,\n }\n },\n },\n\n render (h): VNode {\n const render = VAvatar.options.render.call(this, h)\n\n render.data = render.data || {}\n render.data.staticClass += ' v-list-item__avatar'\n\n return render\n },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemAvatar,\n VListItemIcon,\n VListItemGroup,\n}\n\nexport default {\n $_vuetify_subcomponents: {\n VList,\n VListGroup,\n VListItem,\n VListItemAction,\n VListItemActionText,\n VListItemAvatar,\n VListItemContent,\n VListItemGroup,\n VListItemIcon,\n VListItemSubtitle,\n VListItemTitle,\n },\n}\n","// Style\nimport './VParallax.sass'\n\n// Mixins\nimport Translatable from '../../mixins/translatable'\n\n// Types\nimport { VNode, VNodeData } from 'vue/types/vnode'\nimport mixins from '../../util/mixins'\n\nconst baseMixins = mixins(\n Translatable\n)\ninterface options extends InstanceType {\n $refs: {\n img: HTMLImageElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-parallax',\n\n props: {\n alt: {\n type: String,\n default: '',\n },\n height: {\n type: [String, Number],\n default: 500,\n },\n src: String,\n srcset: String,\n },\n\n data: () => ({\n isBooted: false,\n }),\n\n computed: {\n styles (): object {\n return {\n display: 'block',\n opacity: this.isBooted ? 1 : 0,\n transform: `translate(-50%, ${this.parallax}px)`,\n }\n },\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init () {\n const img = this.$refs.img\n\n if (!img) return\n\n if (img.complete) {\n this.translate()\n this.listeners()\n } else {\n img.addEventListener('load', () => {\n this.translate()\n this.listeners()\n }, false)\n }\n\n this.isBooted = true\n },\n objHeight () {\n return this.$refs.img.naturalHeight\n },\n },\n\n render (h): VNode {\n const imgData: VNodeData = {\n staticClass: 'v-parallax__image',\n style: this.styles,\n attrs: {\n src: this.src,\n srcset: this.srcset,\n alt: this.alt,\n },\n ref: 'img',\n }\n\n const container = h('div', {\n staticClass: 'v-parallax__image-container',\n }, [\n h('img', imgData),\n ])\n\n const content = h('div', {\n staticClass: 'v-parallax__content',\n }, this.$slots.default)\n\n return h('div', {\n staticClass: 'v-parallax',\n style: {\n height: `${this.height}px`,\n },\n on: this.$listeners,\n }, [container, content])\n },\n})\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n BindsAttrs,\n Validatable,\n)\n\ninterface options extends InstanceType {\n /* eslint-disable-next-line camelcase */\n $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-input',\n\n inheritAttrs: false,\n\n props: {\n appendIcon: String,\n backgroundColor: {\n type: String,\n default: '',\n },\n dense: Boolean,\n height: [Number, String],\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n id: String,\n label: String,\n loading: Boolean,\n persistentHint: Boolean,\n prependIcon: String,\n value: null as any as PropType,\n },\n\n data () {\n return {\n lazyValue: this.value,\n hasMouseDown: false,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-input--has-state': this.hasState,\n 'v-input--hide-details': !this.showDetails,\n 'v-input--is-label-active': this.isLabelActive,\n 'v-input--is-dirty': this.isDirty,\n 'v-input--is-disabled': this.isDisabled,\n 'v-input--is-focused': this.isFocused,\n // .loading === '' so we can't just cast to boolean\n 'v-input--is-loading': this.loading !== false && this.loading != null,\n 'v-input--is-readonly': this.isReadonly,\n 'v-input--dense': this.dense,\n 'v-input--hide-spin-buttons': this.hideSpinButtons,\n ...this.themeClasses,\n }\n },\n computedId (): string {\n return this.id || `input-${this._uid}`\n },\n hasDetails (): boolean {\n return this.messagesToDisplay.length > 0\n },\n hasHint (): boolean {\n return !this.hasMessages &&\n !!this.hint &&\n (this.persistentHint || this.isFocused)\n },\n hasLabel (): boolean {\n return !!(this.$slots.label || this.label)\n },\n // Proxy for `lazyValue`\n // This allows an input\n // to function without\n // a provided model\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit(this.$_modelEvent, val)\n },\n },\n isDirty (): boolean {\n return !!this.lazyValue\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n messagesToDisplay (): string[] {\n if (this.hasHint) return [this.hint]\n\n if (!this.hasMessages) return []\n\n return this.validations.map((validation: string | InputValidationRule) => {\n if (typeof validation === 'string') return validation\n\n const validationResult = validation(this.internalValue)\n\n return typeof validationResult === 'string' ? validationResult : ''\n }).filter(message => message !== '')\n },\n showDetails (): boolean {\n return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n },\n },\n\n watch: {\n value (val) {\n this.lazyValue = val\n },\n },\n\n beforeCreate () {\n // v-radio-group needs to emit a different event\n // https://github.com/vuetifyjs/vuetify/issues/4752\n this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n },\n\n methods: {\n genContent () {\n return [\n this.genPrependSlot(),\n this.genControl(),\n this.genAppendSlot(),\n ]\n },\n genControl () {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n attrs: { title: this.attrs$.title },\n }, [\n this.genInputSlot(),\n this.genMessages(),\n ])\n },\n genDefaultSlot () {\n return [\n this.genLabel(),\n this.$slots.default,\n ]\n },\n genIcon (\n type: string,\n cb?: (e: Event) => void,\n extraData: VNodeData = {}\n ) {\n const icon = (this as any)[`${type}Icon`]\n const eventName = `click:${kebabCase(type)}`\n const hasListener = !!(this.listeners$[eventName] || cb)\n\n const data = mergeData({\n attrs: {\n 'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n light: this.light,\n },\n on: !hasListener\n ? undefined\n : {\n click: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n\n this.$emit(eventName, e)\n cb && cb(e)\n },\n // Container has g event that will\n // trigger menu open if enclosed\n mouseup: (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n },\n },\n }, extraData)\n\n return this.$createElement('div', {\n staticClass: `v-input__icon`,\n class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n }, [\n this.$createElement(\n VIcon,\n data,\n icon\n ),\n ])\n },\n genInputSlot () {\n return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n staticClass: 'v-input__slot',\n style: { height: convertToUnit(this.height) },\n on: {\n click: this.onClick,\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n },\n ref: 'input-slot',\n }), [this.genDefaultSlot()])\n },\n genLabel () {\n if (!this.hasLabel) return null\n\n return this.$createElement(VLabel, {\n props: {\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: this.hasState,\n for: this.computedId,\n light: this.light,\n },\n }, this.$slots.label || this.label)\n },\n genMessages () {\n if (!this.showDetails) return null\n\n return this.$createElement(VMessages, {\n props: {\n color: this.hasHint ? '' : this.validationState,\n dark: this.dark,\n light: this.light,\n value: this.messagesToDisplay,\n },\n attrs: {\n role: this.hasMessages ? 'alert' : null,\n },\n scopedSlots: {\n default: props => getSlot(this, 'message', props),\n },\n })\n },\n genSlot (\n type: string,\n location: string,\n slot: (VNode | VNode[])[]\n ) {\n if (!slot.length) return null\n\n const ref = `${type}-${location}`\n\n return this.$createElement('div', {\n staticClass: `v-input__${ref}`,\n ref,\n }, slot)\n },\n genPrependSlot () {\n const slot = []\n\n if (this.$slots.prepend) {\n slot.push(this.$slots.prepend)\n } else if (this.prependIcon) {\n slot.push(this.genIcon('prepend'))\n }\n\n return this.genSlot('prepend', 'outer', slot)\n },\n genAppendSlot () {\n const slot = []\n\n // Append icon for text field was really\n // an appended inner icon, v-text-field\n // will overwrite this method in order to obtain\n // backwards compat\n if (this.$slots.append) {\n slot.push(this.$slots.append)\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n onClick (e: Event) {\n this.$emit('click', e)\n },\n onMouseDown (e: Event) {\n this.hasMouseDown = true\n this.$emit('mousedown', e)\n },\n onMouseUp (e: Event) {\n this.hasMouseDown = false\n this.$emit('mouseup', e)\n },\n },\n\n render (h): VNode {\n return h('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), this.genContent())\n },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VOtpInput.sass'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VInput,\n)\n\ninterface options extends InstanceType {\n $refs: {\n input: HTMLInputElement[]\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-otp-input',\n\n directives: {\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n length: {\n type: [Number, String],\n default: 6,\n },\n type: {\n type: String,\n default: 'text',\n },\n plain: Boolean,\n },\n\n data: () => ({\n badInput: false,\n initialValue: null,\n isBooted: false,\n otp: [] as string[],\n }),\n\n computed: {\n outlined (): Boolean {\n return !this.plain\n },\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n ...VTextField.options.computed.classes.call(this),\n 'v-otp-input--plain': this.plain,\n }\n },\n isDirty (): boolean {\n return VInput.options.computed.isDirty.call(this) || this.badInput\n },\n },\n\n watch: {\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n this.otp = val?.split('') || []\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n this.otp = this.internalValue?.split('') || []\n },\n\n mounted () {\n requestAnimationFrame(() => (this.isBooted = true))\n },\n\n methods: {\n /** @public */\n focus (e: Event, otpIdx: number) {\n this.onFocus(e, otpIdx || 0)\n },\n genInputSlot (otpIdx: number) {\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(otpIdx),\n mousedown: (e: Event) => this.onMouseDown(e, otpIdx),\n mouseup: (e: Event) => this.onMouseUp(e, otpIdx),\n },\n }), [this.genDefaultSlot(otpIdx)])\n },\n genControl (otpIdx: number) {\n return this.$createElement('div', {\n staticClass: 'v-input__control',\n }, [\n this.genInputSlot(otpIdx),\n ])\n },\n genDefaultSlot (otpIdx: number) {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(otpIdx),\n ]\n },\n genContent () {\n return Array.from({ length: +this.length }, (_, i) => {\n return this.$createElement('div', this.setTextColor(this.validationState, {\n staticClass: 'v-input',\n class: this.classes,\n }), [this.genControl(i)])\n })\n },\n genFieldset () {\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLegend () {\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n })\n\n return this.$createElement('legend', {\n style: {\n width: '0px',\n },\n }, [span])\n },\n genInput (otpIdx: number) {\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.otp[otpIdx],\n min: this.type === 'number' ? 0 : null,\n },\n attrs: {\n ...this.attrs$,\n disabled: this.isDisabled,\n readonly: this.isReadonly,\n type: this.type,\n id: `${this.computedId}--${otpIdx}`,\n class: `otp-field-box--${otpIdx}`,\n maxlength: 1,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: (e: Event) => this.onInput(e, otpIdx),\n focus: (e: Event) => this.onFocus(e, otpIdx),\n paste: (e: ClipboardEvent) => this.onPaste(e, otpIdx),\n keydown: this.onKeyDown,\n keyup: (e: KeyboardEvent) => this.onKeyUp(e, otpIdx),\n }),\n ref: 'input',\n refInFor: true,\n })\n },\n genTextFieldSlot (otpIdx: number): VNode {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genInput(otpIdx),\n ])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick (otpIdx: number) {\n if (this.isFocused || this.isDisabled || !this.$refs.input[otpIdx]) return\n\n this.onFocus(undefined, otpIdx)\n },\n onFocus (e?: Event, otpIdx?: number) {\n e?.preventDefault()\n e?.stopPropagation()\n const elements = this.$refs.input as HTMLInputElement[]\n const ref = this.$refs.input && elements[otpIdx || 0]\n if (!ref) return\n\n if (document.activeElement !== ref) {\n ref.focus()\n return ref.select()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n ref.select()\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event, otpIdx: number) {\n const target = e.target as HTMLInputElement\n const value = target.value\n this.applyValue(otpIdx, target.value, () => {\n this.internalValue = this.otp.join('')\n })\n this.badInput = target.validity && target.validity.badInput\n\n const nextIndex = otpIdx + 1\n if (value) {\n if (nextIndex < +this.length) {\n this.changeFocus(nextIndex)\n } else {\n this.clearFocus(otpIdx)\n this.onCompleted()\n }\n }\n },\n clearFocus (index: number) {\n const input = this.$refs.input[index] as HTMLInputElement\n input.blur()\n },\n onKeyDown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.enter) {\n this.$emit('change', this.internalValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event, otpIdx: number) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input[otpIdx]) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event, otpIdx: number) {\n if (this.hasMouseDown) this.focus(e, otpIdx)\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n onPaste (event: ClipboardEvent, index: number) {\n const maxCursor = +this.length - 1\n const inputVal = event?.clipboardData?.getData('Text')\n const inputDataArray = inputVal?.split('') || []\n event.preventDefault()\n const newOtp: string[] = [...this.otp]\n for (let i = 0; i < inputDataArray.length; i++) {\n const appIdx = index + i\n if (appIdx > maxCursor) break\n newOtp[appIdx] = inputDataArray[i].toString()\n }\n this.otp = newOtp\n this.internalValue = this.otp.join('')\n const targetFocus = Math.min(index + inputDataArray.length, maxCursor)\n this.changeFocus(targetFocus)\n\n if (newOtp.length === +this.length) { this.onCompleted(); this.clearFocus(targetFocus) }\n },\n applyValue (index: number, inputVal: string, next: Function) {\n const newOtp: string[] = [...this.otp]\n newOtp[index] = inputVal\n this.otp = newOtp\n next()\n },\n changeFocus (index: number) {\n this.onFocus(undefined, index || 0)\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 onKeyUp (event: KeyboardEvent, index: number) {\n event.preventDefault()\n const eventKey = event.key\n if (['Tab', 'Shift', 'Meta', 'Control', 'Alt'].includes(eventKey)) {\n return\n }\n if (['Delete'].includes(eventKey)) {\n return\n }\n if (eventKey === 'ArrowLeft' || (eventKey === 'Backspace' && !this.otp[index])) {\n return index > 0 && this.changeFocus(index - 1)\n }\n if (eventKey === 'ArrowRight') {\n return index + 1 < +this.length && this.changeFocus(index + 1)\n }\n },\n onCompleted () {\n const rsp = this.otp.join('')\n if (rsp.length === +this.length) {\n this.$emit('finish', rsp)\n }\n },\n },\n render (h): VNode {\n return h('div', {\n staticClass: 'v-otp-input',\n class: this.themeClasses,\n }, this.genContent())\n },\n})\n","// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\n/* @vue/component */\nexport const BaseItem = Vue.extend({\n props: {\n activeClass: String,\n value: {\n required: false,\n },\n },\n\n data: () => ({\n isActive: false,\n }),\n\n methods: {\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default) {\n consoleWarn('v-item is missing a default scopedSlot', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-item should only contain a single element', this)\n\n return element as any\n }\n\n element.data = this._b(element.data || {}, element.tag!, {\n class: { [this.activeClass]: this.isActive },\n })\n\n return element\n },\n})\n\nexport default mixins(\n BaseItem,\n GroupableFactory('itemGroup', 'v-item', 'v-item-group')\n).extend({\n name: 'v-item',\n})\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\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 if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n"],"sourceRoot":""}