@coveord/plasma-mantine 56.21.0 → 57.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/.turbo/turbo-test.log +104 -116
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/ActionIcon/ActionIcon.js +9 -4
  5. package/dist/cjs/components/ActionIcon/ActionIcon.js.map +1 -1
  6. package/dist/cjs/components/Alert/Alert.js +4 -4
  7. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  8. package/dist/cjs/components/Badge/Badge.js +1 -1
  9. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  10. package/dist/cjs/components/BlankSlate/BlankSlate.js +1 -1
  11. package/dist/cjs/components/BrowserPreview/BrowserPreview.js +2 -2
  12. package/dist/cjs/components/BrowserPreview/BrowserPreview.js.map +1 -1
  13. package/dist/cjs/components/Button/Button.js +10 -5
  14. package/dist/cjs/components/Button/Button.js.map +1 -1
  15. package/dist/cjs/components/Button/ButtonWithDisabledTooltip.js +8 -3
  16. package/dist/cjs/components/Button/ButtonWithDisabledTooltip.js.map +1 -1
  17. package/dist/cjs/components/CheckboxIcon/CheckboxIcon.js +2 -2
  18. package/dist/cjs/components/CheckboxIcon/CheckboxIcon.js.map +1 -1
  19. package/dist/cjs/components/ChildForm/ChildForm.js.map +1 -1
  20. package/dist/cjs/components/Chip/Chip.js +8 -3
  21. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  22. package/dist/cjs/components/CircleLoader/CircleLoader.js +8 -3
  23. package/dist/cjs/components/CircleLoader/CircleLoader.js.map +1 -1
  24. package/dist/cjs/components/CodeEditor/CodeEditor.js +9 -9
  25. package/dist/cjs/components/CodeEditor/CodeEditor.js.map +1 -1
  26. package/dist/cjs/components/CodeEditor/languages/xml.js +3 -3
  27. package/dist/cjs/components/CodeEditor/languages/xml.js.map +1 -1
  28. package/dist/cjs/components/CodeEditor/search/Search.js +3 -3
  29. package/dist/cjs/components/CodeEditor/search/Search.js.map +1 -1
  30. package/dist/cjs/components/Collection/Collection.js +12 -12
  31. package/dist/cjs/components/Collection/Collection.js.map +1 -1
  32. package/dist/cjs/components/Collection/CollectionAddButton.js +1 -1
  33. package/dist/cjs/components/Collection/CollectionItem.js +5 -5
  34. package/dist/cjs/components/Collection/CollectionItem.js.map +1 -1
  35. package/dist/cjs/components/Collection/enhanceWithCollectionProps.js +4 -4
  36. package/dist/cjs/components/Collection/enhanceWithCollectionProps.js.map +1 -1
  37. package/dist/cjs/components/Collection/layouts/horizontal-layout/HorizontalLayout.js +1 -1
  38. package/dist/cjs/components/Collection/layouts/horizontal-layout/HorizontalLayoutBody.js +2 -2
  39. package/dist/cjs/components/Collection/layouts/horizontal-layout/HorizontalLayoutBody.js.map +1 -1
  40. package/dist/cjs/components/Collection/layouts/horizontal-layout/HorizontalLayoutHeader.js +1 -1
  41. package/dist/cjs/components/Collection/layouts/horizontal-layout/HorizontalLayoutHeader.js.map +1 -1
  42. package/dist/cjs/components/Collection/layouts/shared/DragHandle.js +1 -1
  43. package/dist/cjs/components/Collection/layouts/shared/RemoveButton.js +1 -1
  44. package/dist/cjs/components/Collection/layouts/shared/columnUtils.js +2 -2
  45. package/dist/cjs/components/Collection/layouts/shared/columnUtils.js.map +1 -1
  46. package/dist/cjs/components/Collection/layouts/shared/headerUtils.js +1 -1
  47. package/dist/cjs/components/Collection/layouts/shared/headerUtils.js.map +1 -1
  48. package/dist/cjs/components/Collection/layouts/shared/itemRenderer.js +7 -7
  49. package/dist/cjs/components/Collection/layouts/shared/itemRenderer.js.map +1 -1
  50. package/dist/cjs/components/Collection/layouts/vertical-layout/VerticalLayout.js +1 -1
  51. package/dist/cjs/components/Collection/layouts/vertical-layout/VerticalLayoutBody.js +4 -4
  52. package/dist/cjs/components/Collection/layouts/vertical-layout/VerticalLayoutBody.js.map +1 -1
  53. package/dist/cjs/components/Collection/layouts/vertical-layout/VerticalLayoutHeader.js +1 -1
  54. package/dist/cjs/components/Collection/layouts/vertical-layout/VerticalLayoutHeader.js.map +1 -1
  55. package/dist/cjs/components/CopyToClipboard/CopyToClipboard.js +6 -6
  56. package/dist/cjs/components/CopyToClipboard/CopyToClipboard.js.map +1 -1
  57. package/dist/cjs/components/DateRangePicker/DateRangePicker.js +7 -7
  58. package/dist/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  59. package/dist/cjs/components/DateRangePicker/DateRangePickerInlineCalendar.js +5 -5
  60. package/dist/cjs/components/DateRangePicker/DateRangePickerInlineCalendar.js.map +1 -1
  61. package/dist/cjs/components/DateRangePicker/DateRangePickerPopoverCalendar.js +3 -3
  62. package/dist/cjs/components/DateRangePicker/DateRangePickerPopoverCalendar.js.map +1 -1
  63. package/dist/cjs/components/DateRangePicker/DateRangePickerPresetSelect.js +3 -3
  64. package/dist/cjs/components/DateRangePicker/DateRangePickerPresetSelect.js.map +1 -1
  65. package/dist/cjs/components/DateRangePicker/EditableDateRangePicker.js +3 -3
  66. package/dist/cjs/components/DateRangePicker/EditableDateRangePicker.js.map +1 -1
  67. package/dist/cjs/components/DateTimeRangePicker/DateTimeRangePicker.js +1 -1
  68. package/dist/cjs/components/DateTimeRangePicker/EditableDateTimeRangePicker.js +3 -3
  69. package/dist/cjs/components/DateTimeRangePicker/EditableDateTimeRangePicker.js.map +1 -1
  70. package/dist/cjs/components/EllipsisText/EllipsisText.js +3 -3
  71. package/dist/cjs/components/EllipsisText/EllipsisText.js.map +1 -1
  72. package/dist/cjs/components/Facet/DefaultFacetItem.js +3 -3
  73. package/dist/cjs/components/Facet/DefaultFacetItem.js.map +1 -1
  74. package/dist/cjs/components/Facet/Facet.js +5 -5
  75. package/dist/cjs/components/Facet/Facet.js.map +1 -1
  76. package/dist/cjs/components/Facet/FacetScrollArea.js +8 -3
  77. package/dist/cjs/components/Facet/FacetScrollArea.js.map +1 -1
  78. package/dist/cjs/components/Header/Header.js +1 -1
  79. package/dist/cjs/components/Header/Header.js.map +1 -1
  80. package/dist/cjs/components/Header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js.map +1 -1
  81. package/dist/cjs/components/Header/HeaderBreadcrumbs/HeaderBreadcrumbText.js.map +1 -1
  82. package/dist/cjs/components/Header/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
  83. package/dist/cjs/components/Header/HeaderDocAnchor/HeaderDocAnchor.js.map +1 -1
  84. package/dist/cjs/components/Header/HeaderRight/HeaderRight.js.map +1 -1
  85. package/dist/cjs/components/InfoToken/InfoToken.js +3 -3
  86. package/dist/cjs/components/InfoToken/InfoToken.js.map +1 -1
  87. package/dist/cjs/components/InlineConfirm/InlineConfirm.js +2 -2
  88. package/dist/cjs/components/InlineConfirm/InlineConfirm.js.map +1 -1
  89. package/dist/cjs/components/InlineConfirm/InlineConfirmPrompt.js +2 -2
  90. package/dist/cjs/components/InlineConfirm/InlineConfirmPrompt.js.map +1 -1
  91. package/dist/cjs/components/InlineConfirm/InlineConfirmTarget.js +9 -4
  92. package/dist/cjs/components/InlineConfirm/InlineConfirmTarget.js.map +1 -1
  93. package/dist/cjs/components/LastUpdated/LastUpdated.js +1 -1
  94. package/dist/cjs/components/LastUpdated/LastUpdated.js.map +1 -1
  95. package/dist/cjs/components/Menu/Menu.js +8 -3
  96. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  97. package/dist/cjs/components/Modal/Modal.js +8 -3
  98. package/dist/cjs/components/Modal/Modal.js.map +1 -1
  99. package/dist/cjs/components/Modal/ModalFooter.js +1 -1
  100. package/dist/cjs/components/Modal/ModalFooter.js.map +1 -1
  101. package/dist/cjs/components/Prompt/Prompt.js.map +1 -1
  102. package/dist/cjs/components/Prompt/PromptCancelButton.js.map +1 -1
  103. package/dist/cjs/components/Prompt/PromptConfirmButton.js.map +1 -1
  104. package/dist/cjs/components/Prompt/icons/CriticalIcon.js +1 -1
  105. package/dist/cjs/components/Prompt/icons/InfoIcon.js +1 -1
  106. package/dist/cjs/components/Prompt/icons/SuccessIcon.js +1 -1
  107. package/dist/cjs/components/Prompt/icons/WarningIcon.js +1 -1
  108. package/dist/cjs/components/RadioCard/RadioCard.js.map +1 -1
  109. package/dist/cjs/components/ReadOnly/ReadOnlyInputStyles.js +1 -1
  110. package/dist/cjs/components/ReadOnly/ReadOnlyInputStyles.js.map +1 -1
  111. package/dist/cjs/components/StatusToken/StatusToken.js +3 -3
  112. package/dist/cjs/components/StatusToken/StatusToken.js.map +1 -1
  113. package/dist/cjs/components/StickyFooter/StickyFooter.js.map +1 -1
  114. package/dist/cjs/components/Table/Table.js +6 -6
  115. package/dist/cjs/components/Table/Table.js.map +1 -1
  116. package/dist/cjs/components/Table/layouts/TableLayoutControl.js +1 -1
  117. package/dist/cjs/components/Table/layouts/row-layout/RowLayout.js +1 -1
  118. package/dist/cjs/components/Table/layouts/row-layout/RowLayout.js.map +1 -1
  119. package/dist/cjs/components/Table/layouts/row-layout/RowLayoutBody.js +8 -9
  120. package/dist/cjs/components/Table/layouts/row-layout/RowLayoutBody.js.map +1 -1
  121. package/dist/cjs/components/Table/layouts/row-layout/RowLayoutHeader.js +1 -1
  122. package/dist/cjs/components/Table/layouts/row-layout/RowLayoutHeader.js.map +1 -1
  123. package/dist/cjs/components/Table/table-actions/TableActionItem.js.map +1 -1
  124. package/dist/cjs/components/Table/table-actions/TableActionsList.js +4 -4
  125. package/dist/cjs/components/Table/table-actions/TableActionsList.js.map +1 -1
  126. package/dist/cjs/components/Table/table-actions/TableHeaderActions.js.map +1 -1
  127. package/dist/cjs/components/Table/table-column/TableActionsColumn.js +3 -3
  128. package/dist/cjs/components/Table/table-column/TableActionsColumn.js.map +1 -1
  129. package/dist/cjs/components/Table/table-column/TableCollapsibleColumn.js +4 -4
  130. package/dist/cjs/components/Table/table-column/TableCollapsibleColumn.js.map +1 -1
  131. package/dist/cjs/components/Table/table-column/TableSelectableColumn.js +3 -3
  132. package/dist/cjs/components/Table/table-column/TableSelectableColumn.js.map +1 -1
  133. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js +3 -3
  134. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
  135. package/dist/cjs/components/Table/table-date-range-picker/TableDateRangePicker.js +1 -1
  136. package/dist/cjs/components/Table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
  137. package/dist/cjs/components/Table/table-filter/TableFilter.js +2 -2
  138. package/dist/cjs/components/Table/table-filter/TableFilter.js.map +1 -1
  139. package/dist/cjs/components/Table/table-footer/TableFooter.js +2 -2
  140. package/dist/cjs/components/Table/table-footer/TableFooter.js.map +1 -1
  141. package/dist/cjs/components/Table/table-header/TableHeader.js +1 -1
  142. package/dist/cjs/components/Table/table-header/TableHeader.js.map +1 -1
  143. package/dist/cjs/components/Table/table-header/Th.js +1 -1
  144. package/dist/cjs/components/Table/table-header/Th.js.map +1 -1
  145. package/dist/cjs/components/Table/table-last-updated/TableLastUpdated.js.map +1 -1
  146. package/dist/cjs/components/Table/table-loading/TableLoading.js +1 -1
  147. package/dist/cjs/components/Table/table-loading/TableLoading.js.map +1 -1
  148. package/dist/cjs/components/Table/table-no-data/TableNoData.js +1 -1
  149. package/dist/cjs/components/Table/table-pagination/TablePagination.js +3 -3
  150. package/dist/cjs/components/Table/table-pagination/TablePagination.js.map +1 -1
  151. package/dist/cjs/components/Table/table-per-page/TablePerPage.js +3 -3
  152. package/dist/cjs/components/Table/table-per-page/TablePerPage.js.map +1 -1
  153. package/dist/cjs/components/Table/table-predicate/TablePredicate.js +1 -1
  154. package/dist/cjs/components/Table/table-predicate/TablePredicate.js.map +1 -1
  155. package/dist/cjs/components/Table/use-table.js +22 -23
  156. package/dist/cjs/components/Table/use-table.js.map +1 -1
  157. package/dist/cjs/hooks/use-url-synced-state.js +6 -6
  158. package/dist/cjs/hooks/use-url-synced-state.js.map +1 -1
  159. package/dist/cjs/hooks/useClickWithLoading.js +2 -2
  160. package/dist/cjs/hooks/useClickWithLoading.js.map +1 -1
  161. package/dist/cjs/hooks/useControlledList.js +4 -4
  162. package/dist/cjs/hooks/useControlledList.js.map +1 -1
  163. package/dist/cjs/hooks/useParentHeight.js +2 -2
  164. package/dist/cjs/hooks/useParentHeight.js.map +1 -1
  165. package/dist/cjs/theme/PlasmaColors.js +1 -1
  166. package/dist/cjs/theme/PlasmaColors.js.map +1 -1
  167. package/dist/cjs/theme/Plasmantine.js +2 -2
  168. package/dist/cjs/theme/Plasmantine.js.map +1 -1
  169. package/dist/cjs/theme/Theme.js +12 -12
  170. package/dist/cjs/theme/Theme.js.map +1 -1
  171. package/dist/cjs/theme/mergeCSSVariablesResolvers.js +1 -1
  172. package/dist/cjs/theme/plasmaCSSVariablesResolver.js +2 -2
  173. package/dist/cjs/theme/plasmaCSSVariablesResolver.js.map +1 -1
  174. package/dist/cjs/theme/plasmaVariantColorResolver.js +1 -1
  175. package/dist/cjs/theme/plasmaVariantColorResolver.js.map +1 -1
  176. package/dist/cjs/utils/createFactoryComponent.js +1 -1
  177. package/dist/cjs/utils/createFactoryComponent.js.map +1 -1
  178. package/dist/cjs/utils/groupOptions.js +1 -1
  179. package/dist/cjs/utils/overrideComponent.js +2 -2
  180. package/dist/cjs/utils/overrideComponent.js.map +1 -1
  181. package/package.json +26 -26
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import {Box, Center, Factory, Loader, useProps, useStyles} from '@mantine/core';\nimport {useClickOutside, useMergedRef} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n getCoreRowModel,\n Row,\n RowSelectionState,\n useReactTable,\n} from '@tanstack/react-table';\nimport isEqual from 'fast-deep-equal';\nimport {Children, ForwardedRef, ReactElement, useEffect, useRef} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../utils/createFactoryComponent.js';\nimport classes from './Table.module.css';\nimport {TableLayout, TableProps} from './Table.types.js';\nimport {TableProvider} from './TableContext.js';\nimport {TableLayouts} from './layouts/TableLayouts.js';\nimport {TableActionItem, TableActionItemStylesNames} from './table-actions/TableActionItem.js';\nimport {TableActionsListStylesNames} from './table-actions/TableActionsList.js';\nimport {TableHeaderActionsStylesNames} from './table-actions/TableHeaderActions.js';\nimport {TableActionsColumn} from './table-column/TableActionsColumn.js';\nimport {\n TableAccordionColumn,\n TableCollapsibleColumn,\n TableCollapsibleColumnStylesNames,\n} from './table-column/TableCollapsibleColumn.js';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn.js';\nimport {TableDateRangePicker, TableDateRangePickerStylesNames} from './table-date-range-picker/TableDateRangePicker.js';\nimport {TableFilter, TableFilterStylesNames} from './table-filter/TableFilter.js';\nimport {TableFooter} from './table-footer/TableFooter.js';\nimport {TableHeader, TableHeaderStylesNames} from './table-header/TableHeader.js';\nimport {TableThStylesNames} from './table-header/Th.js';\nimport {TableLastUpdated, TableLastUpdatedStylesNames} from './table-last-updated/TableLastUpdated.js';\nimport {TableLoading} from './table-loading/TableLoading.js';\nimport {TableNoData} from './table-no-data/TableNoData.js';\nimport {TablePagination} from './table-pagination/TablePagination.js';\nimport {TablePerPage} from './table-per-page/TablePerPage.js';\nimport {TablePredicate, TablePredicateStylesNames} from './table-predicate/TablePredicate.js';\nimport {TableState} from './use-table.js';\n\ntype TableStylesNames =\n | 'root'\n | 'table'\n | 'header'\n | 'body'\n | TableHeaderActionsStylesNames\n | TableActionsListStylesNames\n | TableActionItemStylesNames\n | TableCollapsibleColumnStylesNames\n | TableDateRangePickerStylesNames\n | TableFilterStylesNames\n | TableHeaderStylesNames\n | TableThStylesNames\n | TableLastUpdatedStylesNames\n | TablePredicateStylesNames;\n\nexport type PlasmaTableFactory = Factory<{\n props: TableProps<unknown>;\n ref: HTMLDivElement;\n stylesNames: TableStylesNames;\n staticComponents: {\n AccordionColumn: typeof TableAccordionColumn;\n ActionsColumn: typeof TableActionsColumn;\n ActionItem: typeof TableActionItem;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n DateRangePicker: typeof TableDateRangePicker;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n LastUpdated: typeof TableLastUpdated;\n Layouts: typeof TableLayouts;\n Loading: typeof TableLoading;\n NoData: typeof TableNoData;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n };\n}>;\n\nconst defaultProps: Partial<TableProps<unknown>> = {\n layouts: [TableLayouts.Rows as TableLayout],\n layoutProps: {},\n loading: false,\n additionalRootNodes: [],\n options: {},\n getRowActions: () => [],\n};\n\nexport const Table = <T,>(props: TableProps<T> & {ref?: ForwardedRef<HTMLDivElement>}) => {\n const {\n store,\n data,\n getRowId,\n getRowAttributes,\n getRowExpandedContent,\n getRowActions,\n columns,\n layouts,\n layoutProps,\n children,\n loading,\n additionalRootNodes,\n options,\n ref,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n unstyled,\n ...others\n } = useProps('PlasmaTable', defaultProps as TableProps<T>, props);\n\n const getStyles = useStyles<PlasmaTableFactory>({\n name: 'PlasmaTable',\n classes,\n props: props as TableProps<unknown>,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n const noData = convertedChildren.find((child) => child.type === TableNoData);\n\n const table = useReactTable({\n data: data || [],\n state: {\n globalFilter: store.state.globalFilter,\n sorting: store.state.sorting,\n pagination: store.state.pagination,\n columnVisibility: store.state.columnVisibility,\n expanded: store.state.expanded,\n },\n onGlobalFilterChange: store.setGlobalFilter,\n onExpandedChange: store.setExpanded,\n onSortingChange: store.setSorting,\n onPaginationChange: store.setPagination,\n onColumnVisibilityChange: store.setColumnVisibility,\n columns: store.multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!store.multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getRowExpandedContent?.(row.original, row.index, row),\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n rowCount: options?.getFilteredRowModel ? undefined : store.state.totalEntries,\n ...options,\n });\n\n table.setOptions((prev) => ({\n ...prev,\n state: {\n ...prev.state,\n rowSelection: store.state.rowSelection as RowSelectionState,\n },\n onRowSelectionChange: (rowSelectionUpdater) => {\n store.setRowSelection((old) => {\n const newRowSelection = (\n rowSelectionUpdater instanceof Function\n ? rowSelectionUpdater(old as RowSelectionState)\n : rowSelectionUpdater\n ) as TableState<T>['rowSelection'];\n\n if (isEqual(old, newRowSelection)) {\n return old;\n }\n\n const rows = table.getRowModel().rowsById;\n\n Object.keys(newRowSelection).forEach((rowId) => {\n if (newRowSelection[rowId] === true) {\n if (!rows[rowId]) {\n console.error(\n 'The table was not initialized properly, the rowSelection state should contain an object of type Record<string, TData>.',\n );\n }\n newRowSelection[rowId] = rows[rowId]?.original ?? (true as T);\n }\n });\n\n return newRowSelection;\n });\n },\n }));\n\n useEffect(() => {\n // Update the selected rows data when the data prop changes\n if (store.getSelectedRows().length > 0) {\n store.setRowSelection((old) => {\n const rowsById = table.getRowModel().rowsById;\n const newSelection = {...old};\n Object.keys(old).forEach((rowId) => {\n if (rowsById[rowId]) {\n newSelection[rowId] = rowsById[rowId].original;\n }\n });\n return isEqual(newSelection, old) ? old : newSelection;\n });\n }\n }, [data]);\n\n const containerRef = useRef<HTMLDivElement>(null);\n useClickOutside(\n () => {\n if (!store.multiRowSelectionEnabled && store.getSelectedRows().length > 0) {\n store.clearRowSelection();\n }\n },\n null,\n [containerRef.current, ...additionalRootNodes],\n );\n const mergedRef = useMergedRef(containerRef, ref);\n\n if (!data) {\n return (\n <Center style={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout =\n store.state.layout === null ? layouts[0] : layouts.find(({displayName}) => displayName === store.state.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={mergedRef} {...others} {...getStyles('root')}>\n <TableProvider<T> value={{getStyles, getRowActions, store, table, layouts, containerRef}}>\n <Layout>\n {store.isVacant && !store.isFiltered ? (\n noData\n ) : (\n <>\n <Box component=\"table\" {...getStyles('table')} mod={{loading}}>\n <thead {...getStyles('header')}>\n {header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n getRowExpandedContent={getRowExpandedContent}\n getRowAttributes={getRowAttributes}\n loading={loading}\n {...layoutProps}\n />\n </thead>\n <tbody {...getStyles('body')}>\n {hasRows ? (\n <Layout.Body\n getRowExpandedContent={getRowExpandedContent}\n getRowAttributes={getRowAttributes}\n loading={loading}\n {...layoutProps}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading || !store.isFiltered}>\n {noData}\n </TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated}\n </>\n )}\n </Layout>\n </TableProvider>\n </Box>\n );\n};\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 7,\n Actions: 6,\n Predicate: 5,\n Filter: 4,\n DateRangePicker: 3,\n LayoutControl: 1,\n};\n\nTable.AccordionColumn = TableAccordionColumn;\nTable.ActionsColumn = TableActionsColumn;\nTable.ActionItem = TableActionItem;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Layouts = TableLayouts;\nTable.Loading = TableLoading;\nTable.NoData = TableNoData;\nTable.Pagination = TablePagination;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\n\nTable.extend = identity as CustomComponentThemeExtend<PlasmaTableFactory>;\n"],"names":["Table","TableComponentsOrder","defaultProps","layouts","TableLayouts","Rows","layoutProps","loading","additionalRootNodes","options","getRowActions","props","useProps","store","data","getRowId","getRowAttributes","getRowExpandedContent","columns","children","ref","style","className","classNames","styles","unstyled","others","getStyles","useStyles","name","classes","convertedChildren","Children","toArray","header","find","child","type","TableHeader","footer","TableFooter","lastUpdated","TableLastUpdated","noData","TableNoData","table","useReactTable","state","globalFilter","sorting","pagination","columnVisibility","expanded","onGlobalFilterChange","setGlobalFilter","onExpandedChange","setExpanded","onSortingChange","setSorting","onPaginationChange","setPagination","onColumnVisibilityChange","setColumnVisibility","multiRowSelectionEnabled","TableSelectableColumn","concat","getCoreRowModel","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","index","enableRowSelection","defaultColumn","size","minSize","defaultColumnSizing","maxSize","rowCount","getFilteredRowModel","totalEntries","setOptions","prev","rowSelection","onRowSelectionChange","rowSelectionUpdater","setRowSelection","old","newRowSelection","Function","isEqual","rows","getRowModel","rowsById","Object","keys","forEach","rowId","console","error","useEffect","getSelectedRows","length","newSelection","containerRef","useRef","useClickOutside","clearRowSelection","current","mergedRef","useMergedRef","Center","flexGrow","Loader","Layout","layout","displayName","hasRows","Box","TableProvider","value","isVacant","isFiltered","component","mod","thead","tr","th","padding","colSpan","getAllColumns","Header","tbody","Body","td","TableLoading","visible","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","LayoutControl","AccordionColumn","TableAccordionColumn","ActionsColumn","TableActionsColumn","ActionItem","TableActionItem","CollapsibleColumn","TableCollapsibleColumn","TableDateRangePicker","TableFilter","Footer","LastUpdated","Layouts","Loading","NoData","Pagination","TablePagination","PerPage","TablePerPage","TablePredicate","extend","identity"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import {Box, Center, Factory, Loader, useProps, useStyles} from '@mantine/core';\nimport {useClickOutside, useMergedRef} from '@mantine/hooks';\nimport {\n ColumnDef,\n defaultColumnSizing,\n getCoreRowModel,\n Row,\n RowSelectionState,\n useReactTable,\n} from '@tanstack/react-table';\nimport isEqual from 'fast-deep-equal';\nimport {Children, ForwardedRef, ReactElement, useEffect, useRef} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../utils/createFactoryComponent.js';\nimport classes from './Table.module.css';\nimport {TableLayout, TableProps} from './Table.types.js';\nimport {TableProvider} from './TableContext.js';\nimport {TableLayouts} from './layouts/TableLayouts.js';\nimport {TableActionItem, TableActionItemStylesNames} from './table-actions/TableActionItem.js';\nimport {TableActionsListStylesNames} from './table-actions/TableActionsList.js';\nimport {TableHeaderActionsStylesNames} from './table-actions/TableHeaderActions.js';\nimport {TableActionsColumn} from './table-column/TableActionsColumn.js';\nimport {\n TableAccordionColumn,\n TableCollapsibleColumn,\n TableCollapsibleColumnStylesNames,\n} from './table-column/TableCollapsibleColumn.js';\nimport {TableSelectableColumn} from './table-column/TableSelectableColumn.js';\nimport {TableDateRangePicker, TableDateRangePickerStylesNames} from './table-date-range-picker/TableDateRangePicker.js';\nimport {TableFilter, TableFilterStylesNames} from './table-filter/TableFilter.js';\nimport {TableFooter} from './table-footer/TableFooter.js';\nimport {TableHeader, TableHeaderStylesNames} from './table-header/TableHeader.js';\nimport {TableThStylesNames} from './table-header/Th.js';\nimport {TableLastUpdated, TableLastUpdatedStylesNames} from './table-last-updated/TableLastUpdated.js';\nimport {TableLoading} from './table-loading/TableLoading.js';\nimport {TableNoData} from './table-no-data/TableNoData.js';\nimport {TablePagination} from './table-pagination/TablePagination.js';\nimport {TablePerPage} from './table-per-page/TablePerPage.js';\nimport {TablePredicate, TablePredicateStylesNames} from './table-predicate/TablePredicate.js';\nimport {TableState} from './use-table.js';\n\ntype TableStylesNames =\n | 'root'\n | 'table'\n | 'header'\n | 'body'\n | TableHeaderActionsStylesNames\n | TableActionsListStylesNames\n | TableActionItemStylesNames\n | TableCollapsibleColumnStylesNames\n | TableDateRangePickerStylesNames\n | TableFilterStylesNames\n | TableHeaderStylesNames\n | TableThStylesNames\n | TableLastUpdatedStylesNames\n | TablePredicateStylesNames;\n\nexport type PlasmaTableFactory = Factory<{\n props: TableProps<unknown>;\n ref: HTMLDivElement;\n stylesNames: TableStylesNames;\n staticComponents: {\n AccordionColumn: typeof TableAccordionColumn;\n ActionsColumn: typeof TableActionsColumn;\n ActionItem: typeof TableActionItem;\n CollapsibleColumn: typeof TableCollapsibleColumn;\n DateRangePicker: typeof TableDateRangePicker;\n Filter: typeof TableFilter;\n Footer: typeof TableFooter;\n Header: typeof TableHeader;\n LastUpdated: typeof TableLastUpdated;\n Layouts: typeof TableLayouts;\n Loading: typeof TableLoading;\n NoData: typeof TableNoData;\n Pagination: typeof TablePagination;\n PerPage: typeof TablePerPage;\n Predicate: typeof TablePredicate;\n };\n}>;\n\nconst defaultProps: Partial<TableProps<unknown>> = {\n layouts: [TableLayouts.Rows as TableLayout],\n layoutProps: {},\n loading: false,\n additionalRootNodes: [],\n options: {},\n getRowActions: () => [],\n};\n\nexport const Table = <T,>(props: TableProps<T> & {ref?: ForwardedRef<HTMLDivElement>}) => {\n const {\n store,\n data,\n getRowId,\n getRowAttributes,\n getRowExpandedContent,\n getRowActions,\n columns,\n layouts,\n layoutProps,\n children,\n loading,\n additionalRootNodes,\n options,\n ref,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n unstyled,\n ...others\n } = useProps('PlasmaTable', defaultProps as TableProps<T>, props);\n\n const getStyles = useStyles<PlasmaTableFactory>({\n name: 'PlasmaTable',\n classes,\n props: props as TableProps<unknown>,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n const convertedChildren = Children.toArray(children) as ReactElement[];\n const header = convertedChildren.find((child) => child.type === TableHeader);\n const footer = convertedChildren.find((child) => child.type === TableFooter);\n const lastUpdated = convertedChildren.find((child) => child.type === TableLastUpdated);\n const noData = convertedChildren.find((child) => child.type === TableNoData);\n\n const table = useReactTable({\n data: data || [],\n state: {\n globalFilter: store.state.globalFilter,\n sorting: store.state.sorting,\n pagination: store.state.pagination,\n columnVisibility: store.state.columnVisibility,\n expanded: store.state.expanded,\n },\n onGlobalFilterChange: store.setGlobalFilter,\n onExpandedChange: store.setExpanded,\n onSortingChange: store.setSorting,\n onPaginationChange: store.setPagination,\n onColumnVisibilityChange: store.setColumnVisibility,\n columns: store.multiRowSelectionEnabled ? [TableSelectableColumn as ColumnDef<T>].concat(columns) : columns,\n getCoreRowModel: getCoreRowModel(),\n manualPagination: options?.getPaginationRowModel === undefined,\n enableMultiRowSelection: !!store.multiRowSelectionEnabled,\n getRowId,\n getRowCanExpand: (row: Row<T>) => !!getRowExpandedContent?.(row.original, row.index, row),\n enableRowSelection: !loading,\n defaultColumn: {\n size: undefined,\n minSize: defaultColumnSizing.minSize,\n maxSize: defaultColumnSizing.maxSize,\n },\n rowCount: options?.getFilteredRowModel ? undefined : store.state.totalEntries,\n ...options,\n });\n\n table.setOptions((prev) => ({\n ...prev,\n state: {\n ...prev.state,\n rowSelection: store.state.rowSelection as RowSelectionState,\n },\n onRowSelectionChange: (rowSelectionUpdater) => {\n store.setRowSelection((old) => {\n const newRowSelection = (\n rowSelectionUpdater instanceof Function\n ? rowSelectionUpdater(old as RowSelectionState)\n : rowSelectionUpdater\n ) as TableState<T>['rowSelection'];\n\n if (isEqual(old, newRowSelection)) {\n return old;\n }\n\n const rows = table.getRowModel().rowsById;\n\n Object.keys(newRowSelection).forEach((rowId) => {\n if (newRowSelection[rowId] === true) {\n if (!rows[rowId]) {\n console.error(\n 'The table was not initialized properly, the rowSelection state should contain an object of type Record<string, TData>.',\n );\n }\n newRowSelection[rowId] = rows[rowId]?.original ?? (true as T);\n }\n });\n\n return newRowSelection;\n });\n },\n }));\n\n useEffect(() => {\n // Update the selected rows data when the data prop changes\n if (store.getSelectedRows().length > 0) {\n store.setRowSelection((old) => {\n const rowsById = table.getRowModel().rowsById;\n const newSelection = {...old};\n Object.keys(old).forEach((rowId) => {\n if (rowsById[rowId]) {\n newSelection[rowId] = rowsById[rowId].original;\n }\n });\n return isEqual(newSelection, old) ? old : newSelection;\n });\n }\n }, [data]);\n\n const containerRef = useRef<HTMLDivElement>(null);\n useClickOutside(\n () => {\n if (!store.multiRowSelectionEnabled && store.getSelectedRows().length > 0) {\n store.clearRowSelection();\n }\n },\n null,\n [containerRef.current, ...additionalRootNodes],\n );\n const mergedRef = useMergedRef(containerRef, ref);\n\n if (!data) {\n return (\n <Center style={{flexGrow: 1}}>\n <Loader />\n </Center>\n );\n }\n\n const Layout =\n store.state.layout === null ? layouts[0] : layouts.find(({displayName}) => displayName === store.state.layout);\n const hasRows = table.getRowModel().rows.length > 0;\n\n return (\n <Box ref={mergedRef} {...others} {...getStyles('root')}>\n <TableProvider<T> value={{getStyles, getRowActions, store, table, layouts, containerRef}}>\n <Layout>\n {store.isVacant && !store.isFiltered ? (\n noData\n ) : (\n <>\n <Box component=\"table\" {...getStyles('table')} mod={{loading}}>\n <thead {...getStyles('header')}>\n {header ? (\n <tr>\n <th style={{padding: 0}} colSpan={table.getAllColumns().length}>\n {header}\n </th>\n </tr>\n ) : null}\n <Layout.Header\n getRowExpandedContent={getRowExpandedContent}\n getRowAttributes={getRowAttributes}\n loading={loading}\n {...layoutProps}\n />\n </thead>\n <tbody {...getStyles('body')}>\n {hasRows ? (\n <Layout.Body\n getRowExpandedContent={getRowExpandedContent}\n getRowAttributes={getRowAttributes}\n loading={loading}\n {...layoutProps}\n />\n ) : (\n <tr>\n <td colSpan={table.getAllColumns().length}>\n <TableLoading visible={loading || !store.isFiltered}>\n {noData}\n </TableLoading>\n </td>\n </tr>\n )}\n </tbody>\n </Box>\n {footer}\n {lastUpdated}\n </>\n )}\n </Layout>\n </TableProvider>\n </Box>\n );\n};\n\nexport const TableComponentsOrder = {\n MultiSelectInfo: 7,\n Actions: 6,\n Predicate: 5,\n Filter: 4,\n DateRangePicker: 3,\n LayoutControl: 1,\n};\n\nTable.AccordionColumn = TableAccordionColumn;\nTable.ActionsColumn = TableActionsColumn;\nTable.ActionItem = TableActionItem;\nTable.CollapsibleColumn = TableCollapsibleColumn;\nTable.DateRangePicker = TableDateRangePicker;\nTable.Filter = TableFilter;\nTable.Footer = TableFooter;\nTable.Header = TableHeader;\nTable.LastUpdated = TableLastUpdated;\nTable.Layouts = TableLayouts;\nTable.Loading = TableLoading;\nTable.NoData = TableNoData;\nTable.Pagination = TablePagination;\nTable.PerPage = TablePerPage;\nTable.Predicate = TablePredicate;\n\nTable.extend = identity as CustomComponentThemeExtend<PlasmaTableFactory>;\n"],"names":["Table","TableComponentsOrder","defaultProps","layouts","TableLayouts","Rows","layoutProps","loading","additionalRootNodes","options","getRowActions","props","useProps","store","data","getRowId","getRowAttributes","getRowExpandedContent","columns","children","ref","style","className","classNames","styles","unstyled","others","getStyles","useStyles","name","classes","convertedChildren","Children","toArray","header","find","child","type","TableHeader","footer","TableFooter","lastUpdated","TableLastUpdated","noData","TableNoData","table","useReactTable","state","globalFilter","sorting","pagination","columnVisibility","expanded","onGlobalFilterChange","setGlobalFilter","onExpandedChange","setExpanded","onSortingChange","setSorting","onPaginationChange","setPagination","onColumnVisibilityChange","setColumnVisibility","multiRowSelectionEnabled","TableSelectableColumn","concat","getCoreRowModel","manualPagination","getPaginationRowModel","undefined","enableMultiRowSelection","getRowCanExpand","row","original","index","enableRowSelection","defaultColumn","size","minSize","defaultColumnSizing","maxSize","rowCount","getFilteredRowModel","totalEntries","setOptions","prev","rowSelection","onRowSelectionChange","rowSelectionUpdater","setRowSelection","old","newRowSelection","Function","isEqual","rows","getRowModel","rowsById","Object","keys","forEach","rowId","console","error","useEffect","getSelectedRows","length","newSelection","containerRef","useRef","useClickOutside","clearRowSelection","current","mergedRef","useMergedRef","Center","flexGrow","Loader","Layout","layout","displayName","hasRows","Box","TableProvider","value","isVacant","isFiltered","component","mod","thead","tr","th","padding","colSpan","getAllColumns","Header","tbody","Body","td","TableLoading","visible","MultiSelectInfo","Actions","Predicate","Filter","DateRangePicker","LayoutControl","AccordionColumn","TableAccordionColumn","ActionsColumn","TableActionsColumn","ActionItem","TableActionItem","CollapsibleColumn","TableCollapsibleColumn","TableDateRangePicker","TableFilter","Footer","LastUpdated","Layouts","Loading","NoData","Pagination","TablePagination","PerPage","TablePerPage","TablePredicate","extend","identity"],"mappings":"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"}
@@ -12,7 +12,7 @@ var _jsxruntime = require("react/jsx-runtime");
12
12
  var _core = require("@mantine/core");
13
13
  var _Table = require("../Table.js");
14
14
  var _TableContext = require("../TableContext.js");
15
- var TableLayoutControl = function() {
15
+ var TableLayoutControl = function TableLayoutControl() {
16
16
  var _useTableContext = (0, _TableContext.useTableContext)(), layouts = _useTableContext.layouts, store = _useTableContext.store;
17
17
  return layouts.length > 1 ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Grid.Col, {
18
18
  order: _Table.TableComponentsOrder.LayoutControl,
@@ -18,7 +18,7 @@ var _RowLayoutBody = require("./RowLayoutBody.js");
18
18
  var _RowLayoutContext = require("./RowLayoutContext.js");
19
19
  var _RowLayoutHeader = require("./RowLayoutHeader.js");
20
20
  var defaultProps = {};
21
- var RowLayout = function(props) {
21
+ var RowLayout = function RowLayout(props) {
22
22
  var _useProps = (0, _core.useProps)('PlasmaRowLayout', defaultProps, props), children = _useProps.children, styles = _useProps.styles, classNames = _useProps.classNames, unstyled = _useProps.unstyled;
23
23
  var getStyles = (0, _core.useStyles)({
24
24
  name: 'PlasmaRowLayout',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Table/layouts/row-layout/RowLayout.tsx"],"sourcesContent":["import {IconList} from '@coveord/plasma-react-icons';\nimport {Factory, MantineComponent, StylesApiProps, useProps, useStyles} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport {identity} from '../../../../utils/createFactoryComponent.js';\nimport {TableLayout} from '../../Table.types.js';\nimport classes from './RowLayout.module.css';\nimport {RowLayoutBody, RowLayoutBodyStylesNames} from './RowLayoutBody.js';\nimport {RowLayoutProvider} from './RowLayoutContext.js';\nimport {RowLayoutHeader, RowLayoutHeaderStyleNames} from './RowLayoutHeader.js';\n\ntype RowLayoutStylesNames = RowLayoutHeaderStyleNames | RowLayoutBodyStylesNames;\nexport interface RowLayoutProps extends StylesApiProps<RowLayoutFactory> {\n children: ReactNode;\n}\n\nexport type RowLayoutFactory = Factory<{\n ref?: never;\n props: RowLayoutProps;\n stylesNames: RowLayoutStylesNames;\n staticComponents: TableLayout;\n}>;\nconst defaultProps: Partial<RowLayoutProps> = {};\n\nexport const RowLayout = ((props: RowLayoutProps) => {\n const {children, styles, classNames, unstyled} = useProps('PlasmaRowLayout', defaultProps, props);\n const getStyles = useStyles<RowLayoutFactory>({\n name: 'PlasmaRowLayout',\n classes,\n props,\n styles,\n classNames,\n unstyled,\n });\n\n return <RowLayoutProvider value={{getStyles}}>{children}</RowLayoutProvider>;\n}) as MantineComponent<RowLayoutFactory>;\n\nRowLayout.Body = RowLayoutBody;\nRowLayout.Header = RowLayoutHeader;\nRowLayout.Icon = IconList;\nRowLayout.displayName = 'Rows';\nRowLayout.extend = identity;\n"],"names":["RowLayout","defaultProps","props","useProps","children","styles","classNames","unstyled","getStyles","useStyles","name","classes","RowLayoutProvider","value","Body","RowLayoutBody","Header","RowLayoutHeader","Icon","IconList","displayName","extend","identity"],"mappings":";;;;+BAuBaA;;;eAAAA;;;;;gCAvBU;oBACsD;sCAEtD;2EAEH;6BACkC;gCACtB;+BACyB;AAazD,IAAMC,eAAwC,CAAC;AAExC,IAAMD,YAAa,SAACE;IACvB,IAAiDC,YAAAA,IAAAA,cAAQ,EAAC,mBAAmBF,cAAcC,QAApFE,WAA0CD,UAA1CC,UAAUC,SAAgCF,UAAhCE,QAAQC,aAAwBH,UAAxBG,YAAYC,WAAYJ,UAAZI;IACrC,IAAMC,YAAYC,IAAAA,eAAS,EAAmB;QAC1CC,MAAM;QACNC,SAAAA,2BAAO;QACPT,OAAAA;QACAG,QAAAA;QACAC,YAAAA;QACAC,UAAAA;IACJ;IAEA,qBAAO,qBAACK,mCAAiB;QAACC,OAAO;YAACL,WAAAA;QAAS;kBAAIJ;;AACnD;AAEAJ,UAAUc,IAAI,GAAGC,4BAAa;AAC9Bf,UAAUgB,MAAM,GAAGC,gCAAe;AAClCjB,UAAUkB,IAAI,GAAGC,0BAAQ;AACzBnB,UAAUoB,WAAW,GAAG;AACxBpB,UAAUqB,MAAM,GAAGC,gCAAQ"}
1
+ {"version":3,"sources":["../../../../../../src/components/Table/layouts/row-layout/RowLayout.tsx"],"sourcesContent":["import {IconList} from '@coveord/plasma-react-icons';\nimport {Factory, MantineComponent, StylesApiProps, useProps, useStyles} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport {identity} from '../../../../utils/createFactoryComponent.js';\nimport {TableLayout} from '../../Table.types.js';\nimport classes from './RowLayout.module.css';\nimport {RowLayoutBody, RowLayoutBodyStylesNames} from './RowLayoutBody.js';\nimport {RowLayoutProvider} from './RowLayoutContext.js';\nimport {RowLayoutHeader, RowLayoutHeaderStyleNames} from './RowLayoutHeader.js';\n\ntype RowLayoutStylesNames = RowLayoutHeaderStyleNames | RowLayoutBodyStylesNames;\nexport interface RowLayoutProps extends StylesApiProps<RowLayoutFactory> {\n children: ReactNode;\n}\n\nexport type RowLayoutFactory = Factory<{\n ref?: never;\n props: RowLayoutProps;\n stylesNames: RowLayoutStylesNames;\n staticComponents: TableLayout;\n}>;\nconst defaultProps: Partial<RowLayoutProps> = {};\n\nexport const RowLayout = ((props: RowLayoutProps) => {\n const {children, styles, classNames, unstyled} = useProps('PlasmaRowLayout', defaultProps, props);\n const getStyles = useStyles<RowLayoutFactory>({\n name: 'PlasmaRowLayout',\n classes,\n props,\n styles,\n classNames,\n unstyled,\n });\n\n return <RowLayoutProvider value={{getStyles}}>{children}</RowLayoutProvider>;\n}) as MantineComponent<RowLayoutFactory>;\n\nRowLayout.Body = RowLayoutBody;\nRowLayout.Header = RowLayoutHeader;\nRowLayout.Icon = IconList;\nRowLayout.displayName = 'Rows';\nRowLayout.extend = identity;\n"],"names":["RowLayout","defaultProps","props","useProps","children","styles","classNames","unstyled","getStyles","useStyles","name","classes","RowLayoutProvider","value","Body","RowLayoutBody","Header","RowLayoutHeader","Icon","IconList","displayName","extend","identity"],"mappings":";;;;+BAuBaA;;;eAAAA;;;;;gCAvBU;oBACsD;sCAEtD;2EAEH;6BACkC;gCACtB;+BACyB;AAazD,IAAMC,eAAwC,CAAC;AAExC,IAAMD,YAAa,mBAACE;IACvB,IAAiDC,YAAAA,IAAAA,cAAQ,EAAC,mBAAmBF,cAAcC,QAApFE,WAA0CD,UAA1CC,UAAUC,SAAgCF,UAAhCE,QAAQC,aAAwBH,UAAxBG,YAAYC,WAAYJ,UAAZI;IACrC,IAAMC,YAAYC,IAAAA,eAAS,EAAmB;QAC1CC,MAAM;QACNC,SAAAA,2BAAO;QACPT,OAAAA;QACAG,QAAAA;QACAC,YAAAA;QACAC,UAAAA;IACJ;IAEA,qBAAO,qBAACK,mCAAiB;QAACC,OAAO;YAACL,WAAAA;QAAS;kBAAIJ;;AACnD;AAEAJ,UAAUc,IAAI,GAAGC,4BAAa;AAC9Bf,UAAUgB,MAAM,GAAGC,gCAAe;AAClCjB,UAAUkB,IAAI,GAAGC,0BAAQ;AACzBnB,UAAUoB,WAAW,GAAG;AACxBpB,UAAUqB,MAAM,GAAGC,gCAAQ"}
@@ -23,7 +23,7 @@ var _TableSelectableColumn = require("../../table-column/TableSelectableColumn.j
23
23
  var _TableLoading = require("../../table-loading/TableLoading.js");
24
24
  var _RowLayoutContext = require("./RowLayoutContext.js");
25
25
  var defaultProps = {};
26
- var RowLayoutBody = function(props) {
26
+ var RowLayoutBody = function RowLayoutBody(props) {
27
27
  var _table_getRowModel;
28
28
  var ctx = (0, _RowLayoutContext.useRowLayout)();
29
29
  var _useProps = (0, _core.useProps)('RowLayoutBody', defaultProps, props), getRowExpandedContent = _useProps.getRowExpandedContent, onRowDoubleClick = _useProps.onRowDoubleClick, loading = _useProps.loading, classNames = _useProps.classNames, className = _useProps.className, styles = _useProps.styles, style = _useProps.style, getRowAttributes = _useProps.getRowAttributes, others = _object_without_properties._(_useProps, [
@@ -37,16 +37,16 @@ var RowLayoutBody = function(props) {
37
37
  "getRowAttributes"
38
38
  ]);
39
39
  var _useTableContext = (0, _TableContext.useTableContext)(), table = _useTableContext.table, store = _useTableContext.store;
40
- var toggleCollapsible = function(el) {
40
+ var toggleCollapsible = function toggleCollapsible(el) {
41
41
  var cell = el.children[el.children.length - 1];
42
42
  cell.querySelector('button').click();
43
43
  };
44
44
  var rows = (_table_getRowModel = table.getRowModel()) === null || _table_getRowModel === void 0 ? void 0 : _table_getRowModel.rows.map(function(row) {
45
- var _getRowExpandedContent;
46
- var rowChildren = (_getRowExpandedContent = getRowExpandedContent === null || getRowExpandedContent === void 0 ? void 0 : getRowExpandedContent(row.original, row.index, row)) !== null && _getRowExpandedContent !== void 0 ? _getRowExpandedContent : null;
45
+ var _ref, _ref1;
46
+ var rowChildren = (_ref = getRowExpandedContent === null || getRowExpandedContent === void 0 ? void 0 : getRowExpandedContent(row.original, row.index, row)) !== null && _ref !== void 0 ? _ref : null;
47
47
  var isSelected = !!row.getIsSelected();
48
48
  var shouldKeepSelection = store.rowSelectionForced && isSelected;
49
- var onClick = function(event) {
49
+ var onClick = function onClick(event) {
50
50
  if (rowChildren) {
51
51
  toggleCollapsible(event.currentTarget);
52
52
  }
@@ -54,12 +54,11 @@ var RowLayoutBody = function(props) {
54
54
  row.toggleSelected();
55
55
  }
56
56
  };
57
- var _getRowAttributes;
58
57
  return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {
59
58
  children: [
60
59
  /*#__PURE__*/ (0, _jsxruntime.jsx)("tr", _object_spread_props._(_object_spread._({
61
60
  onClick: onClick,
62
- onDoubleClick: function() {
61
+ onDoubleClick: function onDoubleClick() {
63
62
  onRowDoubleClick === null || onRowDoubleClick === void 0 ? void 0 : onRowDoubleClick(row.original, row.index, row);
64
63
  },
65
64
  "data-selectable": store.rowSelectionEnabled,
@@ -72,14 +71,14 @@ var RowLayoutBody = function(props) {
72
71
  className: className,
73
72
  styles: styles,
74
73
  style: style
75
- }), (_getRowAttributes = getRowAttributes === null || getRowAttributes === void 0 ? void 0 : getRowAttributes(row.original, row.index, row)) !== null && _getRowAttributes !== void 0 ? _getRowAttributes : {}, others), {
74
+ }), (_ref1 = getRowAttributes === null || getRowAttributes === void 0 ? void 0 : getRowAttributes(row.original, row.index, row)) !== null && _ref1 !== void 0 ? _ref1 : {}, others), {
76
75
  children: row.getVisibleCells().map(function(cell) {
77
76
  var columnSizing = _object_spread_props._(_object_spread._({}, _tablecore.defaultColumnSizing), {
78
77
  size: cell.column.columnDef.size,
79
78
  minSize: cell.column.columnDef.minSize,
80
79
  maxSize: cell.column.columnDef.maxSize
81
80
  });
82
- var onCollapsibleCellClick = function(event) {
81
+ var onCollapsibleCellClick = function onCollapsibleCellClick(event) {
83
82
  if (cell.column.id === _TableSelectableColumn.TableSelectableColumn.id && store.rowSelectionEnabled) {
84
83
  event.stopPropagation();
85
84
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Table/layouts/row-layout/RowLayoutBody.tsx"],"sourcesContent":["import {Box, BoxProps, Collapse, CompoundStylesApiProps, Factory, useProps} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {ForwardedRef, Fragment, type MouseEvent} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../../../utils/createFactoryComponent.js';\nimport {TableLayoutProps} from '../../Table.types.js';\nimport {useTableContext} from '../../TableContext.js';\nimport {TableCollapsibleColumn} from '../../table-column/TableCollapsibleColumn.js';\nimport {TableSelectableColumn} from '../../table-column/TableSelectableColumn.js';\nimport {TableLoading} from '../../table-loading/TableLoading.js';\nimport {useRowLayout} from './RowLayoutContext.js';\n\nexport type RowLayoutBodyStylesNames = 'row' | 'cell' | 'collapsibleRow' | 'collapsibleWrapper';\n\nexport interface RowLayoutBodyProps<T>\n extends BoxProps,\n TableLayoutProps<T>,\n CompoundStylesApiProps<RowLayoutBodyFactory> {}\n\nexport type RowLayoutBodyFactory = Factory<{\n props: RowLayoutBodyProps<unknown>;\n ref: HTMLTableRowElement;\n stylesNames: RowLayoutBodyStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<RowLayoutBodyProps<unknown>> = {};\n\nexport const RowLayoutBody = <T,>(props: RowLayoutBodyProps<T> & {ref?: ForwardedRef<HTMLTableRowElement>}) => {\n const ctx = useRowLayout();\n const {\n getRowExpandedContent,\n onRowDoubleClick,\n loading,\n classNames,\n className,\n styles,\n style,\n getRowAttributes,\n ...others\n } = useProps('RowLayoutBody', defaultProps as RowLayoutBodyProps<T>, props);\n const {table, store} = useTableContext<T>();\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel()?.rows.map((row) => {\n const rowChildren = getRowExpandedContent?.(row.original, row.index, row) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = store.rowSelectionForced && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (store.rowSelectionEnabled && !store.multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => {\n onRowDoubleClick?.(row.original, row.index, row);\n }}\n data-selectable={store.rowSelectionEnabled}\n data-selected={isSelected}\n data-multi-selection={store.multiRowSelectionEnabled}\n aria-selected={isSelected}\n data-testid={row.id}\n {...ctx.getStyles('row', {classNames, className, styles, style})}\n {...(getRowAttributes?.(row.original, row.index, row) ?? {})}\n {...others}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && store.rowSelectionEnabled) {\n event.stopPropagation();\n }\n };\n\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n className={ctx.getStyles('cell', {classNames, styles}).className}\n style={{\n width: columnSizing.size ? `${columnSizing.size}px` : 'auto',\n minWidth: `${columnSizing.minSize}px`,\n maxWidth: `${columnSizing.maxSize}px`,\n ...ctx.getStyles('cell', {classNames, styles}).style,\n }}\n data-collapsible-cell={cell.column.id === TableCollapsibleColumn.id}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr {...ctx.getStyles('collapsibleRow', {classNames, styles})}>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box {...ctx.getStyles('collapsibleWrapper', {classNames, styles})} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nRowLayoutBody.extend = identity as CustomComponentThemeExtend<RowLayoutBodyFactory>;\n"],"names":["RowLayoutBody","defaultProps","props","table","ctx","useRowLayout","useProps","getRowExpandedContent","onRowDoubleClick","loading","classNames","className","styles","style","getRowAttributes","others","useTableContext","store","toggleCollapsible","el","cell","children","length","querySelector","click","rows","getRowModel","map","row","rowChildren","original","index","isSelected","getIsSelected","shouldKeepSelection","rowSelectionForced","onClick","event","currentTarget","rowSelectionEnabled","multiRowSelectionEnabled","toggleSelected","Fragment","tr","onDoubleClick","data-selectable","data-selected","data-multi-selection","aria-selected","data-testid","id","getStyles","getVisibleCells","columnSizing","defaultColumnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","TableSelectableColumn","stopPropagation","td","width","minWidth","maxWidth","data-collapsible-cell","TableCollapsibleColumn","TableLoading","visible","flexRender","getContext","colSpan","getAllColumns","padding","Collapse","in","getIsExpanded","Box","px","py","extend","identity"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/components/Table/layouts/row-layout/RowLayoutBody.tsx"],"sourcesContent":["import {Box, BoxProps, Collapse, CompoundStylesApiProps, Factory, useProps} from '@mantine/core';\nimport {flexRender} from '@tanstack/react-table';\nimport {defaultColumnSizing} from '@tanstack/table-core';\nimport {ForwardedRef, Fragment, type MouseEvent} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../../../utils/createFactoryComponent.js';\nimport {TableLayoutProps} from '../../Table.types.js';\nimport {useTableContext} from '../../TableContext.js';\nimport {TableCollapsibleColumn} from '../../table-column/TableCollapsibleColumn.js';\nimport {TableSelectableColumn} from '../../table-column/TableSelectableColumn.js';\nimport {TableLoading} from '../../table-loading/TableLoading.js';\nimport {useRowLayout} from './RowLayoutContext.js';\n\nexport type RowLayoutBodyStylesNames = 'row' | 'cell' | 'collapsibleRow' | 'collapsibleWrapper';\n\nexport interface RowLayoutBodyProps<T>\n extends BoxProps,\n TableLayoutProps<T>,\n CompoundStylesApiProps<RowLayoutBodyFactory> {}\n\nexport type RowLayoutBodyFactory = Factory<{\n props: RowLayoutBodyProps<unknown>;\n ref: HTMLTableRowElement;\n stylesNames: RowLayoutBodyStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<RowLayoutBodyProps<unknown>> = {};\n\nexport const RowLayoutBody = <T,>(props: RowLayoutBodyProps<T> & {ref?: ForwardedRef<HTMLTableRowElement>}) => {\n const ctx = useRowLayout();\n const {\n getRowExpandedContent,\n onRowDoubleClick,\n loading,\n classNames,\n className,\n styles,\n style,\n getRowAttributes,\n ...others\n } = useProps('RowLayoutBody', defaultProps as RowLayoutBodyProps<T>, props);\n const {table, store} = useTableContext<T>();\n const toggleCollapsible = (el: HTMLTableRowElement) => {\n const cell = el.children[el.children.length - 1] as HTMLTableCellElement;\n cell.querySelector('button').click();\n };\n\n const rows = table.getRowModel()?.rows.map((row) => {\n const rowChildren = getRowExpandedContent?.(row.original, row.index, row) ?? null;\n const isSelected = !!row.getIsSelected();\n const shouldKeepSelection = store.rowSelectionForced && isSelected;\n const onClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (rowChildren) {\n toggleCollapsible(event.currentTarget);\n }\n if (store.rowSelectionEnabled && !store.multiRowSelectionEnabled && !shouldKeepSelection) {\n row.toggleSelected();\n }\n };\n\n return (\n <Fragment key={row.id}>\n <tr\n onClick={onClick}\n onDoubleClick={() => {\n onRowDoubleClick?.(row.original, row.index, row);\n }}\n data-selectable={store.rowSelectionEnabled}\n data-selected={isSelected}\n data-multi-selection={store.multiRowSelectionEnabled}\n aria-selected={isSelected}\n data-testid={row.id}\n {...ctx.getStyles('row', {classNames, className, styles, style})}\n {...(getRowAttributes?.(row.original, row.index, row) ?? {})}\n {...others}\n >\n {row.getVisibleCells().map((cell) => {\n const columnSizing = {\n ...defaultColumnSizing,\n size: cell.column.columnDef.size,\n minSize: cell.column.columnDef.minSize,\n maxSize: cell.column.columnDef.maxSize,\n };\n\n const onCollapsibleCellClick = (event: MouseEvent<HTMLTableCellElement>) => {\n if (cell.column.id === TableSelectableColumn.id && store.rowSelectionEnabled) {\n event.stopPropagation();\n }\n };\n\n return (\n <td\n key={cell.id}\n data-testid={cell.id}\n className={ctx.getStyles('cell', {classNames, styles}).className}\n style={{\n width: columnSizing.size ? `${columnSizing.size}px` : 'auto',\n minWidth: `${columnSizing.minSize}px`,\n maxWidth: `${columnSizing.maxSize}px`,\n ...ctx.getStyles('cell', {classNames, styles}).style,\n }}\n data-collapsible-cell={cell.column.id === TableCollapsibleColumn.id}\n onClick={onCollapsibleCellClick}\n >\n <TableLoading visible={loading}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableLoading>\n </td>\n );\n })}\n </tr>\n {rowChildren ? (\n <tr {...ctx.getStyles('collapsibleRow', {classNames, styles})}>\n <td\n colSpan={table.getAllColumns().length}\n style={{\n padding: 0,\n }}\n >\n <Collapse in={row.getIsExpanded()}>\n <Box {...ctx.getStyles('collapsibleWrapper', {classNames, styles})} px=\"sm\" py=\"xs\">\n {rowChildren}\n </Box>\n </Collapse>\n </td>\n </tr>\n ) : null}\n </Fragment>\n );\n });\n\n return <>{rows}</>;\n};\n\nRowLayoutBody.extend = identity as CustomComponentThemeExtend<RowLayoutBodyFactory>;\n"],"names":["RowLayoutBody","defaultProps","props","table","ctx","useRowLayout","useProps","getRowExpandedContent","onRowDoubleClick","loading","classNames","className","styles","style","getRowAttributes","others","useTableContext","store","toggleCollapsible","el","cell","children","length","querySelector","click","rows","getRowModel","map","row","rowChildren","original","index","isSelected","getIsSelected","shouldKeepSelection","rowSelectionForced","onClick","event","currentTarget","rowSelectionEnabled","multiRowSelectionEnabled","toggleSelected","Fragment","tr","onDoubleClick","data-selectable","data-selected","data-multi-selection","aria-selected","data-testid","id","getStyles","getVisibleCells","columnSizing","defaultColumnSizing","size","column","columnDef","minSize","maxSize","onCollapsibleCellClick","TableSelectableColumn","stopPropagation","td","width","minWidth","maxWidth","data-collapsible-cell","TableCollapsibleColumn","TableLoading","visible","flexRender","getContext","colSpan","getAllColumns","padding","Collapse","in","getIsExpanded","Box","px","py","extend","identity"],"mappings":"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"}
@@ -18,7 +18,7 @@ var _TableContext = require("../../TableContext.js");
18
18
  var _Th = require("../../table-header/Th.js");
19
19
  var _RowLayoutContext = require("./RowLayoutContext.js");
20
20
  var defaultProps = {};
21
- var RowLayoutHeader = function(props) {
21
+ var RowLayoutHeader = function RowLayoutHeader(props) {
22
22
  var ctx = (0, _RowLayoutContext.useRowLayout)();
23
23
  var _useProps = (0, _core.useProps)('RowLayoutHeader', defaultProps, props), _getRowExpandedContent = _useProps.getRowExpandedContent, _getRowActions = _useProps.getRowActions, _loading = _useProps.loading, _getRowAttributes = _useProps.getRowAttributes, _onRowDoubleClick = _useProps.onRowDoubleClick, className = _useProps.className, style = _useProps.style, classNames = _useProps.classNames, styles = _useProps.styles, others = _object_without_properties._(_useProps, [
24
24
  "getRowExpandedContent",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Table/layouts/row-layout/RowLayoutHeader.tsx"],"sourcesContent":["import {BoxProps, CompoundStylesApiProps, Factory, useProps} from '@mantine/core';\nimport {ForwardedRef} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../../../utils/createFactoryComponent.js';\nimport {TableLayoutProps} from '../../Table.types.js';\nimport {useTableContext} from '../../TableContext.js';\nimport {Th} from '../../table-header/Th.js';\nimport {RowLayoutBodyFactory} from './RowLayoutBody.js';\nimport {useRowLayout} from './RowLayoutContext.js';\n\nexport type RowLayoutHeaderStyleNames = 'headerRow';\n\nexport interface RowLayoutHeaderProps<T>\n extends BoxProps,\n TableLayoutProps<T>,\n CompoundStylesApiProps<RowLayoutBodyFactory> {}\n\ntype RowLayoutHeaderFactory = Factory<{\n props: RowLayoutHeaderProps<unknown>;\n ref: HTMLTableRowElement;\n stylesNames: RowLayoutHeaderStyleNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<RowLayoutHeaderProps<unknown>> = {};\n\nexport const RowLayoutHeader = <T,>(props: RowLayoutHeaderProps<T> & {ref?: ForwardedRef<HTMLTableRowElement>}) => {\n const ctx = useRowLayout();\n const {\n getRowExpandedContent: _getRowExpandedContent,\n getRowActions: _getRowActions,\n loading: _loading,\n getRowAttributes: _getRowAttributes,\n onRowDoubleClick: _onRowDoubleClick,\n className,\n style,\n classNames,\n styles,\n ...others\n } = useProps('RowLayoutHeader', defaultProps as RowLayoutHeaderProps<T>, props);\n const {table, store} = useTableContext<T>();\n\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr\n key={headerGroup.id}\n data-selectable={store.rowSelectionEnabled}\n data-multi-selection={store.multiRowSelectionEnabled}\n {...ctx.getStyles('headerRow', {className, classNames, styles, style})}\n {...others}\n >\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\nRowLayoutHeader.extend = identity as CustomComponentThemeExtend<RowLayoutHeaderFactory>;\n"],"names":["RowLayoutHeader","defaultProps","props","ctx","useRowLayout","useProps","getRowExpandedContent","_getRowExpandedContent","getRowActions","_getRowActions","loading","_loading","getRowAttributes","_getRowAttributes","onRowDoubleClick","_onRowDoubleClick","className","style","classNames","styles","others","useTableContext","table","store","headers","getHeaderGroups","map","headerGroup","tr","data-selectable","rowSelectionEnabled","data-multi-selection","multiRowSelectionEnabled","getStyles","columnHeader","Th","header","id","extend","identity"],"mappings":";;;;+BAyBaA;;;eAAAA;;;;;;;oBAzBqD;sCAEf;4BAErB;kBACb;gCAEU;AAgB3B,IAAMC,eAAuD,CAAC;AAEvD,IAAMD,kBAAkB,SAAKE;IAChC,IAAMC,MAAMC,IAAAA,8BAAY;IACxB,IAWIC,YAAAA,IAAAA,cAAQ,EAAC,mBAAmBJ,cAAyCC,QAVrEI,AAAuBC,yBAUvBF,UAVAC,uBACAE,AAAeC,iBASfJ,UATAG,eACAE,AAASC,WAQTN,UARAK,SACAE,AAAkBC,oBAOlBR,UAPAO,kBACAE,AAAkBC,oBAMlBV,UANAS,kBACAE,YAKAX,UALAW,WACAC,QAIAZ,UAJAY,OACAC,aAGAb,UAHAa,YACAC,SAEAd,UAFAc,QACGC,sCACHf;QAVAC;QACAE;QACAE;QACAE;QACAE;QACAE;QACAC;QACAC;QACAC;;IAGJ,IAAuBE,mBAAAA,IAAAA,6BAAe,KAA/BC,QAAgBD,iBAAhBC,OAAOC,QAASF,iBAATE;IAEd,IAAMC,UAAUF,MAAMG,eAAe,GAAGC,GAAG,CAAC,SAACC;6BACzC,qBAACC;YAEGC,mBAAiBN,MAAMO,mBAAmB;YAC1CC,wBAAsBR,MAAMS,wBAAwB;WAChD7B,IAAI8B,SAAS,CAAC,aAAa;YAACjB,WAAAA;YAAWE,YAAAA;YAAYC,QAAAA;YAAQF,OAAAA;QAAK,IAChEG;sBAEHO,YAAYH,OAAO,CAACE,GAAG,CAAC,SAACQ;qCACtB,qBAACC,MAAE;oBAAuBC,QAAQF;mBAAzBA,aAAaG,EAAE;;YAPvBV,YAAYU,EAAE;;IAW3B,qBAAO;kBAAGb;;AACd;AACAxB,gBAAgBsC,MAAM,GAAGC,gCAAQ"}
1
+ {"version":3,"sources":["../../../../../../src/components/Table/layouts/row-layout/RowLayoutHeader.tsx"],"sourcesContent":["import {BoxProps, CompoundStylesApiProps, Factory, useProps} from '@mantine/core';\nimport {ForwardedRef} from 'react';\nimport {CustomComponentThemeExtend, identity} from '../../../../utils/createFactoryComponent.js';\nimport {TableLayoutProps} from '../../Table.types.js';\nimport {useTableContext} from '../../TableContext.js';\nimport {Th} from '../../table-header/Th.js';\nimport {RowLayoutBodyFactory} from './RowLayoutBody.js';\nimport {useRowLayout} from './RowLayoutContext.js';\n\nexport type RowLayoutHeaderStyleNames = 'headerRow';\n\nexport interface RowLayoutHeaderProps<T>\n extends BoxProps,\n TableLayoutProps<T>,\n CompoundStylesApiProps<RowLayoutBodyFactory> {}\n\ntype RowLayoutHeaderFactory = Factory<{\n props: RowLayoutHeaderProps<unknown>;\n ref: HTMLTableRowElement;\n stylesNames: RowLayoutHeaderStyleNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<RowLayoutHeaderProps<unknown>> = {};\n\nexport const RowLayoutHeader = <T,>(props: RowLayoutHeaderProps<T> & {ref?: ForwardedRef<HTMLTableRowElement>}) => {\n const ctx = useRowLayout();\n const {\n getRowExpandedContent: _getRowExpandedContent,\n getRowActions: _getRowActions,\n loading: _loading,\n getRowAttributes: _getRowAttributes,\n onRowDoubleClick: _onRowDoubleClick,\n className,\n style,\n classNames,\n styles,\n ...others\n } = useProps('RowLayoutHeader', defaultProps as RowLayoutHeaderProps<T>, props);\n const {table, store} = useTableContext<T>();\n\n const headers = table.getHeaderGroups().map((headerGroup) => (\n <tr\n key={headerGroup.id}\n data-selectable={store.rowSelectionEnabled}\n data-multi-selection={store.multiRowSelectionEnabled}\n {...ctx.getStyles('headerRow', {className, classNames, styles, style})}\n {...others}\n >\n {headerGroup.headers.map((columnHeader) => (\n <Th key={columnHeader.id} header={columnHeader} />\n ))}\n </tr>\n ));\n return <>{headers}</>;\n};\nRowLayoutHeader.extend = identity as CustomComponentThemeExtend<RowLayoutHeaderFactory>;\n"],"names":["RowLayoutHeader","defaultProps","props","ctx","useRowLayout","useProps","getRowExpandedContent","_getRowExpandedContent","getRowActions","_getRowActions","loading","_loading","getRowAttributes","_getRowAttributes","onRowDoubleClick","_onRowDoubleClick","className","style","classNames","styles","others","useTableContext","table","store","headers","getHeaderGroups","map","headerGroup","tr","data-selectable","rowSelectionEnabled","data-multi-selection","multiRowSelectionEnabled","getStyles","columnHeader","Th","header","id","extend","identity"],"mappings":";;;;+BAyBaA;;;eAAAA;;;;;;;oBAzBqD;sCAEf;4BAErB;kBACb;gCAEU;AAgB3B,IAAMC,eAAuD,CAAC;AAEvD,IAAMD,kBAAkB,yBAAKE;IAChC,IAAMC,MAAMC,IAAAA,8BAAY;IACxB,IAWIC,YAAAA,IAAAA,cAAQ,EAAC,mBAAmBJ,cAAyCC,QAVrEI,AAAuBC,yBAUvBF,UAVAC,uBACAE,AAAeC,iBASfJ,UATAG,eACAE,AAASC,WAQTN,UARAK,SACAE,AAAkBC,oBAOlBR,UAPAO,kBACAE,AAAkBC,oBAMlBV,UANAS,kBACAE,YAKAX,UALAW,WACAC,QAIAZ,UAJAY,OACAC,aAGAb,UAHAa,YACAC,SAEAd,UAFAc,QACGC,sCACHf;;;;;;;;;;;IACJ,IAAuBgB,mBAAAA,IAAAA,6BAAe,KAA/BC,QAAgBD,iBAAhBC,OAAOC,QAASF,iBAATE;IAEd,IAAMC,UAAUF,MAAMG,eAAe,GAAGC,GAAG,CAAC,SAACC;6BACzC,qBAACC;YAEGC,mBAAiBN,MAAMO,mBAAmB;YAC1CC,wBAAsBR,MAAMS,wBAAwB;WAChD7B,IAAI8B,SAAS,CAAC,aAAa;YAACjB,WAAAA;YAAWE,YAAAA;YAAYC,QAAAA;YAAQF,OAAAA;QAAK,IAChEG;sBAEHO,YAAYH,OAAO,CAACE,GAAG,CAAC,SAACQ;qCACtB,qBAACC,MAAE;oBAAuBC,QAAQF;mBAAzBA,aAAaG,EAAE;;YAPvBV,YAAYU,EAAE;;IAW3B,qBAAO;kBAAGb;;AACd;AACAxB,gBAAgBsC,MAAM,GAAGC,gCAAQ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Table/table-actions/TableActionItem.tsx"],"sourcesContent":["import {CompoundStylesApiProps, PolymorphicFactory, polymorphicFactory, useProps} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport {Button, type ButtonProps} from '../../Button/Button.js';\nimport {useTableContext} from '../TableContext.js';\nimport {useTableActionContext} from './TableActionContext.js';\nimport {Menu, type MenuItemProps} from '../../Menu/Menu.js';\n\nexport type TableActionItemStylesNames = 'actionItemRoot';\n\nexport interface TableActionItemProps\n extends Omit<ButtonProps, 'classNames' | 'styles' | 'vars' | 'variant' | 'leftSection' | 'rightSection'>,\n Omit<MenuItemProps, 'classNames' | 'styles' | 'vars' | 'variant' | 'leftSection' | 'disabled'>,\n CompoundStylesApiProps<TableActionItemFactory> {\n /**\n * Action label\n */\n children: ReactNode;\n /**\n * Content to put on the left of the label\n */\n leftSection?: ReactNode;\n}\n\ntype TableActionItemFactory = PolymorphicFactory<{\n props: TableActionItemProps;\n defaultRef: HTMLButtonElement;\n defaultComponent: 'button';\n stylesNames: TableActionItemStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableActionItemProps> = {};\n\nexport const TableActionItem = polymorphicFactory<TableActionItemFactory>(\n (props: TableActionItemProps & {component?: any}, ref) => {\n const {getStyles} = useTableContext();\n const {primary} = useTableActionContext();\n const {\n classNames,\n className,\n style,\n styles,\n vars: _vars,\n children,\n component,\n ...others\n } = useProps('PlasmaTableActionItem', defaultProps, props);\n\n if (primary) {\n return (\n <Button.Quaternary\n component={component}\n ref={ref}\n {...others}\n {...getStyles('actionItemRoot', {className, style, classNames, styles})}\n >\n {children}\n </Button.Quaternary>\n );\n }\n\n return (\n <Menu.Item\n component={component}\n ref={ref}\n {...others}\n {...getStyles('actionItemRoot', {className, style, classNames, styles})}\n >\n {children}\n </Menu.Item>\n );\n },\n);\n"],"names":["TableActionItem","defaultProps","polymorphicFactory","props","ref","getStyles","useTableContext","primary","useTableActionContext","useProps","classNames","className","style","styles","vars","_vars","children","component","others","Button","Quaternary","Menu","Item"],"mappings":";;;;+BAiCaA;;;eAAAA;;;;;;;oBAjC0E;sBAEhD;4BACT;kCACM;oBACG;AA0BvC,IAAMC,eAA8C,CAAC;AAE9C,IAAMD,kBAAkBE,IAAAA,wBAAkB,EAC7C,SAACC,OAAiDC;IAC9C,IAAM,AAACC,YAAaC,IAAAA,6BAAe,IAA5BD;IACP,IAAM,AAACE,UAAWC,IAAAA,yCAAqB,IAAhCD;IACP,IASIE,YAAAA,IAAAA,cAAQ,EAAC,yBAAyBR,cAAcE,QARhDO,aAQAD,UARAC,YACAC,YAOAF,UAPAE,WACAC,QAMAH,UANAG,OACAC,SAKAJ,UALAI,QACAC,AAAMC,QAINN,UAJAK,MACAE,WAGAP,UAHAO,UACAC,YAEAR,UAFAQ,WACGC,sCACHT;QARAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;;IAIJ,IAAIV,SAAS;QACT,qBACI,qBAACY,cAAM,CAACC,UAAU;YACdH,WAAWA;YACXb,KAAKA;WACDc,QACAb,UAAU,kBAAkB;YAACM,WAAAA;YAAWC,OAAAA;YAAOF,YAAAA;YAAYG,QAAAA;QAAM;sBAEpEG;;IAGb;IAEA,qBACI,qBAACK,UAAI,CAACC,IAAI;QACNL,WAAWA;QACXb,KAAKA;OACDc,QACAb,UAAU,kBAAkB;QAACM,WAAAA;QAAWC,OAAAA;QAAOF,YAAAA;QAAYG,QAAAA;IAAM;kBAEpEG;;AAGb"}
1
+ {"version":3,"sources":["../../../../../src/components/Table/table-actions/TableActionItem.tsx"],"sourcesContent":["import {CompoundStylesApiProps, PolymorphicFactory, polymorphicFactory, useProps} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport {Button, type ButtonProps} from '../../Button/Button.js';\nimport {useTableContext} from '../TableContext.js';\nimport {useTableActionContext} from './TableActionContext.js';\nimport {Menu, type MenuItemProps} from '../../Menu/Menu.js';\n\nexport type TableActionItemStylesNames = 'actionItemRoot';\n\nexport interface TableActionItemProps\n extends Omit<ButtonProps, 'classNames' | 'styles' | 'vars' | 'variant' | 'leftSection' | 'rightSection'>,\n Omit<MenuItemProps, 'classNames' | 'styles' | 'vars' | 'variant' | 'leftSection' | 'disabled'>,\n CompoundStylesApiProps<TableActionItemFactory> {\n /**\n * Action label\n */\n children: ReactNode;\n /**\n * Content to put on the left of the label\n */\n leftSection?: ReactNode;\n}\n\ntype TableActionItemFactory = PolymorphicFactory<{\n props: TableActionItemProps;\n defaultRef: HTMLButtonElement;\n defaultComponent: 'button';\n stylesNames: TableActionItemStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableActionItemProps> = {};\n\nexport const TableActionItem = polymorphicFactory<TableActionItemFactory>(\n (props: TableActionItemProps & {component?: any}, ref) => {\n const {getStyles} = useTableContext();\n const {primary} = useTableActionContext();\n const {\n classNames,\n className,\n style,\n styles,\n vars: _vars,\n children,\n component,\n ...others\n } = useProps('PlasmaTableActionItem', defaultProps, props);\n\n if (primary) {\n return (\n <Button.Quaternary\n component={component}\n ref={ref}\n {...others}\n {...getStyles('actionItemRoot', {className, style, classNames, styles})}\n >\n {children}\n </Button.Quaternary>\n );\n }\n\n return (\n <Menu.Item\n component={component}\n ref={ref}\n {...others}\n {...getStyles('actionItemRoot', {className, style, classNames, styles})}\n >\n {children}\n </Menu.Item>\n );\n },\n);\n"],"names":["TableActionItem","defaultProps","polymorphicFactory","props","ref","getStyles","useTableContext","primary","useTableActionContext","useProps","classNames","className","style","styles","vars","_vars","children","component","others","Button","Quaternary","Menu","Item"],"mappings":";;;;+BAiCaA;;;eAAAA;;;;;;;oBAjC0E;sBAEhD;4BACT;kCACM;oBACG;AA0BvC,IAAMC,eAA8C,CAAC;AAE9C,IAAMD,kBAAkBE,IAAAA,wBAAkB,EAC7C,SAACC,OAAiDC;IAC9C,IAAM,AAACC,YAAaC,IAAAA,6BAAe,IAA5BD;IACP,IAAM,AAACE,UAAWC,IAAAA,yCAAqB,IAAhCD;IACP,IASIE,YAAAA,IAAAA,cAAQ,EAAC,yBAAyBR,cAAcE,QARhDO,aAQAD,UARAC,YACAC,YAOAF,UAPAE,WACAC,QAMAH,UANAG,OACAC,SAKAJ,UALAI,QACAC,AAAMC,QAINN,UAJAK,MACAE,WAGAP,UAHAO,UACAC,YAEAR,UAFAQ,WACGC,sCACHT;;;;;;;;;IAEJ,IAAIF,SAAS;QACT,qBACI,qBAACY,cAAM,CAACC,UAAU;YACdH,WAAWA;YACXb,KAAKA;WACDc,QACAb,UAAU,kBAAkB;YAACM,WAAAA;YAAWC,OAAAA;YAAOF,YAAAA;YAAYG,QAAAA;QAAM;sBAEpEG;;IAGb;IAEA,qBACI,qBAACK,UAAI,CAACC,IAAI;QACNL,WAAWA;QACXb,KAAKA;OACDc,QACAb,UAAU,kBAAkB;QAACM,WAAAA;QAAWC,OAAAA;QAAOF,YAAAA;QAAYG,QAAAA;IAAM;kBAEpEG;;AAGb"}
@@ -29,7 +29,7 @@ var defaultProps = {
29
29
  height: 16
30
30
  })
31
31
  };
32
- var TableActionsList = function(props) {
32
+ var TableActionsList = function TableActionsList(props) {
33
33
  var getStyles = (0, _TableContext.useTableContext)().getStyles;
34
34
  var _useProps = (0, _core.useProps)('PlasmaTableActionsListColumn', defaultProps, props), actions = _useProps.actions, icon = _useProps.icon, label = _useProps.label, primaryGroupLabel = _useProps.primaryGroupLabel, classNames = _useProps.classNames, styles = _useProps.styles, _vars = _useProps.vars, variant = _useProps.variant, others = _object_without_properties._(_useProps, [
35
35
  "actions",
@@ -42,14 +42,14 @@ var TableActionsList = function(props) {
42
42
  "variant"
43
43
  ]);
44
44
  var _useState = _sliced_to_array._((0, _react.useState)(false), 2), opened = _useState[0], setOpened = _useState[1];
45
- var onClick = function(e) {
45
+ var onClick = function onClick(e) {
46
46
  e.preventDefault();
47
47
  e.stopPropagation();
48
48
  setOpened(function(prevState) {
49
49
  return !prevState;
50
50
  });
51
51
  };
52
- var onChange = function(newOpened) {
52
+ var onChange = function onChange(newOpened) {
53
53
  if (!newOpened) {
54
54
  setOpened(false);
55
55
  }
@@ -181,7 +181,7 @@ var TableActionsList = function(props) {
181
181
  ]
182
182
  });
183
183
  };
184
- var ActionsGroupsMenuItems = function(param) {
184
+ var ActionsGroupsMenuItems = function ActionsGroupsMenuItems(param) {
185
185
  var styles = param.styles, classNames = param.classNames, actionGroups = param.actionGroups;
186
186
  var getStyles = (0, _TableContext.useTableContext)().getStyles;
187
187
  return actionGroups.map(function(param, index) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Table/table-actions/TableActionsList.tsx"],"sourcesContent":["import {MoreSize16Px} from '@coveord/plasma-react-icons';\nimport {\n Box,\n CompoundStylesApiProps,\n CSSProperties,\n ExtendComponent,\n Factory,\n Menu,\n MenuProps,\n Tooltip,\n useProps,\n} from '@mantine/core';\nimport {MouseEventHandler, ReactNode, useState} from 'react';\nimport {ActionIcon} from '../../ActionIcon/ActionIcon.js';\nimport {Button} from '../../Button/Button.js';\nimport {InlineConfirm} from '../../InlineConfirm/InlineConfirm.js';\nimport {TableAction} from '../Table.types.js';\nimport {useTableContext} from '../TableContext.js';\nimport {TableActionProvider} from './TableActionContext.js';\n\nexport type TableActionsListStylesNames =\n | 'actionsTarget'\n | 'actionsDropdown'\n | 'actionsTooltip'\n | 'actionsGroup'\n | 'actionsGroupLabel'\n | 'actionsGroupDivider'\n | 'actionsGroupItems';\n\nexport interface TableActionsListProps\n extends Omit<MenuProps, 'classNames' | 'styles' | 'vars' | 'variant'>,\n CompoundStylesApiProps<TableActionsListFactory> {\n actions: TableAction[];\n /**\n * Label for the more menu\n * @default 'More' when variant is 'split', 'Actions' when variant is 'combined'\n */\n label?: string;\n /**\n * Label for the primary actions group when variant is 'combined'\n * @default ''\n */\n primaryGroupLabel?: string;\n icon?: ReactNode;\n}\n\ntype TableActionsListFactory = Factory<{\n props: TableActionsListProps;\n ref: HTMLDivElement;\n stylesNames: TableActionsListStylesNames;\n compound: true;\n variant: 'split' | 'combined';\n}>;\n\nconst defaultProps: Partial<TableActionsListProps> = {\n label: 'More',\n primaryGroupLabel: '',\n icon: <MoreSize16Px height={16} />,\n};\n\ninterface ActionsDict {\n $$primary: TableAction[];\n $$confirmPrompt: TableAction[];\n secondary: Record<string, Array<TableAction['component']>>;\n}\n\ninterface ActionGroup {\n name: string;\n actions: ReactNode[];\n}\n\nexport const TableActionsList = (props: TableActionsListProps) => {\n const {getStyles} = useTableContext();\n const {\n actions,\n icon,\n label,\n primaryGroupLabel,\n classNames,\n styles,\n vars: _vars,\n variant,\n ...others\n } = useProps('PlasmaTableActionsListColumn', defaultProps, props);\n const [opened, setOpened] = useState(false);\n\n const onClick: MouseEventHandler = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setOpened((prevState) => !prevState);\n };\n const onChange = (newOpened: boolean) => {\n if (!newOpened) {\n setOpened(false);\n }\n };\n\n const actionsGroups: ActionsDict = actions.reduce<ActionsDict>(\n (acc, action) => {\n if (action.group === '$$primary') {\n acc.$$primary.push(action);\n } else if (action.group === '$$confirmPrompt') {\n acc.$$confirmPrompt.push(action);\n } else {\n if (acc.secondary[action.group]) {\n acc.secondary[action.group].push(action.component);\n } else {\n acc.secondary[action.group] = [action.component];\n }\n }\n return acc;\n },\n {$$primary: [], $$confirmPrompt: [], secondary: {}},\n );\n\n const primaryActions = actionsGroups.$$primary.map((action) => action.component);\n const confirmPrompts = actionsGroups.$$confirmPrompt.map((confirmPromptAction) => confirmPromptAction.component);\n const secondaryActionGroups = Object.entries(actionsGroups.secondary).map(\n ([group, groupActions]): ActionGroup => ({\n name: group,\n actions: groupActions,\n }),\n );\n\n if (variant === 'split') {\n return (\n <InlineConfirm>\n {confirmPrompts}\n <TableActionProvider value={{primary: true}}>{primaryActions}</TableActionProvider>\n {secondaryActionGroups.length > 0 ? (\n <TableActionProvider value={{primary: false}}>\n <Menu withinPortal={false} {...others} keepMounted>\n <Menu.Target>\n <Button.Quaternary\n {...getStyles('actionsTarget', {styles, classNames})}\n leftSection={icon}\n >\n {label}\n </Button.Quaternary>\n </Menu.Target>\n <Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>\n <ActionsGroupsMenuItems\n classNames={classNames}\n styles={styles}\n actionGroups={secondaryActionGroups}\n />\n </Menu.Dropdown>\n </Menu>\n </TableActionProvider>\n ) : null}\n </InlineConfirm>\n );\n }\n return (\n <InlineConfirm>\n {confirmPrompts}\n <TableActionProvider value={{primary: false}}>\n <Menu opened={opened} onChange={onChange} {...others} keepMounted>\n <Menu.Target>\n <Tooltip label={label} {...getStyles('actionsTooltip', {styles, classNames})}>\n <ActionIcon.Quaternary\n {...getStyles('actionsTarget', {styles, classNames})}\n onClick={onClick}\n >\n {icon}\n </ActionIcon.Quaternary>\n </Tooltip>\n </Menu.Target>\n <Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>\n <ActionsGroupsMenuItems\n classNames={classNames}\n styles={styles}\n actionGroups={\n primaryActions.length > 0\n ? [{name: primaryGroupLabel, actions: primaryActions}, ...secondaryActionGroups]\n : secondaryActionGroups\n }\n />\n </Menu.Dropdown>\n </Menu>\n </TableActionProvider>\n </InlineConfirm>\n );\n};\n\ninterface ActionsGroupsMenuItemsProps {\n styles: Partial<Record<TableActionsListStylesNames, CSSProperties>>;\n classNames: Partial<Record<TableActionsListStylesNames, string>>;\n actionGroups: ActionGroup[];\n}\n\nconst ActionsGroupsMenuItems = ({styles, classNames, actionGroups}: ActionsGroupsMenuItemsProps) => {\n const {getStyles} = useTableContext();\n return actionGroups.map(({name, actions}, index) => (\n <Box key={name} {...getStyles('actionsGroup', {styles, classNames})}>\n {actionGroups.length > 1 ? (\n <Menu.Label {...getStyles('actionsGroupLabel', {styles, classNames})}>{name}</Menu.Label>\n ) : null}\n <Box {...getStyles('actionsGroupItems', {styles, classNames})}>{actions}</Box>\n {index < actionGroups.length - 1 ? (\n <Menu.Divider {...getStyles('actionsGroupDivider', {styles, classNames})} />\n ) : null}\n </Box>\n ));\n};\n\nTableActionsList.extend = (input: ExtendComponent<TableActionsListFactory>) => input;\n"],"names":["TableActionsList","defaultProps","label","primaryGroupLabel","icon","MoreSize16Px","height","props","getStyles","useTableContext","useProps","actions","classNames","styles","vars","_vars","variant","others","useState","opened","setOpened","onClick","e","preventDefault","stopPropagation","prevState","onChange","newOpened","actionsGroups","reduce","acc","action","group","$$primary","push","$$confirmPrompt","secondary","component","primaryActions","map","confirmPrompts","confirmPromptAction","secondaryActionGroups","Object","entries","groupActions","name","InlineConfirm","TableActionProvider","value","primary","length","Menu","withinPortal","keepMounted","Target","Button","Quaternary","leftSection","Dropdown","ActionsGroupsMenuItems","actionGroups","Tooltip","ActionIcon","index","Box","Label","Divider","extend","input"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/Table/table-actions/TableActionsList.tsx"],"sourcesContent":["import {MoreSize16Px} from '@coveord/plasma-react-icons';\nimport {\n Box,\n CompoundStylesApiProps,\n CSSProperties,\n ExtendComponent,\n Factory,\n Menu,\n MenuProps,\n Tooltip,\n useProps,\n} from '@mantine/core';\nimport {MouseEventHandler, ReactNode, useState} from 'react';\nimport {ActionIcon} from '../../ActionIcon/ActionIcon.js';\nimport {Button} from '../../Button/Button.js';\nimport {InlineConfirm} from '../../InlineConfirm/InlineConfirm.js';\nimport {TableAction} from '../Table.types.js';\nimport {useTableContext} from '../TableContext.js';\nimport {TableActionProvider} from './TableActionContext.js';\n\nexport type TableActionsListStylesNames =\n | 'actionsTarget'\n | 'actionsDropdown'\n | 'actionsTooltip'\n | 'actionsGroup'\n | 'actionsGroupLabel'\n | 'actionsGroupDivider'\n | 'actionsGroupItems';\n\nexport interface TableActionsListProps\n extends Omit<MenuProps, 'classNames' | 'styles' | 'vars' | 'variant'>,\n CompoundStylesApiProps<TableActionsListFactory> {\n actions: TableAction[];\n /**\n * Label for the more menu\n * @default 'More' when variant is 'split', 'Actions' when variant is 'combined'\n */\n label?: string;\n /**\n * Label for the primary actions group when variant is 'combined'\n * @default ''\n */\n primaryGroupLabel?: string;\n icon?: ReactNode;\n}\n\ntype TableActionsListFactory = Factory<{\n props: TableActionsListProps;\n ref: HTMLDivElement;\n stylesNames: TableActionsListStylesNames;\n compound: true;\n variant: 'split' | 'combined';\n}>;\n\nconst defaultProps: Partial<TableActionsListProps> = {\n label: 'More',\n primaryGroupLabel: '',\n icon: <MoreSize16Px height={16} />,\n};\n\ninterface ActionsDict {\n $$primary: TableAction[];\n $$confirmPrompt: TableAction[];\n secondary: Record<string, Array<TableAction['component']>>;\n}\n\ninterface ActionGroup {\n name: string;\n actions: ReactNode[];\n}\n\nexport const TableActionsList = (props: TableActionsListProps) => {\n const {getStyles} = useTableContext();\n const {\n actions,\n icon,\n label,\n primaryGroupLabel,\n classNames,\n styles,\n vars: _vars,\n variant,\n ...others\n } = useProps('PlasmaTableActionsListColumn', defaultProps, props);\n const [opened, setOpened] = useState(false);\n\n const onClick: MouseEventHandler = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setOpened((prevState) => !prevState);\n };\n const onChange = (newOpened: boolean) => {\n if (!newOpened) {\n setOpened(false);\n }\n };\n\n const actionsGroups: ActionsDict = actions.reduce<ActionsDict>(\n (acc, action) => {\n if (action.group === '$$primary') {\n acc.$$primary.push(action);\n } else if (action.group === '$$confirmPrompt') {\n acc.$$confirmPrompt.push(action);\n } else {\n if (acc.secondary[action.group]) {\n acc.secondary[action.group].push(action.component);\n } else {\n acc.secondary[action.group] = [action.component];\n }\n }\n return acc;\n },\n {$$primary: [], $$confirmPrompt: [], secondary: {}},\n );\n\n const primaryActions = actionsGroups.$$primary.map((action) => action.component);\n const confirmPrompts = actionsGroups.$$confirmPrompt.map((confirmPromptAction) => confirmPromptAction.component);\n const secondaryActionGroups = Object.entries(actionsGroups.secondary).map(\n ([group, groupActions]): ActionGroup => ({\n name: group,\n actions: groupActions,\n }),\n );\n\n if (variant === 'split') {\n return (\n <InlineConfirm>\n {confirmPrompts}\n <TableActionProvider value={{primary: true}}>{primaryActions}</TableActionProvider>\n {secondaryActionGroups.length > 0 ? (\n <TableActionProvider value={{primary: false}}>\n <Menu withinPortal={false} {...others} keepMounted>\n <Menu.Target>\n <Button.Quaternary\n {...getStyles('actionsTarget', {styles, classNames})}\n leftSection={icon}\n >\n {label}\n </Button.Quaternary>\n </Menu.Target>\n <Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>\n <ActionsGroupsMenuItems\n classNames={classNames}\n styles={styles}\n actionGroups={secondaryActionGroups}\n />\n </Menu.Dropdown>\n </Menu>\n </TableActionProvider>\n ) : null}\n </InlineConfirm>\n );\n }\n return (\n <InlineConfirm>\n {confirmPrompts}\n <TableActionProvider value={{primary: false}}>\n <Menu opened={opened} onChange={onChange} {...others} keepMounted>\n <Menu.Target>\n <Tooltip label={label} {...getStyles('actionsTooltip', {styles, classNames})}>\n <ActionIcon.Quaternary\n {...getStyles('actionsTarget', {styles, classNames})}\n onClick={onClick}\n >\n {icon}\n </ActionIcon.Quaternary>\n </Tooltip>\n </Menu.Target>\n <Menu.Dropdown {...getStyles('actionsDropdown', {styles, classNames})}>\n <ActionsGroupsMenuItems\n classNames={classNames}\n styles={styles}\n actionGroups={\n primaryActions.length > 0\n ? [{name: primaryGroupLabel, actions: primaryActions}, ...secondaryActionGroups]\n : secondaryActionGroups\n }\n />\n </Menu.Dropdown>\n </Menu>\n </TableActionProvider>\n </InlineConfirm>\n );\n};\n\ninterface ActionsGroupsMenuItemsProps {\n styles: Partial<Record<TableActionsListStylesNames, CSSProperties>>;\n classNames: Partial<Record<TableActionsListStylesNames, string>>;\n actionGroups: ActionGroup[];\n}\n\nconst ActionsGroupsMenuItems = ({styles, classNames, actionGroups}: ActionsGroupsMenuItemsProps) => {\n const {getStyles} = useTableContext();\n return actionGroups.map(({name, actions}, index) => (\n <Box key={name} {...getStyles('actionsGroup', {styles, classNames})}>\n {actionGroups.length > 1 ? (\n <Menu.Label {...getStyles('actionsGroupLabel', {styles, classNames})}>{name}</Menu.Label>\n ) : null}\n <Box {...getStyles('actionsGroupItems', {styles, classNames})}>{actions}</Box>\n {index < actionGroups.length - 1 ? (\n <Menu.Divider {...getStyles('actionsGroupDivider', {styles, classNames})} />\n ) : null}\n </Box>\n ));\n};\n\nTableActionsList.extend = (input: ExtendComponent<TableActionsListFactory>) => input;\n"],"names":["TableActionsList","defaultProps","label","primaryGroupLabel","icon","MoreSize16Px","height","props","getStyles","useTableContext","useProps","actions","classNames","styles","vars","_vars","variant","others","useState","opened","setOpened","onClick","e","preventDefault","stopPropagation","prevState","onChange","newOpened","actionsGroups","reduce","acc","action","group","$$primary","push","$$confirmPrompt","secondary","component","primaryActions","map","confirmPrompts","confirmPromptAction","secondaryActionGroups","Object","entries","groupActions","name","InlineConfirm","TableActionProvider","value","primary","length","Menu","withinPortal","keepMounted","Target","Button","Quaternary","leftSection","Dropdown","ActionsGroupsMenuItems","actionGroups","Tooltip","ActionIcon","index","Box","Label","Divider","extend","input"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Table/table-actions/TableHeaderActions.tsx"],"sourcesContent":["import {Factory, factory, Grid, GridColProps, Group, useProps} from '@mantine/core';\nimport {ReactElement, useMemo} from 'react';\n\nimport {TableComponentsOrder} from '../Table.js';\nimport {useTableContext} from '../TableContext.js';\nimport {TableActionsList} from './TableActionsList.js';\n\nexport type TableHeaderActionsStylesNames = 'headerActionsRoot' | 'headerActionsGroup';\n\nexport interface TableHeaderActionsProps extends Omit<GridColProps, 'children'> {}\n\ntype TableHeaderActionsFactory = Factory<{\n props: TableHeaderActionsProps;\n ref: HTMLDivElement;\n stylesNames: TableHeaderActionsStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableHeaderActionsProps> = {};\n\nexport const TableHeaderActions = factory<TableHeaderActionsFactory>(\n (props: TableHeaderActionsProps, ref): ReactElement => {\n const {store, getStyles, getRowActions} = useTableContext();\n const {style, className, classNames, styles, ...others} = useProps(\n 'PlasmaTableHeaderActions',\n defaultProps,\n props,\n );\n\n const actions = useMemo(() => {\n const selectedRows = store.getSelectedRows();\n if (selectedRows.length === 0) {\n return [];\n }\n return getRowActions(selectedRows);\n }, [store.state.rowSelection]);\n\n if (actions.length === 0) {\n return null;\n }\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Actions}\n ref={ref}\n {...getStyles('headerActionsRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Group gap=\"xs\" {...getStyles('headerActionsGroup', stylesApiProps)}>\n <TableActionsList actions={actions} variant=\"split\" />\n </Group>\n </Grid.Col>\n );\n },\n);\n"],"names":["TableHeaderActions","defaultProps","factory","props","ref","useTableContext","store","getStyles","getRowActions","useProps","style","className","classNames","styles","others","actions","useMemo","selectedRows","getSelectedRows","length","state","rowSelection","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Actions","Group","gap","TableActionsList","variant"],"mappings":";;;;+BAoBaA;;;eAAAA;;;;;;;oBApBuD;qBAChC;qBAED;4BACL;gCACC;AAa/B,IAAMC,eAAiD,CAAC;AAEjD,IAAMD,qBAAqBE,IAAAA,aAAO,EACrC,SAACC,OAAgCC;IAC7B,IAA0CC,mBAAAA,IAAAA,6BAAe,KAAlDC,QAAmCD,iBAAnCC,OAAOC,YAA4BF,iBAA5BE,WAAWC,gBAAiBH,iBAAjBG;IACzB,IAA0DC,YAAAA,IAAAA,cAAQ,EAC9D,4BACAR,cACAE,QAHGO,QAAmDD,UAAnDC,OAAOC,YAA4CF,UAA5CE,WAAWC,aAAiCH,UAAjCG,YAAYC,SAAqBJ,UAArBI,QAAWC,sCAAUL;QAAnDC;QAAOC;QAAWC;QAAYC;;IAMrC,IAAME,UAAUC,IAAAA,cAAO,EAAC;QACpB,IAAMC,eAAeX,MAAMY,eAAe;QAC1C,IAAID,aAAaE,MAAM,KAAK,GAAG;YAC3B,OAAO,EAAE;QACb;QACA,OAAOX,cAAcS;IACzB,GAAG;QAACX,MAAMc,KAAK,CAACC,YAAY;KAAC;IAE7B,IAAIN,QAAQI,MAAM,KAAK,GAAG;QACtB,OAAO;IACX;IAEA,IAAMG,iBAAiB;QAACV,YAAAA;QAAYC,QAAAA;IAAM;IAE1C,qBACI,qBAACU,UAAI,CAACC,GAAG;QACLC,MAAK;QACLC,OAAOC,2BAAoB,CAACC,OAAO;QACnCxB,KAAKA;OACDG,UAAU,qBAAqB;QAACI,WAAAA;QAAWD,OAAAA;OAAUY,kBACrDR;kBAEJ,cAAA,qBAACe,WAAK;YAACC,KAAI;WAASvB,UAAU,sBAAsBe;sBAChD,cAAA,qBAACS,kCAAgB;gBAAChB,SAASA;gBAASiB,SAAQ;;;;AAI5D"}
1
+ {"version":3,"sources":["../../../../../src/components/Table/table-actions/TableHeaderActions.tsx"],"sourcesContent":["import {Factory, factory, Grid, GridColProps, Group, useProps} from '@mantine/core';\nimport {ReactElement, useMemo} from 'react';\n\nimport {TableComponentsOrder} from '../Table.js';\nimport {useTableContext} from '../TableContext.js';\nimport {TableActionsList} from './TableActionsList.js';\n\nexport type TableHeaderActionsStylesNames = 'headerActionsRoot' | 'headerActionsGroup';\n\nexport interface TableHeaderActionsProps extends Omit<GridColProps, 'children'> {}\n\ntype TableHeaderActionsFactory = Factory<{\n props: TableHeaderActionsProps;\n ref: HTMLDivElement;\n stylesNames: TableHeaderActionsStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<TableHeaderActionsProps> = {};\n\nexport const TableHeaderActions = factory<TableHeaderActionsFactory>(\n (props: TableHeaderActionsProps, ref): ReactElement => {\n const {store, getStyles, getRowActions} = useTableContext();\n const {style, className, classNames, styles, ...others} = useProps(\n 'PlasmaTableHeaderActions',\n defaultProps,\n props,\n );\n\n const actions = useMemo(() => {\n const selectedRows = store.getSelectedRows();\n if (selectedRows.length === 0) {\n return [];\n }\n return getRowActions(selectedRows);\n }, [store.state.rowSelection]);\n\n if (actions.length === 0) {\n return null;\n }\n\n const stylesApiProps = {classNames, styles};\n\n return (\n <Grid.Col\n span=\"content\"\n order={TableComponentsOrder.Actions}\n ref={ref}\n {...getStyles('headerActionsRoot', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Group gap=\"xs\" {...getStyles('headerActionsGroup', stylesApiProps)}>\n <TableActionsList actions={actions} variant=\"split\" />\n </Group>\n </Grid.Col>\n );\n },\n);\n"],"names":["TableHeaderActions","defaultProps","factory","props","ref","useTableContext","store","getStyles","getRowActions","useProps","style","className","classNames","styles","others","actions","useMemo","selectedRows","getSelectedRows","length","state","rowSelection","stylesApiProps","Grid","Col","span","order","TableComponentsOrder","Actions","Group","gap","TableActionsList","variant"],"mappings":";;;;+BAoBaA;;;eAAAA;;;;;;;oBApBuD;qBAChC;qBAED;4BACL;gCACC;AAa/B,IAAMC,eAAiD,CAAC;AAEjD,IAAMD,qBAAqBE,IAAAA,aAAO,EACrC,SAACC,OAAgCC;IAC7B,IAA0CC,mBAAAA,IAAAA,6BAAe,KAAlDC,QAAmCD,iBAAnCC,OAAOC,YAA4BF,iBAA5BE,WAAWC,gBAAiBH,iBAAjBG;IACzB,IAA0DC,YAAAA,IAAAA,cAAQ,EAC9D,4BACAR,cACAE,QAHGO,QAAmDD,UAAnDC,OAAOC,YAA4CF,UAA5CE,WAAWC,aAAiCH,UAAjCG,YAAYC,SAAqBJ,UAArBI,QAAWC,sCAAUL;;;;;;IAM1D,IAAMM,UAAUC,IAAAA,cAAO,EAAC;QACpB,IAAMC,eAAeX,MAAMY,eAAe;QAC1C,IAAID,aAAaE,MAAM,KAAK,GAAG;YAC3B,OAAO,EAAE;QACb;QACA,OAAOX,cAAcS;IACzB,GAAG;QAACX,MAAMc,KAAK,CAACC,YAAY;KAAC;IAE7B,IAAIN,QAAQI,MAAM,KAAK,GAAG;QACtB,OAAO;IACX;IAEA,IAAMG,iBAAiB;QAACV,YAAAA;QAAYC,QAAAA;IAAM;IAE1C,qBACI,qBAACU,UAAI,CAACC,GAAG;QACLC,MAAK;QACLC,OAAOC,2BAAoB,CAACC,OAAO;QACnCxB,KAAKA;OACDG,UAAU,qBAAqB;QAACI,WAAAA;QAAWD,OAAAA;OAAUY,kBACrDR;kBAEJ,cAAA,qBAACe,WAAK;YAACC,KAAI;WAASvB,UAAU,sBAAsBe;sBAChD,cAAA,qBAACS,kCAAgB;gBAAChB,SAASA;gBAASiB,SAAQ;;;;AAI5D"}
@@ -23,7 +23,7 @@ var TableActionsColumn = {
23
23
  meta: {
24
24
  controlColumn: true
25
25
  },
26
- header: function(param) {
26
+ header: function header(param) {
27
27
  var table = param.table;
28
28
  var _table_options_meta;
29
29
  var rowConfigurable = (_table_options_meta = table.options.meta) === null || _table_options_meta === void 0 ? void 0 : _table_options_meta.rowConfigurable;
@@ -37,7 +37,7 @@ var TableActionsColumn = {
37
37
  });
38
38
  },
39
39
  size: 84,
40
- cell: function(info) {
40
+ cell: function cell(info) {
41
41
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(ActionsMenu, {
42
42
  info: info
43
43
  });
@@ -49,7 +49,7 @@ var defaultProps = {
49
49
  height: 16
50
50
  })
51
51
  };
52
- var ActionsMenu = function(props) {
52
+ var ActionsMenu = function ActionsMenu(props) {
53
53
  var getRowActions = (0, _TableContext.useTableContext)().getRowActions;
54
54
  var _useProps = (0, _core.useProps)('PlasmaTableActionsColumn', defaultProps, props), info = _useProps.info, others = _object_without_properties._(_useProps, [
55
55
  "info"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Table/table-column/TableActionsColumn.tsx"],"sourcesContent":["import {MoreSize16Px} from '@coveord/plasma-react-icons';\nimport {useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {FunctionComponent} from 'react';\nimport {TableActionsList, TableActionsListProps} from '../table-actions/TableActionsList.js';\n\nimport {useTableContext} from '../TableContext.js';\nimport {TableColumnsSelector, TableColumnsSelectorOptions} from '../table-columns-selector/TableColumnsSelector.js';\n\nexport interface TableActionsColumnMeta {\n /**\n * When set to `true` or an options object, displays a column selector button in the actions column header.\n * Allows users to show/hide columns in the table.\n *\n * @example\n * // Simple usage\n * options={{ meta: { rowConfigurable: true } }}\n *\n * // With options\n * options={{ meta: { rowConfigurable: { maxSelectableColumns: 5 } } }}\n */\n rowConfigurable?: boolean | TableColumnsSelectorOptions;\n}\n\n/**\n * Generic column to use when your table needs actions on rows\n */\nexport const TableActionsColumn: ColumnDef<unknown> = {\n id: 'actions',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: ({table}) => {\n const rowConfigurable = (table.options.meta as TableActionsColumnMeta)?.rowConfigurable;\n if (!rowConfigurable) {\n return null;\n }\n const options = typeof rowConfigurable === 'boolean' ? {} : rowConfigurable;\n return <TableColumnsSelector table={table} options={options} />;\n },\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n cell: (info) => <ActionsMenu info={info} />,\n};\n\ninterface TableActionsColumnProps extends Omit<TableActionsListProps, 'actions'> {\n info: CellContext<unknown, unknown>;\n}\n\nconst defaultProps: Partial<TableActionsColumnProps> = {\n label: 'Actions',\n icon: <MoreSize16Px height={16} />,\n};\n\nconst ActionsMenu: FunctionComponent<TableActionsColumnProps> = (props) => {\n const {getRowActions} = useTableContext();\n\n const {info, ...others} = useProps('PlasmaTableActionsColumn', defaultProps, props);\n\n const actionsElements = getRowActions([info.row.original]);\n return <TableActionsList actions={actionsElements} variant=\"combined\" {...others} />;\n};\n"],"names":["TableActionsColumn","id","enableSorting","enableHiding","meta","controlColumn","header","table","rowConfigurable","options","TableColumnsSelector","size","cell","info","ActionsMenu","defaultProps","label","icon","MoreSize16Px","height","props","getRowActions","useTableContext","useProps","others","actionsElements","row","original","TableActionsList","actions","variant"],"mappings":";;;;+BA2BaA;;;eAAAA;;;;;;gCA3Bc;oBACJ;gCAG+B;4BAExB;oCACkC;AAoBzD,IAAMA,qBAAyC;IAClDC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ;YAAEC,cAAAA;YACmBA;QAAzB,IAAMC,mBAAmBD,sBAAAA,MAAME,OAAO,CAACL,IAAI,cAAlBG,0CAAD,AAACA,oBAA+CC,eAAe;QACvF,IAAI,CAACA,iBAAiB;YAClB,OAAO;QACX;QACA,IAAMC,UAAU,OAAOD,oBAAoB,YAAY,CAAC,IAAIA;QAC5D,qBAAO,qBAACE,0CAAoB;YAACH,OAAOA;YAAOE,SAASA;;IACxD;IACAE,MAAM;IACNC,MAAM,SAACC;6BAAS,qBAACC;YAAYD,MAAMA;;;AACvC;AAMA,IAAME,eAAiD;IACnDC,OAAO;IACPC,oBAAM,qBAACC,8BAAY;QAACC,QAAQ;;AAChC;AAEA,IAAML,cAA0D,SAACM;IAC7D,IAAM,AAACC,gBAAiBC,IAAAA,6BAAe,IAAhCD;IAEP,IAA0BE,YAAAA,IAAAA,cAAQ,EAAC,4BAA4BR,cAAcK,QAAvE,AAACP,OAAmBU,UAAnBV,MAASW,sCAAUD;QAAnBV;;IAEP,IAAMY,kBAAkBJ,cAAc;QAACR,KAAKa,GAAG,CAACC,QAAQ;KAAC;IACzD,qBAAO,qBAACC,kCAAgB;QAACC,SAASJ;QAAiBK,SAAQ;OAAeN;AAC9E"}
1
+ {"version":3,"sources":["../../../../../src/components/Table/table-column/TableActionsColumn.tsx"],"sourcesContent":["import {MoreSize16Px} from '@coveord/plasma-react-icons';\nimport {useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {FunctionComponent} from 'react';\nimport {TableActionsList, TableActionsListProps} from '../table-actions/TableActionsList.js';\n\nimport {useTableContext} from '../TableContext.js';\nimport {TableColumnsSelector, TableColumnsSelectorOptions} from '../table-columns-selector/TableColumnsSelector.js';\n\nexport interface TableActionsColumnMeta {\n /**\n * When set to `true` or an options object, displays a column selector button in the actions column header.\n * Allows users to show/hide columns in the table.\n *\n * @example\n * // Simple usage\n * options={{ meta: { rowConfigurable: true } }}\n *\n * // With options\n * options={{ meta: { rowConfigurable: { maxSelectableColumns: 5 } } }}\n */\n rowConfigurable?: boolean | TableColumnsSelectorOptions;\n}\n\n/**\n * Generic column to use when your table needs actions on rows\n */\nexport const TableActionsColumn: ColumnDef<unknown> = {\n id: 'actions',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: ({table}) => {\n const rowConfigurable = (table.options.meta as TableActionsColumnMeta)?.rowConfigurable;\n if (!rowConfigurable) {\n return null;\n }\n const options = typeof rowConfigurable === 'boolean' ? {} : rowConfigurable;\n return <TableColumnsSelector table={table} options={options} />;\n },\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n cell: (info) => <ActionsMenu info={info} />,\n};\n\ninterface TableActionsColumnProps extends Omit<TableActionsListProps, 'actions'> {\n info: CellContext<unknown, unknown>;\n}\n\nconst defaultProps: Partial<TableActionsColumnProps> = {\n label: 'Actions',\n icon: <MoreSize16Px height={16} />,\n};\n\nconst ActionsMenu: FunctionComponent<TableActionsColumnProps> = (props) => {\n const {getRowActions} = useTableContext();\n\n const {info, ...others} = useProps('PlasmaTableActionsColumn', defaultProps, props);\n\n const actionsElements = getRowActions([info.row.original]);\n return <TableActionsList actions={actionsElements} variant=\"combined\" {...others} />;\n};\n"],"names":["TableActionsColumn","id","enableSorting","enableHiding","meta","controlColumn","header","table","rowConfigurable","options","TableColumnsSelector","size","cell","info","ActionsMenu","defaultProps","label","icon","MoreSize16Px","height","props","getRowActions","useTableContext","useProps","others","actionsElements","row","original","TableActionsList","actions","variant"],"mappings":";;;;+BA2BaA;;;eAAAA;;;;;;gCA3Bc;oBACJ;gCAG+B;4BAExB;oCACkC;AAoBzD,IAAMA,qBAAyC;IAClDC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ,SAARA;YAAUC,cAAAA;YACmBA;QAAzB,IAAMC,mBAAmBD,sBAAAA,MAAME,OAAO,CAACL,IAAI,cAAlBG,0CAAD,AAACA,oBAA+CC,eAAe;QACvF,IAAI,CAACA,iBAAiB;YAClB,OAAO;QACX;QACA,IAAMC,UAAU,OAAOD,oBAAoB,YAAY,CAAC,IAAIA;QAC5D,qBAAO,qBAACE,0CAAoB;YAACH,OAAOA;YAAOE,SAASA;;IACxD;IACAE,MAAM;IACNC,MAAM,SAANA,KAAOC;6BAAS,qBAACC;YAAYD,MAAMA;;;AACvC;AAMA,IAAME,eAAiD;IACnDC,OAAO;IACPC,oBAAM,qBAACC,8BAAY;QAACC,QAAQ;;AAChC;AAEA,IAAML,cAA0D,qBAACM;IAC7D,IAAM,AAACC,gBAAiBC,IAAAA,6BAAe,IAAhCD;IAEP,IAA0BE,YAAAA,IAAAA,cAAQ,EAAC,4BAA4BR,cAAcK,QAAtEP,OAAmBU,UAAnBV,MAASW,sCAAUD;;;IAE1B,IAAME,kBAAkBJ,cAAc;QAACR,KAAKa,GAAG,CAACC,QAAQ;KAAC;IACzD,qBAAO,qBAACC,kCAAgB;QAACC,SAASJ;QAAiBK,SAAQ;OAAeN;AAC9E"}
@@ -35,15 +35,15 @@ var sharedProps = {
35
35
  size: 84
36
36
  };
37
37
  var TableCollapsibleColumn = _object_spread_props._(_object_spread._({}, sharedProps), {
38
- cell: function(info) {
38
+ cell: function cell(info) {
39
39
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(CollapsibleIcon, {
40
40
  info: info
41
41
  });
42
42
  }
43
43
  });
44
44
  var TableAccordionColumn = _object_spread_props._(_object_spread._({}, sharedProps), {
45
- cell: function(info) {
46
- var onToggle = function() {
45
+ cell: function cell(info) {
46
+ var onToggle = function onToggle() {
47
47
  // close all other rows when the current row not is expanded
48
48
  if (!info.row.getIsExpanded()) {
49
49
  info.table.toggleAllRowsExpanded(false);
@@ -78,7 +78,7 @@ var CollapsibleIcon = (0, _core.factory)(function(props, ref) {
78
78
  "styles"
79
79
  ]);
80
80
  var handler = info.row.getToggleExpandedHandler();
81
- var onClick = function(e) {
81
+ var onClick = function onClick(e) {
82
82
  e.stopPropagation();
83
83
  onToggle === null || onToggle === void 0 ? void 0 : onToggle(e);
84
84
  handler();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Table/table-column/TableCollapsibleColumn.tsx"],"sourcesContent":["import {IconChevronDown, IconChevronUp} from '@coveord/plasma-react-icons';\nimport {Factory, factory, useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {MouseEvent as ReactMouseEvent, ReactNode} from 'react';\nimport {ActionIcon, type ActionIconProps} from '../../ActionIcon/ActionIcon.js';\nimport {useTableContext} from '../TableContext.js';\n\nexport type TableCollapsibleColumnStylesNames = 'collapsibleIcon';\n\nconst sharedProps: ColumnDef<unknown> = {\n id: 'collapsible',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: '',\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n};\n\n/**\n * Generic column to use when your table needs collapsible rows\n */\nexport const TableCollapsibleColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => <CollapsibleIcon info={info} />,\n};\n\n/**\n * Generic column to use when your table needs an accordion (collapsible rows, but only one open at the time)\n */\nexport const TableAccordionColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => {\n const onToggle = () => {\n // close all other rows when the current row not is expanded\n if (!info.row.getIsExpanded()) {\n info.table.toggleAllRowsExpanded(false);\n }\n };\n\n return <CollapsibleIcon onToggle={onToggle} info={info} />;\n },\n};\n\ninterface CollapsibleIconProps extends ActionIconProps {\n info: CellContext<unknown, unknown>;\n onToggle?: (e: ReactMouseEvent<HTMLButtonElement>) => void;\n iconExpanded?: ReactNode;\n iconCollapsed?: ReactNode;\n}\n\ntype TableCollapsibleColumnFactory = Factory<{\n props: CollapsibleIconProps;\n ref: HTMLButtonElement;\n stylesNames: TableCollapsibleColumnStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CollapsibleIconProps> = {\n iconExpanded: <IconChevronUp aria-label=\"Collapse\" size={16} />,\n iconCollapsed: <IconChevronDown aria-label=\"Expand\" size={16} />,\n};\n\nconst CollapsibleIcon = factory<TableCollapsibleColumnFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {info, onToggle, iconExpanded, iconCollapsed, classNames, className, style, styles, ...others} = useProps(\n 'PlasmaTableCollapsibleColumn',\n defaultProps,\n props,\n );\n const handler = info.row.getToggleExpandedHandler();\n const onClick = (e: ReactMouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onToggle?.(e);\n handler();\n };\n return info.row.getCanExpand() ? (\n <ActionIcon.Quaternary\n ref={ref}\n onClick={onClick}\n color=\"gray\"\n radius=\"sm\"\n {...getStyles('collapsibleIcon', {className, classNames, styles, style})}\n {...others}\n >\n {info.row.getIsExpanded() ? iconExpanded : iconCollapsed}\n </ActionIcon.Quaternary>\n ) : null;\n});\n"],"names":["TableAccordionColumn","TableCollapsibleColumn","sharedProps","id","enableSorting","enableHiding","meta","controlColumn","header","size","cell","info","CollapsibleIcon","onToggle","row","getIsExpanded","table","toggleAllRowsExpanded","defaultProps","iconExpanded","IconChevronUp","aria-label","iconCollapsed","IconChevronDown","factory","props","ref","getStyles","useTableContext","useProps","classNames","className","style","styles","others","handler","getToggleExpandedHandler","onClick","e","stopPropagation","getCanExpand","ActionIcon","Quaternary","color","radius"],"mappings":";;;;;;;;;;;QA+BaA;eAAAA;;QARAC;eAAAA;;;;;;;gCAvBgC;oBACJ;0BAGM;4BACjB;AAI9B,IAAMC,cAAkC;IACpCC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ;IACRC,MAAM;AACV;AAKO,IAAMR,yBAA6C,4CACnDC;IACHQ,MAAM,SAACC;6BAAS,qBAACC;YAAgBD,MAAMA;;;;AAMpC,IAAMX,uBAA2C,4CACjDE;IACHQ,MAAM,SAACC;QACH,IAAME,WAAW;YACb,4DAA4D;YAC5D,IAAI,CAACF,KAAKG,GAAG,CAACC,aAAa,IAAI;gBAC3BJ,KAAKK,KAAK,CAACC,qBAAqB,CAAC;YACrC;QACJ;QAEA,qBAAO,qBAACL;YAAgBC,UAAUA;YAAUF,MAAMA;;IACtD;;AAiBJ,IAAMO,eAA8C;IAChDC,4BAAc,qBAACC,+BAAa;QAACC,cAAW;QAAWZ,MAAM;;IACzDa,6BAAe,qBAACC,iCAAe;QAACF,cAAW;QAASZ,MAAM;;AAC9D;AAEA,IAAMG,kBAAkBY,IAAAA,aAAO,EAAgC,SAACC,OAAOC;IACnE,IAAM,AAACC,YAAaC,IAAAA,6BAAe,IAA5BD;IACP,IAAuGE,YAAAA,IAAAA,cAAQ,EAC3G,gCACAX,cACAO,QAHGd,OAAgGkB,UAAhGlB,MAAME,WAA0FgB,UAA1FhB,UAAUM,eAAgFU,UAAhFV,cAAcG,gBAAkEO,UAAlEP,eAAeQ,aAAmDD,UAAnDC,YAAYC,YAAuCF,UAAvCE,WAAWC,QAA4BH,UAA5BG,OAAOC,SAAqBJ,UAArBI,QAAWC,sCAAUL;QAAhGlB;QAAME;QAAUM;QAAcG;QAAeQ;QAAYC;QAAWC;QAAOC;;IAKlF,IAAME,UAAUxB,KAAKG,GAAG,CAACsB,wBAAwB;IACjD,IAAMC,UAAU,SAACC;QACbA,EAAEC,eAAe;QACjB1B,qBAAAA,+BAAAA,SAAWyB;QACXH;IACJ;IACA,OAAOxB,KAAKG,GAAG,CAAC0B,YAAY,mBACxB,qBAACC,sBAAU,CAACC,UAAU;QAClBhB,KAAKA;QACLW,SAASA;QACTM,OAAM;QACNC,QAAO;OACHjB,UAAU,mBAAmB;QAACI,WAAAA;QAAWD,YAAAA;QAAYG,QAAAA;QAAQD,OAAAA;IAAK,IAClEE;kBAEHvB,KAAKG,GAAG,CAACC,aAAa,KAAKI,eAAeG;UAE/C;AACR"}
1
+ {"version":3,"sources":["../../../../../src/components/Table/table-column/TableCollapsibleColumn.tsx"],"sourcesContent":["import {IconChevronDown, IconChevronUp} from '@coveord/plasma-react-icons';\nimport {Factory, factory, useProps} from '@mantine/core';\nimport {CellContext, ColumnDef} from '@tanstack/table-core';\nimport {MouseEvent as ReactMouseEvent, ReactNode} from 'react';\nimport {ActionIcon, type ActionIconProps} from '../../ActionIcon/ActionIcon.js';\nimport {useTableContext} from '../TableContext.js';\n\nexport type TableCollapsibleColumnStylesNames = 'collapsibleIcon';\n\nconst sharedProps: ColumnDef<unknown> = {\n id: 'collapsible',\n enableSorting: false,\n enableHiding: false,\n meta: {\n controlColumn: true,\n },\n header: '',\n size: 84, // 16px padding left + 28px ActionIcon + 40px padding right\n};\n\n/**\n * Generic column to use when your table needs collapsible rows\n */\nexport const TableCollapsibleColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => <CollapsibleIcon info={info} />,\n};\n\n/**\n * Generic column to use when your table needs an accordion (collapsible rows, but only one open at the time)\n */\nexport const TableAccordionColumn: ColumnDef<unknown> = {\n ...sharedProps,\n cell: (info) => {\n const onToggle = () => {\n // close all other rows when the current row not is expanded\n if (!info.row.getIsExpanded()) {\n info.table.toggleAllRowsExpanded(false);\n }\n };\n\n return <CollapsibleIcon onToggle={onToggle} info={info} />;\n },\n};\n\ninterface CollapsibleIconProps extends ActionIconProps {\n info: CellContext<unknown, unknown>;\n onToggle?: (e: ReactMouseEvent<HTMLButtonElement>) => void;\n iconExpanded?: ReactNode;\n iconCollapsed?: ReactNode;\n}\n\ntype TableCollapsibleColumnFactory = Factory<{\n props: CollapsibleIconProps;\n ref: HTMLButtonElement;\n stylesNames: TableCollapsibleColumnStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<CollapsibleIconProps> = {\n iconExpanded: <IconChevronUp aria-label=\"Collapse\" size={16} />,\n iconCollapsed: <IconChevronDown aria-label=\"Expand\" size={16} />,\n};\n\nconst CollapsibleIcon = factory<TableCollapsibleColumnFactory>((props, ref) => {\n const {getStyles} = useTableContext();\n const {info, onToggle, iconExpanded, iconCollapsed, classNames, className, style, styles, ...others} = useProps(\n 'PlasmaTableCollapsibleColumn',\n defaultProps,\n props,\n );\n const handler = info.row.getToggleExpandedHandler();\n const onClick = (e: ReactMouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onToggle?.(e);\n handler();\n };\n return info.row.getCanExpand() ? (\n <ActionIcon.Quaternary\n ref={ref}\n onClick={onClick}\n color=\"gray\"\n radius=\"sm\"\n {...getStyles('collapsibleIcon', {className, classNames, styles, style})}\n {...others}\n >\n {info.row.getIsExpanded() ? iconExpanded : iconCollapsed}\n </ActionIcon.Quaternary>\n ) : null;\n});\n"],"names":["TableAccordionColumn","TableCollapsibleColumn","sharedProps","id","enableSorting","enableHiding","meta","controlColumn","header","size","cell","info","CollapsibleIcon","onToggle","row","getIsExpanded","table","toggleAllRowsExpanded","defaultProps","iconExpanded","IconChevronUp","aria-label","iconCollapsed","IconChevronDown","factory","props","ref","getStyles","useTableContext","useProps","classNames","className","style","styles","others","handler","getToggleExpandedHandler","onClick","e","stopPropagation","getCanExpand","ActionIcon","Quaternary","color","radius"],"mappings":";;;;;;;;;;;QA+BaA;eAAAA;;QARAC;eAAAA;;;;;;;gCAvBgC;oBACJ;0BAGM;4BACjB;AAI9B,IAAMC,cAAkC;IACpCC,IAAI;IACJC,eAAe;IACfC,cAAc;IACdC,MAAM;QACFC,eAAe;IACnB;IACAC,QAAQ;IACRC,MAAM;AACV;AAKO,IAAMR,yBAA6C,4CACnDC;IACHQ,MAAM,SAANA,KAAOC;6BAAS,qBAACC;YAAgBD,MAAMA;;;;AAMpC,IAAMX,uBAA2C,4CACjDE;IACHQ,MAAM,SAANA,KAAOC;QACH,IAAME,WAAW;YACb,4DAA4D;YAC5D,IAAI,CAACF,KAAKG,GAAG,CAACC,aAAa,IAAI;gBAC3BJ,KAAKK,KAAK,CAACC,qBAAqB,CAAC;YACrC;QACJ;QAEA,qBAAO,qBAACL;YAAgBC,UAAUA;YAAUF,MAAMA;;IACtD;;AAiBJ,IAAMO,eAA8C;IAChDC,4BAAc,qBAACC,+BAAa;QAACC,cAAW;QAAWZ,MAAM;;IACzDa,6BAAe,qBAACC,iCAAe;QAACF,cAAW;QAASZ,MAAM;;AAC9D;AAEA,IAAMG,kBAAkBY,IAAAA,aAAO,EAAgC,SAACC,OAAOC;IACnE,IAAM,AAACC,YAAaC,IAAAA,6BAAe,IAA5BD;IACP,IAAuGE,YAAAA,IAAAA,cAAQ,EAC3G,gCACAX,cACAO,QAHGd,OAAgGkB,UAAhGlB,MAAME,WAA0FgB,UAA1FhB,UAAUM,eAAgFU,UAAhFV,cAAcG,gBAAkEO,UAAlEP,eAAeQ,aAAmDD,UAAnDC,YAAYC,YAAuCF,UAAvCE,WAAWC,QAA4BH,UAA5BG,OAAOC,SAAqBJ,UAArBI,QAAWC,sCAAUL;;;;;;;;;;IAKvG,IAAMM,UAAUxB,KAAKG,GAAG,CAACsB,wBAAwB;IACjD,IAAMC,UAAU,iBAACC;QACbA,EAAEC,eAAe;QACjB1B,qBAAAA,+BAAAA,SAAWyB;QACXH;IACJ;IACA,OAAOxB,KAAKG,GAAG,CAAC0B,YAAY,mBACxB,qBAACC,sBAAU,CAACC,UAAU;QAClBhB,KAAKA;QACLW,SAASA;QACTM,OAAM;QACNC,QAAO;OACHjB,UAAU,mBAAmB;QAACI,WAAAA;QAAWD,YAAAA;QAAYG,QAAAA;QAAQD,OAAAA;IAAK,IAClEE;kBAEHvB,KAAKG,GAAG,CAACC,aAAa,KAAKI,eAAeG;UAE/C;AACR"}
@@ -17,7 +17,7 @@ var TableSelectableColumn = {
17
17
  meta: {
18
18
  controlColumn: true
19
19
  },
20
- header: function(param) {
20
+ header: function header(param) {
21
21
  var table = param.table;
22
22
  var label = table.getIsAllRowsSelected() ? 'Unselect all from this page' : 'Select all from this page';
23
23
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Tooltip, {
@@ -31,7 +31,7 @@ var TableSelectableColumn = {
31
31
  })
32
32
  });
33
33
  },
34
- cell: function(param) {
34
+ cell: function cell(param) {
35
35
  var row = param.row;
36
36
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Checkbox, {
37
37
  checked: row.getIsSelected(),
@@ -39,7 +39,7 @@ var TableSelectableColumn = {
39
39
  onChange: row.getToggleSelectedHandler(),
40
40
  flex: 1,
41
41
  "aria-label": "Select row",
42
- onDoubleClick: function(event) {
42
+ onDoubleClick: function onDoubleClick(event) {
43
43
  event.preventDefault();
44
44
  event.stopPropagation();
45
45
  }