@navikt/ds-react 8.9.1 → 8.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/alert/base-alert/content/BaseAlertContent.js +4 -1
- package/cjs/alert/base-alert/content/BaseAlertContent.js.map +1 -1
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.d.ts +3 -1
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +38 -19
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
- package/cjs/data/drag-and-drop/item/DragAndDropItem.d.ts +3 -2
- package/cjs/data/drag-and-drop/item/DragAndDropItem.js +6 -4
- package/cjs/data/drag-and-drop/item/DragAndDropItem.js.map +1 -1
- package/cjs/data/drag-and-drop/root/DragAndDrop.context.d.ts +2 -2
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.d.ts +7 -32
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.js +73 -46
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
- package/cjs/data/drag-and-drop/types.d.ts +4 -0
- package/cjs/data/table/base-cell/DataTableBaseCell.d.ts +46 -0
- package/cjs/data/table/base-cell/DataTableBaseCell.js +63 -0
- package/cjs/data/table/base-cell/DataTableBaseCell.js.map +1 -0
- package/cjs/data/table/column-header/DataTableColumnHeader.d.ts +31 -0
- package/cjs/data/table/column-header/DataTableColumnHeader.js +107 -0
- package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -0
- package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -0
- package/cjs/data/table/empty-state/DataTableEmptyState.d.ts +6 -2
- package/cjs/data/table/empty-state/DataTableEmptyState.js +2 -2
- package/cjs/data/table/empty-state/DataTableEmptyState.js.map +1 -1
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.d.ts +7 -7
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.js +29 -28
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
- package/cjs/data/table/helpers/selection/getSingleSelectProps.d.ts +5 -3
- package/cjs/data/table/helpers/selection/getSingleSelectProps.js +8 -12
- package/cjs/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
- package/cjs/data/table/helpers/selection/selection.types.d.ts +39 -16
- package/cjs/data/table/helpers/table-keyboard.js +3 -0
- package/cjs/data/table/helpers/table-keyboard.js.map +1 -1
- package/cjs/data/table/hooks/useColumnOptions.d.ts +19 -0
- package/cjs/data/table/hooks/useColumnOptions.js +19 -0
- package/cjs/data/table/hooks/useColumnOptions.js.map +1 -0
- package/cjs/data/table/hooks/useTableExpansion.d.ts +26 -0
- package/cjs/data/table/hooks/useTableExpansion.js +68 -0
- package/cjs/data/table/hooks/useTableExpansion.js.map +1 -0
- package/cjs/data/table/hooks/useTableKeyboardNav.d.ts +2 -1
- package/cjs/data/table/hooks/useTableKeyboardNav.js +3 -1
- package/cjs/data/table/hooks/useTableKeyboardNav.js.map +1 -1
- package/cjs/data/table/hooks/useTableSelection.d.ts +14 -7
- package/cjs/data/table/hooks/useTableSelection.js +40 -27
- package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
- package/cjs/data/table/hooks/useTableSort.d.ts +37 -0
- package/cjs/data/table/hooks/useTableSort.js +49 -0
- package/cjs/data/table/hooks/useTableSort.js.map +1 -0
- package/cjs/data/table/loading-state/DataTableLoadingState.d.ts +6 -2
- package/cjs/data/table/loading-state/DataTableLoadingState.js +2 -2
- package/cjs/data/table/loading-state/DataTableLoadingState.js.map +1 -1
- package/cjs/data/table/root/DataTable.types.d.ts +55 -4
- package/cjs/data/table/root/DataTableAuto.d.ts +97 -1
- package/cjs/data/table/root/DataTableAuto.js +92 -39
- package/cjs/data/table/root/DataTableAuto.js.map +1 -1
- package/cjs/data/table/root/DataTableRoot.context.d.ts +22 -1
- package/cjs/data/table/root/DataTableRoot.context.js +7 -1
- package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
- package/cjs/data/table/root/DataTableRoot.d.ts +0 -6
- package/cjs/data/table/root/DataTableRoot.js +5 -4
- package/cjs/data/table/root/DataTableRoot.js.map +1 -1
- package/cjs/data/table/tbody/DataTableTbody.js +7 -1
- package/cjs/data/table/tbody/DataTableTbody.js.map +1 -1
- package/cjs/data/table/td/DataTableTd.d.ts +3 -23
- package/cjs/data/table/td/DataTableTd.js +3 -7
- package/cjs/data/table/td/DataTableTd.js.map +1 -1
- package/cjs/data/table/tfoot/DataTableTfoot.js +3 -1
- package/cjs/data/table/tfoot/DataTableTfoot.js.map +1 -1
- package/cjs/data/table/th/DataTableTh.d.ts +3 -48
- package/cjs/data/table/th/DataTableTh.js +3 -57
- package/cjs/data/table/th/DataTableTh.js.map +1 -1
- package/cjs/data/table/thead/DataTableThead.js +2 -2
- package/cjs/data/table/thead/DataTableThead.js.map +1 -1
- package/cjs/data/table/tr/DataTableTr.d.ts +8 -0
- package/cjs/data/table/tr/DataTableTr.js +131 -9
- package/cjs/data/table/tr/DataTableTr.js.map +1 -1
- package/cjs/date/datepicker/hooks/useRangeDatepicker.js +1 -1
- package/cjs/date/datepicker/hooks/useRangeDatepicker.js.map +1 -1
- package/cjs/date/datepicker/parts/DatePicker.DayButton.js +3 -1
- package/cjs/date/datepicker/parts/DatePicker.DayButton.js.map +1 -1
- package/cjs/date/datepicker/parts/DatePicker.RDP.d.ts +1 -1
- package/cjs/date/datepicker/parts/DatePicker.RDP.js +26 -11
- package/cjs/date/datepicker/parts/DatePicker.RDP.js.map +1 -1
- package/cjs/date/monthpicker/parts/MonthPicker.Button.js +7 -5
- package/cjs/date/monthpicker/parts/MonthPicker.Button.js.map +1 -1
- package/cjs/date/monthpicker/parts/MonthPicker.Standalone.d.ts +1 -1
- package/cjs/dialog/popup/DialogPopupInternal.js +1 -1
- package/cjs/dialog/popup/DialogPopupInternal.js.map +1 -1
- package/cjs/form/checkbox/CheckboxGroup.context.d.ts +6 -0
- package/cjs/form/checkbox/CheckboxGroup.context.js +6 -0
- package/cjs/form/checkbox/CheckboxGroup.context.js.map +1 -0
- package/cjs/form/checkbox/CheckboxGroup.d.ts +0 -6
- package/cjs/form/checkbox/CheckboxGroup.js +8 -8
- package/cjs/form/checkbox/CheckboxGroup.js.map +1 -1
- package/cjs/form/checkbox/useCheckbox.js +2 -2
- package/cjs/form/checkbox/useCheckbox.js.map +1 -1
- package/cjs/form/combobox/ComboboxWrapper.js +1 -3
- package/cjs/form/combobox/ComboboxWrapper.js.map +1 -1
- package/cjs/form/error-summary/ErrorSummary.js +1 -3
- package/cjs/form/error-summary/ErrorSummary.js.map +1 -1
- package/cjs/form/fieldset/Fieldset.d.ts +0 -4
- package/cjs/form/fieldset/Fieldset.js +3 -3
- package/cjs/form/fieldset/Fieldset.js.map +1 -1
- package/cjs/form/fieldset/useFieldset.d.ts +5 -3
- package/cjs/form/fieldset/useFieldset.js +9 -4
- package/cjs/form/fieldset/useFieldset.js.map +1 -1
- package/cjs/form/radio/RadioGroup.context.d.ts +8 -0
- package/cjs/form/radio/RadioGroup.context.js +6 -0
- package/cjs/form/radio/RadioGroup.context.js.map +1 -0
- package/cjs/form/radio/RadioGroup.d.ts +0 -8
- package/cjs/form/radio/RadioGroup.js +10 -10
- package/cjs/form/radio/RadioGroup.js.map +1 -1
- package/cjs/form/radio/useRadio.js +2 -2
- package/cjs/form/radio/useRadio.js.map +1 -1
- package/cjs/form/search/Search.js +1 -3
- package/cjs/form/search/Search.js.map +1 -1
- package/cjs/inline-message/root/InlineMessage.js +2 -5
- package/cjs/inline-message/root/InlineMessage.js.map +1 -1
- package/cjs/modal/Modal.js +4 -6
- package/cjs/modal/Modal.js.map +1 -1
- package/cjs/modal/ModalUtils.js +1 -1
- package/cjs/modal/ModalUtils.js.map +1 -1
- package/cjs/modal/types.d.ts +1 -0
- package/cjs/primitives/box/Box.d.ts +1 -1
- package/cjs/process/Process.js +1 -5
- package/cjs/process/Process.js.map +1 -1
- package/cjs/tabs/useTabs.js +3 -7
- package/cjs/tabs/useTabs.js.map +1 -1
- package/cjs/timeline/Timeline.js +25 -62
- package/cjs/timeline/Timeline.js.map +1 -1
- package/cjs/timeline/TimelineRow.js +10 -14
- package/cjs/timeline/TimelineRow.js.map +1 -1
- package/cjs/timeline/hooks/TimelineKeyboardNavProvider.d.ts +16 -0
- package/cjs/timeline/hooks/TimelineKeyboardNavProvider.js +179 -0
- package/cjs/timeline/hooks/TimelineKeyboardNavProvider.js.map +1 -0
- package/cjs/timeline/hooks/usePeriodContext.d.ts +0 -1
- package/cjs/timeline/hooks/usePeriodContext.js +0 -1
- package/cjs/timeline/hooks/usePeriodContext.js.map +1 -1
- package/cjs/timeline/hooks/useRowContext.d.ts +0 -1
- package/cjs/timeline/hooks/useRowContext.js +0 -1
- package/cjs/timeline/hooks/useRowContext.js.map +1 -1
- package/cjs/timeline/hooks/useTimelineContext.d.ts +0 -4
- package/cjs/timeline/hooks/useTimelineContext.js +0 -4
- package/cjs/timeline/hooks/useTimelineContext.js.map +1 -1
- package/cjs/timeline/period/ClickablePeriod.js +6 -20
- package/cjs/timeline/period/ClickablePeriod.js.map +1 -1
- package/cjs/timeline/period/NonClickablePeriod.js +1 -1
- package/cjs/timeline/period/NonClickablePeriod.js.map +1 -1
- package/cjs/timeline/pin/PinInternal.js +9 -10
- package/cjs/timeline/pin/PinInternal.js.map +1 -1
- package/cjs/toggle-group/useToggleGroup.js +1 -1
- package/cjs/toggle-group/useToggleGroup.js.map +1 -1
- package/cjs/utils/components/HighlightText/HighlightText.js +1 -4
- package/cjs/utils/components/HighlightText/HighlightText.js.map +1 -1
- package/cjs/utils/components/dismissablelayer/DismissableLayer.js +1 -1
- package/cjs/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
- package/cjs/utils/helpers/create-strict-context.js +1 -1
- package/cjs/utils/helpers/create-strict-context.js.map +1 -1
- package/cjs/utils/hooks/useEventCallback.js +1 -1
- package/cjs/utils/hooks/useEventCallback.js.map +1 -1
- package/cjs/utils/hooks/useMedia.js +1 -1
- package/cjs/utils/hooks/useMedia.js.map +1 -1
- package/esm/alert/base-alert/content/BaseAlertContent.js +4 -1
- package/esm/alert/base-alert/content/BaseAlertContent.js.map +1 -1
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.d.ts +3 -1
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +38 -19
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
- package/esm/data/drag-and-drop/item/DragAndDropItem.d.ts +3 -2
- package/esm/data/drag-and-drop/item/DragAndDropItem.js +6 -4
- package/esm/data/drag-and-drop/item/DragAndDropItem.js.map +1 -1
- package/esm/data/drag-and-drop/root/DragAndDrop.context.d.ts +2 -2
- package/esm/data/drag-and-drop/root/DragAndDropRoot.d.ts +7 -32
- package/esm/data/drag-and-drop/root/DragAndDropRoot.js +74 -47
- package/esm/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
- package/esm/data/drag-and-drop/types.d.ts +4 -0
- package/esm/data/table/base-cell/DataTableBaseCell.d.ts +46 -0
- package/esm/data/table/base-cell/DataTableBaseCell.js +27 -0
- package/esm/data/table/base-cell/DataTableBaseCell.js.map +1 -0
- package/esm/data/table/column-header/DataTableColumnHeader.d.ts +31 -0
- package/esm/data/table/column-header/DataTableColumnHeader.js +71 -0
- package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -0
- package/esm/data/table/column-header/useTableColumnResize.js.map +1 -0
- package/esm/data/table/empty-state/DataTableEmptyState.d.ts +6 -2
- package/esm/data/table/empty-state/DataTableEmptyState.js +2 -2
- package/esm/data/table/empty-state/DataTableEmptyState.js.map +1 -1
- package/esm/data/table/helpers/selection/getMultipleSelectProps.d.ts +7 -7
- package/esm/data/table/helpers/selection/getMultipleSelectProps.js +29 -28
- package/esm/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
- package/esm/data/table/helpers/selection/getSingleSelectProps.d.ts +5 -3
- package/esm/data/table/helpers/selection/getSingleSelectProps.js +8 -12
- package/esm/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
- package/esm/data/table/helpers/selection/selection.types.d.ts +39 -16
- package/esm/data/table/helpers/table-keyboard.js +3 -0
- package/esm/data/table/helpers/table-keyboard.js.map +1 -1
- package/esm/data/table/hooks/useColumnOptions.d.ts +19 -0
- package/esm/data/table/hooks/useColumnOptions.js +17 -0
- package/esm/data/table/hooks/useColumnOptions.js.map +1 -0
- package/esm/data/table/hooks/useTableExpansion.d.ts +26 -0
- package/esm/data/table/hooks/useTableExpansion.js +31 -0
- package/esm/data/table/hooks/useTableExpansion.js.map +1 -0
- package/esm/data/table/hooks/useTableKeyboardNav.d.ts +2 -1
- package/esm/data/table/hooks/useTableKeyboardNav.js +4 -2
- package/esm/data/table/hooks/useTableKeyboardNav.js.map +1 -1
- package/esm/data/table/hooks/useTableSelection.d.ts +14 -7
- package/esm/data/table/hooks/useTableSelection.js +40 -29
- package/esm/data/table/hooks/useTableSelection.js.map +1 -1
- package/esm/data/table/hooks/useTableSort.d.ts +37 -0
- package/esm/data/table/hooks/useTableSort.js +47 -0
- package/esm/data/table/hooks/useTableSort.js.map +1 -0
- package/esm/data/table/loading-state/DataTableLoadingState.d.ts +6 -2
- package/esm/data/table/loading-state/DataTableLoadingState.js +2 -2
- package/esm/data/table/loading-state/DataTableLoadingState.js.map +1 -1
- package/esm/data/table/root/DataTable.types.d.ts +55 -4
- package/esm/data/table/root/DataTableAuto.d.ts +97 -1
- package/esm/data/table/root/DataTableAuto.js +94 -41
- package/esm/data/table/root/DataTableAuto.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.context.d.ts +22 -1
- package/esm/data/table/root/DataTableRoot.context.js +5 -1
- package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.d.ts +0 -6
- package/esm/data/table/root/DataTableRoot.js +6 -5
- package/esm/data/table/root/DataTableRoot.js.map +1 -1
- package/esm/data/table/tbody/DataTableTbody.js +8 -2
- package/esm/data/table/tbody/DataTableTbody.js.map +1 -1
- package/esm/data/table/td/DataTableTd.d.ts +3 -23
- package/esm/data/table/td/DataTableTd.js +3 -7
- package/esm/data/table/td/DataTableTd.js.map +1 -1
- package/esm/data/table/tfoot/DataTableTfoot.js +3 -1
- package/esm/data/table/tfoot/DataTableTfoot.js.map +1 -1
- package/esm/data/table/th/DataTableTh.d.ts +3 -48
- package/esm/data/table/th/DataTableTh.js +4 -58
- package/esm/data/table/th/DataTableTh.js.map +1 -1
- package/esm/data/table/thead/DataTableThead.js +2 -2
- package/esm/data/table/thead/DataTableThead.js.map +1 -1
- package/esm/data/table/tr/DataTableTr.d.ts +8 -0
- package/esm/data/table/tr/DataTableTr.js +134 -12
- package/esm/data/table/tr/DataTableTr.js.map +1 -1
- package/esm/date/datepicker/hooks/useRangeDatepicker.js +1 -1
- package/esm/date/datepicker/hooks/useRangeDatepicker.js.map +1 -1
- package/esm/date/datepicker/parts/DatePicker.DayButton.js +3 -1
- package/esm/date/datepicker/parts/DatePicker.DayButton.js.map +1 -1
- package/esm/date/datepicker/parts/DatePicker.RDP.d.ts +1 -1
- package/esm/date/datepicker/parts/DatePicker.RDP.js +27 -12
- package/esm/date/datepicker/parts/DatePicker.RDP.js.map +1 -1
- package/esm/date/monthpicker/parts/MonthPicker.Button.js +7 -5
- package/esm/date/monthpicker/parts/MonthPicker.Button.js.map +1 -1
- package/esm/date/monthpicker/parts/MonthPicker.Standalone.d.ts +1 -1
- package/esm/dialog/popup/DialogPopupInternal.js +1 -1
- package/esm/dialog/popup/DialogPopupInternal.js.map +1 -1
- package/esm/form/checkbox/CheckboxGroup.context.d.ts +6 -0
- package/esm/form/checkbox/CheckboxGroup.context.js +3 -0
- package/esm/form/checkbox/CheckboxGroup.context.js.map +1 -0
- package/esm/form/checkbox/CheckboxGroup.d.ts +0 -6
- package/esm/form/checkbox/CheckboxGroup.js +8 -8
- package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
- package/esm/form/checkbox/useCheckbox.js +1 -1
- package/esm/form/checkbox/useCheckbox.js.map +1 -1
- package/esm/form/combobox/ComboboxWrapper.js +1 -3
- package/esm/form/combobox/ComboboxWrapper.js.map +1 -1
- package/esm/form/error-summary/ErrorSummary.js +1 -3
- package/esm/form/error-summary/ErrorSummary.js.map +1 -1
- package/esm/form/fieldset/Fieldset.d.ts +0 -4
- package/esm/form/fieldset/Fieldset.js +3 -3
- package/esm/form/fieldset/Fieldset.js.map +1 -1
- package/esm/form/fieldset/useFieldset.d.ts +5 -3
- package/esm/form/fieldset/useFieldset.js +10 -5
- package/esm/form/fieldset/useFieldset.js.map +1 -1
- package/esm/form/radio/RadioGroup.context.d.ts +8 -0
- package/esm/form/radio/RadioGroup.context.js +3 -0
- package/esm/form/radio/RadioGroup.context.js.map +1 -0
- package/esm/form/radio/RadioGroup.d.ts +0 -8
- package/esm/form/radio/RadioGroup.js +9 -9
- package/esm/form/radio/RadioGroup.js.map +1 -1
- package/esm/form/radio/useRadio.js +1 -1
- package/esm/form/radio/useRadio.js.map +1 -1
- package/esm/form/search/Search.js +1 -3
- package/esm/form/search/Search.js.map +1 -1
- package/esm/inline-message/root/InlineMessage.js +2 -5
- package/esm/inline-message/root/InlineMessage.js.map +1 -1
- package/esm/modal/Modal.js +4 -6
- package/esm/modal/Modal.js.map +1 -1
- package/esm/modal/ModalUtils.js +1 -1
- package/esm/modal/ModalUtils.js.map +1 -1
- package/esm/modal/types.d.ts +1 -0
- package/esm/primitives/box/Box.d.ts +1 -1
- package/esm/process/Process.js +1 -5
- package/esm/process/Process.js.map +1 -1
- package/esm/tabs/useTabs.js +3 -7
- package/esm/tabs/useTabs.js.map +1 -1
- package/esm/timeline/Timeline.js +26 -63
- package/esm/timeline/Timeline.js.map +1 -1
- package/esm/timeline/TimelineRow.js +10 -14
- package/esm/timeline/TimelineRow.js.map +1 -1
- package/esm/timeline/hooks/TimelineKeyboardNavProvider.d.ts +16 -0
- package/esm/timeline/hooks/TimelineKeyboardNavProvider.js +141 -0
- package/esm/timeline/hooks/TimelineKeyboardNavProvider.js.map +1 -0
- package/esm/timeline/hooks/usePeriodContext.d.ts +0 -1
- package/esm/timeline/hooks/usePeriodContext.js +0 -1
- package/esm/timeline/hooks/usePeriodContext.js.map +1 -1
- package/esm/timeline/hooks/useRowContext.d.ts +0 -1
- package/esm/timeline/hooks/useRowContext.js +0 -1
- package/esm/timeline/hooks/useRowContext.js.map +1 -1
- package/esm/timeline/hooks/useTimelineContext.d.ts +0 -4
- package/esm/timeline/hooks/useTimelineContext.js +0 -4
- package/esm/timeline/hooks/useTimelineContext.js.map +1 -1
- package/esm/timeline/period/ClickablePeriod.js +7 -21
- package/esm/timeline/period/ClickablePeriod.js.map +1 -1
- package/esm/timeline/period/NonClickablePeriod.js +1 -1
- package/esm/timeline/period/NonClickablePeriod.js.map +1 -1
- package/esm/timeline/pin/PinInternal.js +10 -11
- package/esm/timeline/pin/PinInternal.js.map +1 -1
- package/esm/toggle-group/useToggleGroup.js +1 -1
- package/esm/toggle-group/useToggleGroup.js.map +1 -1
- package/esm/utils/components/HighlightText/HighlightText.js +1 -4
- package/esm/utils/components/HighlightText/HighlightText.js.map +1 -1
- package/esm/utils/components/dismissablelayer/DismissableLayer.js +1 -1
- package/esm/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
- package/esm/utils/helpers/create-strict-context.js +1 -1
- package/esm/utils/helpers/create-strict-context.js.map +1 -1
- package/esm/utils/hooks/useEventCallback.js +1 -1
- package/esm/utils/hooks/useEventCallback.js.map +1 -1
- package/esm/utils/hooks/useMedia.js +1 -1
- package/esm/utils/hooks/useMedia.js.map +1 -1
- package/package.json +9 -7
- package/src/alert/base-alert/content/BaseAlertContent.tsx +7 -2
- package/src/data/drag-and-drop/drag-handler/DragAndDropDragHandler.tsx +69 -29
- package/src/data/drag-and-drop/item/DragAndDropItem.tsx +16 -10
- package/src/data/drag-and-drop/root/DragAndDrop.context.tsx +2 -2
- package/src/data/drag-and-drop/root/DragAndDropRoot.tsx +291 -246
- package/src/data/drag-and-drop/types.ts +5 -0
- package/src/data/table/base-cell/DataTableBaseCell.tsx +92 -0
- package/src/data/table/column-header/DataTableColumnHeader.tsx +180 -0
- package/src/data/table/empty-state/DataTableEmptyState.tsx +5 -3
- package/src/data/table/helpers/selection/getMultipleSelectProps.ts +47 -43
- package/src/data/table/helpers/selection/getSingleSelectProps.ts +13 -14
- package/src/data/table/helpers/selection/selection.types.ts +41 -16
- package/src/data/table/helpers/table-keyboard.ts +4 -0
- package/src/data/table/hooks/__tests__/useTableSelection.test.ts +93 -56
- package/src/data/table/hooks/useColumnOptions.ts +48 -0
- package/src/data/table/hooks/useTableExpansion.tsx +100 -0
- package/src/data/table/hooks/useTableKeyboardNav.ts +7 -5
- package/src/data/table/hooks/useTableSelection.ts +77 -46
- package/src/data/table/hooks/useTableSort.ts +103 -0
- package/src/data/table/loading-state/DataTableLoadingState.tsx +5 -3
- package/src/data/table/root/DataTable.types.ts +64 -5
- package/src/data/table/root/DataTableAuto.tsx +382 -104
- package/src/data/table/root/DataTableRoot.context.ts +30 -1
- package/src/data/table/root/DataTableRoot.tsx +14 -11
- package/src/data/table/tbody/DataTableTbody.tsx +17 -6
- package/src/data/table/td/DataTableTd.tsx +11 -47
- package/src/data/table/tfoot/DataTableTfoot.tsx +10 -7
- package/src/data/table/th/DataTableTh.tsx +11 -183
- package/src/data/table/thead/DataTableThead.tsx +3 -3
- package/src/data/table/tr/DataTableTr.tsx +300 -11
- package/src/date/datepicker/hooks/useRangeDatepicker.tsx +1 -1
- package/src/date/datepicker/parts/DatePicker.DayButton.tsx +2 -1
- package/src/date/datepicker/parts/DatePicker.RDP.tsx +34 -15
- package/src/date/monthpicker/parts/MonthPicker.Button.tsx +11 -9
- package/src/date/monthpicker/parts/MonthPicker.Standalone.tsx +1 -1
- package/src/dialog/popup/DialogPopupInternal.tsx +1 -1
- package/src/form/checkbox/CheckboxGroup.context.ts +10 -0
- package/src/form/checkbox/CheckboxGroup.tsx +18 -28
- package/src/form/checkbox/useCheckbox.ts +1 -1
- package/src/form/fieldset/Fieldset.tsx +4 -8
- package/src/form/fieldset/useFieldset.ts +13 -6
- package/src/form/radio/RadioGroup.context.ts +13 -0
- package/src/form/radio/RadioGroup.tsx +22 -31
- package/src/form/radio/useRadio.ts +1 -1
- package/src/inline-message/root/InlineMessage.tsx +3 -13
- package/src/modal/Modal.tsx +12 -6
- package/src/modal/ModalUtils.ts +1 -1
- package/src/modal/types.ts +1 -0
- package/src/primitives/box/Box.tsx +1 -1
- package/src/tabs/useTabs.ts +3 -7
- package/src/timeline/Timeline.tsx +62 -91
- package/src/timeline/TimelineRow.tsx +19 -17
- package/src/timeline/hooks/TimelineKeyboardNavProvider.tsx +237 -0
- package/src/timeline/hooks/usePeriodContext.tsx +0 -2
- package/src/timeline/hooks/useRowContext.tsx +0 -2
- package/src/timeline/hooks/useTimelineContext.tsx +0 -8
- package/src/timeline/period/ClickablePeriod.tsx +8 -19
- package/src/timeline/period/NonClickablePeriod.tsx +2 -0
- package/src/timeline/pin/PinInternal.tsx +10 -13
- package/src/toggle-group/useToggleGroup.ts +1 -1
- package/src/utils/components/dismissablelayer/DismissableLayer.tsx +1 -1
- package/src/utils/helpers/create-strict-context.tsx +1 -1
- package/src/utils/hooks/useEventCallback.ts +1 -1
- package/src/utils/hooks/useMedia.ts +1 -1
- package/cjs/data/table/th/DataTableThActions.d.ts +0 -5
- package/cjs/data/table/th/DataTableThActions.js +0 -23
- package/cjs/data/table/th/DataTableThActions.js.map +0 -1
- package/cjs/data/table/th/useTableColumnResize.js.map +0 -1
- package/cjs/data/table/thead/DataTableThead.context.d.ts +0 -4
- package/cjs/data/table/thead/DataTableThead.context.js +0 -45
- package/cjs/data/table/thead/DataTableThead.context.js.map +0 -1
- package/esm/data/table/th/DataTableThActions.d.ts +0 -5
- package/esm/data/table/th/DataTableThActions.js +0 -18
- package/esm/data/table/th/DataTableThActions.js.map +0 -1
- package/esm/data/table/th/useTableColumnResize.js.map +0 -1
- package/esm/data/table/thead/DataTableThead.context.d.ts +0 -4
- package/esm/data/table/thead/DataTableThead.context.js +0 -8
- package/esm/data/table/thead/DataTableThead.context.js.map +0 -1
- package/src/data/table/th/DataTableThActions.tsx +0 -32
- package/src/data/table/thead/DataTableThead.context.ts +0 -10
- /package/cjs/data/table/{th → column-header}/useTableColumnResize.d.ts +0 -0
- /package/cjs/data/table/{th → column-header}/useTableColumnResize.js +0 -0
- /package/esm/data/table/{th → column-header}/useTableColumnResize.d.ts +0 -0
- /package/esm/data/table/{th → column-header}/useTableColumnResize.js +0 -0
- /package/src/data/table/{th → column-header}/useTableColumnResize.ts +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/** biome-ignore-all lint/correctness/useHookAtTopLevel: False positive because of the way forwardRef() is added */
|
|
2
|
+
import React, { forwardRef, useCallback, useEffect, useRef, useState, } from "react";
|
|
2
3
|
import { Floating } from "../../../utils/components/floating/Floating.js";
|
|
3
4
|
import DragAndDropItem from "../item/DragAndDropItem.js";
|
|
4
5
|
import { DragAndDropProvider } from "./DragAndDrop.context.js";
|
|
@@ -11,25 +12,39 @@ import { DragAndDropProvider } from "./DragAndDrop.context.js";
|
|
|
11
12
|
* [x] Keyboard navigation
|
|
12
13
|
* [ ] UU - announce on drag start, item moved, drag end
|
|
13
14
|
* [x] Make overlay same width as the OG item, currently jumps to content width
|
|
14
|
-
* [
|
|
15
|
-
* [
|
|
16
|
-
* [
|
|
17
|
-
* [
|
|
15
|
+
* [x] Look into adding a cancel listener event
|
|
16
|
+
* [x] Make onClick work on drag handler button, currently blocked by pointer down/up listeners
|
|
17
|
+
* [x] Talk to design about what should happen on ESC key press, currently just cancels dragging, should it also reset position?
|
|
18
|
+
* [x] Make arrow icons into buttons that react to keyboard events, currently just decorative
|
|
19
|
+
* [x] Keep handler focus after clicking arrows for dragging
|
|
20
|
+
* [x] Look into data-based API vs component-based API
|
|
21
|
+
* [ ] Should we have hidden instructions for screen readers on how to use the drag and drop, and should we announce the position of the item while dragging?
|
|
22
|
+
* [x] Discuss if this component should be generic for drag and drop, or if it should be specifically for tables - just for table for now
|
|
23
|
+
* [x] Discuss items type
|
|
24
|
+
* [ ] Discuss how to implement label best
|
|
25
|
+
* [ ] Quick nav (< > samtidig) - få piltastene til å fungere
|
|
26
|
+
* [x] Implement new type for items - ColumnDefinitions<T>
|
|
27
|
+
* [ ] Remove announcer div and use a live region component instead
|
|
28
|
+
* [ ] Make ESC reset position, not just cancel dragging
|
|
29
|
+
* [ ] Make instructions for keyboard users (visible?)
|
|
30
|
+
* [ ] Ask design about visible keyboard instructions
|
|
31
|
+
*
|
|
18
32
|
*/
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
const [activeItem, setActiveItem] =
|
|
22
|
-
const [dropTarget, setDropTarget] =
|
|
23
|
-
const [dragHandlerActive, setDragHandlerActive] =
|
|
24
|
-
const [overlayWidth, setOverlayWidth] =
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
33
|
+
const DRAG_THRESHOLD = 4; // Minimum movement in pixels to start dragging
|
|
34
|
+
function DragAndDropInner({ items, setItems, renderItem }, forwardedRef) {
|
|
35
|
+
const [activeItem, setActiveItem] = useState(null);
|
|
36
|
+
const [dropTarget, setDropTarget] = useState(null);
|
|
37
|
+
const [dragHandlerActive, setDragHandlerActive] = useState(null);
|
|
38
|
+
const [overlayWidth, setOverlayWidth] = useState(null);
|
|
39
|
+
const [announcement, setAnnouncement] = useState("");
|
|
40
|
+
const activeData = items.find((item) => item.id === (activeItem === null || activeItem === void 0 ? void 0 : activeItem.id));
|
|
41
|
+
const activeItemRef = useRef(null);
|
|
42
|
+
const dropTargetRef = useRef(null);
|
|
43
|
+
const [virtualRef, setVirtualRef] = useState({
|
|
29
44
|
getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, x: 0, y: 0 }),
|
|
30
45
|
});
|
|
31
|
-
const pendingDragStartRef =
|
|
32
|
-
const
|
|
46
|
+
const pendingDragStartRef = useRef(null);
|
|
47
|
+
const startPendingDrag = (event, item, element) => {
|
|
33
48
|
pendingDragStartRef.current = {
|
|
34
49
|
item,
|
|
35
50
|
element: element || null,
|
|
@@ -38,21 +53,26 @@ const DragAndDrop = forwardRef(({ setItems, children }, forwardedRef) => {
|
|
|
38
53
|
startY: event.clientY,
|
|
39
54
|
};
|
|
40
55
|
};
|
|
41
|
-
const
|
|
42
|
-
pendingDragStartRef.current = null;
|
|
43
|
-
};
|
|
44
|
-
const setCombinedActiveItem = React.useCallback((item) => {
|
|
56
|
+
const setCombinedActiveItem = useCallback((item) => {
|
|
45
57
|
activeItemRef.current = item;
|
|
46
58
|
setActiveItem(item);
|
|
47
59
|
}, []);
|
|
48
|
-
const setCombinedDropTarget =
|
|
60
|
+
const setCombinedDropTarget = useCallback((item) => {
|
|
49
61
|
dropTargetRef.current = item;
|
|
50
62
|
setDropTarget(item);
|
|
51
63
|
}, []);
|
|
64
|
+
const reorderItems = useCallback((fromIndex, toIndex) => {
|
|
65
|
+
setItems((currentItems) => {
|
|
66
|
+
const newItems = [...currentItems];
|
|
67
|
+
const [movedItem] = newItems.splice(fromIndex, 1);
|
|
68
|
+
newItems.splice(toIndex, 0, movedItem);
|
|
69
|
+
return newItems;
|
|
70
|
+
});
|
|
71
|
+
}, [setItems]);
|
|
52
72
|
useEffect(() => {
|
|
53
73
|
/* This useEffect is used to toggle a class on the html element when dragging,
|
|
54
|
-
|
|
55
|
-
|
|
74
|
+
to prevent cursor issues when dragging over interactive elements,
|
|
75
|
+
and to prevent text selection during dragging. */
|
|
56
76
|
if (activeItem) {
|
|
57
77
|
document.documentElement.setAttribute("data-dragging-cursor", "true");
|
|
58
78
|
document.body.style.userSelect = "none";
|
|
@@ -124,12 +144,8 @@ const DragAndDrop = forwardRef(({ setItems, children }, forwardedRef) => {
|
|
|
124
144
|
const active = activeItemRef.current;
|
|
125
145
|
const target = dropTargetRef.current;
|
|
126
146
|
if (active && target && active.id !== target.id) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const [movedItem] = newItems.splice(active.index, 1);
|
|
130
|
-
newItems.splice(target.index, 0, movedItem);
|
|
131
|
-
return newItems;
|
|
132
|
-
});
|
|
147
|
+
reorderItems(active.index, target.index);
|
|
148
|
+
setAnnouncement(`Element flyttet til posisjon ${(target === null || target === void 0 ? void 0 : target.index) + 1} av ${items.length}`); // TODO - Bedre formulering?
|
|
133
149
|
}
|
|
134
150
|
setOverlayWidth(null);
|
|
135
151
|
setDragHandlerActive(null);
|
|
@@ -137,43 +153,54 @@ const DragAndDrop = forwardRef(({ setItems, children }, forwardedRef) => {
|
|
|
137
153
|
setCombinedDropTarget(null);
|
|
138
154
|
pendingDragStartRef.current = null;
|
|
139
155
|
};
|
|
140
|
-
|
|
156
|
+
const handlePointerCancel = () => {
|
|
157
|
+
setOverlayWidth(null);
|
|
158
|
+
setDragHandlerActive(null);
|
|
159
|
+
setCombinedActiveItem(null);
|
|
160
|
+
setCombinedDropTarget(null);
|
|
161
|
+
pendingDragStartRef.current = null;
|
|
162
|
+
};
|
|
141
163
|
window.addEventListener("pointermove", handlePointerMove);
|
|
142
164
|
window.addEventListener("pointerup", handlePointerUp);
|
|
165
|
+
window.addEventListener("pointercancel", handlePointerCancel);
|
|
143
166
|
return () => {
|
|
144
167
|
window.removeEventListener("pointermove", handlePointerMove);
|
|
145
168
|
window.removeEventListener("pointerup", handlePointerUp);
|
|
169
|
+
window.removeEventListener("pointercancel", handlePointerCancel);
|
|
146
170
|
};
|
|
147
|
-
}, [
|
|
171
|
+
}, [
|
|
172
|
+
setCombinedDropTarget,
|
|
173
|
+
setCombinedActiveItem,
|
|
174
|
+
reorderItems,
|
|
175
|
+
items.length,
|
|
176
|
+
]);
|
|
148
177
|
const onKeyboardDragEnd = (diff) => {
|
|
149
178
|
if (!dragHandlerActive)
|
|
150
179
|
return;
|
|
151
180
|
const targetIndex = dragHandlerActive.index + diff;
|
|
152
|
-
if (targetIndex < 0 || targetIndex >=
|
|
181
|
+
if (targetIndex < 0 || targetIndex >= items.length) {
|
|
153
182
|
return;
|
|
154
183
|
}
|
|
155
|
-
|
|
156
|
-
const newItems = [...items];
|
|
157
|
-
const [movedItem] = newItems.splice(dragHandlerActive.index, 1);
|
|
158
|
-
newItems.splice(targetIndex, 0, movedItem);
|
|
159
|
-
return newItems;
|
|
160
|
-
});
|
|
184
|
+
reorderItems(dragHandlerActive.index, targetIndex);
|
|
161
185
|
setDragHandlerActive(Object.assign(Object.assign({}, dragHandlerActive), { index: targetIndex }));
|
|
186
|
+
setAnnouncement(`Element flyttet til posisjon ${targetIndex + 1} av ${items.length}`); // TODO - Bedre formulering?
|
|
162
187
|
};
|
|
163
|
-
return (React.createElement(DragAndDropProvider, { activeItem: activeItem, setActiveItem: setCombinedActiveItem, dropTarget: dropTarget, setDropTarget: setCombinedDropTarget, dragHandlerActive: dragHandlerActive, setDragHandlerActive: setDragHandlerActive, onKeyboardDragEnd: onKeyboardDragEnd,
|
|
164
|
-
React.createElement("
|
|
165
|
-
|
|
188
|
+
return (React.createElement(DragAndDropProvider, { activeItem: activeItem, setActiveItem: setCombinedActiveItem, dropTarget: dropTarget, setDropTarget: setCombinedDropTarget, dragHandlerActive: dragHandlerActive, setDragHandlerActive: setDragHandlerActive, onKeyboardDragEnd: onKeyboardDragEnd, startPendingDrag: startPendingDrag, itemAmount: items.length },
|
|
189
|
+
React.createElement("ul", { ref: forwardedRef, "aria-label": "Dra og slipp elementer" }, items.map((item, index) => {
|
|
190
|
+
return (React.createElement(DragAndDropItem, { key: item.id, id: item.id, index: index, itemLabel: item.label }, renderItem(item, index)));
|
|
191
|
+
})),
|
|
192
|
+
activeItem && activeData && (React.createElement(Floating, null,
|
|
166
193
|
React.createElement(Floating.Anchor, { virtualRef: virtualRef },
|
|
167
194
|
React.createElement("span", null)),
|
|
168
195
|
React.createElement(Floating.Content, { align: "start", updatePositionStrategy: "always", style: {
|
|
169
196
|
pointerEvents: "none",
|
|
170
197
|
boxSizing: "border-box",
|
|
171
198
|
width: overlayWidth ? `${overlayWidth}px` : "fit-content",
|
|
172
|
-
} },
|
|
173
|
-
isOverlay: true,
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
DragAndDrop
|
|
199
|
+
} },
|
|
200
|
+
React.createElement(DragAndDropItem, { id: activeItem.id, index: activeItem.index, isOverlay: true, itemLabel: activeData.label }, renderItem(activeData, activeItem.index))))),
|
|
201
|
+
React.createElement("div", { "aria-live": "assertive", className: "sr-only", "aria-atomic": "true" }, announcement)));
|
|
202
|
+
}
|
|
203
|
+
const DragAndDrop = forwardRef(DragAndDropInner);
|
|
177
204
|
export { DragAndDrop, DragAndDropItem };
|
|
178
205
|
export default DragAndDrop;
|
|
179
206
|
//# sourceMappingURL=DragAndDropRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragAndDropRoot.js","sourceRoot":"","sources":["../../../../src/data/drag-and-drop/root/DragAndDropRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"DragAndDropRoot.js","sourceRoot":"","sources":["../../../../src/data/drag-and-drop/root/DragAndDropRoot.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface DataTableBaseCellProps extends React.HTMLAttributes<HTMLTableCellElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Content alignment inside cell
|
|
5
|
+
* @default "left"
|
|
6
|
+
*/
|
|
7
|
+
textAlign?: "left" | "center" | "right";
|
|
8
|
+
/**
|
|
9
|
+
* TODO: Shouldnt be needed to declare these here... But getting type-errors if not
|
|
10
|
+
*/
|
|
11
|
+
colSpan?: number;
|
|
12
|
+
rowSpan?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Temp hack to solve overflow and alignment
|
|
15
|
+
*/
|
|
16
|
+
UNSAFE_isSelection?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* When true, clicking this cell will not trigger `onRowClick` on the row.
|
|
19
|
+
* Useful for cells that contain their own interactive content or actions
|
|
20
|
+
* that should be independent of row-level click handling.
|
|
21
|
+
*/
|
|
22
|
+
preventRowClick?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Sets a max-width on the content wrapper div inside the cell.
|
|
25
|
+
* This is only needed when using `layout="auto"` together with
|
|
26
|
+
* `truncateContent` on `<DataTable>` and you want the cell to be truncated.
|
|
27
|
+
*/
|
|
28
|
+
contentMaxWidth?: number | `${number}${string}`;
|
|
29
|
+
/**
|
|
30
|
+
* Makes the cell sticky.
|
|
31
|
+
*/
|
|
32
|
+
isSticky?: "start" | "end" | false;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* TODO:
|
|
36
|
+
* - Need a "type" or something that centers content instead of relying on isSelection prop.
|
|
37
|
+
* - Need a separate prop do disabled resizing instead of relying on isSelection prop.
|
|
38
|
+
*/
|
|
39
|
+
declare const DataTableBaseCell: React.ForwardRefExoticComponent<DataTableBaseCellProps & {
|
|
40
|
+
/**
|
|
41
|
+
* Cell type
|
|
42
|
+
*/
|
|
43
|
+
as: "th" | "td";
|
|
44
|
+
} & React.RefAttributes<HTMLTableCellElement>>;
|
|
45
|
+
export { DataTableBaseCell };
|
|
46
|
+
export type { DataTableBaseCellProps };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React, { forwardRef } from "react";
|
|
13
|
+
import { cl } from "../../../utils/helpers/index.js";
|
|
14
|
+
import { useDataTableContext } from "../root/DataTableRoot.context.js";
|
|
15
|
+
/**
|
|
16
|
+
* TODO:
|
|
17
|
+
* - Need a "type" or something that centers content instead of relying on isSelection prop.
|
|
18
|
+
* - Need a separate prop do disabled resizing instead of relying on isSelection prop.
|
|
19
|
+
*/
|
|
20
|
+
const DataTableBaseCell = forwardRef((_a, forwardedRef) => {
|
|
21
|
+
var { className, children, as: Component, textAlign = "left", colSpan, UNSAFE_isSelection, preventRowClick, contentMaxWidth, rowSpan, isSticky } = _a, rest = __rest(_a, ["className", "children", "as", "textAlign", "colSpan", "UNSAFE_isSelection", "preventRowClick", "contentMaxWidth", "rowSpan", "isSticky"]);
|
|
22
|
+
const { withKeyboardNav } = useDataTableContext();
|
|
23
|
+
return (React.createElement(Component, Object.assign({}, rest, { ref: forwardedRef, className: cl("aksel-data-table__cell", className), tabIndex: withKeyboardNav ? -1 : undefined, "data-align": textAlign, "data-selectable": UNSAFE_isSelection, "data-prevent-row-click": preventRowClick || UNSAFE_isSelection || undefined, "data-sticky": isSticky || undefined, colSpan: colSpan, rowSpan: rowSpan }),
|
|
24
|
+
React.createElement("div", { style: { maxWidth: contentMaxWidth } }, children)));
|
|
25
|
+
});
|
|
26
|
+
export { DataTableBaseCell };
|
|
27
|
+
//# sourceMappingURL=DataTableBaseCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableBaseCell.js","sourceRoot":"","sources":["../../../../src/data/table/base-cell/DataTableBaseCell.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAmCpE;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,UAAU,CASlC,CACE,EAYC,EACD,YAAY,EACZ,EAAE;QAdF,EACE,SAAS,EACT,QAAQ,EACR,EAAE,EAAE,SAAS,EACb,SAAS,GAAG,MAAM,EAClB,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,OAET,EADI,IAAI,cAXT,0IAYC,CADQ;IAIT,MAAM,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAElD,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,EAClD,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAC9B,SAAS,qBACJ,kBAAkB,4BAEjC,eAAe,IAAI,kBAAkB,IAAI,SAAS,iBAEvC,QAAQ,IAAI,SAAS,EAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO;QAEhB,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAG,QAAQ,CAAO,CACjD,CACb,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type DataTableBaseCellProps } from "../base-cell/DataTableBaseCell.js";
|
|
3
|
+
import type { SortDirection } from "../root/DataTable.types.js";
|
|
4
|
+
import { type ResizeProps } from "./useTableColumnResize.js";
|
|
5
|
+
interface DataTableColumnHeaderProps extends ResizeProps, DataTableBaseCellProps {
|
|
6
|
+
resizeHandler?: (event: React.MouseEvent<HTMLButtonElement> | React.TouchEvent<HTMLButtonElement>) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Makes the column header sortable. The entire header cell content becomes
|
|
9
|
+
* a clickable button when true.
|
|
10
|
+
*/
|
|
11
|
+
sortable?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Current sort direction. Only relevant when `sortable` is true.
|
|
14
|
+
* Uses values matching the `aria-sort` attribute directly.
|
|
15
|
+
* @default "none"
|
|
16
|
+
*/
|
|
17
|
+
sortDirection?: SortDirection;
|
|
18
|
+
/**
|
|
19
|
+
* Called when the user clicks the sortable header.
|
|
20
|
+
* The consumer is responsible for determining and setting the next sort state.
|
|
21
|
+
*/
|
|
22
|
+
onSortClick?: (event: React.MouseEvent<HTMLElement>) => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* TODO:
|
|
26
|
+
* - Plan for pinning: Move it into "settings" dialog like here: https://cloudscape.design/examples/react/table.html
|
|
27
|
+
* Toggling `data-block-keyboard-nav` does not work since the created "grid" does not update when toggling this attribute.
|
|
28
|
+
*/
|
|
29
|
+
declare const DataTableColumnHeader: React.ForwardRefExoticComponent<Omit<DataTableColumnHeaderProps, "ref"> & React.RefAttributes<HTMLTableCellElement>>;
|
|
30
|
+
export { DataTableColumnHeader };
|
|
31
|
+
export type { DataTableColumnHeaderProps };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React, { forwardRef, useState } from "react";
|
|
13
|
+
import { ArrowsUpDownIcon, CaretLeftCircleFillIcon, CaretRightCircleFillIcon, SortDownIcon, SortUpIcon, } from "@navikt/aksel-icons";
|
|
14
|
+
import { cl } from "../../../utils/helpers/index.js";
|
|
15
|
+
import { useMergeRefs } from "../../../utils/hooks/index.js";
|
|
16
|
+
import { DataTableBaseCell, } from "../base-cell/DataTableBaseCell.js";
|
|
17
|
+
import { useTableColumnResize } from "./useTableColumnResize.js";
|
|
18
|
+
const SORT_ICON = {
|
|
19
|
+
asc: SortUpIcon,
|
|
20
|
+
desc: SortDownIcon,
|
|
21
|
+
none: ArrowsUpDownIcon,
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* TODO:
|
|
25
|
+
* - Plan for pinning: Move it into "settings" dialog like here: https://cloudscape.design/examples/react/table.html
|
|
26
|
+
* Toggling `data-block-keyboard-nav` does not work since the created "grid" does not update when toggling this attribute.
|
|
27
|
+
*/
|
|
28
|
+
const DataTableColumnHeader = forwardRef((_a, forwardedRef) => {
|
|
29
|
+
var { className, children, sortable = false, sortDirection = "none", onSortClick, style, width, minWidth, maxWidth, onWidthChange, defaultWidth, colSpan, rowSpan, UNSAFE_isSelection } = _a, rest = __rest(_a, ["className", "children", "sortable", "sortDirection", "onSortClick", "style", "width", "minWidth", "maxWidth", "onWidthChange", "defaultWidth", "colSpan", "rowSpan", "UNSAFE_isSelection"]);
|
|
30
|
+
const [isOverflowing, setIsOverflowing] = React.useState(false);
|
|
31
|
+
const contentRef = React.useRef(null);
|
|
32
|
+
const [thRefState, setThRefState] = useState(null);
|
|
33
|
+
const mergedRef = useMergeRefs(forwardedRef, setThRefState);
|
|
34
|
+
const resizeResult = useTableColumnResize({
|
|
35
|
+
ref: thRefState,
|
|
36
|
+
width,
|
|
37
|
+
defaultWidth,
|
|
38
|
+
minWidth,
|
|
39
|
+
maxWidth,
|
|
40
|
+
onWidthChange,
|
|
41
|
+
style,
|
|
42
|
+
colSpan,
|
|
43
|
+
});
|
|
44
|
+
const SortIcon = sortable ? SORT_ICON[sortDirection] : null;
|
|
45
|
+
return (React.createElement(DataTableBaseCell, Object.assign({ as: "th" }, rest, { ref: mergedRef, className: cl("aksel-data-table__column-header", className), "data-sortable": sortable, style: resizeResult.style, "aria-sort": sortable ? getAriaSort(sortDirection) : undefined, onPointerEnter: () => {
|
|
46
|
+
const el = contentRef.current;
|
|
47
|
+
setIsOverflowing(el ? el.scrollWidth > el.offsetWidth : false);
|
|
48
|
+
console.info("is overflowing", isOverflowing);
|
|
49
|
+
}, onPointerLeave: () => setIsOverflowing(false), UNSAFE_isSelection: UNSAFE_isSelection, colSpan: colSpan, rowSpan: rowSpan }),
|
|
50
|
+
sortable ? (React.createElement("button", { className: "aksel-data-table__th-sort-button", onClick: onSortClick },
|
|
51
|
+
React.createElement("div", { ref: contentRef, className: "aksel-data-table__th-content" }, children),
|
|
52
|
+
SortIcon && (React.createElement(SortIcon, { "aria-hidden": true, "data-sort-direction": sortDirection, className: "aksel-data-table__th-sort-icon", fontSize: "1.25rem" })))) : (React.createElement("div", { ref: contentRef, className: cl({
|
|
53
|
+
"aksel-data-table__th-content": !UNSAFE_isSelection,
|
|
54
|
+
}) }, children)),
|
|
55
|
+
resizeResult.enabled && !UNSAFE_isSelection && (React.createElement("button", Object.assign({}, resizeResult.resizeHandlerProps, { className: "aksel-data-table__th-resize-handle", "data-active": resizeResult.isResizingWithKeyboard, "data-disable-keyboard-nav": resizeResult.isResizingWithKeyboard, "data-block-keyboard-nav": true }), resizeResult.isResizingWithKeyboard && (React.createElement(React.Fragment, null,
|
|
56
|
+
React.createElement("span", { className: "aksel-data-table__th-resize-handle-indicator aksel-data-table__th-resize-handle-indicator--start" },
|
|
57
|
+
React.createElement(CaretLeftCircleFillIcon, { "aria-hidden": true, fontSize: "1.5rem" })),
|
|
58
|
+
React.createElement("span", { className: "aksel-data-table__th-resize-handle-indicator aksel-data-table__th-resize-handle-indicator--end" },
|
|
59
|
+
React.createElement(CaretRightCircleFillIcon, { "aria-hidden": true, fontSize: "1.5rem" }))))))));
|
|
60
|
+
});
|
|
61
|
+
function getAriaSort(sortDirection) {
|
|
62
|
+
if (sortDirection === "asc")
|
|
63
|
+
return "ascending";
|
|
64
|
+
if (sortDirection === "desc")
|
|
65
|
+
return "descending";
|
|
66
|
+
if (sortDirection === "none")
|
|
67
|
+
return "none";
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
export { DataTableColumnHeader };
|
|
71
|
+
//# sourceMappingURL=DataTableColumnHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableColumnHeader.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/DataTableColumnHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableColumnResize.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/useTableColumnResize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
type DataTableEmptyStateProps = React.HTMLAttributes<HTMLDivElement
|
|
3
|
-
|
|
2
|
+
type DataTableEmptyStateProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
3
|
+
colSpan?: number;
|
|
4
|
+
};
|
|
5
|
+
declare const DataTableEmptyState: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
6
|
+
colSpan?: number;
|
|
7
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
4
8
|
export { DataTableEmptyState };
|
|
5
9
|
export type { DataTableEmptyStateProps };
|
|
@@ -12,9 +12,9 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import React, { forwardRef } from "react";
|
|
13
13
|
import { cl } from "../../../utils/helpers/index.js";
|
|
14
14
|
const DataTableEmptyState = forwardRef((_a, forwardedRef) => {
|
|
15
|
-
var { className, children } = _a, rest = __rest(_a, ["className", "children"]);
|
|
15
|
+
var { className, children, colSpan = 999 } = _a, rest = __rest(_a, ["className", "children", "colSpan"]);
|
|
16
16
|
return (React.createElement("tr", null,
|
|
17
|
-
React.createElement("td", { colSpan:
|
|
17
|
+
React.createElement("td", { colSpan: colSpan },
|
|
18
18
|
React.createElement("div", Object.assign({}, rest, { ref: forwardedRef, className: cl("aksel-data-table__empty-state", className) }), children))));
|
|
19
19
|
});
|
|
20
20
|
export { DataTableEmptyState };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableEmptyState.js","sourceRoot":"","sources":["../../../../src/data/table/empty-state/DataTableEmptyState.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTableEmptyState.js","sourceRoot":"","sources":["../../../../src/data/table/empty-state/DataTableEmptyState.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAM5C,MAAM,mBAAmB,GAAG,UAAU,CAGpC,CAAC,EAA+C,EAAE,YAAY,EAAE,EAAE;QAAjE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,GAAG,OAAW,EAAN,IAAI,cAA7C,oCAA+C,CAAF;IAC9C,OAAO,CACL;QACE,4BAAI,OAAO,EAAE,OAAO;YAClB,6CACM,IAAI,IACR,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KAExD,QAAQ,CACL,CACH,CACF,CACN,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { CheckboxInputProps } from "../../../../form/checkbox/checkbox-input/CheckboxInput.js";
|
|
2
|
-
import type { SelectionT } from "./selection.types.js";
|
|
3
2
|
type GetMultipleSelectPropsArgs = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
selectedKeysSet: Set<string | number>;
|
|
4
|
+
selectedKeys: (string | number)[];
|
|
5
|
+
setSelectedKeys: (keys: (string | number)[]) => void;
|
|
6
|
+
disabledKeysSet: Set<string | number>;
|
|
7
|
+
allRowKeys: (string | number)[];
|
|
9
8
|
};
|
|
10
|
-
declare function getMultipleSelectProps({ selectedKeys, setSelectedKeys,
|
|
9
|
+
declare function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys, disabledKeysSet, allRowKeys, }: GetMultipleSelectPropsArgs): {
|
|
11
10
|
getTheadCheckboxProps: () => CheckboxInputProps;
|
|
12
11
|
getRowCheckboxProps: (key: string | number) => CheckboxInputProps;
|
|
12
|
+
toggleSelection: (key: string | number) => void;
|
|
13
13
|
};
|
|
14
14
|
export { getMultipleSelectProps };
|
|
@@ -1,45 +1,46 @@
|
|
|
1
|
-
function getMultipleSelectProps({ selectedKeys, setSelectedKeys,
|
|
1
|
+
function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys, disabledKeysSet, allRowKeys, }) {
|
|
2
|
+
const allRowKeysSet = new Set(allRowKeys);
|
|
3
|
+
const selectableKeys = allRowKeys.filter((k) => !disabledKeysSet.has(k));
|
|
4
|
+
const selectedSelectableCount = selectableKeys.filter((k) => selectedKeysSet.has(k)).length;
|
|
5
|
+
const allSelectableSelected = selectableKeys.length > 0 &&
|
|
6
|
+
selectedSelectableCount === selectableKeys.length;
|
|
7
|
+
const indeterminate = selectedSelectableCount > 0 &&
|
|
8
|
+
selectedSelectableCount < selectableKeys.length;
|
|
9
|
+
const selectedKeysNotInView = selectedKeys.filter((k) => !allRowKeysSet.has(k));
|
|
10
|
+
const disabledSelected = selectedKeys.filter((k) => disabledKeysSet.has(k));
|
|
11
|
+
const preservedKeys = [...selectedKeysNotInView, ...disabledSelected];
|
|
2
12
|
const handleToggleAll = () => {
|
|
3
|
-
|
|
4
|
-
(
|
|
5
|
-
|
|
13
|
+
if (allSelectableSelected) {
|
|
14
|
+
setSelectedKeys(preservedKeys);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
setSelectedKeys([...new Set([...preservedKeys, ...selectableKeys])]);
|
|
18
|
+
}
|
|
6
19
|
};
|
|
7
20
|
const handleToggleRow = (key) => {
|
|
8
|
-
if (
|
|
9
|
-
|
|
21
|
+
if (disabledKeysSet.has(key)) {
|
|
22
|
+
return;
|
|
10
23
|
}
|
|
11
|
-
|
|
24
|
+
if (selectedKeysSet.has(key)) {
|
|
12
25
|
setSelectedKeys(selectedKeys.filter((k) => k !== key));
|
|
13
26
|
}
|
|
14
27
|
else {
|
|
15
28
|
setSelectedKeys([...selectedKeys, key]);
|
|
16
29
|
}
|
|
17
30
|
};
|
|
18
|
-
const isChecked = (key) => selectedKeys === "all" ||
|
|
19
|
-
(Array.isArray(selectedKeys) && selectedKeys.includes(key));
|
|
20
31
|
return {
|
|
21
|
-
getTheadCheckboxProps: () => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/* children: "Select all rows", */
|
|
28
|
-
onChange: handleToggleAll,
|
|
29
|
-
checked: (selectedKeys === "all" ||
|
|
30
|
-
(Array.isArray(selectedKeys) && selectedKeys.length > 0)) &&
|
|
31
|
-
!indeterminate,
|
|
32
|
-
indeterminate,
|
|
33
|
-
disabled: disabledKeys.length === totalCount,
|
|
34
|
-
};
|
|
35
|
-
},
|
|
32
|
+
getTheadCheckboxProps: () => ({
|
|
33
|
+
onChange: handleToggleAll,
|
|
34
|
+
checked: allSelectableSelected,
|
|
35
|
+
indeterminate,
|
|
36
|
+
disabled: selectableKeys.length === 0,
|
|
37
|
+
}),
|
|
36
38
|
getRowCheckboxProps: (key) => ({
|
|
37
|
-
/* TODO: Add support for label visuallyhidden */
|
|
38
|
-
/* children: `Select row with id ${key}`, */
|
|
39
39
|
onChange: () => handleToggleRow(key),
|
|
40
|
-
checked:
|
|
41
|
-
disabled:
|
|
40
|
+
checked: selectedKeysSet.has(key),
|
|
41
|
+
disabled: disabledKeysSet.has(key),
|
|
42
42
|
}),
|
|
43
|
+
toggleSelection: handleToggleRow,
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
export { getMultipleSelectProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMultipleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getMultipleSelectProps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getMultipleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getMultipleSelectProps.ts"],"names":[],"mappings":"AAUA,SAAS,sBAAsB,CAAC,EAC9B,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,UAAU,GACiB;IAC3B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE,MAAM,uBAAuB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CACvB,CAAC,MAAM,CAAC;IAET,MAAM,qBAAqB,GACzB,cAAc,CAAC,MAAM,GAAG,CAAC;QACzB,uBAAuB,KAAK,cAAc,CAAC,MAAM,CAAC;IAEpD,MAAM,aAAa,GACjB,uBAAuB,GAAG,CAAC;QAC3B,uBAAuB,GAAG,cAAc,CAAC,MAAM,CAAC;IAElD,MAAM,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAC7B,CAAC;IACF,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,CAAC,GAAG,qBAAqB,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAEtE,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,qBAAqB,EAAE,CAAC;YAC1B,eAAe,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,GAAoB,EAAE,EAAE;QAC/C,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,eAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,qBAAqB,EAAE,GAAuB,EAAE,CAAC,CAAC;YAChD,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,qBAAqB;YAC9B,aAAa;YACb,QAAQ,EAAE,cAAc,CAAC,MAAM,KAAK,CAAC;SACtC,CAAC;QACF,mBAAmB,EAAE,CAAC,GAAoB,EAAsB,EAAE,CAAC,CAAC;YAClE,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;YACpC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;YACjC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;SACnC,CAAC;QACF,eAAe,EAAE,eAAe;KACjC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { RadioInputProps } from "../../../../form/radio/radio-input/RadioInput.js";
|
|
2
2
|
type GetSingleSelectPropsArgs = {
|
|
3
|
-
|
|
3
|
+
selectedKeysSet: Set<string | number>;
|
|
4
4
|
setSelectedKeys: (keys: (string | number)[]) => void;
|
|
5
|
-
|
|
5
|
+
disabledKeysSet: Set<string | number>;
|
|
6
|
+
name: string;
|
|
6
7
|
};
|
|
7
|
-
declare function getSingleSelectProps({
|
|
8
|
+
declare function getSingleSelectProps({ selectedKeysSet, setSelectedKeys, disabledKeysSet, name, }: GetSingleSelectPropsArgs): {
|
|
8
9
|
getRowRadioProps: (key: string | number) => RadioInputProps;
|
|
10
|
+
toggleSelection: (key: string | number) => void;
|
|
9
11
|
};
|
|
10
12
|
export { getSingleSelectProps };
|