@cube-dev/ui-kit 0.190.2 → 0.190.4
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/CHANGELOG.md +22 -0
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +6 -3
- package/dist/components/actions/use-action.js.map +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.d.ts +5 -1
- package/dist/components/content/HotKeys/HotKeys.js +40 -34
- package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +391 -338
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.d.ts +1 -0
- package/dist/components/content/Skeleton/Skeleton.js +5 -3
- package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.d.ts +14 -14
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +8 -7
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/index.d.ts +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/types.d.ts +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +439 -352
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +97 -0
- package/dist/components/data/ItemTable/use-item-table-column-widths.js.map +1 -0
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +144 -0
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js.map +1 -0
- package/dist/components/data/ItemTable/use-item-table-pagination.js +143 -0
- package/dist/components/data/ItemTable/use-item-table-pagination.js.map +1 -0
- package/dist/components/data/ItemTable/use-item-table-selection.js +141 -0
- package/dist/components/data/ItemTable/use-item-table-selection.js.map +1 -0
- package/dist/components/data/ItemTable/use-item-table-sort.js +135 -0
- package/dist/components/data/ItemTable/use-item-table-sort.js.map +1 -0
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +107 -0
- package/dist/components/data/ItemTable/use-item-table-tree-model.js.map +1 -0
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableView.js +96 -297
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +142 -0
- package/dist/components/data/TableBase/TreeGridTable.js.map +1 -0
- package/dist/components/data/TableBase/column-header.js +94 -0
- package/dist/components/data/TableBase/column-header.js.map +1 -0
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +3 -2
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +166 -0
- package/dist/components/data/TableBase/use-column-menu.js.map +1 -0
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +2 -2
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +2 -2
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +2 -2
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +768 -723
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +122 -0
- package/dist/components/fields/TagInput/useActiveOption.js.map +1 -0
- package/dist/components/fields/TagInput/useTagError.js +95 -0
- package/dist/components/fields/TagInput/useTagError.js.map +1 -0
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Board/Board.js +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/WidgetHost.js +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-store.js +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.js +1 -1
- package/dist/components/layout/Board/use-board-registry.js +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/escapePropagation.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +2 -2
- package/docs/components/actions/Link.md +2 -0
- package/docs/components/content/HotKeys.md +14 -2
- package/docs/components/content/Skeleton.md +9 -0
- package/docs/components/content/Tree.md +4 -2
- package/package.json +3 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
|
|
2
|
+
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
|
+
import { clampPage, getPageInfo } from "../../navigation/Pagination/use-pagination.js";
|
|
4
|
+
import { reindexTableTree } from "../TableBase/table-tree.js";
|
|
5
|
+
import { c } from "react-compiler-runtime";
|
|
6
|
+
import { useControlledState } from "@react-stately/utils";
|
|
7
|
+
|
|
8
|
+
//#region src/components/data/ItemTable/use-item-table-pagination.ts
|
|
9
|
+
/**
|
|
10
|
+
* The table's pagination: page and page size, the latter persisted when the
|
|
11
|
+
* table owns it, the current page's rows (flat) or roots (tree), and the props
|
|
12
|
+
* of the footer's page control while it has anything to do.
|
|
13
|
+
*/
|
|
14
|
+
function useItemTablePagination(t0) {
|
|
15
|
+
const $ = c(45);
|
|
16
|
+
const { mode, rows, treeRoots, isTree, pageSize: pageSizeProp, defaultPageSize, onPageSizeChange, pageSizeOptions, page: pageProp, defaultPage, onPageChange, total: totalProp, totalPages, hasNextPage, summary, autoHide, storage } = t0;
|
|
17
|
+
const [pageSize, setPageSizeState] = useControlledState(pageSizeProp, pageSizeProp === void 0 && storage.has("pageSize") ? storage.initial.pageSize ?? defaultPageSize : defaultPageSize, onPageSizeChange);
|
|
18
|
+
const [page, setPageState] = useControlledState(pageProp, defaultPage ?? 1, onPageChange);
|
|
19
|
+
const isInfinite = mode === "infinite";
|
|
20
|
+
const isPaginated = mode !== "off" && !isInfinite;
|
|
21
|
+
const isServerPaginated = mode === "server";
|
|
22
|
+
const total = isServerPaginated ? totalProp ?? 0 : isTree ? treeRoots.length : rows.length;
|
|
23
|
+
const t1 = isServerPaginated ? totalPages : void 0;
|
|
24
|
+
let t2;
|
|
25
|
+
if ($[0] !== page || $[1] !== pageSize || $[2] !== t1 || $[3] !== total) {
|
|
26
|
+
t2 = getPageInfo({
|
|
27
|
+
page,
|
|
28
|
+
pageSize,
|
|
29
|
+
total,
|
|
30
|
+
totalPages: t1
|
|
31
|
+
});
|
|
32
|
+
$[0] = page;
|
|
33
|
+
$[1] = pageSize;
|
|
34
|
+
$[2] = t1;
|
|
35
|
+
$[3] = total;
|
|
36
|
+
$[4] = t2;
|
|
37
|
+
} else t2 = $[4];
|
|
38
|
+
const pageInfo = t2;
|
|
39
|
+
let t3;
|
|
40
|
+
if ($[5] !== pageInfo.totalPages || $[6] !== setPageState) {
|
|
41
|
+
t3 = (next) => setPageState(clampPage(next, pageInfo.totalPages));
|
|
42
|
+
$[5] = pageInfo.totalPages;
|
|
43
|
+
$[6] = setPageState;
|
|
44
|
+
$[7] = t3;
|
|
45
|
+
} else t3 = $[7];
|
|
46
|
+
const setPage = useEvent(t3);
|
|
47
|
+
let t4;
|
|
48
|
+
if ($[8] !== pageSizeProp || $[9] !== setPageSizeState || $[10] !== setPageState || $[11] !== storage) {
|
|
49
|
+
t4 = (next_0) => {
|
|
50
|
+
setPageSizeState(next_0);
|
|
51
|
+
if (pageSizeProp === void 0) storage.write({ pageSize: next_0 });
|
|
52
|
+
setPageState(1);
|
|
53
|
+
};
|
|
54
|
+
$[8] = pageSizeProp;
|
|
55
|
+
$[9] = setPageSizeState;
|
|
56
|
+
$[10] = setPageState;
|
|
57
|
+
$[11] = storage;
|
|
58
|
+
$[12] = t4;
|
|
59
|
+
} else t4 = $[12];
|
|
60
|
+
const setPageSize = useEvent(t4);
|
|
61
|
+
let t5;
|
|
62
|
+
if ($[13] !== mode || $[14] !== pageInfo.page || $[15] !== pageSize || $[16] !== rows) {
|
|
63
|
+
t5 = mode === "client" ? rows.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize) : rows;
|
|
64
|
+
$[13] = mode;
|
|
65
|
+
$[14] = pageInfo.page;
|
|
66
|
+
$[15] = pageSize;
|
|
67
|
+
$[16] = rows;
|
|
68
|
+
$[17] = t5;
|
|
69
|
+
} else t5 = $[17];
|
|
70
|
+
const pageRows = t5;
|
|
71
|
+
let t6;
|
|
72
|
+
if ($[18] !== mode || $[19] !== pageInfo.page || $[20] !== pageSize || $[21] !== treeRoots) {
|
|
73
|
+
t6 = mode === "client" ? treeRoots.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize) : treeRoots;
|
|
74
|
+
$[18] = mode;
|
|
75
|
+
$[19] = pageInfo.page;
|
|
76
|
+
$[20] = pageSize;
|
|
77
|
+
$[21] = treeRoots;
|
|
78
|
+
$[22] = t6;
|
|
79
|
+
} else t6 = $[22];
|
|
80
|
+
let t7;
|
|
81
|
+
if ($[23] !== t6) {
|
|
82
|
+
t7 = reindexTableTree(t6);
|
|
83
|
+
$[23] = t6;
|
|
84
|
+
$[24] = t7;
|
|
85
|
+
} else t7 = $[24];
|
|
86
|
+
const pageTreeRoots = t7;
|
|
87
|
+
const smallestPageSize = pageSizeOptions?.length ? Math.min(...pageSizeOptions) : pageSize;
|
|
88
|
+
const isPaginationUseless = autoHide && !hasNextPage && pageInfo.totalPages <= 1 && total <= smallestPageSize;
|
|
89
|
+
const showPagination = isPaginated && !isPaginationUseless;
|
|
90
|
+
let t8;
|
|
91
|
+
if ($[25] !== hasNextPage || $[26] !== pageInfo.page || $[27] !== pageInfo.totalPages || $[28] !== pageSize || $[29] !== pageSizeOptions || $[30] !== setPage || $[31] !== setPageSize || $[32] !== showPagination || $[33] !== summary || $[34] !== total) {
|
|
92
|
+
t8 = showPagination ? {
|
|
93
|
+
page: pageInfo.page,
|
|
94
|
+
pageSize,
|
|
95
|
+
total,
|
|
96
|
+
totalPages: pageInfo.totalPages,
|
|
97
|
+
pageSizeOptions,
|
|
98
|
+
summary,
|
|
99
|
+
hasNextPage,
|
|
100
|
+
onPageChange: setPage,
|
|
101
|
+
onPageSizeChange: setPageSize
|
|
102
|
+
} : void 0;
|
|
103
|
+
$[25] = hasNextPage;
|
|
104
|
+
$[26] = pageInfo.page;
|
|
105
|
+
$[27] = pageInfo.totalPages;
|
|
106
|
+
$[28] = pageSize;
|
|
107
|
+
$[29] = pageSizeOptions;
|
|
108
|
+
$[30] = setPage;
|
|
109
|
+
$[31] = setPageSize;
|
|
110
|
+
$[32] = showPagination;
|
|
111
|
+
$[33] = summary;
|
|
112
|
+
$[34] = total;
|
|
113
|
+
$[35] = t8;
|
|
114
|
+
} else t8 = $[35];
|
|
115
|
+
const control = t8;
|
|
116
|
+
let t9;
|
|
117
|
+
if ($[36] !== control || $[37] !== isInfinite || $[38] !== isPaginated || $[39] !== pageInfo.page || $[40] !== pageRows || $[41] !== pageSize || $[42] !== pageTreeRoots || $[43] !== total) {
|
|
118
|
+
t9 = {
|
|
119
|
+
page: pageInfo.page,
|
|
120
|
+
pageSize,
|
|
121
|
+
total,
|
|
122
|
+
isInfinite,
|
|
123
|
+
isPaginated,
|
|
124
|
+
pageRows,
|
|
125
|
+
pageTreeRoots,
|
|
126
|
+
control
|
|
127
|
+
};
|
|
128
|
+
$[36] = control;
|
|
129
|
+
$[37] = isInfinite;
|
|
130
|
+
$[38] = isPaginated;
|
|
131
|
+
$[39] = pageInfo.page;
|
|
132
|
+
$[40] = pageRows;
|
|
133
|
+
$[41] = pageSize;
|
|
134
|
+
$[42] = pageTreeRoots;
|
|
135
|
+
$[43] = total;
|
|
136
|
+
$[44] = t9;
|
|
137
|
+
} else t9 = $[44];
|
|
138
|
+
return t9;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
//#endregion
|
|
142
|
+
export { useItemTablePagination };
|
|
143
|
+
//# sourceMappingURL=use-item-table-pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-item-table-pagination.js","names":["useControlledState","useMemo","useEvent","clampPage","getPageInfo","reindexTableTree","TableTreeNode","useTableStorage","ItemTableFooterProps","CubeItemTableProps","UseItemTablePaginationOptions","Pick","T","mode","NonNullable","defaultPageSize","autoHide","rows","treeRoots","isTree","storage","ReturnType","useItemTablePagination","t0","$","_c","pageSize","pageSizeProp","onPageSizeChange","pageSizeOptions","page","pageProp","defaultPage","onPageChange","total","totalProp","totalPages","hasNextPage","summary","setPageSizeState","undefined","has","initial","value","setPageState","isInfinite","isPaginated","isServerPaginated","length","t1","t2","pageInfo","t3","next","setPage","t4","next_0","write","setPageSize","t5","slice","pageRows","t6","t7","pageTreeRoots","smallestPageSize","Math","min","isPaginationUseless","showPagination","t8","control","t9"],"sources":["../../../../src/components/data/ItemTable/use-item-table-pagination.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport {\n clampPage,\n getPageInfo,\n} from '../../navigation/Pagination/use-pagination';\nimport { reindexTableTree } from '../TableBase/table-tree';\n\nimport type { TableTreeNode } from '../TableBase/table-tree';\nimport type { useTableStorage } from '../TableBase/use-table-storage';\nimport type { ItemTableFooterProps } from './ItemTableFooter';\nimport type { CubeItemTableProps } from './types';\n\nexport interface UseItemTablePaginationOptions<T>\n extends Pick<\n CubeItemTableProps<T>,\n | 'pageSize'\n | 'onPageSizeChange'\n | 'pageSizeOptions'\n | 'page'\n | 'defaultPage'\n | 'onPageChange'\n | 'total'\n | 'totalPages'\n | 'hasNextPage'\n | 'summary'\n > {\n mode: NonNullable<CubeItemTableProps<T>['paginationMode']>;\n defaultPageSize: number;\n /** See `autoHidePagination`. */\n autoHide: boolean;\n /** The searched, sorted flat rows. */\n rows: readonly T[];\n /** The searched, sorted tree roots; empty outside tree mode. */\n treeRoots: TableTreeNode<T>[];\n isTree: boolean;\n storage: ReturnType<typeof useTableStorage>;\n}\n\n/**\n * The table's pagination: page and page size, the latter persisted when the\n * table owns it, the current page's rows (flat) or roots (tree), and the props\n * of the footer's page control while it has anything to do.\n */\nexport function useItemTablePagination<T>({\n mode,\n rows,\n treeRoots,\n isTree,\n pageSize: pageSizeProp,\n defaultPageSize,\n onPageSizeChange,\n pageSizeOptions,\n page: pageProp,\n defaultPage,\n onPageChange,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary,\n autoHide,\n storage,\n}: UseItemTablePaginationOptions<T>) {\n // Deliberately not `usePagination`: that hook owns an in-memory array, and in\n // server mode `data` is a single page. Deriving the bounds from it would clamp\n // the page to 1 and swallow every page change.\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n pageSizeProp === undefined && storage.has('pageSize')\n ? storage.initial.pageSize ?? defaultPageSize\n : defaultPageSize,\n onPageSizeChange as (value: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (value: number) => void,\n );\n\n const isInfinite = mode === 'infinite';\n // Infinite scroll replaces the page control rather than adding to it.\n const isPaginated = mode !== 'off' && !isInfinite;\n const isServerPaginated = mode === 'server';\n const total = isServerPaginated\n ? totalProp ?? 0\n : isTree\n ? treeRoots.length\n : rows.length;\n\n const pageInfo = getPageInfo({\n page,\n pageSize,\n total,\n totalPages: isServerPaginated ? totalPages : undefined,\n });\n\n const setPage = useEvent((next: number) =>\n setPageState(clampPage(next, pageInfo.totalPages)),\n );\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n\n // The old page index points at different rows under a new page size, so\n // staying on it would silently move the user.\n setPageState(1);\n });\n\n const pageRows =\n mode === 'client'\n ? rows.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize)\n : rows;\n\n const pageTreeRoots = useMemo(\n () =>\n reindexTableTree(\n mode === 'client'\n ? treeRoots.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : treeRoots,\n ),\n [treeRoots, mode, pageInfo.page, pageSize],\n );\n\n /**\n * Pagination that cannot do anything is noise: one page of five rows still\n * renders \"1–5 of 5\", a page-size selector whose every option shows the same\n * five rows, and a solitary \"1\" button.\n *\n * \"Cannot do anything\" is both conditions together — a single page *and* a\n * total that even the smallest page size would not split. A 15-row single\n * page stays, because choosing \"10 / page\" would genuinely paginate it.\n */\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const isPaginationUseless =\n autoHide &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize;\n\n const showPagination = isPaginated && !isPaginationUseless;\n\n const control: ItemTableFooterProps['pagination'] = showPagination\n ? {\n page: pageInfo.page,\n pageSize,\n total,\n totalPages: pageInfo.totalPages,\n pageSizeOptions,\n summary,\n hasNextPage,\n onPageChange: setPage,\n onPageSizeChange: setPageSize,\n }\n : undefined;\n\n return {\n /** Clamped to the page count. */\n page: pageInfo.page,\n pageSize,\n total,\n isInfinite,\n isPaginated,\n /** The current page's flat rows; every row unless paging client-side. */\n pageRows,\n /** The current page's tree roots, re-indexed for the treegrid. */\n pageTreeRoots,\n /** The footer's page control; `undefined` while it is hidden. */\n control,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
|
|
2
|
+
import { flattenTableTree } from "../TableBase/table-tree.js";
|
|
3
|
+
import { useTableSelection } from "../TableBase/use-table-selection.js";
|
|
4
|
+
import { c } from "react-compiler-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/data/ItemTable/use-item-table-selection.ts
|
|
7
|
+
/**
|
|
8
|
+
* The rows the header checkbox can reach beyond the ones on screen: the whole
|
|
9
|
+
* current page, which in tree mode includes collapsed descendants, and the
|
|
10
|
+
* wider set it acts on under `selectAllMode="filtered"`.
|
|
11
|
+
*/
|
|
12
|
+
function getSelectionScope({ rows, sortedRows, isTree, sortedTreeRoots, pageTreeRoots, paginationMode }) {
|
|
13
|
+
const isClientPaginated = paginationMode === "client";
|
|
14
|
+
if (!isTree) return {
|
|
15
|
+
pageRows: rows,
|
|
16
|
+
pageRowKeys: void 0,
|
|
17
|
+
filteredRows: isClientPaginated ? sortedRows : rows,
|
|
18
|
+
filteredRowKeys: void 0
|
|
19
|
+
};
|
|
20
|
+
const pageEntries = flattenTableTree(pageTreeRoots);
|
|
21
|
+
const filteredEntries = isClientPaginated ? flattenTableTree(sortedTreeRoots) : pageEntries;
|
|
22
|
+
return {
|
|
23
|
+
pageRows: pageEntries.map((entry) => entry.row),
|
|
24
|
+
pageRowKeys: pageEntries.map((entry) => entry.key),
|
|
25
|
+
filteredRows: filteredEntries.map((entry) => entry.row),
|
|
26
|
+
filteredRowKeys: filteredEntries.map((entry) => entry.key)
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* `useTableSelection` over the rows the table resolved, flat or tree, with the
|
|
31
|
+
* selection mode implied by bulk actions.
|
|
32
|
+
*/
|
|
33
|
+
function useItemTableSelection(t0) {
|
|
34
|
+
const $ = c(30);
|
|
35
|
+
const { rows, rowKeys, sortedRows, isTree, sortedTreeRoots, pageTreeRoots, paginationMode, getRowKey, selectionMode, bulkActions, selectedKeys, defaultSelectedKeys, onSelectionChange, selectAllMode, isRowSelectable, disabledKeys, treeSelectionBehavior } = t0;
|
|
36
|
+
let t1;
|
|
37
|
+
bb0: {
|
|
38
|
+
if (!isTree) {
|
|
39
|
+
t1 = void 0;
|
|
40
|
+
break bb0;
|
|
41
|
+
}
|
|
42
|
+
let childrenOf;
|
|
43
|
+
let parentOf;
|
|
44
|
+
if ($[0] !== sortedTreeRoots) {
|
|
45
|
+
childrenOf = /* @__PURE__ */ new Map();
|
|
46
|
+
parentOf = /* @__PURE__ */ new Map();
|
|
47
|
+
flattenTableTree(sortedTreeRoots).forEach((node) => {
|
|
48
|
+
childrenOf.set(node.key, node.children.map(_temp));
|
|
49
|
+
parentOf.set(node.key, node.parentKey);
|
|
50
|
+
});
|
|
51
|
+
$[0] = sortedTreeRoots;
|
|
52
|
+
$[1] = childrenOf;
|
|
53
|
+
$[2] = parentOf;
|
|
54
|
+
} else {
|
|
55
|
+
childrenOf = $[1];
|
|
56
|
+
parentOf = $[2];
|
|
57
|
+
}
|
|
58
|
+
let t2;
|
|
59
|
+
if ($[3] !== sortedTreeRoots) {
|
|
60
|
+
t2 = sortedTreeRoots.map(_temp2);
|
|
61
|
+
$[3] = sortedTreeRoots;
|
|
62
|
+
$[4] = t2;
|
|
63
|
+
} else t2 = $[4];
|
|
64
|
+
let t3;
|
|
65
|
+
if ($[5] !== childrenOf || $[6] !== parentOf || $[7] !== t2 || $[8] !== treeSelectionBehavior) {
|
|
66
|
+
t3 = {
|
|
67
|
+
rootKeys: t2,
|
|
68
|
+
childrenOf,
|
|
69
|
+
parentOf,
|
|
70
|
+
behavior: treeSelectionBehavior
|
|
71
|
+
};
|
|
72
|
+
$[5] = childrenOf;
|
|
73
|
+
$[6] = parentOf;
|
|
74
|
+
$[7] = t2;
|
|
75
|
+
$[8] = treeSelectionBehavior;
|
|
76
|
+
$[9] = t3;
|
|
77
|
+
} else t3 = $[9];
|
|
78
|
+
t1 = t3;
|
|
79
|
+
}
|
|
80
|
+
const selectionTree = t1;
|
|
81
|
+
const resolvedSelectionMode = selectionMode ?? (bulkActions?.length ? "multiple" : "none");
|
|
82
|
+
let t2;
|
|
83
|
+
if ($[10] !== isTree || $[11] !== pageTreeRoots || $[12] !== paginationMode || $[13] !== rows || $[14] !== sortedRows || $[15] !== sortedTreeRoots) {
|
|
84
|
+
t2 = getSelectionScope({
|
|
85
|
+
rows,
|
|
86
|
+
sortedRows,
|
|
87
|
+
isTree,
|
|
88
|
+
sortedTreeRoots,
|
|
89
|
+
pageTreeRoots,
|
|
90
|
+
paginationMode
|
|
91
|
+
});
|
|
92
|
+
$[10] = isTree;
|
|
93
|
+
$[11] = pageTreeRoots;
|
|
94
|
+
$[12] = paginationMode;
|
|
95
|
+
$[13] = rows;
|
|
96
|
+
$[14] = sortedRows;
|
|
97
|
+
$[15] = sortedTreeRoots;
|
|
98
|
+
$[16] = t2;
|
|
99
|
+
} else t2 = $[16];
|
|
100
|
+
let t3;
|
|
101
|
+
if ($[17] !== defaultSelectedKeys || $[18] !== disabledKeys || $[19] !== getRowKey || $[20] !== isRowSelectable || $[21] !== onSelectionChange || $[22] !== resolvedSelectionMode || $[23] !== rowKeys || $[24] !== rows || $[25] !== selectAllMode || $[26] !== selectedKeys || $[27] !== selectionTree || $[28] !== t2) {
|
|
102
|
+
t3 = {
|
|
103
|
+
rows,
|
|
104
|
+
rowKeys,
|
|
105
|
+
...t2,
|
|
106
|
+
getRowKey,
|
|
107
|
+
selectionMode: resolvedSelectionMode,
|
|
108
|
+
selectedKeys,
|
|
109
|
+
defaultSelectedKeys,
|
|
110
|
+
onSelectionChange,
|
|
111
|
+
selectAllMode,
|
|
112
|
+
isRowSelectable,
|
|
113
|
+
disabledKeys,
|
|
114
|
+
tree: selectionTree
|
|
115
|
+
};
|
|
116
|
+
$[17] = defaultSelectedKeys;
|
|
117
|
+
$[18] = disabledKeys;
|
|
118
|
+
$[19] = getRowKey;
|
|
119
|
+
$[20] = isRowSelectable;
|
|
120
|
+
$[21] = onSelectionChange;
|
|
121
|
+
$[22] = resolvedSelectionMode;
|
|
122
|
+
$[23] = rowKeys;
|
|
123
|
+
$[24] = rows;
|
|
124
|
+
$[25] = selectAllMode;
|
|
125
|
+
$[26] = selectedKeys;
|
|
126
|
+
$[27] = selectionTree;
|
|
127
|
+
$[28] = t2;
|
|
128
|
+
$[29] = t3;
|
|
129
|
+
} else t3 = $[29];
|
|
130
|
+
return useTableSelection(t3);
|
|
131
|
+
}
|
|
132
|
+
function _temp2(node_0) {
|
|
133
|
+
return node_0.key;
|
|
134
|
+
}
|
|
135
|
+
function _temp(child) {
|
|
136
|
+
return child.key;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
//#endregion
|
|
140
|
+
export { useItemTableSelection };
|
|
141
|
+
//# sourceMappingURL=use-item-table-selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-item-table-selection.js","names":["useMemo","flattenTableTree","useTableSelection","Key","TableTreeNode","CubeTableSelectionMode","UseTableSelectionOptions","CubeItemTableProps","PaginationMode","NonNullable","SelectionScopeOptions","rows","T","sortedRows","isTree","sortedTreeRoots","pageTreeRoots","paginationMode","UseItemTableSelectionOptions","Pick","selectionMode","bulkActions","treeSelectionBehavior","getSelectionScope","isClientPaginated","pageRows","pageRowKeys","undefined","filteredRows","filteredRowKeys","pageEntries","filteredEntries","map","entry","row","key","useItemTableSelection","t0","$","_c","rowKeys","getRowKey","selectedKeys","defaultSelectedKeys","onSelectionChange","selectAllMode","isRowSelectable","disabledKeys","t1","bb0","childrenOf","parentOf","Map","forEach","node","set","children","_temp","parentKey","t2","_temp2","t3","rootKeys","behavior","selectionTree","resolvedSelectionMode","length","tree","node_0","child"],"sources":["../../../../src/components/data/ItemTable/use-item-table-selection.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { flattenTableTree } from '../TableBase/table-tree';\nimport { useTableSelection } from '../TableBase/use-table-selection';\n\nimport type { Key } from '@react-types/shared';\nimport type { TableTreeNode } from '../TableBase/table-tree';\nimport type { CubeTableSelectionMode } from '../TableBase/types';\nimport type { UseTableSelectionOptions } from '../TableBase/use-table-selection';\nimport type { CubeItemTableProps } from './types';\n\ntype PaginationMode = NonNullable<CubeItemTableProps['paginationMode']>;\n\ninterface SelectionScopeOptions<T> {\n /** The rows on screen. */\n rows: readonly T[];\n /** Every searched, sorted flat row, across pages. */\n sortedRows: readonly T[];\n isTree: boolean;\n /** Every searched, sorted tree root, across pages. */\n sortedTreeRoots: TableTreeNode<T>[];\n /** The current page's tree roots. */\n pageTreeRoots: TableTreeNode<T>[];\n paginationMode: PaginationMode;\n}\n\nexport interface UseItemTableSelectionOptions<T>\n extends SelectionScopeOptions<T>,\n Pick<\n UseTableSelectionOptions<T>,\n | 'rowKeys'\n | 'getRowKey'\n | 'selectedKeys'\n | 'defaultSelectedKeys'\n | 'onSelectionChange'\n | 'selectAllMode'\n | 'isRowSelectable'\n | 'disabledKeys'\n > {\n /** Inferred from `bulkActions` when absent. */\n selectionMode?: CubeTableSelectionMode;\n bulkActions?: CubeItemTableProps<T>['bulkActions'];\n treeSelectionBehavior: 'cascade' | 'independent';\n}\n\n/**\n * The rows the header checkbox can reach beyond the ones on screen: the whole\n * current page, which in tree mode includes collapsed descendants, and the\n * wider set it acts on under `selectAllMode=\"filtered\"`.\n */\nfunction getSelectionScope<T>({\n rows,\n sortedRows,\n isTree,\n sortedTreeRoots,\n pageTreeRoots,\n paginationMode,\n}: SelectionScopeOptions<T>): Pick<\n UseTableSelectionOptions<T>,\n 'pageRows' | 'pageRowKeys' | 'filteredRows' | 'filteredRowKeys'\n> {\n // In server mode the client only ever holds one page, so the filtered set and\n // the page coincide.\n const isClientPaginated = paginationMode === 'client';\n\n if (!isTree) {\n return {\n pageRows: rows,\n pageRowKeys: undefined,\n filteredRows: isClientPaginated ? sortedRows : rows,\n filteredRowKeys: undefined,\n };\n }\n\n const pageEntries = flattenTableTree(pageTreeRoots);\n const filteredEntries = isClientPaginated\n ? flattenTableTree(sortedTreeRoots)\n : pageEntries;\n\n return {\n pageRows: pageEntries.map((entry) => entry.row),\n pageRowKeys: pageEntries.map((entry) => entry.key),\n filteredRows: filteredEntries.map((entry) => entry.row),\n filteredRowKeys: filteredEntries.map((entry) => entry.key),\n };\n}\n\n/**\n * `useTableSelection` over the rows the table resolved, flat or tree, with the\n * selection mode implied by bulk actions.\n */\nexport function useItemTableSelection<T>({\n rows,\n rowKeys,\n sortedRows,\n isTree,\n sortedTreeRoots,\n pageTreeRoots,\n paginationMode,\n getRowKey,\n selectionMode,\n bulkActions,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n treeSelectionBehavior,\n}: UseItemTableSelectionOptions<T>) {\n const selectionTree = useMemo(() => {\n if (!isTree) return undefined;\n\n // Selection follows the tree the user can currently act on. In\n // particular, a search that retains only an ancestor path must not let a\n // checked ancestor reach siblings that the search removed.\n const childrenOf = new Map<Key, Key[]>();\n const parentOf = new Map<Key, Key | null>();\n\n flattenTableTree(sortedTreeRoots).forEach((node) => {\n childrenOf.set(\n node.key,\n node.children.map((child) => child.key),\n );\n parentOf.set(node.key, node.parentKey);\n });\n\n return {\n rootKeys: sortedTreeRoots.map((node) => node.key),\n childrenOf,\n parentOf,\n behavior: treeSelectionBehavior,\n };\n }, [isTree, sortedTreeRoots, treeSelectionBehavior]);\n\n // A bulk action with no way to select rows is a contradiction, so supplying\n // any implies multiple selection unless the consumer says otherwise.\n const resolvedSelectionMode =\n selectionMode ?? (bulkActions?.length ? 'multiple' : 'none');\n\n return useTableSelection<T>({\n rows,\n rowKeys,\n ...getSelectionScope({\n rows,\n sortedRows,\n isTree,\n sortedTreeRoots,\n pageTreeRoots,\n paginationMode,\n }),\n getRowKey,\n selectionMode: resolvedSelectionMode,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n tree: selectionTree,\n });\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
|
|
2
|
+
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
|
+
import { sortTableTree } from "../TableBase/table-tree.js";
|
|
4
|
+
import { compareByColumn, useTableSort } from "../TableBase/use-table-sort.js";
|
|
5
|
+
import { c } from "react-compiler-runtime";
|
|
6
|
+
import { useCollator } from "@react-aria/i18n";
|
|
7
|
+
|
|
8
|
+
//#region src/components/data/ItemTable/use-item-table-sort.ts
|
|
9
|
+
/**
|
|
10
|
+
* The table's sort: its state, persisted when the table owns it, applied to
|
|
11
|
+
* flat rows by `useTableSort` and to every level of a tree here.
|
|
12
|
+
*/
|
|
13
|
+
function useItemTableSort(t0) {
|
|
14
|
+
const $ = c(35);
|
|
15
|
+
const { columns, rows, tree, mode, sort: sortProp, defaultSort, onSortChange, storage } = t0;
|
|
16
|
+
let t1;
|
|
17
|
+
if ($[0] !== rows || $[1] !== tree) {
|
|
18
|
+
t1 = tree ? tree.roots.map(_temp) : rows;
|
|
19
|
+
$[0] = rows;
|
|
20
|
+
$[1] = tree;
|
|
21
|
+
$[2] = t1;
|
|
22
|
+
} else t1 = $[2];
|
|
23
|
+
const t2 = tree ? "server" : mode;
|
|
24
|
+
const t3 = sortProp === void 0 && storage.has("sort") ? storage.initial.sort ?? defaultSort : defaultSort;
|
|
25
|
+
let t4;
|
|
26
|
+
if ($[3] !== onSortChange || $[4] !== sortProp || $[5] !== storage) {
|
|
27
|
+
t4 = (next) => {
|
|
28
|
+
if (sortProp === void 0) storage.write({ sort: next });
|
|
29
|
+
onSortChange?.(next);
|
|
30
|
+
};
|
|
31
|
+
$[3] = onSortChange;
|
|
32
|
+
$[4] = sortProp;
|
|
33
|
+
$[5] = storage;
|
|
34
|
+
$[6] = t4;
|
|
35
|
+
} else t4 = $[6];
|
|
36
|
+
const t5 = useEvent(t4);
|
|
37
|
+
let t6;
|
|
38
|
+
if ($[7] !== columns || $[8] !== sortProp || $[9] !== t1 || $[10] !== t2 || $[11] !== t3 || $[12] !== t5) {
|
|
39
|
+
t6 = {
|
|
40
|
+
columns,
|
|
41
|
+
rows: t1,
|
|
42
|
+
mode: t2,
|
|
43
|
+
sort: sortProp,
|
|
44
|
+
defaultSort: t3,
|
|
45
|
+
onSortChange: t5
|
|
46
|
+
};
|
|
47
|
+
$[7] = columns;
|
|
48
|
+
$[8] = sortProp;
|
|
49
|
+
$[9] = t1;
|
|
50
|
+
$[10] = t2;
|
|
51
|
+
$[11] = t3;
|
|
52
|
+
$[12] = t5;
|
|
53
|
+
$[13] = t6;
|
|
54
|
+
} else t6 = $[13];
|
|
55
|
+
const { sort, sortedRows, toggleSort, setColumnSort, mode: resolvedSortMode } = useTableSort(t6);
|
|
56
|
+
let t7;
|
|
57
|
+
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
58
|
+
t7 = {
|
|
59
|
+
numeric: true,
|
|
60
|
+
sensitivity: "base"
|
|
61
|
+
};
|
|
62
|
+
$[14] = t7;
|
|
63
|
+
} else t7 = $[14];
|
|
64
|
+
const collator = useCollator(t7);
|
|
65
|
+
let t8;
|
|
66
|
+
if ($[15] !== columns || $[16] !== mode || $[17] !== resolvedSortMode || $[18] !== tree) {
|
|
67
|
+
t8 = tree ? mode ?? (columns.some(_temp2) ? "client" : "off") : resolvedSortMode;
|
|
68
|
+
$[15] = columns;
|
|
69
|
+
$[16] = mode;
|
|
70
|
+
$[17] = resolvedSortMode;
|
|
71
|
+
$[18] = tree;
|
|
72
|
+
$[19] = t8;
|
|
73
|
+
} else t8 = $[19];
|
|
74
|
+
const treeSortMode = t8;
|
|
75
|
+
let t9;
|
|
76
|
+
if ($[20] !== collator || $[21] !== columns || $[22] !== sort || $[23] !== tree?.roots || $[24] !== treeSortMode) {
|
|
77
|
+
bb0: {
|
|
78
|
+
const roots = tree?.roots ?? [];
|
|
79
|
+
if (treeSortMode !== "client" || !sort) {
|
|
80
|
+
t9 = roots;
|
|
81
|
+
break bb0;
|
|
82
|
+
}
|
|
83
|
+
let t10;
|
|
84
|
+
if ($[26] !== sort) {
|
|
85
|
+
t10 = (entry) => entry.key === sort.columnKey;
|
|
86
|
+
$[26] = sort;
|
|
87
|
+
$[27] = t10;
|
|
88
|
+
} else t10 = $[27];
|
|
89
|
+
const column_0 = columns.find(t10);
|
|
90
|
+
if (!column_0) {
|
|
91
|
+
t9 = roots;
|
|
92
|
+
break bb0;
|
|
93
|
+
}
|
|
94
|
+
t9 = sortTableTree(roots, (a, b) => {
|
|
95
|
+
return compareByColumn(column_0, collator, a.row, a.sourceIndex, b.row, b.sourceIndex) * (sort.direction === "asc" ? 1 : -1);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
$[20] = collator;
|
|
99
|
+
$[21] = columns;
|
|
100
|
+
$[22] = sort;
|
|
101
|
+
$[23] = tree?.roots;
|
|
102
|
+
$[24] = treeSortMode;
|
|
103
|
+
$[25] = t9;
|
|
104
|
+
} else t9 = $[25];
|
|
105
|
+
const sortedTreeRoots = t9;
|
|
106
|
+
let t10;
|
|
107
|
+
if ($[28] !== setColumnSort || $[29] !== sort || $[30] !== sortedRows || $[31] !== sortedTreeRoots || $[32] !== toggleSort || $[33] !== treeSortMode) {
|
|
108
|
+
t10 = {
|
|
109
|
+
sort,
|
|
110
|
+
sortedRows,
|
|
111
|
+
sortedTreeRoots,
|
|
112
|
+
mode: treeSortMode,
|
|
113
|
+
toggleSort,
|
|
114
|
+
setColumnSort
|
|
115
|
+
};
|
|
116
|
+
$[28] = setColumnSort;
|
|
117
|
+
$[29] = sort;
|
|
118
|
+
$[30] = sortedRows;
|
|
119
|
+
$[31] = sortedTreeRoots;
|
|
120
|
+
$[32] = toggleSort;
|
|
121
|
+
$[33] = treeSortMode;
|
|
122
|
+
$[34] = t10;
|
|
123
|
+
} else t10 = $[34];
|
|
124
|
+
return t10;
|
|
125
|
+
}
|
|
126
|
+
function _temp2(column) {
|
|
127
|
+
return column.isSortable;
|
|
128
|
+
}
|
|
129
|
+
function _temp(node) {
|
|
130
|
+
return node.row;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
//#endregion
|
|
134
|
+
export { useItemTableSort };
|
|
135
|
+
//# sourceMappingURL=use-item-table-sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-item-table-sort.js","names":["useCollator","useMemo","useEvent","sortTableTree","compareByColumn","useTableSort","FilteredTableTree","CubeTableSort","CubeTableSortMode","useTableStorage","CubeItemTableColumn","UseItemTableSortOptions","columns","T","rows","tree","mode","sort","defaultSort","onSortChange","storage","ReturnType","useItemTableSort","t0","$","_c","sortProp","t1","roots","map","_temp","t2","t3","undefined","has","initial","t4","next","write","t5","t6","sortedRows","toggleSort","setColumnSort","resolvedSortMode","t7","Symbol","for","numeric","sensitivity","collator","t8","some","_temp2","treeSortMode","t9","bb0","t10","entry","key","columnKey","column_0","find","column","a","b","result","row","sourceIndex","direction","sortedTreeRoots","isSortable","node"],"sources":["../../../../src/components/data/ItemTable/use-item-table-sort.ts"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { sortTableTree } from '../TableBase/table-tree';\nimport { compareByColumn, useTableSort } from '../TableBase/use-table-sort';\n\nimport type { FilteredTableTree } from '../TableBase/table-tree';\nimport type { CubeTableSort } from '../TableBase/types';\nimport type { CubeTableSortMode } from '../TableBase/use-table-sort';\nimport type { useTableStorage } from '../TableBase/use-table-storage';\nimport type { CubeItemTableColumn } from './types';\n\nexport interface UseItemTableSortOptions<T> {\n columns: CubeItemTableColumn<T>[];\n /** The searched flat rows. */\n rows: readonly T[];\n /** The searched tree; `null` outside tree mode. */\n tree: FilteredTableTree<T> | null;\n mode?: CubeTableSortMode;\n sort?: CubeTableSort | null;\n defaultSort?: CubeTableSort | null;\n onSortChange?: (sort: CubeTableSort | null) => void;\n storage: ReturnType<typeof useTableStorage>;\n}\n\n/**\n * The table's sort: its state, persisted when the table owns it, applied to\n * flat rows by `useTableSort` and to every level of a tree here.\n */\nexport function useItemTableSort<T>({\n columns,\n rows,\n tree,\n mode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n storage,\n}: UseItemTableSortOptions<T>) {\n const {\n sort,\n sortedRows,\n toggleSort,\n setColumnSort,\n mode: resolvedSortMode,\n } = useTableSort<T>({\n columns,\n rows: tree ? tree.roots.map((node) => node.row) : rows,\n mode: tree ? 'server' : mode,\n sort: sortProp,\n // Only restore what the table owns: a controlled `sort` belongs to the page,\n // and overriding it here would fight the page's own source of truth.\n defaultSort:\n sortProp === undefined && storage.has('sort')\n ? storage.initial.sort ?? defaultSort\n : defaultSort,\n onSortChange: useEvent((next: CubeTableSort | null) => {\n if (sortProp === undefined) storage.write({ sort: next });\n onSortChange?.(next);\n }),\n });\n\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n const treeSortMode = tree\n ? mode ?? (columns.some((column) => column.isSortable) ? 'client' : 'off')\n : resolvedSortMode;\n const sortedTreeRoots = useMemo(() => {\n const roots = tree?.roots ?? [];\n if (treeSortMode !== 'client' || !sort) return roots;\n const column = columns.find((entry) => entry.key === sort.columnKey);\n if (!column) return roots;\n\n return sortTableTree(roots, (a, b) => {\n const result = compareByColumn(\n column,\n collator,\n a.row,\n a.sourceIndex,\n b.row,\n b.sourceIndex,\n );\n return result * (sort.direction === 'asc' ? 1 : -1);\n });\n }, [tree, treeSortMode, sort, columns, collator]);\n\n return {\n sort,\n sortedRows,\n /** Empty outside tree mode. */\n sortedTreeRoots,\n mode: treeSortMode,\n toggleSort,\n setColumnSort,\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
|
|
2
|
+
import { useWarn } from "../../../_internal/hooks/use-warn.js";
|
|
3
|
+
import { buildTableTree } from "../TableBase/table-tree.js";
|
|
4
|
+
import { c } from "react-compiler-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/data/ItemTable/use-item-table-tree-model.ts
|
|
7
|
+
/**
|
|
8
|
+
* Tree mode's model: the hierarchy `getRowChildren` describes, the column that
|
|
9
|
+
* carries its indentation, and a warning for each part of the data or props
|
|
10
|
+
* that tree mode ignores. `treeModel` is `null` for flat data.
|
|
11
|
+
*/
|
|
12
|
+
function useItemTableTreeModel(t0) {
|
|
13
|
+
const $ = c(18);
|
|
14
|
+
const { data, columns, getRowKey, getRowChildren, treeColumnKey, isReorderable } = t0;
|
|
15
|
+
let t1;
|
|
16
|
+
if ($[0] !== data || $[1] !== getRowChildren || $[2] !== getRowKey) {
|
|
17
|
+
t1 = getRowChildren ? buildTableTree(data, getRowChildren, getRowKey) : null;
|
|
18
|
+
$[0] = data;
|
|
19
|
+
$[1] = getRowChildren;
|
|
20
|
+
$[2] = getRowKey;
|
|
21
|
+
$[3] = t1;
|
|
22
|
+
} else t1 = $[3];
|
|
23
|
+
const treeModel = t1;
|
|
24
|
+
let t2;
|
|
25
|
+
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
|
|
26
|
+
t2 = {
|
|
27
|
+
key: ["item-table-tree-duplicate-keys"],
|
|
28
|
+
args: ["ItemTable:", "Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored."]
|
|
29
|
+
};
|
|
30
|
+
$[4] = t2;
|
|
31
|
+
} else t2 = $[4];
|
|
32
|
+
useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, t2);
|
|
33
|
+
let t3;
|
|
34
|
+
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
35
|
+
t3 = {
|
|
36
|
+
key: ["item-table-tree-cyclic-keys"],
|
|
37
|
+
args: ["ItemTable:", "Tree data contains a cycle. Cyclic descendants were ignored."]
|
|
38
|
+
};
|
|
39
|
+
$[5] = t3;
|
|
40
|
+
} else t3 = $[5];
|
|
41
|
+
useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, t3);
|
|
42
|
+
let t4;
|
|
43
|
+
if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
|
|
44
|
+
t4 = {
|
|
45
|
+
key: ["item-table-tree-reorder-unsupported"],
|
|
46
|
+
args: ["ItemTable:", "`isReorderable` is ignored in tree mode. Use `dropOnRow` for folder-style moves."]
|
|
47
|
+
};
|
|
48
|
+
$[6] = t4;
|
|
49
|
+
} else t4 = $[6];
|
|
50
|
+
useWarn(treeModel != null && isReorderable, t4);
|
|
51
|
+
let t5;
|
|
52
|
+
bb0: {
|
|
53
|
+
if (!treeModel) {
|
|
54
|
+
t5 = void 0;
|
|
55
|
+
break bb0;
|
|
56
|
+
}
|
|
57
|
+
let t6;
|
|
58
|
+
if ($[7] !== columns || $[8] !== treeColumnKey) {
|
|
59
|
+
const visibleColumns = columns.filter(_temp);
|
|
60
|
+
t6 = visibleColumns.some((column_0) => column_0.key === treeColumnKey) ? treeColumnKey : visibleColumns[0]?.key;
|
|
61
|
+
$[7] = columns;
|
|
62
|
+
$[8] = treeColumnKey;
|
|
63
|
+
$[9] = t6;
|
|
64
|
+
} else t6 = $[9];
|
|
65
|
+
t5 = t6;
|
|
66
|
+
}
|
|
67
|
+
const resolvedTreeColumnKey = t5;
|
|
68
|
+
let t6;
|
|
69
|
+
if ($[10] !== treeColumnKey) {
|
|
70
|
+
t6 = ["item-table-tree-column-invalid", treeColumnKey];
|
|
71
|
+
$[10] = treeColumnKey;
|
|
72
|
+
$[11] = t6;
|
|
73
|
+
} else t6 = $[11];
|
|
74
|
+
let t7;
|
|
75
|
+
if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
76
|
+
t7 = ["ItemTable:", "`treeColumnKey` must identify a visible data column. Falling back to the first visible column."];
|
|
77
|
+
$[12] = t7;
|
|
78
|
+
} else t7 = $[12];
|
|
79
|
+
let t8;
|
|
80
|
+
if ($[13] !== t6) {
|
|
81
|
+
t8 = {
|
|
82
|
+
key: t6,
|
|
83
|
+
args: t7
|
|
84
|
+
};
|
|
85
|
+
$[13] = t6;
|
|
86
|
+
$[14] = t8;
|
|
87
|
+
} else t8 = $[14];
|
|
88
|
+
useWarn(treeModel != null && treeColumnKey != null && resolvedTreeColumnKey !== treeColumnKey, t8);
|
|
89
|
+
let t9;
|
|
90
|
+
if ($[15] !== resolvedTreeColumnKey || $[16] !== treeModel) {
|
|
91
|
+
t9 = {
|
|
92
|
+
treeModel,
|
|
93
|
+
treeColumnKey: resolvedTreeColumnKey
|
|
94
|
+
};
|
|
95
|
+
$[15] = resolvedTreeColumnKey;
|
|
96
|
+
$[16] = treeModel;
|
|
97
|
+
$[17] = t9;
|
|
98
|
+
} else t9 = $[17];
|
|
99
|
+
return t9;
|
|
100
|
+
}
|
|
101
|
+
function _temp(column) {
|
|
102
|
+
return !column.isHidden;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
//#endregion
|
|
106
|
+
export { useItemTableTreeModel };
|
|
107
|
+
//# sourceMappingURL=use-item-table-tree-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-item-table-tree-model.js","names":["useMemo","useWarn","buildTableTree","Key","CubeTableTreeProps","CubeItemTableColumn","UseItemTableTreeModelOptions","Pick","T","data","columns","getRowKey","row","index","isReorderable","useItemTableTreeModel","t0","$","_c","getRowChildren","treeColumnKey","t1","treeModel","t2","Symbol","for","key","args","duplicateKeys","length","t3","cyclicKeys","t4","t5","bb0","undefined","t6","visibleColumns","filter","_temp","some","column_0","column","resolvedTreeColumnKey","t7","t8","t9","isHidden"],"sources":["../../../../src/components/data/ItemTable/use-item-table-tree-model.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport { buildTableTree } from '../TableBase/table-tree';\n\nimport type { Key } from '@react-types/shared';\nimport type { CubeTableTreeProps } from '../TableBase/types';\nimport type { CubeItemTableColumn } from './types';\n\nexport interface UseItemTableTreeModelOptions<T>\n extends Pick<CubeTableTreeProps<T>, 'getRowChildren' | 'treeColumnKey'> {\n data: readonly T[];\n columns: CubeItemTableColumn<T>[];\n getRowKey: (row: T, index: number) => Key;\n isReorderable: boolean;\n}\n\n/**\n * Tree mode's model: the hierarchy `getRowChildren` describes, the column that\n * carries its indentation, and a warning for each part of the data or props\n * that tree mode ignores. `treeModel` is `null` for flat data.\n */\nexport function useItemTableTreeModel<T>({\n data,\n columns,\n getRowKey,\n getRowChildren,\n treeColumnKey,\n isReorderable,\n}: UseItemTableTreeModelOptions<T>) {\n const treeModel = useMemo(\n () =>\n getRowChildren ? buildTableTree(data, getRowChildren, getRowKey) : null,\n [data, getRowChildren, getRowKey],\n );\n\n useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, {\n key: ['item-table-tree-duplicate-keys'],\n args: [\n 'ItemTable:',\n 'Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored.',\n ],\n });\n useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, {\n key: ['item-table-tree-cyclic-keys'],\n args: [\n 'ItemTable:',\n 'Tree data contains a cycle. Cyclic descendants were ignored.',\n ],\n });\n useWarn(treeModel != null && isReorderable, {\n key: ['item-table-tree-reorder-unsupported'],\n args: [\n 'ItemTable:',\n '`isReorderable` is ignored in tree mode. Use `dropOnRow` for folder-style moves.',\n ],\n });\n\n const resolvedTreeColumnKey = useMemo(() => {\n if (!treeModel) return undefined;\n const visibleColumns = columns.filter((column) => !column.isHidden);\n return visibleColumns.some((column) => column.key === treeColumnKey)\n ? treeColumnKey\n : visibleColumns[0]?.key;\n }, [treeModel, columns, treeColumnKey]);\n\n useWarn(\n treeModel != null &&\n treeColumnKey != null &&\n resolvedTreeColumnKey !== treeColumnKey,\n {\n key: ['item-table-tree-column-invalid', treeColumnKey],\n args: [\n 'ItemTable:',\n '`treeColumnKey` must identify a visible data column. Falling back to the first visible column.',\n ],\n },\n );\n\n return { treeModel, treeColumnKey: resolvedTreeColumnKey };\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.190.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.190.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { useEffect, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.190.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|