{"version":3,"sources":["webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/mixins/intersectable/index.ts","webpack:///../../../src/components/VTextField/VTextField.ts","webpack:///../../../src/directives/resize/index.ts"],"names":["mixins","extend","name","functional","props","value","type","Number","String","default","max","h","ctx","parseInt","content","isGreater","staticClass","class","intersectable","options","data","isIntersecting","inserted","this","$el","onObserve","$vnode","unbind","methods","entries","observer","i","length","onVisible","callback","console","baseMixins","VInput","dirtyTypes","directives","resize","ripple","inheritAttrs","appendOuterIcon","autofocus","Boolean","clearable","clearIcon","counter","counterValue","Function","filled","flat","fullWidth","label","outlined","placeholder","prefix","prependInnerIcon","persistentPlaceholder","reverse","rounded","shaped","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isBooted","isClearing","computed","classes","call","isSingle","isSolo","isEnclosed","computedColor","isFocused","color","internalValue","toString","hasDetails","hasCounter","lazyValue","val","$emit","isDirty","includes","hasLabel","offset","labelValue","$vuetify","rtl","left","right","isLabelActive","watch","$nextTick","setLabelWidth","setPrefixWidth","$attrs","hasOwnProperty","$watch","tryAutofocus","requestAnimationFrame","onResize","onFocus","e","window","$refs","input","blur","focus","slot","$slots","push","genIcon","genSlot","append","appendIcon","genInputSlot","prepend","genPrependInnerSlot","children","unshift","clearableCallback","$createElement","attrs$","maxlength","dark","light","computedCounterValue","$scopedSlots","genControl","genFieldset","genTextFieldSlot","genClearIcon","genIconSlot","genProgress","attrs","genLegend","showLabel","absolute","validationState","disabled","isDisabled","focused","for","computedId","labelPosition","VLabel","width","span","domProps","innerHTML","style","undefined","listeners","Object","assign","listeners$","change","title","inputAttrs","is","id","readonly","isReadonly","on","onBlur","onInput","keydown","onKeyDown","ref","modifiers","quiet","showDetails","messagesNode","genMessages","counterNode","genCounter","genLabel","genAffix","genInput","root","activeElement","target","validity","keyCode","enter","preventDefault","stopPropagation","onMouseDown","hasMouseDown","onMouseUp","Math","min","scrollWidth","offsetWidth","document","hasColor","setPrependWidth","el","binding","vnode","passive","addEventListener","_onResize","context","_uid","removeEventListener","Resize"],"mappings":"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","file":"js/chunk-7539abc5.871f3339.js","sourcesContent":["// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n name: 'v-counter',\n\n functional: true,\n\n props: {\n value: {\n type: [Number, String],\n default: '',\n },\n max: [Number, String],\n },\n\n render (h, ctx): VNode {\n const { props } = ctx\n const max = parseInt(props.max, 10)\n const value = parseInt(props.value, 10)\n const content = max ? `${value} / ${max}` : String(props.value)\n const isGreater = max && (value > max)\n\n return h('div', {\n staticClass: 'v-counter',\n class: {\n 'error--text': isGreater,\n ...functionalThemeClasses(ctx),\n },\n }, content)\n },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n return Vue.extend({\n name: 'intersectable',\n\n data: () => ({\n isIntersecting: false,\n }),\n\n mounted () {\n Intersect.inserted(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n destroyed () {\n Intersect.unbind(this.$el as HTMLElement, {\n name: 'intersect',\n value: this.onObserve,\n }, this.$vnode)\n },\n\n methods: {\n onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n this.isIntersecting = isIntersecting\n\n if (!isIntersecting) return\n\n for (let i = 0, length = options.onVisible.length; i < length; i++) {\n const callback = (this as any)[options.onVisible[i]]\n\n if (typeof callback === 'function') {\n callback()\n continue\n }\n\n consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n }\n },\n },\n })\n}\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport resize from '../../directives/resize'\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { attachedRoot } from '../../util/dom'\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n VInput,\n Intersectable({\n onVisible: [\n 'onResize',\n 'tryAutofocus',\n ],\n }),\n Loadable,\n)\ninterface options extends InstanceType {\n $refs: {\n label: HTMLElement\n input: HTMLInputElement\n 'prepend-inner': HTMLElement\n prefix: HTMLElement\n suffix: HTMLElement\n }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend().extend({\n name: 'v-text-field',\n\n directives: {\n resize,\n ripple,\n },\n\n inheritAttrs: false,\n\n props: {\n appendOuterIcon: String,\n autofocus: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n counter: [Boolean, Number, String],\n counterValue: Function as PropType<(value: any) => number>,\n filled: Boolean,\n flat: Boolean,\n fullWidth: Boolean,\n label: String,\n outlined: Boolean,\n placeholder: String,\n prefix: String,\n prependInnerIcon: String,\n persistentPlaceholder: Boolean,\n reverse: Boolean,\n rounded: Boolean,\n shaped: Boolean,\n singleLine: Boolean,\n solo: Boolean,\n soloInverted: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n },\n\n data: () => ({\n badInput: false,\n labelWidth: 0,\n prefixWidth: 0,\n prependWidth: 0,\n initialValue: null,\n isBooted: false,\n isClearing: false,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-text-field': true,\n 'v-text-field--full-width': this.fullWidth,\n 'v-text-field--prefix': this.prefix,\n 'v-text-field--single-line': this.isSingle,\n 'v-text-field--solo': this.isSolo,\n 'v-text-field--solo-inverted': this.soloInverted,\n 'v-text-field--solo-flat': this.flat,\n 'v-text-field--filled': this.filled,\n 'v-text-field--is-booted': this.isBooted,\n 'v-text-field--enclosed': this.isEnclosed,\n 'v-text-field--reverse': this.reverse,\n 'v-text-field--outlined': this.outlined,\n 'v-text-field--placeholder': this.placeholder,\n 'v-text-field--rounded': this.rounded,\n 'v-text-field--shaped': this.shaped,\n }\n },\n computedColor (): string | undefined {\n const computedColor = Validatable.options.computed.computedColor.call(this)\n\n if (!this.soloInverted || !this.isFocused) return computedColor\n\n return this.color || 'primary'\n },\n computedCounterValue (): number {\n if (typeof this.counterValue === 'function') {\n return this.counterValue(this.internalValue)\n }\n return [...(this.internalValue || '').toString()].length\n },\n hasCounter (): boolean {\n return this.counter !== false && this.counter != null\n },\n hasDetails (): boolean {\n return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n },\n internalValue: {\n get (): any {\n return this.lazyValue\n },\n set (val: any) {\n this.lazyValue = val\n this.$emit('input', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.lazyValue?.toString().length > 0 || this.badInput\n },\n isEnclosed (): boolean {\n return (\n this.filled ||\n this.isSolo ||\n this.outlined\n )\n },\n isLabelActive (): boolean {\n return this.isDirty || dirtyTypes.includes(this.type)\n },\n isSingle (): boolean {\n return (\n this.isSolo ||\n this.singleLine ||\n this.fullWidth ||\n // https://material.io/components/text-fields/#filled-text-field\n (this.filled && !this.hasLabel)\n )\n },\n isSolo (): boolean {\n return this.solo || this.soloInverted\n },\n labelPosition (): Record<'left' | 'right', string | number | undefined> {\n let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n return (this.$vuetify.rtl === this.reverse) ? {\n left: offset,\n right: 'auto',\n } : {\n left: 'auto',\n right: offset,\n }\n },\n showLabel (): boolean {\n return this.hasLabel && !(this.isSingle && this.labelValue)\n },\n labelValue (): boolean {\n return this.isFocused || this.isLabelActive || this.persistentPlaceholder\n },\n },\n\n watch: {\n // labelValue: 'setLabelWidth', // moved to mounted, see #11533\n outlined: 'setLabelWidth',\n label () {\n this.$nextTick(this.setLabelWidth)\n },\n prefix () {\n this.$nextTick(this.setPrefixWidth)\n },\n isFocused: 'updateValue',\n value (val) {\n this.lazyValue = val\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('box')) {\n breaking('box', 'filled', this)\n }\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n breaking('browser-autocomplete', 'autocomplete', this)\n }\n\n /* istanbul ignore if */\n if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n consoleWarn('shaped should be used with either filled or outlined', this)\n }\n },\n\n mounted () {\n // #11533\n this.$watch(() => this.labelValue, this.setLabelWidth)\n this.autofocus && this.tryAutofocus()\n requestAnimationFrame(() => {\n this.isBooted = true\n requestAnimationFrame(() => {\n if (!this.isIntersecting) {\n this.onResize()\n }\n })\n })\n },\n\n methods: {\n /** @public */\n focus () {\n this.onFocus()\n },\n /** @public */\n blur (e?: Event) {\n // https://github.com/vuetifyjs/vuetify/issues/5913\n // Safari tab order gets broken if called synchronous\n window.requestAnimationFrame(() => {\n this.$refs.input && this.$refs.input.blur()\n })\n },\n clearableCallback () {\n this.$refs.input && this.$refs.input.focus()\n this.$nextTick(() => this.internalValue = null)\n },\n genAppendSlot () {\n const slot = []\n\n if (this.$slots['append-outer']) {\n slot.push(this.$slots['append-outer'] as VNode[])\n } else if (this.appendOuterIcon) {\n slot.push(this.genIcon('appendOuter'))\n }\n\n return this.genSlot('append', 'outer', slot)\n },\n genPrependInnerSlot () {\n const slot = []\n\n if (this.$slots['prepend-inner']) {\n slot.push(this.$slots['prepend-inner'] as VNode[])\n } else if (this.prependInnerIcon) {\n slot.push(this.genIcon('prependInner'))\n }\n\n return this.genSlot('prepend', 'inner', slot)\n },\n genIconSlot () {\n const slot = []\n\n if (this.$slots.append) {\n slot.push(this.$slots.append as VNode[])\n } else if (this.appendIcon) {\n slot.push(this.genIcon('append'))\n }\n\n return this.genSlot('append', 'inner', slot)\n },\n genInputSlot () {\n const input = VInput.options.methods.genInputSlot.call(this)\n\n const prepend = this.genPrependInnerSlot()\n\n if (prepend) {\n input.children = input.children || []\n input.children.unshift(prepend)\n }\n\n return input\n },\n genClearIcon () {\n if (!this.clearable) return null\n\n // if the text field has no content then don't display the clear icon.\n // We add an empty div because other controls depend on a ref to append inner\n if (!this.isDirty) {\n return this.genSlot('append', 'inner', [\n this.$createElement('div'),\n ])\n }\n\n return this.genSlot('append', 'inner', [\n this.genIcon('clear', this.clearableCallback),\n ])\n },\n genCounter () {\n if (!this.hasCounter) return null\n\n const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n const props = {\n dark: this.dark,\n light: this.light,\n max,\n value: this.computedCounterValue,\n }\n\n return this.$scopedSlots.counter?.({ props }) ?? this.$createElement(VCounter, { props })\n },\n genControl () {\n return VInput.options.methods.genControl.call(this)\n },\n genDefaultSlot () {\n return [\n this.genFieldset(),\n this.genTextFieldSlot(),\n this.genClearIcon(),\n this.genIconSlot(),\n this.genProgress(),\n ]\n },\n genFieldset () {\n if (!this.outlined) return null\n\n return this.$createElement('fieldset', {\n attrs: {\n 'aria-hidden': true,\n },\n }, [this.genLegend()])\n },\n genLabel () {\n if (!this.showLabel) return null\n\n const data = {\n props: {\n absolute: true,\n color: this.validationState,\n dark: this.dark,\n disabled: this.isDisabled,\n focused: !this.isSingle && (this.isFocused || !!this.validationState),\n for: this.computedId,\n left: this.labelPosition.left,\n light: this.light,\n right: this.labelPosition.right,\n value: this.labelValue,\n },\n }\n\n return this.$createElement(VLabel, data, this.$slots.label || this.label)\n },\n genLegend () {\n const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n const span = this.$createElement('span', {\n domProps: { innerHTML: '​' },\n staticClass: 'notranslate',\n })\n\n return this.$createElement('legend', {\n style: {\n width: !this.isSingle ? convertToUnit(width) : undefined,\n },\n }, [span])\n },\n genInput () {\n const listeners = Object.assign({}, this.listeners$)\n delete listeners.change // Change should not be bound externally\n const { title, ...inputAttrs } = this.attrs$\n\n return this.$createElement('input', {\n style: {},\n domProps: {\n value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n },\n attrs: {\n ...inputAttrs,\n autofocus: this.autofocus,\n disabled: this.isDisabled,\n id: this.computedId,\n placeholder: this.persistentPlaceholder || this.isFocused || !this.hasLabel ? this.placeholder : undefined,\n readonly: this.isReadonly,\n type: this.type,\n },\n on: Object.assign(listeners, {\n blur: this.onBlur,\n input: this.onInput,\n focus: this.onFocus,\n keydown: this.onKeyDown,\n }),\n ref: 'input',\n directives: [{\n name: 'resize',\n modifiers: { quiet: true },\n value: this.onResize,\n }],\n })\n },\n genMessages () {\n if (!this.showDetails) return null\n\n const messagesNode = VInput.options.methods.genMessages.call(this)\n const counterNode = this.genCounter()\n\n return this.$createElement('div', {\n staticClass: 'v-text-field__details',\n }, [\n messagesNode,\n counterNode,\n ])\n },\n genTextFieldSlot () {\n return this.$createElement('div', {\n staticClass: 'v-text-field__slot',\n }, [\n this.genLabel(),\n this.prefix ? this.genAffix('prefix') : null,\n this.genInput(),\n this.suffix ? this.genAffix('suffix') : null,\n ])\n },\n genAffix (type: 'prefix' | 'suffix') {\n return this.$createElement('div', {\n class: `v-text-field__${type}`,\n ref: type,\n }, this[type])\n },\n onBlur (e?: Event) {\n this.isFocused = false\n e && this.$nextTick(() => this.$emit('blur', e))\n },\n onClick () {\n if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n this.$refs.input.focus()\n },\n onFocus (e?: Event) {\n if (!this.$refs.input) return\n\n const root = attachedRoot(this.$el)\n if (!root) return\n\n if (root.activeElement !== this.$refs.input) {\n return this.$refs.input.focus()\n }\n\n if (!this.isFocused) {\n this.isFocused = true\n e && this.$emit('focus', e)\n }\n },\n onInput (e: Event) {\n const target = e.target as HTMLInputElement\n this.internalValue = target.value\n this.badInput = target.validity && target.validity.badInput\n },\n onKeyDown (e: KeyboardEvent) {\n if (\n e.keyCode === keyCodes.enter &&\n this.lazyValue !== this.initialValue\n ) {\n this.initialValue = this.lazyValue\n this.$emit('change', this.initialValue)\n }\n\n this.$emit('keydown', e)\n },\n onMouseDown (e: Event) {\n // Prevent input from being blurred\n if (e.target !== this.$refs.input) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n VInput.options.methods.onMouseDown.call(this, e)\n },\n onMouseUp (e: Event) {\n if (this.hasMouseDown) this.focus()\n\n VInput.options.methods.onMouseUp.call(this, e)\n },\n setLabelWidth () {\n if (!this.outlined) return\n\n this.labelWidth = this.$refs.label\n ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n : 0\n },\n setPrefixWidth () {\n if (!this.$refs.prefix) return\n\n this.prefixWidth = this.$refs.prefix.offsetWidth\n },\n setPrependWidth () {\n if (!this.outlined || !this.$refs['prepend-inner']) return\n\n this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n },\n tryAutofocus () {\n if (\n !this.autofocus ||\n typeof document === 'undefined' ||\n !this.$refs.input) return false\n\n const root = attachedRoot(this.$el)\n if (!root || root.activeElement === this.$refs.input) return false\n\n this.$refs.input.focus()\n\n return true\n },\n updateValue (val: boolean) {\n // Sets validationState from validatable\n this.hasColor = val\n\n if (val) {\n this.initialValue = this.lazyValue\n } else if (this.initialValue !== this.lazyValue) {\n this.$emit('change', this.lazyValue)\n }\n },\n onResize () {\n this.setLabelWidth()\n this.setPrefixWidth()\n this.setPrependWidth()\n },\n },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { VNode } from 'vue'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n value?: () => void\n options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n const callback = binding.value!\n const options = binding.options || { passive: true }\n\n window.addEventListener('resize', callback, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![vnode.context!._uid] = {\n callback,\n options,\n }\n\n if (!binding.modifiers || !binding.modifiers.quiet) {\n callback()\n }\n}\n\nfunction unbind (el: HTMLElement, binding: ResizeVNodeDirective, vnode: VNode) {\n if (!el._onResize?.[vnode.context!._uid]) return\n\n const { callback, options } = el._onResize[vnode.context!._uid]!\n\n window.removeEventListener('resize', callback, options)\n\n delete el._onResize[vnode.context!._uid]\n}\n\nexport const Resize = {\n inserted,\n unbind,\n}\n\nexport default Resize\n"],"sourceRoot":""}