@rotki/ui-library 2.8.0 → 2.8.2
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/README.md +276 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +11 -0
- package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue.js +11 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +1 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue2.js +66 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue2.js.map +1 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue3.js +18 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue3.js.map +1 -0
- package/dist/components/accordions/accordions/RuiAccordions.vue.js +78 -0
- package/dist/components/accordions/accordions/RuiAccordions.vue.js.map +1 -0
- package/dist/components/accordions/accordions/RuiAccordions.vue2.js +5 -0
- package/dist/components/accordions/accordions/RuiAccordions.vue2.js.map +1 -0
- package/dist/components/alerts/RuiAlert.vue.d.ts +2 -2
- package/dist/components/alerts/RuiAlert.vue.js +11 -0
- package/dist/components/alerts/RuiAlert.vue.js.map +1 -0
- package/dist/components/alerts/RuiAlert.vue2.js +123 -0
- package/dist/components/alerts/RuiAlert.vue2.js.map +1 -0
- package/dist/components/alerts/RuiAlert.vue3.js +50 -0
- package/dist/components/alerts/RuiAlert.vue3.js.map +1 -0
- package/dist/components/buttons/button/RuiButton.vue.d.ts +1 -1
- package/dist/components/buttons/button/RuiButton.vue.js +11 -0
- package/dist/components/buttons/button/RuiButton.vue.js.map +1 -0
- package/dist/components/buttons/button/RuiButton.vue2.js +94 -0
- package/dist/components/buttons/button/RuiButton.vue2.js.map +1 -0
- package/dist/components/buttons/button/RuiButton.vue3.js +74 -0
- package/dist/components/buttons/button/RuiButton.vue3.js.map +1 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +1 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue.js +11 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.vue.js.map +1 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +112 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js.map +1 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.vue3.js +58 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.vue3.js.map +1 -0
- package/dist/components/calendar/RuiCalendar.vue.js +128 -0
- package/dist/components/calendar/RuiCalendar.vue.js.map +1 -0
- package/dist/components/calendar/RuiCalendar.vue3.js +6 -0
- package/dist/components/calendar/RuiCalendar.vue3.js.map +1 -0
- package/dist/components/calendar/RuiCalendarGrid.vue.js +8 -0
- package/dist/components/calendar/RuiCalendarGrid.vue.js.map +1 -0
- package/dist/components/calendar/RuiCalendarGrid.vue2.js +149 -0
- package/dist/components/calendar/RuiCalendarGrid.vue2.js.map +1 -0
- package/dist/components/calendar/RuiCalendarHeader.vue.d.ts +1 -1
- package/dist/components/calendar/RuiCalendarHeader.vue.js +8 -0
- package/dist/components/calendar/RuiCalendarHeader.vue.js.map +1 -0
- package/dist/components/calendar/RuiCalendarHeader.vue2.js +112 -0
- package/dist/components/calendar/RuiCalendarHeader.vue2.js.map +1 -0
- package/dist/components/calendar/RuiCalendarMenu.vue.d.ts +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue.js +8 -0
- package/dist/components/calendar/RuiCalendarMenu.vue.js.map +1 -0
- package/dist/components/calendar/RuiCalendarMenu.vue2.js +261 -0
- package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +1 -0
- package/dist/components/calendar/state.js +25 -0
- package/dist/components/calendar/state.js.map +1 -0
- package/dist/components/cards/RuiCard.vue.js +11 -0
- package/dist/components/cards/RuiCard.vue.js.map +1 -0
- package/dist/components/cards/RuiCard.vue2.js +88 -0
- package/dist/components/cards/RuiCard.vue2.js.map +1 -0
- package/dist/components/cards/RuiCard.vue3.js +40 -0
- package/dist/components/cards/RuiCard.vue3.js.map +1 -0
- package/dist/components/cards/RuiCardHeader.vue.js +11 -0
- package/dist/components/cards/RuiCardHeader.vue.js.map +1 -0
- package/dist/components/cards/RuiCardHeader.vue2.js +51 -0
- package/dist/components/cards/RuiCardHeader.vue2.js.map +1 -0
- package/dist/components/cards/RuiCardHeader.vue3.js +27 -0
- package/dist/components/cards/RuiCardHeader.vue3.js.map +1 -0
- package/dist/components/chips/RuiChip.vue.d.ts +2 -2
- package/dist/components/chips/RuiChip.vue.js +11 -0
- package/dist/components/chips/RuiChip.vue.js.map +1 -0
- package/dist/components/chips/RuiChip.vue2.js +95 -0
- package/dist/components/chips/RuiChip.vue2.js.map +1 -0
- package/dist/components/chips/RuiChip.vue3.js +88 -0
- package/dist/components/chips/RuiChip.vue3.js.map +1 -0
- package/dist/components/color-picker/RuiColorBoard.vue.d.ts +1 -1
- package/dist/components/color-picker/RuiColorBoard.vue.js +11 -0
- package/dist/components/color-picker/RuiColorBoard.vue.js.map +1 -0
- package/dist/components/color-picker/RuiColorBoard.vue2.js +102 -0
- package/dist/components/color-picker/RuiColorBoard.vue2.js.map +1 -0
- package/dist/components/color-picker/RuiColorBoard.vue3.js +18 -0
- package/dist/components/color-picker/RuiColorBoard.vue3.js.map +1 -0
- package/dist/components/color-picker/RuiColorDisplay.vue.js +49 -0
- package/dist/components/color-picker/RuiColorDisplay.vue.js.map +1 -0
- package/dist/components/color-picker/RuiColorDisplay.vue2.js +5 -0
- package/dist/components/color-picker/RuiColorDisplay.vue2.js.map +1 -0
- package/dist/components/color-picker/RuiColorHue.vue.js +11 -0
- package/dist/components/color-picker/RuiColorHue.vue.js.map +1 -0
- package/dist/components/color-picker/RuiColorHue.vue2.js +89 -0
- package/dist/components/color-picker/RuiColorHue.vue2.js.map +1 -0
- package/dist/components/color-picker/RuiColorHue.vue3.js +12 -0
- package/dist/components/color-picker/RuiColorHue.vue3.js.map +1 -0
- package/dist/components/color-picker/RuiColorInput.vue.d.ts +1 -1
- package/dist/components/color-picker/RuiColorInput.vue.js +139 -0
- package/dist/components/color-picker/RuiColorInput.vue.js.map +1 -0
- package/dist/components/color-picker/RuiColorInput.vue2.js +5 -0
- package/dist/components/color-picker/RuiColorInput.vue2.js.map +1 -0
- package/dist/components/color-picker/RuiColorPicker.vue.js +72 -0
- package/dist/components/color-picker/RuiColorPicker.vue.js.map +1 -0
- package/dist/components/color-picker/RuiColorPicker.vue2.js +5 -0
- package/dist/components/color-picker/RuiColorPicker.vue2.js.map +1 -0
- package/dist/components/color-picker/utils.js +182 -0
- package/dist/components/color-picker/utils.js.map +1 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +1 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.js +11 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.js.map +1 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +570 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.vue3.js +66 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.vue3.js.map +1 -0
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.d.ts +2 -2
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js +120 -0
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js.map +1 -0
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue2.js +5 -0
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue2.js.map +1 -0
- package/dist/components/date-time-picker/timezones.js +601 -0
- package/dist/components/date-time-picker/timezones.js.map +1 -0
- package/dist/components/date-time-picker/types.js +17 -0
- package/dist/components/date-time-picker/types.js.map +1 -0
- package/dist/components/date-time-picker/use-input-handler.d.ts +2 -2
- package/dist/components/date-time-picker/use-input-handler.js +31 -0
- package/dist/components/date-time-picker/use-input-handler.js.map +1 -0
- package/dist/components/date-time-picker/use-keyboard-handler.d.ts +2 -2
- package/dist/components/date-time-picker/use-keyboard-handler.js +308 -0
- package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -0
- package/dist/components/date-time-picker/utils.d.ts +1 -1
- package/dist/components/date-time-picker/utils.js +19 -0
- package/dist/components/date-time-picker/utils.js.map +1 -0
- package/dist/components/divider/RuiDivider.vue.js +22 -0
- package/dist/components/divider/RuiDivider.vue.js.map +1 -0
- package/dist/components/divider/RuiDivider.vue2.js +5 -0
- package/dist/components/divider/RuiDivider.vue2.js.map +1 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +2 -2
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.js +11 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.js.map +1 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +585 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue3.js +60 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue3.js.map +1 -0
- package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +1 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue.js +11 -0
- package/dist/components/forms/checkbox/RuiCheckbox.vue.js.map +1 -0
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +137 -0
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -0
- package/dist/components/forms/checkbox/RuiCheckbox.vue3.js +54 -0
- package/dist/components/forms/checkbox/RuiCheckbox.vue3.js.map +1 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.js +11 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.js.map +1 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +115 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.vue3.js +54 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.vue3.js.map +1 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +1 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.js +11 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.js.map +1 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +78 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +1 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue3.js +9 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue3.js.map +1 -0
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +5 -5
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +82 -0
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -0
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue2.js +5 -0
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue2.js.map +1 -0
- package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +2 -2
- package/dist/components/forms/select/RuiMenuSelect.vue.js +11 -0
- package/dist/components/forms/select/RuiMenuSelect.vue.js.map +1 -0
- package/dist/components/forms/select/RuiMenuSelect.vue2.js +297 -0
- package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -0
- package/dist/components/forms/select/RuiMenuSelect.vue3.js +60 -0
- package/dist/components/forms/select/RuiMenuSelect.vue3.js.map +1 -0
- package/dist/components/forms/select/RuiSimpleSelect.vue.js +11 -0
- package/dist/components/forms/select/RuiSimpleSelect.vue.js.map +1 -0
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js +67 -0
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +1 -0
- package/dist/components/forms/select/RuiSimpleSelect.vue3.js +21 -0
- package/dist/components/forms/select/RuiSimpleSelect.vue3.js.map +1 -0
- package/dist/components/forms/slider/RuiSlider.vue.d.ts +1 -1
- package/dist/components/forms/slider/RuiSlider.vue.js +11 -0
- package/dist/components/forms/slider/RuiSlider.vue.js.map +1 -0
- package/dist/components/forms/slider/RuiSlider.vue2.js +165 -0
- package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -0
- package/dist/components/forms/slider/RuiSlider.vue3.js +80 -0
- package/dist/components/forms/slider/RuiSlider.vue3.js.map +1 -0
- package/dist/components/forms/switch/RuiSwitch.vue.d.ts +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue.js +11 -0
- package/dist/components/forms/switch/RuiSwitch.vue.js.map +1 -0
- package/dist/components/forms/switch/RuiSwitch.vue2.js +89 -0
- package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -0
- package/dist/components/forms/switch/RuiSwitch.vue3.js +54 -0
- package/dist/components/forms/switch/RuiSwitch.vue3.js.map +1 -0
- package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +2 -2
- package/dist/components/forms/text-area/RuiTextArea.vue.js +11 -0
- package/dist/components/forms/text-area/RuiTextArea.vue.js.map +1 -0
- package/dist/components/forms/text-area/RuiTextArea.vue2.js +252 -0
- package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -0
- package/dist/components/forms/text-area/RuiTextArea.vue3.js +92 -0
- package/dist/components/forms/text-area/RuiTextArea.vue3.js.map +1 -0
- package/dist/components/forms/text-field/RuiTextField.vue.d.ts +2 -2
- package/dist/components/forms/text-field/RuiTextField.vue.js +11 -0
- package/dist/components/forms/text-field/RuiTextField.vue.js.map +1 -0
- package/dist/components/forms/text-field/RuiTextField.vue2.js +220 -0
- package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -0
- package/dist/components/forms/text-field/RuiTextField.vue3.js +89 -0
- package/dist/components/forms/text-field/RuiTextField.vue3.js.map +1 -0
- package/dist/components/helpers/RuiFormTextDetail.vue.js +54 -0
- package/dist/components/helpers/RuiFormTextDetail.vue.js.map +1 -0
- package/dist/components/helpers/RuiFormTextDetail.vue2.js +5 -0
- package/dist/components/helpers/RuiFormTextDetail.vue2.js.map +1 -0
- package/dist/components/icons/RuiIcon.vue.d.ts +2 -2
- package/dist/components/icons/RuiIcon.vue.js +11 -0
- package/dist/components/icons/RuiIcon.vue.js.map +1 -0
- package/dist/components/icons/RuiIcon.vue2.js +60 -0
- package/dist/components/icons/RuiIcon.vue2.js.map +1 -0
- package/dist/components/icons/RuiIcon.vue3.js +29 -0
- package/dist/components/icons/RuiIcon.vue3.js.map +1 -0
- package/dist/components/index.d.ts +45 -45
- package/dist/components/index.js +92 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonBase.vue.js +11 -0
- package/dist/components/loaders/RuiSkeletonBase.vue.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonBase.vue2.js +22 -0
- package/dist/components/loaders/RuiSkeletonBase.vue2.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonBase.vue3.js +12 -0
- package/dist/components/loaders/RuiSkeletonBase.vue3.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonLoader.vue.d.ts +1 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue.js +11 -0
- package/dist/components/loaders/RuiSkeletonLoader.vue.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonLoader.vue2.js +47 -0
- package/dist/components/loaders/RuiSkeletonLoader.vue2.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonLoader.vue3.js +33 -0
- package/dist/components/loaders/RuiSkeletonLoader.vue3.js.map +1 -0
- package/dist/components/logos/RuiLogo.vue.js +114 -0
- package/dist/components/logos/RuiLogo.vue.js.map +1 -0
- package/dist/components/logos/RuiLogo.vue2.js +5 -0
- package/dist/components/logos/RuiLogo.vue2.js.map +1 -0
- package/dist/components/logos/logo.svg.js +5 -0
- package/dist/components/logos/logo.svg.js.map +1 -0
- package/dist/components/overlays/badge/RuiBadge.vue.d.ts +2 -2
- package/dist/components/overlays/badge/RuiBadge.vue.js +11 -0
- package/dist/components/overlays/badge/RuiBadge.vue.js.map +1 -0
- package/dist/components/overlays/badge/RuiBadge.vue2.js +95 -0
- package/dist/components/overlays/badge/RuiBadge.vue2.js.map +1 -0
- package/dist/components/overlays/badge/RuiBadge.vue3.js +77 -0
- package/dist/components/overlays/badge/RuiBadge.vue3.js.map +1 -0
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +34 -0
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js.map +1 -0
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue2.js +5 -0
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue2.js.map +1 -0
- package/dist/components/overlays/dialog/RuiDialog.vue.js +11 -0
- package/dist/components/overlays/dialog/RuiDialog.vue.js.map +1 -0
- package/dist/components/overlays/dialog/RuiDialog.vue2.js +172 -0
- package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +1 -0
- package/dist/components/overlays/dialog/RuiDialog.vue3.js +18 -0
- package/dist/components/overlays/dialog/RuiDialog.vue3.js.map +1 -0
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue.js +11 -0
- package/dist/components/overlays/menu/RuiMenu.vue.js.map +1 -0
- package/dist/components/overlays/menu/RuiMenu.vue2.js +221 -0
- package/dist/components/overlays/menu/RuiMenu.vue2.js.map +1 -0
- package/dist/components/overlays/menu/RuiMenu.vue3.js +21 -0
- package/dist/components/overlays/menu/RuiMenu.vue3.js.map +1 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.js +11 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.js.map +1 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +112 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +1 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js +28 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js.map +1 -0
- package/dist/components/overlays/notification/RuiNotification.vue.js +74 -0
- package/dist/components/overlays/notification/RuiNotification.vue.js.map +1 -0
- package/dist/components/overlays/notification/RuiNotification.vue2.js +5 -0
- package/dist/components/overlays/notification/RuiNotification.vue2.js.map +1 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue.js +11 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue.js.map +1 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +105 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +1 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue3.js +27 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue3.js.map +1 -0
- package/dist/components/progress/RuiProgress.vue.d.ts +1 -1
- package/dist/components/progress/RuiProgress.vue.js +11 -0
- package/dist/components/progress/RuiProgress.vue.js.map +1 -0
- package/dist/components/progress/RuiProgress.vue2.js +98 -0
- package/dist/components/progress/RuiProgress.vue2.js.map +1 -0
- package/dist/components/progress/RuiProgress.vue3.js +48 -0
- package/dist/components/progress/RuiProgress.vue3.js.map +1 -0
- package/dist/components/steppers/RuiFooterStepper.vue.js +11 -0
- package/dist/components/steppers/RuiFooterStepper.vue.js.map +1 -0
- package/dist/components/steppers/RuiFooterStepper.vue2.js +143 -0
- package/dist/components/steppers/RuiFooterStepper.vue2.js.map +1 -0
- package/dist/components/steppers/RuiFooterStepper.vue3.js +31 -0
- package/dist/components/steppers/RuiFooterStepper.vue3.js.map +1 -0
- package/dist/components/steppers/RuiStepper.vue.d.ts +1 -1
- package/dist/components/steppers/RuiStepper.vue.js +11 -0
- package/dist/components/steppers/RuiStepper.vue.js.map +1 -0
- package/dist/components/steppers/RuiStepper.vue2.js +130 -0
- package/dist/components/steppers/RuiStepper.vue2.js.map +1 -0
- package/dist/components/steppers/RuiStepper.vue3.js +58 -0
- package/dist/components/steppers/RuiStepper.vue3.js.map +1 -0
- package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +1 -1
- package/dist/components/steppers/RuiStepperCustomIcon.vue.js +11 -0
- package/dist/components/steppers/RuiStepperCustomIcon.vue.js.map +1 -0
- package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +38 -0
- package/dist/components/steppers/RuiStepperCustomIcon.vue2.js.map +1 -0
- package/dist/components/steppers/RuiStepperCustomIcon.vue3.js +15 -0
- package/dist/components/steppers/RuiStepperCustomIcon.vue3.js.map +1 -0
- package/dist/components/steppers/RuiStepperIcon.vue.d.ts +1 -1
- package/dist/components/steppers/RuiStepperIcon.vue.js +11 -0
- package/dist/components/steppers/RuiStepperIcon.vue.js.map +1 -0
- package/dist/components/steppers/RuiStepperIcon.vue2.js +43 -0
- package/dist/components/steppers/RuiStepperIcon.vue2.js.map +1 -0
- package/dist/components/steppers/RuiStepperIcon.vue3.js +21 -0
- package/dist/components/steppers/RuiStepperIcon.vue3.js.map +1 -0
- package/dist/components/tables/RuiDataTable.vue.d.ts +2 -2
- package/dist/components/tables/RuiDataTable.vue.js +11 -0
- package/dist/components/tables/RuiDataTable.vue.js.map +1 -0
- package/dist/components/tables/RuiDataTable.vue2.js +943 -0
- package/dist/components/tables/RuiDataTable.vue2.js.map +1 -0
- package/dist/components/tables/RuiDataTable.vue3.js +79 -0
- package/dist/components/tables/RuiDataTable.vue3.js.map +1 -0
- package/dist/components/tables/RuiExpandButton.vue.d.ts +1 -1
- package/dist/components/tables/RuiExpandButton.vue.js +11 -0
- package/dist/components/tables/RuiExpandButton.vue.js.map +1 -0
- package/dist/components/tables/RuiExpandButton.vue2.js +42 -0
- package/dist/components/tables/RuiExpandButton.vue2.js.map +1 -0
- package/dist/components/tables/RuiExpandButton.vue3.js +15 -0
- package/dist/components/tables/RuiExpandButton.vue3.js.map +1 -0
- package/dist/components/tables/RuiTableHead.vue.js +11 -0
- package/dist/components/tables/RuiTableHead.vue.js.map +1 -0
- package/dist/components/tables/RuiTableHead.vue2.js +195 -0
- package/dist/components/tables/RuiTableHead.vue2.js.map +1 -0
- package/dist/components/tables/RuiTableHead.vue3.js +69 -0
- package/dist/components/tables/RuiTableHead.vue3.js.map +1 -0
- package/dist/components/tables/RuiTablePagination.vue.js +11 -0
- package/dist/components/tables/RuiTablePagination.vue.js.map +1 -0
- package/dist/components/tables/RuiTablePagination.vue2.js +196 -0
- package/dist/components/tables/RuiTablePagination.vue2.js.map +1 -0
- package/dist/components/tables/RuiTablePagination.vue3.js +28 -0
- package/dist/components/tables/RuiTablePagination.vue3.js.map +1 -0
- package/dist/components/tables/table_no_data_placeholder.svg.js +5 -0
- package/dist/components/tables/table_no_data_placeholder.svg.js.map +1 -0
- package/dist/components/tables/table_no_data_placeholder_dark.svg.js +5 -0
- package/dist/components/tables/table_no_data_placeholder_dark.svg.js.map +1 -0
- package/dist/components/tabs/tab/RuiTab.vue.d.ts +1 -1
- package/dist/components/tabs/tab/RuiTab.vue.js +11 -0
- package/dist/components/tabs/tab/RuiTab.vue.js.map +1 -0
- package/dist/components/tabs/tab/RuiTab.vue2.js +135 -0
- package/dist/components/tabs/tab/RuiTab.vue2.js.map +1 -0
- package/dist/components/tabs/tab/RuiTab.vue3.js +17 -0
- package/dist/components/tabs/tab/RuiTab.vue3.js.map +1 -0
- package/dist/components/tabs/tab-item/RuiTabItem.vue.js +11 -0
- package/dist/components/tabs/tab-item/RuiTabItem.vue.js.map +1 -0
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +51 -0
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +1 -0
- package/dist/components/tabs/tab-item/RuiTabItem.vue3.js +9 -0
- package/dist/components/tabs/tab-item/RuiTabItem.vue3.js.map +1 -0
- package/dist/components/tabs/tab-items/RuiTabItems.vue.js +11 -0
- package/dist/components/tabs/tab-items/RuiTabItems.vue.js.map +1 -0
- package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +90 -0
- package/dist/components/tabs/tab-items/RuiTabItems.vue2.js.map +1 -0
- package/dist/components/tabs/tab-items/RuiTabItems.vue3.js +9 -0
- package/dist/components/tabs/tab-items/RuiTabItems.vue3.js.map +1 -0
- package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +1 -1
- package/dist/components/tabs/tabs/RuiTabs.vue.js +11 -0
- package/dist/components/tabs/tabs/RuiTabs.vue.js.map +1 -0
- package/dist/components/tabs/tabs/RuiTabs.vue2.js +281 -0
- package/dist/components/tabs/tabs/RuiTabs.vue2.js.map +1 -0
- package/dist/components/tabs/tabs/RuiTabs.vue3.js +20 -0
- package/dist/components/tabs/tabs/RuiTabs.vue3.js.map +1 -0
- package/dist/components/time-picker/RuiTimePicker.vue.d.ts +1 -1
- package/dist/components/time-picker/RuiTimePicker.vue.js +11 -0
- package/dist/components/time-picker/RuiTimePicker.vue.js.map +1 -0
- package/dist/components/time-picker/RuiTimePicker.vue2.js +414 -0
- package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -0
- package/dist/components/time-picker/RuiTimePicker.vue3.js +21 -0
- package/dist/components/time-picker/RuiTimePicker.vue3.js.map +1 -0
- package/dist/composables/breakpoint.js +49 -0
- package/dist/composables/breakpoint.js.map +1 -0
- package/dist/composables/defaults/table.js +23 -0
- package/dist/composables/defaults/table.js.map +1 -0
- package/dist/composables/dropdown-menu.js +218 -0
- package/dist/composables/dropdown-menu.js.map +1 -0
- package/dist/composables/forms/auto-complete/focus.js +71 -0
- package/dist/composables/forms/auto-complete/focus.js.map +1 -0
- package/dist/composables/forms/auto-complete/index.d.ts +4 -4
- package/dist/composables/forms/auto-complete/keyboard-navigation.js +133 -0
- package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -0
- package/dist/composables/forms/auto-complete/search.js +93 -0
- package/dist/composables/forms/auto-complete/search.js.map +1 -0
- package/dist/composables/forms/auto-complete/value.js +129 -0
- package/dist/composables/forms/auto-complete/value.js.map +1 -0
- package/dist/composables/icons.js +60 -0
- package/dist/composables/icons.js.map +1 -0
- package/dist/composables/index.d.ts +3 -3
- package/dist/composables/index.js +9 -0
- package/dist/composables/index.js.map +1 -0
- package/dist/composables/popper.js +164 -0
- package/dist/composables/popper.js.map +1 -0
- package/dist/composables/sticky-header.js +105 -0
- package/dist/composables/sticky-header.js.map +1 -0
- package/dist/composables/theme.d.ts +1 -1
- package/dist/composables/theme.js +75 -0
- package/dist/composables/theme.js.map +1 -0
- package/dist/composables/timeout-manager.js +21 -0
- package/dist/composables/timeout-manager.js.map +1 -0
- package/dist/composables/use-rui-i18n.js +24 -0
- package/dist/composables/use-rui-i18n.js.map +1 -0
- package/dist/consts/colors.js +50 -0
- package/dist/consts/colors.js.map +1 -0
- package/dist/consts/time-accuracy.js +9 -0
- package/dist/consts/time-accuracy.js.map +1 -0
- package/dist/i18n/keys.js +20 -0
- package/dist/i18n/keys.js.map +1 -0
- package/dist/icons/icons_1.js +2503 -0
- package/dist/icons/icons_1.js.map +1 -0
- package/dist/icons/icons_2.js +2503 -0
- package/dist/icons/icons_2.js.map +1 -0
- package/dist/icons/icons_3.js +2503 -0
- package/dist/icons/icons_3.js.map +1 -0
- package/dist/icons/icons_4.js +923 -0
- package/dist/icons/icons_4.js.map +1 -0
- package/dist/icons/index.d.ts +4 -4
- package/dist/icons/index.js +9 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +11 -11
- package/dist/index.js +1852 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +12852 -1
- package/dist/theme/index.js +185 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/types/stepper.js +17 -0
- package/dist/types/stepper.js.map +1 -0
- package/dist/types/theme.js +27 -0
- package/dist/types/theme.js.map +1 -0
- package/dist/utils/assert.js +14 -0
- package/dist/utils/assert.js.map +1 -0
- package/dist/utils/blockie.js +79 -0
- package/dist/utils/blockie.js.map +1 -0
- package/dist/utils/form-text-detail.js +31 -0
- package/dist/utils/form-text-detail.js.map +1 -0
- package/dist/utils/generate-id.js +21 -0
- package/dist/utils/generate-id.js.map +1 -0
- package/dist/utils/helpers.js +51 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/is-equal.js +33 -0
- package/dist/utils/is-equal.js.map +1 -0
- package/dist/web-types.json +1 -1
- package/package.json +16 -14
- package/dist/components/index.es.js +0 -8030
- package/dist/composables/index-CC7A7CEh.js +0 -737
- package/dist/composables/index.es.js +0 -7
- package/dist/consts/colors-D563Ic3q.js +0 -48
- package/dist/consts/forms/auto-complete/index-l0sNRNKZ.js +0 -2
- package/dist/consts/time-accuracy-BnKA5GyT.js +0 -9
- package/dist/i18n/keys-CNGXWOJX.js +0 -20
- package/dist/icons/icons_1.es.js +0 -2004
- package/dist/icons/icons_2.es.js +0 -2004
- package/dist/icons/icons_3.es.js +0 -2004
- package/dist/icons/icons_4.es.js +0 -740
- package/dist/icons/index.es.js +0 -1697
- package/dist/index-D7l4d7N2.js +0 -54
- package/dist/index.es.js +0 -1757
- package/dist/theme/index.es.js +0 -177
- package/dist/types/index-CN6Ip1GL.js +0 -39
- package/dist/utils/index-DJ-ueLCs.js +0 -158
- package/dist/vendor-Hqbg5uCG.js +0 -1931
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
import { getRootAttrs, getNonRootAttrs, getTextToken } from "../../../utils/helpers.js";
|
|
2
|
+
import { defineComponent, mergeModels, useCssVars, unref, computed, useModel, useSlots, toRefs, ref, toRef, watch, nextTick, createBlock, openBlock, mergeProps, isRef, withCtx, createElementVNode, createElementBlock, createCommentVNode, withKeys, withModifiers, Fragment, renderList, normalizeClass, renderSlot, createTextVNode, toDisplayString, normalizeStyle, normalizeProps, guardReactiveProps, createVNode } from "vue";
|
|
3
|
+
import { useFocusWithin, useFocus, syncRef, isDefined } from "@vueuse/core";
|
|
4
|
+
import { logicAnd, logicOr } from "@vueuse/math";
|
|
5
|
+
import RuiButton from "../../buttons/button/RuiButton.vue.js";
|
|
6
|
+
import RuiChip from "../../chips/RuiChip.vue.js";
|
|
7
|
+
import RuiIcon from "../../icons/RuiIcon.vue.js";
|
|
8
|
+
import RuiMenu from "../../overlays/menu/RuiMenu.vue.js";
|
|
9
|
+
import RuiProgress from "../../progress/RuiProgress.vue.js";
|
|
10
|
+
import { useDropdownOptionProperty, useDropdownMenu } from "../../../composables/dropdown-menu.js";
|
|
11
|
+
import { useAutoCompleteFocus } from "../../../composables/forms/auto-complete/focus.js";
|
|
12
|
+
import { useAutoCompleteKeyboardNavigation } from "../../../composables/forms/auto-complete/keyboard-navigation.js";
|
|
13
|
+
import { useAutoCompleteSearch } from "../../../composables/forms/auto-complete/search.js";
|
|
14
|
+
import { useAutoCompleteValue } from "../../../composables/forms/auto-complete/value.js";
|
|
15
|
+
import { isEqual } from "../../../utils/is-equal.js";
|
|
16
|
+
import { get, set } from "@vueuse/shared";
|
|
17
|
+
const _hoisted_1 = ["tabindex"];
|
|
18
|
+
const _hoisted_2 = { class: "flex" };
|
|
19
|
+
const _hoisted_3 = {
|
|
20
|
+
key: 1,
|
|
21
|
+
class: "flex"
|
|
22
|
+
};
|
|
23
|
+
const _hoisted_4 = ["disabled", "value", "placeholder"];
|
|
24
|
+
const _hoisted_5 = {
|
|
25
|
+
key: 0,
|
|
26
|
+
class: "p-4"
|
|
27
|
+
};
|
|
28
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
29
|
+
...{
|
|
30
|
+
name: "RuiAutoComplete",
|
|
31
|
+
inheritAttrs: false
|
|
32
|
+
},
|
|
33
|
+
__name: "RuiAutoComplete",
|
|
34
|
+
props: /* @__PURE__ */ mergeModels({
|
|
35
|
+
options: { default: () => [] },
|
|
36
|
+
keyAttr: { default: void 0 },
|
|
37
|
+
textAttr: { default: void 0 },
|
|
38
|
+
disabled: { type: Boolean, default: false },
|
|
39
|
+
loading: { type: Boolean, default: false },
|
|
40
|
+
readOnly: { type: Boolean, default: false },
|
|
41
|
+
dense: { type: Boolean, default: false },
|
|
42
|
+
clearable: { type: Boolean, default: false },
|
|
43
|
+
label: { default: "Select" },
|
|
44
|
+
menuOptions: { default: void 0 },
|
|
45
|
+
labelClass: {},
|
|
46
|
+
menuClass: {},
|
|
47
|
+
itemClass: {},
|
|
48
|
+
prependWidth: { default: 0 },
|
|
49
|
+
appendWidth: { default: 0 },
|
|
50
|
+
itemHeight: { default: void 0 },
|
|
51
|
+
variant: { default: "default" },
|
|
52
|
+
hint: { default: void 0 },
|
|
53
|
+
errorMessages: { default: () => [] },
|
|
54
|
+
successMessages: { default: () => [] },
|
|
55
|
+
hideDetails: { type: Boolean, default: false },
|
|
56
|
+
autoSelectFirst: { type: Boolean, default: false },
|
|
57
|
+
chips: { type: Boolean, default: false },
|
|
58
|
+
noFilter: { type: Boolean, default: false },
|
|
59
|
+
hideNoData: { type: Boolean, default: false },
|
|
60
|
+
noDataText: { default: "No data available" },
|
|
61
|
+
filter: {},
|
|
62
|
+
hideSelected: { type: Boolean, default: false },
|
|
63
|
+
placeholder: { default: "" },
|
|
64
|
+
returnObject: { type: Boolean, default: false },
|
|
65
|
+
customValue: { type: Boolean, default: false },
|
|
66
|
+
hideCustomValue: { type: Boolean, default: false }
|
|
67
|
+
}, {
|
|
68
|
+
"modelValue": { required: true },
|
|
69
|
+
"modelModifiers": {},
|
|
70
|
+
"searchInput": { default: "" },
|
|
71
|
+
"searchInputModifiers": {}
|
|
72
|
+
}),
|
|
73
|
+
emits: ["update:modelValue", "update:searchInput"],
|
|
74
|
+
setup(__props, { expose: __expose }) {
|
|
75
|
+
useCssVars((_ctx) => ({
|
|
76
|
+
"v11aaad1c": unref(labelWithQuote)
|
|
77
|
+
}));
|
|
78
|
+
const modelValue = useModel(__props, "modelValue");
|
|
79
|
+
const searchInputModel = useModel(__props, "searchInput");
|
|
80
|
+
const props = __props;
|
|
81
|
+
const slots = useSlots();
|
|
82
|
+
const { dense, disabled, options } = toRefs(props);
|
|
83
|
+
const { getText, getIdentifier } = useDropdownOptionProperty({
|
|
84
|
+
keyAttr: props.keyAttr,
|
|
85
|
+
textAttr: props.textAttr
|
|
86
|
+
});
|
|
87
|
+
const textInput = ref();
|
|
88
|
+
const activator = ref();
|
|
89
|
+
const menuRef = ref();
|
|
90
|
+
const menuWrapperRef = ref();
|
|
91
|
+
const { focused: activatorFocusedWithin } = useFocusWithin(activator);
|
|
92
|
+
const { focused: menuWrapperFocusedWithin } = useFocusWithin(menuWrapperRef);
|
|
93
|
+
const { focused: searchInputFocused } = useFocus(textInput);
|
|
94
|
+
const { focused: activatorFocused } = useFocus(activator);
|
|
95
|
+
const renderedOptions = ref([]);
|
|
96
|
+
const {
|
|
97
|
+
internalSearch,
|
|
98
|
+
filteredOptions,
|
|
99
|
+
justOpened,
|
|
100
|
+
updateInternalSearch,
|
|
101
|
+
textValueToProperValue
|
|
102
|
+
} = useAutoCompleteSearch(
|
|
103
|
+
options,
|
|
104
|
+
searchInputModel,
|
|
105
|
+
{
|
|
106
|
+
keyAttr: toRef(props, "keyAttr"),
|
|
107
|
+
textAttr: toRef(props, "textAttr"),
|
|
108
|
+
noFilter: toRef(props, "noFilter"),
|
|
109
|
+
filter: toRef(props, "filter"),
|
|
110
|
+
customValue: toRef(props, "customValue"),
|
|
111
|
+
hideCustomValue: toRef(props, "hideCustomValue"),
|
|
112
|
+
returnObject: toRef(props, "returnObject")
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
const multiple = computed(() => Array.isArray(get(modelValue)));
|
|
116
|
+
const shouldApplyValueAsSearch = computed(() => !(slots.selection || get(multiple) || props.chips));
|
|
117
|
+
const tempIsOpen = ref(false);
|
|
118
|
+
const {
|
|
119
|
+
value,
|
|
120
|
+
setSelected
|
|
121
|
+
} = useAutoCompleteValue(
|
|
122
|
+
modelValue,
|
|
123
|
+
options,
|
|
124
|
+
{
|
|
125
|
+
keyAttr: toRef(props, "keyAttr"),
|
|
126
|
+
returnObject: toRef(props, "returnObject"),
|
|
127
|
+
customValue: toRef(props, "customValue")
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
getIdentifier,
|
|
131
|
+
getText,
|
|
132
|
+
textValueToProperValue,
|
|
133
|
+
shouldApplyValueAsSearch,
|
|
134
|
+
isOpen: tempIsOpen,
|
|
135
|
+
updateInternalSearch
|
|
136
|
+
}
|
|
137
|
+
);
|
|
138
|
+
const {
|
|
139
|
+
containerProps,
|
|
140
|
+
wrapperProps,
|
|
141
|
+
renderedData,
|
|
142
|
+
isOpen,
|
|
143
|
+
menuWidth,
|
|
144
|
+
isActiveItem,
|
|
145
|
+
itemIndexInValue,
|
|
146
|
+
highlightedIndex,
|
|
147
|
+
moveHighlight,
|
|
148
|
+
applyHighlighted,
|
|
149
|
+
optionsWithSelectedHidden
|
|
150
|
+
} = useDropdownMenu({
|
|
151
|
+
itemHeight: props.itemHeight ?? (props.dense ? 30 : 48),
|
|
152
|
+
keyAttr: props.keyAttr,
|
|
153
|
+
textAttr: props.textAttr,
|
|
154
|
+
options: filteredOptions,
|
|
155
|
+
dense,
|
|
156
|
+
value,
|
|
157
|
+
menuRef,
|
|
158
|
+
setValue,
|
|
159
|
+
autoSelectFirst: props.autoSelectFirst,
|
|
160
|
+
hideSelected: props.hideSelected
|
|
161
|
+
});
|
|
162
|
+
syncRef(isOpen, tempIsOpen);
|
|
163
|
+
const {
|
|
164
|
+
focusedValueIndex,
|
|
165
|
+
moveSelectedValueHighlight,
|
|
166
|
+
onEnter,
|
|
167
|
+
onInputDeletePressed,
|
|
168
|
+
onTab,
|
|
169
|
+
setValueFocus
|
|
170
|
+
} = useAutoCompleteKeyboardNavigation(
|
|
171
|
+
{
|
|
172
|
+
customValue: toRef(props, "customValue"),
|
|
173
|
+
multiple
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
activator,
|
|
177
|
+
applyHighlighted,
|
|
178
|
+
clear,
|
|
179
|
+
filteredOptions,
|
|
180
|
+
highlightedIndex,
|
|
181
|
+
internalSearch,
|
|
182
|
+
isOpen,
|
|
183
|
+
options,
|
|
184
|
+
searchInputFocused,
|
|
185
|
+
setSearchAsValue,
|
|
186
|
+
value
|
|
187
|
+
}
|
|
188
|
+
);
|
|
189
|
+
const {
|
|
190
|
+
anyFocused: focusAnyFocused,
|
|
191
|
+
inputClass: focusInputClass,
|
|
192
|
+
onActivatorFocused: focusOnActivatorFocused,
|
|
193
|
+
onInputFocused: focusOnInputFocused,
|
|
194
|
+
setInputFocus: focusSetInputFocus
|
|
195
|
+
} = useAutoCompleteFocus(
|
|
196
|
+
{
|
|
197
|
+
customValue: toRef(props, "customValue"),
|
|
198
|
+
disabled,
|
|
199
|
+
shouldApplyValueAsSearch
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
activatorFocused,
|
|
203
|
+
activatorFocusedWithin,
|
|
204
|
+
filteredOptions,
|
|
205
|
+
focusedValueIndex,
|
|
206
|
+
internalSearch,
|
|
207
|
+
isOpen,
|
|
208
|
+
justOpened,
|
|
209
|
+
menuWrapperFocusedWithin,
|
|
210
|
+
searchInputFocused,
|
|
211
|
+
setSearchAsValue,
|
|
212
|
+
textInput,
|
|
213
|
+
updateInternalSearch
|
|
214
|
+
}
|
|
215
|
+
);
|
|
216
|
+
const valueSet = computed(() => get(value).length > 0);
|
|
217
|
+
const labelWithQuote = computed(() => {
|
|
218
|
+
if (!props.label)
|
|
219
|
+
return '"\\200B"';
|
|
220
|
+
return `' ${props.label} '`;
|
|
221
|
+
});
|
|
222
|
+
const menuMinHeight = ref(0);
|
|
223
|
+
watch(renderedData, async () => {
|
|
224
|
+
await nextTick();
|
|
225
|
+
const renderedOptionsData = get(renderedOptions).slice(0, Math.min(5, get(renderedData).length));
|
|
226
|
+
let height = 0;
|
|
227
|
+
for (const item of renderedOptionsData) {
|
|
228
|
+
if (item.$el) {
|
|
229
|
+
height += item.$el.offsetHeight;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
set(menuMinHeight, height);
|
|
233
|
+
}, { immediate: true });
|
|
234
|
+
const outlined = computed(() => props.variant === "outlined");
|
|
235
|
+
const float = logicAnd(
|
|
236
|
+
logicOr(
|
|
237
|
+
isOpen,
|
|
238
|
+
valueSet,
|
|
239
|
+
searchInputFocused
|
|
240
|
+
),
|
|
241
|
+
outlined
|
|
242
|
+
);
|
|
243
|
+
const virtualContainerProps = computed(() => ({
|
|
244
|
+
style: containerProps.style,
|
|
245
|
+
ref: containerProps.ref
|
|
246
|
+
}));
|
|
247
|
+
function updateSearchInput(event) {
|
|
248
|
+
const value2 = event.target.value;
|
|
249
|
+
set(isOpen, true);
|
|
250
|
+
updateInternalSearch(value2);
|
|
251
|
+
set(justOpened, false);
|
|
252
|
+
}
|
|
253
|
+
async function setValue(val, index, skipRefocused = false) {
|
|
254
|
+
if (isDefined(index))
|
|
255
|
+
set(highlightedIndex, index);
|
|
256
|
+
const isMultiple = get(multiple);
|
|
257
|
+
if (isMultiple) {
|
|
258
|
+
const newValue = [...get(value)];
|
|
259
|
+
const indexInValue = itemIndexInValue(val);
|
|
260
|
+
if (indexInValue === -1) {
|
|
261
|
+
updateInternalSearch();
|
|
262
|
+
newValue.push(val);
|
|
263
|
+
} else {
|
|
264
|
+
newValue.splice(indexInValue, 1);
|
|
265
|
+
}
|
|
266
|
+
set(value, newValue);
|
|
267
|
+
} else {
|
|
268
|
+
if (get(shouldApplyValueAsSearch))
|
|
269
|
+
updateInternalSearch(getText(val));
|
|
270
|
+
else
|
|
271
|
+
updateInternalSearch();
|
|
272
|
+
set(value, [val]);
|
|
273
|
+
}
|
|
274
|
+
if (!isMultiple) {
|
|
275
|
+
if (!skipRefocused) {
|
|
276
|
+
set(activatorFocused, true);
|
|
277
|
+
get(activator)?.focus();
|
|
278
|
+
await nextTick(() => {
|
|
279
|
+
set(isOpen, false);
|
|
280
|
+
});
|
|
281
|
+
} else {
|
|
282
|
+
set(isOpen, false);
|
|
283
|
+
}
|
|
284
|
+
} else if (!skipRefocused) {
|
|
285
|
+
set(searchInputFocused, true);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
function setSearchAsValue() {
|
|
289
|
+
const searchToBeValue = get(internalSearch);
|
|
290
|
+
if (!searchToBeValue)
|
|
291
|
+
return;
|
|
292
|
+
const newValue = textValueToProperValue(searchToBeValue);
|
|
293
|
+
setValue(newValue, void 0, true);
|
|
294
|
+
}
|
|
295
|
+
function clear() {
|
|
296
|
+
updateInternalSearch();
|
|
297
|
+
set(modelValue, Array.isArray(get(modelValue)) ? [] : void 0);
|
|
298
|
+
}
|
|
299
|
+
function chipAttrs(item, index) {
|
|
300
|
+
return {
|
|
301
|
+
"data-index": index,
|
|
302
|
+
"data-value": getIdentifier(item),
|
|
303
|
+
"onKeydown": (event) => {
|
|
304
|
+
const { key } = event;
|
|
305
|
+
if (["Backspace", "Delete"].includes(key))
|
|
306
|
+
setValue(item);
|
|
307
|
+
},
|
|
308
|
+
"onClick.stop": () => {
|
|
309
|
+
setValueFocus(index);
|
|
310
|
+
},
|
|
311
|
+
"onClick:close": () => {
|
|
312
|
+
setValue(item);
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
function setSelectionRange(start, end) {
|
|
317
|
+
set(searchInputFocused, true);
|
|
318
|
+
get(textInput)?.setSelectionRange?.(start, end);
|
|
319
|
+
}
|
|
320
|
+
watch(options, (curr, old) => {
|
|
321
|
+
if (curr === old || props.customValue)
|
|
322
|
+
return;
|
|
323
|
+
if (isEqual(curr, old))
|
|
324
|
+
return;
|
|
325
|
+
setSelected(get(value));
|
|
326
|
+
});
|
|
327
|
+
function arrowClicked(event) {
|
|
328
|
+
if (get(isOpen)) {
|
|
329
|
+
set(isOpen, false);
|
|
330
|
+
event.stopPropagation();
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
__expose({
|
|
334
|
+
focus: focusSetInputFocus,
|
|
335
|
+
setSelectionRange
|
|
336
|
+
});
|
|
337
|
+
return (_ctx, _cache) => {
|
|
338
|
+
return openBlock(), createBlock(RuiMenu, mergeProps({
|
|
339
|
+
modelValue: unref(isOpen),
|
|
340
|
+
"onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => isRef(isOpen) ? isOpen.value = $event : null),
|
|
341
|
+
class: _ctx.$style.wrapper,
|
|
342
|
+
"disable-auto-focus": ""
|
|
343
|
+
}, {
|
|
344
|
+
...("getRootAttrs" in _ctx ? _ctx.getRootAttrs : unref(getRootAttrs))(_ctx.$attrs),
|
|
345
|
+
placement: "bottom-start",
|
|
346
|
+
closeOnContentClick: false,
|
|
347
|
+
fullWidth: true,
|
|
348
|
+
persistOnActivatorClick: true,
|
|
349
|
+
...__props.menuOptions,
|
|
350
|
+
menuClass: [
|
|
351
|
+
{ hidden: unref(optionsWithSelectedHidden).length === 0 && __props.customValue && !unref(slots)["no-data"] },
|
|
352
|
+
__props.menuOptions?.menuClass
|
|
353
|
+
],
|
|
354
|
+
errorMessages: __props.errorMessages,
|
|
355
|
+
successMessages: __props.successMessages,
|
|
356
|
+
hint: __props.hint,
|
|
357
|
+
dense: unref(dense),
|
|
358
|
+
showDetails: !__props.hideDetails,
|
|
359
|
+
disabled: unref(disabled)
|
|
360
|
+
}), {
|
|
361
|
+
activator: withCtx(({ attrs, open, hasError, hasSuccess }) => [
|
|
362
|
+
renderSlot(_ctx.$slots, "activator", normalizeProps(guardReactiveProps({ disabled: unref(disabled), value: unref(value), variant: __props.variant, readOnly: __props.readOnly, attrs, open, hasError, hasSuccess })), () => [
|
|
363
|
+
createElementVNode("div", mergeProps(
|
|
364
|
+
{
|
|
365
|
+
ref_key: "activator",
|
|
366
|
+
ref: activator,
|
|
367
|
+
class: ["group", [
|
|
368
|
+
_ctx.$style.activator,
|
|
369
|
+
__props.labelClass,
|
|
370
|
+
{
|
|
371
|
+
[_ctx.$style.disabled]: unref(disabled),
|
|
372
|
+
[_ctx.$style.readonly]: __props.readOnly,
|
|
373
|
+
[_ctx.$style.outlined]: unref(outlined),
|
|
374
|
+
[_ctx.$style.dense]: unref(dense),
|
|
375
|
+
[_ctx.$style.float]: unref(float),
|
|
376
|
+
[_ctx.$style.opened]: open,
|
|
377
|
+
[_ctx.$style["with-value"]]: unref(valueSet),
|
|
378
|
+
[_ctx.$style["with-error"]]: hasError,
|
|
379
|
+
[_ctx.$style["with-success"]]: hasSuccess && !hasError
|
|
380
|
+
}
|
|
381
|
+
]]
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
...("getNonRootAttrs" in _ctx ? _ctx.getNonRootAttrs : unref(getNonRootAttrs))(_ctx.$attrs, ["onClick", "class"]),
|
|
385
|
+
...__props.readOnly ? {} : attrs
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"data-id": "activator",
|
|
389
|
+
tabindex: unref(disabled) || __props.readOnly ? -1 : 0,
|
|
390
|
+
onClick: _cache[5] || (_cache[5] = ($event) => unref(focusSetInputFocus)()),
|
|
391
|
+
onFocus: _cache[6] || (_cache[6] = ($event) => unref(focusOnActivatorFocused)()),
|
|
392
|
+
onKeydown: [
|
|
393
|
+
_cache[7] || (_cache[7] = withKeys(($event) => unref(onEnter)($event), ["enter"])),
|
|
394
|
+
_cache[8] || (_cache[8] = withKeys(($event) => unref(onTab)($event), ["tab"])),
|
|
395
|
+
_cache[9] || (_cache[9] = withKeys(($event) => unref(moveSelectedValueHighlight)($event, false), ["left"])),
|
|
396
|
+
_cache[10] || (_cache[10] = withKeys(($event) => unref(moveSelectedValueHighlight)($event, true), ["right"])),
|
|
397
|
+
_cache[11] || (_cache[11] = withKeys(withModifiers(($event) => unref(moveHighlight)(true), ["prevent"]), ["up"])),
|
|
398
|
+
_cache[12] || (_cache[12] = withKeys(withModifiers(($event) => unref(moveHighlight)(false), ["prevent"]), ["down"]))
|
|
399
|
+
]
|
|
400
|
+
}
|
|
401
|
+
), [
|
|
402
|
+
unref(outlined) || !unref(valueSet) && !unref(searchInputFocused) ? (openBlock(), createElementBlock("span", {
|
|
403
|
+
key: 0,
|
|
404
|
+
class: normalizeClass([
|
|
405
|
+
_ctx.$style.label,
|
|
406
|
+
{
|
|
407
|
+
"absolute": unref(outlined),
|
|
408
|
+
"pr-2": !unref(valueSet) && !open && unref(outlined)
|
|
409
|
+
}
|
|
410
|
+
])
|
|
411
|
+
}, [
|
|
412
|
+
renderSlot(_ctx.$slots, "activator.label", normalizeProps(guardReactiveProps({ value: unref(value) })), () => [
|
|
413
|
+
createTextVNode(toDisplayString(__props.label), 1)
|
|
414
|
+
])
|
|
415
|
+
], 2)) : createCommentVNode("", true),
|
|
416
|
+
createElementVNode("div", {
|
|
417
|
+
class: normalizeClass(_ctx.$style.value)
|
|
418
|
+
}, [
|
|
419
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(value), (item, i) => {
|
|
420
|
+
return openBlock(), createElementBlock(Fragment, {
|
|
421
|
+
key: unref(getIdentifier)(item)
|
|
422
|
+
}, [
|
|
423
|
+
__props.chips ? (openBlock(), createBlock(RuiChip, mergeProps({
|
|
424
|
+
key: unref(getTextToken)(unref(getIdentifier)(item)),
|
|
425
|
+
tabindex: "-1",
|
|
426
|
+
size: unref(dense) ? "sm" : "md",
|
|
427
|
+
closeable: "",
|
|
428
|
+
class: { "leading-3": unref(dense) },
|
|
429
|
+
clickable: ""
|
|
430
|
+
}, { ref_for: true }, chipAttrs(item, i)), {
|
|
431
|
+
default: withCtx(() => [
|
|
432
|
+
createElementVNode("div", _hoisted_2, [
|
|
433
|
+
renderSlot(_ctx.$slots, "selection.prepend", mergeProps({ index: i }, { ref_for: true }, { item })),
|
|
434
|
+
renderSlot(_ctx.$slots, "selection", mergeProps({ index: i }, { ref_for: true }, { item }), () => [
|
|
435
|
+
createTextVNode(toDisplayString(unref(getText)(item)), 1)
|
|
436
|
+
])
|
|
437
|
+
])
|
|
438
|
+
]),
|
|
439
|
+
_: 2
|
|
440
|
+
}, 1040, ["size", "class"])) : unref(multiple) || !unref(searchInputFocused) && (unref(slots)["selection.prepend"] || unref(slots).selection) ? (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
441
|
+
renderSlot(_ctx.$slots, "selection.prepend", mergeProps({ index: i }, { ref_for: true }, { item })),
|
|
442
|
+
unref(multiple) || unref(slots).selection ? renderSlot(_ctx.$slots, "selection", mergeProps({
|
|
443
|
+
key: 0,
|
|
444
|
+
index: i
|
|
445
|
+
}, { ref_for: true }, { item, chipAttrs: chipAttrs(item, i) }), () => [
|
|
446
|
+
createTextVNode(toDisplayString(unref(getText)(item)), 1)
|
|
447
|
+
]) : createCommentVNode("", true)
|
|
448
|
+
])) : createCommentVNode("", true)
|
|
449
|
+
], 64);
|
|
450
|
+
}), 128)),
|
|
451
|
+
createElementVNode("input", {
|
|
452
|
+
ref_key: "textInput",
|
|
453
|
+
ref: textInput,
|
|
454
|
+
disabled: unref(disabled),
|
|
455
|
+
value: unref(internalSearch),
|
|
456
|
+
class: normalizeClass(["bg-transparent outline-none", unref(focusInputClass)]),
|
|
457
|
+
type: "text",
|
|
458
|
+
placeholder: __props.placeholder,
|
|
459
|
+
onKeydown: _cache[0] || (_cache[0] = withKeys(($event) => unref(onInputDeletePressed)(), ["delete"])),
|
|
460
|
+
onInput: _cache[1] || (_cache[1] = withModifiers(($event) => updateSearchInput($event), ["stop"])),
|
|
461
|
+
onFocus: _cache[2] || (_cache[2] = ($event) => unref(focusOnInputFocused)())
|
|
462
|
+
}, null, 42, _hoisted_4)
|
|
463
|
+
], 2),
|
|
464
|
+
__props.clearable && unref(valueSet) && !unref(disabled) ? (openBlock(), createBlock(RuiButton, {
|
|
465
|
+
key: 1,
|
|
466
|
+
variant: "text",
|
|
467
|
+
icon: "",
|
|
468
|
+
size: "sm",
|
|
469
|
+
tabindex: "-1",
|
|
470
|
+
color: "error",
|
|
471
|
+
class: normalizeClass(["group-hover:!visible", [_ctx.$style.clear, unref(focusAnyFocused) && "!visible", {
|
|
472
|
+
"mr-2": !unref(dense)
|
|
473
|
+
}]]),
|
|
474
|
+
onClick: _cache[3] || (_cache[3] = withModifiers(($event) => clear(), ["stop", "prevent"]))
|
|
475
|
+
}, {
|
|
476
|
+
default: withCtx(() => [
|
|
477
|
+
createVNode(RuiIcon, {
|
|
478
|
+
name: "lu-x",
|
|
479
|
+
size: "18"
|
|
480
|
+
})
|
|
481
|
+
]),
|
|
482
|
+
_: 1
|
|
483
|
+
}, 8, ["class"])) : createCommentVNode("", true),
|
|
484
|
+
createElementVNode("span", {
|
|
485
|
+
class: normalizeClass(_ctx.$style.icon__wrapper),
|
|
486
|
+
onClick: _cache[4] || (_cache[4] = ($event) => arrowClicked($event))
|
|
487
|
+
}, [
|
|
488
|
+
createVNode(RuiIcon, {
|
|
489
|
+
class: normalizeClass([_ctx.$style.icon, { "rotate-180": open }]),
|
|
490
|
+
size: unref(dense) ? 16 : 24,
|
|
491
|
+
name: "lu-chevron-down"
|
|
492
|
+
}, null, 8, ["class", "size"])
|
|
493
|
+
], 2),
|
|
494
|
+
__props.loading ? (openBlock(), createBlock(RuiProgress, {
|
|
495
|
+
key: 2,
|
|
496
|
+
class: "absolute left-0 bottom-0 w-full",
|
|
497
|
+
color: "primary",
|
|
498
|
+
thickness: "3",
|
|
499
|
+
variant: "indeterminate"
|
|
500
|
+
})) : createCommentVNode("", true)
|
|
501
|
+
], 16, _hoisted_1),
|
|
502
|
+
unref(outlined) ? (openBlock(), createElementBlock("fieldset", {
|
|
503
|
+
key: 0,
|
|
504
|
+
class: normalizeClass(_ctx.$style.fieldset)
|
|
505
|
+
}, [
|
|
506
|
+
createElementVNode("legend", {
|
|
507
|
+
class: normalizeClass({ "px-2": unref(float) })
|
|
508
|
+
}, null, 2)
|
|
509
|
+
], 2)) : createCommentVNode("", true)
|
|
510
|
+
])
|
|
511
|
+
]),
|
|
512
|
+
default: withCtx(({ width }) => [
|
|
513
|
+
createElementVNode("div", {
|
|
514
|
+
ref_key: "menuWrapperRef",
|
|
515
|
+
ref: menuWrapperRef
|
|
516
|
+
}, [
|
|
517
|
+
unref(optionsWithSelectedHidden).length > 0 ? (openBlock(), createElementBlock("div", mergeProps({
|
|
518
|
+
key: 0,
|
|
519
|
+
class: [_ctx.$style.menu, __props.menuClass],
|
|
520
|
+
style: { width: `${width}px`, minWidth: unref(menuWidth), minHeight: `${unref(menuMinHeight)}px` }
|
|
521
|
+
}, unref(virtualContainerProps), {
|
|
522
|
+
onScroll: _cache[13] || (_cache[13] = //@ts-ignore
|
|
523
|
+
(...args) => unref(containerProps).onScroll && unref(containerProps).onScroll(...args)),
|
|
524
|
+
onKeydown: [
|
|
525
|
+
_cache[14] || (_cache[14] = withKeys(withModifiers(($event) => unref(moveHighlight)(true), ["prevent"]), ["up"])),
|
|
526
|
+
_cache[15] || (_cache[15] = withKeys(withModifiers(($event) => unref(moveHighlight)(false), ["prevent"]), ["down"]))
|
|
527
|
+
]
|
|
528
|
+
}), [
|
|
529
|
+
createElementVNode("div", mergeProps(unref(wrapperProps), {
|
|
530
|
+
ref_key: "menuRef",
|
|
531
|
+
ref: menuRef
|
|
532
|
+
}), [
|
|
533
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(renderedData), ({ item, _index }) => {
|
|
534
|
+
return openBlock(), createBlock(RuiButton, {
|
|
535
|
+
ref_for: true,
|
|
536
|
+
ref_key: "renderedOptions",
|
|
537
|
+
ref: renderedOptions,
|
|
538
|
+
key: unref(getIdentifier)(item)?.toString(),
|
|
539
|
+
active: unref(isActiveItem)(item),
|
|
540
|
+
size: unref(dense) ? "sm" : void 0,
|
|
541
|
+
tabindex: "0",
|
|
542
|
+
variant: "list",
|
|
543
|
+
class: normalizeClass({
|
|
544
|
+
highlighted: unref(highlightedIndex) === _index,
|
|
545
|
+
[_ctx.$style.highlighted]: unref(highlightedIndex) === _index,
|
|
546
|
+
[_ctx.$style.active]: unref(isActiveItem)(item)
|
|
547
|
+
}),
|
|
548
|
+
onClick: ($event) => setValue(item, _index),
|
|
549
|
+
onMousedown: ($event) => highlightedIndex.value = _index
|
|
550
|
+
}, {
|
|
551
|
+
prepend: withCtx(() => [
|
|
552
|
+
renderSlot(_ctx.$slots, "item.prepend", mergeProps({ ref_for: true }, { disabled: unref(disabled), item, active: unref(isActiveItem)(item) }))
|
|
553
|
+
]),
|
|
554
|
+
append: withCtx(() => [
|
|
555
|
+
renderSlot(_ctx.$slots, "item.append", mergeProps({ ref_for: true }, { disabled: unref(disabled), item, active: unref(isActiveItem)(item) }))
|
|
556
|
+
]),
|
|
557
|
+
default: withCtx(() => [
|
|
558
|
+
renderSlot(_ctx.$slots, "item", mergeProps({ ref_for: true }, { disabled: unref(disabled), item, active: unref(isActiveItem)(item) }), () => [
|
|
559
|
+
createTextVNode(toDisplayString(unref(getText)(item)), 1)
|
|
560
|
+
])
|
|
561
|
+
]),
|
|
562
|
+
_: 2
|
|
563
|
+
}, 1032, ["active", "size", "class", "onClick", "onMousedown"]);
|
|
564
|
+
}), 128))
|
|
565
|
+
], 16)
|
|
566
|
+
], 16)) : !__props.hideNoData ? (openBlock(), createElementBlock("div", {
|
|
567
|
+
key: 1,
|
|
568
|
+
style: normalizeStyle({ width: `${width}px`, minWidth: unref(menuWidth) }),
|
|
569
|
+
class: normalizeClass(__props.menuClass)
|
|
570
|
+
}, [
|
|
571
|
+
renderSlot(_ctx.$slots, "no-data", {}, () => [
|
|
572
|
+
!__props.customValue ? (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(__props.noDataText), 1)) : createCommentVNode("", true)
|
|
573
|
+
])
|
|
574
|
+
], 6)) : createCommentVNode("", true)
|
|
575
|
+
], 512)
|
|
576
|
+
]),
|
|
577
|
+
_: 3
|
|
578
|
+
}, 16, ["modelValue", "class"]);
|
|
579
|
+
};
|
|
580
|
+
}
|
|
581
|
+
});
|
|
582
|
+
export {
|
|
583
|
+
_sfc_main as default
|
|
584
|
+
};
|
|
585
|
+
//# sourceMappingURL=RuiAutoComplete.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuiAutoComplete.vue2.js","sources":["../../../../src/components/forms/auto-complete/RuiAutoComplete.vue"],"sourcesContent":["<script lang=\"ts\" setup generic='TValue, TItem'>\nimport type { ComponentPublicInstance, ComputedRef } from 'vue';\nimport { syncRef } from '@vueuse/core';\nimport { logicAnd, logicOr } from '@vueuse/math';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiChip from '@/components/chips/RuiChip.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport RuiMenu, { type MenuProps } from '@/components/overlays/menu/RuiMenu.vue';\nimport RuiProgress from '@/components/progress/RuiProgress.vue';\nimport { type KeyOfType, useDropdownMenu, useDropdownOptionProperty } from '@/composables/dropdown-menu';\nimport { useAutoCompleteFocus, useAutoCompleteKeyboardNavigation, useAutoCompleteSearch, useAutoCompleteValue } from '@/composables/forms/auto-complete';\nimport { getTextToken } from '@/utils/helpers';\nimport { isEqual } from '@/utils/is-equal';\n\nexport type AutoCompleteModelValue<TValue> = TValue extends Array<infer U> ? U[] : TValue | undefined;\n\nexport interface AutoCompleteProps<TValue, TItem> {\n options?: TItem[];\n keyAttr?: KeyOfType<TItem, TValue extends Array<infer U> ? U : TValue>;\n textAttr?: keyof TItem;\n disabled?: boolean;\n loading?: boolean;\n readOnly?: boolean;\n dense?: boolean;\n clearable?: boolean;\n label?: string;\n menuOptions?: MenuProps;\n labelClass?: string;\n menuClass?: string;\n itemClass?: string;\n prependWidth?: number; // in rem\n appendWidth?: number; // in rem\n itemHeight?: number; // in px\n variant?: 'default' | 'filled' | 'outlined';\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n autoSelectFirst?: boolean;\n chips?: boolean;\n noFilter?: boolean;\n hideNoData?: boolean;\n noDataText?: string;\n filter?: (item: TItem, queryText: string) => boolean;\n hideSelected?: boolean;\n placeholder?: string;\n returnObject?: boolean;\n customValue?: boolean;\n hideCustomValue?: boolean;\n}\n\ndefineOptions({\n name: 'RuiAutoComplete',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<AutoCompleteModelValue<TValue>>({ required: true });\n\nconst searchInputModel = defineModel<string>('searchInput', { default: '' });\n\nconst props = withDefaults(defineProps<AutoCompleteProps<TValue, TItem>>(), {\n options: () => [],\n disabled: false,\n loading: false,\n readOnly: false,\n dense: false,\n clearable: false,\n hideDetails: false,\n chips: false,\n label: 'Select',\n menuOptions: undefined,\n prependWidth: 0,\n appendWidth: 0,\n variant: 'default',\n hint: undefined,\n keyAttr: undefined,\n textAttr: undefined,\n itemHeight: undefined,\n errorMessages: () => [],\n successMessages: () => [],\n autoSelectFirst: false,\n noFilter: false,\n hideNoData: false,\n noDataText: 'No data available',\n hideSelected: false,\n placeholder: '',\n returnObject: false,\n customValue: false,\n hideCustomValue: false,\n});\n\nconst slots = useSlots();\n\nconst { dense, disabled, options } = toRefs(props);\n\nconst { getText, getIdentifier } = useDropdownOptionProperty<TValue, TItem>({\n keyAttr: props.keyAttr,\n textAttr: props.textAttr,\n});\n\nconst textInput = ref();\nconst activator = ref();\nconst menuRef = ref();\nconst menuWrapperRef = ref();\n\nconst { focused: activatorFocusedWithin } = useFocusWithin(activator);\nconst { focused: menuWrapperFocusedWithin } = useFocusWithin(menuWrapperRef);\nconst { focused: searchInputFocused } = useFocus(textInput);\nconst { focused: activatorFocused } = useFocus(activator);\n\nconst renderedOptions = ref<ComponentPublicInstance[]>([]);\n\nconst {\n internalSearch,\n filteredOptions,\n justOpened,\n updateInternalSearch,\n textValueToProperValue,\n} = useAutoCompleteSearch<TItem>(\n options,\n searchInputModel,\n {\n keyAttr: toRef(props, 'keyAttr'),\n textAttr: toRef(props, 'textAttr'),\n noFilter: toRef(props, 'noFilter'),\n filter: toRef(props, 'filter'),\n customValue: toRef(props, 'customValue'),\n hideCustomValue: toRef(props, 'hideCustomValue'),\n returnObject: toRef(props, 'returnObject'),\n },\n);\n\n// Calculate multiple from modelValue directly to avoid circular dependency\nconst multiple = computed<boolean>(() => Array.isArray(get(modelValue)));\n\nconst shouldApplyValueAsSearch = computed<boolean>(() => !(slots.selection || get(multiple) || props.chips));\n\n// Create a temporary isOpen ref that we'll sync with useDropdownMenu's isOpen\nconst tempIsOpen = ref<boolean>(false);\n\nconst {\n value,\n setSelected,\n} = useAutoCompleteValue<AutoCompleteModelValue<TValue>, TItem>(\n modelValue,\n options,\n {\n keyAttr: toRef(props, 'keyAttr'),\n returnObject: toRef(props, 'returnObject'),\n customValue: toRef(props, 'customValue'),\n },\n {\n getIdentifier,\n getText,\n textValueToProperValue,\n shouldApplyValueAsSearch,\n isOpen: tempIsOpen,\n updateInternalSearch,\n },\n);\n\nconst {\n containerProps,\n wrapperProps,\n renderedData,\n isOpen,\n menuWidth,\n isActiveItem,\n itemIndexInValue,\n highlightedIndex,\n moveHighlight,\n applyHighlighted,\n optionsWithSelectedHidden,\n} = useDropdownMenu<TValue, TItem>({\n itemHeight: props.itemHeight ?? (props.dense ? 30 : 48),\n keyAttr: props.keyAttr,\n textAttr: props.textAttr,\n options: filteredOptions,\n dense,\n value,\n menuRef,\n setValue,\n autoSelectFirst: props.autoSelectFirst,\n hideSelected: props.hideSelected,\n});\n\n// Sync the isOpen states\nsyncRef(isOpen, tempIsOpen);\n\nconst {\n focusedValueIndex,\n moveSelectedValueHighlight,\n onEnter,\n onInputDeletePressed,\n onTab,\n setValueFocus,\n} = useAutoCompleteKeyboardNavigation<TItem>(\n {\n customValue: toRef(props, 'customValue'),\n multiple,\n },\n {\n activator,\n applyHighlighted,\n clear,\n filteredOptions,\n highlightedIndex,\n internalSearch,\n isOpen,\n options,\n searchInputFocused,\n setSearchAsValue,\n value,\n },\n);\n\nconst {\n anyFocused: focusAnyFocused,\n inputClass: focusInputClass,\n onActivatorFocused: focusOnActivatorFocused,\n onInputFocused: focusOnInputFocused,\n setInputFocus: focusSetInputFocus,\n} = useAutoCompleteFocus<TItem>(\n {\n customValue: toRef(props, 'customValue'),\n disabled,\n shouldApplyValueAsSearch,\n },\n {\n activatorFocused,\n activatorFocusedWithin,\n filteredOptions,\n focusedValueIndex,\n internalSearch,\n isOpen,\n justOpened,\n menuWrapperFocusedWithin,\n searchInputFocused,\n setSearchAsValue,\n textInput,\n updateInternalSearch,\n },\n);\n\nconst valueSet = computed<boolean>(() => get(value).length > 0);\n\nconst labelWithQuote = computed<string>(() => {\n if (!props.label)\n return '\"\\\\200B\"';\n\n return `' ${props.label} '`;\n});\n\nconst menuMinHeight = ref<number>(0);\n\n// Update menu min height only when rendered data changes\nwatch(renderedData, async () => {\n await nextTick();\n const renderedOptionsData = get(renderedOptions).slice(0, Math.min(5, get(renderedData).length));\n let height = 0;\n for (const item of renderedOptionsData) {\n if (item.$el) {\n height += item.$el.offsetHeight;\n }\n }\n set(menuMinHeight, height);\n}, { immediate: true });\n\nconst outlined = computed<boolean>(() => props.variant === 'outlined');\n\nconst float: ComputedRef<boolean> = logicAnd(\n logicOr(\n isOpen,\n valueSet,\n searchInputFocused,\n ),\n outlined,\n);\n\nconst virtualContainerProps = computed(() => ({\n style: containerProps.style as any,\n ref: containerProps.ref as any,\n}));\n\nfunction updateSearchInput(event: any) {\n const value = event.target.value;\n set(isOpen, true);\n updateInternalSearch(value);\n set(justOpened, false);\n}\n\nasync function setValue(val: TItem, index?: number, skipRefocused = false): Promise<void> {\n if (isDefined(index))\n set(highlightedIndex, index);\n\n const isMultiple = get(multiple);\n\n if (isMultiple) {\n const newValue = [...get(value)];\n const indexInValue = itemIndexInValue(val);\n if (indexInValue === -1) {\n updateInternalSearch();\n newValue.push(val);\n }\n\n else { newValue.splice(indexInValue, 1); }\n set(value, newValue);\n }\n else {\n if (get(shouldApplyValueAsSearch))\n updateInternalSearch(getText(val));\n else\n updateInternalSearch();\n\n set(value, [val]);\n }\n\n if (!isMultiple) {\n if (!skipRefocused) {\n set(activatorFocused, true);\n get(activator)?.focus();\n await nextTick(() => {\n set(isOpen, false);\n });\n }\n else {\n set(isOpen, false);\n }\n }\n else if (!skipRefocused) {\n set(searchInputFocused, true);\n }\n}\n\nfunction setSearchAsValue() {\n const searchToBeValue = get(internalSearch);\n if (!searchToBeValue)\n return;\n\n const newValue: TItem = textValueToProperValue(searchToBeValue);\n setValue(newValue, undefined, true);\n}\n\nfunction clear(): void {\n updateInternalSearch();\n set(modelValue, (Array.isArray(get(modelValue)) ? [] : undefined) as AutoCompleteModelValue<TValue>);\n}\n\nfunction chipAttrs(item: TItem, index: number) {\n return {\n 'data-index': index,\n 'data-value': getIdentifier(item),\n 'onKeydown': (event: KeyboardEvent): void => {\n const { key } = event;\n if (['Backspace', 'Delete'].includes(key))\n setValue(item);\n },\n 'onClick.stop': (): void => {\n setValueFocus(index);\n },\n 'onClick:close': (): void => {\n setValue(item);\n },\n };\n}\n\nfunction setSelectionRange(start: number, end: number): void {\n set(searchInputFocused, true);\n get(textInput)?.setSelectionRange?.(start, end);\n}\n\n// Optimize options watcher with shallow comparison first\nwatch(options, (curr, old) => {\n if (curr === old || props.customValue)\n return;\n\n // Only do deep comparison if reference changed\n if (isEqual(curr, old))\n return;\n\n setSelected(get(value));\n});\n\nfunction arrowClicked(event: any): void {\n if (get(isOpen)) {\n set(isOpen, false);\n event.stopPropagation();\n }\n}\n\ndefineExpose({\n focus: focusSetInputFocus,\n setSelectionRange,\n});\n</script>\n\n<template>\n <RuiMenu\n v-model=\"isOpen\"\n :class=\"$style.wrapper\"\n disable-auto-focus\n v-bind=\"{\n ...getRootAttrs($attrs),\n placement: 'bottom-start',\n closeOnContentClick: false,\n fullWidth: true,\n persistOnActivatorClick: true,\n ...menuOptions,\n menuClass: [\n { hidden: (optionsWithSelectedHidden.length === 0 && customValue && !slots['no-data']) },\n menuOptions?.menuClass,\n ],\n errorMessages,\n successMessages,\n hint,\n dense,\n showDetails: !hideDetails,\n disabled,\n }\"\n >\n <template #activator=\"{ attrs, open, hasError, hasSuccess }\">\n <slot\n name=\"activator\"\n v-bind=\"{ disabled, value, variant, readOnly, attrs, open, hasError, hasSuccess }\"\n >\n <div\n ref=\"activator\"\n class=\"group\"\n :class=\"[\n $style.activator,\n labelClass,\n {\n [$style.disabled]: disabled,\n [$style.readonly]: readOnly,\n [$style.outlined]: outlined,\n [$style.dense]: dense,\n [$style.float]: float,\n [$style.opened]: open,\n [$style['with-value']]: valueSet,\n [$style['with-error']]: hasError,\n [$style['with-success']]: hasSuccess && !hasError,\n },\n ]\"\n v-bind=\"{\n ...getNonRootAttrs($attrs, ['onClick', 'class']),\n ...(readOnly ? {} : attrs) }\n \"\n data-id=\"activator\"\n :tabindex=\"disabled || readOnly ? -1 : 0\"\n @click=\"focusSetInputFocus()\"\n @focus=\"focusOnActivatorFocused()\"\n @keydown.enter=\"onEnter($event)\"\n @keydown.tab=\"onTab($event)\"\n @keydown.left=\"moveSelectedValueHighlight($event, false)\"\n @keydown.right=\"moveSelectedValueHighlight($event, true)\"\n @keydown.up.prevent=\"moveHighlight(true)\"\n @keydown.down.prevent=\"moveHighlight(false)\"\n >\n <span\n v-if=\"outlined || (!valueSet && !searchInputFocused)\"\n :class=\"[\n $style.label,\n {\n 'absolute': outlined,\n 'pr-2': !valueSet && !open && outlined,\n },\n ]\"\n >\n <slot\n name=\"activator.label\"\n v-bind=\"{ value }\"\n >\n {{ label }}\n </slot>\n </span>\n <div :class=\"$style.value\">\n <template\n v-for=\"(item, i) in value\"\n :key=\"getIdentifier(item)\"\n >\n <RuiChip\n v-if=\"chips\"\n :key=\"getTextToken(getIdentifier(item))\"\n tabindex=\"-1\"\n :size=\"dense ? 'sm' : 'md'\"\n closeable\n :class=\"{ 'leading-3': dense }\"\n clickable\n v-bind=\"chipAttrs(item, i)\"\n >\n <div class=\"flex\">\n <slot\n name=\"selection.prepend\"\n :index=\"i\"\n v-bind=\"{ item }\"\n />\n <slot\n :index=\"i\"\n name=\"selection\"\n v-bind=\"{ item }\"\n >\n {{ getText(item) }}\n </slot>\n </div>\n </RuiChip>\n <div\n v-else-if=\"multiple || ((!searchInputFocused) && (slots['selection.prepend'] || slots.selection))\"\n class=\"flex\"\n >\n <slot\n name=\"selection.prepend\"\n :index=\"i\"\n v-bind=\"{ item }\"\n />\n <slot\n v-if=\"multiple || slots.selection\"\n :index=\"i\"\n name=\"selection\"\n v-bind=\"{ item, chipAttrs: chipAttrs(item, i) }\"\n >\n {{ getText(item) }}\n </slot>\n </div>\n </template>\n <input\n ref=\"textInput\"\n :disabled=\"disabled\"\n :value=\"internalSearch\"\n class=\"bg-transparent outline-none\"\n type=\"text\"\n :placeholder=\"placeholder\"\n :class=\"focusInputClass\"\n @keydown.delete=\"onInputDeletePressed()\"\n @input.stop=\"updateSearchInput($event)\"\n @focus=\"focusOnInputFocused()\"\n />\n </div>\n\n <RuiButton\n v-if=\"clearable && valueSet && !disabled\"\n variant=\"text\"\n icon\n size=\"sm\"\n tabindex=\"-1\"\n color=\"error\"\n class=\"group-hover:!visible\"\n :class=\"[$style.clear, focusAnyFocused && '!visible', {\n 'mr-2': !dense,\n }]\"\n @click.stop.prevent=\"clear()\"\n >\n <RuiIcon\n name=\"lu-x\"\n size=\"18\"\n />\n </RuiButton>\n\n <span\n :class=\"$style.icon__wrapper\"\n @click=\"arrowClicked($event)\"\n >\n <RuiIcon\n :class=\"[$style.icon, { 'rotate-180': open }]\"\n :size=\"dense ? 16 : 24\"\n name=\"lu-chevron-down\"\n />\n </span>\n\n <RuiProgress\n v-if=\"loading\"\n class=\"absolute left-0 bottom-0 w-full\"\n color=\"primary\"\n thickness=\"3\"\n variant=\"indeterminate\"\n />\n </div>\n <fieldset\n v-if=\"outlined\"\n :class=\"$style.fieldset\"\n >\n <legend :class=\"{ 'px-2': float }\" />\n </fieldset>\n </slot>\n </template>\n <template #default=\"{ width }\">\n <div ref=\"menuWrapperRef\">\n <div\n v-if=\"optionsWithSelectedHidden.length > 0\"\n :class=\"[$style.menu, menuClass]\"\n :style=\"{ width: `${width}px`, minWidth: menuWidth, minHeight: `${menuMinHeight}px` }\"\n v-bind=\"virtualContainerProps\"\n @scroll=\"containerProps.onScroll\"\n @keydown.up.prevent=\"moveHighlight(true)\"\n @keydown.down.prevent=\"moveHighlight(false)\"\n >\n <div\n v-bind=\"wrapperProps\"\n ref=\"menuRef\"\n >\n <RuiButton\n v-for=\"({ item, _index }) in renderedData\"\n ref=\"renderedOptions\"\n :key=\"getIdentifier(item)?.toString()\"\n :active=\"isActiveItem(item)\"\n :size=\"dense ? 'sm' : undefined\"\n tabindex=\"0\"\n variant=\"list\"\n :class=\"{\n highlighted: highlightedIndex === _index,\n [$style.highlighted]: highlightedIndex === _index,\n [$style.active]: isActiveItem(item),\n }\"\n @click=\"setValue(item, _index)\"\n @mousedown=\"highlightedIndex = _index\"\n >\n <template #prepend>\n <slot\n name=\"item.prepend\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n />\n </template>\n <slot\n name=\"item\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n >\n {{ getText(item) }}\n </slot>\n <template #append>\n <slot\n name=\"item.append\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n />\n </template>\n </RuiButton>\n </div>\n </div>\n\n <div\n v-else-if=\"!hideNoData\"\n :style=\"{ width: `${width}px`, minWidth: menuWidth }\"\n :class=\"menuClass\"\n >\n <slot name=\"no-data\">\n <div\n v-if=\"!customValue\"\n class=\"p-4\"\n >\n {{ noDataText }}\n </div>\n </slot>\n </div>\n </div>\n </template>\n </RuiMenu>\n</template>\n\n<style lang=\"scss\" module>\n.wrapper {\n @apply w-full inline-flex flex-col;\n\n .activator {\n @apply relative inline-flex items-center w-full;\n @apply outline-none focus-within:outline-none cursor-pointer min-h-14 pl-3 py-2 pr-8 rounded;\n @apply m-0 bg-white transition-all text-body-1 text-left hover:border-black;\n\n &:not(.outlined) {\n @apply hover:bg-gray-100 focus-within:bg-gray-100;\n }\n\n &.dense {\n @apply py-1.5 min-h-10;\n\n ~ .fieldset {\n @apply px-2;\n }\n }\n\n &.disabled {\n @apply opacity-65 text-rui-text-disabled active:text-rui-text-disabled cursor-default pointer-events-none;\n }\n\n &.readonly {\n @apply opacity-80 pointer-events-none cursor-default bg-gray-50;\n }\n\n &.outlined {\n @apply border-none hover:border-none;\n\n &:not(.disabled):not(.with-error):not(.with-success) {\n &.opened,\n &:focus,\n &:focus-within {\n @apply border-rui-primary;\n\n ~ .fieldset {\n @apply border-rui-primary #{!important};\n @apply border-2 #{!important};\n }\n }\n }\n\n ~ .fieldset {\n @apply border border-black/[0.23];\n }\n\n &:hover {\n ~ .fieldset {\n @apply border-black;\n }\n }\n\n &.disabled {\n ~ .fieldset {\n @apply border-dotted;\n @apply border border-black/[0.23] #{!important};\n }\n }\n\n &.with-success {\n .label {\n @apply text-rui-success #{!important};\n }\n\n ~ .fieldset {\n @apply border-rui-success #{!important};\n }\n }\n\n &.with-error {\n .label {\n @apply text-rui-error #{!important};\n }\n\n ~ .fieldset {\n @apply border-rui-error #{!important};\n }\n }\n }\n\n .label {\n @apply text-rui-text-secondary;\n max-width: calc(100% - 2.5rem);\n }\n\n .label,\n .value {\n @apply block truncate transition-all duration-75;\n }\n\n .value {\n @apply flex gap-1 flex-wrap flex-1;\n }\n\n .clear {\n @apply ml-auto shrink-0 invisible;\n }\n\n .icon {\n @apply text-rui-text transition;\n\n &__wrapper {\n @apply flex items-center justify-end;\n @apply absolute right-3 top-px bottom-0;\n }\n }\n\n &.float {\n .label {\n @apply -translate-y-2 top-0 text-xs px-1;\n }\n\n ~ .fieldset {\n legend {\n &:after {\n content: v-bind(labelWithQuote);\n }\n }\n }\n\n &:not(.disabled) {\n &.opened,\n &.opened.with-value,\n &:focus,\n &:focus.with-value,\n &:focus-within,\n &:focus-within.with-value {\n .label {\n @apply text-rui-primary;\n }\n\n ~ .fieldset {\n @apply border-rui-primary;\n @apply border-2 #{!important};\n }\n }\n }\n }\n }\n\n .fieldset {\n @apply absolute w-full min-w-0 h-[calc(100%+0.5rem)] top-0 left-0 rounded pointer-events-none px-2 transition-all -mt-2;\n\n legend {\n @apply opacity-0 text-xs truncate;\n max-width: calc(100% - 1rem);\n\n &:before {\n content: ' ';\n }\n\n &:after {\n @apply truncate max-w-full leading-[0];\n content: '\\200B';\n }\n }\n }\n}\n\n.menu {\n @apply overflow-y-auto max-h-60 min-w-[2.5rem];\n}\n\n.highlighted {\n @apply bg-rui-grey-200 #{!important};\n\n &.active {\n @apply bg-rui-grey-300 #{!important};\n }\n}\n\n:global(.dark) {\n .wrapper {\n .activator {\n @apply bg-transparent text-rui-text;\n\n &:not(.outlined) {\n @apply hover:bg-white/10 focus-within:bg-white/10;\n\n &.disabled {\n @apply bg-white/10;\n }\n }\n\n &.readonly {\n @apply bg-white/10;\n }\n\n &.outlined {\n ~ .fieldset {\n @apply border-white/[0.23];\n }\n\n &.disabled {\n ~ .fieldset {\n @apply border-white/[0.23] #{!important};\n }\n }\n\n &:hover {\n ~ .fieldset {\n @apply border-white;\n }\n }\n }\n }\n }\n\n .highlighted {\n @apply bg-rui-grey-800 #{!important};\n\n &.active {\n @apply bg-rui-grey-700 #{!important};\n }\n }\n}\n</style>\n"],"names":["_useModel","value","_openBlock","_createBlock","_mergeProps","_unref","$style","getRootAttrs","$attrs","_withCtx","_renderSlot","_createElementVNode","getNonRootAttrs","_withKeys","_createElementBlock","_normalizeClass","_normalizeProps","_guardReactiveProps","_Fragment","_renderList","_createTextVNode","_toDisplayString","_withModifiers","_createVNode","_normalizeStyle"],"mappings":"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"}
|