@rotki/ui-library 2.9.1 → 2.11.0
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/components/accordions/accordion/RuiAccordion.vue.d.ts +3 -3
- package/dist/components/accordions/accordion/RuiAccordion.vue.js +87 -8
- package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +1 -1
- package/dist/components/accordions/accordion/RuiAccordion.vue2.js +1 -62
- package/dist/components/accordions/accordion/RuiAccordion.vue2.js.map +1 -1
- package/dist/components/alerts/RuiAlert.vue.d.ts +3 -3
- package/dist/components/buttons/button/RuiButton.vue.d.ts +9 -5
- package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +9 -5
- package/dist/components/calendar/RuiCalendar.vue.js +12 -0
- package/dist/components/calendar/RuiCalendar.vue.js.map +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue.js +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue2.js +2 -2
- package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +1 -1
- package/dist/components/calendar/state.js +1 -1
- package/dist/components/calendar/state.js.map +1 -1
- package/dist/components/cards/RuiCard.vue.d.ts +6 -6
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +3 -4
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +70 -251
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -1
- package/dist/components/date-time-picker/use-date-time-selection.d.ts +38 -0
- package/dist/components/date-time-picker/use-date-time-selection.js +286 -0
- package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -0
- package/dist/components/date-time-picker/use-keyboard-handler.d.ts +2 -0
- package/dist/components/date-time-picker/use-keyboard-handler.js +71 -60
- package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +29 -25
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +5 -3
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +2 -2
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +13 -8
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +9 -5
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +12 -8
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +9 -5
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +4 -4
- package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +29 -25
- package/dist/components/forms/select/RuiMenuSelect.vue2.js +4 -2
- package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -1
- package/dist/components/forms/slider/RuiSlider.vue2.js +14 -11
- package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue2.js +10 -7
- package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -1
- package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +3 -3
- package/dist/components/forms/text-area/RuiTextArea.vue2.js +15 -12
- package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -1
- package/dist/components/forms/text-field/RuiTextField.vue.d.ts +3 -3
- package/dist/components/forms/text-field/RuiTextField.vue2.js +13 -10
- package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -1
- package/dist/components/icons/IconBrowser.vue.d.ts +3 -0
- package/dist/components/icons/LazyIcon.vue.d.ts +10 -0
- package/dist/components/overlays/badge/RuiBadge.vue.d.ts +3 -3
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.d.ts +2 -2
- package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +2 -2
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +2 -2
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +2 -2
- package/dist/components/overlays/notification/RuiNotification.vue.d.ts +2 -2
- package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +2 -2
- package/dist/components/tables/RuiDataTable.vue.d.ts +9 -5
- package/dist/components/tables/RuiExpandButton.vue.d.ts +2 -2
- package/dist/components/tables/RuiTableHead.vue.d.ts +9 -5
- package/dist/components/tabs/tab/RuiTab.vue.d.ts +1 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +3 -3
- package/dist/components/tabs/tab-items/RuiTabItems.vue.d.ts +9 -5
- package/dist/components/time-picker/RuiTimePicker.vue2.js +0 -1
- package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -1
- package/dist/composables/defaults/table.js +1 -1
- package/dist/composables/defaults/table.js.map +1 -1
- package/dist/composables/icons.js +1 -1
- package/dist/composables/icons.js.map +1 -1
- package/dist/composables/use-rui-i18n.js +1 -1
- package/dist/composables/use-rui-i18n.js.map +1 -1
- package/dist/style.css +98 -61
- package/dist/web-types.json +116 -72
- package/package.json +31 -40
- package/dist/components/accordions/accordion/RuiAccordion.vue3.js +0 -18
- package/dist/components/accordions/accordion/RuiAccordion.vue3.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-keyboard-handler.js","sources":["../../../src/components/date-time-picker/use-keyboard-handler.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport type { TimeAccuracy } from '@/consts/time-accuracy';\nimport dayjs, { type Dayjs } from 'dayjs';\nimport { type DateTimeSegmentType, isDateTimeSegmentType } from '@/components/date-time-picker/types';\nimport { includeMilliseconds, includeSeconds } from '@/components/date-time-picker/utils';\nimport { assert } from '@/utils/assert';\n\ninterface Segment {\n start: number;\n end: number;\n type: DateTimeSegmentType;\n}\n\ninterface KeyboardHandlerOptions {\n dateFormat: Ref<string>;\n cursorPosition: Ref<number>;\n currentValue: Ref<number | undefined>;\n textInput: Ref<HTMLInputElement | undefined>;\n setValue: (segment: DateTimeSegmentType, value?: number) => void;\n getCurrent: (segment: DateTimeSegmentType) => number | undefined;\n getDateTime: () => Dayjs;\n disabled: boolean;\n readonly: boolean;\n accuracy: TimeAccuracy;\n}\n\nexport function useKeyboardHandler(options: KeyboardHandlerOptions) {\n const {\n accuracy,\n currentValue,\n cursorPosition,\n dateFormat,\n disabled,\n getCurrent,\n getDateTime,\n readonly,\n setValue,\n textInput,\n } = options;\n\n const formatSegments = computed<string[]>(() => {\n const format = get(dateFormat);\n return format.split(/([\\s./:])/g).filter(Boolean);\n });\n\n const segmentPositions = computed<Segment[]>(() => {\n const segments = get(formatSegments);\n const positions: Segment[] = [];\n let currentPosition = 0;\n\n segments.forEach((segment) => {\n if (!/[\\s./:]/.test(segment)) {\n assert(isDateTimeSegmentType(segment), `Invalid date format segment: ${segment}`);\n positions.push({\n end: currentPosition + segment.length,\n start: currentPosition,\n type: segment,\n });\n }\n currentPosition += segment.length;\n });\n\n return positions;\n });\n\n function getCurrentSegment(position: number = get(cursorPosition)) {\n const segments = get(segmentPositions);\n return segments.find(\n segment => position >= segment.start && position <= segment.end,\n );\n }\n\n function setCursorPosition(segment: Segment): void {\n set(cursorPosition, segment.end);\n\n nextTick(() => {\n if (isDefined(textInput)) {\n const input = get(textInput);\n input.setSelectionRange(segment.start, segment.end);\n input.focus();\n }\n });\n }\n\n function setSegment(segmentType: DateTimeSegmentType): void {\n const segments = get(segmentPositions).find(segment => segment.type === segmentType);\n if (segments) {\n setCursorPosition(segments);\n }\n }\n\n function clear(segmentType?: string): void {\n const currentSegment = getCurrentSegment();\n if (!segmentType && !currentSegment) {\n return;\n }\n\n const typeToUse = segmentType ?? currentSegment?.type;\n if (!typeToUse) {\n return;\n }\n\n setValue(typeToUse as DateTimeSegmentType, undefined);\n\n if (currentSegment) {\n setCursorPosition(currentSegment);\n }\n }\n\n function changeSegmentValue(increment: boolean): void {\n if (!isDefined(textInput))\n return;\n\n const currentSegment = getCurrentSegment();\n\n if (!currentSegment)\n return;\n\n const segmentMethods = {\n DD: 'date',\n HH: 'hour',\n MM: 'month',\n mm: 'minute',\n ss: 'second',\n SSS: 'millisecond',\n YYYY: 'year',\n } as const;\n\n const segmentType = currentSegment.type;\n const method = segmentMethods[segmentType];\n const selectedDate = getDateTime();\n const updatedDate = selectedDate.set(method, selectedDate.get(method) + (increment ? 1 : -1));\n if (updatedDate.year() >= 1970) {\n setValue(segmentType, segmentType === 'MM' ? updatedDate.get(method) + 1 : updatedDate.get(method));\n setCursorPosition(currentSegment);\n }\n }\n\n function navigateSegments(key: string) {\n const position = get(cursorPosition);\n const positions = get(segmentPositions);\n const currentSegmentIndex = positions.findIndex(\n segment => position >= segment.start && position <= segment.end,\n );\n\n if (currentSegmentIndex === -1) {\n return;\n }\n\n set(currentValue, undefined);\n\n let nextSegmentIndex: number;\n if (key === 'ArrowRight') {\n nextSegmentIndex = currentSegmentIndex + 1;\n if (nextSegmentIndex < positions.length) {\n const nextSegment = positions[nextSegmentIndex];\n assert(nextSegment);\n setCursorPosition(nextSegment);\n }\n }\n else {\n nextSegmentIndex = currentSegmentIndex - 1;\n if (nextSegmentIndex >= 0) {\n const nextSegment = positions[nextSegmentIndex];\n assert(nextSegment);\n setCursorPosition(nextSegment);\n }\n }\n }\n\n function handleDigitPressed(event: KeyboardEvent, digit: string): void {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n const position = event.target.selectionStart ?? 0;\n const currentSegment = getCurrentSegment(position);\n if (!currentSegment)\n return;\n\n const number = parseInt(digit);\n if (isNaN(number))\n return;\n\n const segmentConfig: Record<DateTimeSegmentType, { maxValue: number; minValue?: number }> = {\n DD: { maxValue: 31, minValue: 1 },\n HH: { maxValue: 23, minValue: 0 },\n MM: { maxValue: 12, minValue: 1 },\n mm: { maxValue: 59, minValue: 0 },\n ss: { maxValue: 59, minValue: 0 },\n SSS: { maxValue: 999, minValue: 0 },\n YYYY: { maxValue: 9999, minValue: 1 },\n };\n\n const segmentType = currentSegment.type;\n\n if (isDateTimeSegmentType(segmentType)) {\n const config = segmentConfig[segmentType];\n const value = get(currentValue) ?? '';\n const combinedValue = parseInt(`${value}${digit}`);\n const nextCombinedValue = parseInt(`${value}${digit}0`);\n\n const maxLength = segmentType.length;\n const minValue = config.minValue ?? 0;\n\n if (combinedValue >= minValue && combinedValue <= config.maxValue) {\n setValue(segmentType, combinedValue);\n setCursorPosition(currentSegment);\n }\n\n const willExceedMax = nextCombinedValue > config.maxValue;\n const reachedMaxLength = combinedValue.toString().length >= maxLength;\n\n if (willExceedMax || reachedMaxLength) {\n navigateSegments('ArrowRight');\n }\n }\n }\n\n function handleKeyboardNavigation(event: KeyboardEvent): void {\n if (event.key === 'ArrowUp') {\n changeSegmentValue(true);\n }\n else if (event.key === 'ArrowDown') {\n changeSegmentValue(false);\n }\n }\n\n function handleBackspace(event: KeyboardEvent) {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n const position = event.target.selectionStart ?? 0;\n const currentSegment = getCurrentSegment(position);\n if (!currentSegment)\n return;\n\n const value = get(currentValue) ?? getCurrent(currentSegment.type) ?? '';\n const updatedValue = value.toString().slice(0, -1);\n setValue(currentSegment.type, updatedValue.length === 0 ? undefined : parseInt(updatedValue));\n setCursorPosition(currentSegment);\n }\n\n function onInputDeletePressed(event: KeyboardEvent): void {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n const selectionStart = event.target.selectionStart ?? 0;\n const segment = getCurrentSegment(selectionStart);\n if (segment) {\n clear(segment.type);\n setCursorPosition(segment);\n }\n }\n\n function handleKeyDown(event: KeyboardEvent): void {\n if (disabled || readonly)\n return;\n\n const { key } = event;\n\n if (['Tab'].includes(key)) {\n return;\n }\n\n event.preventDefault();\n\n if (key === 'ArrowRight' || key === 'ArrowLeft') {\n navigateSegments(key);\n }\n else if (key === 'ArrowUp' || key === 'ArrowDown') {\n handleKeyboardNavigation(event);\n }\n else if (key === 'Backspace') {\n handleBackspace(event);\n }\n else if (key === 'Delete') {\n onInputDeletePressed(event);\n }\n else if (/^\\d$/.test(key)) {\n handleDigitPressed(event, key);\n }\n }\n\n function getClickPosition(event: MouseEvent, input: HTMLInputElement, useCaretPosition: boolean): number {\n const fallback = input.selectionStart ?? 0;\n if (!useCaretPosition)\n return fallback;\n const caretPos = document.caretPositionFromPoint?.(event.clientX, event.clientY);\n if (caretPos)\n return caretPos.offset;\n return document.caretRangeFromPoint?.(event.clientX, event.clientY)?.startOffset ?? fallback;\n }\n\n function handleClick(event: MouseEvent): void {\n if (disabled || readonly || !(event.target instanceof HTMLInputElement))\n return;\n const currentSegment = getCurrentSegment(getClickPosition(event, event.target, true));\n if (currentSegment) {\n set(cursorPosition, currentSegment.end);\n event.target.setSelectionRange(currentSegment.start, currentSegment.end);\n }\n }\n\n function handleInputSelection(event: Event): void {\n const target = event.target as HTMLInputElement;\n set(cursorPosition, target.selectionStart ?? 0);\n }\n\n function handleFocus(): void {\n // Only select first segment if no text is currently selected in the input\n const input = get(textInput);\n if (input && input.selectionStart !== input.selectionEnd)\n return;\n const firstSegment = get(segmentPositions)[0];\n if (firstSegment)\n setCursorPosition(firstSegment);\n }\n\n function parseAndSetDateValues(pastedText: string) {\n try {\n const parsedDate = dayjs(pastedText, get(dateFormat));\n\n if (!parsedDate.isValid()) {\n return;\n }\n\n const date = parsedDate.toDate();\n setValue('YYYY', date.getFullYear());\n setValue('MM', date.getMonth() + 1);\n setValue('DD', date.getDate());\n setValue('HH', date.getHours());\n setValue('mm', date.getMinutes());\n if (includeSeconds(accuracy)) {\n setValue('ss', date.getSeconds());\n }\n if (includeMilliseconds(accuracy)) {\n setValue('SSS', date.getMilliseconds());\n }\n }\n catch {\n // Invalid format, ignore paste\n }\n }\n\n function handlePaste(event: ClipboardEvent): void {\n if (disabled || readonly)\n return;\n\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n\n event.preventDefault();\n\n const pastedText = event.clipboardData?.getData('text');\n if (!pastedText) {\n return;\n }\n parseAndSetDateValues(pastedText);\n }\n\n function handleInput(event: Event): void {\n if (disabled || readonly)\n return;\n\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n\n const inputText = event.target.value;\n if (!inputText) {\n return;\n }\n\n parseAndSetDateValues(inputText);\n }\n\n return {\n clear,\n getCurrentSegment,\n handleClick,\n handleFocus,\n handleInput,\n handleInputSelection,\n handleKeyDown,\n handlePaste,\n setSegment,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-keyboard-handler.js","sources":["../../../src/components/date-time-picker/use-keyboard-handler.ts"],"sourcesContent":["import type { Ref } from 'vue';\nimport type { TimeAccuracy } from '@/consts/time-accuracy';\nimport dayjs, { type Dayjs } from 'dayjs';\nimport { type DateTimeSegmentType, isDateTimeSegmentType } from '@/components/date-time-picker/types';\nimport { includeMilliseconds, includeSeconds } from '@/components/date-time-picker/utils';\nimport { assert } from '@/utils/assert';\n\ninterface Segment { start: number; end: number; type: DateTimeSegmentType }\n\ntype SegmentMethod = 'date' | 'hour' | 'month' | 'minute' | 'second' | 'millisecond' | 'year';\nconst SEGMENT_METHODS: Record<DateTimeSegmentType, SegmentMethod> = {\n DD: 'date',\n HH: 'hour',\n MM: 'month',\n SSS: 'millisecond',\n YYYY: 'year',\n mm: 'minute',\n ss: 'second',\n};\n\ninterface SegmentBounds { maxValue: number; minValue?: number }\nconst SEGMENT_CONFIG: Record<DateTimeSegmentType, SegmentBounds> = {\n DD: { maxValue: 31, minValue: 1 },\n HH: { maxValue: 23, minValue: 0 },\n MM: { maxValue: 12, minValue: 1 },\n SSS: { maxValue: 999, minValue: 0 },\n YYYY: { maxValue: 9999, minValue: 1 },\n mm: { maxValue: 59, minValue: 0 },\n ss: { maxValue: 59, minValue: 0 },\n};\n\ninterface KeyboardHandlerOptions {\n dateFormat: Ref<string>;\n cursorPosition: Ref<number>;\n currentValue: Ref<number | undefined>;\n textInput: Ref<HTMLInputElement | undefined>;\n setValue: (segment: DateTimeSegmentType, value?: number) => void;\n getCurrent: (segment: DateTimeSegmentType) => number | undefined;\n getDateTime: () => Dayjs;\n disabled: boolean;\n readonly: boolean;\n accuracy: TimeAccuracy;\n}\n\nexport function useKeyboardHandler(options: KeyboardHandlerOptions) {\n const {\n accuracy,\n currentValue,\n cursorPosition,\n dateFormat,\n disabled,\n getCurrent,\n getDateTime,\n readonly,\n setValue,\n textInput,\n } = options;\n\n const formatSegments = computed<string[]>(() => {\n const format = get(dateFormat);\n return format.split(/([\\s./:])/g).filter(Boolean);\n });\n\n const segmentPositions = computed<Segment[]>(() => {\n const segments = get(formatSegments);\n const positions: Segment[] = [];\n let currentPosition = 0;\n\n segments.forEach((segment) => {\n if (!/[\\s./:]/.test(segment)) {\n assert(isDateTimeSegmentType(segment), `Invalid date format segment: ${segment}`);\n positions.push({\n end: currentPosition + segment.length,\n start: currentPosition,\n type: segment,\n });\n }\n currentPosition += segment.length;\n });\n\n return positions;\n });\n\n function getCurrentSegment(position: number = get(cursorPosition)) {\n const segments = get(segmentPositions);\n return segments.find(\n segment => position >= segment.start && position <= segment.end,\n );\n }\n\n function setCursorPosition(segment: Segment): void {\n set(cursorPosition, segment.end);\n\n nextTick(() => {\n if (isDefined(textInput)) {\n const input = get(textInput);\n input.setSelectionRange(segment.start, segment.end);\n input.focus();\n }\n });\n }\n\n function setSegment(segmentType: DateTimeSegmentType): void {\n const segments = get(segmentPositions).find(segment => segment.type === segmentType);\n if (segments) {\n setCursorPosition(segments);\n }\n }\n\n function clear(segmentType?: string): void {\n const currentSegment = getCurrentSegment();\n if (!segmentType && !currentSegment) {\n return;\n }\n\n const typeToUse = segmentType ?? currentSegment?.type;\n if (!typeToUse) {\n return;\n }\n\n setValue(typeToUse as DateTimeSegmentType, undefined);\n\n if (currentSegment) {\n setCursorPosition(currentSegment);\n }\n }\n\n function changeSegmentValue(increment: boolean): void {\n if (!isDefined(textInput))\n return;\n const currentSegment = getCurrentSegment();\n if (!currentSegment)\n return;\n const segmentType = currentSegment.type;\n const method = SEGMENT_METHODS[segmentType];\n const selectedDate = getDateTime();\n const updatedDate = selectedDate.set(method, selectedDate.get(method) + (increment ? 1 : -1));\n if (updatedDate.year() >= 1970) {\n setValue(segmentType, segmentType === 'MM' ? updatedDate.get(method) + 1 : updatedDate.get(method));\n setCursorPosition(currentSegment);\n }\n }\n\n function navigateSegments(key: string) {\n const position = get(cursorPosition);\n const positions = get(segmentPositions);\n const currentSegmentIndex = positions.findIndex(\n segment => position >= segment.start && position <= segment.end,\n );\n\n if (currentSegmentIndex === -1) {\n return;\n }\n\n set(currentValue, undefined);\n\n let nextSegmentIndex: number;\n if (key === 'ArrowRight') {\n nextSegmentIndex = currentSegmentIndex + 1;\n if (nextSegmentIndex < positions.length) {\n const nextSegment = positions[nextSegmentIndex];\n assert(nextSegment);\n setCursorPosition(nextSegment);\n }\n }\n else {\n nextSegmentIndex = currentSegmentIndex - 1;\n if (nextSegmentIndex >= 0) {\n const nextSegment = positions[nextSegmentIndex];\n assert(nextSegment);\n setCursorPosition(nextSegment);\n }\n }\n }\n\n function handleDigitPressed(event: KeyboardEvent, digit: string): void {\n if (!(event.target instanceof HTMLInputElement))\n return;\n const position = event.target.selectionStart ?? 0;\n const currentSegment = getCurrentSegment(position);\n if (!currentSegment || isNaN(parseInt(digit)))\n return;\n const segmentType = currentSegment.type;\n if (!isDateTimeSegmentType(segmentType))\n return;\n\n const config = SEGMENT_CONFIG[segmentType];\n const value = get(currentValue) ?? '';\n const combinedStr = `${value}${digit}`;\n const combinedValue = parseInt(combinedStr);\n const maxLength = segmentType.length;\n const minValue = config.minValue ?? 0;\n\n if (combinedValue >= minValue && combinedValue <= config.maxValue) {\n setValue(segmentType, combinedValue);\n setCursorPosition(currentSegment);\n }\n else if (combinedValue < minValue && combinedStr.length < maxLength) {\n // Track digit even if below minValue, so next digit can combine (e.g., \"0\" allows \"01\")\n set(currentValue, combinedValue);\n }\n\n const willExceedMax = parseInt(`${combinedStr}0`) > config.maxValue;\n // Use string length of typed digits, not parsed number length (e.g., \"01\" has length 2)\n if (willExceedMax || combinedStr.length >= maxLength)\n navigateSegments('ArrowRight');\n }\n\n function handleKeyboardNavigation(event: KeyboardEvent): void {\n if (event.key === 'ArrowUp')\n changeSegmentValue(true);\n else if (event.key === 'ArrowDown')\n changeSegmentValue(false);\n }\n\n function handleBackspace(event: KeyboardEvent): void {\n if (!(event.target instanceof HTMLInputElement))\n return;\n const currentSegment = getCurrentSegment(event.target.selectionStart ?? 0);\n if (!currentSegment)\n return;\n const value = get(currentValue) ?? getCurrent(currentSegment.type) ?? '';\n const updatedValue = value.toString().slice(0, -1);\n setValue(currentSegment.type, updatedValue.length === 0 ? undefined : parseInt(updatedValue));\n setCursorPosition(currentSegment);\n }\n\n function onInputDeletePressed(event: KeyboardEvent): void {\n if (!(event.target instanceof HTMLInputElement))\n return;\n const segment = getCurrentSegment(event.target.selectionStart ?? 0);\n if (segment) {\n clear(segment.type);\n setCursorPosition(segment);\n }\n }\n\n function handleKeyDown(event: KeyboardEvent): void {\n if (disabled || readonly)\n return;\n const { key } = event;\n if (key === 'Tab')\n return;\n event.preventDefault();\n if (key === 'ArrowRight' || key === 'ArrowLeft')\n navigateSegments(key);\n else if (key === 'ArrowUp' || key === 'ArrowDown')\n handleKeyboardNavigation(event);\n else if (key === 'Backspace')\n handleBackspace(event);\n else if (key === 'Delete')\n onInputDeletePressed(event);\n else if (/^\\d$/.test(key))\n handleDigitPressed(event, key);\n }\n\n function getClickPosition(event: MouseEvent, input: HTMLInputElement, useCaretPosition: boolean): number {\n const fallback = input.selectionStart ?? 0;\n if (!useCaretPosition)\n return fallback;\n const caretPos = document.caretPositionFromPoint?.(event.clientX, event.clientY);\n if (caretPos)\n return caretPos.offset;\n return document.caretRangeFromPoint?.(event.clientX, event.clientY)?.startOffset ?? fallback;\n }\n\n // Track the segment that was clicked, so handleFocus can restore it after DOM updates\n let clickedSegment: Segment | undefined;\n\n // Capture clicked segment on mousedown (fires before focus event)\n function handleMouseDown(event: MouseEvent): void {\n if (disabled || readonly || !(event.target instanceof HTMLInputElement))\n return;\n const currentSegment = getCurrentSegment(getClickPosition(event, event.target, true));\n if (currentSegment) {\n clickedSegment = currentSegment;\n }\n }\n\n function handleClick(event: MouseEvent): void {\n if (disabled || readonly || !(event.target instanceof HTMLInputElement))\n return;\n const currentSegment = getCurrentSegment(getClickPosition(event, event.target, true));\n if (currentSegment) {\n clickedSegment = currentSegment;\n set(cursorPosition, currentSegment.end);\n event.target.setSelectionRange(currentSegment.start, currentSegment.end);\n }\n }\n\n function handleInputSelection(event: Event): void {\n const target = event.target as HTMLInputElement;\n set(cursorPosition, target.selectionStart ?? 0);\n }\n\n function handleFocus(): void {\n // If we just clicked on a segment, restore that selection\n // (the selection may have been lost due to menu opening/DOM updates)\n if (clickedSegment) {\n setCursorPosition(clickedSegment);\n clickedSegment = undefined;\n return;\n }\n\n // Only select first segment if no text is currently selected in the input\n const input = get(textInput);\n if (input && input.selectionStart !== input.selectionEnd)\n return;\n const firstSegment = get(segmentPositions)[0];\n if (firstSegment)\n setCursorPosition(firstSegment);\n }\n\n function handleBlur(): void {\n // Reset cursor position and clicked segment when input loses focus\n // This prevents \"blinking\" when re-focusing on a different segment\n set(cursorPosition, 0);\n set(currentValue, undefined);\n clickedSegment = undefined;\n }\n\n function parseAndSetDateValues(pastedText: string) {\n try {\n const parsedDate = dayjs(pastedText, get(dateFormat));\n\n if (!parsedDate.isValid()) {\n return;\n }\n\n const date = parsedDate.toDate();\n setValue('YYYY', date.getFullYear());\n setValue('MM', date.getMonth() + 1);\n setValue('DD', date.getDate());\n setValue('HH', date.getHours());\n setValue('mm', date.getMinutes());\n if (includeSeconds(accuracy)) {\n setValue('ss', date.getSeconds());\n }\n if (includeMilliseconds(accuracy)) {\n setValue('SSS', date.getMilliseconds());\n }\n }\n catch {\n // Invalid format, ignore paste\n }\n }\n\n function handlePaste(event: ClipboardEvent): void {\n if (disabled || readonly)\n return;\n\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n\n event.preventDefault();\n\n const pastedText = event.clipboardData?.getData('text');\n if (!pastedText) {\n return;\n }\n parseAndSetDateValues(pastedText);\n }\n\n function handleInput(event: Event): void {\n if (disabled || readonly)\n return;\n\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n\n const inputText = event.target.value;\n if (!inputText) {\n return;\n }\n\n parseAndSetDateValues(inputText);\n }\n\n return {\n clear,\n getCurrentSegment,\n handleBlur,\n handleClick,\n handleFocus,\n handleInput,\n handleInputSelection,\n handleKeyDown,\n handleMouseDown,\n handlePaste,\n setSegment,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -36,14 +36,16 @@ export interface AutoCompleteProps<TValue, TItem> {
|
|
|
36
36
|
hideCustomValue?: boolean;
|
|
37
37
|
required?: boolean;
|
|
38
38
|
}
|
|
39
|
-
declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>,
|
|
40
|
-
props: __VLS_PrettifyLocal<(AutoCompleteProps<TValue, TItem> & {
|
|
39
|
+
declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
40
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<(AutoCompleteProps<TValue, TItem> & {
|
|
41
41
|
modelValue: AutoCompleteModelValue<TValue>;
|
|
42
42
|
searchInput?: string;
|
|
43
43
|
}) & {
|
|
44
44
|
"onUpdate:modelValue"?: ((value: AutoCompleteModelValue<TValue>) => any) | undefined;
|
|
45
45
|
"onUpdate:searchInput"?: ((value: string) => any) | undefined;
|
|
46
|
-
}> &
|
|
46
|
+
}> & (typeof globalThis extends {
|
|
47
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
48
|
+
} ? P : {});
|
|
47
49
|
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
48
50
|
focus: () => Promise<void>;
|
|
49
51
|
setSelectionRange: (start: number, end: number) => void;
|
|
@@ -51,7 +53,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
51
53
|
attrs: any;
|
|
52
54
|
slots: {
|
|
53
55
|
activator?: (props: {
|
|
54
|
-
disabled: import("@vue/reactivity").DistributeRef<[(Readonly<{
|
|
56
|
+
disabled: boolean & import("@vue/reactivity").DistributeRef<[(Readonly<{
|
|
55
57
|
labelClass: string;
|
|
56
58
|
menuClass: string;
|
|
57
59
|
itemClass: string;
|
|
@@ -86,7 +88,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
86
88
|
readonly customValue: boolean;
|
|
87
89
|
readonly hideCustomValue: boolean;
|
|
88
90
|
readonly required: boolean;
|
|
89
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
91
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
90
92
|
options: () => never[];
|
|
91
93
|
disabled: false;
|
|
92
94
|
loading: false;
|
|
@@ -151,7 +153,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
151
153
|
readonly customValue: boolean;
|
|
152
154
|
readonly hideCustomValue: boolean;
|
|
153
155
|
readonly required: boolean;
|
|
154
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
156
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
155
157
|
options: () => never[];
|
|
156
158
|
disabled: false;
|
|
157
159
|
loading: false;
|
|
@@ -216,7 +218,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
216
218
|
readonly customValue: boolean;
|
|
217
219
|
readonly hideCustomValue: boolean;
|
|
218
220
|
readonly required: boolean;
|
|
219
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
221
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
220
222
|
options: () => never[];
|
|
221
223
|
disabled: false;
|
|
222
224
|
loading: false;
|
|
@@ -281,7 +283,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
281
283
|
readonly customValue: boolean;
|
|
282
284
|
readonly hideCustomValue: boolean;
|
|
283
285
|
readonly required: boolean;
|
|
284
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
286
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
285
287
|
options: () => never[];
|
|
286
288
|
disabled: false;
|
|
287
289
|
loading: false;
|
|
@@ -353,7 +355,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
353
355
|
}) => any;
|
|
354
356
|
} & {
|
|
355
357
|
'item.prepend'?: (props: {
|
|
356
|
-
disabled: import("@vue/reactivity").DistributeRef<[(Readonly<{
|
|
358
|
+
disabled: boolean & import("@vue/reactivity").DistributeRef<[(Readonly<{
|
|
357
359
|
labelClass: string;
|
|
358
360
|
menuClass: string;
|
|
359
361
|
itemClass: string;
|
|
@@ -388,7 +390,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
388
390
|
readonly customValue: boolean;
|
|
389
391
|
readonly hideCustomValue: boolean;
|
|
390
392
|
readonly required: boolean;
|
|
391
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
393
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
392
394
|
options: () => never[];
|
|
393
395
|
disabled: false;
|
|
394
396
|
loading: false;
|
|
@@ -453,7 +455,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
453
455
|
readonly customValue: boolean;
|
|
454
456
|
readonly hideCustomValue: boolean;
|
|
455
457
|
readonly required: boolean;
|
|
456
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
458
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
457
459
|
options: () => never[];
|
|
458
460
|
disabled: false;
|
|
459
461
|
loading: false;
|
|
@@ -518,7 +520,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
518
520
|
readonly customValue: boolean;
|
|
519
521
|
readonly hideCustomValue: boolean;
|
|
520
522
|
readonly required: boolean;
|
|
521
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
523
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
522
524
|
options: () => never[];
|
|
523
525
|
disabled: false;
|
|
524
526
|
loading: false;
|
|
@@ -583,7 +585,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
583
585
|
readonly customValue: boolean;
|
|
584
586
|
readonly hideCustomValue: boolean;
|
|
585
587
|
readonly required: boolean;
|
|
586
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
588
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
587
589
|
options: () => never[];
|
|
588
590
|
disabled: false;
|
|
589
591
|
loading: false;
|
|
@@ -619,7 +621,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
619
621
|
}) => any;
|
|
620
622
|
} & {
|
|
621
623
|
item?: (props: {
|
|
622
|
-
disabled: import("@vue/reactivity").DistributeRef<[(Readonly<{
|
|
624
|
+
disabled: boolean & import("@vue/reactivity").DistributeRef<[(Readonly<{
|
|
623
625
|
labelClass: string;
|
|
624
626
|
menuClass: string;
|
|
625
627
|
itemClass: string;
|
|
@@ -654,7 +656,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
654
656
|
readonly customValue: boolean;
|
|
655
657
|
readonly hideCustomValue: boolean;
|
|
656
658
|
readonly required: boolean;
|
|
657
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
659
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
658
660
|
options: () => never[];
|
|
659
661
|
disabled: false;
|
|
660
662
|
loading: false;
|
|
@@ -719,7 +721,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
719
721
|
readonly customValue: boolean;
|
|
720
722
|
readonly hideCustomValue: boolean;
|
|
721
723
|
readonly required: boolean;
|
|
722
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
724
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
723
725
|
options: () => never[];
|
|
724
726
|
disabled: false;
|
|
725
727
|
loading: false;
|
|
@@ -784,7 +786,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
784
786
|
readonly customValue: boolean;
|
|
785
787
|
readonly hideCustomValue: boolean;
|
|
786
788
|
readonly required: boolean;
|
|
787
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
789
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
788
790
|
options: () => never[];
|
|
789
791
|
disabled: false;
|
|
790
792
|
loading: false;
|
|
@@ -849,7 +851,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
849
851
|
readonly customValue: boolean;
|
|
850
852
|
readonly hideCustomValue: boolean;
|
|
851
853
|
readonly required: boolean;
|
|
852
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
854
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
853
855
|
options: () => never[];
|
|
854
856
|
disabled: false;
|
|
855
857
|
loading: false;
|
|
@@ -885,7 +887,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
885
887
|
}) => any;
|
|
886
888
|
} & {
|
|
887
889
|
'item.append'?: (props: {
|
|
888
|
-
disabled: import("@vue/reactivity").DistributeRef<[(Readonly<{
|
|
890
|
+
disabled: boolean & import("@vue/reactivity").DistributeRef<[(Readonly<{
|
|
889
891
|
labelClass: string;
|
|
890
892
|
menuClass: string;
|
|
891
893
|
itemClass: string;
|
|
@@ -920,7 +922,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
920
922
|
readonly customValue: boolean;
|
|
921
923
|
readonly hideCustomValue: boolean;
|
|
922
924
|
readonly required: boolean;
|
|
923
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
925
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
924
926
|
options: () => never[];
|
|
925
927
|
disabled: false;
|
|
926
928
|
loading: false;
|
|
@@ -985,7 +987,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
985
987
|
readonly customValue: boolean;
|
|
986
988
|
readonly hideCustomValue: boolean;
|
|
987
989
|
readonly required: boolean;
|
|
988
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
990
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
989
991
|
options: () => never[];
|
|
990
992
|
disabled: false;
|
|
991
993
|
loading: false;
|
|
@@ -1050,7 +1052,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
1050
1052
|
readonly customValue: boolean;
|
|
1051
1053
|
readonly hideCustomValue: boolean;
|
|
1052
1054
|
readonly required: boolean;
|
|
1053
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
1055
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
1054
1056
|
options: () => never[];
|
|
1055
1057
|
disabled: false;
|
|
1056
1058
|
loading: false;
|
|
@@ -1115,7 +1117,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
1115
1117
|
readonly customValue: boolean;
|
|
1116
1118
|
readonly hideCustomValue: boolean;
|
|
1117
1119
|
readonly required: boolean;
|
|
1118
|
-
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (
|
|
1120
|
+
} & ("disabled" | "returnObject" | "autoSelectFirst" | "dense" | "hideSelected" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "chips" | "noFilter" | "hideNoData" | "customValue" | "hideCustomValue" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "options" | "label" | "disabled" | "keyAttr" | "returnObject" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "hideSelected" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "placeholder" | "clearable" | "readOnly" | "menuOptions" | "chips" | "noFilter" | "hideNoData" | "noDataText" | "customValue" | "hideCustomValue" ? {
|
|
1119
1121
|
options: () => never[];
|
|
1120
1122
|
disabled: false;
|
|
1121
1123
|
loading: false;
|
|
@@ -1158,6 +1160,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
1158
1160
|
};
|
|
1159
1161
|
declare const _default: typeof __VLS_export;
|
|
1160
1162
|
export default _default;
|
|
1161
|
-
type __VLS_PrettifyLocal<T> = {
|
|
1163
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
1164
|
+
[K in keyof T]: T[K];
|
|
1165
|
+
} : {
|
|
1162
1166
|
[K in keyof T as K]: T[K];
|
|
1163
|
-
} & {};
|
|
1167
|
+
}) & {};
|
|
@@ -14,7 +14,7 @@ import { useAutoCompleteSearch } from "../../../composables/forms/auto-complete/
|
|
|
14
14
|
import { useAutoCompleteValue } from "../../../composables/forms/auto-complete/value.js";
|
|
15
15
|
import { isEqual } from "../../../utils/is-equal.js";
|
|
16
16
|
import { get, set } from "@vueuse/shared";
|
|
17
|
-
const _hoisted_1 = ["tabindex"];
|
|
17
|
+
const _hoisted_1 = ["data-error", "tabindex"];
|
|
18
18
|
const _hoisted_2 = {
|
|
19
19
|
key: 0,
|
|
20
20
|
class: "text-rui-error"
|
|
@@ -24,7 +24,7 @@ const _hoisted_4 = {
|
|
|
24
24
|
key: 1,
|
|
25
25
|
class: "flex"
|
|
26
26
|
};
|
|
27
|
-
const _hoisted_5 = ["disabled", "value", "placeholder"];
|
|
27
|
+
const _hoisted_5 = ["disabled", "value", "placeholder", "aria-invalid"];
|
|
28
28
|
const _hoisted_6 = {
|
|
29
29
|
key: 0,
|
|
30
30
|
class: "p-4"
|
|
@@ -78,7 +78,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
78
78
|
emits: ["update:modelValue", "update:searchInput"],
|
|
79
79
|
setup(__props, { expose: __expose }) {
|
|
80
80
|
useCssVars((_ctx) => ({
|
|
81
|
-
"
|
|
81
|
+
"v865c54e4": unref(labelWithQuote)
|
|
82
82
|
}));
|
|
83
83
|
const modelValue = useModel(__props, "modelValue");
|
|
84
84
|
const searchInputModel = useModel(__props, "searchInput");
|
|
@@ -392,6 +392,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
392
392
|
},
|
|
393
393
|
{
|
|
394
394
|
"data-id": "activator",
|
|
395
|
+
"data-error": hasError ? "" : void 0,
|
|
395
396
|
tabindex: unref(disabled) || __props.readOnly ? -1 : 0,
|
|
396
397
|
onClick: _cache[5] || (_cache[5] = ($event) => unref(focusSetInputFocus)()),
|
|
397
398
|
onFocus: _cache[6] || (_cache[6] = ($event) => unref(focusOnActivatorFocused)()),
|
|
@@ -463,6 +464,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
463
464
|
class: normalizeClass(["bg-transparent outline-none", unref(focusInputClass)]),
|
|
464
465
|
type: "text",
|
|
465
466
|
placeholder: __props.placeholder,
|
|
467
|
+
"aria-invalid": hasError,
|
|
466
468
|
onKeydown: _cache[0] || (_cache[0] = withKeys(($event) => unref(onInputDeletePressed)(), ["delete"])),
|
|
467
469
|
onInput: _cache[1] || (_cache[1] = withModifiers(($event) => updateSearchInput($event), ["stop"])),
|
|
468
470
|
onFocus: _cache[2] || (_cache[2] = ($event) => unref(focusOnInputFocused)())
|