react-science 23.1.0 → 24.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/accordion/accordion_context.d.ts +1 -1
- package/lib/components/accordion/accordion_context.js +3 -3
- package/lib/components/accordion/accordion_context.js.map +1 -1
- package/lib/components/accordion/accordion_context_provider.d.ts.map +1 -1
- package/lib/components/accordion/accordion_context_provider.js +3 -3
- package/lib/components/accordion/accordion_context_provider.js.map +1 -1
- package/lib/components/accordion/accordion_hooks.js +3 -3
- package/lib/components/accordion/accordion_hooks.js.map +1 -1
- package/lib/components/button/Button.d.ts.map +1 -1
- package/lib/components/button/Button.js +3 -2
- package/lib/components/button/Button.js.map +1 -1
- package/lib/components/color-picker/react-color/ColorPicker.d.ts +2 -2
- package/lib/components/color-picker/react-color/ColorPicker.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/ColorPicker.js +25 -22
- package/lib/components/color-picker/react-color/ColorPicker.js.map +1 -1
- package/lib/components/color-picker/react-color/common/Alpha.d.ts +1 -2
- package/lib/components/color-picker/react-color/common/Alpha.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/common/Alpha.js +5 -6
- package/lib/components/color-picker/react-color/common/Alpha.js.map +1 -1
- package/lib/components/color-picker/react-color/common/CheckBoard.d.ts +1 -2
- package/lib/components/color-picker/react-color/common/CheckBoard.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/common/CheckBoard.js +2 -3
- package/lib/components/color-picker/react-color/common/CheckBoard.js.map +1 -1
- package/lib/components/color-picker/react-color/common/EditableInput.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/common/EditableInput.js +30 -26
- package/lib/components/color-picker/react-color/common/EditableInput.js.map +1 -1
- package/lib/components/color-picker/react-color/common/Hue.d.ts +1 -2
- package/lib/components/color-picker/react-color/common/Hue.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/common/Hue.js +5 -6
- package/lib/components/color-picker/react-color/common/Hue.js.map +1 -1
- package/lib/components/color-picker/react-color/common/Saturation.d.ts +1 -2
- package/lib/components/color-picker/react-color/common/Saturation.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/common/Saturation.js +6 -7
- package/lib/components/color-picker/react-color/common/Saturation.js.map +1 -1
- package/lib/components/color-picker/react-color/common/Swatch.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/common/Swatch.js +10 -11
- package/lib/components/color-picker/react-color/common/Swatch.js.map +1 -1
- package/lib/components/color-picker/react-color/common/interaction.d.ts +1 -1
- package/lib/components/color-picker/react-color/common/interaction.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/common/interaction.js +9 -9
- package/lib/components/color-picker/react-color/common/interaction.js.map +1 -1
- package/lib/components/color-picker/react-color/common/useOnChange.js +2 -2
- package/lib/components/color-picker/react-color/common/useOnChange.js.map +1 -1
- package/lib/components/color-picker/react-color/helpers/alpha.d.ts +1 -1
- package/lib/components/color-picker/react-color/helpers/alpha.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/helpers/alpha.js +4 -5
- package/lib/components/color-picker/react-color/helpers/alpha.js.map +1 -1
- package/lib/components/color-picker/react-color/helpers/color.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/helpers/color.js +15 -13
- package/lib/components/color-picker/react-color/helpers/color.js.map +1 -1
- package/lib/components/color-picker/react-color/helpers/hue.d.ts +1 -1
- package/lib/components/color-picker/react-color/helpers/hue.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/helpers/hue.js +14 -23
- package/lib/components/color-picker/react-color/helpers/hue.js.map +1 -1
- package/lib/components/color-picker/react-color/helpers/saturation.d.ts +1 -1
- package/lib/components/color-picker/react-color/helpers/saturation.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/helpers/saturation.js +3 -3
- package/lib/components/color-picker/react-color/helpers/saturation.js.map +1 -1
- package/lib/components/color-picker/react-color/sketch/SketchFields.d.ts +1 -1
- package/lib/components/color-picker/react-color/sketch/SketchFields.d.ts.map +1 -1
- package/lib/components/color-picker/react-color/sketch/SketchFields.js +6 -6
- package/lib/components/color-picker/react-color/sketch/SketchFields.js.map +1 -1
- package/lib/components/color-picker/react-color/sketch/SketchPresetColors.js +8 -8
- package/lib/components/color-picker/react-color/sketch/SketchPresetColors.js.map +1 -1
- package/lib/components/dialog/ConfirmDialog.js +2 -2
- package/lib/components/dialog/ConfirmDialog.js.map +1 -1
- package/lib/components/draggable/draggable.d.ts.map +1 -1
- package/lib/components/draggable/draggable.js +10 -9
- package/lib/components/draggable/draggable.js.map +1 -1
- package/lib/components/form/components/field_groups/svg_text_style.d.ts.map +1 -1
- package/lib/components/form/components/field_groups/svg_text_style.js +8 -8
- package/lib/components/form/components/field_groups/svg_text_style.js.map +1 -1
- package/lib/components/form/components/field_groups/svg_text_style.schema.js +1 -1
- package/lib/components/form/components/field_groups/svg_text_style.schema.js.map +1 -1
- package/lib/components/form/components/input/checkbox.js +3 -3
- package/lib/components/form/components/input/checkbox.js.map +1 -1
- package/lib/components/form/components/input/color_picker.js +1 -1
- package/lib/components/form/components/input/color_picker.js.map +1 -1
- package/lib/components/form/components/input/draggable_numeric_input.js +1 -1
- package/lib/components/form/components/input/draggable_numeric_input.js.map +1 -1
- package/lib/components/form/components/input/index.d.ts +1 -0
- package/lib/components/form/components/input/index.d.ts.map +1 -1
- package/lib/components/form/components/input/input.js +1 -1
- package/lib/components/form/components/input/input.js.map +1 -1
- package/lib/components/form/components/input/numeric_input.js +1 -1
- package/lib/components/form/components/input/numeric_input.js.map +1 -1
- package/lib/components/form/components/input/radio_group.js +1 -1
- package/lib/components/form/components/input/radio_group.js.map +1 -1
- package/lib/components/form/components/input/select.js +1 -1
- package/lib/components/form/components/input/select.js.map +1 -1
- package/lib/components/form/components/input/switch.js +1 -1
- package/lib/components/form/components/input/switch.js.map +1 -1
- package/lib/components/form/components/input/textarea.js +1 -1
- package/lib/components/form/components/input/textarea.js.map +1 -1
- package/lib/components/form/components/input_groups/form.js +2 -2
- package/lib/components/form/components/input_groups/form.js.map +1 -1
- package/lib/components/form/components/input_groups/form_context.d.ts +1 -1
- package/lib/components/form/components/input_groups/form_context.js +3 -3
- package/lib/components/form/components/input_groups/form_context.js.map +1 -1
- package/lib/components/form/components/layout/form.d.ts +1 -1
- package/lib/components/form/components/layout/form.d.ts.map +1 -1
- package/lib/components/form/components/layout/form.js +1 -4
- package/lib/components/form/components/layout/form.js.map +1 -1
- package/lib/components/form/utils/validators.d.ts +14 -8
- package/lib/components/form/utils/validators.d.ts.map +1 -1
- package/lib/components/form/utils/validators.js +11 -11
- package/lib/components/form/utils/validators.js.map +1 -1
- package/lib/components/fullscreen/fullscreen_context.d.ts +1 -1
- package/lib/components/fullscreen/fullscreen_context.js +3 -3
- package/lib/components/fullscreen/fullscreen_context.js.map +1 -1
- package/lib/components/fullscreen/fullscreen_context.provider.d.ts +1 -3
- package/lib/components/fullscreen/fullscreen_context.provider.d.ts.map +1 -1
- package/lib/components/fullscreen/fullscreen_context.provider.js +3 -3
- package/lib/components/fullscreen/fullscreen_context.provider.js.map +1 -1
- package/lib/components/hooks/useDoubleClick.js +8 -8
- package/lib/components/hooks/useDoubleClick.js.map +1 -1
- package/lib/components/hooks/useOnClickOutside.js +2 -2
- package/lib/components/hooks/useOnClickOutside.js.map +1 -1
- package/lib/components/hooks/useOnOff.d.ts +1 -1
- package/lib/components/hooks/useOnOff.d.ts.map +1 -1
- package/lib/components/hooks/useOnOff.js +5 -5
- package/lib/components/hooks/useOnOff.js.map +1 -1
- package/lib/components/hooks/useSelect.d.ts.map +1 -1
- package/lib/components/hooks/useSelect.js +4 -3
- package/lib/components/hooks/useSelect.js.map +1 -1
- package/lib/components/hooks/useToggle.d.ts +1 -1
- package/lib/components/hooks/useToggle.d.ts.map +1 -1
- package/lib/components/hooks/useToggle.js +2 -2
- package/lib/components/hooks/useToggle.js.map +1 -1
- package/lib/components/info-panel/InfoPanel.d.ts.map +1 -1
- package/lib/components/info-panel/InfoPanel.js +10 -13
- package/lib/components/info-panel/InfoPanel.js.map +1 -1
- package/lib/components/input/radio-button-group/RadioButtonGroup.d.ts.map +1 -1
- package/lib/components/input/radio-button-group/RadioButtonGroup.js +3 -2
- package/lib/components/input/radio-button-group/RadioButtonGroup.js.map +1 -1
- package/lib/components/logger/FifoLoggerDialog.d.ts.map +1 -1
- package/lib/components/logger/FifoLoggerDialog.js +3 -1
- package/lib/components/logger/FifoLoggerDialog.js.map +1 -1
- package/lib/components/logger/FifoLoggerProvider.d.ts.map +1 -1
- package/lib/components/logger/FifoLoggerProvider.js +2 -2
- package/lib/components/logger/FifoLoggerProvider.js.map +1 -1
- package/lib/components/logger/loggerContext.d.ts +1 -1
- package/lib/components/logger/loggerContext.js +1 -1
- package/lib/components/logger/useFifoLogger.d.ts.map +1 -1
- package/lib/components/logger/useFifoLogger.js +7 -5
- package/lib/components/logger/useFifoLogger.js.map +1 -1
- package/lib/components/root-layout/root_layout.d.ts.map +1 -1
- package/lib/components/root-layout/root_layout.js +5 -3
- package/lib/components/root-layout/root_layout.js.map +1 -1
- package/lib/components/root-layout/root_layout_context.d.ts +1 -1
- package/lib/components/root-layout/root_layout_context.js +3 -3
- package/lib/components/root-layout/root_layout_context.js.map +1 -1
- package/lib/components/root-layout/root_layout_context.provider.js +2 -2
- package/lib/components/root-layout/root_layout_context.provider.js.map +1 -1
- package/lib/components/selected-total/SelectedTotal.js +1 -1
- package/lib/components/selected-total/SelectedTotal.js.map +1 -1
- package/lib/components/split_pane/split_pane.d.ts.map +1 -1
- package/lib/components/split_pane/split_pane.js +14 -18
- package/lib/components/split_pane/split_pane.js.map +1 -1
- package/lib/components/split_pane/split_pane_helpers.js +1 -1
- package/lib/components/split_pane/split_pane_helpers.js.map +1 -1
- package/lib/components/split_pane/use_split_pane_size.d.ts.map +1 -1
- package/lib/components/split_pane/use_split_pane_size.js +4 -3
- package/lib/components/split_pane/use_split_pane_size.js.map +1 -1
- package/lib/components/table/default_table_cell.d.ts.map +1 -1
- package/lib/components/table/default_table_cell.js +6 -14
- package/lib/components/table/default_table_cell.js.map +1 -1
- package/lib/components/table/flash_row/flashed_row_context.d.ts +1 -1
- package/lib/components/table/flash_row/flashed_row_context.js +3 -3
- package/lib/components/table/flash_row/flashed_row_context.js.map +1 -1
- package/lib/components/table/flash_row/flashed_row_provider.d.ts.map +1 -1
- package/lib/components/table/flash_row/flashed_row_provider.js +5 -4
- package/lib/components/table/flash_row/flashed_row_provider.js.map +1 -1
- package/lib/components/table/flash_row/use_flash_row_effect.d.ts.map +1 -1
- package/lib/components/table/flash_row/use_flash_row_effect.js +6 -5
- package/lib/components/table/flash_row/use_flash_row_effect.js.map +1 -1
- package/lib/components/table/preview_table.js +2 -2
- package/lib/components/table/preview_table.js.map +1 -1
- package/lib/components/table/preview_table_context.d.ts +2 -2
- package/lib/components/table/preview_table_context.js +6 -6
- package/lib/components/table/preview_table_context.js.map +1 -1
- package/lib/components/table/reorder_rows/draggable_row_context.d.ts +4 -6
- package/lib/components/table/reorder_rows/draggable_row_context.d.ts.map +1 -1
- package/lib/components/table/reorder_rows/draggable_row_context.js +3 -3
- package/lib/components/table/reorder_rows/draggable_row_context.js.map +1 -1
- package/lib/components/table/reorder_rows/draggable_row_tr.d.ts.map +1 -1
- package/lib/components/table/reorder_rows/draggable_row_tr.js +4 -3
- package/lib/components/table/reorder_rows/draggable_row_tr.js.map +1 -1
- package/lib/components/table/reorder_rows/item_order_context.d.ts +2 -2
- package/lib/components/table/reorder_rows/item_order_context.d.ts.map +1 -1
- package/lib/components/table/reorder_rows/item_order_context.js +3 -3
- package/lib/components/table/reorder_rows/item_order_context.js.map +1 -1
- package/lib/components/table/reorder_rows/item_order_provider.d.ts.map +1 -1
- package/lib/components/table/reorder_rows/item_order_provider.js +2 -2
- package/lib/components/table/reorder_rows/item_order_provider.js.map +1 -1
- package/lib/components/table/reorder_rows/use_drop_monitor.d.ts +2 -2
- package/lib/components/table/reorder_rows/use_drop_monitor.d.ts.map +1 -1
- package/lib/components/table/reorder_rows/use_drop_monitor.js +4 -4
- package/lib/components/table/reorder_rows/use_drop_monitor.js.map +1 -1
- package/lib/components/table/table_body.d.ts.map +1 -1
- package/lib/components/table/table_body.js +10 -6
- package/lib/components/table/table_body.js.map +1 -1
- package/lib/components/table/table_features.js +7 -7
- package/lib/components/table/table_features.js.map +1 -1
- package/lib/components/table/table_header_cell.d.ts +1 -1
- package/lib/components/table/table_header_cell.d.ts.map +1 -1
- package/lib/components/table/table_root.d.ts +2 -2
- package/lib/components/table/table_root.d.ts.map +1 -1
- package/lib/components/table/table_root.js +12 -12
- package/lib/components/table/table_root.js.map +1 -1
- package/lib/components/table/table_utils.d.ts +1 -1
- package/lib/components/table/table_utils.d.ts.map +1 -1
- package/lib/components/table/table_utils.js.map +1 -1
- package/lib/components/table/use_table_columns.d.ts +2 -2
- package/lib/components/table/use_table_columns.d.ts.map +1 -1
- package/lib/components/table/use_table_columns.js +4 -4
- package/lib/components/table/use_table_columns.js.map +1 -1
- package/lib/components/table/use_table_scroll.d.ts.map +1 -1
- package/lib/components/table/use_table_scroll.js +13 -15
- package/lib/components/table/use_table_scroll.js.map +1 -1
- package/lib/components/toolbar/OverflowButton.js +5 -5
- package/lib/components/toolbar/OverflowButton.js.map +1 -1
- package/lib/components/toolbar/Toolbar.d.ts.map +1 -1
- package/lib/components/toolbar/Toolbar.js +5 -8
- package/lib/components/toolbar/Toolbar.js.map +1 -1
- package/lib/components/toolbar/TooltipHelpContent.d.ts.map +1 -1
- package/lib/components/toolbar/TooltipHelpContent.js +5 -2
- package/lib/components/toolbar/TooltipHelpContent.js.map +1 -1
- package/lib/components/toolbar/toolbarContext.d.ts +3 -3
- package/lib/components/toolbar/toolbarContext.d.ts.map +1 -1
- package/lib/components/toolbar/toolbarContext.js +4 -4
- package/lib/components/toolbar/toolbarContext.js.map +1 -1
- package/lib/components/toolbar/useCheckOverflow.d.ts.map +1 -1
- package/lib/components/toolbar/useCheckOverflow.js +1 -0
- package/lib/components/toolbar/useCheckOverflow.js.map +1 -1
- package/lib/components/utils/debounce.d.ts +1 -1
- package/lib/components/utils/debounce.d.ts.map +1 -1
- package/lib/components/utils/debounce.js +3 -3
- package/lib/components/utils/debounce.js.map +1 -1
- package/lib/components/utils/forward_all_props_except.d.ts +2 -0
- package/lib/components/utils/forward_all_props_except.d.ts.map +1 -0
- package/lib/components/utils/{shouldForwardPropExcept.js → forward_all_props_except.js} +2 -2
- package/lib/components/utils/forward_all_props_except.js.map +1 -0
- package/lib/components/utils/svg.d.ts.map +1 -1
- package/lib/components/utils/svg.js +12 -6
- package/lib/components/utils/svg.js.map +1 -1
- package/lib/components/utils/svg_path_builder.d.ts +8 -8
- package/lib/components/utils/svg_path_builder.d.ts.map +1 -1
- package/lib/components/utils/svg_path_builder.js +16 -14
- package/lib/components/utils/svg_path_builder.js.map +1 -1
- package/lib/components/utils/throttle.d.ts +1 -1
- package/lib/components/utils/throttle.d.ts.map +1 -1
- package/lib/components/utils/throttle.js +10 -9
- package/lib/components/utils/throttle.js.map +1 -1
- package/package.json +47 -47
- package/src/components/accordion/accordion_context.ts +3 -3
- package/src/components/accordion/accordion_context_provider.tsx +3 -7
- package/src/components/accordion/accordion_hooks.ts +3 -3
- package/src/components/button/Button.tsx +11 -2
- package/src/components/color-picker/react-color/ColorPicker.tsx +36 -30
- package/src/components/color-picker/react-color/common/Alpha.tsx +5 -7
- package/src/components/color-picker/react-color/common/CheckBoard.tsx +2 -4
- package/src/components/color-picker/react-color/common/EditableInput.tsx +35 -29
- package/src/components/color-picker/react-color/common/Hue.tsx +5 -7
- package/src/components/color-picker/react-color/common/Saturation.tsx +7 -9
- package/src/components/color-picker/react-color/common/Swatch.tsx +18 -9
- package/src/components/color-picker/react-color/common/interaction.tsx +12 -13
- package/src/components/color-picker/react-color/common/useOnChange.tsx +2 -2
- package/src/components/color-picker/react-color/helpers/alpha.ts +6 -5
- package/src/components/color-picker/react-color/helpers/color.ts +16 -13
- package/src/components/color-picker/react-color/helpers/hue.ts +16 -25
- package/src/components/color-picker/react-color/helpers/saturation.ts +5 -3
- package/src/components/color-picker/react-color/sketch/SketchFields.tsx +8 -8
- package/src/components/color-picker/react-color/sketch/SketchPresetColors.tsx +9 -9
- package/src/components/dialog/ConfirmDialog.tsx +2 -2
- package/src/components/draggable/draggable.tsx +20 -18
- package/src/components/form/components/field_groups/svg_text_style.schema.ts +1 -1
- package/src/components/form/components/field_groups/svg_text_style.tsx +17 -15
- package/src/components/form/components/input/checkbox.tsx +3 -3
- package/src/components/form/components/input/color_picker.tsx +1 -1
- package/src/components/form/components/input/draggable_numeric_input.tsx +1 -1
- package/src/components/form/components/input/index.ts +1 -0
- package/src/components/form/components/input/input.tsx +1 -1
- package/src/components/form/components/input/numeric_input.tsx +1 -1
- package/src/components/form/components/input/radio_group.tsx +1 -1
- package/src/components/form/components/input/select.tsx +1 -1
- package/src/components/form/components/input/switch.tsx +1 -1
- package/src/components/form/components/input/textarea.tsx +1 -1
- package/src/components/form/components/input_groups/form.tsx +3 -3
- package/src/components/form/components/input_groups/form_context.ts +3 -3
- package/src/components/form/components/layout/form.tsx +4 -6
- package/src/components/form/utils/validators.ts +29 -23
- package/src/components/fullscreen/fullscreen_context.provider.tsx +4 -9
- package/src/components/fullscreen/fullscreen_context.ts +3 -3
- package/src/components/hooks/useDoubleClick.ts +8 -8
- package/src/components/hooks/useOnClickOutside.ts +2 -2
- package/src/components/hooks/useOnOff.ts +5 -5
- package/src/components/hooks/useSelect.tsx +5 -3
- package/src/components/hooks/useToggle.ts +2 -2
- package/src/components/info-panel/InfoPanel.tsx +12 -16
- package/src/components/input/radio-button-group/RadioButtonGroup.tsx +5 -2
- package/src/components/logger/FifoLoggerDialog.tsx +1 -0
- package/src/components/logger/FifoLoggerProvider.tsx +2 -4
- package/src/components/logger/loggerContext.ts +1 -1
- package/src/components/logger/useFifoLogger.ts +7 -5
- package/src/components/root-layout/root_layout.tsx +6 -3
- package/src/components/root-layout/root_layout_context.provider.tsx +3 -3
- package/src/components/root-layout/root_layout_context.ts +3 -3
- package/src/components/selected-total/SelectedTotal.tsx +1 -1
- package/src/components/split_pane/split_pane.tsx +17 -20
- package/src/components/split_pane/split_pane_helpers.ts +1 -1
- package/src/components/split_pane/use_split_pane_size.tsx +4 -3
- package/src/components/table/default_table_cell.tsx +10 -11
- package/src/components/table/flash_row/flashed_row_context.ts +3 -3
- package/src/components/table/flash_row/flashed_row_provider.tsx +8 -6
- package/src/components/table/flash_row/use_flash_row_effect.ts +7 -5
- package/src/components/table/preview_table.tsx +3 -3
- package/src/components/table/preview_table_context.ts +6 -6
- package/src/components/table/reorder_rows/draggable_row_context.ts +6 -10
- package/src/components/table/reorder_rows/draggable_row_tr.tsx +11 -6
- package/src/components/table/reorder_rows/item_order_context.ts +4 -4
- package/src/components/table/reorder_rows/item_order_provider.tsx +2 -6
- package/src/components/table/reorder_rows/use_drop_monitor.ts +4 -4
- package/src/components/table/table_body.tsx +19 -5
- package/src/components/table/table_features.ts +12 -12
- package/src/components/table/table_root.tsx +20 -18
- package/src/components/table/table_utils.ts +4 -5
- package/src/components/table/use_table_columns.ts +7 -7
- package/src/components/table/use_table_scroll.ts +18 -21
- package/src/components/toolbar/OverflowButton.tsx +5 -5
- package/src/components/toolbar/Toolbar.tsx +8 -20
- package/src/components/toolbar/TooltipHelpContent.tsx +10 -5
- package/src/components/toolbar/toolbarContext.ts +5 -7
- package/src/components/toolbar/useCheckOverflow.tsx +1 -0
- package/src/components/utils/debounce.ts +5 -5
- package/src/components/utils/{shouldForwardPropExcept.ts → forward_all_props_except.ts} +1 -1
- package/src/components/utils/svg.ts +5 -2
- package/src/components/utils/svg_path_builder.ts +22 -19
- package/src/components/utils/throttle.ts +13 -11
- package/lib/components/utils/shouldForwardPropExcept.d.ts +0 -2
- package/lib/components/utils/shouldForwardPropExcept.d.ts.map +0 -1
- package/lib/components/utils/shouldForwardPropExcept.js.map +0 -1
|
@@ -9,6 +9,7 @@ import { FullScreenProvider } from '../fullscreen/index.js';
|
|
|
9
9
|
import { CustomDivPreflight } from './css-reset/customPreflight.js';
|
|
10
10
|
import { RootLayoutProvider } from './root_layout_context.provider.js';
|
|
11
11
|
|
|
12
|
+
// eslint-disable-next-line unicorn/no-top-level-side-effects
|
|
12
13
|
FocusStyleManager.onlyShowFocusOnTabs();
|
|
13
14
|
|
|
14
15
|
interface RootLayoutProps {
|
|
@@ -42,10 +43,12 @@ export function RootLayout(props: RootLayoutProps) {
|
|
|
42
43
|
<CustomDivPreflight
|
|
43
44
|
id="root-layout"
|
|
44
45
|
ref={(node) => {
|
|
45
|
-
if (node) {
|
|
46
|
-
|
|
47
|
-
refCallback(node);
|
|
46
|
+
if (!node) {
|
|
47
|
+
return;
|
|
48
48
|
}
|
|
49
|
+
|
|
50
|
+
fullscreenRef.current = node;
|
|
51
|
+
refCallback(node);
|
|
49
52
|
}}
|
|
50
53
|
style={{
|
|
51
54
|
...style,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { RootLayoutContext } from './root_layout_context.js';
|
|
4
4
|
|
|
5
5
|
export function RootLayoutProvider(props: {
|
|
6
6
|
children: ReactNode;
|
|
7
7
|
innerRef: HTMLElement | null;
|
|
8
8
|
}) {
|
|
9
9
|
return (
|
|
10
|
-
<
|
|
10
|
+
<RootLayoutContext value={props.innerRef}>
|
|
11
11
|
{props.children}
|
|
12
|
-
</
|
|
12
|
+
</RootLayoutContext>
|
|
13
13
|
);
|
|
14
14
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { createContext,
|
|
1
|
+
import { createContext, use } from 'react';
|
|
2
2
|
|
|
3
3
|
const defaultPortalContext =
|
|
4
4
|
typeof document === 'undefined' ? null : document.body;
|
|
5
5
|
|
|
6
|
-
export const
|
|
6
|
+
export const RootLayoutContext = createContext<HTMLElement | null>(
|
|
7
7
|
defaultPortalContext,
|
|
8
8
|
);
|
|
9
9
|
|
|
10
10
|
export function useRootLayoutContext() {
|
|
11
|
-
return
|
|
11
|
+
return use(RootLayoutContext);
|
|
12
12
|
}
|
|
@@ -18,7 +18,7 @@ export function SelectedTotal(props: SelectedTotalProps) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
function formatCounterLabel(count?: number, total?: number) {
|
|
21
|
-
const thinSpace = '\
|
|
21
|
+
const thinSpace = '\u{2009}';
|
|
22
22
|
if (count !== undefined && total !== undefined) {
|
|
23
23
|
return `[${thinSpace}${count}${thinSpace}/${thinSpace}${total}${thinSpace}]`;
|
|
24
24
|
}
|
|
@@ -3,9 +3,9 @@ import styled from '@emotion/styled';
|
|
|
3
3
|
import { useControllableState } from '@radix-ui/react-use-controllable-state';
|
|
4
4
|
import type {
|
|
5
5
|
CSSProperties,
|
|
6
|
-
MutableRefObject,
|
|
7
6
|
PointerEvent as ReactPointerEvent,
|
|
8
7
|
ReactNode,
|
|
8
|
+
RefObject,
|
|
9
9
|
} from 'react';
|
|
10
10
|
import { useEffect, useReducer, useRef } from 'react';
|
|
11
11
|
import { useResizeObserver } from 'react-d3-utils';
|
|
@@ -15,9 +15,6 @@ import type { SplitPaneSize, SplitPaneType } from './split_pane_helpers.js';
|
|
|
15
15
|
import { parseSize, serializeSize } from './split_pane_helpers.js';
|
|
16
16
|
import { useSplitPaneSize } from './use_split_pane_size.js';
|
|
17
17
|
|
|
18
|
-
// Remove for React 19.
|
|
19
|
-
type RefObject<T> = MutableRefObject<T>;
|
|
20
|
-
|
|
21
18
|
export type SplitPaneDirection = 'vertical' | 'horizontal';
|
|
22
19
|
export type SplitPaneSide = 'start' | 'end';
|
|
23
20
|
|
|
@@ -279,11 +276,11 @@ function isSideVisible(
|
|
|
279
276
|
) {
|
|
280
277
|
if (!isOpen) {
|
|
281
278
|
return !isControlledSide;
|
|
282
|
-
} else if (type === '%') {
|
|
283
|
-
return isControlledSide ? size !== 0 : size !== 100;
|
|
284
|
-
} else {
|
|
285
|
-
return isControlledSide ? size !== 0 : size !== parentSize;
|
|
286
279
|
}
|
|
280
|
+
if (type === '%') {
|
|
281
|
+
return size !== (isControlledSide ? 0 : 100);
|
|
282
|
+
}
|
|
283
|
+
return size !== (isControlledSide ? 0 : parentSize);
|
|
287
284
|
}
|
|
288
285
|
|
|
289
286
|
function getItemStyle(
|
|
@@ -297,7 +294,8 @@ function getItemStyle(
|
|
|
297
294
|
const base: CSSProperties = { display: 'flex', overflow: 'hidden' };
|
|
298
295
|
if (!isOpen) {
|
|
299
296
|
return isControlledSide ? { display: 'none' } : { flex: '1 1 0%', ...base };
|
|
300
|
-
}
|
|
297
|
+
}
|
|
298
|
+
if (type === '%' && size !== 0) {
|
|
301
299
|
return isControlledSide
|
|
302
300
|
? {
|
|
303
301
|
...base,
|
|
@@ -308,18 +306,17 @@ function getItemStyle(
|
|
|
308
306
|
flex: `${percentToFlex(size)} 0 0%`,
|
|
309
307
|
[isHorizontal ? 'minWidth' : 'minHeight']: 0,
|
|
310
308
|
};
|
|
311
|
-
} else {
|
|
312
|
-
return isControlledSide
|
|
313
|
-
? {
|
|
314
|
-
...base,
|
|
315
|
-
[isHorizontal ? 'width' : 'height']: size,
|
|
316
|
-
}
|
|
317
|
-
: {
|
|
318
|
-
...base,
|
|
319
|
-
flex: '1 1 0%',
|
|
320
|
-
[isHorizontal ? 'minWidth' : 'minHeight']: 0,
|
|
321
|
-
};
|
|
322
309
|
}
|
|
310
|
+
return isControlledSide
|
|
311
|
+
? {
|
|
312
|
+
...base,
|
|
313
|
+
[isHorizontal ? 'width' : 'height']: size,
|
|
314
|
+
}
|
|
315
|
+
: {
|
|
316
|
+
...base,
|
|
317
|
+
flex: '1 1 0%',
|
|
318
|
+
[isHorizontal ? 'minWidth' : 'minHeight']: 0,
|
|
319
|
+
};
|
|
323
320
|
}
|
|
324
321
|
|
|
325
322
|
const Split = styled.div<{
|
|
@@ -7,7 +7,7 @@ export interface ParsedSplitPaneSize {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export function parseSize(size: string): ParsedSplitPaneSize {
|
|
10
|
-
const value = Number
|
|
10
|
+
const value = Number(size);
|
|
11
11
|
// remove numbers and dots from the string
|
|
12
12
|
const type = size.replaceAll(/[\d .]/g, '') as SplitPaneType;
|
|
13
13
|
|
|
@@ -61,10 +61,11 @@ export function useSplitPaneSize(options: UseSplitPaneSizeOptions) {
|
|
|
61
61
|
? clientX - bounds.left
|
|
62
62
|
: clientY - bounds.top;
|
|
63
63
|
|
|
64
|
-
const
|
|
64
|
+
const centralizingClientValue =
|
|
65
65
|
direction === 'horizontal'
|
|
66
|
-
? splitterRef.current.clientWidth
|
|
67
|
-
: splitterRef.current.clientHeight
|
|
66
|
+
? splitterRef.current.clientWidth
|
|
67
|
+
: splitterRef.current.clientHeight;
|
|
68
|
+
const centralizingValue = centralizingClientValue / 2;
|
|
68
69
|
|
|
69
70
|
const value =
|
|
70
71
|
controlledSide === 'start' ? client : parentDimension - client;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CellContext, RowData } from '@tanstack/react-table';
|
|
2
|
+
import { P, match } from 'ts-pattern';
|
|
2
3
|
|
|
3
4
|
import * as ValueRenderers from '../value-renderers/index.js';
|
|
4
5
|
|
|
@@ -8,15 +9,13 @@ import type { ReactScienceTableFeatures } from './table_features.js';
|
|
|
8
9
|
export function defaultTableCell<TData extends RowData, TValue = unknown>(
|
|
9
10
|
context: CellContext<ReactScienceTableFeatures, TData, TValue>,
|
|
10
11
|
) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return <ValueRenderers.Text value={`${value}`} />;
|
|
21
|
-
}
|
|
12
|
+
return match(context.getValue())
|
|
13
|
+
.with(P.string, (value) => <ValueRenderers.Text value={value as string} />)
|
|
14
|
+
.with(P.number, (value) => (
|
|
15
|
+
<ValueRenderers.Number value={value as number} />
|
|
16
|
+
))
|
|
17
|
+
.with(P.boolean, (value) => (
|
|
18
|
+
<ValueRenderers.Boolean value={value as boolean} />
|
|
19
|
+
))
|
|
20
|
+
.otherwise((value) => <ValueRenderers.Text value={String(value)} />);
|
|
22
21
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { useState } from 'react';
|
|
2
|
-
import { createContext,
|
|
2
|
+
import { createContext, use } from 'react';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* An editable state containing the ID of the next item to flash.
|
|
6
6
|
*/
|
|
7
7
|
type FlashedRowContextValue = ReturnType<typeof useState<string>>;
|
|
8
8
|
|
|
9
|
-
export const
|
|
9
|
+
export const FlashedRowContext = createContext<FlashedRowContextValue | null>(
|
|
10
10
|
null,
|
|
11
11
|
);
|
|
12
12
|
|
|
13
13
|
export function useFlashedRowContext() {
|
|
14
|
-
const context =
|
|
14
|
+
const context = use(FlashedRowContext);
|
|
15
15
|
|
|
16
16
|
if (!context) {
|
|
17
17
|
throw new Error(
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
import { useState } from 'react';
|
|
2
|
+
import { useMemo, useState } from 'react';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { FlashedRowContext } from './flashed_row_context.js';
|
|
5
5
|
|
|
6
6
|
export function FlashedRowProvider(props: { children: ReactNode }) {
|
|
7
|
-
const value = useState<string>();
|
|
7
|
+
const [value, setValue] = useState<string>();
|
|
8
|
+
const contextValue: ReturnType<typeof useState<string>> = useMemo(
|
|
9
|
+
() => [value, setValue],
|
|
10
|
+
[value],
|
|
11
|
+
);
|
|
8
12
|
return (
|
|
9
|
-
<
|
|
10
|
-
{props.children}
|
|
11
|
-
</flashedRowContext.Provider>
|
|
13
|
+
<FlashedRowContext value={contextValue}>{props.children}</FlashedRowContext>
|
|
12
14
|
);
|
|
13
15
|
}
|
|
@@ -10,12 +10,14 @@ export function useFlashRowEffect(
|
|
|
10
10
|
) {
|
|
11
11
|
const [flashedItemId, setFlashedItemId] = useFlashedRowContext();
|
|
12
12
|
useEffect(() => {
|
|
13
|
-
if (flashedItemId
|
|
14
|
-
|
|
15
|
-
// In a virtualized table, prevent the flash from happening again
|
|
16
|
-
// when the component remounts
|
|
17
|
-
setFlashedItemId(undefined);
|
|
13
|
+
if (flashedItemId !== id || !tableRowRef.current) {
|
|
14
|
+
return;
|
|
18
15
|
}
|
|
16
|
+
|
|
17
|
+
triggerPostFlash(tableRowRef.current);
|
|
18
|
+
// In a virtualized table, prevent the flash from happening again
|
|
19
|
+
// when the component remounts
|
|
20
|
+
setFlashedItemId(undefined);
|
|
19
21
|
}, [flashedItemId, id, setFlashedItemId, tableRowRef]);
|
|
20
22
|
}
|
|
21
23
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Row, RowData } from '@tanstack/react-table';
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
|
|
4
|
+
IsPreviewTableContext,
|
|
5
5
|
usePreviewTableProps,
|
|
6
6
|
} from './preview_table_context.js';
|
|
7
7
|
import type { ReactScienceTableFeatures } from './table_features.js';
|
|
@@ -12,8 +12,8 @@ export function PreviewTable<TData extends RowData>(props: {
|
|
|
12
12
|
}) {
|
|
13
13
|
const tablePreviewProps = usePreviewTableProps<TData>();
|
|
14
14
|
return (
|
|
15
|
-
<
|
|
15
|
+
<IsPreviewTableContext value>
|
|
16
16
|
<Table {...tablePreviewProps} noHeader data={[props.row.original]} />
|
|
17
|
-
</
|
|
17
|
+
</IsPreviewTableContext>
|
|
18
18
|
);
|
|
19
19
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RowData } from '@tanstack/react-table';
|
|
2
|
-
import { createContext,
|
|
2
|
+
import { createContext, use } from 'react';
|
|
3
3
|
|
|
4
4
|
import type { TableProps } from './table_root.js';
|
|
5
5
|
|
|
@@ -10,11 +10,11 @@ export type PreviewTablePropsContextValue<TData extends RowData> = Pick<
|
|
|
10
10
|
'getTdProps' | 'columns' | 'className' | 'renderRowTr' | 'compact'
|
|
11
11
|
>;
|
|
12
12
|
|
|
13
|
-
export const
|
|
13
|
+
export const PreviewTablePropsContext =
|
|
14
14
|
createContext<PreviewTablePropsContextValue<RowData> | null>(null);
|
|
15
15
|
|
|
16
16
|
export function usePreviewTableProps<TData extends RowData>() {
|
|
17
|
-
const value =
|
|
17
|
+
const value = use(PreviewTablePropsContext);
|
|
18
18
|
if (value === null) {
|
|
19
19
|
throw new Error(
|
|
20
20
|
'useTablePreviewProps must be used within a TablePreviewContextProvider',
|
|
@@ -24,10 +24,10 @@ export function usePreviewTableProps<TData extends RowData>() {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export const PreviewTablePropsContextProvider =
|
|
27
|
-
|
|
27
|
+
PreviewTablePropsContext.Provider;
|
|
28
28
|
|
|
29
|
-
export const
|
|
29
|
+
export const IsPreviewTableContext = createContext(false);
|
|
30
30
|
|
|
31
31
|
export function useIsPreviewTable() {
|
|
32
|
-
return
|
|
32
|
+
return use(IsPreviewTableContext);
|
|
33
33
|
}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { createContext,
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
import { createContext, use } from 'react';
|
|
3
3
|
|
|
4
4
|
import type { DraggableItemState } from './item_data.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
type RefObject<T> = MutableRefObject<T>;
|
|
8
|
-
|
|
9
|
-
export interface DraggableRowContext {
|
|
6
|
+
export interface DraggableRowContextValue {
|
|
10
7
|
state: DraggableItemState;
|
|
11
8
|
dragHandleRef: RefObject<HTMLButtonElement | null>;
|
|
12
9
|
}
|
|
13
10
|
|
|
14
|
-
export const
|
|
15
|
-
null
|
|
16
|
-
);
|
|
11
|
+
export const DraggableRowContext =
|
|
12
|
+
createContext<DraggableRowContextValue | null>(null);
|
|
17
13
|
|
|
18
14
|
export function useTableDraggableRowContext() {
|
|
19
|
-
const context =
|
|
15
|
+
const context = use(DraggableRowContext);
|
|
20
16
|
if (!context) {
|
|
21
17
|
throw new Error(
|
|
22
18
|
'useDraggableItemContext must be used within an ItemContextProvider',
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
pointerOutsideOfPreview,
|
|
10
10
|
setCustomNativeDragPreview,
|
|
11
11
|
} from '@zakodium/pdnd-esm';
|
|
12
|
+
import type { Mandatory } from '@zakodium/utils';
|
|
12
13
|
import { assert } from '@zakodium/utils';
|
|
13
14
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
14
15
|
import { createPortal } from 'react-dom';
|
|
@@ -22,8 +23,8 @@ import type {
|
|
|
22
23
|
TableRowTrRenderProps,
|
|
23
24
|
} from '../table_utils.js';
|
|
24
25
|
|
|
25
|
-
import type {
|
|
26
|
-
import {
|
|
26
|
+
import type { DraggableRowContextValue } from './draggable_row_context.js';
|
|
27
|
+
import { DraggableRowContext } from './draggable_row_context.js';
|
|
27
28
|
import type { DraggableItemState } from './item_data.js';
|
|
28
29
|
import { getItemData, isItemData } from './item_data.js';
|
|
29
30
|
import { useItemOrder } from './item_order_context.js';
|
|
@@ -43,13 +44,17 @@ export interface TableDraggableRowTrProps<TData extends RowData> {
|
|
|
43
44
|
renderRowPreview?: TableRowPreviewRenderer<TData>;
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
const defaultRenderRowPreview: Mandatory<
|
|
48
|
+
TableDraggableRowTrProps<RowData>['renderRowPreview']
|
|
49
|
+
> = (row) => <PreviewTable row={row} />;
|
|
50
|
+
|
|
46
51
|
export function TableDraggableRowTr<TData extends RowData>(
|
|
47
52
|
props: TableDraggableRowTrProps<TData>,
|
|
48
53
|
) {
|
|
49
54
|
const {
|
|
50
55
|
trProps,
|
|
51
56
|
row,
|
|
52
|
-
renderRowPreview =
|
|
57
|
+
renderRowPreview = defaultRenderRowPreview as TableRowPreviewRenderer<TData>,
|
|
53
58
|
} = props;
|
|
54
59
|
const { instanceId } = useItemOrder();
|
|
55
60
|
const isPreview = useIsPreviewTable();
|
|
@@ -137,7 +142,7 @@ export function TableDraggableRowTr<TData extends RowData>(
|
|
|
137
142
|
|
|
138
143
|
useFlashRowEffect(row.id, tableRowRef);
|
|
139
144
|
|
|
140
|
-
const value = useMemo<
|
|
145
|
+
const value = useMemo<DraggableRowContextValue>(() => {
|
|
141
146
|
return {
|
|
142
147
|
dragHandleRef,
|
|
143
148
|
state,
|
|
@@ -146,9 +151,9 @@ export function TableDraggableRowTr<TData extends RowData>(
|
|
|
146
151
|
|
|
147
152
|
return (
|
|
148
153
|
<>
|
|
149
|
-
<
|
|
154
|
+
<DraggableRowContext value={value}>
|
|
150
155
|
<tr {...trProps} ref={tableRowRef} />
|
|
151
|
-
</
|
|
156
|
+
</DraggableRowContext>
|
|
152
157
|
{state.type === 'preview' &&
|
|
153
158
|
createPortal(renderRowPreview(row), state.container)}
|
|
154
159
|
</>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Edge } from '@zakodium/pdnd-esm';
|
|
2
|
-
import { createContext,
|
|
2
|
+
import { createContext, use } from 'react';
|
|
3
3
|
|
|
4
|
-
export type ReorderItemCallback = (
|
|
4
|
+
export type ReorderItemCallback = (options: {
|
|
5
5
|
startIndex: number;
|
|
6
6
|
indexOfTarget: number;
|
|
7
7
|
closestEdgeOfTarget: Edge | null;
|
|
@@ -13,12 +13,12 @@ export interface ItemOrderContextValue {
|
|
|
13
13
|
instanceId: symbol;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export const
|
|
16
|
+
export const ItemOrderContext = createContext<ItemOrderContextValue | null>(
|
|
17
17
|
null,
|
|
18
18
|
);
|
|
19
19
|
|
|
20
20
|
export function useItemOrder() {
|
|
21
|
-
const context =
|
|
21
|
+
const context = use(ItemOrderContext);
|
|
22
22
|
if (!context) {
|
|
23
23
|
throw new Error('useItemOrder must be used within a ListContextProvider');
|
|
24
24
|
}
|
|
@@ -9,7 +9,7 @@ import type {
|
|
|
9
9
|
ItemOrderContextValue,
|
|
10
10
|
ReorderItemCallback,
|
|
11
11
|
} from './item_order_context.js';
|
|
12
|
-
import {
|
|
12
|
+
import { ItemOrderContext } from './item_order_context.js';
|
|
13
13
|
|
|
14
14
|
interface ItemOrderProviderProps<T extends RowData> {
|
|
15
15
|
items: Array<Row<ReactScienceTableFeatures, T>>;
|
|
@@ -56,9 +56,5 @@ export function ItemOrderProvider<T extends RowData = RowData>(
|
|
|
56
56
|
};
|
|
57
57
|
}, [reorderItem, items, instanceId]);
|
|
58
58
|
|
|
59
|
-
return
|
|
60
|
-
<itemOrderContext.Provider value={value}>
|
|
61
|
-
{children}
|
|
62
|
-
</itemOrderContext.Provider>
|
|
63
|
-
);
|
|
59
|
+
return <ItemOrderContext value={value}>{children}</ItemOrderContext>;
|
|
64
60
|
}
|
|
@@ -18,16 +18,16 @@ import { useItemOrder } from './item_order_context.js';
|
|
|
18
18
|
* Monitor drop events.
|
|
19
19
|
* Check if they can be acted on to reorder items.
|
|
20
20
|
* @param scrollElementRef The element to auto-scroll when dragging elements.
|
|
21
|
-
* @param
|
|
21
|
+
* @param isEnabled Enable or disable the monitoring.
|
|
22
22
|
*/
|
|
23
23
|
export function useDropMonitor(
|
|
24
24
|
scrollElementRef: RefObject<Element | null>,
|
|
25
|
-
|
|
25
|
+
isEnabled: boolean,
|
|
26
26
|
) {
|
|
27
27
|
const { reorderItem, items } = useItemOrder();
|
|
28
28
|
const [, setFlashedRow] = useFlashedRowContext();
|
|
29
29
|
useEffect(() => {
|
|
30
|
-
if (!
|
|
30
|
+
if (!isEnabled) {
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -75,5 +75,5 @@ export function useDropMonitor(
|
|
|
75
75
|
element: scrollContainer,
|
|
76
76
|
}),
|
|
77
77
|
);
|
|
78
|
-
}, [items, reorderItem, scrollElementRef, setFlashedRow,
|
|
78
|
+
}, [items, reorderItem, scrollElementRef, setFlashedRow, isEnabled]);
|
|
79
79
|
}
|
|
@@ -4,7 +4,7 @@ import type { Row, RowData } from '@tanstack/react-table';
|
|
|
4
4
|
import type { VirtualItem, Virtualizer } from '@tanstack/react-virtual';
|
|
5
5
|
import { notUndefined } from '@tanstack/react-virtual';
|
|
6
6
|
import type { CSSProperties, ReactNode } from 'react';
|
|
7
|
-
import { Fragment } from 'react';
|
|
7
|
+
import { Fragment, useMemo } from 'react';
|
|
8
8
|
|
|
9
9
|
import { TableDraggableRowTr } from './reorder_rows/index.js';
|
|
10
10
|
import type { ReactScienceTableFeatures } from './table_features.js';
|
|
@@ -43,7 +43,6 @@ export function TableBody<TData extends RowData>(props: TableBodyProps<TData>) {
|
|
|
43
43
|
getTdProps,
|
|
44
44
|
isReorderingEnabled,
|
|
45
45
|
renderRowPreview,
|
|
46
|
-
renderRowTr = getDefaultRenderRowTr(isReorderingEnabled, renderRowPreview),
|
|
47
46
|
virtualizer,
|
|
48
47
|
virtualizeRows,
|
|
49
48
|
emptyContent,
|
|
@@ -51,6 +50,13 @@ export function TableBody<TData extends RowData>(props: TableBodyProps<TData>) {
|
|
|
51
50
|
columns,
|
|
52
51
|
} = props;
|
|
53
52
|
|
|
53
|
+
const renderRowTr = useMemo(
|
|
54
|
+
() =>
|
|
55
|
+
props.renderRowTr ??
|
|
56
|
+
getDefaultRenderRowTr(isReorderingEnabled, renderRowPreview),
|
|
57
|
+
[props.renderRowTr, isReorderingEnabled, renderRowPreview],
|
|
58
|
+
);
|
|
59
|
+
|
|
54
60
|
if (virtualizeRows) {
|
|
55
61
|
const virtualItems = virtualizer.getVirtualItems();
|
|
56
62
|
const [before, after] =
|
|
@@ -128,9 +134,11 @@ interface EmptyRowProps {
|
|
|
128
134
|
columns: number;
|
|
129
135
|
}
|
|
130
136
|
|
|
137
|
+
const defaultEmptyIcon = <Icon icon="eye-off" />;
|
|
138
|
+
|
|
131
139
|
function EmptyRow(props: EmptyRowProps) {
|
|
132
140
|
const {
|
|
133
|
-
emptyIcon =
|
|
141
|
+
emptyIcon = defaultEmptyIcon,
|
|
134
142
|
emptyContent = 'No data',
|
|
135
143
|
columns,
|
|
136
144
|
} = props;
|
|
@@ -208,9 +216,15 @@ function getDefaultRenderRowTr<TData extends RowData>(
|
|
|
208
216
|
): TableRowTrRenderer<TData> {
|
|
209
217
|
if (isReorderingEnabled) {
|
|
210
218
|
return getDefaultRenderDraggableRowTr(renderRowPreview);
|
|
211
|
-
} else {
|
|
212
|
-
return (trProps, row) => <TableRowTr trProps={{ ...trProps }} row={row} />;
|
|
213
219
|
}
|
|
220
|
+
return defaultRenderRowTr;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
function defaultRenderRowTr<TData extends RowData>(
|
|
224
|
+
trProps: TableRowTrRenderProps,
|
|
225
|
+
row: Row<ReactScienceTableFeatures, TData>,
|
|
226
|
+
) {
|
|
227
|
+
return <TableRowTr trProps={trProps} row={row} />;
|
|
214
228
|
}
|
|
215
229
|
|
|
216
230
|
function getDefaultRenderDraggableRowTr<TData extends RowData>(
|
|
@@ -2,12 +2,12 @@ import {
|
|
|
2
2
|
columnVisibilityFeature,
|
|
3
3
|
createSortedRowModel,
|
|
4
4
|
rowSortingFeature,
|
|
5
|
-
sortFn_alphanumeric as
|
|
6
|
-
sortFn_alphanumericCaseSensitive as
|
|
7
|
-
sortFn_basic as
|
|
8
|
-
sortFn_datetime as
|
|
9
|
-
sortFn_text as
|
|
10
|
-
sortFn_textCaseSensitive as
|
|
5
|
+
sortFn_alphanumeric as sortFunctionAlphanumeric,
|
|
6
|
+
sortFn_alphanumericCaseSensitive as sortFunctionAlphanumericCaseSensitive,
|
|
7
|
+
sortFn_basic as sortFunctionBasic,
|
|
8
|
+
sortFn_datetime as sortFunctionDatetime,
|
|
9
|
+
sortFn_text as sortFunctionText,
|
|
10
|
+
sortFn_textCaseSensitive as sortFunctionTextCaseSensitive,
|
|
11
11
|
tableFeatures,
|
|
12
12
|
} from '@tanstack/react-table';
|
|
13
13
|
|
|
@@ -16,12 +16,12 @@ export const reactScienceTableFeatures = tableFeatures({
|
|
|
16
16
|
rowSortingFeature,
|
|
17
17
|
sortedRowModel: createSortedRowModel(),
|
|
18
18
|
sortFns: {
|
|
19
|
-
alphanumeric:
|
|
20
|
-
alphanumericCaseSensitive:
|
|
21
|
-
basic:
|
|
22
|
-
datetime:
|
|
23
|
-
text:
|
|
24
|
-
textCaseSensitive:
|
|
19
|
+
alphanumeric: sortFunctionAlphanumeric,
|
|
20
|
+
alphanumericCaseSensitive: sortFunctionAlphanumericCaseSensitive,
|
|
21
|
+
basic: sortFunctionBasic,
|
|
22
|
+
datetime: sortFunctionDatetime,
|
|
23
|
+
text: sortFunctionText,
|
|
24
|
+
textCaseSensitive: sortFunctionTextCaseSensitive,
|
|
25
25
|
},
|
|
26
26
|
});
|
|
27
27
|
|