{"version":3,"file":"DGl40V-9.js","sources":["../../../../node_modules/vuetify/lib/components/VTextField/VTextField.mjs"],"sourcesContent":["import { Fragment as _Fragment, withDirectives as _withDirectives, createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from \"vue\";\n// Styles\nimport \"./VTextField.css\";\n\n// Components\nimport { VCounter } from \"../VCounter/VCounter.mjs\";\nimport { filterFieldProps, makeVFieldProps, VField } from \"../VField/VField.mjs\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.mjs\"; // Composables\nimport { useFocus } from \"../../composables/focus.mjs\";\nimport { forwardRefs } from \"../../composables/forwardRefs.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\"; // Directives\nimport Intersect from \"../../directives/intersect/index.mjs\"; // Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue';\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function],\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text'\n },\n modelModifiers: Object,\n ...makeVInputProps(),\n ...makeVFieldProps()\n}, 'VTextField');\nexport const VTextField = genericComponent()({\n name: 'VTextField',\n directives: {\n Intersect\n },\n inheritAttrs: false,\n props: makeVTextFieldProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;\n });\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength;\n if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;\n return props.counter;\n });\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n function onIntersect(isIntersecting, entries) {\n if (!props.autofocus || !isIntersecting) return;\n entries[0].target?.focus?.();\n }\n const vInputRef = ref();\n const vFieldRef = ref();\n const inputRef = ref();\n const isActive = computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);\n function onFocus() {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus();\n }\n if (!isFocused.value) focus();\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n if (e.target === inputRef.value) return;\n onFocus();\n e.preventDefault();\n }\n function onControlClick(e) {\n onFocus();\n emit('click:control', e);\n }\n function onClear(e) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n model.value = null;\n callEvent(props['onClick:clear'], e);\n });\n }\n function onInput(e) {\n const el = e.target;\n model.value = el.value;\n if (props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {\n const caretPosition = [el.selectionStart, el.selectionEnd];\n nextTick(() => {\n el.selectionStart = caretPosition[0];\n el.selectionEnd = caretPosition[1];\n });\n }\n }\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = filterFieldProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-text-field', {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"centerAffix\": !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid\n } = _ref2;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"onMousedown\": onControlMousedown,\n \"onClick\": onControlClick,\n \"onClick:clear\": onClear,\n \"onClick:prependInner\": props['onClick:prependInner'],\n \"onClick:appendInner\": props['onClick:appendInner'],\n \"role\": props.role\n }, fieldProps, {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref3 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n }\n } = _ref3;\n const inputNode = _withDirectives(_createVNode(\"input\", _mergeProps({\n \"ref\": inputRef,\n \"value\": model.value,\n \"onInput\": onInput,\n \"autofocus\": props.autofocus,\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"name\": props.name,\n \"placeholder\": props.placeholder,\n \"size\": 1,\n \"type\": props.type,\n \"onFocus\": onFocus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), [[_resolveDirective(\"intersect\"), {\n handler: onIntersect\n }, null, {\n once: true\n }]]);\n return _createVNode(_Fragment, null, [props.prefix && _createVNode(\"span\", {\n \"class\": \"v-text-field__prefix\"\n }, [_createVNode(\"span\", {\n \"class\": \"v-text-field__prefix__text\"\n }, [props.prefix])]), slots.default ? _createVNode(\"div\", {\n \"class\": fieldClass,\n \"data-no-activator\": \"\"\n }, [slots.default(), inputNode]) : cloneVNode(inputNode, {\n class: fieldClass\n }), props.suffix && _createVNode(\"span\", {\n \"class\": \"v-text-field__suffix\"\n }, [_createVNode(\"span\", {\n \"class\": \"v-text-field__suffix__text\"\n }, [props.suffix])])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createVNode(_Fragment, null, [_createVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": props.persistentCounter || isFocused.value,\n \"value\": counterValue.value,\n \"max\": max.value\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, inputRef);\n }\n});\n//# sourceMappingURL=VTextField.mjs.map"],"names":["activeTypes","makeVTextFieldProps","propsFactory","makeVInputProps","makeVFieldProps","VTextField","genericComponent","Intersect","focused","val","props","_ref","attrs","emit","slots","model","useProxiedModel","isFocused","focus","blur","useFocus","counterValue","computed","max","isPlainOrUnderlined","onIntersect","isIntersecting","entries","_b","_a","vInputRef","ref","vFieldRef","inputRef","isActive","onFocus","onControlMousedown","e","onControlClick","onClear","nextTick","callEvent","onInput","el","caretPosition","useRender","hasCounter","hasDetails","rootAttrs","inputAttrs","filterInputAttrs","_","inputProps","VInput","fieldProps","filterFieldProps","_createVNode","_mergeProps","$event","_ref2","id","isDisabled","isDirty","isReadonly","isValid","VField","_ref3","fieldClass","slotProps","inputNode","_withDirectives","_resolveDirective","_Fragment","cloneVNode","VCounter","forwardRefs"],"mappings":"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","debug_id":"574095f9-1e13-5397-be56-1c19e534075e"}