@rotki/ui-library 2.8.1 → 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 @@
|
|
|
1
|
+
{"version":3,"file":"RuiDataTable.vue2.js","sources":["../../../src/components/tables/RuiDataTable.vue"],"sourcesContent":["<script\n lang=\"ts\"\n setup\n generic=\"T extends object, IdType extends keyof T = keyof T\"\n>\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiCheckbox from '@/components/forms/checkbox/RuiCheckbox.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport RuiTooltip from '@/components/overlays/tooltip/RuiTooltip.vue';\nimport RuiProgress from '@/components/progress/RuiProgress.vue';\nimport RuiExpandButton from '@/components/tables/RuiExpandButton.vue';\nimport RuiTableHead, { type GroupData, type GroupKeys, type NoneSortableTableColumn, type SortColumn, type TableColumn, type TableRowKey, type TableRowKeyData, type TableSortData } from '@/components/tables/RuiTableHead.vue';\nimport RuiTablePagination, { type TablePaginationData } from '@/components/tables/RuiTablePagination.vue';\nimport noDataPlaceholder from '@/components/tables/table_no_data_placeholder.svg';\nimport noDataPlaceholderDark from '@/components/tables/table_no_data_placeholder_dark.svg';\nimport { assert } from '@/utils/assert';\n\nexport interface TableOptions<T> {\n pagination?: TablePaginationData;\n sort?: TableSortData<T>;\n}\n\nexport interface GroupHeader<T> {\n __header__: true;\n identifier: string;\n group: Partial<T>;\n}\n\nexport type GroupedTableRow<T> = T | GroupHeader<T>;\n\nexport interface Props<T, K extends keyof T> {\n /**\n * list of items for each row\n */\n rows: T[];\n /**\n * the attribute used to identify each row uniquely for selection, usually `id`\n */\n rowAttr: K;\n /**\n * model for selected rows, add a v-model to support row selection\n */\n modelValue?: T[K][];\n /**\n * model for internal searching\n */\n search?: string;\n /**\n * model for items per page\n * will be used if the `pagination` model isn't specified\n */\n itemsPerPage?: number;\n /**\n * model for paginating data\n * @example v-model:pagination=\"{ total: 10, limit: 5, page: 1 }\"\n */\n pagination?: TablePaginationData;\n /**\n * modifiers for specifying externally paginated tables\n * use this when api controls pagination\n * @example v-model:pagination.external=\"{ total: 10, limit: 5, page: 1 }\"\n */\n paginationModifiers?: {\n external: boolean;\n };\n /**\n * model for sort column/columns data\n * single column sort\n * @example v-model:sort=\"{ column: 'name', direction: 'asc' }\"\n * multi columns sort\n * @example v-model:sort=\"[{ column: 'name', direction: 'asc' }]\"\n */\n sort?: TableSortData<T>;\n /**\n * modifiers for specifying externally sorted tables\n * use this when api controls sorting\n * single column sort\n * @example v-model:sort.external=\"{ column: 'name', direction: 'asc' }\"\n * multi columns sort\n * @example v-model:sort.external=\"[{ column: 'name', direction: 'asc' }]\"\n */\n sortModifiers?: {\n external: boolean;\n };\n /**\n * list of column definitions\n */\n cols?: TableColumn<T>[];\n /**\n * attribute to use from column definitions to display column titles\n */\n columnAttr?: keyof TableColumn<T>;\n /**\n * flag to show a more or less spacious table\n */\n dense?: boolean;\n /**\n * flag to outline the flag with a border\n */\n outlined?: boolean;\n /**\n * should add zebra-striping to the table row\n */\n striped?: boolean;\n /**\n * flag to show loading state of the table\n * triggers indefinite progress at the bottom of the table header\n */\n loading?: boolean;\n disablePerPage?: boolean;\n /**\n * data to display for empty state\n * text and icon\n * @example :empty=\"{ icon: 'transactions-line', label: 'No transactions found' }\"\n */\n empty?: {\n label?: string;\n description?: string;\n };\n /**\n * should hide the header navigation\n */\n hideDefaultHeader?: boolean;\n /**\n * should hide the footer navigation\n */\n hideDefaultFooter?: boolean;\n\n rounded?: 'sm' | 'md' | 'lg';\n /**\n * model for expanded rows\n */\n expanded?: T[];\n /**\n * make expansion work like accordion\n */\n singleExpand?: boolean;\n /**\n * make table head stick to top on scroll\n */\n stickyHeader?: boolean;\n stickyOffset?: number;\n /**\n * Affects how the items per page work across the app.\n * When true, changing the items per page setting in one table will affect other tables.\n */\n globalItemsPerPage?: boolean;\n /**\n * model for grouping column/columns data\n * single column grouping\n * @example v-model:group=\"'name'\"\n * multi columns grouping\n * @example v-model:group=\"['name', 'country']\"\n */\n group?: TableRowKeyData<T>;\n groupExpandButtonPosition?: 'start' | 'end';\n collapsed?: T[];\n disabledRows?: T[];\n multiPageSelect?: boolean;\n scroller?: HTMLElement | null;\n itemClass?: ((item: T) => string) | string;\n}\n\ndefineOptions({\n name: 'RuiDataTable',\n});\n\nconst props = withDefaults(defineProps<Props<T, IdType>>(), {\n modelValue: undefined,\n search: '',\n cols: undefined,\n itemsPerPage: 10,\n pagination: undefined,\n columnAttr: 'label',\n sort: undefined,\n loading: false,\n dense: false,\n outlined: false,\n paginationModifiers: undefined,\n sortModifiers: undefined,\n empty: () => ({ label: 'No item found' }),\n rounded: 'md',\n hideDefaultHeader: false,\n hideDefaultFooter: false,\n disablePerPage: false,\n striped: false,\n expanded: undefined,\n singleExpand: false,\n stickyHeader: false,\n stickyOffset: undefined,\n globalItemsPerPage: undefined,\n group: undefined,\n collapsed: undefined,\n disabledRows: undefined,\n multiPageSelect: false,\n groupExpandButtonPosition: 'start',\n scroller: undefined,\n itemClass: '',\n});\n\nconst emit = defineEmits<{\n (e: 'update:model-value', value?: T[IdType][]): void;\n (e: 'update:expanded', value: T[]): void;\n (e: 'update:pagination', value: TablePaginationData): void;\n (e: 'update:sort', value?: TableSortData<T>): void;\n (e: 'update:options', value: TableOptions<T>): void;\n (e: 'update:group', value?: GroupKeys<T>): void;\n (e: 'update:collapsed', value?: T[]): void;\n (e: 'copy:group', value: GroupData<T>): void;\n}>();\n\nconst slots = defineSlots<\n Partial<Record<`header.${string}`, (props: {\n column: TableColumn<T>;\n }) => any>\n & Record<`item.${string}`, (props: {\n column: TableColumn<T>;\n row: T;\n index: number;\n }) => any>\n & {\n 'body.prepend': (props: { colspan: number }) => any;\n 'body.append': (props: { colspan: number }) => any;\n 'group.header': (props: {\n colspan: number;\n header: GroupHeader<T>;\n isOpen: boolean;\n toggle: () => void;\n }) => any;\n 'group.header.content': (props: {\n header: GroupHeader<T>;\n groupKey: string;\n }) => any;\n 'expanded-item': (props: { row: T; index: number }) => any;\n 'no-data': () => any;\n 'empty-description': () => any;\n 'tfoot': () => any;\n }>\n>();\n\nconst { stickyHeader, collapsed, modelValue, disabledRows } = toRefs(props);\nconst tableDefaults = useTable();\n\nconst { isDark } = useRotkiTheme();\n\nconst stickyHeaderOffset = computed(() => props.stickyOffset !== undefined ? props.stickyOffset : get(tableDefaults.stickyOffset));\n\nfunction isRow<T extends object>(item: GroupedTableRow<T>): item is T {\n return !('__header__' in item);\n}\n\nfunction isHeaderSlot(slotName: string): slotName is `header.${string}` {\n return slotName.startsWith('header.');\n}\n\nconst { stick, table, tableScroller } = useStickyTableHeader(\n stickyHeader,\n get(stickyHeaderOffset),\n);\n\nconst expandable = computed(() => props.expanded && slots['expanded-item']);\n\nconst headerSlots = computed<`header.${string}`[]>(() =>\n Object.keys(slots).filter(isHeaderSlot),\n);\n\nconst globalItemsPerPageSettings = computed(() => {\n if (props.globalItemsPerPage !== undefined)\n return props.globalItemsPerPage;\n\n return get(tableDefaults.globalItemsPerPage);\n});\n\nconst getKeys = <T extends object>(t: T) => Object.keys(t) as TableRowKey<T>[];\n\nconst groupKeys: ComputedRef<TableRowKey<T>[]> = computed(() => {\n const groupBy = props.group;\n\n if (!groupBy) {\n // no grouping\n return [];\n }\n\n if (!Array.isArray(groupBy)) {\n // currently only supports a single grouping\n // only the first item in the array is used\n return [groupBy];\n }\n\n return groupBy;\n});\n\nconst groupKey = computed(() => get(groupKeys).join(':'));\n\nconst isGrouped = computed(() => !!get(groupKey));\n\n/**\n * Prepare the columns from props or generate using first item in the list\n */\nconst columns = computed<TableColumn<T>[]>(() => {\n const data\n = props.cols\n ?? getKeys(props.rows[0] ?? {}).map(\n key =>\n ({\n key,\n [props.columnAttr]: String(key),\n }) satisfies NoneSortableTableColumn<T>,\n );\n\n const hasExpandColumn = data.some(row => row.key === 'expand');\n\n if (get(expandable) && !hasExpandColumn) {\n return [\n ...data,\n {\n key: 'expand' as TableRowKey<T>,\n sortable: false,\n class: 'w-16',\n cellClass: '!py-0 w-16',\n align: 'end',\n } satisfies NoneSortableTableColumn<T>,\n ];\n }\n\n const groupByKeys = get(groupKeys);\n\n if (groupByKeys.length === 0)\n return data;\n\n return data.filter(\n column => !groupByKeys.includes(column.key as TableRowKey<T>),\n );\n});\n\nconst itemsLength = ref(0);\n\nconst selectedData = computed<T[IdType][] | undefined>({\n get() {\n return get(modelValue);\n },\n set(value) {\n emit('update:model-value', value);\n },\n});\n\nconst internalSelectedData: Ref<T[IdType][]> = ref([]);\n\nwatchImmediate(modelValue, (modelValue) => {\n set(internalSelectedData, modelValue);\n});\n\nconst rowIdentifier = computed(() => props.rowAttr);\n\nconst internalPaginationState: Ref<TablePaginationData | undefined> = ref();\nconst collapsedRows: Ref<T[]> = ref([]);\n\nconst pagination = computed(() => props.pagination);\n\nwatchImmediate(pagination, (pagination) => {\n set(internalPaginationState, pagination);\n});\n\nwatchImmediate(collapsed, (value) => {\n set(collapsedRows, value ?? []);\n});\n\n/**\n * Pagination is different for search\n * since search is only used for internal filtering\n * we return the length of search results as total\n */\nconst paginationData: Ref<TablePaginationData> = computed({\n get() {\n const paginated = get(internalPaginationState);\n if (!paginated) {\n return {\n total: get(itemsLength),\n limit: props.itemsPerPage,\n page: 1,\n };\n }\n\n if (props.paginationModifiers?.external)\n return paginated;\n\n return {\n total: get(itemsLength),\n limit: paginated.limit,\n page: paginated.page,\n limits: paginated.limits,\n };\n },\n set(value: TablePaginationData) {\n set(internalPaginationState, value);\n emit('update:pagination', value);\n emit('update:options', {\n pagination: value,\n sort: props.sort,\n });\n },\n});\n\nconst sortData = computed({\n get() {\n return props.sort;\n },\n set(value) {\n if (!props.multiPageSelect)\n onToggleAll(false);\n resetCheckboxShiftState();\n emit('update:sort', value);\n emit('update:options', {\n sort: value,\n pagination: get(pagination),\n });\n },\n});\n\n/**\n * A mapping of the sort columns\n * for easily checking if a column is sorted instead of looping through the array\n */\nconst sortedMap = computed(() => {\n const mapped: Partial<Record<TableRowKey<T>, SortColumn<T>>> = {};\n const sortBy = get(sortData);\n if (!sortBy)\n return mapped;\n\n if (!Array.isArray(sortBy)) {\n if (sortBy.column)\n mapped[sortBy.column] = sortBy;\n\n return mapped;\n }\n\n return sortBy.reduce((acc, curr) => {\n if (!curr.column)\n return acc;\n\n return { ...acc, [curr.column]: curr };\n }, mapped);\n});\n\n/**\n * rows filtered based on search query if it exists\n */\nconst searchData = computed<T[]>(() => {\n const query = props.search?.toLocaleLowerCase();\n if (!query)\n return props.rows;\n\n return props.rows.filter(row =>\n getKeys(row).some(key =>\n `${row[key]}`.toLocaleLowerCase().includes(query),\n ),\n );\n});\n\n/**\n * sort the search results\n */\nconst sorted: ComputedRef<T[]> = computed(() => {\n const sortBy = get(sortData);\n const data = [...get(searchData)];\n if (!sortBy || props.sortModifiers?.external)\n return data;\n\n const sortOptions: Intl.CollatorOptions = { sensitivity: 'accent', usage: 'sort' };\n\n const sort = (by: SortColumn<T>) => {\n data.sort((a, b) => {\n const column = by.column;\n if (!column)\n return 0;\n\n let [aValue, bValue] = [a[column], b[column]];\n if (by.direction === 'desc')\n [aValue, bValue] = [bValue, aValue];\n\n const aNumber = Number(aValue);\n const bNumber = Number(bValue);\n if (!isNaN(aNumber) && !isNaN(bNumber))\n return aNumber - bNumber;\n\n return `${aValue}`.localeCompare(\n `${bValue}`,\n undefined,\n sortOptions,\n );\n });\n };\n\n if (!Array.isArray(sortBy))\n sort(sortBy);\n else\n [...sortBy].reverse().forEach(sort);\n\n return data;\n});\n\n/**\n * comprises search, sorted paginated, and grouped data\n */\nconst mappedGroups = computed<Record<string, GroupedTableRow<T>[]>>(() => {\n if (!get(isGrouped)) {\n // no grouping\n return {};\n }\n\n const result = get(sorted);\n const identifier = props.rowAttr;\n\n return result.reduce((acc: Record<string, GroupedTableRow<T>[]>, row) => {\n if (!isDefined(row[identifier]) || row[identifier] === '')\n return acc;\n\n const group = getRowGroup(row);\n const groupVal = Object.values(group).filter(isDefined).join(',');\n if (!acc[groupVal]) {\n acc[groupVal] = [\n {\n __header__: true,\n group,\n identifier: groupVal,\n } satisfies GroupHeader<T>,\n ];\n }\n\n acc[groupVal].push(row);\n\n return acc;\n }, {});\n});\n\n/**\n * comprises search, sorted paginated, and grouped data\n */\nconst grouped = computed<GroupedTableRow<T>[]>(() => {\n const result = get(sorted);\n const groupByKey = get(groupKey);\n\n if (!groupByKey) {\n // no grouping\n return result;\n }\n\n return Object.values(get(mappedGroups)).flatMap(grouped => grouped);\n});\n\n/**\n * comprises search, sorted and paginated data\n */\nconst filtered = computed<GroupedTableRow<T>[]>(() => {\n const result = get(grouped);\n\n const paginated = get(paginationData);\n const limit = paginated.limit;\n if (paginated && !props.paginationModifiers?.external) {\n const start = (paginated.page - 1) * limit;\n const end = start + limit;\n const preGroups = result.slice(0, start + 1).filter(item => !isRow(item));\n const postGroups = result.slice(start + 1, end + preGroups.length).filter(item => !isRow(item));\n const data = result.slice(start + preGroups.length, end + preGroups.length + postGroups.length);\n const nearestGroup = preGroups.at(-1);\n if (data.length > 0) {\n // if our first item is not a group, push in the nearest group\n const firstItem = data[0];\n assert(firstItem);\n if (isRow(firstItem) && nearestGroup)\n data.unshift(nearestGroup);\n const lastItem = data.at(-1);\n // if our last item is a group, remove it\n if (lastItem && !isRow(lastItem))\n data.pop();\n }\n\n return data.filter(row => !isHiddenRow(row));\n }\n\n return result.filter(row => !isHiddenRow(row));\n});\n\n/**\n * list if ids of the visible table rows used for check-all and uncheck-all\n */\nconst visibleIdentifiers = computed<T[IdType][]>(() => {\n const selectBy = props.rowAttr;\n\n if (!selectBy)\n return [];\n\n return get(filtered)\n .filter(isRow)\n .map(row => row[selectBy]);\n});\n\n/**\n * Flag to know when all rows are selected for the current screen\n */\nconst isAllSelected = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows)\n return false;\n\n return (\n selectedRows.length > 0\n && get(visibleIdentifiers).every(id => selectedRows.includes(id))\n );\n});\n\nconst indeterminate = computed(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows)\n return false;\n\n return selectedRows.length > 0 && !get(isAllSelected);\n});\n\nconst noData = computed(() => get(filtered).length === 0);\n\nconst colspan = computed(() => {\n let columnLength = get(columns).length;\n if (get(selectedData))\n columnLength++;\n\n return columnLength;\n});\n\nconst isSortedBy = (key: TableRowKey<T>) => key in get(sortedMap);\n\nfunction getSortIndex(key: TableRowKey<T>) {\n const sortBy = get(sortData);\n\n if (!sortBy || !Array.isArray(sortBy) || !isSortedBy(key))\n return -1;\n\n return sortBy.findIndex(sort => sort.column === key) ?? -1;\n}\n\nfunction isSelected(identifier: T[IdType]) {\n const selection = get(selectedData);\n if (!selection)\n return false;\n\n return selection.includes(identifier);\n}\n\nfunction isDisabledRow(rowKey: T[IdType]) {\n const identifier = props.rowAttr;\n if (!identifier)\n return false;\n\n return !!get(disabledRows)?.some((disabledRow: T) => rowKey === disabledRow[identifier]);\n}\n\nfunction isExpanded(identifier: T[IdType]) {\n const { expanded } = props;\n if (!expanded?.length)\n return false;\n\n return expanded.some(data => data[props.rowAttr] === identifier);\n}\n\nfunction onToggleExpand(row: T) {\n const { expanded } = props;\n if (!expanded)\n return;\n\n const key = props.rowAttr;\n const rowExpanded = isExpanded(row[key]);\n\n if (props.singleExpand)\n return emit('update:expanded', rowExpanded ? [] : [row]);\n\n return emit(\n 'update:expanded',\n rowExpanded\n ? expanded.filter(item => item[key] !== row[key])\n : [...expanded, row],\n );\n}\n\nfunction getRowGroup(row: T): Partial<T> {\n return get(groupKeys).reduce((acc, key) => ({ ...acc, [key]: row[key] }), {});\n}\n\nfunction getGroupRows(groupVal: string) {\n if (!get(isGrouped))\n return [];\n\n const groupRows = get(mappedGroups)[groupVal];\n assert(groupRows);\n return groupRows.filter(isRow);\n}\n\nfunction compareGroupsFn(a: T, b: Partial<T>) {\n const group = get(groupKeys);\n if (group.length === 0)\n return false;\n\n return group.every(key => a[key] === b[key]);\n}\n\nfunction isExpandedGroup(value: Partial<T>) {\n return get(collapsedRows).every(row => !compareGroupsFn(row, value));\n}\n\nfunction isHiddenRow(row: GroupedTableRow<T>) {\n const identifier = props.rowAttr;\n return (\n get(isGrouped)\n && get(collapsedRows).some(\n value => isRow(row) && row[identifier] === value[identifier],\n )\n );\n}\n\nfunction onToggleExpandGroup(group: Partial<T>, value?: string) {\n if (!value)\n return;\n\n const collapsed = get(collapsedRows);\n\n const groupExpanded = isExpandedGroup(group);\n\n const groupRows = getGroupRows(value);\n\n set(\n collapsedRows,\n groupExpanded\n ? [...collapsed, ...groupRows]\n : collapsed.filter(row => !compareGroupsFn(row, group)),\n );\n\n emit('update:collapsed', get(collapsedRows));\n}\n\nfunction onUngroup() {\n set(collapsedRows, []);\n\n emit('update:collapsed', []);\n emit('update:group', Array.isArray(props.group) ? [] : undefined);\n}\n\nfunction onCopyGroup(value: GroupData<T>) {\n emit('copy:group', value);\n}\n\n/**\n * Sort to handle single sort or multiple sort columns\n */\nfunction onSort({\n key,\n direction,\n}: {\n key: TableRowKey<T>;\n direction?: 'asc' | 'desc';\n}) {\n const sortBy = get(sortData);\n if (!sortBy)\n return;\n\n if (!Array.isArray(sortBy)) {\n if (isSortedBy(key)) {\n const newDirection = !direction || direction === 'asc' ? 'desc' : 'asc';\n\n if (sortBy.direction === newDirection) {\n set(sortData, { ...sortBy, column: undefined, direction: 'asc' });\n }\n else {\n set(sortData, {\n ...sortBy,\n direction: sortBy.direction === 'asc' ? 'desc' : 'asc',\n });\n }\n }\n else {\n set(sortData, { column: key, direction: direction || 'asc' });\n }\n return;\n }\n\n if (isSortedBy(key)) {\n const newDirection = !direction || direction === 'asc' ? 'desc' : 'asc';\n\n const index = getSortIndex(key);\n const sortByCol = sortBy[index];\n assert(sortByCol);\n\n if (sortByCol.direction === newDirection)\n sortBy.splice(index, 1);\n else\n sortByCol.direction = sortByCol.direction === 'asc' ? 'desc' : 'asc';\n\n set(sortData, sortBy);\n }\n else {\n set(sortData, [...sortBy, { column: key, direction: direction || 'asc' }]);\n }\n}\n\nfunction isSelectable(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) || !isDisabledRow(rowKey);\n}\n\nfunction mustSelect(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) && isDisabledRow(rowKey);\n}\n\n/**\n * toggles selected rows\n * @param {boolean} checked checkbox state\n */\nfunction onToggleAll(checked: boolean) {\n const selectedRows = get(selectedData) ?? [];\n if (!props.multiPageSelect) {\n if (checked)\n set(selectedData, get(visibleIdentifiers).filter(isSelectable));\n else\n set(selectedData, get(visibleIdentifiers).filter(mustSelect));\n }\n else {\n if (checked) {\n set(\n selectedData,\n Array.from(new Set(\n [\n ...selectedRows,\n ...get(visibleIdentifiers).filter(isSelectable),\n ],\n )),\n );\n }\n else {\n set(\n selectedData,\n selectedRows.filter(rowKey => !get(visibleIdentifiers).includes(rowKey) || get(visibleIdentifiers).filter(mustSelect).includes(rowKey)),\n );\n }\n }\n}\n\nconst shiftClicked: Ref<boolean> = ref(false);\nconst lastSelectedIndex: Ref<number> = ref(-1);\n\nfunction resetCheckboxShiftState() {\n set(shiftClicked, false);\n set(lastSelectedIndex, -1);\n}\n\n/**\n * toggles a single row\n * @param {boolean} checked checkbox state\n * @param {string} value the id of the selected row\n * @param {boolean} userAction whether the select triggered by user manually\n *\n */\nfunction onSelect(checked: boolean, value: T[typeof props.rowAttr], userAction = false) {\n if (get(shiftClicked) && userAction)\n return;\n\n const selectedRows = get(internalSelectedData);\n if (!selectedRows)\n return false;\n\n const selected = isSelected(value);\n\n if (checked && !selected) {\n set(internalSelectedData, [...selectedRows, value]);\n }\n else if (!checked && selected) {\n set(\n internalSelectedData,\n [...selectedRows].filter(r => r !== value),\n );\n }\n\n if (userAction)\n set(selectedData, get(internalSelectedData));\n}\n\nfunction onCheckboxClick(event: any, value: T[typeof props.rowAttr], index: number) {\n const input = event.currentTarget.querySelector('input');\n const nodeName = event.target.nodeName;\n\n const shiftKey = event.shiftKey;\n set(shiftClicked, shiftKey);\n\n if (input && nodeName !== 'INPUT') {\n if (shiftKey) {\n setTimeout(() => {\n let lastIndex = get(lastSelectedIndex);\n if (lastIndex === -1)\n lastIndex = index;\n const tableData = get(filtered);\n const lastSelectedData = tableData[lastIndex];\n assert(lastSelectedData);\n\n if (isRow(lastSelectedData)) {\n const id = get(rowIdentifier);\n const valueToApply = isSelected(lastSelectedData[id]);\n\n if (lastIndex === index) {\n onSelect(!valueToApply, value);\n }\n else {\n const from = Math.min(lastIndex, index);\n const to = Math.max(lastIndex, index);\n\n for (let i = from; i <= to; i++) {\n const currSelectedData = tableData[i];\n assert(currSelectedData);\n if (isRow(currSelectedData) && !isDisabledRow(currSelectedData[id]))\n onSelect(valueToApply, currSelectedData[id]);\n }\n }\n\n set(lastSelectedIndex, index);\n set(selectedData, get(internalSelectedData));\n }\n }, 1);\n }\n\n else { set(lastSelectedIndex, index); }\n }\n}\n\nconst search = computed(() => props.search);\n\nfunction deselectRemovedRows() {\n get(selectedData)?.forEach((key: T[IdType]) => {\n if (isSelected(key) && !get(visibleIdentifiers).includes(key))\n onSelect(false, key, true);\n });\n}\n\nfunction onPaginate() {\n emit('update:expanded', []);\n if (!props.multiPageSelect)\n onToggleAll(false);\n resetCheckboxShiftState();\n}\n\nfunction setInternalTotal(items: GroupedTableRow<T>[]) {\n if (!props.paginationModifiers?.external)\n set(itemsLength, items.filter(isRow).length);\n}\n\nfunction cellValue(row: T, key: TableColumn<T>['key']) {\n return row[key as TableRowKey<T>];\n}\n\n/**\n * Keeps the global items per page in sync with the internal state.\n */\nwatch(internalPaginationState, (pagination) => {\n if (pagination?.limit && get(globalItemsPerPageSettings))\n set(tableDefaults.itemsPerPage, pagination.limit);\n});\n\nwatch(tableDefaults.itemsPerPage, (itemsPerPage) => {\n if (!get(globalItemsPerPageSettings))\n return;\n\n set(paginationData, {\n ...get(paginationData),\n limit: itemsPerPage,\n });\n});\n\n/**\n * on changing search query, need to reset pagination page to 1\n */\nwatch(search, () => {\n set(paginationData, {\n ...get(paginationData),\n page: 1,\n });\n onToggleAll(false);\n resetCheckboxShiftState();\n});\n\nwatch(sorted, (items) => {\n if (!props.multiPageSelect)\n deselectRemovedRows();\n setInternalTotal(items);\n});\n\n/**\n * Automatically adjust page when current page exceeds maximum available pages\n * This can happen when total data decreases while user is on a higher page\n */\nwatch(paginationData, (pagination) => {\n const { total, limit, page } = pagination;\n const maxPages = Math.ceil(total / limit);\n\n if (maxPages > 0 && page > maxPages) {\n set(paginationData, {\n ...pagination,\n page: maxPages,\n });\n }\n});\n\nonMounted(() => {\n setInternalTotal(get(sorted));\n\n if (!get(globalItemsPerPageSettings))\n return;\n\n set(paginationData, {\n ...get(paginationData),\n limit: get(tableDefaults.itemsPerPage),\n });\n});\n</script>\n\n<template>\n <div\n :class=\"[\n $style.wrapper,\n $style[`rounded__${rounded}`],\n { [$style.outlined]: outlined },\n ]\"\n >\n <RuiTablePagination\n v-if=\"paginationData && !hideDefaultHeader\"\n v-model=\"paginationData\"\n :dense=\"dense\"\n :loading=\"loading\"\n :disable-per-page=\"disablePerPage\"\n data-cy=\"table-pagination\"\n @update:model-value=\"onPaginate()\"\n />\n <div\n ref=\"tableScroller\"\n :class=\"$style.scroller\"\n >\n <table\n ref=\"table\"\n :class=\"[$style.table, { [$style.dense]: dense }]\"\n aria-label=\"\"\n >\n <RuiTableHead\n :loading=\"loading\"\n :indeterminate=\"indeterminate\"\n :capitalize-headers=\"!cols\"\n :colspan=\"colspan\"\n :column-attr=\"columnAttr\"\n :columns=\"columns\"\n :dense=\"dense\"\n :disable-check-all=\"!filtered?.length\"\n :is-all-selected=\"isAllSelected\"\n :no-data=\"noData\"\n :selectable=\"!!selectedData\"\n :sort-data=\"sortData\"\n :sorted-map=\"sortedMap\"\n :stick=\"stick\"\n :sticky-header=\"stickyHeader\"\n @sort=\"onSort($event)\"\n @select:all=\"onToggleAll($event)\"\n >\n <template\n v-for=\"headerSlot in headerSlots\"\n #[headerSlot]=\"slotData\"\n >\n <slot\n :name=\"headerSlot\"\n v-bind=\"slotData\"\n />\n </template>\n </RuiTableHead>\n <RuiTableHead\n v-if=\"stickyHeader\"\n :loading=\"loading\"\n :capitalize-headers=\"!cols\"\n :colspan=\"colspan\"\n :column-attr=\"columnAttr\"\n :columns=\"columns\"\n :dense=\"dense\"\n :no-data=\"noData\"\n :selectable=\"!!selectedData\"\n :sort-data=\"sortData\"\n :sorted-map=\"sortedMap\"\n data-id=\"head-clone\"\n class=\"opacity-0 invisible\"\n >\n <template\n v-for=\"headerSlot in headerSlots\"\n #[headerSlot]=\"slotData\"\n >\n <slot\n :name=\"headerSlot\"\n v-bind=\"slotData\"\n />\n </template>\n </RuiTableHead>\n <tbody :class=\"[$style.tbody, { [$style['tbody--striped'] ?? '']: striped }]\">\n <slot\n v-if=\"slots['body.prepend']\"\n :colspan=\"colspan\"\n name=\"body.prepend\"\n />\n <template v-for=\"(row, index) in filtered\">\n <tr\n v-if=\"!isRow(row)\"\n :key=\"`row-${index}`\"\n :class=\"[$style.tr, $style.tr__group]\"\n >\n <slot\n name=\"group.header\"\n :colspan=\"colspan\"\n :header=\"row\"\n :is-open=\"isExpandedGroup(row.group)\"\n :toggle=\"() => onToggleExpandGroup(row.group, row.identifier)\"\n >\n <td\n :class=\"[$style.td]\"\n class=\"!p-2\"\n :colspan=\"colspan\"\n >\n <div class=\"flex items-center gap-2\">\n <RuiExpandButton\n v-if=\"groupExpandButtonPosition === 'start'\"\n :expanded=\"isExpandedGroup(row.group)\"\n @click=\"onToggleExpandGroup(row.group, row.identifier)\"\n />\n <slot\n :group-key=\"groupKey\"\n name=\"group.header.content\"\n :header=\"row\"\n >\n <span>{{ groupKey }}: {{ row.identifier }}</span>\n <RuiButton\n size=\"sm\"\n variant=\"text\"\n icon\n @click=\"\n onCopyGroup({ key: groupKey, value: row.group })\n \"\n >\n <RuiIcon\n name=\"lu-copy\"\n size=\"16\"\n />\n </RuiButton>\n </slot>\n <RuiTooltip\n :popper=\"{ placement: 'top' }\"\n class=\"ml-auto mr-2\"\n >\n <template #activator>\n <RuiButton\n size=\"sm\"\n variant=\"text\"\n icon\n @click=\"onUngroup()\"\n >\n <RuiIcon\n name=\"lu-trash-2\"\n size=\"14\"\n />\n </RuiButton>\n </template>\n Ungroup\n </RuiTooltip>\n <RuiExpandButton\n v-if=\"groupExpandButtonPosition === 'end'\"\n :expanded=\"isExpandedGroup(row.group)\"\n @click=\"onToggleExpandGroup(row.group, row.identifier)\"\n />\n </div>\n </td>\n </slot>\n </tr>\n <template v-else>\n <tr\n :key=\"`row-${index}`\"\n :class=\"[\n $style.tr,\n { [$style.tr__selected ?? '']: isSelected(row[rowIdentifier]) },\n typeof itemClass === 'string' ? itemClass : itemClass(row),\n ]\"\n >\n <td\n v-if=\"selectedData\"\n :class=\"$style.checkbox\"\n colspan=\"1\"\n rowspan=\"1\"\n >\n <RuiCheckbox\n :data-cy=\"`table-toggle-check-${index}`\"\n :model-value=\"isSelected(row[rowIdentifier])\"\n :disabled=\"isDisabledRow(row[rowIdentifier])\"\n :size=\"dense ? 'sm' : undefined\"\n color=\"primary\"\n class=\"select-none\"\n hide-details\n @update:model-value=\"onSelect($event, row[rowIdentifier], true)\"\n @click=\"onCheckboxClick($event, row[rowIdentifier], index)\"\n />\n </td>\n\n <td\n v-for=\"(column, subIndex) in columns\"\n :key=\"subIndex\"\n :class=\"[\n $style.td,\n column.cellClass,\n $style[`align__${column.align ?? 'start'}`],\n ]\"\n :colspan=\"column.colspan ?? 1\"\n :rowspan=\"column.rowspan ?? 1\"\n >\n <slot\n v-if=\"column.key === 'expand'\"\n :name=\"`item.${column.key.toString()}`\"\n :column=\"column\"\n :row=\"row\"\n :index=\"index\"\n >\n <RuiExpandButton\n v-if=\"!slots['item.expand']\"\n :expanded=\"isExpanded(row[rowIdentifier])\"\n @click=\"onToggleExpand(row)\"\n />\n </slot>\n <slot\n v-else\n :column=\"column\"\n :index=\"index\"\n :name=\"`item.${column.key.toString()}`\"\n :row=\"row\"\n >\n {{ cellValue(row, column.key) }}\n </slot>\n </td>\n </tr>\n\n <tr\n v-if=\"expandable && isExpanded(row[rowIdentifier])\"\n :key=\"`row-expand-${index}`\"\n :class=\"[$style.tr, $style.tr__expandable]\"\n >\n <td\n :colspan=\"colspan\"\n :class=\"[$style.td]\"\n >\n <slot\n name=\"expanded-item\"\n :row=\"row\"\n :index=\"index\"\n />\n </td>\n </tr>\n </template>\n </template>\n <tr\n v-if=\"loading && noData\"\n >\n <td\n :class=\"$style.tbody__loader\"\n :colspan=\"colspan\"\n >\n <RuiProgress\n color=\"primary\"\n variant=\"indeterminate\"\n circular\n />\n </td>\n </tr>\n <tr\n v-if=\"noData && empty && !loading\"\n :class=\"[$style.tr, $style.tr__empty]\"\n >\n <Transition\n appear\n enter-active-class=\"transition ease-out duration-200 delay-200\"\n enter-from-class=\"opacity-0 translate-y-1\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-active-class=\"transition ease-in duration-150\"\n leave-from-class=\"opacity-100 translate-y-0\"\n leave-to-class=\"opacity-0 translate-y-1\"\n >\n <td\n :class=\"$style.td\"\n :colspan=\"colspan\"\n >\n <slot name=\"no-data\">\n <div :class=\"$style.empty\">\n <img\n :src=\"isDark ? noDataPlaceholderDark : noDataPlaceholder\"\n :alt=\"empty.label\"\n class=\"h-32\"\n />\n <p\n v-if=\"empty.label\"\n :class=\"$style.empty__label\"\n >\n {{ empty.label }}\n </p>\n\n <slot name=\"empty-description\">\n <p\n v-if=\"empty.description\"\n :class=\"$style.empty__description\"\n >\n {{ empty.description }}\n </p>\n </slot>\n </div>\n </slot>\n </td>\n </Transition>\n </tr>\n <slot\n v-if=\"slots['body.append']\"\n :colspan=\"colspan\"\n name=\"body.append\"\n />\n </tbody>\n <tfoot>\n <slot name=\"tfoot\" />\n </tfoot>\n </table>\n </div>\n <RuiTablePagination\n v-if=\"paginationData && !hideDefaultFooter\"\n v-model=\"paginationData\"\n :dense=\"dense\"\n :loading=\"loading\"\n :disable-per-page=\"disablePerPage\"\n data-cy=\"table-pagination\"\n @update:model-value=\"onPaginate()\"\n />\n </div>\n</template>\n\n<style module lang=\"scss\">\n.wrapper {\n @apply relative divide-y divide-black/[0.12] overflow-hidden;\n &.outlined {\n @apply border border-black/[0.12];\n }\n\n &.rounded__sm {\n @apply rounded-[.25rem];\n\n .image {\n @apply rounded-t-[.25rem];\n }\n }\n\n &.rounded__md {\n @apply rounded-[.75rem];\n\n .image {\n @apply rounded-t-[.75rem];\n }\n }\n\n &.rounded__lg {\n @apply rounded-[1rem];\n\n .image {\n @apply rounded-t-[1rem];\n }\n }\n\n .scroller {\n @apply overflow-x-auto overflow-y-hidden;\n clip-path: inset(0 0 0 0);\n }\n\n .table {\n @apply min-w-full table-fixed divide-y divide-black/[0.12] whitespace-nowrap mx-auto my-0 max-w-fit relative border-black/[0.12];\n\n .tbody {\n @apply divide-y divide-black/[0.12];\n\n &--striped {\n > .tr {\n &:nth-child(even) {\n @apply bg-rui-grey-50;\n }\n }\n }\n\n > .tr {\n @apply hover:bg-black/[0.04];\n\n &__selected {\n @apply bg-rui-primary/[0.08];\n }\n\n &__empty {\n @apply hover:bg-transparent;\n }\n\n &__expandable {\n @apply bg-[#f9fafb] hover:bg-[#f9fafb];\n }\n\n &__group {\n @apply bg-black/[0.02];\n }\n\n .td {\n @apply p-4 text-rui-text text-body-2;\n text-wrap: initial;\n\n &.align__start {\n @apply text-left rtl:text-right;\n }\n\n &.align__center {\n @apply text-center;\n }\n\n &.align__end {\n @apply text-right rtl:text-left;\n }\n\n .empty {\n @apply flex flex-col gap-3 items-center justify-center flex-1 min-h-[4.4rem] my-4;\n\n &__label {\n @apply text-body-1 leading-none font-bold text-center text-current pb-0 mb-0;\n }\n\n &__description {\n @apply text-body-2 text-center text-rui-text-secondary pb-0 mb-0;\n }\n }\n }\n }\n\n &__loader {\n @apply py-8 text-center;\n }\n }\n\n .checkbox {\n @apply px-2 w-[3.625rem] max-w-[3.625rem];\n label {\n @apply ml-0;\n }\n }\n\n &.dense {\n .tbody {\n .td {\n @apply py-[0.38rem];\n }\n }\n }\n }\n}\n\n:global(.dark) {\n .wrapper {\n @apply divide-white/[0.12];\n\n &.outlined {\n @apply border-white/[0.12];\n }\n\n .table {\n @apply divide-white/[0.12] border-white/[0.12];\n\n .tbody {\n @apply divide-white/[0.12];\n\n &--striped {\n > .tr {\n &:nth-child(even) {\n @apply bg-rui-grey-900;\n }\n }\n }\n\n > .tr {\n @apply hover:bg-white/[0.04];\n\n &__selected {\n @apply bg-rui-dark-primary/[0.08];\n }\n\n &__expandable {\n @apply bg-[#121212] hover:bg-[#121212];\n }\n\n &__group {\n @apply bg-white/[0.02];\n }\n }\n }\n }\n }\n}\n</style>\n"],"names":["_useSlots","modelValue","pagination","grouped","collapsed","_createElementBlock","_normalizeClass","$style","_unref","_createBlock","_createElementVNode","_createVNode","_renderList","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps","_openBlock","_Fragment","_toDisplayString","_createTextVNode","_Transition"],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const wrapper = "_wrapper_15c6t_1";
|
|
2
|
+
const outlined = "_outlined_15c6t_4";
|
|
3
|
+
const rounded__sm = "_rounded__sm_15c6t_7";
|
|
4
|
+
const image = "_image_15c6t_10";
|
|
5
|
+
const rounded__md = "_rounded__md_15c6t_13";
|
|
6
|
+
const rounded__lg = "_rounded__lg_15c6t_19";
|
|
7
|
+
const scroller = "_scroller_15c6t_25";
|
|
8
|
+
const table = "_table_15c6t_29";
|
|
9
|
+
const tbody = "_tbody_15c6t_32";
|
|
10
|
+
const tr = "_tr_15c6t_35";
|
|
11
|
+
const tr__selected = "_tr__selected_15c6t_41";
|
|
12
|
+
const tr__empty = "_tr__empty_15c6t_44";
|
|
13
|
+
const tr__expandable = "_tr__expandable_15c6t_47";
|
|
14
|
+
const tr__group = "_tr__group_15c6t_50";
|
|
15
|
+
const td = "_td_15c6t_53";
|
|
16
|
+
const align__start = "_align__start_15c6t_57";
|
|
17
|
+
const align__center = "_align__center_15c6t_60";
|
|
18
|
+
const align__end = "_align__end_15c6t_63";
|
|
19
|
+
const empty = "_empty_15c6t_66";
|
|
20
|
+
const empty__label = "_empty__label_15c6t_69";
|
|
21
|
+
const empty__description = "_empty__description_15c6t_72";
|
|
22
|
+
const tbody__loader = "_tbody__loader_15c6t_75";
|
|
23
|
+
const checkbox = "_checkbox_15c6t_78";
|
|
24
|
+
const dense = "_dense_15c6t_84";
|
|
25
|
+
const style0 = {
|
|
26
|
+
wrapper,
|
|
27
|
+
outlined,
|
|
28
|
+
rounded__sm,
|
|
29
|
+
image,
|
|
30
|
+
rounded__md,
|
|
31
|
+
rounded__lg,
|
|
32
|
+
scroller,
|
|
33
|
+
table,
|
|
34
|
+
tbody,
|
|
35
|
+
"tbody--striped": "_tbody--striped_15c6t_35",
|
|
36
|
+
tr,
|
|
37
|
+
tr__selected,
|
|
38
|
+
tr__empty,
|
|
39
|
+
tr__expandable,
|
|
40
|
+
tr__group,
|
|
41
|
+
td,
|
|
42
|
+
align__start,
|
|
43
|
+
align__center,
|
|
44
|
+
align__end,
|
|
45
|
+
empty,
|
|
46
|
+
empty__label,
|
|
47
|
+
empty__description,
|
|
48
|
+
tbody__loader,
|
|
49
|
+
checkbox,
|
|
50
|
+
dense
|
|
51
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
align__center,
|
|
54
|
+
align__end,
|
|
55
|
+
align__start,
|
|
56
|
+
checkbox,
|
|
57
|
+
style0 as default,
|
|
58
|
+
dense,
|
|
59
|
+
empty,
|
|
60
|
+
empty__description,
|
|
61
|
+
empty__label,
|
|
62
|
+
image,
|
|
63
|
+
outlined,
|
|
64
|
+
rounded__lg,
|
|
65
|
+
rounded__md,
|
|
66
|
+
rounded__sm,
|
|
67
|
+
scroller,
|
|
68
|
+
table,
|
|
69
|
+
tbody,
|
|
70
|
+
tbody__loader,
|
|
71
|
+
td,
|
|
72
|
+
tr,
|
|
73
|
+
tr__empty,
|
|
74
|
+
tr__expandable,
|
|
75
|
+
tr__group,
|
|
76
|
+
tr__selected,
|
|
77
|
+
wrapper
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=RuiDataTable.vue3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuiDataTable.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import _sfc_main from "./RuiExpandButton.vue2.js";
|
|
2
|
+
import style0 from "./RuiExpandButton.vue3.js";
|
|
3
|
+
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const cssModules = {
|
|
5
|
+
"$style": style0
|
|
6
|
+
};
|
|
7
|
+
const RuiExpandButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
8
|
+
export {
|
|
9
|
+
RuiExpandButton as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=RuiExpandButton.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuiExpandButton.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { defineComponent, createBlock, openBlock, mergeProps, withCtx, renderSlot, createVNode, normalizeClass } from "vue";
|
|
2
|
+
import RuiButton from "../buttons/button/RuiButton.vue.js";
|
|
3
|
+
import RuiIcon from "../icons/RuiIcon.vue.js";
|
|
4
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
|
+
...{
|
|
6
|
+
inheritAttrs: false
|
|
7
|
+
},
|
|
8
|
+
__name: "RuiExpandButton",
|
|
9
|
+
props: {
|
|
10
|
+
expanded: { type: Boolean },
|
|
11
|
+
icon: { default: "lu-chevron-down" }
|
|
12
|
+
},
|
|
13
|
+
setup(__props) {
|
|
14
|
+
return (_ctx, _cache) => {
|
|
15
|
+
return openBlock(), createBlock(RuiButton, mergeProps({
|
|
16
|
+
class: [
|
|
17
|
+
_ctx.$style.tr__expander_button,
|
|
18
|
+
{
|
|
19
|
+
[_ctx.$style.tr__expander_button_open ?? ""]: __props.expanded
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
icon: "",
|
|
23
|
+
size: "sm",
|
|
24
|
+
variant: "text"
|
|
25
|
+
}, _ctx.$attrs), {
|
|
26
|
+
default: withCtx(() => [
|
|
27
|
+
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
28
|
+
createVNode(RuiIcon, {
|
|
29
|
+
class: normalizeClass(_ctx.$style.tr__expander_button_icon),
|
|
30
|
+
name: __props.icon
|
|
31
|
+
}, null, 8, ["class", "name"])
|
|
32
|
+
])
|
|
33
|
+
]),
|
|
34
|
+
_: 3
|
|
35
|
+
}, 16, ["class"]);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
export {
|
|
40
|
+
_sfc_main as default
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=RuiExpandButton.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuiExpandButton.vue2.js","sources":["../../../src/components/tables/RuiExpandButton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RuiIcons } from '@/icons';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\n\nexport interface Props {\n expanded: boolean;\n icon?: RuiIcons;\n}\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nwithDefaults(defineProps<Props>(), { icon: 'lu-chevron-down' });\n</script>\n\n<template>\n <RuiButton\n :class=\"[\n $style.tr__expander_button,\n {\n [$style.tr__expander_button_open ?? '']: expanded,\n },\n ]\"\n icon\n size=\"sm\"\n variant=\"text\"\n v-bind=\"$attrs\"\n >\n <slot>\n <RuiIcon\n :class=\"$style.tr__expander_button_icon\"\n :name=\"icon\"\n />\n </slot>\n </RuiButton>\n</template>\n\n<style lang=\"scss\" module>\n.tr__expander {\n &_button {\n @apply relative;\n\n &_icon {\n @apply transition rotate-0;\n }\n\n &_open .tr__expander_button_icon {\n @apply rotate-180;\n }\n }\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","$style","$attrs","_renderSlot","_createVNode","_normalizeClass"],"mappings":";;;;;;;;;;;;;;AAkBE,aAAAA,UAAA,GAAAC,YAkBY,WAlBZC,WAkBY;AAAA,QAjBT,OAAK;AAAA,UAAUC,KAAAA,OAAO;AAAA;aAAsCA,KAAAA,OAAO,4BAAwB,EAAA,GAAS,QAAA;AAAA,UAAA;AAAA;QAMrG,MAAA;AAAA,QACA,MAAK;AAAA,QACL,SAAQ;AAAA,MAAA,GACAC,KAAAA,MAAM,GAAA;AAAA,yBAEd,MAKO;AAAA,UALPC,WAKO,4BALP,MAKO;AAAA,YAJLC,YAGE,SAAA;AAAA,cAFC,OAAKC,eAAEJ,KAAAA,OAAO,wBAAwB;AAAA,cACtC,MAAM,QAAA;AAAA,YAAA;;;;;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const tr__expander_button = "_tr__expander_button_bei2a_1";
|
|
2
|
+
const tr__expander_button_icon = "_tr__expander_button_icon_bei2a_4";
|
|
3
|
+
const tr__expander_button_open = "_tr__expander_button_open_bei2a_7";
|
|
4
|
+
const style0 = {
|
|
5
|
+
tr__expander_button,
|
|
6
|
+
tr__expander_button_icon,
|
|
7
|
+
tr__expander_button_open
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
style0 as default,
|
|
11
|
+
tr__expander_button,
|
|
12
|
+
tr__expander_button_icon,
|
|
13
|
+
tr__expander_button_open
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=RuiExpandButton.vue3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuiExpandButton.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import _sfc_main from "./RuiTableHead.vue2.js";
|
|
2
|
+
import style0 from "./RuiTableHead.vue3.js";
|
|
3
|
+
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
+
const cssModules = {
|
|
5
|
+
"$style": style0
|
|
6
|
+
};
|
|
7
|
+
const RuiTableHead = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
8
|
+
export {
|
|
9
|
+
RuiTableHead as default
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=RuiTableHead.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuiTableHead.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { defineComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, createCommentVNode, createVNode, Fragment, renderList, renderSlot, createBlock, withCtx, createSlots, createTextVNode, toDisplayString } from "vue";
|
|
2
|
+
import RuiButton from "../buttons/button/RuiButton.vue.js";
|
|
3
|
+
import RuiCheckbox from "../forms/checkbox/RuiCheckbox.vue.js";
|
|
4
|
+
import RuiIcon from "../icons/RuiIcon.vue.js";
|
|
5
|
+
import RuiBadge from "../overlays/badge/RuiBadge.vue.js";
|
|
6
|
+
import RuiProgress from "../progress/RuiProgress.vue.js";
|
|
7
|
+
const _hoisted_1 = ["data-id"];
|
|
8
|
+
const _hoisted_2 = ["colspan", "rowspan"];
|
|
9
|
+
const _hoisted_3 = ["colspan"];
|
|
10
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
|
+
__name: "RuiTableHead",
|
|
12
|
+
props: {
|
|
13
|
+
loading: { type: Boolean, default: false },
|
|
14
|
+
stickyHeader: { type: Boolean, default: false },
|
|
15
|
+
stick: { type: Boolean, default: false },
|
|
16
|
+
selectable: { type: Boolean, default: false },
|
|
17
|
+
disableCheckAll: { type: Boolean, default: false },
|
|
18
|
+
noData: { type: Boolean, default: false },
|
|
19
|
+
colspan: { default: 0 },
|
|
20
|
+
columns: { default: void 0 },
|
|
21
|
+
capitalizeHeaders: { type: Boolean, default: false },
|
|
22
|
+
isAllSelected: { type: Boolean, default: false },
|
|
23
|
+
indeterminate: { type: Boolean, default: false },
|
|
24
|
+
dense: { type: Boolean, default: false },
|
|
25
|
+
sortedMap: { default: () => ({}) },
|
|
26
|
+
sortData: { default: void 0 },
|
|
27
|
+
columnAttr: { default: "label" },
|
|
28
|
+
dataId: { default: "head-main" }
|
|
29
|
+
},
|
|
30
|
+
emits: ["select:all", "sort"],
|
|
31
|
+
setup(__props, { emit: __emit }) {
|
|
32
|
+
const props = __props;
|
|
33
|
+
const emit = __emit;
|
|
34
|
+
function onSort({ key, direction }) {
|
|
35
|
+
return emit("sort", {
|
|
36
|
+
key,
|
|
37
|
+
direction: direction ?? "asc"
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const onToggleAll = (checked) => emit("select:all", checked);
|
|
41
|
+
const isSortedBy = (key) => key in props.sortedMap;
|
|
42
|
+
function getSortIndex(key) {
|
|
43
|
+
const sortBy = props.sortData;
|
|
44
|
+
if (!sortBy || !Array.isArray(sortBy) || !isSortedBy(key))
|
|
45
|
+
return -1;
|
|
46
|
+
return sortBy.findIndex((sort) => sort.column === key);
|
|
47
|
+
}
|
|
48
|
+
function getSortDirection(key) {
|
|
49
|
+
return props.sortedMap[key]?.direction;
|
|
50
|
+
}
|
|
51
|
+
return (_ctx, _cache) => {
|
|
52
|
+
return openBlock(), createElementBlock("thead", {
|
|
53
|
+
"data-id": __props.dataId,
|
|
54
|
+
class: normalizeClass([
|
|
55
|
+
_ctx.$style.thead,
|
|
56
|
+
{
|
|
57
|
+
[_ctx.$style.sticky__header]: __props.stickyHeader,
|
|
58
|
+
[_ctx.$style.stick__top]: __props.stick,
|
|
59
|
+
[_ctx.$style.dense]: __props.dense
|
|
60
|
+
}
|
|
61
|
+
])
|
|
62
|
+
}, [
|
|
63
|
+
createElementVNode("tr", {
|
|
64
|
+
class: normalizeClass(_ctx.$style.tr)
|
|
65
|
+
}, [
|
|
66
|
+
__props.selectable ? (openBlock(), createElementBlock("th", {
|
|
67
|
+
key: 0,
|
|
68
|
+
class: normalizeClass(_ctx.$style.checkbox),
|
|
69
|
+
scope: "col",
|
|
70
|
+
colspan: "1",
|
|
71
|
+
rowspan: "1"
|
|
72
|
+
}, [
|
|
73
|
+
createVNode(RuiCheckbox, {
|
|
74
|
+
disabled: __props.disableCheckAll,
|
|
75
|
+
indeterminate: __props.indeterminate,
|
|
76
|
+
"model-value": __props.isAllSelected,
|
|
77
|
+
size: __props.dense ? "sm" : void 0,
|
|
78
|
+
color: "primary",
|
|
79
|
+
"data-cy": "table-toggle-check-all",
|
|
80
|
+
"hide-details": "",
|
|
81
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => onToggleAll($event))
|
|
82
|
+
}, null, 8, ["disabled", "indeterminate", "model-value", "size"])
|
|
83
|
+
], 2)) : createCommentVNode("", true),
|
|
84
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column, index) => {
|
|
85
|
+
return openBlock(), createElementBlock("th", {
|
|
86
|
+
key: index,
|
|
87
|
+
class: normalizeClass([
|
|
88
|
+
_ctx.$style.th,
|
|
89
|
+
column.class,
|
|
90
|
+
_ctx.$style[`align__${column.align ?? "start"}`],
|
|
91
|
+
{
|
|
92
|
+
capitalize: !__props.capitalizeHeaders,
|
|
93
|
+
[_ctx.$style.sortable]: column.sortable
|
|
94
|
+
}
|
|
95
|
+
]),
|
|
96
|
+
scope: "col",
|
|
97
|
+
colspan: column.colspan ?? 1,
|
|
98
|
+
rowspan: column.rowspan ?? 1
|
|
99
|
+
}, [
|
|
100
|
+
renderSlot(_ctx.$slots, `header.${column.key.toString()}`, { column }, () => [
|
|
101
|
+
column.sortable ? (openBlock(), createBlock(RuiBadge, {
|
|
102
|
+
key: 0,
|
|
103
|
+
"model-value": getSortIndex(column.key) >= 0,
|
|
104
|
+
text: `${getSortIndex(column.key) + 1}`,
|
|
105
|
+
"offset-y": __props.dense ? 8 : 0,
|
|
106
|
+
color: "secondary",
|
|
107
|
+
size: "sm"
|
|
108
|
+
}, {
|
|
109
|
+
default: withCtx(() => [
|
|
110
|
+
createVNode(RuiButton, {
|
|
111
|
+
class: normalizeClass([
|
|
112
|
+
_ctx.$style.sort__button,
|
|
113
|
+
{
|
|
114
|
+
[_ctx.$style.sort__active ?? ""]: isSortedBy(column.key),
|
|
115
|
+
[_ctx.$style[`sort__${getSortDirection(column.key)}`] ?? ""]: isSortedBy(
|
|
116
|
+
column.key
|
|
117
|
+
)
|
|
118
|
+
}
|
|
119
|
+
]),
|
|
120
|
+
size: "sm",
|
|
121
|
+
variant: "text",
|
|
122
|
+
onClick: ($event) => onSort(column)
|
|
123
|
+
}, createSlots({
|
|
124
|
+
append: withCtx(() => [
|
|
125
|
+
column.align !== "end" ? (openBlock(), createBlock(RuiIcon, {
|
|
126
|
+
key: 0,
|
|
127
|
+
class: normalizeClass(_ctx.$style.sort__icon),
|
|
128
|
+
name: "lu-arrow-down",
|
|
129
|
+
size: "18"
|
|
130
|
+
}, null, 8, ["class"])) : createCommentVNode("", true)
|
|
131
|
+
]),
|
|
132
|
+
default: withCtx(() => [
|
|
133
|
+
createElementVNode("span", {
|
|
134
|
+
class: normalizeClass(_ctx.$style.column__text)
|
|
135
|
+
}, [
|
|
136
|
+
renderSlot(_ctx.$slots, `header.text.${column.key.toString()}`, { column }, () => [
|
|
137
|
+
createTextVNode(toDisplayString(column[__props.columnAttr]), 1)
|
|
138
|
+
])
|
|
139
|
+
], 2)
|
|
140
|
+
]),
|
|
141
|
+
_: 2
|
|
142
|
+
}, [
|
|
143
|
+
column.align === "end" ? {
|
|
144
|
+
name: "prepend",
|
|
145
|
+
fn: withCtx(() => [
|
|
146
|
+
createVNode(RuiIcon, {
|
|
147
|
+
class: normalizeClass(_ctx.$style.sort__icon),
|
|
148
|
+
name: "lu-arrow-down",
|
|
149
|
+
size: "18"
|
|
150
|
+
}, null, 8, ["class"])
|
|
151
|
+
]),
|
|
152
|
+
key: "0"
|
|
153
|
+
} : void 0
|
|
154
|
+
]), 1032, ["class", "onClick"])
|
|
155
|
+
]),
|
|
156
|
+
_: 2
|
|
157
|
+
}, 1032, ["model-value", "text", "offset-y"])) : (openBlock(), createElementBlock("span", {
|
|
158
|
+
key: 1,
|
|
159
|
+
class: normalizeClass(_ctx.$style.column__text)
|
|
160
|
+
}, [
|
|
161
|
+
renderSlot(_ctx.$slots, `header.text.${column.key.toString()}`, { column }, () => [
|
|
162
|
+
createTextVNode(toDisplayString(column[__props.columnAttr]), 1)
|
|
163
|
+
])
|
|
164
|
+
], 2))
|
|
165
|
+
])
|
|
166
|
+
], 10, _hoisted_2);
|
|
167
|
+
}), 128))
|
|
168
|
+
], 2),
|
|
169
|
+
__props.loading ? (openBlock(), createElementBlock("tr", {
|
|
170
|
+
key: 0,
|
|
171
|
+
class: normalizeClass([_ctx.$style.thead__loader, _ctx.$style.thead__loader_linear])
|
|
172
|
+
}, [
|
|
173
|
+
createElementVNode("th", {
|
|
174
|
+
class: normalizeClass(_ctx.$style.progress),
|
|
175
|
+
colspan: __props.colspan,
|
|
176
|
+
scope: "col"
|
|
177
|
+
}, [
|
|
178
|
+
createElementVNode("div", {
|
|
179
|
+
class: normalizeClass(_ctx.$style.progress__wrapper)
|
|
180
|
+
}, [
|
|
181
|
+
createVNode(RuiProgress, {
|
|
182
|
+
color: "primary",
|
|
183
|
+
variant: "indeterminate"
|
|
184
|
+
})
|
|
185
|
+
], 2)
|
|
186
|
+
], 10, _hoisted_3)
|
|
187
|
+
], 2)) : createCommentVNode("", true)
|
|
188
|
+
], 10, _hoisted_1);
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
export {
|
|
193
|
+
_sfc_main as default
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=RuiTableHead.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuiTableHead.vue2.js","sources":["../../../src/components/tables/RuiTableHead.vue"],"sourcesContent":["<script lang=\"ts\" setup generic=\"T extends object, K extends keyof T = keyof T\">\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiCheckbox from '@/components/forms/checkbox/RuiCheckbox.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport RuiBadge from '@/components/overlays/badge/RuiBadge.vue';\nimport RuiProgress from '@/components/progress/RuiProgress.vue';\n\n/**\n * Represents a sortable column name for a given type.\n * The column name must be a key of the passed data object type.\n * @template T - The type of the data in the column.\n */\nexport type TableRowKey<T> = keyof T extends string ? keyof T : never;\n\nexport interface BaseTableColumn<T> {\n key: TableRowKey<T> | string;\n sortable?: boolean;\n direction?: 'asc' | 'desc';\n align?: 'start' | 'center' | 'end';\n class?: string;\n cellClass?: string;\n colspan?: string | number;\n rowspan?: string | number;\n\n [key: string]: any;\n}\n\n/**\n * Represents a sortable table column.\n * This is used to ensure that when using sortable with a true value,\n * the key matches to an actual property of the object passed.\n *\n * @template T - The type of data in the table column.\n */\nexport interface SortableTableColumn<T> extends BaseTableColumn<T> {\n sortable: true;\n}\n\n/**\n * An interface representing a column in a table that cannot be sorted.\n * This can be mapped to an actual property of the object or to a virtual column.\n *\n * @typeparam T - The type of data in the table.\n */\nexport interface NoneSortableTableColumn<T> extends BaseTableColumn<T> {\n sortable?: false;\n}\n\nexport type TableColumn<T> =\n | SortableTableColumn<T>\n | NoneSortableTableColumn<T>;\n\nexport interface SortColumn<T> {\n column?: TableRowKey<T>;\n direction: 'asc' | 'desc';\n}\n\nexport type TableSortData<T> = SortColumn<T> | SortColumn<T>[] | undefined;\n\nexport type TableRowKeyData<T> = TableRowKey<T> | TableRowKey<T>[] | undefined;\n\nexport interface GroupData<T> {\n key: string;\n value?: Partial<T>;\n}\n\nexport type GroupKey<T> = TableColumn<T>['key'];\n\nexport type GroupKeys<T> = GroupKey<T> | GroupKey<T>[] | undefined;\n\nexport interface Props<T> {\n loading?: boolean;\n stickyHeader?: boolean;\n stick?: boolean;\n selectable?: boolean;\n disableCheckAll?: boolean;\n noData?: boolean;\n colspan?: number;\n columns?: TableColumn<T>[];\n capitalizeHeaders?: boolean;\n isAllSelected?: boolean;\n indeterminate?: boolean;\n dense?: boolean;\n sortedMap?: Partial<Record<TableRowKey<T>, SortColumn<T>>>;\n sortData?: TableSortData<T>;\n columnAttr?: keyof TableColumn<T>;\n dataId?: string;\n}\n\nconst props = withDefaults(defineProps<Props<T>>(), {\n loading: false,\n stickyHeader: false,\n stick: false,\n selectable: false,\n disableCheckAll: false,\n noData: false,\n colspan: 0,\n columns: undefined,\n capitalizeHeaders: false,\n isAllSelected: false,\n indeterminate: false,\n dense: false,\n sortedMap: () => ({}),\n columnAttr: 'label',\n sortData: undefined,\n dataId: 'head-main',\n});\n\nconst emit = defineEmits<{\n (e: 'select:all', value: boolean): void;\n (\n e: 'sort',\n value: {\n key: TableRowKey<T>;\n direction?: 'asc' | 'desc';\n },\n ): void;\n}>();\n\nfunction onSort({ key, direction }: TableColumn<T>) {\n return emit('sort', {\n key: key as TableRowKey<T>,\n direction: direction ?? 'asc',\n });\n}\n\nconst onToggleAll = (checked: boolean) => emit('select:all', checked);\n\nconst isSortedBy = (key: TableColumn<T>['key']) => key in props.sortedMap;\n\nfunction getSortIndex(key: TableColumn<T>['key']): number {\n const sortBy = props.sortData;\n\n if (!sortBy || !Array.isArray(sortBy) || !isSortedBy(key))\n return -1;\n\n return sortBy.findIndex(sort => sort.column === key);\n}\n\nfunction getSortDirection(key: TableColumn<T>['key']) {\n return props.sortedMap[key]?.direction;\n}\n</script>\n\n<template>\n <thead\n :data-id=\"dataId\"\n :class=\"[\n $style.thead,\n {\n [$style.sticky__header]: stickyHeader,\n [$style.stick__top]: stick,\n [$style.dense]: dense,\n },\n ]\"\n >\n <tr :class=\"$style.tr\">\n <th\n v-if=\"selectable\"\n :class=\"$style.checkbox\"\n scope=\"col\"\n colspan=\"1\"\n rowspan=\"1\"\n >\n <RuiCheckbox\n :disabled=\"disableCheckAll\"\n :indeterminate=\"indeterminate\"\n :model-value=\"isAllSelected\"\n :size=\"dense ? 'sm' : undefined\"\n color=\"primary\"\n data-cy=\"table-toggle-check-all\"\n hide-details\n @update:model-value=\"onToggleAll($event)\"\n />\n </th>\n\n <th\n v-for=\"(column, index) in columns\"\n :key=\"index\"\n :class=\"[\n $style.th,\n column.class,\n $style[`align__${column.align ?? 'start'}`],\n {\n capitalize: !capitalizeHeaders,\n [$style.sortable]: column.sortable,\n },\n ]\"\n scope=\"col\"\n :colspan=\"column.colspan ?? 1\"\n :rowspan=\"column.rowspan ?? 1\"\n >\n <slot\n :column=\"column\"\n :name=\"`header.${column.key.toString()}`\"\n >\n <RuiBadge\n v-if=\"column.sortable\"\n :model-value=\"getSortIndex(column.key) >= 0\"\n :text=\"`${getSortIndex(column.key) + 1}`\"\n :offset-y=\"dense ? 8 : 0\"\n color=\"secondary\"\n size=\"sm\"\n >\n <RuiButton\n :class=\"[\n $style.sort__button,\n {\n [$style.sort__active ?? '']: isSortedBy(column.key),\n [$style[`sort__${getSortDirection(column.key)}`] ?? '']: isSortedBy(\n column.key,\n ),\n },\n ]\"\n size=\"sm\"\n variant=\"text\"\n @click=\"onSort(column)\"\n >\n <span :class=\"$style.column__text\">\n <slot\n :name=\"`header.text.${column.key.toString()}`\"\n :column=\"column\"\n >\n {{ column[columnAttr] }}\n </slot>\n </span>\n\n <template\n v-if=\"column.align === 'end'\"\n #prepend\n >\n <RuiIcon\n :class=\"$style.sort__icon\"\n name=\"lu-arrow-down\"\n size=\"18\"\n />\n </template>\n\n <template #append>\n <RuiIcon\n v-if=\"column.align !== 'end'\"\n :class=\"$style.sort__icon\"\n name=\"lu-arrow-down\"\n size=\"18\"\n />\n </template>\n </RuiButton>\n </RuiBadge>\n <span\n v-else\n :class=\"$style.column__text\"\n >\n <slot\n :name=\"`header.text.${column.key.toString()}`\"\n :column=\"column\"\n >\n {{ column[columnAttr] }}\n </slot>\n </span>\n </slot>\n </th>\n </tr>\n <tr\n v-if=\"loading\"\n :class=\"[$style.thead__loader, $style.thead__loader_linear]\"\n >\n <th\n :class=\"$style.progress\"\n :colspan=\"colspan\"\n scope=\"col\"\n >\n <div :class=\"$style.progress__wrapper\">\n <RuiProgress\n color=\"primary\"\n variant=\"indeterminate\"\n />\n </div>\n </th>\n </tr>\n </thead>\n</template>\n\n<style module lang=\"scss\">\n.thead {\n @apply divide-y divide-black/[0.12];\n\n &.sticky__header {\n @apply top-0 z-10 absolute;\n\n &.stick__top {\n @apply fixed;\n\n tr {\n th {\n @apply bg-white border-b border-b-black/[0.12];\n }\n }\n }\n }\n\n &.dense {\n .tr {\n .th {\n @apply py-[0.38rem];\n }\n }\n }\n\n .tr {\n .th {\n @apply p-4;\n\n &.align__start {\n @apply text-left rtl:text-right;\n }\n\n &.align__center {\n @apply text-center;\n }\n\n &.align__end {\n @apply text-right rtl:text-left;\n }\n\n &.sortable {\n &.align__start {\n @apply pl-3;\n }\n\n &.align__center {\n @apply px-3;\n .sort__button {\n @apply ml-6;\n }\n }\n\n &.align__end {\n @apply pr-3;\n }\n\n .sort__button {\n @apply inline-flex;\n\n &:hover .sort__icon {\n @apply opacity-60;\n }\n\n &.sort {\n &__active {\n .sort__icon {\n @apply opacity-100;\n }\n }\n\n &__desc {\n .sort__icon {\n @apply rotate-0;\n }\n }\n\n &__asc {\n .sort__icon {\n @apply rotate-180;\n }\n }\n }\n }\n\n .sort__icon {\n @apply transition opacity-0 rotate-180;\n }\n }\n\n .column__text {\n @apply text-rui-text font-medium text-sm leading-6;\n }\n }\n\n .checkbox {\n @apply px-2 w-[3.625rem] max-w-[3.625rem];\n label {\n @apply ml-0;\n }\n }\n }\n\n &__loader {\n .progress {\n @apply relative py-8;\n }\n\n &_linear {\n @apply border-none;\n\n .progress {\n @apply p-0 h-0;\n }\n\n .progress__wrapper {\n @apply h-0 -mt-1;\n }\n }\n }\n}\n\n:global(.dark) {\n .thead {\n @apply divide-y divide-white/[0.12];\n\n &.sticky__header.stick__top {\n th {\n @apply bg-[#121212] border-b border-b-white/[0.12];\n }\n }\n\n .tr {\n .th {\n @apply text-white;\n }\n }\n }\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","$style","_createElementVNode","_createVNode","_openBlock","_Fragment","_renderList","_renderSlot","_createBlock","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
const thead = "_thead_1y979_1";
|
|
2
|
+
const sticky__header = "_sticky__header_1y979_4";
|
|
3
|
+
const stick__top = "_stick__top_1y979_7";
|
|
4
|
+
const dense = "_dense_1y979_13";
|
|
5
|
+
const tr = "_tr_1y979_13";
|
|
6
|
+
const th = "_th_1y979_1";
|
|
7
|
+
const align__start = "_align__start_1y979_19";
|
|
8
|
+
const align__center = "_align__center_1y979_22";
|
|
9
|
+
const align__end = "_align__end_1y979_25";
|
|
10
|
+
const sortable = "_sortable_1y979_28";
|
|
11
|
+
const sort__button = "_sort__button_1y979_34";
|
|
12
|
+
const sort__icon = "_sort__icon_1y979_43";
|
|
13
|
+
const sort__active = "_sort__active_1y979_46";
|
|
14
|
+
const sort__desc = "_sort__desc_1y979_49";
|
|
15
|
+
const sort__asc = "_sort__asc_1y979_52";
|
|
16
|
+
const column__text = "_column__text_1y979_58";
|
|
17
|
+
const checkbox = "_checkbox_1y979_61";
|
|
18
|
+
const thead__loader = "_thead__loader_1y979_67";
|
|
19
|
+
const progress = "_progress_1y979_67";
|
|
20
|
+
const thead__loader_linear = "_thead__loader_linear_1y979_70";
|
|
21
|
+
const progress__wrapper = "_progress__wrapper_1y979_76";
|
|
22
|
+
const style0 = {
|
|
23
|
+
thead,
|
|
24
|
+
sticky__header,
|
|
25
|
+
stick__top,
|
|
26
|
+
dense,
|
|
27
|
+
tr,
|
|
28
|
+
th,
|
|
29
|
+
align__start,
|
|
30
|
+
align__center,
|
|
31
|
+
align__end,
|
|
32
|
+
sortable,
|
|
33
|
+
sort__button,
|
|
34
|
+
sort__icon,
|
|
35
|
+
sort__active,
|
|
36
|
+
sort__desc,
|
|
37
|
+
sort__asc,
|
|
38
|
+
column__text,
|
|
39
|
+
checkbox,
|
|
40
|
+
thead__loader,
|
|
41
|
+
progress,
|
|
42
|
+
thead__loader_linear,
|
|
43
|
+
progress__wrapper
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
align__center,
|
|
47
|
+
align__end,
|
|
48
|
+
align__start,
|
|
49
|
+
checkbox,
|
|
50
|
+
column__text,
|
|
51
|
+
style0 as default,
|
|
52
|
+
dense,
|
|
53
|
+
progress,
|
|
54
|
+
progress__wrapper,
|
|
55
|
+
sort__active,
|
|
56
|
+
sort__asc,
|
|
57
|
+
sort__button,
|
|
58
|
+
sort__desc,
|
|
59
|
+
sort__icon,
|
|
60
|
+
sortable,
|
|
61
|
+
stick__top,
|
|
62
|
+
sticky__header,
|
|
63
|
+
th,
|
|
64
|
+
thead,
|
|
65
|
+
thead__loader,
|
|
66
|
+
thead__loader_linear,
|
|
67
|
+
tr
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=RuiTableHead.vue3.js.map
|