vuetify 3.10.6 → 3.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +1705 -1705
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +164 -164
- package/dist/json/web-types.json +3230 -3230
- package/dist/vuetify-labs.cjs +28 -26
- package/dist/vuetify-labs.css +4841 -4841
- package/dist/vuetify-labs.d.ts +58 -58
- package/dist/vuetify-labs.esm.js +28 -26
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +28 -26
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +28 -26
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3692 -3692
- package/dist/vuetify.d.ts +58 -58
- package/dist/vuetify.esm.js +28 -26
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +28 -26
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +19 -19
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +2 -1
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +3 -2
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +3 -2
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VMenu/VMenu.js +1 -1
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +2 -1
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +3 -2
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.d.ts +3 -3
- package/lib/components/VTextarea/VTextarea.js +3 -2
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +8 -12
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +55 -55
- package/lib/framework.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFileDrop","makeFileFilterProps","useFileFilter","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","shallowRef","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","truncateLength","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","rejected","setup","_ref","attrs","emit","slots","t","filterAccepted","model","isArray","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","truncatedText","truncateText","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","isDragging","handleDrop","hasFilesOrFolders","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","str","charsKeepOneSide","Math","floor","slice","onDragover","preventDefault","stopImmediatePropagation","onDragleave","onDrop","allDroppedFiles","selectAccepted","onFileSelection","target","repack","filterByType","dataTransfer","DataTransfer","accepted","items","add","event","Event","bubbles","dispatchEvent","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","expectsDirectory","webkitdirectory","acceptFallback","accept","inputAccept","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_createElementVNode","_Fragment","_normalizeClass","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFileDrop } from '@/composables/fileDrop'\nimport { makeFileFilterProps, useFileFilter } from '@/composables/fileFilter'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeFileFilterProps(),\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n rejected: (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { filterAccepted } = useFileFilter(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n const truncatedText = truncateText(name)\n return !props.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = toRef(() => isFocused.value || props.active)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n const isDragging = shallowRef(false)\n const { handleDrop, hasFilesOrFolders } = useFileDrop()\n\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function truncateText (str: string) {\n if (str.length < Number(props.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(props.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n }\n function onDragover (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = true\n }\n function onDragleave (e: DragEvent) {\n e.preventDefault()\n isDragging.value = false\n }\n async function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = false\n\n if (!inputRef.value || !hasFilesOrFolders(e)) return\n\n const allDroppedFiles = await handleDrop(e)\n selectAccepted(allDroppedFiles)\n }\n\n function onFileSelection (e: Event) {\n if (!e.target || (e as any).repack) return // prevent loop\n\n if (!props.filterByType) {\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n } else {\n selectAccepted([...(e as any).target.files])\n }\n }\n\n function selectAccepted (files: File[]) {\n const dataTransfer = new DataTransfer()\n const { accepted, rejected } = filterAccepted(files)\n\n if (rejected.length) {\n emit('rejected', rejected)\n }\n\n for (const file of accepted) {\n dataTransfer.items.add(file)\n }\n\n inputRef.value!.files = dataTransfer.files\n model.value = [...dataTransfer.files]\n\n const event = new Event('change', { bubbles: true }) as any\n event.repack = true\n inputRef.value!.dispatchEvent(event)\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = {\n ...VField.filterProps(props),\n 'onClick:clear': onClear,\n }\n\n const expectsDirectory = attrs.webkitdirectory !== undefined && attrs.webkitdirectory !== false\n const acceptFallback = attrs.accept ? String(attrs.accept) : undefined\n const inputAccept = expectsDirectory ? undefined : (props.filterByType ?? acceptFallback)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--dragging': isDragging.value,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n }) => (\n <VField\n ref={ vFieldRef }\n prependIcon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\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 details={ hasDetails.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n accept={ inputAccept }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ onFileSelection }\n onDragleave={ onDragleave }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n text={ text }\n />\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFileDrop","makeFileFilterProps","useFileFilter","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","shallowRef","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","truncateLength","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","rejected","setup","_ref","attrs","emit","slots","t","filterAccepted","model","isArray","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","truncatedText","truncateText","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","isDragging","handleDrop","hasFilesOrFolders","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","str","charsKeepOneSide","Math","floor","slice","onDragover","preventDefault","stopImmediatePropagation","onDragleave","onDrop","allDroppedFiles","selectAccepted","onFileSelection","target","repack","filterByType","dataTransfer","DataTransfer","accepted","items","add","event","Event","bubbles","dispatchEvent","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","expectsDirectory","webkitdirectory","acceptFallback","accept","inputAccept","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","controlRef","_createElementVNode","_Fragment","_normalizeClass","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFileDrop } from '@/composables/fileDrop'\nimport { makeFileFilterProps, useFileFilter } from '@/composables/fileFilter'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeFileFilterProps(),\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n rejected: (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { filterAccepted } = useFileFilter(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n const truncatedText = truncateText(name)\n return !props.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = toRef(() => isFocused.value || props.active)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n const isDragging = shallowRef(false)\n const { handleDrop, hasFilesOrFolders } = useFileDrop()\n\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function truncateText (str: string) {\n if (str.length < Number(props.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(props.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n }\n function onDragover (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = true\n }\n function onDragleave (e: DragEvent) {\n e.preventDefault()\n isDragging.value = false\n }\n async function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = false\n\n if (!inputRef.value || !hasFilesOrFolders(e)) return\n\n const allDroppedFiles = await handleDrop(e)\n selectAccepted(allDroppedFiles)\n }\n\n function onFileSelection (e: Event) {\n if (!e.target || (e as any).repack) return // prevent loop\n\n if (!props.filterByType) {\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n } else {\n selectAccepted([...(e as any).target.files])\n }\n }\n\n function selectAccepted (files: File[]) {\n const dataTransfer = new DataTransfer()\n const { accepted, rejected } = filterAccepted(files)\n\n if (rejected.length) {\n emit('rejected', rejected)\n }\n\n for (const file of accepted) {\n dataTransfer.items.add(file)\n }\n\n inputRef.value!.files = dataTransfer.files\n model.value = [...dataTransfer.files]\n\n const event = new Event('change', { bubbles: true }) as any\n event.repack = true\n inputRef.value!.dispatchEvent(event)\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = {\n ...VField.filterProps(props),\n 'onClick:clear': onClear,\n }\n\n const expectsDirectory = attrs.webkitdirectory !== undefined && attrs.webkitdirectory !== false\n const acceptFallback = attrs.accept ? String(attrs.accept) : undefined\n const inputAccept = expectsDirectory ? undefined : (props.filterByType ?? acceptFallback)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--dragging': isDragging.value,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n }) => (\n <VField\n ref={ vFieldRef }\n prependIcon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\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 details={ hasDetails.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n controlRef,\n }) => (\n <>\n <input\n ref={ val => inputRef.value = controlRef.value = val as HTMLInputElement }\n type=\"file\"\n accept={ inputAccept }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ onFileSelection }\n onDragleave={ onDragleave }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n text={ text }\n />\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -96,7 +96,7 @@ export const VMenu = genericComponent()({
|
|
|
96
96
|
// It isn't inside the menu body
|
|
97
97
|
!overlay.value.contentEl.contains(after)) {
|
|
98
98
|
if (focusTrapSuppressed) {
|
|
99
|
-
if (!props.openOnHover
|
|
99
|
+
if (!props.openOnHover && !overlay.value.activatorEl?.contains(after)) {
|
|
100
100
|
isActive.value = false;
|
|
101
101
|
}
|
|
102
102
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VMenu.js","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useRtl","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","onBeforeUnmount","onDeactivated","provide","ref","shallowRef","toRef","useId","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","IN_BROWSER","isClickInsideElement","omit","propsFactory","useRender","makeVMenuProps","id","String","submenu","Boolean","disableInitialFocus","closeDelay","closeOnContentClick","locationStrategy","location","undefined","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","isRtl","uid","overlay","parent","openChildren","Set","register","add","unregister","delete","closeParents","e","setTimeout","size","persistent","contentEl","document","removeEventListener","onFocusIn","focusTrapSuppressed","focusTrapSuppressionTimeout","onPointerdown","window","before","relatedTarget","after","target","localTop","includes","contains","openOnHover","activatorEl","focusable","focus","val","addEventListener","once","clearTimeout","immediate","onClickOutside","onKeydown","disabled","key","HTMLTextAreaElement","HTMLInputElement","closest","preventDefault","nextElement","shiftKey","el","tabIndex","onActivatorKeydown","stopImmediatePropagation","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport {\n computed,\n inject,\n mergeProps,\n nextTick,\n onBeforeUnmount,\n onDeactivated,\n provide,\n ref,\n shallowRef, toRef,\n useId,\n watch,\n} from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n IN_BROWSER,\n isClickInsideElement,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n disableInitialFocus: Boolean,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n const { isRtl } = useRtl()\n\n const uid = useId()\n const id = toRef(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(new Set<string>())\n provide(VMenuSymbol, {\n register () {\n openChildren.value.add(uid)\n },\n unregister () {\n openChildren.value.delete(uid)\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value.size &&\n !props.persistent &&\n (e == null || (overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n onBeforeUnmount(() => {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n })\n onDeactivated(() => isActive.value = false)\n\n let focusTrapSuppressed = false\n let focusTrapSuppressionTimeout = -1\n\n async function onPointerdown () {\n focusTrapSuppressed = true\n focusTrapSuppressionTimeout = window.setTimeout(() => {\n focusTrapSuppressed = false\n }, 100)\n }\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the menu without open submenus or overlays\n overlay.value?.localTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n if (focusTrapSuppressed) {\n if (!props.openOnHover || !overlay.value.activatorEl?.contains(after)) {\n isActive.value = false\n }\n } else {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n\n document.removeEventListener('pointerdown', onPointerdown)\n }\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n if (IN_BROWSER && !props.disableInitialFocus) {\n document.addEventListener('pointerdown', onPointerdown)\n document.addEventListener('focusin', onFocusIn, { once: true })\n }\n } else {\n parent?.unregister()\n if (IN_BROWSER) {\n clearTimeout(focusTrapSuppressionTimeout)\n document.removeEventListener('pointerdown', onPointerdown)\n document.removeEventListener('focusin', onFocusIn)\n }\n }\n }, { immediate: true })\n\n function onClickOutside (e: MouseEvent) {\n parent?.closeParents(e)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab' || (e.key === 'Enter' && !props.closeOnContentClick)) {\n if (\n e.key === 'Enter' &&\n ((e.target instanceof HTMLTextAreaElement) ||\n (e.target instanceof HTMLInputElement && !!e.target.closest('form')))\n ) return\n if (e.key === 'Enter') e.preventDefault()\n\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'prev')\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault()\n focusChild(el, 'first')\n }\n }\n } else if (\n props.submenu\n ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')\n : ['ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-controls': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n id={ id.value }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n location={ props.location ?? (props.submenu ? 'end' : 'bottom') }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VMenu.js","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useRtl","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","onBeforeUnmount","onDeactivated","provide","ref","shallowRef","toRef","useId","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","IN_BROWSER","isClickInsideElement","omit","propsFactory","useRender","makeVMenuProps","id","String","submenu","Boolean","disableInitialFocus","closeDelay","closeOnContentClick","locationStrategy","location","undefined","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","isRtl","uid","overlay","parent","openChildren","Set","register","add","unregister","delete","closeParents","e","setTimeout","size","persistent","contentEl","document","removeEventListener","onFocusIn","focusTrapSuppressed","focusTrapSuppressionTimeout","onPointerdown","window","before","relatedTarget","after","target","localTop","includes","contains","openOnHover","activatorEl","focusable","focus","val","addEventListener","once","clearTimeout","immediate","onClickOutside","onKeydown","disabled","key","HTMLTextAreaElement","HTMLInputElement","closest","preventDefault","nextElement","shiftKey","el","tabIndex","onActivatorKeydown","stopImmediatePropagation","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport {\n computed,\n inject,\n mergeProps,\n nextTick,\n onBeforeUnmount,\n onDeactivated,\n provide,\n ref,\n shallowRef, toRef,\n useId,\n watch,\n} from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n IN_BROWSER,\n isClickInsideElement,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n disableInitialFocus: Boolean,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n const { isRtl } = useRtl()\n\n const uid = useId()\n const id = toRef(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(new Set<string>())\n provide(VMenuSymbol, {\n register () {\n openChildren.value.add(uid)\n },\n unregister () {\n openChildren.value.delete(uid)\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value.size &&\n !props.persistent &&\n (e == null || (overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n onBeforeUnmount(() => {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n })\n onDeactivated(() => isActive.value = false)\n\n let focusTrapSuppressed = false\n let focusTrapSuppressionTimeout = -1\n\n async function onPointerdown () {\n focusTrapSuppressed = true\n focusTrapSuppressionTimeout = window.setTimeout(() => {\n focusTrapSuppressed = false\n }, 100)\n }\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the menu without open submenus or overlays\n overlay.value?.localTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n if (focusTrapSuppressed) {\n if (!props.openOnHover && !overlay.value.activatorEl?.contains(after)) {\n isActive.value = false\n }\n } else {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n\n document.removeEventListener('pointerdown', onPointerdown)\n }\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n if (IN_BROWSER && !props.disableInitialFocus) {\n document.addEventListener('pointerdown', onPointerdown)\n document.addEventListener('focusin', onFocusIn, { once: true })\n }\n } else {\n parent?.unregister()\n if (IN_BROWSER) {\n clearTimeout(focusTrapSuppressionTimeout)\n document.removeEventListener('pointerdown', onPointerdown)\n document.removeEventListener('focusin', onFocusIn)\n }\n }\n }, { immediate: true })\n\n function onClickOutside (e: MouseEvent) {\n parent?.closeParents(e)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab' || (e.key === 'Enter' && !props.closeOnContentClick)) {\n if (\n e.key === 'Enter' &&\n ((e.target instanceof HTMLTextAreaElement) ||\n (e.target instanceof HTMLInputElement && !!e.target.closest('form')))\n ) return\n if (e.key === 'Enter') e.preventDefault()\n\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'prev')\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault()\n focusChild(el, 'first')\n }\n }\n } else if (\n props.submenu\n ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')\n : ['ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-controls': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n id={ id.value }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n location={ props.location ?? (props.submenu ? 'end' : 'bottom') }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -398,7 +398,8 @@ export const VSelect = genericComponent()({
|
|
|
398
398
|
"key": item.value,
|
|
399
399
|
"modelValue": isSelected,
|
|
400
400
|
"ripple": false,
|
|
401
|
-
"tabindex": "-1"
|
|
401
|
+
"tabindex": "-1",
|
|
402
|
+
"onClick": event => event.preventDefault()
|
|
402
403
|
}, null) : undefined, camelizedProps.prependAvatar && _createVNode(VAvatar, {
|
|
403
404
|
"image": camelizedProps.prependAvatar
|
|
404
405
|
}, null), camelizedProps.prependIcon && _createVNode(VIcon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSelect.js","names":["VDialogTransition","VAvatar","VCheckboxBtn","VChip","VDefaultsProvider","VDivider","VIcon","VList","VListItem","VListSubheader","VMenu","makeVTextFieldProps","VTextField","VVirtualScroll","useScrolling","useForm","forwardRefs","IconValue","makeItemsProps","useItems","useLocale","makeMenuActivatorProps","useMenuActivator","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","watch","camelizeProps","checkPrintable","deepEqual","ensureValidVNode","genericComponent","IN_BROWSER","matchesSelector","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","listProps","type","Object","menu","menuIcon","default","menuProps","multiple","noDataText","String","openOnClear","itemColor","noAutoScroll","itemChildren","makeVSelectProps","modelValue","role","transition","component","VSelect","name","props","emits","focused","value","ue","setup","_ref","slots","t","vTextFieldRef","vMenuRef","vVirtualScrollRef","items","transformIn","transformOut","model","v","transformed","counterValue","length","form","selectedValues","map","selection","isFocused","keyboardLookupPrefix","keyboardLookupIndex","keyboardLookupLastTime","displayItems","filter","item","some","s","valueComparator","menuDisabled","isReadonly","isDisabled","_menu","get","set","ΨopenChildren","size","menuId","ariaExpanded","ariaControls","ariaLabel","computedMenuProps","activatorProps","listRef","listEvents","onClear","e","onMousedownControl","onListKeydown","onKeydown","key","includes","preventDefault","focus","KEYBOARD_LOOKUP_THRESHOLD","now","performance","toLowerCase","findItem","result","findItemBase","at","slice","i","_item","title","startsWith","undefined","index","select","arguments","disabled","findIndex","add","splice","onBlur","$el","contains","relatedTarget","onAfterEnter","calculateVisibleItems","onAfterLeave","onFocusin","onModelUpdate","find","window","requestAnimationFrame","scrollToIndex","newVal","oldVal","hasChips","chip","hasList","isDirty","textFieldProps","filterProps","placeholder","label","persistentPlaceholder","_createVNode","_mergeProps","join","$event","externalValue","class","style","_createElementVNode","_Fragment","color","_ref2","itemRef","camelizedProps","itemProps","onClick","divider","raw","subheader","prepend","_ref3","isSelected","prependAvatar","prependIcon","onChipClose","stopPropagation","slotProps","onMousedown","hasSlot","slotContent","closable","text","_createTextVNode","append-inner","_len","args","Array","_key","fieldIconColor"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDivider } from '@/components/VDivider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem, VListSubheader } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from './useScrolling'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps, useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { makeMenuActivatorProps, useMenuActivator } from '@/composables/menuActivator'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n camelizeProps,\n checkPrintable,\n deepEqual,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n matchesSelector,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = [T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject> | null\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n listProps: {\n type: Object as PropType<VList['$props']>,\n },\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n itemColor: String,\n noAutoScroll: Boolean,\n\n ...makeMenuActivatorProps(),\n ...makeItemsProps({ itemChildren: false }),\n}, 'Select')\n\nexport const makeVSelectProps = propsFactory({\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition as Component } }),\n}, 'VSelect')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VSelect = genericComponent<new <\n T extends readonly any[],\n Item = ItemType<T>,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<Item, ReturnObject, Multiple> = Value<Item, ReturnObject, Multiple>\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit<VInputSlots & VFieldSlots, 'default'> & {\n item: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n chip: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n selection: { item: ListItem<Item>, index: number }\n subheader: { props: Record<string, unknown>, index: number }\n divider: { props: Record<string, unknown>, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSelect',\n\n props: makeVSelectProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:menu': (ue: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref<VTextField>()\n const vMenuRef = ref<VMenu>()\n const vVirtualScrollRef = ref<VVirtualScroll>()\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(v === null ? [null] : wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : model.value.length\n })\n const form = useForm(props)\n const selectedValues = computed(() => model.value.map(selection => selection.value))\n const isFocused = shallowRef(false)\n\n let keyboardLookupPrefix = ''\n let keyboardLookupIndex = -1\n let keyboardLookupLastTime: number\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !model.value.some(s => (props.valueComparator || deepEqual)(s, item)))\n }\n return items.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n form.isReadonly.value || form.isDisabled.value\n ))\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n if (v && menuDisabled.value) return\n _menu.value = v\n },\n })\n\n const { menuId, ariaExpanded, ariaControls, ariaLabel } = useMenuActivator(props, menu)\n\n const computedMenuProps = computed(() => {\n return {\n ...props.menuProps,\n activatorProps: {\n ...(props.menuProps?.activatorProps || {}),\n 'aria-haspopup': 'listbox', // Set aria-haspopup to 'listbox'\n },\n }\n })\n\n const listRef = ref<VList>()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e)) {\n onKeydown(e)\n }\n }\n function onKeydown (e: KeyboardEvent) {\n if (!e.key || form.isReadonly.value) return\n\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'Home') {\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n listRef.value?.focus('last')\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n\n if (!checkPrintable(e)) return\n\n const now = performance.now()\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = ''\n keyboardLookupIndex = -1\n }\n keyboardLookupPrefix += e.key.toLowerCase()\n keyboardLookupLastTime = now\n\n const items = displayItems.value\n function findItem () {\n let result = findItemBase()\n if (result) return result\n\n if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {\n // No matches but we have a repeated letter, try the next item with that prefix\n keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1)\n result = findItemBase()\n if (result) return result\n }\n\n // Still nothing, wrap around to the top\n keyboardLookupIndex = -1\n result = findItemBase()\n if (result) return result\n\n // Still nothing, try just the new letter\n keyboardLookupPrefix = e.key.toLowerCase()\n return findItemBase()\n }\n function findItemBase () {\n for (let i = keyboardLookupIndex + 1; i < items.length; i++) {\n const _item = items[i]\n if (_item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {\n return [_item, i] as const\n }\n }\n return undefined\n }\n\n const result = findItem()\n if (!result) return\n\n const [item, index] = result\n keyboardLookupIndex = index\n listRef.value?.focus(index)\n if (!props.multiple) {\n model.value = [item]\n }\n }\n\n /** @param set - null means toggle */\n function select (item: ListItem, set: boolean | null = true) {\n if (item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n\n nextTick(() => {\n menu.value = false\n })\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n vTextFieldRef.value?.focus()\n }\n }\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n function onModelUpdate (v: any) {\n if (v == null) model.value = []\n else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === v)\n if (item) {\n select(item)\n }\n } else if (vTextFieldRef.value) {\n vTextFieldRef.value.value = ''\n }\n }\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value))\n )\n IN_BROWSER && !props.noAutoScroll && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && props.hideNoData && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n const placeholder = isDirty || (\n !isFocused.value &&\n props.label &&\n !props.persistentPlaceholder\n ) ? undefined : props.placeholder\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ onModelUpdate }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n counterValue={ counterValue.value }\n dirty={ isDirty }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n 'v-select--selection-slot': !!slots.selection,\n },\n props.class,\n ]}\n style={ props.style }\n inputmode=\"none\"\n placeholder={ placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n aria-expanded={ ariaExpanded.value }\n aria-controls={ ariaControls.value }\n aria-label={ ariaLabel.value }\n title={ ariaLabel.value }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n id={ menuId.value }\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n disabled={ menuDisabled.value }\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n { ...computedMenuProps.value }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selectedValues.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n tabindex=\"-1\"\n selectable\n aria-live=\"polite\"\n aria-label={ `${props.label}-list` }\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem key=\"no-data\" title={ t(props.noDataText) } />\n ))}\n\n <VVirtualScroll ref={ vVirtualScrollRef } renderless items={ displayItems.value } itemKey=\"value\">\n { ({ item, index, itemRef }) => {\n const camelizedProps = camelizeProps(item.props)\n\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n onClick: () => select(item, null),\n })\n\n if (item.type === 'divider') {\n return slots.divider?.({ props: item.raw, index }) ?? (\n <VDivider { ...item.props } key={ `divider-${index}` } />\n )\n }\n\n if (item.type === 'subheader') {\n return slots.subheader?.({ props: item.raw, index }) ?? (\n <VListSubheader { ...item.props } key={ `subheader-${index}` } />\n )\n }\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n <VListItem { ...itemProps } role=\"option\">\n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n <VCheckboxBtn\n key={ item.value }\n modelValue={ isSelected }\n ripple={ false }\n tabindex=\"-1\"\n />\n ) : undefined }\n\n { camelizedProps.prependAvatar && (\n <VAvatar image={ camelizedProps.prependAvatar } />\n )}\n\n { camelizedProps.prependIcon && (\n <VIcon icon={ camelizedProps.prependIcon } />\n )}\n </>\n ),\n }}\n </VListItem>\n )\n }}\n </VVirtualScroll>\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\n disabled={ item.props.disabled }\n { ...slotProps }\n />\n ) : (\n <VDefaultsProvider\n key=\"chip-defaults\"\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slotContent }\n </VDefaultsProvider>\n )\n ) : (\n slotContent ?? (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { props.menuIcon ? (\n <VIcon\n class=\"v-select__menu-icon\"\n color={ vTextFieldRef.value?.fieldIconColor }\n icon={ props.menuIcon }\n />\n ) : undefined }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VSelect.js","names":["VDialogTransition","VAvatar","VCheckboxBtn","VChip","VDefaultsProvider","VDivider","VIcon","VList","VListItem","VListSubheader","VMenu","makeVTextFieldProps","VTextField","VVirtualScroll","useScrolling","useForm","forwardRefs","IconValue","makeItemsProps","useItems","useLocale","makeMenuActivatorProps","useMenuActivator","useProxiedModel","makeTransitionProps","computed","mergeProps","nextTick","ref","shallowRef","watch","camelizeProps","checkPrintable","deepEqual","ensureValidVNode","genericComponent","IN_BROWSER","matchesSelector","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","listProps","type","Object","menu","menuIcon","default","menuProps","multiple","noDataText","String","openOnClear","itemColor","noAutoScroll","itemChildren","makeVSelectProps","modelValue","role","transition","component","VSelect","name","props","emits","focused","value","ue","setup","_ref","slots","t","vTextFieldRef","vMenuRef","vVirtualScrollRef","items","transformIn","transformOut","model","v","transformed","counterValue","length","form","selectedValues","map","selection","isFocused","keyboardLookupPrefix","keyboardLookupIndex","keyboardLookupLastTime","displayItems","filter","item","some","s","valueComparator","menuDisabled","isReadonly","isDisabled","_menu","get","set","ΨopenChildren","size","menuId","ariaExpanded","ariaControls","ariaLabel","computedMenuProps","activatorProps","listRef","listEvents","onClear","e","onMousedownControl","onListKeydown","onKeydown","key","includes","preventDefault","focus","KEYBOARD_LOOKUP_THRESHOLD","now","performance","toLowerCase","findItem","result","findItemBase","at","slice","i","_item","title","startsWith","undefined","index","select","arguments","disabled","findIndex","add","splice","onBlur","$el","contains","relatedTarget","onAfterEnter","calculateVisibleItems","onAfterLeave","onFocusin","onModelUpdate","find","window","requestAnimationFrame","scrollToIndex","newVal","oldVal","hasChips","chip","hasList","isDirty","textFieldProps","filterProps","placeholder","label","persistentPlaceholder","_createVNode","_mergeProps","join","$event","externalValue","class","style","_createElementVNode","_Fragment","color","_ref2","itemRef","camelizedProps","itemProps","onClick","divider","raw","subheader","prepend","_ref3","isSelected","event","prependAvatar","prependIcon","onChipClose","stopPropagation","slotProps","onMousedown","hasSlot","slotContent","closable","text","_createTextVNode","append-inner","_len","args","Array","_key","fieldIconColor"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDivider } from '@/components/VDivider'\nimport { VIcon } from '@/components/VIcon'\nimport { VList, VListItem, VListSubheader } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VVirtualScroll } from '@/components/VVirtualScroll'\n\n// Composables\nimport { useScrolling } from './useScrolling'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps, useItems } from '@/composables/list-items'\nimport { useLocale } from '@/composables/locale'\nimport { makeMenuActivatorProps, useMenuActivator } from '@/composables/menuActivator'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue'\nimport {\n camelizeProps,\n checkPrintable,\n deepEqual,\n ensureValidVNode,\n genericComponent,\n IN_BROWSER,\n matchesSelector,\n omit,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = [T] extends [Primitive]\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject> | null\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n listProps: {\n type: Object as PropType<VList['$props']>,\n },\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n itemColor: String,\n noAutoScroll: Boolean,\n\n ...makeMenuActivatorProps(),\n ...makeItemsProps({ itemChildren: false }),\n}, 'Select')\n\nexport const makeVSelectProps = propsFactory({\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox',\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition as Component } }),\n}, 'VSelect')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VSelect = genericComponent<new <\n T extends readonly any[],\n Item = ItemType<T>,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<Item, ReturnObject, Multiple> = Value<Item, ReturnObject, Multiple>\n>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V | null\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: Omit<VInputSlots & VFieldSlots, 'default'> & {\n item: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n chip: { item: ListItem<Item>, index: number, props: Record<string, unknown> }\n selection: { item: ListItem<Item>, index: number }\n subheader: { props: Record<string, unknown>, index: number }\n divider: { props: Record<string, unknown>, index: number }\n 'prepend-item': never\n 'append-item': never\n 'no-data': never\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSelect',\n\n props: makeVSelectProps(),\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n 'update:menu': (ue: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref<VTextField>()\n const vMenuRef = ref<VMenu>()\n const vVirtualScrollRef = ref<VVirtualScroll>()\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(v === null ? [null] : wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : model.value.length\n })\n const form = useForm(props)\n const selectedValues = computed(() => model.value.map(selection => selection.value))\n const isFocused = shallowRef(false)\n\n let keyboardLookupPrefix = ''\n let keyboardLookupIndex = -1\n let keyboardLookupLastTime: number\n\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !model.value.some(s => (props.valueComparator || deepEqual)(s, item)))\n }\n return items.value\n })\n\n const menuDisabled = computed(() => (\n (props.hideNoData && !displayItems.value.length) ||\n form.isReadonly.value || form.isDisabled.value\n ))\n const _menu = useProxiedModel(props, 'menu')\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return\n if (v && menuDisabled.value) return\n _menu.value = v\n },\n })\n\n const { menuId, ariaExpanded, ariaControls, ariaLabel } = useMenuActivator(props, menu)\n\n const computedMenuProps = computed(() => {\n return {\n ...props.menuProps,\n activatorProps: {\n ...(props.menuProps?.activatorProps || {}),\n 'aria-haspopup': 'listbox', // Set aria-haspopup to 'listbox'\n },\n }\n })\n\n const listRef = ref<VList>()\n const listEvents = useScrolling(listRef, vTextFieldRef)\n function onClear (e: MouseEvent) {\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onMousedownControl () {\n if (menuDisabled.value) return\n\n menu.value = !menu.value\n }\n function onListKeydown (e: KeyboardEvent) {\n if (checkPrintable(e)) {\n onKeydown(e)\n }\n }\n function onKeydown (e: KeyboardEvent) {\n if (!e.key || form.isReadonly.value) return\n\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault()\n }\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'Home') {\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n listRef.value?.focus('last')\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n\n if (!checkPrintable(e)) return\n\n const now = performance.now()\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = ''\n keyboardLookupIndex = -1\n }\n keyboardLookupPrefix += e.key.toLowerCase()\n keyboardLookupLastTime = now\n\n const items = displayItems.value\n function findItem () {\n let result = findItemBase()\n if (result) return result\n\n if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {\n // No matches but we have a repeated letter, try the next item with that prefix\n keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1)\n result = findItemBase()\n if (result) return result\n }\n\n // Still nothing, wrap around to the top\n keyboardLookupIndex = -1\n result = findItemBase()\n if (result) return result\n\n // Still nothing, try just the new letter\n keyboardLookupPrefix = e.key.toLowerCase()\n return findItemBase()\n }\n function findItemBase () {\n for (let i = keyboardLookupIndex + 1; i < items.length; i++) {\n const _item = items[i]\n if (_item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {\n return [_item, i] as const\n }\n }\n return undefined\n }\n\n const result = findItem()\n if (!result) return\n\n const [item, index] = result\n keyboardLookupIndex = index\n listRef.value?.focus(index)\n if (!props.multiple) {\n model.value = [item]\n }\n }\n\n /** @param set - null means toggle */\n function select (item: ListItem, set: boolean | null = true) {\n if (item.props.disabled) return\n\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value))\n const add = set == null ? !~index : set\n\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value]\n value.splice(index, 1)\n model.value = value\n } else if (add) {\n model.value = [...model.value, item]\n }\n } else {\n const add = set !== false\n model.value = add ? [item] : []\n\n nextTick(() => {\n menu.value = false\n })\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onAfterEnter () {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems()\n }\n }\n function onAfterLeave () {\n if (isFocused.value) {\n vTextFieldRef.value?.focus()\n }\n }\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n function onModelUpdate (v: any) {\n if (v == null) model.value = []\n else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === v)\n if (item) {\n select(item)\n }\n } else if (vTextFieldRef.value) {\n vTextFieldRef.value.value = ''\n }\n }\n\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(\n item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value))\n )\n IN_BROWSER && !props.noAutoScroll && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index)\n })\n }\n })\n\n watch(items, (newVal, oldVal) => {\n if (menu.value) return\n\n if (isFocused.value && props.hideNoData && !oldVal.length && newVal.length) {\n menu.value = true\n }\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const hasList = !!(\n (!props.hideNoData || displayItems.value.length) ||\n slots['prepend-item'] ||\n slots['append-item'] ||\n slots['no-data']\n )\n const isDirty = model.value.length > 0\n const textFieldProps = VTextField.filterProps(props)\n\n const placeholder = isDirty || (\n !isFocused.value &&\n props.label &&\n !props.persistentPlaceholder\n ) ? undefined : props.placeholder\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ onModelUpdate }\n v-model:focused={ isFocused.value }\n validationValue={ model.externalValue }\n counterValue={ counterValue.value }\n dirty={ isDirty }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n 'v-select--selection-slot': !!slots.selection,\n },\n props.class,\n ]}\n style={ props.style }\n inputmode=\"none\"\n placeholder={ placeholder }\n onClick:clear={ onClear }\n onMousedown:control={ onMousedownControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n aria-expanded={ ariaExpanded.value }\n aria-controls={ ariaControls.value }\n aria-label={ ariaLabel.value }\n title={ ariaLabel.value }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n id={ menuId.value }\n ref={ vMenuRef }\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n disabled={ menuDisabled.value }\n eager={ props.eager }\n maxHeight={ 310 }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n { ...computedMenuProps.value }\n >\n { hasList && (\n <VList\n ref={ listRef }\n selected={ selectedValues.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onKeydown={ onListKeydown }\n onFocusin={ onFocusin }\n tabindex=\"-1\"\n selectable\n aria-live=\"polite\"\n aria-label={ `${props.label}-list` }\n color={ props.itemColor ?? props.color }\n { ...listEvents }\n { ...props.listProps }\n >\n { slots['prepend-item']?.() }\n\n { !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem key=\"no-data\" title={ t(props.noDataText) } />\n ))}\n\n <VVirtualScroll ref={ vVirtualScrollRef } renderless items={ displayItems.value } itemKey=\"value\">\n { ({ item, index, itemRef }) => {\n const camelizedProps = camelizeProps(item.props)\n\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n onClick: () => select(item, null),\n })\n\n if (item.type === 'divider') {\n return slots.divider?.({ props: item.raw, index }) ?? (\n <VDivider { ...item.props } key={ `divider-${index}` } />\n )\n }\n\n if (item.type === 'subheader') {\n return slots.subheader?.({ props: item.raw, index }) ?? (\n <VListSubheader { ...item.props } key={ `subheader-${index}` } />\n )\n }\n\n return slots.item?.({\n item,\n index,\n props: itemProps,\n }) ?? (\n <VListItem { ...itemProps } role=\"option\">\n {{\n prepend: ({ isSelected }) => (\n <>\n { props.multiple && !props.hideSelected ? (\n <VCheckboxBtn\n key={ item.value }\n modelValue={ isSelected }\n ripple={ false }\n tabindex=\"-1\"\n onClick={ (event: MouseEvent) => event.preventDefault() }\n />\n ) : undefined }\n\n { camelizedProps.prependAvatar && (\n <VAvatar image={ camelizedProps.prependAvatar } />\n )}\n\n { camelizedProps.prependIcon && (\n <VIcon icon={ camelizedProps.prependIcon } />\n )}\n </>\n ),\n }}\n </VListItem>\n )\n }}\n </VVirtualScroll>\n\n { slots['append-item']?.() }\n </VList>\n )}\n </VMenu>\n\n { model.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item, false)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n onChipClose(e)\n },\n onMousedown (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n const hasSlot = hasChips ? !!slots.chip : !!slots.selection\n const slotContent = hasSlot\n ? ensureValidVNode(\n hasChips\n ? slots.chip!({ item, index, props: slotProps })\n : slots.selection!({ item, index })\n )\n : undefined\n\n if (hasSlot && !slotContent) return undefined\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n !slots.chip ? (\n <VChip\n key=\"chip\"\n closable={ props.closableChips }\n size=\"small\"\n text={ item.title }\n disabled={ item.props.disabled }\n { ...slotProps }\n />\n ) : (\n <VDefaultsProvider\n key=\"chip-defaults\"\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slotContent }\n </VDefaultsProvider>\n )\n ) : (\n slotContent ?? (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < model.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n )}\n </span>\n )\n )}\n </div>\n )\n })}\n </>\n ),\n 'append-inner': (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { props.menuIcon ? (\n <VIcon\n class=\"v-select__menu-icon\"\n color={ vTextFieldRef.value?.fieldIconColor }\n icon={ props.menuIcon }\n />\n ) : undefined }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,OAAO;AAAA,SACPC,YAAY;AAAA,SACZC,KAAK;AAAA,SACLC,iBAAiB;AAAA,SACjBC,QAAQ;AAAA,SACRC,KAAK;AAAA,SACLC,KAAK,EAAEC,SAAS,EAAEC,cAAc;AAAA,SAChCC,KAAK;AAAA,SACLC,mBAAmB,EAAEC,UAAU;AAAA,SAC/BC,cAAc,sCAEvB;AAAA,SACSC,YAAY;AAAA,SACZC,OAAO;AAAA,SACPC,WAAW;AAAA,SACXC,SAAS;AAAA,SACTC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,SAAS;AAAA,SACTC,sBAAsB,EAAEC,gBAAgB;AAAA,SACxCC,eAAe;AAAA,SACfC,mBAAmB,2CAE5B;AACA,SAASC,QAAQ,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAE1EC,aAAa,EACbC,cAAc,EACdC,SAAS,EACTC,gBAAgB,EAChBC,gBAAgB,EAChBC,UAAU,EACVC,eAAe,EACfC,IAAI,EACJC,YAAY,EACZC,SAAS,EACTC,WAAW,+BAGb;AAkBA,OAAO,MAAMC,eAAe,GAAGH,YAAY,CAAC;EAC1CI,KAAK,EAAEC,OAAO;EACdC,aAAa,EAAED,OAAO;EACtBE,KAAK,EAAEF,OAAO;EACdG,UAAU,EAAEH,OAAO;EACnBI,YAAY,EAAEJ,OAAO;EACrBK,SAAS,EAAE;IACTC,IAAI,EAAEC;EACR,CAAC;EACDC,IAAI,EAAER,OAAO;EACbS,QAAQ,EAAE;IACRH,IAAI,EAAEjC,SAAS;IACfqC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTL,IAAI,EAAEC;EACR,CAAC;EACDK,QAAQ,EAAEZ,OAAO;EACjBa,UAAU,EAAE;IACVP,IAAI,EAAEQ,MAAM;IACZJ,OAAO,EAAE;EACX,CAAC;EACDK,WAAW,EAAEf,OAAO;EACpBgB,SAAS,EAAEF,MAAM;EACjBG,YAAY,EAAEjB,OAAO;EAErB,GAAGvB,sBAAsB,CAAC,CAAC;EAC3B,GAAGH,cAAc,CAAC;IAAE4C,YAAY,EAAE;EAAM,CAAC;AAC3C,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,MAAMC,gBAAgB,GAAGxB,YAAY,CAAC;EAC3C,GAAGG,eAAe,CAAC,CAAC;EACpB,GAAGJ,IAAI,CAAC3B,mBAAmB,CAAC;IAC1BqD,UAAU,EAAE,IAAI;IAChBC,IAAI,EAAE;EACR,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;EACpD,GAAGzC,mBAAmB,CAAC;IAAE0C,UAAU,EAAE;MAAEC,SAAS,EAAEnE;IAA+B;EAAE,CAAC;AACtF,CAAC,EAAE,SAAS,CAAC;AAIb,OAAO,MAAMoE,OAAO,GAAGjC,gBAAgB,CA2BQ,CAAC,CAAC;EAC/CkC,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAEP,gBAAgB,CAAC,CAAC;EAEzBQ,KAAK,EAAE;IACL,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;IAC5C,mBAAmB,EAAGC,KAAU,IAAK,IAAI;IACzC,aAAa,EAAGC,EAAW,IAAK;EAClC,CAAC;EAEDC,KAAKA,CAAEL,KAAK,EAAAM,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAE,CAAC,GAAG1D,SAAS,CAAC,CAAC;IACzB,MAAM2D,aAAa,GAAGnD,GAAG,CAAa,CAAC;IACvC,MAAMoD,QAAQ,GAAGpD,GAAG,CAAQ,CAAC;IAC7B,MAAMqD,iBAAiB,GAAGrD,GAAG,CAAiB,CAAC;IAC/C,MAAM;MAAEsD,KAAK;MAAEC,WAAW;MAAEC;IAAa,CAAC,GAAGjE,QAAQ,CAACmD,KAAK,CAAC;IAC5D,MAAMe,KAAK,GAAG9D,eAAe,CAC3B+C,KAAK,EACL,YAAY,EACZ,EAAE,EACFgB,CAAC,IAAIH,WAAW,CAACG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG7C,WAAW,CAAC6C,CAAC,CAAC,CAAC,EACtDA,CAAC,IAAI;MACH,MAAMC,WAAW,GAAGH,YAAY,CAACE,CAAC,CAAC;MACnC,OAAOhB,KAAK,CAACd,QAAQ,GAAG+B,WAAW,GAAIA,WAAW,CAAC,CAAC,CAAC,IAAI,IAAK;IAChE,CACF,CAAC;IACD,MAAMC,YAAY,GAAG/D,QAAQ,CAAC,MAAM;MAClC,OAAO,OAAO6C,KAAK,CAACkB,YAAY,KAAK,UAAU,GAAGlB,KAAK,CAACkB,YAAY,CAACH,KAAK,CAACZ,KAAK,CAAC,GAC7E,OAAOH,KAAK,CAACkB,YAAY,KAAK,QAAQ,GAAGlB,KAAK,CAACkB,YAAY,GAC3DH,KAAK,CAACZ,KAAK,CAACgB,MAAM;IACxB,CAAC,CAAC;IACF,MAAMC,IAAI,GAAG3E,OAAO,CAACuD,KAAK,CAAC;IAC3B,MAAMqB,cAAc,GAAGlE,QAAQ,CAAC,MAAM4D,KAAK,CAACZ,KAAK,CAACmB,GAAG,CAACC,SAAS,IAAIA,SAAS,CAACpB,KAAK,CAAC,CAAC;IACpF,MAAMqB,SAAS,GAAGjE,UAAU,CAAC,KAAK,CAAC;IAEnC,IAAIkE,oBAAoB,GAAG,EAAE;IAC7B,IAAIC,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAIC,sBAA8B;IAElC,MAAMC,YAAY,GAAGzE,QAAQ,CAAC,MAAM;MAClC,IAAI6C,KAAK,CAACtB,YAAY,EAAE;QACtB,OAAOkC,KAAK,CAACT,KAAK,CAAC0B,MAAM,CAACC,IAAI,IAAI,CAACf,KAAK,CAACZ,KAAK,CAAC4B,IAAI,CAACC,CAAC,IAAI,CAAChC,KAAK,CAACiC,eAAe,IAAItE,SAAS,EAAEqE,CAAC,EAAEF,IAAI,CAAC,CAAC,CAAC;MAC1G;MACA,OAAOlB,KAAK,CAACT,KAAK;IACpB,CAAC,CAAC;IAEF,MAAM+B,YAAY,GAAG/E,QAAQ,CAAC,MAC3B6C,KAAK,CAACvB,UAAU,IAAI,CAACmD,YAAY,CAACzB,KAAK,CAACgB,MAAM,IAC/CC,IAAI,CAACe,UAAU,CAAChC,KAAK,IAAIiB,IAAI,CAACgB,UAAU,CAACjC,KAC1C,CAAC;IACF,MAAMkC,KAAK,GAAGpF,eAAe,CAAC+C,KAAK,EAAE,MAAM,CAAC;IAC5C,MAAMlB,IAAI,GAAG3B,QAAQ,CAAC;MACpBmF,GAAG,EAAEA,CAAA,KAAMD,KAAK,CAAClC,KAAK;MACtBoC,GAAG,EAAEvB,CAAC,IAAI;QACR,IAAIqB,KAAK,CAAClC,KAAK,IAAI,CAACa,CAAC,IAAIN,QAAQ,CAACP,KAAK,EAAEqC,aAAa,CAACC,IAAI,EAAE;QAC7D,IAAIzB,CAAC,IAAIkB,YAAY,CAAC/B,KAAK,EAAE;QAC7BkC,KAAK,CAAClC,KAAK,GAAGa,CAAC;MACjB;IACF,CAAC,CAAC;IAEF,MAAM;MAAE0B,MAAM;MAAEC,YAAY;MAAEC,YAAY;MAAEC;IAAU,CAAC,GAAG7F,gBAAgB,CAACgD,KAAK,EAAElB,IAAI,CAAC;IAEvF,MAAMgE,iBAAiB,GAAG3F,QAAQ,CAAC,MAAM;MACvC,OAAO;QACL,GAAG6C,KAAK,CAACf,SAAS;QAClB8D,cAAc,EAAE;UACd,IAAI/C,KAAK,CAACf,SAAS,EAAE8D,cAAc,IAAI,CAAC,CAAC,CAAC;UAC1C,eAAe,EAAE,SAAS,CAAE;QAC9B;MACF,CAAC;IACH,CAAC,CAAC;IAEF,MAAMC,OAAO,GAAG1F,GAAG,CAAQ,CAAC;IAC5B,MAAM2F,UAAU,GAAGzG,YAAY,CAACwG,OAAO,EAAEvC,aAAa,CAAC;IACvD,SAASyC,OAAOA,CAAEC,CAAa,EAAE;MAC/B,IAAInD,KAAK,CAACX,WAAW,EAAE;QACrBP,IAAI,CAACqB,KAAK,GAAG,IAAI;MACnB;IACF;IACA,SAASiD,kBAAkBA,CAAA,EAAI;MAC7B,IAAIlB,YAAY,CAAC/B,KAAK,EAAE;MAExBrB,IAAI,CAACqB,KAAK,GAAG,CAACrB,IAAI,CAACqB,KAAK;IAC1B;IACA,SAASkD,aAAaA,CAAEF,CAAgB,EAAE;MACxC,IAAIzF,cAAc,CAACyF,CAAC,CAAC,EAAE;QACrBG,SAAS,CAACH,CAAC,CAAC;MACd;IACF;IACA,SAASG,SAASA,CAAEH,CAAgB,EAAE;MACpC,IAAI,CAACA,CAAC,CAACI,GAAG,IAAInC,IAAI,CAACe,UAAU,CAAChC,KAAK,EAAE;MAErC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAACqD,QAAQ,CAACL,CAAC,CAACI,GAAG,CAAC,EAAE;QACzEJ,CAAC,CAACM,cAAc,CAAC,CAAC;MACpB;MAEA,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,CAACD,QAAQ,CAACL,CAAC,CAACI,GAAG,CAAC,EAAE;QAC/CzE,IAAI,CAACqB,KAAK,GAAG,IAAI;MACnB;MAEA,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAACqD,QAAQ,CAACL,CAAC,CAACI,GAAG,CAAC,EAAE;QACrCzE,IAAI,CAACqB,KAAK,GAAG,KAAK;MACpB;MAEA,IAAIgD,CAAC,CAACI,GAAG,KAAK,MAAM,EAAE;QACpBP,OAAO,CAAC7C,KAAK,EAAEuD,KAAK,CAAC,OAAO,CAAC;MAC/B,CAAC,MAAM,IAAIP,CAAC,CAACI,GAAG,KAAK,KAAK,EAAE;QAC1BP,OAAO,CAAC7C,KAAK,EAAEuD,KAAK,CAAC,MAAM,CAAC;MAC9B;;MAEA;MACA,MAAMC,yBAAyB,GAAG,IAAI,EAAC;;MAEvC,IAAI,CAACjG,cAAc,CAACyF,CAAC,CAAC,EAAE;MAExB,MAAMS,GAAG,GAAGC,WAAW,CAACD,GAAG,CAAC,CAAC;MAC7B,IAAIA,GAAG,GAAGjC,sBAAsB,GAAGgC,yBAAyB,EAAE;QAC5DlC,oBAAoB,GAAG,EAAE;QACzBC,mBAAmB,GAAG,CAAC,CAAC;MAC1B;MACAD,oBAAoB,IAAI0B,CAAC,CAACI,GAAG,CAACO,WAAW,CAAC,CAAC;MAC3CnC,sBAAsB,GAAGiC,GAAG;MAE5B,MAAMhD,KAAK,GAAGgB,YAAY,CAACzB,KAAK;MAChC,SAAS4D,QAAQA,CAAA,EAAI;QACnB,IAAIC,MAAM,GAAGC,YAAY,CAAC,CAAC;QAC3B,IAAID,MAAM,EAAE,OAAOA,MAAM;QAEzB,IAAIvC,oBAAoB,CAACyC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAKzC,oBAAoB,CAACyC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;UAC/D;UACAzC,oBAAoB,GAAGA,oBAAoB,CAAC0C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;UACxDH,MAAM,GAAGC,YAAY,CAAC,CAAC;UACvB,IAAID,MAAM,EAAE,OAAOA,MAAM;QAC3B;;QAEA;QACAtC,mBAAmB,GAAG,CAAC,CAAC;QACxBsC,MAAM,GAAGC,YAAY,CAAC,CAAC;QACvB,IAAID,MAAM,EAAE,OAAOA,MAAM;;QAEzB;QACAvC,oBAAoB,GAAG0B,CAAC,CAACI,GAAG,CAACO,WAAW,CAAC,CAAC;QAC1C,OAAOG,YAAY,CAAC,CAAC;MACvB;MACA,SAASA,YAAYA,CAAA,EAAI;QACvB,KAAK,IAAIG,CAAC,GAAG1C,mBAAmB,GAAG,CAAC,EAAE0C,CAAC,GAAGxD,KAAK,CAACO,MAAM,EAAEiD,CAAC,EAAE,EAAE;UAC3D,MAAMC,KAAK,GAAGzD,KAAK,CAACwD,CAAC,CAAC;UACtB,IAAIC,KAAK,CAACC,KAAK,CAACR,WAAW,CAAC,CAAC,CAACS,UAAU,CAAC9C,oBAAoB,CAAC,EAAE;YAC9D,OAAO,CAAC4C,KAAK,EAAED,CAAC,CAAC;UACnB;QACF;QACA,OAAOI,SAAS;MAClB;MAEA,MAAMR,MAAM,GAAGD,QAAQ,CAAC,CAAC;MACzB,IAAI,CAACC,MAAM,EAAE;MAEb,MAAM,CAAClC,IAAI,EAAE2C,KAAK,CAAC,GAAGT,MAAM;MAC5BtC,mBAAmB,GAAG+C,KAAK;MAC3BzB,OAAO,CAAC7C,KAAK,EAAEuD,KAAK,CAACe,KAAK,CAAC;MAC3B,IAAI,CAACzE,KAAK,CAACd,QAAQ,EAAE;QACnB6B,KAAK,CAACZ,KAAK,GAAG,CAAC2B,IAAI,CAAC;MACtB;IACF;;IAEA;IACA,SAAS4C,MAAMA,CAAE5C,IAAc,EAA8B;MAAA,IAA5BS,GAAmB,GAAAoC,SAAA,CAAAxD,MAAA,QAAAwD,SAAA,QAAAH,SAAA,GAAAG,SAAA,MAAG,IAAI;MACzD,IAAI7C,IAAI,CAAC9B,KAAK,CAAC4E,QAAQ,EAAE;MAEzB,IAAI5E,KAAK,CAACd,QAAQ,EAAE;QAClB,MAAMuF,KAAK,GAAG1D,KAAK,CAACZ,KAAK,CAAC0E,SAAS,CAACtD,SAAS,IAAI,CAACvB,KAAK,CAACiC,eAAe,IAAItE,SAAS,EAAE4D,SAAS,CAACpB,KAAK,EAAE2B,IAAI,CAAC3B,KAAK,CAAC,CAAC;QACnH,MAAM2E,GAAG,GAAGvC,GAAG,IAAI,IAAI,GAAG,CAAC,CAACkC,KAAK,GAAGlC,GAAG;QAEvC,IAAI,CAACkC,KAAK,EAAE;UACV,MAAMtE,KAAK,GAAG2E,GAAG,GAAG,CAAC,GAAG/D,KAAK,CAACZ,KAAK,EAAE2B,IAAI,CAAC,GAAG,CAAC,GAAGf,KAAK,CAACZ,KAAK,CAAC;UAC7DA,KAAK,CAAC4E,MAAM,CAACN,KAAK,EAAE,CAAC,CAAC;UACtB1D,KAAK,CAACZ,KAAK,GAAGA,KAAK;QACrB,CAAC,MAAM,IAAI2E,GAAG,EAAE;UACd/D,KAAK,CAACZ,KAAK,GAAG,CAAC,GAAGY,KAAK,CAACZ,KAAK,EAAE2B,IAAI,CAAC;QACtC;MACF,CAAC,MAAM;QACL,MAAMgD,GAAG,GAAGvC,GAAG,KAAK,KAAK;QACzBxB,KAAK,CAACZ,KAAK,GAAG2E,GAAG,GAAG,CAAChD,IAAI,CAAC,GAAG,EAAE;QAE/BzE,QAAQ,CAAC,MAAM;UACbyB,IAAI,CAACqB,KAAK,GAAG,KAAK;QACpB,CAAC,CAAC;MACJ;IACF;IACA,SAAS6E,MAAMA,CAAE7B,CAAa,EAAE;MAC9B,IAAI,CAACH,OAAO,CAAC7C,KAAK,EAAE8E,GAAG,CAACC,QAAQ,CAAC/B,CAAC,CAACgC,aAA4B,CAAC,EAAE;QAChErG,IAAI,CAACqB,KAAK,GAAG,KAAK;MACpB;IACF;IACA,SAASiF,YAAYA,CAAA,EAAI;MACvB,IAAIpF,KAAK,CAACxB,KAAK,EAAE;QACfmC,iBAAiB,CAACR,KAAK,EAAEkF,qBAAqB,CAAC,CAAC;MAClD;IACF;IACA,SAASC,YAAYA,CAAA,EAAI;MACvB,IAAI9D,SAAS,CAACrB,KAAK,EAAE;QACnBM,aAAa,CAACN,KAAK,EAAEuD,KAAK,CAAC,CAAC;MAC9B;IACF;IACA,SAAS6B,SAASA,CAAEpC,CAAa,EAAE;MACjC3B,SAAS,CAACrB,KAAK,GAAG,IAAI;IACxB;IACA,SAASqF,aAAaA,CAAExE,CAAM,EAAE;MAC9B,IAAIA,CAAC,IAAI,IAAI,EAAED,KAAK,CAACZ,KAAK,GAAG,EAAE,MAC1B,IAAIpC,eAAe,CAAC0C,aAAa,CAACN,KAAK,EAAE,WAAW,CAAC,IAAIpC,eAAe,CAAC0C,aAAa,CAACN,KAAK,EAAE,mBAAmB,CAAC,EAAE;QACvH,MAAM2B,IAAI,GAAGlB,KAAK,CAACT,KAAK,CAACsF,IAAI,CAAC3D,IAAI,IAAIA,IAAI,CAACwC,KAAK,KAAKtD,CAAC,CAAC;QACvD,IAAIc,IAAI,EAAE;UACR4C,MAAM,CAAC5C,IAAI,CAAC;QACd;MACF,CAAC,MAAM,IAAIrB,aAAa,CAACN,KAAK,EAAE;QAC9BM,aAAa,CAACN,KAAK,CAACA,KAAK,GAAG,EAAE;MAChC;IACF;IAEA3C,KAAK,CAACsB,IAAI,EAAE,MAAM;MAChB,IAAI,CAACkB,KAAK,CAACtB,YAAY,IAAII,IAAI,CAACqB,KAAK,IAAIY,KAAK,CAACZ,KAAK,CAACgB,MAAM,EAAE;QAC3D,MAAMsD,KAAK,GAAG7C,YAAY,CAACzB,KAAK,CAAC0E,SAAS,CACxC/C,IAAI,IAAIf,KAAK,CAACZ,KAAK,CAAC4B,IAAI,CAACC,CAAC,IAAI,CAAChC,KAAK,CAACiC,eAAe,IAAItE,SAAS,EAAEqE,CAAC,CAAC7B,KAAK,EAAE2B,IAAI,CAAC3B,KAAK,CAAC,CACzF,CAAC;QACDrC,UAAU,IAAI,CAACkC,KAAK,CAACT,YAAY,IAAImG,MAAM,CAACC,qBAAqB,CAAC,MAAM;UACtElB,KAAK,IAAI,CAAC,IAAI9D,iBAAiB,CAACR,KAAK,EAAEyF,aAAa,CAACnB,KAAK,CAAC;QAC7D,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEFjH,KAAK,CAACoD,KAAK,EAAE,CAACiF,MAAM,EAAEC,MAAM,KAAK;MAC/B,IAAIhH,IAAI,CAACqB,KAAK,EAAE;MAEhB,IAAIqB,SAAS,CAACrB,KAAK,IAAIH,KAAK,CAACvB,UAAU,IAAI,CAACqH,MAAM,CAAC3E,MAAM,IAAI0E,MAAM,CAAC1E,MAAM,EAAE;QAC1ErC,IAAI,CAACqB,KAAK,GAAG,IAAI;MACnB;IACF,CAAC,CAAC;IAEFjC,SAAS,CAAC,MAAM;MACd,MAAM6H,QAAQ,GAAG,CAAC,EAAE/F,KAAK,CAAC3B,KAAK,IAAIkC,KAAK,CAACyF,IAAI,CAAC;MAC9C,MAAMC,OAAO,GAAG,CAAC,EACd,CAACjG,KAAK,CAACvB,UAAU,IAAImD,YAAY,CAACzB,KAAK,CAACgB,MAAM,IAC/CZ,KAAK,CAAC,cAAc,CAAC,IACrBA,KAAK,CAAC,aAAa,CAAC,IACpBA,KAAK,CAAC,SAAS,CAAC,CACjB;MACD,MAAM2F,OAAO,GAAGnF,KAAK,CAACZ,KAAK,CAACgB,MAAM,GAAG,CAAC;MACtC,MAAMgF,cAAc,GAAG7J,UAAU,CAAC8J,WAAW,CAACpG,KAAK,CAAC;MAEpD,MAAMqG,WAAW,GAAGH,OAAO,IACzB,CAAC1E,SAAS,CAACrB,KAAK,IAChBH,KAAK,CAACsG,KAAK,IACX,CAACtG,KAAK,CAACuG,qBACR,GAAG/B,SAAS,GAAGxE,KAAK,CAACqG,WAAW;MAEjC,OAAAG,YAAA,CAAAlK,UAAA,EAAAmK,WAAA;QAAA,OAEUhG;MAAa,GACd0F,cAAc;QAAA,cACNpF,KAAK,CAACZ,KAAK,CAACmB,GAAG,CAACN,CAAC,IAAIA,CAAC,CAAChB,KAAK,CAACG,KAAK,CAAC,CAACuG,IAAI,CAAC,IAAI,CAAC;QAAA,uBACrClB,aAAa;QAAA,WACjBhE,SAAS,CAACrB,KAAK;QAAA,oBAAAwG,MAAA,IAAfnF,SAAS,CAACrB,KAAK,GAAAwG,MAAA;QAAA,mBACf5F,KAAK,CAAC6F,aAAa;QAAA,gBACtB1F,YAAY,CAACf,KAAK;QAAA,SACzB+F,OAAO;QAAA,SACR,CACL,UAAU,EACV;UACE,uBAAuB,EAAEpH,IAAI,CAACqB,KAAK;UACnC,iBAAiB,EAAE,CAAC,CAACH,KAAK,CAAC3B,KAAK;UAChC,CAAC,aAAa2B,KAAK,CAACd,QAAQ,GAAG,UAAU,GAAG,QAAQ,EAAE,GAAG,IAAI;UAC7D,oBAAoB,EAAE6B,KAAK,CAACZ,KAAK,CAACgB,MAAM;UACxC,0BAA0B,EAAE,CAAC,CAACZ,KAAK,CAACgB;QACtC,CAAC,EACDvB,KAAK,CAAC6G,KAAK,CACZ;QAAA,SACO7G,KAAK,CAAC8G,KAAK;QAAA;QAAA,eAELT,WAAW;QAAA,iBACTnD,OAAO;QAAA,uBACDE,kBAAkB;QAAA,UAC/B4B,MAAM;QAAA,aACH1B,SAAS;QAAA,iBACLX,YAAY,CAACxC,KAAK;QAAA,iBAClByC,YAAY,CAACzC,KAAK;QAAA,cACrB0C,SAAS,CAAC1C,KAAK;QAAA,SACpB0C,SAAS,CAAC1C;MAAK;QAGrB,GAAGI,KAAK;QACRvB,OAAO,EAAEA,CAAA,KAAA+H,mBAAA,CAAAC,SAAA,SAAAR,YAAA,CAAApK,KAAA,EAAAqK,WAAA;UAAA,MAGE/D,MAAM,CAACvC,KAAK;UAAA,OACXO,QAAQ;UAAA,cACJ5B,IAAI,CAACqB,KAAK;UAAA,uBAAAwG,MAAA,IAAV7H,IAAI,CAACqB,KAAK,GAAAwG,MAAA;UAAA;UAAA;UAAA,YAGTzE,YAAY,CAAC/B,KAAK;UAAA,SACrBH,KAAK,CAACxB,KAAK;UAAA,aACP,GAAG;UAAA,eACD,KAAK;UAAA,uBACG,KAAK;UAAA,cACdwB,KAAK,CAACJ,UAAU;UAAA,gBACdwF,YAAY;UAAA,gBACZE;QAAY,GACtBxC,iBAAiB,CAAC3C,KAAK;UAAAnB,OAAA,EAAAA,CAAA,MAE1BiH,OAAO,IAAAO,YAAA,CAAAvK,KAAA,EAAAwK,WAAA;YAAA,OAECzD,OAAO;YAAA,YACF3B,cAAc,CAAClB,KAAK;YAAA,kBACdH,KAAK,CAACd,QAAQ,GAAG,aAAa,GAAG,oBAAoB;YAAA,eACvDiE,CAAa,IAAKA,CAAC,CAACM,cAAc,CAAC,CAAC;YAAA,aACvCJ,aAAa;YAAA,aACbkC,SAAS;YAAA;YAAA;YAAA;YAAA,cAIR,GAAGvF,KAAK,CAACsG,KAAK,OAAO;YAAA,SAC1BtG,KAAK,CAACV,SAAS,IAAIU,KAAK,CAACiH;UAAK,GACjChE,UAAU,EACVjD,KAAK,CAACrB,SAAS;YAAAK,OAAA,EAAAA,CAAA,MAElBuB,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAEzB,CAACqB,YAAY,CAACzB,KAAK,CAACgB,MAAM,IAAI,CAACnB,KAAK,CAACvB,UAAU,KAAK8B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAAiG,YAAA,CAAAtK,SAAA;cAAA;cAAA,SACvCsE,CAAC,CAACR,KAAK,CAACb,UAAU;YAAC,QACrD,CAAC,EAAAqH,YAAA,CAAAjK,cAAA;cAAA,OAEoBoE,iBAAiB;cAAA;cAAA,SAAsBiB,YAAY,CAACzB,KAAK;cAAA;YAAA;cAAAnB,OAAA,EAC3EkI,KAAA,IAA8B;gBAAA,IAA7B;kBAAEpF,IAAI;kBAAE2C,KAAK;kBAAE0C;gBAAQ,CAAC,GAAAD,KAAA;gBACzB,MAAME,cAAc,GAAG3J,aAAa,CAACqE,IAAI,CAAC9B,KAAK,CAAC;gBAEhD,MAAMqH,SAAS,GAAGjK,UAAU,CAAC0E,IAAI,CAAC9B,KAAK,EAAE;kBACvC1C,GAAG,EAAE6J,OAAO;kBACZ5D,GAAG,EAAEzB,IAAI,CAAC3B,KAAK;kBACfmH,OAAO,EAAEA,CAAA,KAAM5C,MAAM,CAAC5C,IAAI,EAAE,IAAI;gBAClC,CAAC,CAAC;gBAEF,IAAIA,IAAI,CAAClD,IAAI,KAAK,SAAS,EAAE;kBAC3B,OAAO2B,KAAK,CAACgH,OAAO,GAAG;oBAAEvH,KAAK,EAAE8B,IAAI,CAAC0F,GAAG;oBAAE/C;kBAAM,CAAC,CAAC,IAAA+B,YAAA,CAAAzK,QAAA,EAAA0K,WAAA,CACjC3E,IAAI,CAAC9B,KAAK;oBAAA,OAAS,WAAWyE,KAAK;kBAAE,SACrD;gBACH;gBAEA,IAAI3C,IAAI,CAAClD,IAAI,KAAK,WAAW,EAAE;kBAC7B,OAAO2B,KAAK,CAACkH,SAAS,GAAG;oBAAEzH,KAAK,EAAE8B,IAAI,CAAC0F,GAAG;oBAAE/C;kBAAM,CAAC,CAAC,IAAA+B,YAAA,CAAArK,cAAA,EAAAsK,WAAA,CAC7B3E,IAAI,CAAC9B,KAAK;oBAAA,OAAS,aAAayE,KAAK;kBAAE,SAC7D;gBACH;gBAEA,OAAOlE,KAAK,CAACuB,IAAI,GAAG;kBAClBA,IAAI;kBACJ2C,KAAK;kBACLzE,KAAK,EAAEqH;gBACT,CAAC,CAAC,IAAAb,YAAA,CAAAtK,SAAA,EAAAuK,WAAA,CACgBY,SAAS;kBAAA;gBAAA;kBAErBK,OAAO,EAAEC,KAAA;oBAAA,IAAC;sBAAEC;oBAAW,CAAC,GAAAD,KAAA;oBAAA,OAAAZ,mBAAA,CAAAC,SAAA,SAElBhH,KAAK,CAACd,QAAQ,IAAI,CAACc,KAAK,CAACtB,YAAY,GAAA8H,YAAA,CAAA5K,YAAA;sBAAA,OAE7BkG,IAAI,CAAC3B,KAAK;sBAAA,cACHyH,UAAU;sBAAA,UACd,KAAK;sBAAA;sBAAA,WAEHC,KAAiB,IAAKA,KAAK,CAACpE,cAAc,CAAC;oBAAC,WAEvDe,SAAS,EAEX4C,cAAc,CAACU,aAAa,IAAAtB,YAAA,CAAA7K,OAAA;sBAAA,SACXyL,cAAc,CAACU;oBAAa,QAC9C,EAECV,cAAc,CAACW,WAAW,IAAAvB,YAAA,CAAAxK,KAAA;sBAAA,QACZoL,cAAc,CAACW;oBAAW,QACzC;kBAAA;gBAEJ,EAGN;cACH;YAAC,IAGDxH,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;UAAA,EAE7B;QAAA,IAGDQ,KAAK,CAACZ,KAAK,CAACmB,GAAG,CAAC,CAACQ,IAAI,EAAE2C,KAAK,KAAK;UACjC,SAASuD,WAAWA,CAAE7E,CAAQ,EAAE;YAC9BA,CAAC,CAAC8E,eAAe,CAAC,CAAC;YACnB9E,CAAC,CAACM,cAAc,CAAC,CAAC;YAElBiB,MAAM,CAAC5C,IAAI,EAAE,KAAK,CAAC;UACrB;UAEA,MAAMoG,SAAS,GAAG;YAChB,eAAe,EAAEF,WAAW;YAC5B1E,SAASA,CAAEH,CAAgB,EAAE;cAC3B,IAAIA,CAAC,CAACI,GAAG,KAAK,OAAO,IAAIJ,CAAC,CAACI,GAAG,KAAK,GAAG,EAAE;cAExCJ,CAAC,CAACM,cAAc,CAAC,CAAC;cAClBN,CAAC,CAAC8E,eAAe,CAAC,CAAC;cAEnBD,WAAW,CAAC7E,CAAC,CAAC;YAChB,CAAC;YACDgF,WAAWA,CAAEhF,CAAa,EAAE;cAC1BA,CAAC,CAACM,cAAc,CAAC,CAAC;cAClBN,CAAC,CAAC8E,eAAe,CAAC,CAAC;YACrB,CAAC;YACDvI,UAAU,EAAE,IAAI;YAChB,qBAAqB,EAAE8E;UACzB,CAAC;UAED,MAAM4D,OAAO,GAAGrC,QAAQ,GAAG,CAAC,CAACxF,KAAK,CAACyF,IAAI,GAAG,CAAC,CAACzF,KAAK,CAACgB,SAAS;UAC3D,MAAM8G,WAAW,GAAGD,OAAO,GACvBxK,gBAAgB,CAChBmI,QAAQ,GACJxF,KAAK,CAACyF,IAAI,CAAE;YAAElE,IAAI;YAAE2C,KAAK;YAAEzE,KAAK,EAAEkI;UAAU,CAAC,CAAC,GAC9C3H,KAAK,CAACgB,SAAS,CAAE;YAAEO,IAAI;YAAE2C;UAAM,CAAC,CACtC,CAAC,GACCD,SAAS;UAEb,IAAI4D,OAAO,IAAI,CAACC,WAAW,EAAE,OAAO7D,SAAS;UAE7C,OAAAuC,mBAAA;YAAA,OACajF,IAAI,CAAC3B,KAAK;YAAA;UAAA,IACjB4F,QAAQ,GACR,CAACxF,KAAK,CAACyF,IAAI,GAAAQ,YAAA,CAAA3K,KAAA,EAAA4K,WAAA;YAAA;YAAA,YAGIzG,KAAK,CAACzB,aAAa;YAAA;YAAA,QAEvBuD,IAAI,CAACwC,KAAK;YAAA,YACNxC,IAAI,CAAC9B,KAAK,CAAC4E;UAAQ,GACzBsD,SAAS,WAAA1B,YAAA,CAAA1K,iBAAA;YAAA;YAAA,YAKJ;cACRD,KAAK,EAAE;gBACLyM,QAAQ,EAAEtI,KAAK,CAACzB,aAAa;gBAC7BkE,IAAI,EAAE,OAAO;gBACb8F,IAAI,EAAEzG,IAAI,CAACwC;cACb;YACF;UAAC;YAAAtF,OAAA,EAAAA,CAAA,MAECqJ,WAAW;UAAA,EAEhB,GAEDA,WAAW,IAAAtB,mBAAA;YAAA;UAAA,IAELjF,IAAI,CAACwC,KAAK,EACVtE,KAAK,CAACd,QAAQ,IAAKuF,KAAK,GAAG1D,KAAK,CAACZ,KAAK,CAACgB,MAAM,GAAG,CAAE,IAAA4F,mBAAA;YAAA;UAAA,IAAAyB,gBAAA,OAEnD,EAGN;QAGP,CAAC,CAAC,EAEL;QACD,cAAc,EAAE,SAAAC,CAAA;UAAA,SAAAC,IAAA,GAAA/D,SAAA,CAAAxD,MAAA,EAAIwH,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJF,IAAI,CAAAE,IAAA,IAAAlE,SAAA,CAAAkE,IAAA;UAAA;UAAA,OAAA9B,mBAAA,CAAAC,SAAA,SAElBzG,KAAK,CAAC,cAAc,CAAC,GAAG,GAAGoI,IAAI,CAAC,EAChC3I,KAAK,CAACjB,QAAQ,GAAAyH,YAAA,CAAAxK,KAAA;YAAA;YAAA,SAGJyE,aAAa,CAACN,KAAK,EAAE2I,cAAc;YAAA,QACpC9I,KAAK,CAACjB;UAAQ,WAErByF,SAAS;QAAA;MAEhB;IAIT,CAAC,CAAC;IAEF,OAAO9H,WAAW,CAAC;MACjB8E,SAAS;MACT1C,IAAI;MACJ4F;IACF,CAAC,EAAEjE,aAAa,CAAC;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -170,10 +170,11 @@ export const VTextField = genericComponent()({
|
|
|
170
170
|
props: {
|
|
171
171
|
class: fieldClass,
|
|
172
172
|
...slotProps
|
|
173
|
-
}
|
|
173
|
+
},
|
|
174
|
+
controlRef
|
|
174
175
|
} = _ref3;
|
|
175
176
|
const inputNode = _withDirectives(_createElementVNode("input", _mergeProps({
|
|
176
|
-
"ref": inputRef,
|
|
177
|
+
"ref": val => inputRef.value = controlRef.value = val,
|
|
177
178
|
"value": model.value,
|
|
178
179
|
"onInput": onInput,
|
|
179
180
|
"autofocus": props.autofocus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTextField.js","names":["VCounter","makeVFieldProps","VField","makeVInputProps","VInput","makeAutocompleteProps","useAutocomplete","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","omit","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","role","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","isPlainOrUnderlined","includes","variant","vInputRef","vFieldRef","inputRef","autocomplete","isActive","active","onFocus","isSuppressing","update","document","activeElement","onControlMousedown","target","preventDefault","onControlClick","onClear","reset","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","inputNode","_withDirectives","_createElementVNode","fieldName","fieldAutocomplete","handler","once","_Fragment","_normalizeClass","disabled"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeAutocompleteProps, useAutocomplete } from '@/composables/autocomplete'\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType<number | ((value: any) => number)>,\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 as PropType<Record<string, boolean>>,\n\n ...makeAutocompleteProps(),\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent<VTextFieldSlots>()({\n name: 'VTextField',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const inputRef = ref<HTMLInputElement>()\n const autocomplete = useAutocomplete(props)\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (autocomplete.isSuppressing.value) {\n autocomplete.update()\n }\n\n if (!isFocused.value) focus()\n\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n })\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n emit('click:control', e)\n }\n function onClear (e: MouseEvent, reset: () => void) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n reset()\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\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 { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n reset,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ (e: MouseEvent) => onClear(e, reset) }\n role={ props.role }\n { ...omit(fieldProps, ['onClick:clear']) }\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 details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n <input\n ref={ inputRef }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ autocomplete.fieldName.value }\n autocomplete={ autocomplete.fieldAutocomplete.value }\n placeholder={ props.placeholder }\n size={ 1 }\n role={ props.role }\n type={ props.type }\n onFocus={ focus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n <span class=\"v-text-field__prefix__text\">\n { props.prefix }\n </span>\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n <span class=\"v-text-field__suffix__text\">\n { props.suffix }\n </span>\n </span>\n )}\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VTextField.js","names":["VCounter","makeVFieldProps","VField","makeVInputProps","VInput","makeAutocompleteProps","useAutocomplete","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","omit","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","role","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","isPlainOrUnderlined","includes","variant","vInputRef","vFieldRef","inputRef","autocomplete","isActive","active","onFocus","isSuppressing","update","document","activeElement","onControlMousedown","target","preventDefault","onControlClick","onClear","reset","stopPropagation","onInput","el","trim","caretPosition","selectionStart","selectionEnd","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","controlRef","inputNode","_withDirectives","_createElementVNode","fieldName","fieldAutocomplete","handler","once","_Fragment","_normalizeClass","disabled"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeAutocompleteProps, useAutocomplete } from '@/composables/autocomplete'\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType<number | ((value: any) => number)>,\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 as PropType<Record<string, boolean>>,\n\n ...makeAutocompleteProps(),\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent<VTextFieldSlots>()({\n name: 'VTextField',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const inputRef = ref<HTMLInputElement>()\n const autocomplete = useAutocomplete(props)\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (autocomplete.isSuppressing.value) {\n autocomplete.update()\n }\n\n if (!isFocused.value) focus()\n\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n })\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n emit('click:control', e)\n }\n function onClear (e: MouseEvent, reset: () => void) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n reset()\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\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 { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n reset,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ (e: MouseEvent) => onClear(e, reset) }\n role={ props.role }\n { ...omit(fieldProps, ['onClick:clear']) }\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 details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n controlRef,\n }) => {\n const inputNode = (\n <input\n ref={ val => inputRef.value = controlRef.value = val as HTMLInputElement }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ autocomplete.fieldName.value }\n autocomplete={ autocomplete.fieldAutocomplete.value }\n placeholder={ props.placeholder }\n size={ 1 }\n role={ props.role }\n type={ props.type }\n onFocus={ focus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n <span class=\"v-text-field__prefix__text\">\n { props.prefix }\n </span>\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n <span class=\"v-text-field__suffix__text\">\n { props.suffix }\n </span>\n </span>\n )}\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,QAAQ;AAAA,SACRC,eAAe,EAAEC,MAAM;AAAA,SACvBC,eAAe,EAAEC,MAAM,+BAEhC;AAAA,SACSC,qBAAqB,EAAEC,eAAe;AAAA,SACtCC,YAAY;AAAA,SACZC,QAAQ;AAAA,SACRC,WAAW;AAAA,SACXC,eAAe,6CAExB;AAAA,OACOC,UAAU,6CAEjB;AACA,SAASC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAChDC,SAAS,EAAEC,gBAAgB,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,+BAErF;AAMA,MAAMC,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC;AAExF,OAAO,MAAMC,mBAAmB,GAAGH,YAAY,CAAC;EAC9CI,SAAS,EAAEC,OAAO;EAClBC,OAAO,EAAE,CAACD,OAAO,EAAEE,MAAM,EAAEC,MAAM,CAAC;EAClCC,YAAY,EAAE,CAACF,MAAM,EAAEG,QAAQ,CAAgD;EAC/EC,MAAM,EAAEH,MAAM;EACdI,WAAW,EAAEJ,MAAM;EACnBK,qBAAqB,EAAER,OAAO;EAC9BS,iBAAiB,EAAET,OAAO;EAC1BU,MAAM,EAAEP,MAAM;EACdQ,IAAI,EAAER,MAAM;EACZS,IAAI,EAAE;IACJA,IAAI,EAAET,MAAM;IACZU,OAAO,EAAE;EACX,CAAC;EACDC,cAAc,EAAEC,MAA2C;EAE3D,GAAGnC,qBAAqB,CAAC,CAAC;EAC1B,GAAGF,eAAe,CAAC,CAAC;EACpB,GAAGF,eAAe,CAAC;AACrB,CAAC,EAAE,YAAY,CAAC;AAOhB,OAAO,MAAMwC,UAAU,GAAGvB,gBAAgB,CAAkB,CAAC,CAAC;EAC5DwB,IAAI,EAAE,YAAY;EAElBC,UAAU,EAAE;IAAEhC;EAAW,CAAC;EAE1BiC,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAEtB,mBAAmB,CAAC,CAAC;EAE5BuB,KAAK,EAAE;IACL,eAAe,EAAGC,CAAa,IAAK,IAAI;IACxC,mBAAmB,EAAGA,CAAa,IAAK,IAAI;IAC5C,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;IAC5C,mBAAmB,EAAGC,GAAW,IAAK;EACxC,CAAC;EAEDC,KAAKA,CAAEL,KAAK,EAAAM,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAMI,KAAK,GAAG7C,eAAe,CAACmC,KAAK,EAAE,YAAY,CAAC;IAClD,MAAM;MAAEW,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGlD,QAAQ,CAACqC,KAAK,CAAC;IAClD,MAAM;MAAEc;IAAY,CAAC,GAAGpD,YAAY,CAACsC,KAAK,CAAC;IAC3C,MAAMhB,YAAY,GAAGhB,QAAQ,CAAC,MAAM;MAClC,OAAO,OAAOgC,KAAK,CAAChB,YAAY,KAAK,UAAU,GAAGgB,KAAK,CAAChB,YAAY,CAAC0B,KAAK,CAACK,KAAK,CAAC,GAC7E,OAAOf,KAAK,CAAChB,YAAY,KAAK,QAAQ,GAAGgB,KAAK,CAAChB,YAAY,GAC3D,CAAC0B,KAAK,CAACK,KAAK,IAAI,EAAE,EAAEC,QAAQ,CAAC,CAAC,CAACC,MAAM;IAC3C,CAAC,CAAC;IACF,MAAMC,GAAG,GAAGlD,QAAQ,CAAC,MAAM;MACzB,IAAIuC,KAAK,CAACY,SAAS,EAAE,OAAOZ,KAAK,CAACY,SAAS;MAE3C,IACE,CAACnB,KAAK,CAACnB,OAAO,IACb,OAAOmB,KAAK,CAACnB,OAAO,KAAK,QAAQ,IAClC,OAAOmB,KAAK,CAACnB,OAAO,KAAK,QAAS,EAClC,OAAOuC,SAAS;MAElB,OAAOpB,KAAK,CAACnB,OAAO;IACtB,CAAC,CAAC;IAEF,MAAMwC,mBAAmB,GAAGrD,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAACsD,QAAQ,CAACtB,KAAK,CAACuB,OAAO,CAAC,CAAC;IAE3F,MAAMC,SAAS,GAAGtD,GAAG,CAAS,CAAC;IAC/B,MAAMuD,SAAS,GAAGvD,GAAG,CAAS,CAAC;IAC/B,MAAMwD,QAAQ,GAAGxD,GAAG,CAAmB,CAAC;IACxC,MAAMyD,YAAY,GAAGlE,eAAe,CAACuC,KAAK,CAAC;IAC3C,MAAM4B,QAAQ,GAAG5D,QAAQ,CAAC,MACxBS,WAAW,CAAC6C,QAAQ,CAACtB,KAAK,CAACR,IAAI,CAAC,IAChCQ,KAAK,CAACZ,qBAAqB,IAC3BuB,SAAS,CAACI,KAAK,IACff,KAAK,CAAC6B,MACP,CAAC;IACF,SAASC,OAAOA,CAAA,EAAI;MAClB,IAAIH,YAAY,CAACI,aAAa,CAAChB,KAAK,EAAE;QACpCY,YAAY,CAACK,MAAM,CAAC,CAAC;MACvB;MAEA,IAAI,CAACrB,SAAS,CAACI,KAAK,EAAEH,KAAK,CAAC,CAAC;MAE7B3C,QAAQ,CAAC,MAAM;QACb,IAAIyD,QAAQ,CAACX,KAAK,KAAKkB,QAAQ,CAACC,aAAa,EAAE;UAC7CR,QAAQ,CAACX,KAAK,EAAEH,KAAK,CAAC,CAAC;QACzB;MACF,CAAC,CAAC;IACJ;IACA,SAASuB,kBAAkBA,CAAEjC,CAAa,EAAE;MAC1CM,IAAI,CAAC,mBAAmB,EAAEN,CAAC,CAAC;MAE5B,IAAIA,CAAC,CAACkC,MAAM,KAAKV,QAAQ,CAACX,KAAK,EAAE;MAEjCe,OAAO,CAAC,CAAC;MACT5B,CAAC,CAACmC,cAAc,CAAC,CAAC;IACpB;IACA,SAASC,cAAcA,CAAEpC,CAAa,EAAE;MACtCM,IAAI,CAAC,eAAe,EAAEN,CAAC,CAAC;IAC1B;IACA,SAASqC,OAAOA,CAAErC,CAAa,EAAEsC,KAAiB,EAAE;MAClDtC,CAAC,CAACuC,eAAe,CAAC,CAAC;MAEnBX,OAAO,CAAC,CAAC;MAET7D,QAAQ,CAAC,MAAM;QACbuE,KAAK,CAAC,CAAC;QAEPrE,SAAS,CAAC6B,KAAK,CAAC,eAAe,CAAC,EAAEE,CAAC,CAAC;MACtC,CAAC,CAAC;IACJ;IACA,SAASwC,OAAOA,CAAExC,CAAQ,EAAE;MAC1B,MAAMyC,EAAE,GAAGzC,CAAC,CAACkC,MAA0B;MACvC1B,KAAK,CAACK,KAAK,GAAG4B,EAAE,CAAC5B,KAAK;MACtB,IACEf,KAAK,CAACN,cAAc,EAAEkD,IAAI,IAC1B,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAACtB,QAAQ,CAACtB,KAAK,CAACR,IAAI,CAAC,EACjE;QACA,MAAMqD,aAAa,GAAG,CAACF,EAAE,CAACG,cAAc,EAAEH,EAAE,CAACI,YAAY,CAAC;QAC1D9E,QAAQ,CAAC,MAAM;UACb0E,EAAE,CAACG,cAAc,GAAGD,aAAa,CAAC,CAAC,CAAC;UACpCF,EAAE,CAACI,YAAY,GAAGF,aAAa,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;MACJ;IACF;IAEArE,SAAS,CAAC,MAAM;MACd,MAAMwE,UAAU,GAAG,CAAC,EAAEvC,KAAK,CAAC5B,OAAO,IAAKmB,KAAK,CAACnB,OAAO,KAAK,KAAK,IAAImB,KAAK,CAACnB,OAAO,IAAI,IAAK,CAAC;MAC1F,MAAMoE,UAAU,GAAG,CAAC,EAAED,UAAU,IAAIvC,KAAK,CAACyC,OAAO,CAAC;MAClD,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,GAAGhF,gBAAgB,CAACmC,KAAK,CAAC;MACvD,MAAM;QAAE8C,UAAU,EAAEC,CAAC;QAAE,GAAGC;MAAW,CAAC,GAAGhG,MAAM,CAACiG,WAAW,CAACxD,KAAK,CAAC;MAClE,MAAMyD,UAAU,GAAGpG,MAAM,CAACmG,WAAW,CAACxD,KAAK,CAAC;MAE5C,OAAA0D,YAAA,CAAAnG,MAAA,EAAAoG,WAAA;QAAA,OAEUnC,SAAS;QAAA,cACLd,KAAK,CAACK,KAAK;QAAA,uBAAA6C,MAAA,IAAXlD,KAAK,CAACK,KAAK,GAAA6C,MAAA;QAAA,SACd,CACL,cAAc,EACd;UACE,wBAAwB,EAAE5D,KAAK,CAACd,MAAM;UACtC,wBAAwB,EAAEc,KAAK,CAACV,MAAM;UACtC,2BAA2B,EAAE+B,mBAAmB,CAACN;QACnD,CAAC,EACDf,KAAK,CAAC6D,KAAK,CACZ;QAAA,SACO7D,KAAK,CAAC8D;MAAK,GACdX,SAAS,EACTI,UAAU;QAAA,eACD,CAAClC,mBAAmB,CAACN,KAAK;QAAA,WAC9BJ,SAAS,CAACI;MAAK;QAGvB,GAAGN,KAAK;QACRhB,OAAO,EAAEsE,KAAA;UAAA,IAAC;YACRC,EAAE;YACFC,UAAU;YACVC,OAAO;YACPC,UAAU;YACVC,OAAO;YACPnB,UAAU;YACVT;UACF,CAAC,GAAAuB,KAAA;UAAA,OAAAL,YAAA,CAAArG,MAAA,EAAAsG,WAAA;YAAA,OAESlC,SAAS;YAAA,eACDU,kBAAkB;YAAA,WACtBG,cAAc;YAAA,iBACPpC,CAAa,IAAKqC,OAAO,CAACrC,CAAC,EAAEsC,KAAK,CAAC;YAAA,QAC7CxC,KAAK,CAACT;UAAI,GACZjB,IAAI,CAACmF,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC;YAAA,MACnCO,EAAE,CAACjD,KAAK;YAAA,UACJa,QAAQ,CAACb,KAAK,IAAImD,OAAO,CAACnD,KAAK;YAAA,SAChCmD,OAAO,CAACnD,KAAK,IAAIf,KAAK,CAACqE,KAAK;YAAA,YACzBJ,UAAU,CAAClD,KAAK;YAAA,WACjBJ,SAAS,CAACI,KAAK;YAAA,WACfkC,UAAU,CAAClC,KAAK;YAAA,SAClBqD,OAAO,CAACrD,KAAK,KAAK;UAAK;YAG7B,GAAGN,KAAK;YACRhB,OAAO,EAAE6E,KAAA,IAGH;cAAA,IAHI;gBACRtE,KAAK,EAAE;kBAAE6D,KAAK,EAAEU,UAAU;kBAAE,GAAGC;gBAAU,CAAC;gBAC1CC;cACF,CAAC,GAAAH,KAAA;cACC,MAAMI,SAAS,GAAAC,eAAA,CAAAC,mBAAA,UAAAjB,WAAA;gBAAA,OAELvD,GAAG,IAAIsB,QAAQ,CAACX,KAAK,GAAG0D,UAAU,CAAC1D,KAAK,GAAGX,GAAuB;gBAAA,SAChEM,KAAK,CAACK,KAAK;gBAAA,WACT2B,OAAO;gBAAA,aAIL1C,KAAK,CAACrB,SAAS;gBAAA,YAChBwF,UAAU,CAACpD,KAAK;gBAAA,YAChBkD,UAAU,CAAClD,KAAK;gBAAA,QACpBY,YAAY,CAACkD,SAAS,CAAC9D,KAAK;gBAAA,gBACpBY,YAAY,CAACmD,iBAAiB,CAAC/D,KAAK;gBAAA,eACrCf,KAAK,CAACb,WAAW;gBAAA,QACxB,CAAC;gBAAA,QACDa,KAAK,CAACT,IAAI;gBAAA,QACVS,KAAK,CAACR,IAAI;gBAAA,WACPoB,KAAK;gBAAA,UACNC;cAAI,GACR2D,SAAS,EACTpB,UAAU,YAAAtF,UAAA,EAfD;gBACZiH,OAAO,EAAEjE;cACX,CAAC,EAAE,IAAI;gBAAAkE,IAAA;cAAA,IAeV;cAED,OAAAJ,mBAAA,CAAAK,SAAA,SAEMjF,KAAK,CAACd,MAAM,IAAA0F,mBAAA;gBAAA;cAAA,IAAAA,mBAAA;gBAAA;cAAA,IAGN5E,KAAK,CAACd,MAAM,IAGnB,EAECuB,KAAK,CAAChB,OAAO,GAAAmF,mBAAA;gBAAA,SAAAM,eAAA,CAEHX,UAAU;gBAAA;cAAA,IAGhB9D,KAAK,CAAChB,OAAO,CAAC,CAAC,EACfiF,SAAS,KAEX3G,UAAU,CAAC2G,SAAS,EAAE;gBAAEb,KAAK,EAAEU;cAAW,CAAC,CAAC,EAE9CvE,KAAK,CAACV,MAAM,IAAAsF,mBAAA;gBAAA;cAAA,IAAAA,mBAAA;gBAAA;cAAA,IAGN5E,KAAK,CAACV,MAAM,IAGnB;YAGP;UAAC;QAAA,CAGN;QACD4D,OAAO,EAAED,UAAU,GAAGuB,SAAS,IAAAI,mBAAA,CAAAK,SAAA,SAEzBxE,KAAK,CAACyC,OAAO,GAAGsB,SAAS,CAAC,EAE1BxB,UAAU,IAAA4B,mBAAA,CAAAK,SAAA,SAAAL,mBAAA,sBAAAlB,YAAA,CAAAvG,QAAA;UAAA,UAKG6C,KAAK,CAACX,iBAAiB,IAAIsB,SAAS,CAACI,KAAK;UAAA,SAC3C/B,YAAY,CAAC+B,KAAK;UAAA,OACpBG,GAAG,CAACH,KAAK;UAAA,YACJf,KAAK,CAACmF;QAAQ,GACP1E,KAAK,CAAC5B,OAAO,GAGpC,EAEJ,GAAGuC;MAAS;IAIrB,CAAC,CAAC;IAEF,OAAOxD,WAAW,CAAC,CAAC,CAAC,EAAE4D,SAAS,EAAEC,SAAS,EAAEC,QAAQ,CAAC;EACxD;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -584,7 +584,7 @@ export declare const VTextarea: {
|
|
|
584
584
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
585
585
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
|
586
586
|
"onUpdate:rows"?: ((rows: number) => any) | undefined;
|
|
587
|
-
},
|
|
587
|
+
}, HTMLTextAreaElement & Omit<Omit<{
|
|
588
588
|
$: import("vue").ComponentInternalInstance;
|
|
589
589
|
$data: {};
|
|
590
590
|
$props: Partial<{
|
|
@@ -1048,7 +1048,7 @@ export declare const VTextarea: {
|
|
|
1048
1048
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
1049
1049
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
|
1050
1050
|
"onUpdate:rows"?: ((rows: number) => any) | undefined;
|
|
1051
|
-
},
|
|
1051
|
+
}, HTMLTextAreaElement & Omit<Omit<{
|
|
1052
1052
|
$: import("vue").ComponentInternalInstance;
|
|
1053
1053
|
$data: {};
|
|
1054
1054
|
$props: Partial<{
|
|
@@ -1467,7 +1467,7 @@ export declare const VTextarea: {
|
|
|
1467
1467
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
1468
1468
|
"onUpdate:modelValue"?: ((val: string) => any) | undefined;
|
|
1469
1469
|
"onUpdate:rows"?: ((rows: number) => any) | undefined;
|
|
1470
|
-
},
|
|
1470
|
+
}, HTMLTextAreaElement & Omit<Omit<{
|
|
1471
1471
|
$: import("vue").ComponentInternalInstance;
|
|
1472
1472
|
$data: {};
|
|
1473
1473
|
$props: Partial<{
|