@rotki/ui-library 2.15.0 → 2.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordions/accordion/RuiAccordion.js +7 -0
- package/dist/components/accordions/accordion/RuiAccordion.js.map +1 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue.d.ts +9 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js +88 -0
- package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/accordions/accordions/RuiAccordions.js +7 -0
- package/dist/components/accordions/accordions/RuiAccordions.js.map +1 -0
- package/dist/components/accordions/accordions/RuiAccordions.vue_vue_type_script_setup_true_lang.js +67 -0
- package/dist/components/accordions/accordions/RuiAccordions.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/alerts/RuiAlert.js +7 -0
- package/dist/components/alerts/RuiAlert.js.map +1 -0
- package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js +330 -0
- package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/buttons/button/RuiButton.js +7 -0
- package/dist/components/buttons/button/RuiButton.js.map +1 -0
- package/dist/components/buttons/button/RuiButton.vue.d.ts +3 -2
- package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js +104 -0
- package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/buttons/button/button-props.d.ts +16 -0
- package/dist/components/buttons/button/button-props.js +20 -0
- package/dist/components/buttons/button/button-props.js.map +1 -0
- package/dist/components/buttons/button/button-styles.d.ts +229 -0
- package/dist/components/buttons/button/button-styles.js +342 -0
- package/dist/components/buttons/button/button-styles.js.map +1 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.js +7 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.js.map +1 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js +246 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/calendar/RuiCalendar.js +7 -0
- package/dist/components/calendar/RuiCalendar.js.map +1 -0
- package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js +151 -0
- package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/calendar/RuiCalendarGrid.js +7 -0
- package/dist/components/calendar/RuiCalendarGrid.js.map +1 -0
- package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js +155 -0
- package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/calendar/RuiCalendarHeader.js +7 -0
- package/dist/components/calendar/RuiCalendarHeader.js.map +1 -0
- package/dist/components/calendar/RuiCalendarHeader.vue_vue_type_script_setup_true_lang.js +113 -0
- package/dist/components/calendar/RuiCalendarHeader.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/calendar/RuiCalendarMenu.js +7 -0
- package/dist/components/calendar/RuiCalendarMenu.js.map +1 -0
- package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js +246 -0
- package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/calendar/state.js +20 -21
- package/dist/components/calendar/state.js.map +1 -1
- package/dist/components/cards/RuiCard.js +7 -0
- package/dist/components/cards/RuiCard.js.map +1 -0
- package/dist/components/cards/RuiCard.vue.d.ts +9 -0
- package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/cards/RuiCardHeader.js +7 -0
- package/dist/components/cards/RuiCardHeader.js.map +1 -0
- package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js +67 -0
- package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/chips/RuiChip.js +7 -0
- package/dist/components/chips/RuiChip.js.map +1 -0
- package/dist/components/chips/RuiChip.vue.d.ts +10 -2
- package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js +308 -0
- package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/chips/chip-props.d.ts +11 -0
- package/dist/components/chips/chip-props.js +17 -0
- package/dist/components/chips/chip-props.js.map +1 -0
- package/dist/components/color-picker/RuiColorBoard.js +7 -0
- package/dist/components/color-picker/RuiColorBoard.js.map +1 -0
- package/dist/components/color-picker/RuiColorBoard.vue.d.ts +1 -1
- package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js +100 -0
- package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/color-picker/RuiColorDisplay.js +7 -0
- package/dist/components/color-picker/RuiColorDisplay.js.map +1 -0
- package/dist/components/color-picker/RuiColorDisplay.vue_vue_type_script_setup_true_lang.js +37 -0
- package/dist/components/color-picker/RuiColorDisplay.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/color-picker/RuiColorHue.js +7 -0
- package/dist/components/color-picker/RuiColorHue.js.map +1 -0
- package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js +84 -0
- package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/color-picker/RuiColorInput.js +7 -0
- package/dist/components/color-picker/RuiColorInput.js.map +1 -0
- package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js +132 -0
- package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/color-picker/RuiColorPicker.js +7 -0
- package/dist/components/color-picker/RuiColorPicker.js.map +1 -0
- package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/color-picker/utils.d.ts +11 -8
- package/dist/components/color-picker/utils.js +179 -194
- package/dist/components/color-picker/utils.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.js +7 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +2 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +369 -0
- package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.js +7 -0
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.js.map +1 -0
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.d.ts +1 -1
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js +134 -0
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/date-time-picker/date-time-picker-styles.d.ts +326 -0
- package/dist/components/date-time-picker/date-time-picker-styles.js +19 -0
- package/dist/components/date-time-picker/date-time-picker-styles.js.map +1 -0
- package/dist/components/date-time-picker/dayjs-setup.js +4 -1
- package/dist/components/date-time-picker/dayjs-setup.js.map +1 -1
- package/dist/components/date-time-picker/segment-config.js +42 -21
- package/dist/components/date-time-picker/segment-config.js.map +1 -1
- package/dist/components/date-time-picker/segment-utils.js +24 -31
- package/dist/components/date-time-picker/segment-utils.js.map +1 -1
- package/dist/components/date-time-picker/timezones.js +601 -600
- package/dist/components/date-time-picker/timezones.js.map +1 -1
- package/dist/components/date-time-picker/types.js +14 -14
- package/dist/components/date-time-picker/types.js.map +1 -1
- package/dist/components/date-time-picker/use-date-time-selection.js +222 -282
- package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
- package/dist/components/date-time-picker/use-input-handler.js +31 -28
- package/dist/components/date-time-picker/use-input-handler.js.map +1 -1
- package/dist/components/date-time-picker/use-keyboard-handler.js +201 -268
- package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
- package/dist/components/date-time-picker/utils.js +10 -11
- package/dist/components/date-time-picker/utils.js.map +1 -1
- package/dist/components/divider/RuiDivider.js +7 -0
- package/dist/components/divider/RuiDivider.js.map +1 -0
- package/dist/components/divider/RuiDivider.vue_vue_type_script_setup_true_lang.js +25 -0
- package/dist/components/divider/RuiDivider.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.js +7 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.js.map +1 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +12 -2
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +566 -0
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/auto-complete/auto-complete-styles.d.ts +324 -0
- package/dist/components/forms/auto-complete/auto-complete-styles.js +15 -0
- package/dist/components/forms/auto-complete/auto-complete-styles.js.map +1 -0
- package/dist/components/forms/check-control-styles.d.ts +135 -0
- package/dist/components/forms/check-control-styles.js +126 -0
- package/dist/components/forms/check-control-styles.js.map +1 -0
- package/dist/components/forms/checkbox/RuiCheckbox.js +7 -0
- package/dist/components/forms/checkbox/RuiCheckbox.js.map +1 -0
- package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js +133 -0
- package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.js +7 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.js.map +1 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js +115 -0
- package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js +7 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js.map +1 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js +96 -0
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js +7 -0
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js.map +1 -0
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +2 -15
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js +117 -0
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/select/RuiMenuSelect.js +7 -0
- package/dist/components/forms/select/RuiMenuSelect.js.map +1 -0
- package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +16 -4
- package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js +313 -0
- package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/select/RuiSimpleSelect.js +7 -0
- package/dist/components/forms/select/RuiSimpleSelect.js.map +1 -0
- package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/select/menu-select-styles.d.ts +319 -0
- package/dist/components/forms/select/menu-select-styles.js +11 -0
- package/dist/components/forms/select/menu-select-styles.js.map +1 -0
- package/dist/components/forms/slider/RuiSlider.js +7 -0
- package/dist/components/forms/slider/RuiSlider.js.map +1 -0
- package/dist/components/forms/slider/RuiSlider.vue.d.ts +9 -0
- package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js +222 -0
- package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/slider/slider-styles.d.ts +208 -0
- package/dist/components/forms/slider/slider-styles.js +235 -0
- package/dist/components/forms/slider/slider-styles.js.map +1 -0
- package/dist/components/forms/switch/RuiSwitch.js +7 -0
- package/dist/components/forms/switch/RuiSwitch.js.map +1 -0
- package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +226 -0
- package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/text-area/RuiTextArea.js +7 -0
- package/dist/components/forms/text-area/RuiTextArea.js.map +1 -0
- package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +8 -4
- package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js +248 -0
- package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/text-area/text-area-styles.d.ts +313 -0
- package/dist/components/forms/text-area/text-area-styles.js +239 -0
- package/dist/components/forms/text-area/text-area-styles.js.map +1 -0
- package/dist/components/forms/text-field/RuiTextField.js +7 -0
- package/dist/components/forms/text-field/RuiTextField.js.map +1 -0
- package/dist/components/forms/text-field/RuiTextField.vue.d.ts +4 -3
- package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js +220 -0
- package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/forms/text-field/text-field-styles.d.ts +299 -0
- package/dist/components/forms/text-field/text-field-styles.js +251 -0
- package/dist/components/forms/text-field/text-field-styles.js.map +1 -0
- package/dist/components/forms/text-input-styles.d.ts +422 -0
- package/dist/components/forms/text-input-styles.js +250 -0
- package/dist/components/forms/text-input-styles.js.map +1 -0
- package/dist/components/helpers/RuiFormTextDetail.js +7 -0
- package/dist/components/helpers/RuiFormTextDetail.js.map +1 -0
- package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/icons/RuiIcon.js +7 -0
- package/dist/components/icons/RuiIcon.js.map +1 -0
- package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/index.d.ts +46 -46
- package/dist/components/index.js +45 -92
- package/dist/components/loaders/RuiSkeletonBase.js +7 -0
- package/dist/components/loaders/RuiSkeletonBase.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonLoader.js +7 -0
- package/dist/components/loaders/RuiSkeletonLoader.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonLoader.vue.d.ts +3 -2
- package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/loaders/skeleton-type.d.ts +12 -0
- package/dist/components/loaders/skeleton-type.js +16 -0
- package/dist/components/loaders/skeleton-type.js.map +1 -0
- package/dist/components/logos/RuiLogo.js +7 -0
- package/dist/components/logos/RuiLogo.js.map +1 -0
- package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/logos/logo.js +6 -0
- package/dist/components/logos/logo.js.map +1 -0
- package/dist/components/logos/use-logo-sources.d.ts +1 -1
- package/dist/components/logos/use-logo-sources.js +66 -62
- package/dist/components/logos/use-logo-sources.js.map +1 -1
- package/dist/components/overlays/badge/RuiBadge.js +7 -0
- package/dist/components/overlays/badge/RuiBadge.js.map +1 -0
- package/dist/components/overlays/badge/RuiBadge.vue.d.ts +4 -3
- package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js +189 -0
- package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/overlays/badge/badge-props.d.ts +19 -0
- package/dist/components/overlays/badge/badge-props.js +21 -0
- package/dist/components/overlays/badge/badge-props.js.map +1 -0
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.js +7 -0
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.js.map +1 -0
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/overlays/dialog/RuiDialog.js +7 -0
- package/dist/components/overlays/dialog/RuiDialog.js.map +1 -0
- package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +7 -0
- package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js +163 -0
- package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/overlays/menu/RuiMenu.js +7 -0
- package/dist/components/overlays/menu/RuiMenu.js.map +1 -0
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +12 -0
- package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +236 -0
- package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js +7 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js.map +1 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +7 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js +180 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/overlays/notification/RuiNotification.js +7 -0
- package/dist/components/overlays/notification/RuiNotification.js.map +1 -0
- package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/overlays/tooltip/RuiTooltip.js +7 -0
- package/dist/components/overlays/tooltip/RuiTooltip.js.map +1 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +10 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/overlays/tooltip/tooltip-styles.d.ts +91 -0
- package/dist/components/overlays/tooltip/tooltip-styles.js +40 -0
- package/dist/components/overlays/tooltip/tooltip-styles.js.map +1 -0
- package/dist/components/progress/RuiProgress.js +7 -0
- package/dist/components/progress/RuiProgress.js.map +1 -0
- package/dist/components/progress/RuiProgress.vue.d.ts +2 -1
- package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js +254 -0
- package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/progress/progress-props.d.ts +6 -0
- package/dist/components/progress/progress-props.js +10 -0
- package/dist/components/progress/progress-props.js.map +1 -0
- package/dist/components/steppers/RuiFooterStepper.js +7 -0
- package/dist/components/steppers/RuiFooterStepper.js.map +1 -0
- package/dist/components/steppers/RuiFooterStepper.vue.d.ts +2 -1
- package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js +164 -0
- package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/steppers/RuiStepper.js +7 -0
- package/dist/components/steppers/RuiStepper.js.map +1 -0
- package/dist/components/steppers/RuiStepper.vue.d.ts +9 -0
- package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js +232 -0
- package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/steppers/RuiStepperCustomIcon.js +7 -0
- package/dist/components/steppers/RuiStepperCustomIcon.js.map +1 -0
- package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/steppers/RuiStepperIcon.js +7 -0
- package/dist/components/steppers/RuiStepperIcon.js.map +1 -0
- package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/steppers/footer-stepper-variant.d.ts +7 -0
- package/dist/components/steppers/footer-stepper-variant.js +11 -0
- package/dist/components/steppers/footer-stepper-variant.js.map +1 -0
- package/dist/components/tables/RuiDataTable.js +7 -0
- package/dist/components/tables/RuiDataTable.js.map +1 -0
- package/dist/components/tables/RuiDataTable.vue.d.ts +7 -2
- package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js +516 -0
- package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tables/RuiExpandButton.js +7 -0
- package/dist/components/tables/RuiExpandButton.js.map +1 -0
- package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js +34 -0
- package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tables/RuiTableEmptyState.js +7 -0
- package/dist/components/tables/RuiTableEmptyState.js.map +1 -0
- package/dist/components/tables/RuiTableEmptyState.vue.d.ts +16 -0
- package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tables/RuiTableHead.js +7 -0
- package/dist/components/tables/RuiTableHead.js.map +1 -0
- package/dist/components/tables/RuiTableHead.vue.d.ts +6 -5
- package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +230 -0
- package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tables/RuiTablePagination.js +7 -0
- package/dist/components/tables/RuiTablePagination.js.map +1 -0
- package/dist/components/tables/RuiTablePagination.vue.d.ts +9 -6
- package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +187 -0
- package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tables/data-table-styles.d.ts +155 -0
- package/dist/components/tables/data-table-styles.js +36 -0
- package/dist/components/tables/data-table-styles.js.map +1 -0
- package/dist/components/tables/table-props.d.ts +20 -0
- package/dist/components/tables/table-props.js +39 -0
- package/dist/components/tables/table-props.js.map +1 -0
- package/dist/components/tables/table_no_data_placeholder.js +6 -0
- package/dist/components/tables/table_no_data_placeholder.js.map +1 -0
- package/dist/components/tables/table_no_data_placeholder_dark.js +6 -0
- package/dist/components/tables/table_no_data_placeholder_dark.js.map +1 -0
- package/dist/components/tables/use-pagination-navigation.d.ts +32 -0
- package/dist/components/tables/use-pagination-navigation.js +88 -0
- package/dist/components/tables/use-pagination-navigation.js.map +1 -0
- package/dist/components/tabs/tab/RuiTab.js +7 -0
- package/dist/components/tabs/tab/RuiTab.js.map +1 -0
- package/dist/components/tabs/tab/RuiTab.vue.d.ts +12 -3
- package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js +175 -0
- package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tabs/tab/use-tab-link.d.ts +26 -0
- package/dist/components/tabs/tab/use-tab-link.js +28 -0
- package/dist/components/tabs/tab/use-tab-link.js.map +1 -0
- package/dist/components/tabs/tab-item/RuiTabItem.js +7 -0
- package/dist/components/tabs/tab-item/RuiTabItem.js.map +1 -0
- package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tabs/tab-items/RuiTabItems.js +7 -0
- package/dist/components/tabs/tab-items/RuiTabItems.js.map +1 -0
- package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js +76 -0
- package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tabs/tab-props.d.ts +20 -0
- package/dist/components/tabs/tab-props.js +18 -0
- package/dist/components/tabs/tab-props.js.map +1 -0
- package/dist/components/tabs/tabs/RuiTabs.js +7 -0
- package/dist/components/tabs/tabs/RuiTabs.js.map +1 -0
- package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +3 -2
- package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js +208 -0
- package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/tabs/tabs/use-tab-routing.d.ts +28 -0
- package/dist/components/tabs/tabs/use-tab-routing.js +43 -0
- package/dist/components/tabs/tabs/use-tab-routing.js.map +1 -0
- package/dist/components/tabs/tabs/use-tab-scroll.d.ts +23 -0
- package/dist/components/tabs/tabs/use-tab-scroll.js +68 -0
- package/dist/components/tabs/tabs/use-tab-scroll.js.map +1 -0
- package/dist/components/time-picker/RuiTimePicker.js +7 -0
- package/dist/components/time-picker/RuiTimePicker.js.map +1 -0
- package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js +382 -0
- package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/time-picker/time-picker-styles.d.ts +76 -0
- package/dist/components/time-picker/time-picker-styles.js +27 -0
- package/dist/components/time-picker/time-picker-styles.js.map +1 -0
- package/dist/composables/breakpoint.js +35 -40
- package/dist/composables/breakpoint.js.map +1 -1
- package/dist/composables/colors/common.d.ts +20 -0
- package/dist/composables/colors/index.d.ts +3 -0
- package/dist/composables/colors/text-input.d.ts +27 -0
- package/dist/composables/defaults/table.js +21 -18
- package/dist/composables/defaults/table.js.map +1 -1
- package/dist/composables/dropdown-menu.d.ts +6 -6
- package/dist/composables/dropdown-menu.js +169 -237
- package/dist/composables/dropdown-menu.js.map +1 -1
- package/dist/composables/floating.d.ts +60 -0
- package/dist/composables/floating.js +167 -0
- package/dist/composables/floating.js.map +1 -0
- package/dist/composables/forms/auto-complete/focus.d.ts +4 -4
- package/dist/composables/forms/auto-complete/focus.js +59 -79
- package/dist/composables/forms/auto-complete/focus.js.map +1 -1
- package/dist/composables/forms/auto-complete/index.js +4 -0
- package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +6 -5
- package/dist/composables/forms/auto-complete/keyboard-navigation.js +116 -136
- package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
- package/dist/composables/forms/auto-complete/search.d.ts +11 -10
- package/dist/composables/forms/auto-complete/search.js +80 -91
- package/dist/composables/forms/auto-complete/search.js.map +1 -1
- package/dist/composables/forms/auto-complete/value.d.ts +9 -8
- package/dist/composables/forms/auto-complete/value.js +76 -108
- package/dist/composables/forms/auto-complete/value.js.map +1 -1
- package/dist/composables/forms/use-prepend-append-width.js +24 -20
- package/dist/composables/forms/use-prepend-append-width.js.map +1 -1
- package/dist/composables/icons.js +42 -52
- package/dist/composables/icons.js.map +1 -1
- package/dist/composables/index.js +2 -7
- package/dist/composables/popper.d.ts +5 -20
- package/dist/composables/popper.js +22 -177
- package/dist/composables/popper.js.map +1 -1
- package/dist/composables/sticky-header.js +132 -143
- package/dist/composables/sticky-header.js.map +1 -1
- package/dist/composables/tables/data-table/columns.d.ts +1 -1
- package/dist/composables/tables/data-table/columns.js +41 -49
- package/dist/composables/tables/data-table/columns.js.map +1 -1
- package/dist/composables/tables/data-table/expansion.js +29 -34
- package/dist/composables/tables/data-table/expansion.js.map +1 -1
- package/dist/composables/tables/data-table/grouping.d.ts +1 -1
- package/dist/composables/tables/data-table/grouping.js +110 -132
- package/dist/composables/tables/data-table/grouping.js.map +1 -1
- package/dist/composables/tables/data-table/pagination.d.ts +2 -2
- package/dist/composables/tables/data-table/pagination.js +98 -115
- package/dist/composables/tables/data-table/pagination.js.map +1 -1
- package/dist/composables/tables/data-table/selection.js +124 -160
- package/dist/composables/tables/data-table/selection.js.map +1 -1
- package/dist/composables/tables/data-table/sort.d.ts +2 -2
- package/dist/composables/tables/data-table/sort.js +118 -132
- package/dist/composables/tables/data-table/sort.js.map +1 -1
- package/dist/composables/tables/data-table/types.d.ts +2 -2
- package/dist/composables/tables/data-table/types.js +7 -7
- package/dist/composables/tables/data-table/types.js.map +1 -1
- package/dist/composables/theme.js +91 -66
- package/dist/composables/theme.js.map +1 -1
- package/dist/composables/timeout-manager.js +24 -19
- package/dist/composables/timeout-manager.js.map +1 -1
- package/dist/composables/use-rui-i18n.js +15 -21
- package/dist/composables/use-rui-i18n.js.map +1 -1
- package/dist/consts/colors.js +50 -47
- package/dist/consts/colors.js.map +1 -1
- package/dist/consts/time-accuracy.js +9 -8
- package/dist/consts/time-accuracy.js.map +1 -1
- package/dist/i18n/keys.js +17 -16
- package/dist/i18n/keys.js.map +1 -1
- package/dist/icons/icons_1.js +1529 -2027
- package/dist/icons/icons_1.js.map +1 -1
- package/dist/icons/icons_2.js +1529 -2027
- package/dist/icons/icons_2.js.map +1 -1
- package/dist/icons/icons_3.js +1529 -2027
- package/dist/icons/icons_3.js.map +1 -1
- package/dist/icons/icons_4.js +794 -1047
- package/dist/icons/icons_4.js.map +1 -1
- package/dist/icons/index.js +1767 -7
- package/dist/icons/index.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +87 -1907
- package/dist/index.js.map +1 -1
- package/dist/style.css +2780 -10260
- package/dist/theme/index.js +160 -198
- package/dist/theme/index.js.map +1 -1
- package/dist/types/class-value.d.ts +5 -0
- package/dist/types/stepper.js +16 -15
- package/dist/types/stepper.js.map +1 -1
- package/dist/types/theme.js +17 -22
- package/dist/types/theme.js.map +1 -1
- package/dist/utils/assert.js +12 -12
- package/dist/utils/assert.js.map +1 -1
- package/dist/utils/blockie.js +58 -65
- package/dist/utils/blockie.js.map +1 -1
- package/dist/utils/form-text-detail.d.ts +4 -2
- package/dist/utils/form-text-detail.js +29 -27
- package/dist/utils/form-text-detail.js.map +1 -1
- package/dist/utils/helpers.js +60 -35
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/is-equal.js +23 -33
- package/dist/utils/is-equal.js.map +1 -1
- package/dist/utils/tv.d.ts +16 -0
- package/dist/utils/tv.js +23 -0
- package/dist/utils/tv.js.map +1 -0
- package/dist/vite-plugin/index.js +144 -155
- package/dist/vite-plugin/index.js.map +1 -1
- package/dist/vite-plugin/scanner.js +46 -52
- package/dist/vite-plugin/scanner.js.map +1 -1
- package/dist/web-types.json +214 -39
- package/package.json +36 -27
- package/dist/_virtual/_plugin-vue_export-helper.js +0 -11
- package/dist/_virtual/_plugin-vue_export-helper.js.map +0 -1
- package/dist/components/accordions/accordion/RuiAccordion.vue.js +0 -89
- package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +0 -1
- package/dist/components/accordions/accordion/RuiAccordion.vue2.js +0 -5
- package/dist/components/accordions/accordion/RuiAccordion.vue2.js.map +0 -1
- package/dist/components/accordions/accordions/RuiAccordions.vue.js +0 -79
- package/dist/components/accordions/accordions/RuiAccordions.vue.js.map +0 -1
- package/dist/components/accordions/accordions/RuiAccordions.vue2.js +0 -5
- package/dist/components/accordions/accordions/RuiAccordions.vue2.js.map +0 -1
- package/dist/components/alerts/RuiAlert.vue.js +0 -11
- package/dist/components/alerts/RuiAlert.vue.js.map +0 -1
- package/dist/components/alerts/RuiAlert.vue2.js +0 -115
- package/dist/components/alerts/RuiAlert.vue2.js.map +0 -1
- package/dist/components/alerts/RuiAlert.vue3.js +0 -50
- package/dist/components/alerts/RuiAlert.vue3.js.map +0 -1
- package/dist/components/buttons/button/RuiButton.vue.js +0 -11
- package/dist/components/buttons/button/RuiButton.vue.js.map +0 -1
- package/dist/components/buttons/button/RuiButton.vue2.js +0 -93
- package/dist/components/buttons/button/RuiButton.vue2.js.map +0 -1
- package/dist/components/buttons/button/RuiButton.vue3.js +0 -74
- package/dist/components/buttons/button/RuiButton.vue3.js.map +0 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue.js +0 -11
- package/dist/components/buttons/button-group/RuiButtonGroup.vue.js.map +0 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +0 -113
- package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js.map +0 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue3.js +0 -58
- package/dist/components/buttons/button-group/RuiButtonGroup.vue3.js.map +0 -1
- package/dist/components/calendar/RuiCalendar.vue.js +0 -139
- package/dist/components/calendar/RuiCalendar.vue.js.map +0 -1
- package/dist/components/calendar/RuiCalendar.vue3.js +0 -6
- package/dist/components/calendar/RuiCalendar.vue3.js.map +0 -1
- package/dist/components/calendar/RuiCalendarGrid.vue.js +0 -8
- package/dist/components/calendar/RuiCalendarGrid.vue.js.map +0 -1
- package/dist/components/calendar/RuiCalendarGrid.vue2.js +0 -151
- package/dist/components/calendar/RuiCalendarGrid.vue2.js.map +0 -1
- package/dist/components/calendar/RuiCalendarHeader.vue.js +0 -8
- package/dist/components/calendar/RuiCalendarHeader.vue.js.map +0 -1
- package/dist/components/calendar/RuiCalendarHeader.vue2.js +0 -111
- package/dist/components/calendar/RuiCalendarHeader.vue2.js.map +0 -1
- package/dist/components/calendar/RuiCalendarMenu.vue.js +0 -8
- package/dist/components/calendar/RuiCalendarMenu.vue.js.map +0 -1
- package/dist/components/calendar/RuiCalendarMenu.vue2.js +0 -269
- package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +0 -1
- package/dist/components/cards/RuiCard.vue.js +0 -11
- package/dist/components/cards/RuiCard.vue.js.map +0 -1
- package/dist/components/cards/RuiCard.vue2.js +0 -88
- package/dist/components/cards/RuiCard.vue2.js.map +0 -1
- package/dist/components/cards/RuiCard.vue3.js +0 -40
- package/dist/components/cards/RuiCard.vue3.js.map +0 -1
- package/dist/components/cards/RuiCardHeader.vue.js +0 -11
- package/dist/components/cards/RuiCardHeader.vue.js.map +0 -1
- package/dist/components/cards/RuiCardHeader.vue2.js +0 -51
- package/dist/components/cards/RuiCardHeader.vue2.js.map +0 -1
- package/dist/components/cards/RuiCardHeader.vue3.js +0 -27
- package/dist/components/cards/RuiCardHeader.vue3.js.map +0 -1
- package/dist/components/chips/RuiChip.vue.js +0 -11
- package/dist/components/chips/RuiChip.vue.js.map +0 -1
- package/dist/components/chips/RuiChip.vue2.js +0 -90
- package/dist/components/chips/RuiChip.vue2.js.map +0 -1
- package/dist/components/chips/RuiChip.vue3.js +0 -88
- package/dist/components/chips/RuiChip.vue3.js.map +0 -1
- package/dist/components/color-picker/RuiColorBoard.vue.js +0 -11
- package/dist/components/color-picker/RuiColorBoard.vue.js.map +0 -1
- package/dist/components/color-picker/RuiColorBoard.vue2.js +0 -102
- package/dist/components/color-picker/RuiColorBoard.vue2.js.map +0 -1
- package/dist/components/color-picker/RuiColorBoard.vue3.js +0 -18
- package/dist/components/color-picker/RuiColorBoard.vue3.js.map +0 -1
- package/dist/components/color-picker/RuiColorDisplay.vue.js +0 -47
- package/dist/components/color-picker/RuiColorDisplay.vue.js.map +0 -1
- package/dist/components/color-picker/RuiColorDisplay.vue2.js +0 -5
- package/dist/components/color-picker/RuiColorDisplay.vue2.js.map +0 -1
- package/dist/components/color-picker/RuiColorHue.vue.js +0 -11
- package/dist/components/color-picker/RuiColorHue.vue.js.map +0 -1
- package/dist/components/color-picker/RuiColorHue.vue2.js +0 -92
- package/dist/components/color-picker/RuiColorHue.vue2.js.map +0 -1
- package/dist/components/color-picker/RuiColorHue.vue3.js +0 -12
- package/dist/components/color-picker/RuiColorHue.vue3.js.map +0 -1
- package/dist/components/color-picker/RuiColorInput.vue.js +0 -141
- package/dist/components/color-picker/RuiColorInput.vue.js.map +0 -1
- package/dist/components/color-picker/RuiColorInput.vue2.js +0 -5
- package/dist/components/color-picker/RuiColorInput.vue2.js.map +0 -1
- package/dist/components/color-picker/RuiColorPicker.vue.js +0 -81
- package/dist/components/color-picker/RuiColorPicker.vue.js.map +0 -1
- package/dist/components/color-picker/RuiColorPicker.vue2.js +0 -5
- package/dist/components/color-picker/RuiColorPicker.vue2.js.map +0 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.js +0 -11
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.js.map +0 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +0 -394
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +0 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue3.js +0 -66
- package/dist/components/date-time-picker/RuiDateTimePicker.vue3.js.map +0 -1
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js +0 -120
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js.map +0 -1
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue2.js +0 -5
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue2.js.map +0 -1
- package/dist/components/divider/RuiDivider.vue.js +0 -25
- package/dist/components/divider/RuiDivider.vue.js.map +0 -1
- package/dist/components/divider/RuiDivider.vue2.js +0 -5
- package/dist/components/divider/RuiDivider.vue2.js.map +0 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.js +0 -11
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.js.map +0 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +0 -594
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +0 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue3.js +0 -60
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue3.js.map +0 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue.js +0 -11
- package/dist/components/forms/checkbox/RuiCheckbox.vue.js.map +0 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +0 -148
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +0 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue3.js +0 -54
- package/dist/components/forms/checkbox/RuiCheckbox.vue3.js.map +0 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.js +0 -11
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.js.map +0 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +0 -122
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +0 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue3.js +0 -54
- package/dist/components/forms/radio-button/radio/RuiRadio.vue3.js.map +0 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.js +0 -11
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.js.map +0 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +0 -84
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +0 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue3.js +0 -9
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue3.js.map +0 -1
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +0 -84
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +0 -1
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue2.js +0 -5
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue2.js.map +0 -1
- package/dist/components/forms/select/RuiMenuSelect.vue.js +0 -11
- package/dist/components/forms/select/RuiMenuSelect.vue.js.map +0 -1
- package/dist/components/forms/select/RuiMenuSelect.vue2.js +0 -310
- package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +0 -1
- package/dist/components/forms/select/RuiMenuSelect.vue3.js +0 -60
- package/dist/components/forms/select/RuiMenuSelect.vue3.js.map +0 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue.js +0 -11
- package/dist/components/forms/select/RuiSimpleSelect.vue.js.map +0 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js +0 -62
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +0 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue3.js +0 -21
- package/dist/components/forms/select/RuiSimpleSelect.vue3.js.map +0 -1
- package/dist/components/forms/slider/RuiSlider.vue.js +0 -11
- package/dist/components/forms/slider/RuiSlider.vue.js.map +0 -1
- package/dist/components/forms/slider/RuiSlider.vue2.js +0 -173
- package/dist/components/forms/slider/RuiSlider.vue2.js.map +0 -1
- package/dist/components/forms/slider/RuiSlider.vue3.js +0 -80
- package/dist/components/forms/slider/RuiSlider.vue3.js.map +0 -1
- package/dist/components/forms/switch/RuiSwitch.vue.js +0 -11
- package/dist/components/forms/switch/RuiSwitch.vue.js.map +0 -1
- package/dist/components/forms/switch/RuiSwitch.vue2.js +0 -99
- package/dist/components/forms/switch/RuiSwitch.vue2.js.map +0 -1
- package/dist/components/forms/switch/RuiSwitch.vue3.js +0 -54
- package/dist/components/forms/switch/RuiSwitch.vue3.js.map +0 -1
- package/dist/components/forms/text-area/RuiTextArea.vue.js +0 -11
- package/dist/components/forms/text-area/RuiTextArea.vue.js.map +0 -1
- package/dist/components/forms/text-area/RuiTextArea.vue2.js +0 -229
- package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +0 -1
- package/dist/components/forms/text-area/RuiTextArea.vue3.js +0 -92
- package/dist/components/forms/text-area/RuiTextArea.vue3.js.map +0 -1
- package/dist/components/forms/text-field/RuiTextField.vue.js +0 -11
- package/dist/components/forms/text-field/RuiTextField.vue.js.map +0 -1
- package/dist/components/forms/text-field/RuiTextField.vue2.js +0 -202
- package/dist/components/forms/text-field/RuiTextField.vue2.js.map +0 -1
- package/dist/components/forms/text-field/RuiTextField.vue3.js +0 -89
- package/dist/components/forms/text-field/RuiTextField.vue3.js.map +0 -1
- package/dist/components/helpers/RuiFormTextDetail.vue.js +0 -50
- package/dist/components/helpers/RuiFormTextDetail.vue.js.map +0 -1
- package/dist/components/helpers/RuiFormTextDetail.vue2.js +0 -5
- package/dist/components/helpers/RuiFormTextDetail.vue2.js.map +0 -1
- package/dist/components/icons/RuiIcon.vue.js +0 -11
- package/dist/components/icons/RuiIcon.vue.js.map +0 -1
- package/dist/components/icons/RuiIcon.vue2.js +0 -57
- package/dist/components/icons/RuiIcon.vue2.js.map +0 -1
- package/dist/components/icons/RuiIcon.vue3.js +0 -29
- package/dist/components/icons/RuiIcon.vue3.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/loaders/RuiSkeletonBase.vue.js +0 -11
- package/dist/components/loaders/RuiSkeletonBase.vue.js.map +0 -1
- package/dist/components/loaders/RuiSkeletonBase.vue2.js +0 -22
- package/dist/components/loaders/RuiSkeletonBase.vue2.js.map +0 -1
- package/dist/components/loaders/RuiSkeletonBase.vue3.js +0 -12
- package/dist/components/loaders/RuiSkeletonBase.vue3.js.map +0 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue.js +0 -11
- package/dist/components/loaders/RuiSkeletonLoader.vue.js.map +0 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue2.js +0 -47
- package/dist/components/loaders/RuiSkeletonLoader.vue2.js.map +0 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue3.js +0 -33
- package/dist/components/loaders/RuiSkeletonLoader.vue3.js.map +0 -1
- package/dist/components/logos/RuiLogo.vue.js +0 -148
- package/dist/components/logos/RuiLogo.vue.js.map +0 -1
- package/dist/components/logos/RuiLogo.vue2.js +0 -5
- package/dist/components/logos/RuiLogo.vue2.js.map +0 -1
- package/dist/components/logos/logo.svg.js +0 -5
- package/dist/components/logos/logo.svg.js.map +0 -1
- package/dist/components/overlays/badge/RuiBadge.vue.js +0 -11
- package/dist/components/overlays/badge/RuiBadge.vue.js.map +0 -1
- package/dist/components/overlays/badge/RuiBadge.vue2.js +0 -93
- package/dist/components/overlays/badge/RuiBadge.vue2.js.map +0 -1
- package/dist/components/overlays/badge/RuiBadge.vue3.js +0 -77
- package/dist/components/overlays/badge/RuiBadge.vue3.js.map +0 -1
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +0 -45
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js.map +0 -1
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue2.js +0 -5
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue2.js.map +0 -1
- package/dist/components/overlays/dialog/RuiDialog.vue.js +0 -11
- package/dist/components/overlays/dialog/RuiDialog.vue.js.map +0 -1
- package/dist/components/overlays/dialog/RuiDialog.vue2.js +0 -195
- package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +0 -1
- package/dist/components/overlays/dialog/RuiDialog.vue3.js +0 -18
- package/dist/components/overlays/dialog/RuiDialog.vue3.js.map +0 -1
- package/dist/components/overlays/menu/RuiMenu.vue.js +0 -11
- package/dist/components/overlays/menu/RuiMenu.vue.js.map +0 -1
- package/dist/components/overlays/menu/RuiMenu.vue2.js +0 -214
- package/dist/components/overlays/menu/RuiMenu.vue2.js.map +0 -1
- package/dist/components/overlays/menu/RuiMenu.vue3.js +0 -21
- package/dist/components/overlays/menu/RuiMenu.vue3.js.map +0 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.js +0 -11
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.js.map +0 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +0 -164
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +0 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js +0 -28
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js.map +0 -1
- package/dist/components/overlays/notification/RuiNotification.vue.js +0 -79
- package/dist/components/overlays/notification/RuiNotification.vue.js.map +0 -1
- package/dist/components/overlays/notification/RuiNotification.vue2.js +0 -5
- package/dist/components/overlays/notification/RuiNotification.vue2.js.map +0 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue.js +0 -11
- package/dist/components/overlays/tooltip/RuiTooltip.vue.js.map +0 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +0 -112
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +0 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue3.js +0 -27
- package/dist/components/overlays/tooltip/RuiTooltip.vue3.js.map +0 -1
- package/dist/components/progress/RuiProgress.vue.js +0 -11
- package/dist/components/progress/RuiProgress.vue.js.map +0 -1
- package/dist/components/progress/RuiProgress.vue2.js +0 -92
- package/dist/components/progress/RuiProgress.vue2.js.map +0 -1
- package/dist/components/progress/RuiProgress.vue3.js +0 -48
- package/dist/components/progress/RuiProgress.vue3.js.map +0 -1
- package/dist/components/steppers/RuiFooterStepper.vue.js +0 -11
- package/dist/components/steppers/RuiFooterStepper.vue.js.map +0 -1
- package/dist/components/steppers/RuiFooterStepper.vue2.js +0 -150
- package/dist/components/steppers/RuiFooterStepper.vue2.js.map +0 -1
- package/dist/components/steppers/RuiFooterStepper.vue3.js +0 -31
- package/dist/components/steppers/RuiFooterStepper.vue3.js.map +0 -1
- package/dist/components/steppers/RuiStepper.vue.js +0 -11
- package/dist/components/steppers/RuiStepper.vue.js.map +0 -1
- package/dist/components/steppers/RuiStepper.vue2.js +0 -133
- package/dist/components/steppers/RuiStepper.vue2.js.map +0 -1
- package/dist/components/steppers/RuiStepper.vue3.js +0 -58
- package/dist/components/steppers/RuiStepper.vue3.js.map +0 -1
- package/dist/components/steppers/RuiStepperCustomIcon.vue.js +0 -11
- package/dist/components/steppers/RuiStepperCustomIcon.vue.js.map +0 -1
- package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +0 -38
- package/dist/components/steppers/RuiStepperCustomIcon.vue2.js.map +0 -1
- package/dist/components/steppers/RuiStepperCustomIcon.vue3.js +0 -15
- package/dist/components/steppers/RuiStepperCustomIcon.vue3.js.map +0 -1
- package/dist/components/steppers/RuiStepperIcon.vue.js +0 -11
- package/dist/components/steppers/RuiStepperIcon.vue.js.map +0 -1
- package/dist/components/steppers/RuiStepperIcon.vue2.js +0 -43
- package/dist/components/steppers/RuiStepperIcon.vue2.js.map +0 -1
- package/dist/components/steppers/RuiStepperIcon.vue3.js +0 -21
- package/dist/components/steppers/RuiStepperIcon.vue3.js.map +0 -1
- package/dist/components/tables/RuiDataTable.vue.js +0 -11
- package/dist/components/tables/RuiDataTable.vue.js.map +0 -1
- package/dist/components/tables/RuiDataTable.vue2.js +0 -541
- package/dist/components/tables/RuiDataTable.vue2.js.map +0 -1
- package/dist/components/tables/RuiDataTable.vue3.js +0 -76
- package/dist/components/tables/RuiDataTable.vue3.js.map +0 -1
- package/dist/components/tables/RuiExpandButton.vue.js +0 -11
- package/dist/components/tables/RuiExpandButton.vue.js.map +0 -1
- package/dist/components/tables/RuiExpandButton.vue2.js +0 -44
- package/dist/components/tables/RuiExpandButton.vue2.js.map +0 -1
- package/dist/components/tables/RuiExpandButton.vue3.js +0 -15
- package/dist/components/tables/RuiExpandButton.vue3.js.map +0 -1
- package/dist/components/tables/RuiTableHead.vue.js +0 -11
- package/dist/components/tables/RuiTableHead.vue.js.map +0 -1
- package/dist/components/tables/RuiTableHead.vue2.js +0 -195
- package/dist/components/tables/RuiTableHead.vue2.js.map +0 -1
- package/dist/components/tables/RuiTableHead.vue3.js +0 -69
- package/dist/components/tables/RuiTableHead.vue3.js.map +0 -1
- package/dist/components/tables/RuiTablePagination.vue.js +0 -11
- package/dist/components/tables/RuiTablePagination.vue.js.map +0 -1
- package/dist/components/tables/RuiTablePagination.vue2.js +0 -204
- package/dist/components/tables/RuiTablePagination.vue2.js.map +0 -1
- package/dist/components/tables/RuiTablePagination.vue3.js +0 -28
- package/dist/components/tables/RuiTablePagination.vue3.js.map +0 -1
- package/dist/components/tables/table_no_data_placeholder.svg.js +0 -5
- package/dist/components/tables/table_no_data_placeholder.svg.js.map +0 -1
- package/dist/components/tables/table_no_data_placeholder_dark.svg.js +0 -5
- package/dist/components/tables/table_no_data_placeholder_dark.svg.js.map +0 -1
- package/dist/components/tabs/tab/RuiTab.vue.js +0 -11
- package/dist/components/tabs/tab/RuiTab.vue.js.map +0 -1
- package/dist/components/tabs/tab/RuiTab.vue2.js +0 -167
- package/dist/components/tabs/tab/RuiTab.vue2.js.map +0 -1
- package/dist/components/tabs/tab/RuiTab.vue3.js +0 -17
- package/dist/components/tabs/tab/RuiTab.vue3.js.map +0 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue.js +0 -11
- package/dist/components/tabs/tab-item/RuiTabItem.vue.js.map +0 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +0 -52
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +0 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue3.js +0 -9
- package/dist/components/tabs/tab-item/RuiTabItem.vue3.js.map +0 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue.js +0 -11
- package/dist/components/tabs/tab-items/RuiTabItems.vue.js.map +0 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +0 -90
- package/dist/components/tabs/tab-items/RuiTabItems.vue2.js.map +0 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue3.js +0 -9
- package/dist/components/tabs/tab-items/RuiTabItems.vue3.js.map +0 -1
- package/dist/components/tabs/tabs/RuiTabs.vue.js +0 -11
- package/dist/components/tabs/tabs/RuiTabs.vue.js.map +0 -1
- package/dist/components/tabs/tabs/RuiTabs.vue2.js +0 -288
- package/dist/components/tabs/tabs/RuiTabs.vue2.js.map +0 -1
- package/dist/components/tabs/tabs/RuiTabs.vue3.js +0 -20
- package/dist/components/tabs/tabs/RuiTabs.vue3.js.map +0 -1
- package/dist/components/time-picker/RuiTimePicker.vue.js +0 -11
- package/dist/components/time-picker/RuiTimePicker.vue.js.map +0 -1
- package/dist/components/time-picker/RuiTimePicker.vue2.js +0 -463
- package/dist/components/time-picker/RuiTimePicker.vue2.js.map +0 -1
- package/dist/components/time-picker/RuiTimePicker.vue3.js +0 -21
- package/dist/components/time-picker/RuiTimePicker.vue3.js.map +0 -1
- package/dist/composables/forms/use-label-with-quote.js +0 -14
- package/dist/composables/forms/use-label-with-quote.js.map +0 -1
- package/dist/composables/index.js.map +0 -1
|
@@ -1,119 +1,102 @@
|
|
|
1
|
-
import { isRow } from "./types.js";
|
|
2
1
|
import { assert } from "../../../utils/assert.js";
|
|
3
|
-
import {
|
|
2
|
+
import { isRow } from "./types.js";
|
|
3
|
+
import { computed, ref, shallowRef, watch } from "vue";
|
|
4
4
|
import { get, set } from "@vueuse/shared";
|
|
5
|
+
//#region src/composables/tables/data-table/pagination.ts
|
|
5
6
|
function useTablePagination(options, deps) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
watch(paginationData, (paginationState) => {
|
|
98
|
-
const { total, limit, page } = paginationState;
|
|
99
|
-
const maxPages = Math.ceil(total / limit);
|
|
100
|
-
if (maxPages > 0 && page > maxPages) {
|
|
101
|
-
set(paginationData, {
|
|
102
|
-
...paginationState,
|
|
103
|
-
page: maxPages
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
return {
|
|
108
|
-
paginationData,
|
|
109
|
-
filtered,
|
|
110
|
-
itemsLength,
|
|
111
|
-
globalItemsPerPageSettings,
|
|
112
|
-
setInternalTotal,
|
|
113
|
-
resetPagination
|
|
114
|
-
};
|
|
7
|
+
const { itemsPerPage, paginationModifiersExternal, globalItemsPerPage } = options;
|
|
8
|
+
const { pagination, grouped, isHiddenRow, sort, emitUpdateOptions, tableDefaults } = deps;
|
|
9
|
+
const itemsLength = shallowRef(0);
|
|
10
|
+
const internalPaginationState = ref();
|
|
11
|
+
const globalItemsPerPageSettings = computed(() => {
|
|
12
|
+
if (globalItemsPerPage !== void 0) return globalItemsPerPage;
|
|
13
|
+
return get(tableDefaults.globalItemsPerPage);
|
|
14
|
+
});
|
|
15
|
+
const paginationData = computed({
|
|
16
|
+
get() {
|
|
17
|
+
const paginated = get(internalPaginationState);
|
|
18
|
+
if (!paginated) return {
|
|
19
|
+
total: get(itemsLength),
|
|
20
|
+
limit: itemsPerPage,
|
|
21
|
+
page: 1
|
|
22
|
+
};
|
|
23
|
+
if (paginationModifiersExternal) return paginated;
|
|
24
|
+
return {
|
|
25
|
+
total: get(itemsLength),
|
|
26
|
+
limit: paginated.limit,
|
|
27
|
+
page: paginated.page,
|
|
28
|
+
limits: paginated.limits
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
set(value) {
|
|
32
|
+
set(internalPaginationState, value);
|
|
33
|
+
set(pagination, value);
|
|
34
|
+
emitUpdateOptions({
|
|
35
|
+
pagination: value,
|
|
36
|
+
sort: get(sort)
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const filtered = computed(() => {
|
|
41
|
+
const result = get(grouped);
|
|
42
|
+
const paginated = get(paginationData);
|
|
43
|
+
const limit = paginated.limit;
|
|
44
|
+
if (!paginationModifiersExternal) {
|
|
45
|
+
const start = (paginated.page - 1) * limit;
|
|
46
|
+
const end = start + limit;
|
|
47
|
+
const preGroups = result.slice(0, start + 1).filter((item) => !isRow(item));
|
|
48
|
+
const postGroups = result.slice(start + 1, end + preGroups.length).filter((item) => !isRow(item));
|
|
49
|
+
const data = result.slice(start + preGroups.length, end + preGroups.length + postGroups.length);
|
|
50
|
+
const nearestGroup = preGroups.at(-1);
|
|
51
|
+
if (data.length > 0) {
|
|
52
|
+
const firstItem = data[0];
|
|
53
|
+
assert(firstItem);
|
|
54
|
+
if (isRow(firstItem) && nearestGroup) data.unshift(nearestGroup);
|
|
55
|
+
const lastItem = data.at(-1);
|
|
56
|
+
if (lastItem && !isRow(lastItem)) data.pop();
|
|
57
|
+
}
|
|
58
|
+
return data.filter((row) => !isHiddenRow(row));
|
|
59
|
+
}
|
|
60
|
+
return result.filter((row) => !isHiddenRow(row));
|
|
61
|
+
});
|
|
62
|
+
function setInternalTotal(items) {
|
|
63
|
+
if (!paginationModifiersExternal) set(itemsLength, items.filter(isRow).length);
|
|
64
|
+
}
|
|
65
|
+
function resetPagination() {
|
|
66
|
+
set(paginationData, {
|
|
67
|
+
...get(paginationData),
|
|
68
|
+
page: 1
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
watch(pagination, (val) => set(internalPaginationState, val), { immediate: true });
|
|
72
|
+
watch(internalPaginationState, (paginationState) => {
|
|
73
|
+
if (paginationState?.limit && get(globalItemsPerPageSettings)) set(tableDefaults.itemsPerPage, paginationState.limit);
|
|
74
|
+
});
|
|
75
|
+
watch(tableDefaults.itemsPerPage, (perPage) => {
|
|
76
|
+
if (!get(globalItemsPerPageSettings)) return;
|
|
77
|
+
set(paginationData, {
|
|
78
|
+
...get(paginationData),
|
|
79
|
+
limit: perPage
|
|
80
|
+
});
|
|
81
|
+
}, { immediate: true });
|
|
82
|
+
watch(paginationData, (paginationState) => {
|
|
83
|
+
const { total, limit, page } = paginationState;
|
|
84
|
+
const maxPages = Math.ceil(total / limit);
|
|
85
|
+
if (maxPages > 0 && page > maxPages) set(paginationData, {
|
|
86
|
+
...paginationState,
|
|
87
|
+
page: maxPages
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
paginationData,
|
|
92
|
+
filtered,
|
|
93
|
+
itemsLength,
|
|
94
|
+
globalItemsPerPageSettings,
|
|
95
|
+
setInternalTotal,
|
|
96
|
+
resetPagination
|
|
97
|
+
};
|
|
115
98
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
//# sourceMappingURL=pagination.js.map
|
|
99
|
+
//#endregion
|
|
100
|
+
export { useTablePagination };
|
|
101
|
+
|
|
102
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sources":["../../../../src/composables/tables/data-table/pagination.ts"],"sourcesContent":["import type { ComputedRef, Ref } from 'vue';\nimport type { TableSortData } from '@/components/tables/RuiTableHead.vue';\nimport type { TablePaginationData } from '@/components/tables/RuiTablePagination.vue';\nimport type { TableOptions as TableDefaultOptions } from '@/composables/defaults/table';\nimport { type GroupedTableRow, isRow } from '@/composables/tables/data-table/types';\nimport { assert } from '@/utils/assert';\n\nexport interface UseTablePaginationOptions {\n /** The default number of items displayed per page. */\n itemsPerPage: number;\n /** Whether pagination is managed externally (e.g. server-side). */\n paginationModifiersExternal: boolean | undefined;\n /** Whether to share the items-per-page setting across all tables. */\n globalItemsPerPage: boolean | undefined;\n}\n\nexport interface UseTablePaginationDeps<T extends object> {\n pagination: Ref<TablePaginationData | undefined>;\n grouped: ComputedRef<GroupedTableRow<T>[]>;\n isHiddenRow: (row: GroupedTableRow<T>) => boolean;\n sort: Ref<TableSortData<T>>;\n emitUpdateOptions: (options: {\n sort?: TableSortData<T>;\n pagination?: TablePaginationData;\n }) => void;\n tableDefaults: TableDefaultOptions;\n}\n\nexport interface UseTablePaginationReturn<T extends object> {\n paginationData: Ref<TablePaginationData>;\n filtered: ComputedRef<GroupedTableRow<T>[]>;\n itemsLength: Ref<number>;\n globalItemsPerPageSettings: ComputedRef<boolean>;\n setInternalTotal: (items: GroupedTableRow<T>[]) => void;\n resetPagination: () => void;\n}\n\nexport function useTablePagination<T extends object>(\n options: UseTablePaginationOptions,\n deps: UseTablePaginationDeps<T>,\n): UseTablePaginationReturn<T> {\n const { itemsPerPage, paginationModifiersExternal, globalItemsPerPage } = options;\n const { pagination, grouped, isHiddenRow, sort, emitUpdateOptions, tableDefaults } = deps;\n\n const itemsLength = shallowRef<number>(0);\n const internalPaginationState: Ref<TablePaginationData | undefined> = ref();\n\n const globalItemsPerPageSettings = computed<boolean>(() => {\n if (globalItemsPerPage !== undefined)\n return globalItemsPerPage;\n\n return get(tableDefaults.globalItemsPerPage);\n });\n\n const paginationData: Ref<TablePaginationData> = computed({\n get(): TablePaginationData {\n const paginated = get(internalPaginationState);\n if (!paginated) {\n return {\n total: get(itemsLength),\n limit: itemsPerPage,\n page: 1,\n };\n }\n\n if (paginationModifiersExternal)\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 set(pagination, value);\n emitUpdateOptions({\n pagination: value,\n sort: get(sort),\n });\n },\n });\n\n const filtered = computed<GroupedTableRow<T>[]>(() => {\n const result = get(grouped);\n\n const paginated = get(paginationData);\n const limit = paginated.limit;\n if (!paginationModifiersExternal) {\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\n .slice(start + 1, end + preGroups.length)\n .filter(item => !isRow(item));\n const data = result.slice(\n start + preGroups.length,\n end + preGroups.length + postGroups.length,\n );\n const nearestGroup = preGroups.at(-1);\n if (data.length > 0) {\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 (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 function setInternalTotal(items: GroupedTableRow<T>[]): void {\n if (!paginationModifiersExternal)\n set(itemsLength, items.filter(isRow).length);\n }\n\n function resetPagination(): void {\n set(paginationData, {\n ...get(paginationData),\n page: 1,\n });\n }\n\n // Sync external pagination model to internal state\n watch(pagination, val => set(internalPaginationState, val), { immediate: true });\n\n // Sync pagination limit to global table defaults\n watch(internalPaginationState, (paginationState) => {\n if (paginationState?.limit && get(globalItemsPerPageSettings))\n set(tableDefaults.itemsPerPage, paginationState.limit);\n });\n\n // Sync global table defaults to pagination limit\n watch(\n tableDefaults.itemsPerPage,\n (perPage) => {\n if (!get(globalItemsPerPageSettings))\n return;\n\n set(paginationData, {\n ...get(paginationData),\n limit: perPage,\n });\n },\n { immediate: true },\n );\n\n // Auto-adjust page when current page exceeds max available pages\n watch(paginationData, (paginationState) => {\n const { total, limit, page } = paginationState;\n const maxPages = Math.ceil(total / limit);\n\n if (maxPages > 0 && page > maxPages) {\n set(paginationData, {\n ...paginationState,\n page: maxPages,\n });\n }\n });\n\n return {\n paginationData,\n filtered,\n itemsLength,\n globalItemsPerPageSettings,\n setInternalTotal,\n resetPagination,\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"pagination.js","names":[],"sources":["../../../../src/composables/tables/data-table/pagination.ts"],"sourcesContent":["import type { ComputedRef, Ref } from 'vue';\nimport type { TableSortData } from '@/components/tables/RuiTableHead.vue';\nimport type { TablePaginationData } from '@/components/tables/RuiTablePagination.vue';\nimport type { TableOptions as TableDefaultOptions } from '@/composables/defaults/table';\nimport { type GroupedTableRow, isRow } from '@/composables/tables/data-table/types';\nimport { assert } from '@/utils/assert';\n\nexport interface UseTablePaginationOptions {\n /** The default number of items displayed per page. */\n itemsPerPage: number;\n /** Whether pagination is managed externally (e.g. server-side). */\n paginationModifiersExternal: boolean | undefined;\n /** Whether to share the items-per-page setting across all tables. */\n globalItemsPerPage: boolean | undefined;\n}\n\nexport interface UseTablePaginationDeps<T extends object> {\n pagination: Ref<TablePaginationData | undefined>;\n grouped: ComputedRef<GroupedTableRow<T>[]>;\n isHiddenRow: (row: GroupedTableRow<T>) => boolean;\n sort: Ref<TableSortData<T>>;\n emitUpdateOptions: (options: {\n sort?: TableSortData<T>;\n pagination?: TablePaginationData;\n }) => void;\n tableDefaults: TableDefaultOptions;\n}\n\nexport interface UseTablePaginationReturn<T extends object> {\n paginationData: Ref<TablePaginationData>;\n filtered: ComputedRef<GroupedTableRow<T>[]>;\n itemsLength: Ref<number>;\n globalItemsPerPageSettings: ComputedRef<boolean>;\n setInternalTotal: (items: GroupedTableRow<T>[]) => void;\n resetPagination: () => void;\n}\n\nexport function useTablePagination<T extends object>(\n options: UseTablePaginationOptions,\n deps: UseTablePaginationDeps<T>,\n): UseTablePaginationReturn<T> {\n const { itemsPerPage, paginationModifiersExternal, globalItemsPerPage } = options;\n const { pagination, grouped, isHiddenRow, sort, emitUpdateOptions, tableDefaults } = deps;\n\n const itemsLength = shallowRef<number>(0);\n const internalPaginationState: Ref<TablePaginationData | undefined> = ref();\n\n const globalItemsPerPageSettings = computed<boolean>(() => {\n if (globalItemsPerPage !== undefined)\n return globalItemsPerPage;\n\n return get(tableDefaults.globalItemsPerPage);\n });\n\n const paginationData: Ref<TablePaginationData> = computed({\n get(): TablePaginationData {\n const paginated = get(internalPaginationState);\n if (!paginated) {\n return {\n total: get(itemsLength),\n limit: itemsPerPage,\n page: 1,\n };\n }\n\n if (paginationModifiersExternal)\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 set(pagination, value);\n emitUpdateOptions({\n pagination: value,\n sort: get(sort),\n });\n },\n });\n\n const filtered = computed<GroupedTableRow<T>[]>(() => {\n const result = get(grouped);\n\n const paginated = get(paginationData);\n const limit = paginated.limit;\n if (!paginationModifiersExternal) {\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\n .slice(start + 1, end + preGroups.length)\n .filter(item => !isRow(item));\n const data = result.slice(\n start + preGroups.length,\n end + preGroups.length + postGroups.length,\n );\n const nearestGroup = preGroups.at(-1);\n if (data.length > 0) {\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 (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 function setInternalTotal(items: GroupedTableRow<T>[]): void {\n if (!paginationModifiersExternal)\n set(itemsLength, items.filter(isRow).length);\n }\n\n function resetPagination(): void {\n set(paginationData, {\n ...get(paginationData),\n page: 1,\n });\n }\n\n // Sync external pagination model to internal state\n watch(pagination, val => set(internalPaginationState, val), { immediate: true });\n\n // Sync pagination limit to global table defaults\n watch(internalPaginationState, (paginationState) => {\n if (paginationState?.limit && get(globalItemsPerPageSettings))\n set(tableDefaults.itemsPerPage, paginationState.limit);\n });\n\n // Sync global table defaults to pagination limit\n watch(\n tableDefaults.itemsPerPage,\n (perPage) => {\n if (!get(globalItemsPerPageSettings))\n return;\n\n set(paginationData, {\n ...get(paginationData),\n limit: perPage,\n });\n },\n { immediate: true },\n );\n\n // Auto-adjust page when current page exceeds max available pages\n watch(paginationData, (paginationState) => {\n const { total, limit, page } = paginationState;\n const maxPages = Math.ceil(total / limit);\n\n if (maxPages > 0 && page > maxPages) {\n set(paginationData, {\n ...paginationState,\n page: maxPages,\n });\n }\n });\n\n return {\n paginationData,\n filtered,\n itemsLength,\n globalItemsPerPageSettings,\n setInternalTotal,\n resetPagination,\n };\n}\n"],"mappings":";;;;;AAqCA,SAAgB,mBACd,SACA,MAC6B;CAC7B,MAAM,EAAE,cAAc,6BAA6B,uBAAuB;CAC1E,MAAM,EAAE,YAAY,SAAS,aAAa,MAAM,mBAAmB,kBAAkB;CAErF,MAAM,cAAc,WAAmB,EAAE;CACzC,MAAM,0BAAgE,KAAK;CAE3E,MAAM,6BAA6B,eAAwB;AACzD,MAAI,uBAAuB,KAAA,EACzB,QAAO;AAET,SAAO,IAAI,cAAc,mBAAmB;GAC5C;CAEF,MAAM,iBAA2C,SAAS;EACxD,MAA2B;GACzB,MAAM,YAAY,IAAI,wBAAwB;AAC9C,OAAI,CAAC,UACH,QAAO;IACL,OAAO,IAAI,YAAY;IACvB,OAAO;IACP,MAAM;IACP;AAGH,OAAI,4BACF,QAAO;AAET,UAAO;IACL,OAAO,IAAI,YAAY;IACvB,OAAO,UAAU;IACjB,MAAM,UAAU;IAChB,QAAQ,UAAU;IACnB;;EAEH,IAAI,OAA4B;AAC9B,OAAI,yBAAyB,MAAM;AACnC,OAAI,YAAY,MAAM;AACtB,qBAAkB;IAChB,YAAY;IACZ,MAAM,IAAI,KAAA;IACX,CAAC;;EAEL,CAAC;CAEF,MAAM,WAAW,eAAqC;EACpD,MAAM,SAAS,IAAI,QAAQ;EAE3B,MAAM,YAAY,IAAI,eAAe;EACrC,MAAM,QAAQ,UAAU;AACxB,MAAI,CAAC,6BAA6B;GAChC,MAAM,SAAS,UAAU,OAAO,KAAK;GACrC,MAAM,MAAM,QAAQ;GACpB,MAAM,YAAY,OAAO,MAAM,GAAG,QAAQ,EAAE,CAAC,QAAO,SAAQ,CAAC,MAAM,KAAK,CAAC;GACzE,MAAM,aAAa,OAChB,MAAM,QAAQ,GAAG,MAAM,UAAU,OAAO,CACxC,QAAO,SAAQ,CAAC,MAAM,KAAK,CAAC;GAC/B,MAAM,OAAO,OAAO,MAClB,QAAQ,UAAU,QAClB,MAAM,UAAU,SAAS,WAAW,OACrC;GACD,MAAM,eAAe,UAAU,GAAG,GAAG;AACrC,OAAI,KAAK,SAAS,GAAG;IACnB,MAAM,YAAY,KAAK;AACvB,WAAO,UAAU;AACjB,QAAI,MAAM,UAAU,IAAI,aACtB,MAAK,QAAQ,aAAa;IAC5B,MAAM,WAAW,KAAK,GAAG,GAAG;AAC5B,QAAI,YAAY,CAAC,MAAM,SAAS,CAC9B,MAAK,KAAK;;AAGd,UAAO,KAAK,QAAO,QAAO,CAAC,YAAY,IAAI,CAAC;;AAG9C,SAAO,OAAO,QAAO,QAAO,CAAC,YAAY,IAAI,CAAC;GAC9C;CAEF,SAAS,iBAAiB,OAAmC;AAC3D,MAAI,CAAC,4BACH,KAAI,aAAa,MAAM,OAAO,MAAM,CAAC,OAAO;;CAGhD,SAAS,kBAAwB;AAC/B,MAAI,gBAAgB;GAClB,GAAG,IAAI,eAAe;GACtB,MAAM;GACP,CAAC;;AAIJ,OAAM,aAAY,QAAO,IAAI,yBAAyB,IAAI,EAAE,EAAE,WAAW,MAAM,CAAC;AAGhF,OAAM,0BAA0B,oBAAoB;AAClD,MAAI,iBAAiB,SAAS,IAAI,2BAA2B,CAC3D,KAAI,cAAc,cAAc,gBAAgB,MAAM;GACxD;AAGF,OACE,cAAc,eACb,YAAY;AACX,MAAI,CAAC,IAAI,2BAA2B,CAClC;AAEF,MAAI,gBAAgB;GAClB,GAAG,IAAI,eAAe;GACtB,OAAO;GACR,CAAC;IAEJ,EAAE,WAAW,MAAM,CACpB;AAGD,OAAM,iBAAiB,oBAAoB;EACzC,MAAM,EAAE,OAAO,OAAO,SAAS;EAC/B,MAAM,WAAW,KAAK,KAAK,QAAQ,MAAM;AAEzC,MAAI,WAAW,KAAK,OAAO,SACzB,KAAI,gBAAgB;GAClB,GAAG;GACH,MAAM;GACP,CAAC;GAEJ;AAEF,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD"}
|
|
@@ -1,164 +1,128 @@
|
|
|
1
|
-
import { isRow } from "./types.js";
|
|
2
|
-
import { useTimeoutManager } from "../../timeout-manager.js";
|
|
3
1
|
import { assert } from "../../../utils/assert.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { useTimeoutManager } from "../../timeout-manager.js";
|
|
3
|
+
import { isRow } from "./types.js";
|
|
4
|
+
import { computed, ref, shallowRef, toValue, watch } from "vue";
|
|
6
5
|
import { isDefined } from "@vueuse/core";
|
|
6
|
+
import { get as get$1, set as set$1 } from "@vueuse/shared";
|
|
7
|
+
//#region src/composables/tables/data-table/selection.ts
|
|
7
8
|
function useTableSelection(options, deps) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
assert(currSelectedData);
|
|
124
|
-
if (isRow(currSelectedData) && !isDisabledRow(currSelectedData[rowAttr]))
|
|
125
|
-
onSelect(valueToApply, currSelectedData[rowAttr]);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
set(lastSelectedIndex, index);
|
|
129
|
-
set(selectedData, get(internalSelectedData));
|
|
130
|
-
}
|
|
131
|
-
}, 1);
|
|
132
|
-
} else {
|
|
133
|
-
set(lastSelectedIndex, index);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
function deselectRemovedRows() {
|
|
138
|
-
const currentSelected = get(selectedData);
|
|
139
|
-
if (!currentSelected)
|
|
140
|
-
return;
|
|
141
|
-
const visibleSet = new Set(get(visibleIdentifiers));
|
|
142
|
-
const remaining = currentSelected.filter((key) => visibleSet.has(key));
|
|
143
|
-
if (remaining.length !== currentSelected.length)
|
|
144
|
-
set(selectedData, remaining);
|
|
145
|
-
}
|
|
146
|
-
return {
|
|
147
|
-
visibleIdentifiers,
|
|
148
|
-
isAllSelected,
|
|
149
|
-
indeterminate,
|
|
150
|
-
isSelected,
|
|
151
|
-
isDisabledRow,
|
|
152
|
-
isSelectable,
|
|
153
|
-
mustSelect,
|
|
154
|
-
onToggleAll,
|
|
155
|
-
onSelect,
|
|
156
|
-
onCheckboxClick,
|
|
157
|
-
deselectRemovedRows,
|
|
158
|
-
resetCheckboxShiftState
|
|
159
|
-
};
|
|
9
|
+
const { rowAttr, multiPageSelect, disabledRows } = options;
|
|
10
|
+
const { selectedData, filtered } = deps;
|
|
11
|
+
const shiftClicked = shallowRef(false);
|
|
12
|
+
const lastSelectedIndex = shallowRef(-1);
|
|
13
|
+
const internalSelectedData = ref([]);
|
|
14
|
+
const { create: scheduleShiftSelect } = useTimeoutManager();
|
|
15
|
+
watch(selectedData, (val) => set$1(internalSelectedData, val), { immediate: true });
|
|
16
|
+
const visibleIdentifiers = computed(() => get$1(filtered).filter(isRow).map((row) => row[rowAttr]));
|
|
17
|
+
const selectedSet = computed(() => new Set(get$1(selectedData) ?? []));
|
|
18
|
+
const disabledRowKeySet = computed(() => {
|
|
19
|
+
const currentDisabledRows = toValue(disabledRows);
|
|
20
|
+
if (!currentDisabledRows || !rowAttr) return /* @__PURE__ */ new Set();
|
|
21
|
+
return new Set(currentDisabledRows.map((row) => row[rowAttr]));
|
|
22
|
+
});
|
|
23
|
+
const isAllSelected = computed(() => {
|
|
24
|
+
const selectedRows = get$1(selectedData);
|
|
25
|
+
if (!selectedRows || selectedRows.length === 0) return false;
|
|
26
|
+
const selected = get$1(selectedSet);
|
|
27
|
+
return get$1(visibleIdentifiers).every((id) => selected.has(id));
|
|
28
|
+
});
|
|
29
|
+
const indeterminate = computed(() => {
|
|
30
|
+
const selectedRows = get$1(selectedData);
|
|
31
|
+
if (!selectedRows) return false;
|
|
32
|
+
return selectedRows.length > 0 && !get$1(isAllSelected);
|
|
33
|
+
});
|
|
34
|
+
function isSelected(identifier) {
|
|
35
|
+
return get$1(selectedSet).has(identifier);
|
|
36
|
+
}
|
|
37
|
+
function isDisabledRow(rowKey) {
|
|
38
|
+
return get$1(disabledRowKeySet).has(rowKey);
|
|
39
|
+
}
|
|
40
|
+
function isSelectable(rowKey) {
|
|
41
|
+
return isSelected(rowKey) || !isDisabledRow(rowKey);
|
|
42
|
+
}
|
|
43
|
+
function mustSelect(rowKey) {
|
|
44
|
+
return isSelected(rowKey) && isDisabledRow(rowKey);
|
|
45
|
+
}
|
|
46
|
+
function resetCheckboxShiftState() {
|
|
47
|
+
set$1(shiftClicked, false);
|
|
48
|
+
set$1(lastSelectedIndex, -1);
|
|
49
|
+
}
|
|
50
|
+
function onToggleAll(checked) {
|
|
51
|
+
const selectedRows = get$1(selectedData);
|
|
52
|
+
if (!isDefined(selectedRows)) return;
|
|
53
|
+
if (!multiPageSelect) if (checked) set$1(selectedData, get$1(visibleIdentifiers).filter(isSelectable));
|
|
54
|
+
else set$1(selectedData, get$1(visibleIdentifiers).filter(mustSelect));
|
|
55
|
+
else if (checked) set$1(selectedData, Array.from(new Set([...selectedRows, ...get$1(visibleIdentifiers).filter(isSelectable)])));
|
|
56
|
+
else {
|
|
57
|
+
const visibleSet = new Set(get$1(visibleIdentifiers));
|
|
58
|
+
const mustSelectSet = new Set(get$1(visibleIdentifiers).filter(mustSelect));
|
|
59
|
+
set$1(selectedData, selectedRows.filter((rowKey) => !visibleSet.has(rowKey) || mustSelectSet.has(rowKey)));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function onSelect(checked, value, userAction = false) {
|
|
63
|
+
if (get$1(shiftClicked) && userAction) return;
|
|
64
|
+
const selectedRows = get$1(internalSelectedData);
|
|
65
|
+
if (!selectedRows) return;
|
|
66
|
+
const selected = isSelected(value);
|
|
67
|
+
if (checked && !selected) set$1(internalSelectedData, [...selectedRows, value]);
|
|
68
|
+
else if (!checked && selected) set$1(internalSelectedData, [...selectedRows].filter((r) => r !== value));
|
|
69
|
+
if (userAction) set$1(selectedData, get$1(internalSelectedData));
|
|
70
|
+
}
|
|
71
|
+
function onCheckboxClick(event, value, index) {
|
|
72
|
+
const currentTarget = event.currentTarget;
|
|
73
|
+
if (!(currentTarget instanceof HTMLElement)) return;
|
|
74
|
+
const input = currentTarget.querySelector("input");
|
|
75
|
+
const target = event.target;
|
|
76
|
+
const nodeName = target instanceof HTMLElement ? target.nodeName : void 0;
|
|
77
|
+
const shiftKey = event.shiftKey;
|
|
78
|
+
set$1(shiftClicked, shiftKey);
|
|
79
|
+
if (input && nodeName !== "INPUT") if (shiftKey) scheduleShiftSelect(() => {
|
|
80
|
+
let lastIndex = get$1(lastSelectedIndex);
|
|
81
|
+
if (lastIndex === -1) lastIndex = index;
|
|
82
|
+
const tableData = get$1(filtered);
|
|
83
|
+
const lastSelectedData = tableData[lastIndex];
|
|
84
|
+
assert(lastSelectedData);
|
|
85
|
+
if (isRow(lastSelectedData)) {
|
|
86
|
+
const valueToApply = isSelected(lastSelectedData[rowAttr]);
|
|
87
|
+
if (lastIndex === index) onSelect(!valueToApply, value);
|
|
88
|
+
else {
|
|
89
|
+
const from = Math.min(lastIndex, index);
|
|
90
|
+
const to = Math.max(lastIndex, index);
|
|
91
|
+
for (let i = from; i <= to; i++) {
|
|
92
|
+
const currSelectedData = tableData[i];
|
|
93
|
+
assert(currSelectedData);
|
|
94
|
+
if (isRow(currSelectedData) && !isDisabledRow(currSelectedData[rowAttr])) onSelect(valueToApply, currSelectedData[rowAttr]);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
set$1(lastSelectedIndex, index);
|
|
98
|
+
set$1(selectedData, get$1(internalSelectedData));
|
|
99
|
+
}
|
|
100
|
+
}, 1);
|
|
101
|
+
else set$1(lastSelectedIndex, index);
|
|
102
|
+
}
|
|
103
|
+
function deselectRemovedRows() {
|
|
104
|
+
const currentSelected = get$1(selectedData);
|
|
105
|
+
if (!currentSelected) return;
|
|
106
|
+
const visibleSet = new Set(get$1(visibleIdentifiers));
|
|
107
|
+
const remaining = currentSelected.filter((key) => visibleSet.has(key));
|
|
108
|
+
if (remaining.length !== currentSelected.length) set$1(selectedData, remaining);
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
visibleIdentifiers,
|
|
112
|
+
isAllSelected,
|
|
113
|
+
indeterminate,
|
|
114
|
+
isSelected,
|
|
115
|
+
isDisabledRow,
|
|
116
|
+
isSelectable,
|
|
117
|
+
mustSelect,
|
|
118
|
+
onToggleAll,
|
|
119
|
+
onSelect,
|
|
120
|
+
onCheckboxClick,
|
|
121
|
+
deselectRemovedRows,
|
|
122
|
+
resetCheckboxShiftState
|
|
123
|
+
};
|
|
160
124
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
//# sourceMappingURL=selection.js.map
|
|
125
|
+
//#endregion
|
|
126
|
+
export { useTableSelection };
|
|
127
|
+
|
|
128
|
+
//# sourceMappingURL=selection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","sources":["../../../../src/composables/tables/data-table/selection.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter, Ref } from 'vue';\nimport { type GroupedTableRow, isRow } from '@/composables/tables/data-table/types';\nimport { useTimeoutManager } from '@/composables/timeout-manager';\nimport { assert } from '@/utils/assert';\n\nexport interface UseTableSelectionOptions<T extends object, IdType extends keyof T> {\n /** The property on each row used as the unique row identifier. */\n rowAttr: IdType;\n /** Whether selection persists across pages. */\n multiPageSelect: boolean;\n /** Rows that cannot be selected or deselected by the user. */\n disabledRows: MaybeRefOrGetter<readonly T[] | undefined>;\n}\n\nexport interface UseTableSelectionDeps<T extends object, IdType extends keyof T> {\n selectedData: Ref<T[IdType][] | undefined>;\n filtered: ComputedRef<GroupedTableRow<T>[]>;\n}\n\nexport interface UseTableSelectionReturn<T extends object, IdType extends keyof T> {\n visibleIdentifiers: ComputedRef<T[IdType][]>;\n isAllSelected: ComputedRef<boolean>;\n indeterminate: ComputedRef<boolean>;\n isSelected: (identifier: T[IdType]) => boolean;\n isDisabledRow: (rowKey: T[IdType]) => boolean;\n isSelectable: (rowKey: T[IdType]) => boolean;\n mustSelect: (rowKey: T[IdType]) => boolean;\n onToggleAll: (checked: boolean) => void;\n onSelect: (checked: boolean, value: T[IdType], userAction?: boolean) => void;\n onCheckboxClick: (event: MouseEvent, value: T[IdType], index: number) => void;\n deselectRemovedRows: () => void;\n resetCheckboxShiftState: () => void;\n}\n\nexport function useTableSelection<T extends object, IdType extends keyof T>(\n options: UseTableSelectionOptions<T, IdType>,\n deps: UseTableSelectionDeps<T, IdType>,\n): UseTableSelectionReturn<T, IdType> {\n const { rowAttr, multiPageSelect, disabledRows } = options;\n const { selectedData, filtered } = deps;\n\n const shiftClicked: Ref<boolean> = shallowRef(false);\n const lastSelectedIndex: Ref<number> = shallowRef(-1);\n const internalSelectedData: Ref<T[IdType][]> = ref([]);\n const { create: scheduleShiftSelect } = useTimeoutManager();\n\n // Sync external selection model to internal state\n watch(selectedData, val => set(internalSelectedData, val), { immediate: true });\n\n const visibleIdentifiers = computed<T[IdType][]>(() =>\n get(filtered)\n .filter(isRow)\n .map(row => row[rowAttr]),\n );\n\n const selectedSet = computed<Set<T[IdType]>>(() => new Set(get(selectedData) ?? []));\n\n const disabledRowKeySet = computed<Set<T[IdType]>>(() => {\n const currentDisabledRows = toValue(disabledRows);\n if (!currentDisabledRows || !rowAttr)\n return new Set<T[IdType]>();\n return new Set<T[IdType]>(currentDisabledRows.map((row: T) => row[rowAttr]));\n });\n\n const isAllSelected = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows || selectedRows.length === 0)\n return false;\n\n const selected = get(selectedSet);\n return get(visibleIdentifiers).every(id => selected.has(id));\n });\n\n const indeterminate = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows)\n return false;\n\n return selectedRows.length > 0 && !get(isAllSelected);\n });\n\n function isSelected(identifier: T[IdType]): boolean {\n return get(selectedSet).has(identifier);\n }\n\n function isDisabledRow(rowKey: T[IdType]): boolean {\n return get(disabledRowKeySet).has(rowKey);\n }\n\n function isSelectable(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) || !isDisabledRow(rowKey);\n }\n\n function mustSelect(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) && isDisabledRow(rowKey);\n }\n\n function resetCheckboxShiftState(): void {\n set(shiftClicked, false);\n set(lastSelectedIndex, -1);\n }\n\n function onToggleAll(checked: boolean): void {\n const selectedRows = get(selectedData);\n\n if (!isDefined(selectedRows))\n return;\n\n if (!multiPageSelect) {\n if (checked)\n set(selectedData, get(visibleIdentifiers).filter(isSelectable));\n else set(selectedData, get(visibleIdentifiers).filter(mustSelect));\n }\n else {\n if (checked) {\n set(\n selectedData,\n Array.from(new Set([...selectedRows, ...get(visibleIdentifiers).filter(isSelectable)])),\n );\n }\n else {\n const visibleSet = new Set(get(visibleIdentifiers));\n const mustSelectSet = new Set(get(visibleIdentifiers).filter(mustSelect));\n set(\n selectedData,\n selectedRows.filter(rowKey => !visibleSet.has(rowKey) || mustSelectSet.has(rowKey)),\n );\n }\n }\n }\n\n function onSelect(checked: boolean, value: T[IdType], userAction: boolean = false): void {\n if (get(shiftClicked) && userAction)\n return;\n\n const selectedRows = get(internalSelectedData);\n if (!selectedRows)\n return;\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\n function onCheckboxClick(event: MouseEvent, value: T[IdType], index: number): void {\n const currentTarget = event.currentTarget;\n if (!(currentTarget instanceof HTMLElement))\n return;\n\n const input = currentTarget.querySelector('input');\n const target = event.target;\n const nodeName = target instanceof HTMLElement ? target.nodeName : undefined;\n\n const shiftKey = event.shiftKey;\n set(shiftClicked, shiftKey);\n\n if (input && nodeName !== 'INPUT') {\n if (shiftKey) {\n scheduleShiftSelect(() => {\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 valueToApply = isSelected(lastSelectedData[rowAttr]);\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[rowAttr]))\n onSelect(valueToApply, currSelectedData[rowAttr]);\n }\n }\n\n set(lastSelectedIndex, index);\n set(selectedData, get(internalSelectedData));\n }\n }, 1);\n }\n else {\n set(lastSelectedIndex, index);\n }\n }\n }\n\n function deselectRemovedRows(): void {\n const currentSelected = get(selectedData);\n if (!currentSelected)\n return;\n\n const visibleSet = new Set(get(visibleIdentifiers));\n const remaining = currentSelected.filter(key => visibleSet.has(key));\n\n if (remaining.length !== currentSelected.length)\n set(selectedData, remaining);\n }\n\n return {\n visibleIdentifiers,\n isAllSelected,\n indeterminate,\n isSelected,\n isDisabledRow,\n isSelectable,\n mustSelect,\n onToggleAll,\n onSelect,\n onCheckboxClick,\n deselectRemovedRows,\n resetCheckboxShiftState,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selection.js","names":[],"sources":["../../../../src/composables/tables/data-table/selection.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter, Ref } from 'vue';\nimport { type GroupedTableRow, isRow } from '@/composables/tables/data-table/types';\nimport { useTimeoutManager } from '@/composables/timeout-manager';\nimport { assert } from '@/utils/assert';\n\nexport interface UseTableSelectionOptions<T extends object, IdType extends keyof T> {\n /** The property on each row used as the unique row identifier. */\n rowAttr: IdType;\n /** Whether selection persists across pages. */\n multiPageSelect: boolean;\n /** Rows that cannot be selected or deselected by the user. */\n disabledRows: MaybeRefOrGetter<readonly T[] | undefined>;\n}\n\nexport interface UseTableSelectionDeps<T extends object, IdType extends keyof T> {\n selectedData: Ref<T[IdType][] | undefined>;\n filtered: ComputedRef<GroupedTableRow<T>[]>;\n}\n\nexport interface UseTableSelectionReturn<T extends object, IdType extends keyof T> {\n visibleIdentifiers: ComputedRef<T[IdType][]>;\n isAllSelected: ComputedRef<boolean>;\n indeterminate: ComputedRef<boolean>;\n isSelected: (identifier: T[IdType]) => boolean;\n isDisabledRow: (rowKey: T[IdType]) => boolean;\n isSelectable: (rowKey: T[IdType]) => boolean;\n mustSelect: (rowKey: T[IdType]) => boolean;\n onToggleAll: (checked: boolean) => void;\n onSelect: (checked: boolean, value: T[IdType], userAction?: boolean) => void;\n onCheckboxClick: (event: MouseEvent, value: T[IdType], index: number) => void;\n deselectRemovedRows: () => void;\n resetCheckboxShiftState: () => void;\n}\n\nexport function useTableSelection<T extends object, IdType extends keyof T>(\n options: UseTableSelectionOptions<T, IdType>,\n deps: UseTableSelectionDeps<T, IdType>,\n): UseTableSelectionReturn<T, IdType> {\n const { rowAttr, multiPageSelect, disabledRows } = options;\n const { selectedData, filtered } = deps;\n\n const shiftClicked: Ref<boolean> = shallowRef(false);\n const lastSelectedIndex: Ref<number> = shallowRef(-1);\n const internalSelectedData: Ref<T[IdType][]> = ref([]);\n const { create: scheduleShiftSelect } = useTimeoutManager();\n\n // Sync external selection model to internal state\n watch(selectedData, val => set(internalSelectedData, val), { immediate: true });\n\n const visibleIdentifiers = computed<T[IdType][]>(() =>\n get(filtered)\n .filter(isRow)\n .map(row => row[rowAttr]),\n );\n\n const selectedSet = computed<Set<T[IdType]>>(() => new Set(get(selectedData) ?? []));\n\n const disabledRowKeySet = computed<Set<T[IdType]>>(() => {\n const currentDisabledRows = toValue(disabledRows);\n if (!currentDisabledRows || !rowAttr)\n return new Set<T[IdType]>();\n return new Set<T[IdType]>(currentDisabledRows.map((row: T) => row[rowAttr]));\n });\n\n const isAllSelected = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows || selectedRows.length === 0)\n return false;\n\n const selected = get(selectedSet);\n return get(visibleIdentifiers).every(id => selected.has(id));\n });\n\n const indeterminate = computed<boolean>(() => {\n const selectedRows = get(selectedData);\n if (!selectedRows)\n return false;\n\n return selectedRows.length > 0 && !get(isAllSelected);\n });\n\n function isSelected(identifier: T[IdType]): boolean {\n return get(selectedSet).has(identifier);\n }\n\n function isDisabledRow(rowKey: T[IdType]): boolean {\n return get(disabledRowKeySet).has(rowKey);\n }\n\n function isSelectable(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) || !isDisabledRow(rowKey);\n }\n\n function mustSelect(rowKey: T[IdType]): boolean {\n return isSelected(rowKey) && isDisabledRow(rowKey);\n }\n\n function resetCheckboxShiftState(): void {\n set(shiftClicked, false);\n set(lastSelectedIndex, -1);\n }\n\n function onToggleAll(checked: boolean): void {\n const selectedRows = get(selectedData);\n\n if (!isDefined(selectedRows))\n return;\n\n if (!multiPageSelect) {\n if (checked)\n set(selectedData, get(visibleIdentifiers).filter(isSelectable));\n else set(selectedData, get(visibleIdentifiers).filter(mustSelect));\n }\n else {\n if (checked) {\n set(\n selectedData,\n Array.from(new Set([...selectedRows, ...get(visibleIdentifiers).filter(isSelectable)])),\n );\n }\n else {\n const visibleSet = new Set(get(visibleIdentifiers));\n const mustSelectSet = new Set(get(visibleIdentifiers).filter(mustSelect));\n set(\n selectedData,\n selectedRows.filter(rowKey => !visibleSet.has(rowKey) || mustSelectSet.has(rowKey)),\n );\n }\n }\n }\n\n function onSelect(checked: boolean, value: T[IdType], userAction: boolean = false): void {\n if (get(shiftClicked) && userAction)\n return;\n\n const selectedRows = get(internalSelectedData);\n if (!selectedRows)\n return;\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\n function onCheckboxClick(event: MouseEvent, value: T[IdType], index: number): void {\n const currentTarget = event.currentTarget;\n if (!(currentTarget instanceof HTMLElement))\n return;\n\n const input = currentTarget.querySelector('input');\n const target = event.target;\n const nodeName = target instanceof HTMLElement ? target.nodeName : undefined;\n\n const shiftKey = event.shiftKey;\n set(shiftClicked, shiftKey);\n\n if (input && nodeName !== 'INPUT') {\n if (shiftKey) {\n scheduleShiftSelect(() => {\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 valueToApply = isSelected(lastSelectedData[rowAttr]);\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[rowAttr]))\n onSelect(valueToApply, currSelectedData[rowAttr]);\n }\n }\n\n set(lastSelectedIndex, index);\n set(selectedData, get(internalSelectedData));\n }\n }, 1);\n }\n else {\n set(lastSelectedIndex, index);\n }\n }\n }\n\n function deselectRemovedRows(): void {\n const currentSelected = get(selectedData);\n if (!currentSelected)\n return;\n\n const visibleSet = new Set(get(visibleIdentifiers));\n const remaining = currentSelected.filter(key => visibleSet.has(key));\n\n if (remaining.length !== currentSelected.length)\n set(selectedData, remaining);\n }\n\n return {\n visibleIdentifiers,\n isAllSelected,\n indeterminate,\n isSelected,\n isDisabledRow,\n isSelectable,\n mustSelect,\n onToggleAll,\n onSelect,\n onCheckboxClick,\n deselectRemovedRows,\n resetCheckboxShiftState,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComputedRef, MaybeRefOrGetter, Ref } from 'vue';
|
|
2
|
-
import type { SortColumn, TableRowKey, TableSortData } from '../../../components/tables/RuiTableHead.vue
|
|
3
|
-
import type { TablePaginationData } from '../../../components/tables/RuiTablePagination.vue
|
|
2
|
+
import type { SortColumn, TableRowKey, TableSortData } from '../../../components/tables/RuiTableHead.vue';
|
|
3
|
+
import type { TablePaginationData } from '../../../components/tables/RuiTablePagination.vue';
|
|
4
4
|
export interface UseTableSortOptions<T extends object> {
|
|
5
5
|
/** The data rows to sort. */
|
|
6
6
|
rows: MaybeRefOrGetter<readonly T[]>;
|