@rio-cloud/rio-uikit 2.3.0-beta.1 → 2.3.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DayPicker.js +6 -2
- package/DayPicker.js.map +1 -1
- package/DayPickerCalendar.d.ts +2 -0
- package/DayPickerCalendar.js +5 -0
- package/DayPickerCalendar.js.map +1 -0
- package/DayPickerPrototype.d.ts +2 -0
- package/DayPickerPrototype.js +5 -0
- package/DayPickerPrototype.js.map +1 -0
- package/TableNext.d.ts +2 -0
- package/TableNext.js +23 -0
- package/TableNext.js.map +1 -0
- package/TableToolbar.js +3 -2
- package/TableToolbar.js.map +1 -1
- package/components/assetTree/Tree.js +13 -13
- package/components/charts/Area.d.ts +5 -3
- package/components/charts/Area.js +4 -3
- package/components/charts/Area.js.map +1 -1
- package/components/charts/AreaChart.js.map +1 -1
- package/components/charts/ComposedChart.js.map +1 -1
- package/components/clearableInput/ClearableInput.d.ts +30 -0
- package/components/clearableInput/ClearableInput.js +81 -78
- package/components/clearableInput/ClearableInput.js.map +1 -1
- package/components/datepicker/DayPicker.d.ts +4 -51
- package/components/datepicker/DayPicker.js +264 -256
- package/components/datepicker/DayPicker.js.map +1 -1
- package/components/datepicker/DayPickerCalendar.d.ts +4 -0
- package/components/datepicker/DayPickerCalendar.js +129 -0
- package/components/datepicker/DayPickerCalendar.js.map +1 -0
- package/components/datepicker/DayPickerDropdown.d.ts +18 -0
- package/components/datepicker/DayPickerDropdown.js +75 -0
- package/components/datepicker/DayPickerDropdown.js.map +1 -0
- package/components/datepicker/DayPickerDropdownFooter.d.ts +7 -0
- package/components/datepicker/DayPickerDropdownFooter.js +7 -0
- package/components/datepicker/DayPickerDropdownFooter.js.map +1 -0
- package/components/datepicker/DayPickerDropdownSidebar.d.ts +8 -0
- package/components/datepicker/DayPickerDropdownSidebar.js +7 -0
- package/components/datepicker/DayPickerDropdownSidebar.js.map +1 -0
- package/components/datepicker/DayPickerInput.d.ts +28 -0
- package/components/datepicker/DayPickerInput.js +65 -0
- package/components/datepicker/DayPickerInput.js.map +1 -0
- package/components/datepicker/DayPickerPrototype.d.ts +53 -0
- package/components/datepicker/DayPickerPrototype.js +285 -0
- package/components/datepicker/DayPickerPrototype.js.map +1 -0
- package/components/datepicker/dayPickerRangeSelectionUtils.d.ts +15 -0
- package/components/datepicker/dayPickerRangeSelectionUtils.js +31 -0
- package/components/datepicker/dayPickerRangeSelectionUtils.js.map +1 -0
- package/components/datepicker/dayPickerTypes.d.ts +517 -0
- package/components/datepicker/dayPickerTypes.js +7 -0
- package/components/datepicker/dayPickerTypes.js.map +1 -0
- package/components/datepicker/dayPickerUtils.d.ts +10 -0
- package/components/datepicker/dayPickerUtils.js +92 -0
- package/components/datepicker/dayPickerUtils.js.map +1 -0
- package/components/datepicker/useDayPickerInputState.d.ts +32 -0
- package/components/datepicker/useDayPickerInputState.js +85 -0
- package/components/datepicker/useDayPickerInputState.js.map +1 -0
- package/components/datepicker/useStackedDayPickerCalendars.d.ts +5 -0
- package/components/datepicker/useStackedDayPickerCalendars.js +39 -0
- package/components/datepicker/useStackedDayPickerCalendars.js.map +1 -0
- package/components/divider/Divider.js +6 -6
- package/components/dropdown/ButtonDropdown.d.ts +4 -0
- package/components/dropdown/ButtonDropdown.js +70 -68
- package/components/dropdown/ButtonDropdown.js.map +1 -1
- package/components/dropdown/DropdownToggleButton.d.ts +1 -0
- package/components/dropdown/DropdownToggleButton.js +17 -15
- package/components/dropdown/DropdownToggleButton.js.map +1 -1
- package/components/fade/FadeExpander.js +17 -20
- package/components/fade/FadeExpander.js.map +1 -1
- package/components/loadMore/LoadMoreProgress.js +6 -7
- package/components/map/components/Map.js +3 -3
- package/components/map/utils/rendering.js +5 -5
- package/components/popover/Popover.js +4 -4
- package/components/radiobutton/RadioCardGroup.js +3 -3
- package/components/rioglyph/RioglyphIconType.d.ts +1 -1
- package/components/selects/Multiselect.d.ts +6 -0
- package/components/selects/Multiselect.js +164 -150
- package/components/selects/Multiselect.js.map +1 -1
- package/components/selects/Select.js +39 -37
- package/components/selects/Select.js.map +1 -1
- package/components/table/Table.d.ts +27 -248
- package/components/table/Table.js +237 -214
- package/components/table/Table.js.map +1 -1
- package/components/table/Table.types.d.ts +293 -121
- package/components/table/TableBody.d.ts +65 -5
- package/components/table/TableBody.js +132 -2
- package/components/table/TableBody.js.map +1 -1
- package/components/table/TableCardsSorting.js +25 -32
- package/components/table/TableCardsSorting.js.map +1 -1
- package/components/table/TableColumn.d.ts +13 -5
- package/components/table/TableColumn.js +112 -2
- package/components/table/TableColumn.js.map +1 -1
- package/components/table/TableExpandedContentRow.d.ts +7 -7
- package/components/table/TableExpandedContentRow.js +107 -2
- package/components/table/TableExpandedContentRow.js.map +1 -1
- package/components/table/TableExpandedRow.d.ts +9 -4
- package/components/table/TableExpandedRow.js +147 -2
- package/components/table/TableExpandedRow.js.map +1 -1
- package/components/table/TableExpanderButton.js +13 -11
- package/components/table/TableExpanderButton.js.map +1 -1
- package/components/table/TableFooter.d.ts +10 -6
- package/components/table/TableFooter.js +49 -2
- package/components/table/TableFooter.js.map +1 -1
- package/components/table/TableGroupFooterRow.d.ts +7 -7
- package/components/table/TableGroupFooterRow.js +27 -2
- package/components/table/TableGroupFooterRow.js.map +1 -1
- package/components/table/TableGroupRow.d.ts +7 -7
- package/components/table/TableGroupRow.js +33 -2
- package/components/table/TableGroupRow.js.map +1 -1
- package/components/table/TableHeader.d.ts +9 -4
- package/components/table/TableHeader.js +104 -2
- package/components/table/TableHeader.js.map +1 -1
- package/components/table/TableHeaderColumn.d.ts +14 -8
- package/components/table/TableHeaderColumn.js +78 -2
- package/components/table/TableHeaderColumn.js.map +1 -1
- package/components/table/TableHeaderRow.d.ts +1 -1
- package/components/table/TableHeaderRow.js +11 -2
- package/components/table/TableHeaderRow.js.map +1 -1
- package/components/table/TableRow.d.ts +9 -4
- package/components/table/TableRow.js +108 -2
- package/components/table/TableRow.js.map +1 -1
- package/components/table/TableSpacerRow.d.ts +3 -2
- package/components/table/TableSpacerRow.js +26 -2
- package/components/table/TableSpacerRow.js.map +1 -1
- package/components/table/TableToolbar.d.ts +4 -23
- package/components/table/TableToolbar.js +39 -28
- package/components/table/TableToolbar.js.map +1 -1
- package/components/table/TableToolbarColumn.d.ts +31 -0
- package/components/table/TableToolbarColumn.js +33 -0
- package/components/table/TableToolbarColumn.js.map +1 -0
- package/components/table/TableViewToggles.d.ts +3 -3
- package/components/table/TableViewToggles.js.map +1 -1
- package/components/table/context/TableInteractionContext.d.ts +26 -0
- package/components/table/context/TableInteractionContext.js +7 -0
- package/components/table/context/TableInteractionContext.js.map +1 -0
- package/components/table/context/TableLayoutContext.d.ts +25 -0
- package/components/table/context/TableLayoutContext.js +7 -0
- package/components/table/context/TableLayoutContext.js.map +1 -0
- package/components/table/context/TableRenderConfigContext.d.ts +27 -0
- package/components/table/context/TableRenderConfigContext.js +7 -0
- package/components/table/context/TableRenderConfigContext.js.map +1 -0
- package/components/table/context/TableRenderContext.d.ts +85 -0
- package/components/table/context/TableRenderContext.js +7 -0
- package/components/table/context/TableRenderContext.js.map +1 -0
- package/components/table/context/TableStructureContext.d.ts +31 -0
- package/components/table/context/TableStructureContext.js +17 -0
- package/components/table/context/TableStructureContext.js.map +1 -0
- package/components/table/layout/columnSizing.d.ts +2 -2
- package/components/table/layout/columnSizing.js.map +1 -1
- package/components/table/layout/useDraggableColumns.d.ts +3 -3
- package/components/table/layout/useDraggableColumns.js +17 -17
- package/components/table/layout/useDraggableColumns.js.map +1 -1
- package/components/table/layout/useHorizontalSectionSync.d.ts +3 -1
- package/components/table/layout/useHorizontalSectionSync.js +32 -28
- package/components/table/layout/useHorizontalSectionSync.js.map +1 -1
- package/components/table/layout/useMeasuredColumnMaxWidths.d.ts +3 -3
- package/components/table/layout/useMeasuredColumnMaxWidths.js.map +1 -1
- package/components/table/layout/useResizableColumns.d.ts +5 -4
- package/components/table/layout/useResizableColumns.js +108 -67
- package/components/table/layout/useResizableColumns.js.map +1 -1
- package/components/table/layout/useTableBodyScrollBottom.d.ts +12 -0
- package/components/table/layout/useTableBodyScrollBottom.js +37 -0
- package/components/table/layout/useTableBodyScrollBottom.js.map +1 -0
- package/components/table/layout/useTableLayout.d.ts +17 -6
- package/components/table/layout/useTableLayout.js +41 -38
- package/components/table/layout/useTableLayout.js.map +1 -1
- package/components/table/layout/useTableVirtualization.d.ts +6 -6
- package/components/table/layout/useTableVirtualization.js +22 -22
- package/components/table/layout/useTableVirtualization.js.map +1 -1
- package/components/table/model/resolveRowMeta.d.ts +3 -2
- package/components/table/model/resolveRowMeta.js.map +1 -1
- package/components/table/model/resolveTableClassConfig.d.ts +2 -3
- package/components/table/model/resolveTableClassConfig.js.map +1 -1
- package/components/table/model/tableView.types.d.ts +41 -0
- package/components/table/native/TableSettingsListItem.js +1 -1
- package/components/table/native/TableSettingsListItem.js.map +1 -1
- package/components/table/render/body/TableBodyContent.d.ts +21 -0
- package/components/table/render/body/TableBodyContent.js +52 -0
- package/components/table/render/body/TableBodyContent.js.map +1 -0
- package/components/table/render/body/TableEmptyRow.js +2 -2
- package/components/table/render/body/TableEmptyRow.js.map +1 -1
- package/components/table/render/header/TableBatchDropdown.d.ts +5 -1
- package/components/table/render/header/TableBatchDropdown.js +17 -15
- package/components/table/render/header/TableBatchDropdown.js.map +1 -1
- package/components/table/render/header/TableColumnFilter.d.ts +2 -2
- package/components/table/render/header/TableColumnFilter.js +16 -14
- package/components/table/render/header/TableColumnFilter.js.map +1 -1
- package/components/table/render/header/TableDraggableHeaderCell.d.ts +2 -1
- package/components/table/render/header/TableDraggableHeaderCell.js +44 -34
- package/components/table/render/header/TableDraggableHeaderCell.js.map +1 -1
- package/components/table/render/header/TableHeader.types.d.ts +11 -9
- package/components/table/render/header/TableHeaderCellContent.d.ts +2 -1
- package/components/table/render/header/TableHeaderCellContent.js.map +1 -1
- package/components/table/render/header/TableHeaderCellResizeHandle.d.ts +2 -1
- package/components/table/render/header/TableHeaderCellResizeHandle.js +8 -8
- package/components/table/render/header/TableHeaderCellResizeHandle.js.map +1 -1
- package/components/table/render/header/TableHeaderDragOverlay.d.ts +5 -4
- package/components/table/render/header/TableHeaderDragOverlay.js.map +1 -1
- package/components/table/render/header/TableStaticHeaderCell.d.ts +2 -1
- package/components/table/render/header/TableStaticHeaderCell.js +34 -22
- package/components/table/render/header/TableStaticHeaderCell.js.map +1 -1
- package/components/table/render/header/resolveAriaSort.d.ts +2 -1
- package/components/table/render/header/resolveAriaSort.js.map +1 -1
- package/components/table/render/header/resolveHeaderCellClassName.d.ts +4 -2
- package/components/table/render/header/resolveHeaderCellClassName.js +11 -10
- package/components/table/render/header/resolveHeaderCellClassName.js.map +1 -1
- package/components/table/render/header/resolveHeaderCellStyle.d.ts +2 -1
- package/components/table/render/header/resolveHeaderCellStyle.js.map +1 -1
- package/components/table/runtime/shouldAnimateBodyRows.d.ts +17 -0
- package/components/table/runtime/shouldAnimateBodyRows.js +5 -0
- package/components/table/runtime/shouldAnimateBodyRows.js.map +1 -0
- package/components/table/runtime/useRenderDraftState.d.ts +14 -0
- package/components/table/runtime/useRenderDraftState.js +80 -0
- package/components/table/runtime/useRenderDraftState.js.map +1 -0
- package/components/table/runtime/useResolvedRenderColumns.d.ts +43 -0
- package/components/table/runtime/useResolvedRenderColumns.js +113 -0
- package/components/table/runtime/useResolvedRenderColumns.js.map +1 -0
- package/components/table/runtime/useResolvedRenderHeader.d.ts +27 -0
- package/components/table/runtime/useResolvedRenderHeader.js +67 -0
- package/components/table/runtime/useResolvedRenderHeader.js.map +1 -0
- package/components/table/selection/useInternalTableSelectionState.d.ts +17 -0
- package/components/table/selection/useInternalTableSelectionState.js +28 -0
- package/components/table/selection/useInternalTableSelectionState.js.map +1 -0
- package/components/table/selection/useTableSelection.d.ts +3 -3
- package/components/table/selection/useTableSelection.js.map +1 -1
- package/components/table/shared/getCellContentOverflowClassName.d.ts +3 -0
- package/components/table/shared/getCellContentOverflowClassName.js +18 -0
- package/components/table/shared/getCellContentOverflowClassName.js.map +1 -0
- package/components/table/shared/getInteractiveRowProps.d.ts +3 -2
- package/components/table/shared/getInteractiveRowProps.js.map +1 -1
- package/hooks/useUrlState.js +3 -3
- package/package.json +16 -17
- package/utils/analytics/createAnalyticsOverlayTooltip.js +57 -57
- package/utils/analytics/createAnalyticsOverlayTooltip.js.map +1 -1
- package/utils/analytics/useAnalyticsOverlayDom.js +3 -3
- package/utils/routeUtils.d.ts +5 -2
- package/utils/routeUtils.js +17 -17
- package/utils/routeUtils.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/components/table/TableCard.d.ts +0 -63
- package/components/table/TableCard.js +0 -150
- package/components/table/TableCard.js.map +0 -1
- package/components/table/model/buildTableViewModel.d.ts +0 -28
- package/components/table/model/buildTableViewModel.js +0 -221
- package/components/table/model/buildTableViewModel.js.map +0 -1
- package/components/table/model/resolveCellContent.d.ts +0 -2
- package/components/table/model/resolveCellContent.js +0 -5
- package/components/table/model/resolveCellContent.js.map +0 -1
- package/components/table/model/tableViewModel.types.d.ts +0 -153
- package/components/table/parse/parseBody.d.ts +0 -3
- package/components/table/parse/parseBody.js +0 -13
- package/components/table/parse/parseBody.js.map +0 -1
- package/components/table/parse/parseColumns.d.ts +0 -3
- package/components/table/parse/parseColumns.js +0 -81
- package/components/table/parse/parseColumns.js.map +0 -1
- package/components/table/parse/parseFooter.d.ts +0 -3
- package/components/table/parse/parseFooter.js +0 -39
- package/components/table/parse/parseFooter.js.map +0 -1
- package/components/table/parse/parseHeaders.d.ts +0 -4
- package/components/table/parse/parseHeaders.js +0 -89
- package/components/table/parse/parseHeaders.js.map +0 -1
- package/components/table/parse/parseRows.d.ts +0 -3
- package/components/table/parse/parseRows.js +0 -93
- package/components/table/parse/parseRows.js.map +0 -1
- package/components/table/parse/tableChildGuards.d.ts +0 -25
- package/components/table/parse/tableChildGuards.js +0 -29
- package/components/table/parse/tableChildGuards.js.map +0 -1
- package/components/table/render/body/TableBodyRow.d.ts +0 -16
- package/components/table/render/body/TableBodyRow.js +0 -84
- package/components/table/render/body/TableBodyRow.js.map +0 -1
- package/components/table/render/body/TableBodySection.d.ts +0 -20
- package/components/table/render/body/TableBodySection.js +0 -68
- package/components/table/render/body/TableBodySection.js.map +0 -1
- package/components/table/render/body/TableDataRow.d.ts +0 -15
- package/components/table/render/body/TableDataRow.js +0 -143
- package/components/table/render/body/TableDataRow.js.map +0 -1
- package/components/table/render/body/TableExpandedRow.d.ts +0 -8
- package/components/table/render/body/TableExpandedRow.js +0 -84
- package/components/table/render/body/TableExpandedRow.js.map +0 -1
- package/components/table/render/body/TableGroupRow.d.ts +0 -8
- package/components/table/render/body/TableGroupRow.js +0 -21
- package/components/table/render/body/TableGroupRow.js.map +0 -1
- package/components/table/render/body/TableSpacerRow.d.ts +0 -7
- package/components/table/render/body/TableSpacerRow.js +0 -15
- package/components/table/render/body/TableSpacerRow.js.map +0 -1
- package/components/table/render/footer/TableFooterCell.d.ts +0 -8
- package/components/table/render/footer/TableFooterCell.js +0 -31
- package/components/table/render/footer/TableFooterCell.js.map +0 -1
- package/components/table/render/footer/TableFooterSection.d.ts +0 -10
- package/components/table/render/footer/TableFooterSection.js +0 -28
- package/components/table/render/footer/TableFooterSection.js.map +0 -1
- package/components/table/render/header/TableHeaderSection.d.ts +0 -3
- package/components/table/render/header/TableHeaderSection.js +0 -104
- package/components/table/render/header/TableHeaderSection.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBody.js","sources":["../../../src/components/table/TableBody.tsx"],"sourcesContent":["import type { PropsWithChildren } from 'react';\n\nexport type TableBodyProps = PropsWithChildren<{\n /**\n * Optional max height of rendered table body.\n * Enables vertical scrolling inside the body.\n */\n maxHeight?: number | string;\n}>;\n\nconst TableBody = (_props: TableBodyProps) => null;\n\nexport default TableBody;\n"],"names":["TableBody","_props"],"mappings":"AAUA,MAAMA,IAAY,CAACC,MAA2B;"}
|
|
1
|
+
{"version":3,"file":"TableBody.js","sources":["../../../src/components/table/TableBody.tsx"],"sourcesContent":["import {\n Children,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useRef,\n useState,\n type ForwardedRef,\n type ReactNode,\n} from 'react';\n\nimport SmoothScrollbars from '../smoothScrollbars/SmoothScrollbars';\nimport useVirtualListResizeObserver from '../virtualList/useVirtualListResizeObserver';\nimport type { TableHtmlAttributes } from './Table.types';\nimport { toCssSize } from './layout/columnSizing';\nimport useTableBodyScrollBottom from './layout/useTableBodyScrollBottom';\nimport useTableVirtualization from './layout/useTableVirtualization';\nimport { shouldAnimateBodyRows as resolveShouldAnimateBodyRows } from './runtime/shouldAnimateBodyRows';\nimport TableBodyContent from './render/body/TableBodyContent';\nimport { useOptionalTableInteractionContext } from './context/TableInteractionContext';\nimport { useOptionalTableLayoutContext } from './context/TableLayoutContext';\nimport { useOptionalTableRenderConfigContext } from './context/TableRenderConfigContext';\nimport { TableBodyContext, TableSectionContext } from './context/TableStructureContext';\nimport { TableRenderContext, useOptionalTableRenderContext } from './context/TableRenderContext';\n\ntype TableVirtualScrollContainer = {\n view?: HTMLDivElement | null;\n};\n\nconst parsePixelSize = (value?: string): number | undefined => {\n if (!value) {\n return;\n }\n\n const parsedValue = Number.parseFloat(value);\n return Number.isNaN(parsedValue) ? undefined : parsedValue;\n};\n\nexport type TableBodyProps = TableHtmlAttributes & {\n /**\n * Body sections are expected to render row components such as `TableRow`,\n * `TableExpandedRow`, `TableExpandedContentRow`, `TableGroupRow`,\n * `TableGroupFooterRow`, or `TableSpacerRow`.\n *\n * Rows may be wrapped by custom React components, but direct `TableColumn`\n * children of `TableBody` are not supported.\n */\n children?: ReactNode;\n\n /**\n * Optional max height of rendered table body.\n * Enables vertical scrolling inside the body.\n */\n maxHeight?: number | string;\n\n /**\n * Called when the scrollable table body reaches the bottom threshold.\n *\n * This is useful for progressive loading patterns such as appending the next\n * chunk of rows when the user scrolls to the end of the body.\n */\n onScrollBottom?: () => void;\n\n /**\n * Distance in pixels from the bottom at which `onScrollBottom` should fire.\n *\n * Set this to `0` to only trigger when the body is scrolled fully to the end.\n *\n * @default 0\n */\n scrollBottomOffset?: number;\n};\n\nexport type TableBodyHandle = {\n scrollToTop: () => void;\n scrollTo: (options: ScrollToOptions) => void;\n getScrollElement: () => HTMLDivElement | null;\n};\n\nconst TableBody = (props: TableBodyProps, ref: ForwardedRef<TableBodyHandle>) => {\n const { children, maxHeight, onScrollBottom, scrollBottomOffset = 0, ...remainingProps } = props;\n\n const renderConfigContext = useOptionalTableRenderConfigContext();\n const renderContext = useOptionalTableRenderContext();\n const interactionContext = useOptionalTableInteractionContext();\n const layoutContext = useOptionalTableLayoutContext();\n\n const hasRenderColumns = !!renderContext && renderContext.columns.length > 0;\n\n const hasDeclaredChildren = Children.toArray(children).length > 0;\n\n const rowIndexRef = useRef(0);\n const itemsRef = useRef<HTMLDivElement>(null);\n const scrollbarsRef = useRef<TableVirtualScrollContainer | null>(null);\n\n const [scrollContainer, setScrollContainer] = useState<TableVirtualScrollContainer | null>(null);\n rowIndexRef.current = 0;\n\n const resolvedMaxHeight = toCssSize(maxHeight);\n\n const virtualViewportHeightFallback = parsePixelSize(resolvedMaxHeight);\n\n const shouldVirtualize = hasRenderColumns && renderConfigContext?.virtualizedRows === true && !!resolvedMaxHeight;\n const hasRenderBodyRows = (renderContext?.bodyRows.length ?? 0) > 0;\n\n const getScrollElement = useCallback(\n () => scrollContainer?.view ?? scrollbarsRef.current?.view ?? null,\n [scrollContainer?.view]\n );\n\n const handleScrollbarsRef = useCallback((instance: TableVirtualScrollContainer | null) => {\n scrollbarsRef.current = instance;\n setScrollContainer(previousContainer =>\n previousContainer?.view === instance?.view ? previousContainer : instance\n );\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n scrollToTop: () => {\n getScrollElement()?.scrollTo({ top: 0 });\n\n requestAnimationFrame(() => {\n getScrollElement()?.scrollTo({ top: 0 });\n });\n },\n scrollTo: options => {\n getScrollElement()?.scrollTo(options);\n },\n getScrollElement,\n }),\n [getScrollElement]\n );\n\n const { isVirtualized, measureRow, paddingBottom, paddingTop, virtualRows } = useTableVirtualization({\n enabled: shouldVirtualize && hasRenderBodyRows,\n overscan: renderConfigContext?.virtualizationOverscan ?? 0,\n rows: renderContext?.bodyRows ?? [],\n scrollContainer,\n viewportHeightFallback: virtualViewportHeightFallback,\n });\n\n useVirtualListResizeObserver(itemsRef, measureRow, [isVirtualized, virtualRows]);\n\n const { handleScrollBottom } = useTableBodyScrollBottom({\n enabled: !!resolvedMaxHeight && !!onScrollBottom,\n itemCount: renderContext?.bodyRows.length ?? 0,\n onScrollBottom,\n scrollBottomOffset,\n scrollElement: scrollContainer?.view,\n });\n\n if (!renderConfigContext || !renderContext || !interactionContext || !layoutContext || !hasRenderColumns) {\n return null;\n }\n\n const columnCount = renderContext.columns.length + (interactionContext.showSelectionColumn ? 1 : 0);\n\n const shouldAnimateBodyRows = resolveShouldAnimateBodyRows({\n rowAnimationProps: renderConfigContext.rowAnimationProps,\n expandedRowAnimation: renderConfigContext.expandedRowAnimation,\n hasExpandableRows: renderContext.hasExpandableRows,\n hasExpandedRows: renderContext.bodyRows.some(\n row => row.kind === 'expanded' || row.kind === 'expanded-full-width'\n ),\n });\n\n renderContext.renderDraft.bodyMaxHeight = resolvedMaxHeight;\n\n // First pass: execute the body children in \"register only\" mode so wrapped rows can\n // contribute normalized row metadata without rendering their DOM twice.\n const renderCollectionContent = (\n <TableRenderContext.Provider value={{ ...renderContext, isRegisteringBodyRows: true }}>\n {children}\n </TableRenderContext.Provider>\n );\n\n return (\n <TableSectionContext.Provider value='body'>\n <TableBodyContext.Provider\n value={{\n nextRowIndex: () => {\n const nextRowIndex = rowIndexRef.current;\n rowIndexRef.current += 1;\n return nextRowIndex;\n },\n }}\n >\n {renderCollectionContent}\n {/* Second pass: render the collected row draft state in one controlled place. */}\n {resolvedMaxHeight ? (\n <SmoothScrollbars\n className='table-body-scroll-wrapper'\n autoHeight\n autoHeightMax={resolvedMaxHeight}\n onScroll={event => {\n layoutContext.handleBodyScroll?.(event);\n handleScrollBottom(event?.currentTarget as HTMLDivElement | null);\n }}\n role='presentation'\n ref={shouldVirtualize || !!onScrollBottom ? handleScrollbarsRef : undefined}\n >\n <TableBodyContent\n columnCount={columnCount}\n hasDeclaredChildren={hasDeclaredChildren}\n htmlAttributes={remainingProps}\n shouldAnimateBodyRows={shouldAnimateBodyRows}\n isVirtualized={isVirtualized}\n itemsRef={itemsRef}\n paddingBottom={paddingBottom}\n paddingTop={paddingTop}\n renderConfigContext={renderConfigContext}\n renderContext={renderContext}\n virtualRows={virtualRows}\n />\n </SmoothScrollbars>\n ) : (\n <TableBodyContent\n columnCount={columnCount}\n hasDeclaredChildren={hasDeclaredChildren}\n htmlAttributes={remainingProps}\n shouldAnimateBodyRows={shouldAnimateBodyRows}\n isVirtualized={isVirtualized}\n itemsRef={itemsRef}\n paddingBottom={paddingBottom}\n paddingTop={paddingTop}\n renderConfigContext={renderConfigContext}\n renderContext={renderContext}\n virtualRows={virtualRows}\n />\n )}\n </TableBodyContext.Provider>\n </TableSectionContext.Provider>\n );\n};\n\nexport default forwardRef(TableBody);\n"],"names":["parsePixelSize","value","parsedValue","TableBody","props","ref","children","maxHeight","onScrollBottom","scrollBottomOffset","remainingProps","renderConfigContext","useOptionalTableRenderConfigContext","renderContext","useOptionalTableRenderContext","interactionContext","useOptionalTableInteractionContext","layoutContext","useOptionalTableLayoutContext","hasRenderColumns","hasDeclaredChildren","Children","rowIndexRef","useRef","itemsRef","scrollbarsRef","scrollContainer","setScrollContainer","useState","resolvedMaxHeight","toCssSize","virtualViewportHeightFallback","shouldVirtualize","hasRenderBodyRows","getScrollElement","useCallback","handleScrollbarsRef","instance","previousContainer","useImperativeHandle","options","isVirtualized","measureRow","paddingBottom","paddingTop","virtualRows","useTableVirtualization","useVirtualListResizeObserver","handleScrollBottom","useTableBodyScrollBottom","columnCount","shouldAnimateBodyRows","resolveShouldAnimateBodyRows","row","renderCollectionContent","jsx","TableRenderContext","TableSectionContext","jsxs","TableBodyContext","nextRowIndex","SmoothScrollbars","event","TableBodyContent","TableBodyComponent","forwardRef"],"mappings":"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"}
|
|
@@ -1,46 +1,39 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
className:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}, h = (o) => {
|
|
17
|
-
N(o), a(o, r);
|
|
18
|
-
}, u = y("table-toolbar-cards-sorting", "btn-toolbar", e && e);
|
|
19
|
-
return /* @__PURE__ */ n("div", { className: u, children: [
|
|
20
|
-
/* @__PURE__ */ n("div", { className: "btn-group margin-left-0", children: [
|
|
21
|
-
/* @__PURE__ */ t(
|
|
22
|
-
i,
|
|
1
|
+
import { jsxs as l, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { noop as g } from "es-toolkit/compat";
|
|
3
|
+
import b from "../../utils/classNames.js";
|
|
4
|
+
import h from "../selects/Select.js";
|
|
5
|
+
import c from "../button/ToggleButton.js";
|
|
6
|
+
const v = (i) => {
|
|
7
|
+
const { sortName: m, sortOrder: t = "asc", selectOptions: a, onSortChange: r = g, className: e } = i, n = (o) => {
|
|
8
|
+
r(m, o);
|
|
9
|
+
}, p = (o) => {
|
|
10
|
+
r(o, t);
|
|
11
|
+
}, d = b("table-toolbar-cards-sorting", "btn-toolbar", e && e);
|
|
12
|
+
return /* @__PURE__ */ l("div", { className: d, children: [
|
|
13
|
+
/* @__PURE__ */ l("div", { className: "btn-group margin-left-0", children: [
|
|
14
|
+
/* @__PURE__ */ s(
|
|
15
|
+
c,
|
|
23
16
|
{
|
|
24
17
|
className: "btn-icon-only",
|
|
25
|
-
active:
|
|
26
|
-
onClick: () =>
|
|
27
|
-
children: /* @__PURE__ */
|
|
18
|
+
active: t === "asc",
|
|
19
|
+
onClick: () => n("asc"),
|
|
20
|
+
children: /* @__PURE__ */ s("span", { className: "rioglyph rioglyph-sort-by-attributes-alt" })
|
|
28
21
|
}
|
|
29
22
|
),
|
|
30
|
-
/* @__PURE__ */
|
|
31
|
-
|
|
23
|
+
/* @__PURE__ */ s(
|
|
24
|
+
c,
|
|
32
25
|
{
|
|
33
26
|
className: "btn-icon-only",
|
|
34
|
-
active:
|
|
35
|
-
onClick: () =>
|
|
36
|
-
children: /* @__PURE__ */
|
|
27
|
+
active: t === "desc",
|
|
28
|
+
onClick: () => n("desc"),
|
|
29
|
+
children: /* @__PURE__ */ s("span", { className: "rioglyph rioglyph-sort-by-attributes" })
|
|
37
30
|
}
|
|
38
31
|
)
|
|
39
32
|
] }),
|
|
40
|
-
|
|
33
|
+
a.length && /* @__PURE__ */ s("div", { className: "btn-group", children: /* @__PURE__ */ s(h, { options: a, onChange: (o) => o && p(o.id) }) })
|
|
41
34
|
] });
|
|
42
35
|
};
|
|
43
36
|
export {
|
|
44
|
-
|
|
37
|
+
v as default
|
|
45
38
|
};
|
|
46
39
|
//# sourceMappingURL=TableCardsSorting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCardsSorting.js","sources":["../../../src/components/table/TableCardsSorting.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"TableCardsSorting.js","sources":["../../../src/components/table/TableCardsSorting.tsx"],"sourcesContent":["import { noop } from 'es-toolkit/compat';\n\nimport classNames from '../../utils/classNames';\nimport Select from '../selects/Select';\nimport ToggleButton from '../button/ToggleButton';\n\ntype TableCardsSortingOption = {\n /**\n * ID to use for the select option.\n */\n id: string;\n\n /**\n * Translated column label to be shown in the select.\n */\n label: string | React.ReactNode;\n\n /**\n * Defines the column which is currently sorted by.\n */\n selected?: boolean;\n\n /**\n * Defines if the column can be sorted.\n *\n * Hence, it will be disabled in the select.\n */\n disabled?: boolean;\n};\n\nexport type TableCardsSortingProps = {\n /**\n * \"Name\", \"Key\", or \"Id\" of the current sorted column.\n */\n sortName: string;\n\n /**\n * Defines the sort direction.\n *\n * @default 'asc'\n */\n sortOrder: 'asc' | 'desc';\n\n /**\n * List of objects for the column name select component.\n */\n selectOptions: TableCardsSortingOption[];\n\n /**\n * Function that is called when the sort key or direction changes.\n *\n * @default noop\n */\n onSortChange?: (name: string, order: 'asc' | 'desc') => void;\n\n /**\n * Optional class names for the wrapper element.\n */\n className?: string;\n};\n\nconst TableCardsSorting = (props: TableCardsSortingProps) => {\n const { sortName, sortOrder = 'asc', selectOptions, onSortChange = noop, className } = props;\n\n const updateSortOrder = (newSortOrder: 'asc' | 'desc') => {\n onSortChange(sortName, newSortOrder);\n };\n\n const updateSortName = (newSortName: string) => {\n onSortChange(newSortName, sortOrder);\n };\n\n const wrapperClassNames = classNames('table-toolbar-cards-sorting', 'btn-toolbar', className && className);\n\n return (\n <div className={wrapperClassNames}>\n <div className='btn-group margin-left-0'>\n <ToggleButton\n className='btn-icon-only'\n active={sortOrder === 'asc'}\n onClick={() => updateSortOrder('asc')}\n >\n <span className='rioglyph rioglyph-sort-by-attributes-alt' />\n </ToggleButton>\n\n <ToggleButton\n className='btn-icon-only'\n active={sortOrder === 'desc'}\n onClick={() => updateSortOrder('desc')}\n >\n <span className='rioglyph rioglyph-sort-by-attributes' />\n </ToggleButton>\n </div>\n\n {selectOptions.length && (\n <div className='btn-group'>\n <Select options={selectOptions} onChange={item => item && updateSortName(item.id)} />\n </div>\n )}\n </div>\n );\n};\n\nexport default TableCardsSorting;\n"],"names":["TableCardsSorting","props","sortName","sortOrder","selectOptions","onSortChange","noop","className","updateSortOrder","newSortOrder","updateSortName","newSortName","wrapperClassNames","classNames","jsxs","jsx","ToggleButton","Select","item"],"mappings":";;;;;AA6DA,MAAMA,IAAoB,CAACC,MAAkC;AACzD,QAAM,EAAE,UAAAC,GAAU,WAAAC,IAAY,OAAO,eAAAC,GAAe,cAAAC,IAAeC,GAAM,WAAAC,MAAcN,GAEjFO,IAAkB,CAACC,MAAiC;AACtD,IAAAJ,EAAaH,GAAUO,CAAY;AAAA,EACvC,GAEMC,IAAiB,CAACC,MAAwB;AAC5C,IAAAN,EAAaM,GAAaR,CAAS;AAAA,EACvC,GAEMS,IAAoBC,EAAW,+BAA+B,eAAeN,KAAaA,CAAS;AAEzG,SACI,gBAAAO,EAAC,OAAA,EAAI,WAAWF,GACZ,UAAA;AAAA,IAAA,gBAAAE,EAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,QAAQb,MAAc;AAAA,UACtB,SAAS,MAAMK,EAAgB,KAAK;AAAA,UAEpC,UAAA,gBAAAO,EAAC,QAAA,EAAK,WAAU,2CAAA,CAA2C;AAAA,QAAA;AAAA,MAAA;AAAA,MAG/D,gBAAAA;AAAA,QAACC;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,QAAQb,MAAc;AAAA,UACtB,SAAS,MAAMK,EAAgB,MAAM;AAAA,UAErC,UAAA,gBAAAO,EAAC,QAAA,EAAK,WAAU,uCAAA,CAAuC;AAAA,QAAA;AAAA,MAAA;AAAA,IAC3D,GACJ;AAAA,IAECX,EAAc,UACX,gBAAAW,EAAC,OAAA,EAAI,WAAU,aACX,UAAA,gBAAAA,EAACE,GAAA,EAAO,SAASb,GAAe,UAAU,CAAAc,MAAQA,KAAQR,EAAeQ,EAAK,EAAE,GAAG,EAAA,CACvF;AAAA,EAAA,GAER;AAER;"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TableCellOverflow, TableHorizontalAlign, TableVerticalAlign } from './Table.types';
|
|
3
|
-
export type TableColumnProps =
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TableCellOverflow, TableHorizontalAlign, TableHtmlAttributes, TableVerticalAlign } from './Table.types';
|
|
3
|
+
export type TableColumnProps = TableHtmlAttributes & {
|
|
4
|
+
/**
|
|
5
|
+
* `TableColumn` may be rendered directly inside `TableFooter`.
|
|
6
|
+
*
|
|
7
|
+
* In `TableBody`, columns must be rendered inside a row component such as
|
|
8
|
+
* `TableRow` or `TableExpandedRow`. Direct `TableColumn` children of
|
|
9
|
+
* `TableBody` are ignored.
|
|
10
|
+
*/
|
|
11
|
+
children?: ReactNode;
|
|
4
12
|
/**
|
|
5
13
|
* Optional explicit column key.
|
|
6
14
|
* If omitted, the cell is matched by its position inside `<TableRow>`.
|
|
@@ -42,6 +50,6 @@ export type TableColumnProps = PropsWithChildren<{
|
|
|
42
50
|
* @default false
|
|
43
51
|
*/
|
|
44
52
|
preventRowClick?: boolean;
|
|
45
|
-
}
|
|
46
|
-
declare const TableColumn: (
|
|
53
|
+
};
|
|
54
|
+
declare const TableColumn: (props: TableColumnProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
47
55
|
export default TableColumn;
|
|
@@ -1,5 +1,115 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as u, jsxs as F } from "react/jsx-runtime";
|
|
2
|
+
import a from "../../utils/classNames.js";
|
|
3
|
+
import { getVerticalAlignClassName as K, getHorizontalAlignClassName as I } from "./shared/getAlignClassName.js";
|
|
4
|
+
import L from "./shared/getCellContentOverflowClassName.js";
|
|
5
|
+
import { resolveAriaSpan as V, resolveAriaColIndex as R } from "./shared/resolveTableAria.js";
|
|
6
|
+
import { useOptionalTableInteractionContext as j } from "./context/TableInteractionContext.js";
|
|
7
|
+
import { useOptionalTableLayoutContext as H } from "./context/TableLayoutContext.js";
|
|
8
|
+
import { useOptionalTableRenderConfigContext as P } from "./context/TableRenderConfigContext.js";
|
|
9
|
+
import { useOptionalTableSection as $, useTableRowContext as q } from "./context/TableStructureContext.js";
|
|
10
|
+
import { useOptionalTableRenderContext as E } from "./context/TableRenderContext.js";
|
|
11
|
+
const oe = (T) => {
|
|
12
|
+
const {
|
|
13
|
+
children: h,
|
|
14
|
+
className: g,
|
|
15
|
+
colSpan: b = 1,
|
|
16
|
+
columnKey: o,
|
|
17
|
+
horizontalAlign: D,
|
|
18
|
+
overflow: p = "hidden",
|
|
19
|
+
preventRowClick: s = !1,
|
|
20
|
+
value: x,
|
|
21
|
+
verticalAlign: M,
|
|
22
|
+
...v
|
|
23
|
+
} = T, n = P(), t = E(), r = j(), f = H(), y = $(), i = q(), c = y === "body", m = y === "footer";
|
|
24
|
+
if (!t || !n || !r || !f || t.columns.length === 0 || !c && !m || c && !i)
|
|
25
|
+
return null;
|
|
26
|
+
const N = o !== void 0 ? t.columnIndexByKey.get(o) : void 0, d = i?.nextColumnIndex(N, b) ?? N ?? -1;
|
|
27
|
+
if (d < 0)
|
|
28
|
+
return null;
|
|
29
|
+
const e = t.columns[d], l = d + 1, W = l + (r.showSelectionColumn ? 1 : 0), w = D ?? e?.horizontalAlign, z = M ?? e?.verticalAlign, A = c && i?.rowData && n.cellClassName?.(
|
|
30
|
+
i.rowData,
|
|
31
|
+
t.columnDefinitionsByKey.get(e?.columnKey ?? o ?? "") ?? {
|
|
32
|
+
key: e?.columnKey ?? o ?? String(l),
|
|
33
|
+
label: e?.label ?? "",
|
|
34
|
+
icon: e?.icon,
|
|
35
|
+
filter: e?.filter,
|
|
36
|
+
hideLabel: e?.hideLabel,
|
|
37
|
+
width: e?.width,
|
|
38
|
+
minResizeWidth: e?.minResizeWidth,
|
|
39
|
+
maxResizeWidth: e?.maxResizeWidth,
|
|
40
|
+
draggable: e?.draggable,
|
|
41
|
+
resizeable: e?.resizeable,
|
|
42
|
+
horizontalAlign: e?.horizontalAlign,
|
|
43
|
+
className: void 0,
|
|
44
|
+
headerClassName: e?.headerClassName,
|
|
45
|
+
hideOnMobile: e?.hideOnMobile,
|
|
46
|
+
sortable: e?.sortable
|
|
47
|
+
},
|
|
48
|
+
i.rowIndex,
|
|
49
|
+
d
|
|
50
|
+
), S = f.stickyLeftColumnCount ?? 0, k = S > 0 && l <= S, O = e?.mobileLabel ?? (typeof e?.label == "string" ? e.label : ""), C = (B) => {
|
|
51
|
+
B.stopPropagation();
|
|
52
|
+
};
|
|
53
|
+
return m && (t.renderDraft.hasFooterCells = !0), n.isTableView ? /* @__PURE__ */ u(
|
|
54
|
+
"div",
|
|
55
|
+
{
|
|
56
|
+
...v,
|
|
57
|
+
className: a(
|
|
58
|
+
"table-cell",
|
|
59
|
+
m && "table-footer-cell",
|
|
60
|
+
c && k && "table-cell-sticky-left-column",
|
|
61
|
+
m && f.stickyFooter && k && "table-footer-cell-sticky-left-column",
|
|
62
|
+
I(w),
|
|
63
|
+
K(z),
|
|
64
|
+
e?.hideOnMobile && "table-hide-mobile",
|
|
65
|
+
A,
|
|
66
|
+
g
|
|
67
|
+
),
|
|
68
|
+
"data-column": e?.columnKey ?? o ?? l,
|
|
69
|
+
role: "cell",
|
|
70
|
+
"aria-colindex": R(l, r.showSelectionColumn),
|
|
71
|
+
"aria-colspan": V(b),
|
|
72
|
+
onClick: s ? C : void 0,
|
|
73
|
+
onKeyDown: s ? C : void 0,
|
|
74
|
+
style: { gridColumn: `${W} / span ${b}` },
|
|
75
|
+
children: /* @__PURE__ */ u("div", { className: a("table-cell-content", L(p)), children: x ?? h ?? "" })
|
|
76
|
+
}
|
|
77
|
+
) : /* @__PURE__ */ F(
|
|
78
|
+
"div",
|
|
79
|
+
{
|
|
80
|
+
...v,
|
|
81
|
+
className: a(
|
|
82
|
+
"table-cell",
|
|
83
|
+
n.cardClasses.cellClassName,
|
|
84
|
+
I(w),
|
|
85
|
+
K(z),
|
|
86
|
+
e?.hideOnMobile && "table-hide-mobile",
|
|
87
|
+
A,
|
|
88
|
+
g
|
|
89
|
+
),
|
|
90
|
+
"data-column": e?.columnKey ?? o ?? l,
|
|
91
|
+
role: "cell",
|
|
92
|
+
"aria-colindex": R(l, r.showSelectionColumn),
|
|
93
|
+
onClick: s ? C : void 0,
|
|
94
|
+
onKeyDown: s ? C : void 0,
|
|
95
|
+
children: [
|
|
96
|
+
O && /* @__PURE__ */ u("div", { className: a("table-cell-label", n.cardClasses.labelClassName), children: O }),
|
|
97
|
+
/* @__PURE__ */ u(
|
|
98
|
+
"div",
|
|
99
|
+
{
|
|
100
|
+
className: a(
|
|
101
|
+
"table-cell-content",
|
|
102
|
+
n.cardClasses.contentClassName,
|
|
103
|
+
L(p)
|
|
104
|
+
),
|
|
105
|
+
children: x ?? h ?? ""
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
};
|
|
2
112
|
export {
|
|
3
|
-
|
|
113
|
+
oe as default
|
|
4
114
|
};
|
|
5
115
|
//# sourceMappingURL=TableColumn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableColumn.js","sources":["../../../src/components/table/TableColumn.tsx"],"sourcesContent":["import type { PropsWithChildren, ReactNode } from 'react';\n\nimport type { TableCellOverflow, TableHorizontalAlign, TableVerticalAlign } from './Table.types';\n\nexport type TableColumnProps = PropsWithChildren<{\n /**\n * Optional explicit column key.\n * If omitted, the cell is matched by its position inside `<TableRow>`.\n */\n columnKey?: string;\n\n /**\n * Optional explicit value.\n */\n value?: ReactNode;\n\n /**\n * Additional classes for this cell only.\n */\n className?: string;\n\n /**\n * Horizontal alignment override for this cell.\n */\n horizontalAlign?: TableHorizontalAlign;\n\n /**\n * Vertical alignment override for this cell.\n */\n verticalAlign?: TableVerticalAlign;\n\n /**\n * Overflow behavior for the cell content wrapper.\n *\n * @default 'hidden'\n */\n overflow?: TableCellOverflow;\n\n /**\n * Number of columns this cell should span.\n *\n * Currently used by header and footer-style declarative table sections.\n */\n colSpan?: number;\n\n /**\n * Prevents clicks and keyboard interactions inside this cell from triggering the parent row click handler.\n *\n * Useful for interactive cell content such as dropdowns, inputs, or buttons.\n *\n * @default false\n */\n preventRowClick?: boolean;\n}>;\n\nconst TableColumn = (_props: TableColumnProps) => null;\n\nexport default TableColumn;\n"],"names":["TableColumn","_props"],"mappings":"AAuDA,MAAMA,IAAc,CAACC,MAA6B;"}
|
|
1
|
+
{"version":3,"file":"TableColumn.js","sources":["../../../src/components/table/TableColumn.tsx"],"sourcesContent":["import type { KeyboardEvent, MouseEvent, ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\nimport { getHorizontalAlignClassName, getVerticalAlignClassName } from './shared/getAlignClassName';\nimport getCellContentOverflowClassName from './shared/getCellContentOverflowClassName';\nimport { resolveAriaColIndex, resolveAriaSpan } from './shared/resolveTableAria';\nimport type { TableCellOverflow, TableHorizontalAlign, TableHtmlAttributes, TableVerticalAlign } from './Table.types';\nimport { useOptionalTableInteractionContext } from './context/TableInteractionContext';\nimport { useOptionalTableLayoutContext } from './context/TableLayoutContext';\nimport { useOptionalTableRenderConfigContext } from './context/TableRenderConfigContext';\nimport { useOptionalTableSection, useTableRowContext } from './context/TableStructureContext';\nimport { useOptionalTableRenderContext } from './context/TableRenderContext';\n\nexport type TableColumnProps = TableHtmlAttributes & {\n /**\n * `TableColumn` may be rendered directly inside `TableFooter`.\n *\n * In `TableBody`, columns must be rendered inside a row component such as\n * `TableRow` or `TableExpandedRow`. Direct `TableColumn` children of\n * `TableBody` are ignored.\n */\n children?: ReactNode;\n\n /**\n * Optional explicit column key.\n * If omitted, the cell is matched by its position inside `<TableRow>`.\n */\n columnKey?: string;\n\n /**\n * Optional explicit value.\n */\n value?: ReactNode;\n\n /**\n * Additional classes for this cell only.\n */\n className?: string;\n\n /**\n * Horizontal alignment override for this cell.\n */\n horizontalAlign?: TableHorizontalAlign;\n\n /**\n * Vertical alignment override for this cell.\n */\n verticalAlign?: TableVerticalAlign;\n\n /**\n * Overflow behavior for the cell content wrapper.\n *\n * @default 'hidden'\n */\n overflow?: TableCellOverflow;\n\n /**\n * Number of columns this cell should span.\n *\n * Currently used by header and footer-style declarative table sections.\n */\n colSpan?: number;\n\n /**\n * Prevents clicks and keyboard interactions inside this cell from triggering the parent row click handler.\n *\n * Useful for interactive cell content such as dropdowns, inputs, or buttons.\n *\n * @default false\n */\n preventRowClick?: boolean;\n};\n\nconst TableColumn = (props: TableColumnProps) => {\n const {\n children,\n className,\n colSpan = 1,\n columnKey,\n horizontalAlign,\n overflow = 'hidden',\n preventRowClick = false,\n value,\n verticalAlign,\n ...remainingProps\n } = props;\n\n const renderConfigContext = useOptionalTableRenderConfigContext();\n const renderContext = useOptionalTableRenderContext();\n const interactionContext = useOptionalTableInteractionContext();\n const layoutContext = useOptionalTableLayoutContext();\n const section = useOptionalTableSection();\n const rowContext = useTableRowContext();\n\n const isBodySection = section === 'body';\n const isFooterSection = section === 'footer';\n\n if (\n !renderContext ||\n !renderConfigContext ||\n !interactionContext ||\n !layoutContext ||\n renderContext.columns.length === 0 ||\n (!isBodySection && !isFooterSection)\n ) {\n return null;\n }\n\n if (isBodySection && !rowContext) {\n return null;\n }\n\n const explicitColumnIndex = columnKey !== undefined ? renderContext.columnIndexByKey.get(columnKey) : undefined;\n const columnIndex = rowContext?.nextColumnIndex(explicitColumnIndex, colSpan) ?? explicitColumnIndex ?? -1;\n\n if (columnIndex < 0) {\n return null;\n }\n\n const renderColumn = renderContext.columns[columnIndex];\n const baseColumnStart = columnIndex + 1;\n const resolvedColumnStart = baseColumnStart + (interactionContext.showSelectionColumn ? 1 : 0);\n const resolvedHorizontalAlign = horizontalAlign ?? renderColumn?.horizontalAlign;\n const resolvedVerticalAlign = verticalAlign ?? renderColumn?.verticalAlign;\n\n const resolvedCellClassName =\n isBodySection &&\n rowContext?.rowData &&\n renderConfigContext.cellClassName?.(\n rowContext.rowData,\n renderContext.columnDefinitionsByKey.get(renderColumn?.columnKey ?? columnKey ?? '') ?? {\n key: renderColumn?.columnKey ?? columnKey ?? String(baseColumnStart),\n label: renderColumn?.label ?? '',\n icon: renderColumn?.icon,\n filter: renderColumn?.filter,\n hideLabel: renderColumn?.hideLabel,\n width: renderColumn?.width,\n minResizeWidth: renderColumn?.minResizeWidth,\n maxResizeWidth: renderColumn?.maxResizeWidth,\n draggable: renderColumn?.draggable,\n resizeable: renderColumn?.resizeable,\n horizontalAlign: renderColumn?.horizontalAlign,\n className: undefined,\n headerClassName: renderColumn?.headerClassName,\n hideOnMobile: renderColumn?.hideOnMobile,\n sortable: renderColumn?.sortable,\n },\n rowContext.rowIndex,\n columnIndex\n );\n\n const stickyLeftColumns = layoutContext.stickyLeftColumnCount ?? 0;\n const isStickyLeftColumn = stickyLeftColumns > 0 && baseColumnStart <= stickyLeftColumns;\n\n const mobileLabel =\n renderColumn?.mobileLabel ?? (typeof renderColumn?.label === 'string' ? renderColumn.label : '');\n\n const handleCellInteraction = (event: KeyboardEvent<HTMLDivElement> | MouseEvent<HTMLDivElement>) => {\n event.stopPropagation();\n };\n\n if (isFooterSection) {\n renderContext.renderDraft.hasFooterCells = true;\n }\n\n if (renderConfigContext.isTableView) {\n return (\n <div\n {...remainingProps}\n className={classNames(\n 'table-cell',\n isFooterSection && 'table-footer-cell',\n isBodySection && isStickyLeftColumn && 'table-cell-sticky-left-column',\n isFooterSection &&\n layoutContext.stickyFooter &&\n isStickyLeftColumn &&\n 'table-footer-cell-sticky-left-column',\n getHorizontalAlignClassName(resolvedHorizontalAlign),\n getVerticalAlignClassName(resolvedVerticalAlign),\n renderColumn?.hideOnMobile && 'table-hide-mobile',\n resolvedCellClassName,\n className\n )}\n data-column={renderColumn?.columnKey ?? columnKey ?? baseColumnStart}\n role='cell'\n aria-colindex={resolveAriaColIndex(baseColumnStart, interactionContext.showSelectionColumn)}\n aria-colspan={resolveAriaSpan(colSpan)}\n onClick={preventRowClick ? handleCellInteraction : undefined}\n onKeyDown={preventRowClick ? handleCellInteraction : undefined}\n style={{ gridColumn: `${resolvedColumnStart} / span ${colSpan}` }}\n >\n <div className={classNames('table-cell-content', getCellContentOverflowClassName(overflow))}>\n {value ?? children ?? ''}\n </div>\n </div>\n );\n }\n\n return (\n <div\n {...remainingProps}\n className={classNames(\n 'table-cell',\n renderConfigContext.cardClasses.cellClassName,\n getHorizontalAlignClassName(resolvedHorizontalAlign),\n getVerticalAlignClassName(resolvedVerticalAlign),\n renderColumn?.hideOnMobile && 'table-hide-mobile',\n resolvedCellClassName,\n className\n )}\n data-column={renderColumn?.columnKey ?? columnKey ?? baseColumnStart}\n role='cell'\n aria-colindex={resolveAriaColIndex(baseColumnStart, interactionContext.showSelectionColumn)}\n onClick={preventRowClick ? handleCellInteraction : undefined}\n onKeyDown={preventRowClick ? handleCellInteraction : undefined}\n >\n {mobileLabel && (\n <div className={classNames('table-cell-label', renderConfigContext.cardClasses.labelClassName)}>\n {mobileLabel}\n </div>\n )}\n <div\n className={classNames(\n 'table-cell-content',\n renderConfigContext.cardClasses.contentClassName,\n getCellContentOverflowClassName(overflow)\n )}\n >\n {value ?? children ?? ''}\n </div>\n </div>\n );\n};\n\nexport default TableColumn;\n"],"names":["TableColumn","props","children","className","colSpan","columnKey","horizontalAlign","overflow","preventRowClick","value","verticalAlign","remainingProps","renderConfigContext","useOptionalTableRenderConfigContext","renderContext","useOptionalTableRenderContext","interactionContext","useOptionalTableInteractionContext","layoutContext","useOptionalTableLayoutContext","section","useOptionalTableSection","rowContext","useTableRowContext","isBodySection","isFooterSection","explicitColumnIndex","columnIndex","renderColumn","baseColumnStart","resolvedColumnStart","resolvedHorizontalAlign","resolvedVerticalAlign","resolvedCellClassName","stickyLeftColumns","isStickyLeftColumn","mobileLabel","handleCellInteraction","event","jsx","classNames","getHorizontalAlignClassName","getVerticalAlignClassName","resolveAriaColIndex","resolveAriaSpan","getCellContentOverflowClassName","jsxs"],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TableHtmlAttributes } from './Table.types';
|
|
3
|
+
export type TableExpandedContentRowProps = TableHtmlAttributes & {
|
|
3
4
|
/**
|
|
4
5
|
* Parent row key used to associate this expanded content row with its parent.
|
|
5
6
|
*/
|
|
6
7
|
parentKey: string | number;
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
-
* If omitted, `children` are used.
|
|
9
|
+
* The content of the full-width expanded row.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
children?: ReactNode;
|
|
12
12
|
/**
|
|
13
13
|
* Optional class names only for this expanded content row.
|
|
14
14
|
*/
|
|
@@ -17,6 +17,6 @@ export type TableExpandedContentRowProps = PropsWithChildren<{
|
|
|
17
17
|
* Disable table hover styling for this row.
|
|
18
18
|
*/
|
|
19
19
|
noHover?: boolean;
|
|
20
|
-
}
|
|
21
|
-
declare const TableExpandedContentRow: (
|
|
20
|
+
};
|
|
21
|
+
declare const TableExpandedContentRow: (props: TableExpandedContentRowProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
22
22
|
export default TableExpandedContentRow;
|
|
@@ -1,5 +1,110 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { useReducedMotion as O, motion as u } from "motion/react";
|
|
3
|
+
import { useState as g, useMemo as R } from "react";
|
|
4
|
+
import C from "../../utils/classNames.js";
|
|
5
|
+
import { useOptionalTableInteractionContext as N } from "./context/TableInteractionContext.js";
|
|
6
|
+
import { useOptionalTableSection as v, useTableBodyContext as A } from "./context/TableStructureContext.js";
|
|
7
|
+
import { useOptionalTableRenderContext as T } from "./context/TableRenderContext.js";
|
|
8
|
+
const t = 0.22, U = (m) => {
|
|
9
|
+
const { children: p, className: x, noHover: w, parentKey: i, ...h } = m, e = T(), a = N(), b = v(), r = A(), [y, s] = g(!0), l = O(), n = R(
|
|
10
|
+
() => l ? {
|
|
11
|
+
row: {
|
|
12
|
+
initial: { opacity: 0 },
|
|
13
|
+
animate: {
|
|
14
|
+
opacity: 1,
|
|
15
|
+
transition: { duration: t, ease: "easeInOut" }
|
|
16
|
+
},
|
|
17
|
+
exit: {
|
|
18
|
+
opacity: 0,
|
|
19
|
+
transition: { duration: t, ease: "easeInOut" }
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
content: {
|
|
23
|
+
initial: { opacity: 0 },
|
|
24
|
+
animate: {
|
|
25
|
+
opacity: 1,
|
|
26
|
+
transition: { duration: t, ease: "easeInOut" }
|
|
27
|
+
},
|
|
28
|
+
exit: {
|
|
29
|
+
opacity: 0,
|
|
30
|
+
transition: { duration: t, ease: "easeInOut" }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
} : {
|
|
34
|
+
row: {
|
|
35
|
+
initial: { height: 0 },
|
|
36
|
+
animate: {
|
|
37
|
+
height: "auto",
|
|
38
|
+
transition: { duration: t, ease: "easeInOut" }
|
|
39
|
+
},
|
|
40
|
+
exit: {
|
|
41
|
+
height: 0,
|
|
42
|
+
transition: { duration: t, ease: "easeInOut" }
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
content: {
|
|
46
|
+
initial: { opacity: 0 },
|
|
47
|
+
animate: {
|
|
48
|
+
opacity: 1,
|
|
49
|
+
transition: {
|
|
50
|
+
duration: t * 0.65,
|
|
51
|
+
delay: t,
|
|
52
|
+
ease: "easeOut"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
exit: {
|
|
56
|
+
opacity: 0,
|
|
57
|
+
transition: {
|
|
58
|
+
duration: t * 0.65,
|
|
59
|
+
ease: "easeInOut"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
[l]
|
|
65
|
+
);
|
|
66
|
+
if (!e || !a || e.columns.length === 0 || b !== "body" || !r)
|
|
67
|
+
return null;
|
|
68
|
+
const d = r.nextRowIndex(), f = e.columns.length + (a.showSelectionColumn ? 1 : 0), I = `expanded-content-${String(i)}`, c = /* @__PURE__ */ o(
|
|
69
|
+
u.div,
|
|
70
|
+
{
|
|
71
|
+
...h,
|
|
72
|
+
className: C(
|
|
73
|
+
"table-row table-row-expanded-full-width",
|
|
74
|
+
w && "table-row-no-hover",
|
|
75
|
+
x
|
|
76
|
+
),
|
|
77
|
+
"data-index": d,
|
|
78
|
+
"data-parent-row-id": String(i),
|
|
79
|
+
role: "row",
|
|
80
|
+
initial: n.row.initial,
|
|
81
|
+
animate: n.row.animate,
|
|
82
|
+
exit: n.row.exit,
|
|
83
|
+
onAnimationStart: () => s(!0),
|
|
84
|
+
onAnimationComplete: () => s(!1),
|
|
85
|
+
style: {
|
|
86
|
+
overflow: y ? "hidden" : "visible"
|
|
87
|
+
},
|
|
88
|
+
children: /* @__PURE__ */ o("div", { className: "table-cell table-expanded-cell", role: "cell", "aria-colspan": f, children: /* @__PURE__ */ o(
|
|
89
|
+
u.div,
|
|
90
|
+
{
|
|
91
|
+
className: "table-cell-content",
|
|
92
|
+
initial: n.content.initial,
|
|
93
|
+
animate: n.content.animate,
|
|
94
|
+
exit: n.content.exit,
|
|
95
|
+
children: p
|
|
96
|
+
}
|
|
97
|
+
) })
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
return e.renderDraft.hasExpandableRows = !0, e.renderDraft.bodyRows.push({
|
|
101
|
+
rowId: I,
|
|
102
|
+
rowIndex: d,
|
|
103
|
+
kind: "expanded-full-width",
|
|
104
|
+
render: () => c
|
|
105
|
+
}), e.isRegisteringBodyRows ? null : c;
|
|
106
|
+
};
|
|
2
107
|
export {
|
|
3
|
-
|
|
108
|
+
U as default
|
|
4
109
|
};
|
|
5
110
|
//# sourceMappingURL=TableExpandedContentRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableExpandedContentRow.js","sources":["../../../src/components/table/TableExpandedContentRow.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"TableExpandedContentRow.js","sources":["../../../src/components/table/TableExpandedContentRow.tsx"],"sourcesContent":["import { motion, useReducedMotion } from 'motion/react';\nimport { useMemo, useState, type ReactNode } from 'react';\n\nimport classNames from '../../utils/classNames';\nimport type { TableHtmlAttributes } from './Table.types';\nimport { useOptionalTableInteractionContext } from './context/TableInteractionContext';\nimport { useTableBodyContext, useOptionalTableSection } from './context/TableStructureContext';\nimport { useOptionalTableRenderContext } from './context/TableRenderContext';\n\nexport type TableExpandedContentRowProps = TableHtmlAttributes & {\n /**\n * Parent row key used to associate this expanded content row with its parent.\n */\n parentKey: string | number;\n\n /**\n * The content of the full-width expanded row.\n */\n children?: ReactNode;\n\n /**\n * Optional class names only for this expanded content row.\n */\n className?: string;\n\n /**\n * Disable table hover styling for this row.\n */\n noHover?: boolean;\n};\n\nconst DEFAULT_EXPANDED_ROW_DURATION = 0.22;\n\nconst TableExpandedContentRow = (props: TableExpandedContentRowProps) => {\n const { children, className, noHover, parentKey, ...remainingProps } = props;\n\n const renderContext = useOptionalTableRenderContext();\n const interactionContext = useOptionalTableInteractionContext();\n const section = useOptionalTableSection();\n const bodyContext = useTableBodyContext();\n\n const [isAnimating, setIsAnimating] = useState(true);\n\n const shouldReduceMotion = useReducedMotion();\n\n const animation = useMemo(\n () =>\n shouldReduceMotion\n ? {\n row: {\n initial: { opacity: 0 },\n animate: {\n opacity: 1,\n transition: { duration: DEFAULT_EXPANDED_ROW_DURATION, ease: 'easeInOut' as const },\n },\n exit: {\n opacity: 0,\n transition: { duration: DEFAULT_EXPANDED_ROW_DURATION, ease: 'easeInOut' as const },\n },\n },\n content: {\n initial: { opacity: 0 },\n animate: {\n opacity: 1,\n transition: { duration: DEFAULT_EXPANDED_ROW_DURATION, ease: 'easeInOut' as const },\n },\n exit: {\n opacity: 0,\n transition: { duration: DEFAULT_EXPANDED_ROW_DURATION, ease: 'easeInOut' as const },\n },\n },\n }\n : {\n row: {\n initial: { height: 0 },\n animate: {\n height: 'auto',\n transition: { duration: DEFAULT_EXPANDED_ROW_DURATION, ease: 'easeInOut' as const },\n },\n exit: {\n height: 0,\n transition: { duration: DEFAULT_EXPANDED_ROW_DURATION, ease: 'easeInOut' as const },\n },\n },\n content: {\n initial: { opacity: 0 },\n animate: {\n opacity: 1,\n transition: {\n duration: DEFAULT_EXPANDED_ROW_DURATION * 0.65,\n delay: DEFAULT_EXPANDED_ROW_DURATION,\n ease: 'easeOut' as const,\n },\n },\n exit: {\n opacity: 0,\n transition: {\n duration: DEFAULT_EXPANDED_ROW_DURATION * 0.65,\n ease: 'easeInOut' as const,\n },\n },\n },\n },\n [shouldReduceMotion]\n );\n\n if (\n !renderContext ||\n !interactionContext ||\n renderContext.columns.length === 0 ||\n section !== 'body' ||\n !bodyContext\n ) {\n return null;\n }\n\n const rowIndex = bodyContext.nextRowIndex();\n const columnCount = renderContext.columns.length + (interactionContext.showSelectionColumn ? 1 : 0);\n\n // Expanded rows stay keyed by their parent row, so toggling\n // rows above does not remount already open expanded rows below. This is important\n // to avid other rows to animate again.\n const stableExpandedRowId = `expanded-content-${String(parentKey)}`;\n\n const rowNode = (\n <motion.div\n {...remainingProps}\n className={classNames(\n 'table-row table-row-expanded-full-width',\n noHover && 'table-row-no-hover',\n className\n )}\n data-index={rowIndex}\n data-parent-row-id={String(parentKey)}\n role='row'\n initial={animation.row.initial}\n animate={animation.row.animate}\n exit={animation.row.exit}\n onAnimationStart={() => setIsAnimating(true)}\n onAnimationComplete={() => setIsAnimating(false)}\n style={{\n overflow: isAnimating ? 'hidden' : 'visible',\n }}\n >\n <div className='table-cell table-expanded-cell' role='cell' aria-colspan={columnCount}>\n <motion.div\n className='table-cell-content'\n initial={animation.content.initial}\n animate={animation.content.animate}\n exit={animation.content.exit}\n >\n {children}\n </motion.div>\n </div>\n </motion.div>\n );\n\n renderContext.renderDraft.hasExpandableRows = true;\n renderContext.renderDraft.bodyRows.push({\n rowId: stableExpandedRowId,\n rowIndex,\n kind: 'expanded-full-width',\n render: () => rowNode,\n });\n\n return renderContext.isRegisteringBodyRows ? null : rowNode;\n};\n\nexport default TableExpandedContentRow;\n"],"names":["DEFAULT_EXPANDED_ROW_DURATION","TableExpandedContentRow","props","children","className","noHover","parentKey","remainingProps","renderContext","useOptionalTableRenderContext","interactionContext","useOptionalTableInteractionContext","section","useOptionalTableSection","bodyContext","useTableBodyContext","isAnimating","setIsAnimating","useState","shouldReduceMotion","useReducedMotion","animation","useMemo","rowIndex","columnCount","stableExpandedRowId","rowNode","jsx","motion","classNames"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TableHtmlAttributes, TableRowData } from './Table.types';
|
|
3
|
+
export type TableExpandedRowProps<RowType extends TableRowData> = TableHtmlAttributes & Partial<RowType> & {
|
|
3
4
|
/**
|
|
4
5
|
* Parent row key used to associate this expanded row with its parent.
|
|
5
6
|
*/
|
|
@@ -12,6 +13,10 @@ export type TableExpandedRowProps<RowType extends Record<string, unknown>> = Pro
|
|
|
12
13
|
* Disable table hover styling for this row.
|
|
13
14
|
*/
|
|
14
15
|
noHover?: boolean;
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Table row content.
|
|
18
|
+
*/
|
|
19
|
+
children?: ReactNode;
|
|
20
|
+
};
|
|
21
|
+
declare const TableExpandedRow: <RowType extends TableRowData = TableRowData>(props: TableExpandedRowProps<RowType>) => import("react/jsx-runtime").JSX.Element | null;
|
|
17
22
|
export default TableExpandedRow;
|