@hitachivantara/uikit-react-core 5.82.4 → 5.83.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/cjs/BaseInput/BaseInput.cjs +4 -7
  2. package/dist/cjs/ButtonBase/ButtonBase.styles.cjs +6 -5
  3. package/dist/cjs/Calendar/Calendar.cjs +2 -2
  4. package/dist/cjs/Calendar/CalendarHeader/CalendarHeader.cjs +12 -28
  5. package/dist/cjs/Calendar/SingleCalendar/SingleCalendar.cjs +2 -1
  6. package/dist/cjs/Calendar/utils.cjs +53 -21
  7. package/dist/cjs/CheckBoxGroup/CheckBoxGroup.cjs +1 -0
  8. package/dist/cjs/CheckBoxGroup/CheckBoxGroup.styles.cjs +1 -1
  9. package/dist/cjs/ColorPicker/ColorPicker.cjs +12 -9
  10. package/dist/cjs/ColorPicker/ColorPicker.styles.cjs +15 -12
  11. package/dist/cjs/ColorPicker/Fields/Fields.cjs +6 -3
  12. package/dist/cjs/DatePicker/DatePicker.cjs +2 -2
  13. package/dist/cjs/DatePicker/DatePicker.styles.cjs +1 -4
  14. package/dist/cjs/DatePicker/utils.cjs +2 -2
  15. package/dist/cjs/Dropdown/Dropdown.cjs +1 -0
  16. package/dist/cjs/Dropdown/Dropdown.styles.cjs +1 -1
  17. package/dist/cjs/FileUploader/DropZone/DropZone.cjs +1 -0
  18. package/dist/cjs/FileUploader/DropZone/DropZone.styles.cjs +1 -3
  19. package/dist/cjs/FilterGroup/FilterGroup.cjs +1 -0
  20. package/dist/cjs/FilterGroup/FilterGroup.styles.cjs +1 -4
  21. package/dist/cjs/FormElement/Label/Label.cjs +3 -2
  22. package/dist/cjs/FormElement/Label/Label.styles.cjs +1 -1
  23. package/dist/cjs/Input/Input.cjs +10 -8
  24. package/dist/cjs/Input/Input.styles.cjs +1 -1
  25. package/dist/cjs/RadioGroup/RadioGroup.cjs +1 -0
  26. package/dist/cjs/RadioGroup/RadioGroup.styles.cjs +1 -1
  27. package/dist/cjs/Select/Option.cjs +1 -2
  28. package/dist/cjs/Select/Select.cjs +7 -1
  29. package/dist/cjs/Select/Select.styles.cjs +1 -4
  30. package/dist/cjs/SelectionList/SelectionList.cjs +1 -0
  31. package/dist/cjs/SelectionList/SelectionList.styles.cjs +1 -1
  32. package/dist/cjs/Slider/utils.cjs +3 -3
  33. package/dist/cjs/Switch/Switch.cjs +1 -0
  34. package/dist/cjs/Switch/Switch.styles.cjs +1 -1
  35. package/dist/cjs/Table/TableRow/TableRow.styles.cjs +20 -5
  36. package/dist/cjs/Table/hooks/{useBulkActions.cjs → useHvBulkActions.cjs} +6 -7
  37. package/dist/cjs/Table/hooks/{useFilters.cjs → useHvFilters.cjs} +2 -2
  38. package/dist/cjs/Table/hooks/{useGlobalFilter.cjs → useHvGlobalFilter.cjs} +2 -2
  39. package/dist/cjs/Table/hooks/{useHeaderGroups.cjs → useHvHeaderGroups.cjs} +4 -4
  40. package/dist/cjs/Table/hooks/{usePagination.cjs → useHvPagination.cjs} +4 -4
  41. package/dist/cjs/Table/hooks/{useResizeColumns.cjs → useHvResizeColumns.cjs} +4 -4
  42. package/dist/cjs/Table/hooks/{useRowExpand.cjs → useHvRowExpand.cjs} +6 -5
  43. package/dist/cjs/Table/hooks/{useRowSelection.cjs → useHvRowSelection.cjs} +4 -8
  44. package/dist/cjs/Table/hooks/{useRowState.cjs → useHvRowState.cjs} +2 -2
  45. package/dist/cjs/Table/hooks/{useSortBy.cjs → useHvSortBy.cjs} +4 -4
  46. package/dist/cjs/Table/hooks/{useSticky.cjs → useHvSticky.cjs} +4 -6
  47. package/dist/cjs/Table/hooks/{useTable.cjs → useHvTable.cjs} +6 -4
  48. package/dist/cjs/Table/hooks/{useTableStyles.cjs → useHvTableStyles.cjs} +4 -5
  49. package/dist/cjs/Table/renderers/{DateColumnCell/DateColumnCell.cjs → DateColumnCell.cjs} +1 -1
  50. package/dist/cjs/Table/renderers/DefaultCell.cjs +21 -0
  51. package/dist/cjs/Table/renderers/{DropdownColumnCell/DropdownColumnCell.cjs → DropdownColumnCell.cjs} +1 -1
  52. package/dist/cjs/Table/renderers/{ProgressColumnCell/ProgressColumnCell.cjs → ProgressColumnCell.cjs} +20 -2
  53. package/dist/cjs/Table/renderers/{SwitchColumnCell/SwitchColumnCell.cjs → SwitchColumnCell.cjs} +13 -4
  54. package/dist/cjs/Table/renderers/renderers.cjs +21 -8
  55. package/dist/cjs/Tag/Tag.cjs +67 -49
  56. package/dist/cjs/Tag/Tag.styles.cjs +50 -64
  57. package/dist/cjs/TagsInput/TagsInput.cjs +2 -4
  58. package/dist/cjs/TagsInput/TagsInput.styles.cjs +2 -5
  59. package/dist/cjs/TextArea/TextArea.cjs +5 -4
  60. package/dist/cjs/TextArea/TextArea.styles.cjs +1 -1
  61. package/dist/cjs/TimeAgo/TimeAgo.cjs +2 -1
  62. package/dist/cjs/TimePicker/TimePicker.cjs +3 -1
  63. package/dist/cjs/TimePicker/TimePicker.styles.cjs +1 -4
  64. package/dist/cjs/index.cjs +40 -50
  65. package/dist/cjs/utils/keyboardUtils.cjs +4 -0
  66. package/dist/esm/BaseInput/BaseInput.js +3 -6
  67. package/dist/esm/BaseInput/BaseInput.js.map +1 -1
  68. package/dist/esm/ButtonBase/ButtonBase.styles.js +6 -5
  69. package/dist/esm/ButtonBase/ButtonBase.styles.js.map +1 -1
  70. package/dist/esm/Calendar/Calendar.js +3 -3
  71. package/dist/esm/Calendar/Calendar.js.map +1 -1
  72. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js +13 -24
  73. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  74. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js +3 -2
  75. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  76. package/dist/esm/Calendar/utils.js +54 -20
  77. package/dist/esm/Calendar/utils.js.map +1 -1
  78. package/dist/esm/CheckBoxGroup/CheckBoxGroup.js +1 -0
  79. package/dist/esm/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  80. package/dist/esm/CheckBoxGroup/CheckBoxGroup.styles.js +1 -1
  81. package/dist/esm/CheckBoxGroup/CheckBoxGroup.styles.js.map +1 -1
  82. package/dist/esm/ColorPicker/ColorPicker.js +13 -10
  83. package/dist/esm/ColorPicker/ColorPicker.js.map +1 -1
  84. package/dist/esm/ColorPicker/ColorPicker.styles.js +15 -12
  85. package/dist/esm/ColorPicker/ColorPicker.styles.js.map +1 -1
  86. package/dist/esm/ColorPicker/Fields/Fields.js +6 -3
  87. package/dist/esm/ColorPicker/Fields/Fields.js.map +1 -1
  88. package/dist/esm/Controls/Controls.js.map +1 -1
  89. package/dist/esm/DatePicker/DatePicker.js +3 -3
  90. package/dist/esm/DatePicker/DatePicker.js.map +1 -1
  91. package/dist/esm/DatePicker/DatePicker.styles.js +1 -4
  92. package/dist/esm/DatePicker/DatePicker.styles.js.map +1 -1
  93. package/dist/esm/DatePicker/utils.js +2 -2
  94. package/dist/esm/DatePicker/utils.js.map +1 -1
  95. package/dist/esm/Dropdown/Dropdown.js +1 -0
  96. package/dist/esm/Dropdown/Dropdown.js.map +1 -1
  97. package/dist/esm/Dropdown/Dropdown.styles.js +1 -1
  98. package/dist/esm/Dropdown/Dropdown.styles.js.map +1 -1
  99. package/dist/esm/FileUploader/DropZone/DropZone.js +1 -0
  100. package/dist/esm/FileUploader/DropZone/DropZone.js.map +1 -1
  101. package/dist/esm/FileUploader/DropZone/DropZone.styles.js +1 -3
  102. package/dist/esm/FileUploader/DropZone/DropZone.styles.js.map +1 -1
  103. package/dist/esm/FilterGroup/FilterGroup.js +1 -0
  104. package/dist/esm/FilterGroup/FilterGroup.js.map +1 -1
  105. package/dist/esm/FilterGroup/FilterGroup.styles.js +1 -4
  106. package/dist/esm/FilterGroup/FilterGroup.styles.js.map +1 -1
  107. package/dist/esm/FormElement/Label/Label.js +3 -2
  108. package/dist/esm/FormElement/Label/Label.js.map +1 -1
  109. package/dist/esm/FormElement/Label/Label.styles.js +1 -1
  110. package/dist/esm/FormElement/Label/Label.styles.js.map +1 -1
  111. package/dist/esm/Input/Input.js +11 -9
  112. package/dist/esm/Input/Input.js.map +1 -1
  113. package/dist/esm/Input/Input.styles.js +1 -1
  114. package/dist/esm/Input/Input.styles.js.map +1 -1
  115. package/dist/esm/RadioGroup/RadioGroup.js +1 -0
  116. package/dist/esm/RadioGroup/RadioGroup.js.map +1 -1
  117. package/dist/esm/RadioGroup/RadioGroup.styles.js +1 -1
  118. package/dist/esm/RadioGroup/RadioGroup.styles.js.map +1 -1
  119. package/dist/esm/Select/Option.js +1 -2
  120. package/dist/esm/Select/Option.js.map +1 -1
  121. package/dist/esm/Select/Select.js +7 -1
  122. package/dist/esm/Select/Select.js.map +1 -1
  123. package/dist/esm/Select/Select.styles.js +1 -4
  124. package/dist/esm/Select/Select.styles.js.map +1 -1
  125. package/dist/esm/SelectionList/SelectionList.js +1 -0
  126. package/dist/esm/SelectionList/SelectionList.js.map +1 -1
  127. package/dist/esm/SelectionList/SelectionList.styles.js +1 -1
  128. package/dist/esm/SelectionList/SelectionList.styles.js.map +1 -1
  129. package/dist/esm/Slider/utils.js +3 -3
  130. package/dist/esm/Slider/utils.js.map +1 -1
  131. package/dist/esm/Switch/Switch.js +1 -0
  132. package/dist/esm/Switch/Switch.js.map +1 -1
  133. package/dist/esm/Switch/Switch.styles.js +1 -1
  134. package/dist/esm/Switch/Switch.styles.js.map +1 -1
  135. package/dist/esm/Table/TableRow/TableRow.styles.js +16 -1
  136. package/dist/esm/Table/TableRow/TableRow.styles.js.map +1 -1
  137. package/dist/esm/Table/hooks/{useBulkActions.js → useHvBulkActions.js} +5 -6
  138. package/dist/esm/Table/hooks/useHvBulkActions.js.map +1 -0
  139. package/dist/esm/Table/hooks/{useFilters.js → useHvFilters.js} +1 -1
  140. package/dist/esm/Table/hooks/useHvFilters.js.map +1 -0
  141. package/dist/esm/Table/hooks/{useGlobalFilter.js → useHvGlobalFilter.js} +1 -1
  142. package/dist/esm/Table/hooks/useHvGlobalFilter.js.map +1 -0
  143. package/dist/esm/Table/hooks/{useHeaderGroups.js → useHvHeaderGroups.js} +3 -3
  144. package/dist/esm/Table/hooks/useHvHeaderGroups.js.map +1 -0
  145. package/dist/esm/Table/hooks/{usePagination.js → useHvPagination.js} +4 -4
  146. package/dist/esm/Table/hooks/useHvPagination.js.map +1 -0
  147. package/dist/esm/Table/hooks/{useResizeColumns.js → useHvResizeColumns.js} +3 -3
  148. package/dist/esm/Table/hooks/useHvResizeColumns.js.map +1 -0
  149. package/dist/esm/Table/hooks/{useRowExpand.js → useHvRowExpand.js} +5 -4
  150. package/dist/esm/Table/hooks/useHvRowExpand.js.map +1 -0
  151. package/dist/esm/Table/hooks/{useRowSelection.js → useHvRowSelection.js} +3 -7
  152. package/dist/esm/Table/hooks/useHvRowSelection.js.map +1 -0
  153. package/dist/esm/Table/hooks/{useRowState.js → useHvRowState.js} +1 -1
  154. package/dist/esm/Table/hooks/useHvRowState.js.map +1 -0
  155. package/dist/esm/Table/hooks/{useSortBy.js → useHvSortBy.js} +3 -3
  156. package/dist/esm/Table/hooks/useHvSortBy.js.map +1 -0
  157. package/dist/esm/Table/hooks/{useSticky.js → useHvSticky.js} +3 -5
  158. package/dist/esm/Table/hooks/useHvSticky.js.map +1 -0
  159. package/dist/esm/Table/hooks/{useTable.js → useHvTable.js} +5 -3
  160. package/dist/esm/Table/hooks/useHvTable.js.map +1 -0
  161. package/dist/esm/Table/hooks/{useTableStyles.js → useHvTableStyles.js} +3 -4
  162. package/dist/esm/Table/hooks/useHvTableStyles.js.map +1 -0
  163. package/dist/esm/Table/renderers/{DateColumnCell/DateColumnCell.js → DateColumnCell.js} +1 -1
  164. package/dist/esm/Table/renderers/DateColumnCell.js.map +1 -0
  165. package/dist/esm/Table/renderers/DefaultCell.js +21 -0
  166. package/dist/esm/Table/renderers/DefaultCell.js.map +1 -0
  167. package/dist/esm/Table/renderers/{DropdownColumnCell/DropdownColumnCell.js → DropdownColumnCell.js} +1 -1
  168. package/dist/esm/Table/renderers/DropdownColumnCell.js.map +1 -0
  169. package/dist/esm/Table/renderers/{ProgressColumnCell/ProgressColumnCell.js → ProgressColumnCell.js} +19 -1
  170. package/dist/esm/Table/renderers/ProgressColumnCell.js.map +1 -0
  171. package/dist/esm/Table/renderers/{SwitchColumnCell/SwitchColumnCell.js → SwitchColumnCell.js} +12 -3
  172. package/dist/esm/Table/renderers/SwitchColumnCell.js.map +1 -0
  173. package/dist/esm/Table/renderers/renderers.js +18 -5
  174. package/dist/esm/Table/renderers/renderers.js.map +1 -1
  175. package/dist/esm/Tag/Tag.js +71 -51
  176. package/dist/esm/Tag/Tag.js.map +1 -1
  177. package/dist/esm/Tag/Tag.styles.js +50 -64
  178. package/dist/esm/Tag/Tag.styles.js.map +1 -1
  179. package/dist/esm/TagsInput/TagsInput.js +2 -4
  180. package/dist/esm/TagsInput/TagsInput.js.map +1 -1
  181. package/dist/esm/TagsInput/TagsInput.styles.js +2 -5
  182. package/dist/esm/TagsInput/TagsInput.styles.js.map +1 -1
  183. package/dist/esm/TextArea/TextArea.js +5 -4
  184. package/dist/esm/TextArea/TextArea.js.map +1 -1
  185. package/dist/esm/TextArea/TextArea.styles.js +1 -1
  186. package/dist/esm/TextArea/TextArea.styles.js.map +1 -1
  187. package/dist/esm/TimeAgo/TimeAgo.js +2 -1
  188. package/dist/esm/TimeAgo/TimeAgo.js.map +1 -1
  189. package/dist/esm/TimePicker/TimePicker.js +3 -1
  190. package/dist/esm/TimePicker/TimePicker.js.map +1 -1
  191. package/dist/esm/TimePicker/TimePicker.styles.js +1 -4
  192. package/dist/esm/TimePicker/TimePicker.styles.js.map +1 -1
  193. package/dist/esm/index.js +34 -44
  194. package/dist/esm/index.js.map +1 -1
  195. package/dist/esm/utils/keyboardUtils.js +4 -0
  196. package/dist/esm/utils/keyboardUtils.js.map +1 -1
  197. package/dist/types/index.d.ts +369 -395
  198. package/package.json +6 -6
  199. package/dist/cjs/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.cjs +0 -26
  200. package/dist/cjs/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.cjs +0 -21
  201. package/dist/cjs/Table/utils/fallbacks.cjs +0 -16
  202. package/dist/cjs/Table/utils/utils.cjs +0 -19
  203. package/dist/esm/Table/hooks/useBulkActions.js.map +0 -1
  204. package/dist/esm/Table/hooks/useFilters.js.map +0 -1
  205. package/dist/esm/Table/hooks/useGlobalFilter.js.map +0 -1
  206. package/dist/esm/Table/hooks/useHeaderGroups.js.map +0 -1
  207. package/dist/esm/Table/hooks/usePagination.js.map +0 -1
  208. package/dist/esm/Table/hooks/useResizeColumns.js.map +0 -1
  209. package/dist/esm/Table/hooks/useRowExpand.js.map +0 -1
  210. package/dist/esm/Table/hooks/useRowSelection.js.map +0 -1
  211. package/dist/esm/Table/hooks/useRowState.js.map +0 -1
  212. package/dist/esm/Table/hooks/useSortBy.js.map +0 -1
  213. package/dist/esm/Table/hooks/useSticky.js.map +0 -1
  214. package/dist/esm/Table/hooks/useTable.js.map +0 -1
  215. package/dist/esm/Table/hooks/useTableStyles.js.map +0 -1
  216. package/dist/esm/Table/renderers/DateColumnCell/DateColumnCell.js.map +0 -1
  217. package/dist/esm/Table/renderers/DropdownColumnCell/DropdownColumnCell.js.map +0 -1
  218. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.js.map +0 -1
  219. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.js +0 -26
  220. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.js.map +0 -1
  221. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +0 -1
  222. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.js +0 -21
  223. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.js.map +0 -1
  224. package/dist/esm/Table/utils/fallbacks.js +0 -16
  225. package/dist/esm/Table/utils/fallbacks.js.map +0 -1
  226. package/dist/esm/Table/utils/utils.js +0 -19
  227. package/dist/esm/Table/utils/utils.js.map +0 -1
@@ -423,7 +423,7 @@ function prepareRow(row, { instance }) {
423
423
  row.toggleRowLockedSelection = (set) => instance.toggleRowLockedSelection(row.id, set);
424
424
  row.isSelectionLocked = instance.state?.lockedSelectionRowIds?.[row.id] || false;
425
425
  }
426
- const useRowSelection = (hooks) => {
426
+ const useHvRowSelection = (hooks) => {
427
427
  hooks.visibleColumns.push(visibleColumnsHook);
428
428
  hooks.getRowProps.push(getRowPropsHook);
429
429
  hooks.getHeaderProps.push(getHeaderPropsHook);
@@ -436,14 +436,10 @@ const useRowSelection = (hooks) => {
436
436
  hooks.useInstance.push(useInstance);
437
437
  hooks.prepareRow.push(prepareRow);
438
438
  };
439
- useRowSelection.pluginName = "useHvRowSelection";
439
+ useHvRowSelection.pluginName = "useHvRowSelection";
440
440
  export {
441
- CellWithCheckBox,
442
- useRowSelection as default,
443
441
  defaultGetToggleAllPageRowsSelectedProps,
444
442
  defaultGetToggleAllRowsSelectedProps,
445
443
  defaultGetToggleRowSelectedProps,
446
- prepareRow,
447
- reducer,
448
- useInstance
444
+ useHvRowSelection
449
445
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHvRowSelection.js","sources":["../../../../src/Table/hooks/useHvRowSelection.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport {\n actions,\n ensurePluginOrder,\n Hooks,\n IdType,\n makePropGetter,\n PropGetter,\n Row,\n useGetLatest,\n useMountedLayoutEffect,\n} from \"react-table\";\n\nimport { HvCheckBox } from \"../../CheckBox\";\nimport { useLabels } from \"../../hooks/useLabels\";\n\n// #region ##### TYPES #####\n\n// getRowProps:\nexport interface UseHvRowSelectionTableRowProps {\n selected?: boolean;\n}\n\n// getRowProps:\nexport interface UseHvRowSelectionTableColumnProps {\n \"aria-hidden\"?: boolean;\n}\n\nexport interface UseHvRowSelectionRowCheckboxProps {\n onChange?: (e: React.ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface UseHvRowSelectionBulkCheckboxProps {\n onChange?: (e: React.ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n indeterminate?: boolean;\n}\n\nexport type UseHvRowSelectionTableOptions = Partial<{\n autoResetSelectedRows: boolean;\n autoResetLockedSelectionRows: boolean;\n selectSubRows: boolean;\n manualRowSelectedKey: string;\n applyToggleAllRowsSelectedToPrefilteredRows: boolean;\n}>;\n\nexport interface UseHvRowSelectionHooks<D extends object> {\n getToggleRowSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionRowCheckboxProps>\n >;\n getToggleAllRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n getToggleAllPageRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n}\n\nexport interface UseHvRowSelectionState<D extends object> {\n selectedRowIds: Record<IdType<D>, boolean>;\n lockedSelectionRowIds: Record<IdType<D>, boolean>;\n}\n\nexport interface UseHvRowSelectionTableInstance<D extends object> {\n toggleRowSelected: (rowId: IdType<D>, set?: boolean) => void;\n toggleAllRowsSelected: (value?: boolean) => void;\n toggleAllPageRowsSelected: (value?: boolean) => void;\n getToggleAllRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>,\n ) => UseHvRowSelectionBulkCheckboxProps;\n getToggleAllPageRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>,\n ) => UseHvRowSelectionBulkCheckboxProps;\n\n isNoRowsSelected: boolean;\n isNoPageRowsSelected: boolean;\n isAllRowsSelected: boolean;\n isAllPageRowsSelected: boolean;\n isAllSelectableRowsSelected: boolean;\n isAllSelectablePageRowsSelected: boolean;\n isAllSelectableRowsUnselected: boolean;\n isAllSelectablePageRowsUnselected: boolean;\n\n selectedFlatRows: Array<Row<D>>;\n}\n\nexport interface UseHvRowSelectionRowInstance {\n isSelected: boolean;\n isSomeSelected: boolean;\n isSelectionLocked: boolean;\n toggleRowLockedSelection: (set?: boolean) => void;\n toggleRowSelected: (set?: boolean) => void;\n getToggleRowSelectedProps: (\n props?: Partial<UseHvRowSelectionRowCheckboxProps>,\n ) => UseHvRowSelectionRowCheckboxProps;\n}\n\nexport type UseRowSelectionProps = (<\n D extends object = Record<string, unknown>,\n>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// Actions\nactions.resetSelectedRows = \"resetSelectedRows\";\nactions.toggleAllRowsSelected = \"toggleAllRowsSelected\";\nactions.toggleRowSelected = \"toggleRowSelected\";\nactions.toggleAllPageRowsSelected = \"toggleAllPageRowsSelected\";\n\nactions.resetLockedSelectionRows = \"resetLockedSelectionRows\";\nactions.toggleRowLockedSelection = \"toggleRowLockedSelection\";\n\nconst DEFAULT_LABELS = {\n selectRowCheckBoxAriaLabel: \"Select this row\",\n};\n\nconst hideHeaderVariants = [\"checkbox\", \"actions\"];\n\nconst CellWithCheckBox = ({ row, labels: labelsProp }: any) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const { onChange, checked, disabled, indeterminate } =\n row.getToggleRowSelectedProps();\n\n return (\n <HvCheckBox\n onChange={onChange}\n checked={checked}\n disabled={disabled}\n indeterminate={indeterminate}\n aria-label={labels.selectRowCheckBoxAriaLabel}\n />\n );\n};\n\nconst visibleColumnsHook = (columns: any) => {\n const selectionColumn = {\n id: \"_hv_selection\",\n variant: \"checkbox\",\n\n width: 32,\n\n // this will only work when using useHvTableSticky\n // but ensures it stays left of any sticky column\n sticky: \"left\",\n\n Cell: CellWithCheckBox,\n };\n\n return [selectionColumn, ...columns];\n};\n\nconst getHeaderPropsHook = (props: any, { column }: any) => {\n const nextProps: UseHvRowSelectionTableColumnProps = {};\n\n if (hideHeaderVariants.includes(column.variant)) {\n nextProps[\"aria-hidden\"] = true;\n }\n return [props, nextProps];\n};\n\nconst getRowPropsHook = (props: any, { row }: any) => {\n const nextProps: UseHvRowSelectionTableRowProps = {\n selected: row.isSelected,\n };\n\n return [props, nextProps];\n};\n\nexport const defaultGetToggleRowSelectedProps = (props: any, meta: any) => {\n const { instance, row } = meta;\n const { manualRowSelectedKey = \"isSelected\" } = instance;\n let checked = false;\n\n if (row.original?.[manualRowSelectedKey]) {\n checked = true;\n } else {\n checked = row.isSelected;\n }\n\n return [\n props,\n {\n onChange: (e: any, check: any) => {\n row.toggleRowSelected(check ?? e?.target?.checked);\n },\n disabled: row.isSelectionLocked,\n checked,\n indeterminate: row.isSomeSelected,\n },\n ];\n};\n\nexport const defaultGetToggleAllRowsSelectedProps = (\n props: any,\n { instance }: any,\n) => [\n props,\n {\n onChange: (e: any) => {\n instance.toggleAllRowsSelected(e.target.checked);\n },\n checked: instance.isAllRowsSelected,\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length,\n ),\n },\n];\n\nexport const defaultGetToggleAllPageRowsSelectedProps = (\n props: any,\n { instance }: any,\n) => [\n props,\n {\n onChange(e: any) {\n instance.toggleAllPageRowsSelected(e.target.checked);\n },\n checked: instance.isAllPageRowsSelected,\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }: any) => instance.state.selectedRowIds[id]),\n ),\n },\n];\n\nfunction reducer(state: any, action: any, previousState: any, instance: any) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n lockedSelectionRowIds: {},\n ...state,\n };\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n };\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action;\n const {\n isAllRowsSelected,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllRowsSelected;\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = { ...state.selectedRowIds };\n\n if (selectAll) {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n selectedRowIds[rowId] = true;\n }\n });\n } else {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n delete selectedRowIds[rowId];\n }\n });\n }\n\n return {\n ...state,\n selectedRowIds,\n };\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action;\n const isSelectionLocked = state.lockedSelectionRowIds[id];\n if (isSelectionLocked) {\n return state;\n }\n\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isSelected = state.selectedRowIds[id];\n const shouldExist =\n typeof setSelected !== \"undefined\" ? setSelected : !isSelected;\n\n if (isSelected === shouldExist) {\n return state;\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action;\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllPageRowsSelected;\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n\n if (!isSelectionLocked && !row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n page.forEach((row: any) => handleRowById(row.id));\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.resetLockedSelectionRows) {\n return {\n ...state,\n lockedSelectionRowIds: instance.initialState.lockedSelectionRowIds || {},\n };\n }\n\n if (action.type === actions.toggleRowLockedSelection) {\n const { id, value: setLockedSelection } = action;\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isLockedSelection = state.lockedSelectionRowIds[id];\n const shouldExist =\n typeof setLockedSelection !== \"undefined\"\n ? setLockedSelection\n : !isLockedSelection;\n\n if (isLockedSelection === shouldExist) {\n return state;\n }\n\n const newLockedSelectionRowIds = { ...state.lockedSelectionRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newLockedSelectionRowIds[rowId] = true;\n } else {\n delete newLockedSelectionRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n lockedSelectionRowIds: newLockedSelectionRowIds,\n };\n }\n\n return state;\n}\n\nfunction getRowIsSelected(row: any, selectedRowIds: any, getSubRows: any) {\n if (selectedRowIds[row.id]) {\n return true;\n }\n\n const subRows = getSubRows(row);\n\n if (subRows?.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n\n subRows.forEach((subRow: any) => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n\n if (allChildrenSelected) {\n return true;\n }\n\n if (someSelected) {\n return null;\n }\n }\n\n return false;\n}\n\nfunction useInstance(instance: any) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n autoResetLockedSelectionRows = true,\n state: { selectedRowIds, lockedSelectionRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n ensurePluginOrder(\n plugins,\n [\"useFilters\", \"useGroupBy\", \"useSortBy\", \"useExpanded\", \"usePagination\"],\n \"useHvRowSelection\",\n );\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectedFlatRows = useMemo(() => {\n const selectedRows: any[] = [];\n\n rows.forEach((row: any) => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id];\n row.isSelected = !!isSelected;\n row.isSomeSelected = isSelected === null;\n\n if (isSelected) {\n selectedRows.push(row);\n }\n });\n\n return selectedRows;\n }, [rows, selectSubRows, selectedRowIds, getSubRows]);\n\n const existsLockedRows = !!Object.keys(lockedSelectionRowIds).length;\n\n const isNoRowsSelected = !(\n Object.keys(rowsToSelect).length && selectedFlatRows.length\n );\n\n let isNoPageRowsSelected;\n let isAllRowsSelected;\n let isAllPageRowsSelected;\n\n let isAllSelectableRowsUnselected;\n let isAllSelectablePageRowsUnselected;\n let isAllSelectableRowsSelected;\n let isAllSelectablePageRowsSelected;\n\n if (isNoRowsSelected) {\n isAllRowsSelected = false;\n isAllPageRowsSelected = false;\n\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect).some((id) => !lockedSelectionRowIds[id]);\n isAllSelectablePageRowsSelected = isAllSelectableRowsSelected;\n\n isAllSelectableRowsUnselected = isAllSelectableRowsSelected;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsSelected;\n\n isNoPageRowsSelected = true;\n } else {\n isAllRowsSelected = !Object.keys(rowsToSelect).some(\n (id) => !selectedRowIds[id],\n );\n\n if (isAllRowsSelected) {\n isAllSelectableRowsSelected = true;\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectableRowsUnselected =\n existsLockedRows &&\n Object.keys(rowsToSelect).filter((id) => !lockedSelectionRowIds[id])\n .length === 0;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsUnselected;\n\n isNoPageRowsSelected = false;\n isAllPageRowsSelected = true;\n } else {\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => !selectedRowIds[id]);\n\n isAllSelectableRowsUnselected =\n !existsLockedRows ||\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => selectedRowIds[id]);\n\n isAllPageRowsSelected = !(\n page?.length && page.some(({ id }: any) => !selectedRowIds[id])\n );\n\n if (isAllPageRowsSelected) {\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectablePageRowsUnselected =\n existsLockedRows &&\n page &&\n page.length &&\n page.filter(({ id }: any) => !lockedSelectionRowIds[id]).length === 0;\n\n isNoPageRowsSelected = false;\n } else {\n isAllSelectablePageRowsSelected =\n existsLockedRows &&\n !(\n page?.length &&\n page\n .filter(({ id }: any) => !lockedSelectionRowIds[id])\n .some(({ id }: any) => !selectedRowIds[id])\n );\n\n isAllSelectablePageRowsUnselected =\n !existsLockedRows ||\n !(\n page?.length &&\n page\n .filter(({ id }: any) => !lockedSelectionRowIds[id])\n .some(({ id }: any) => selectedRowIds[id])\n );\n\n isNoPageRowsSelected = !(\n page?.length && page.some(({ id }: any) => selectedRowIds[id])\n );\n }\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows);\n\n const getAutoResetLockedSelectionRows = useGetLatest(\n autoResetLockedSelectionRows,\n );\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows });\n }\n if (getAutoResetLockedSelectionRows()) {\n dispatch({ type: actions.resetLockedSelectionRows });\n }\n }, [dispatch, data]);\n\n const toggleAllRowsSelected = useCallback(\n (value: any) => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch],\n );\n\n const toggleAllPageRowsSelected = useCallback(\n (value: any) =>\n dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch],\n );\n\n const toggleRowSelected = useCallback(\n (id: any, value: any) =>\n dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch],\n );\n\n const getInstance = useGetLatest(instance);\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n {\n instance: getInstance(),\n },\n );\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() },\n );\n\n const toggleRowLockedSelection = useCallback(\n (id: any, value: any) =>\n dispatch({ type: actions.toggleRowLockedSelection, id, value }),\n [dispatch],\n );\n\n Object.assign(instance, {\n selectedFlatRows,\n isNoRowsSelected,\n isNoPageRowsSelected,\n isAllRowsSelected,\n isAllPageRowsSelected,\n isAllSelectableRowsSelected,\n isAllSelectablePageRowsSelected,\n isAllSelectableRowsUnselected,\n isAllSelectablePageRowsUnselected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n toggleRowLockedSelection,\n });\n}\n\nfunction prepareRow(row: any, { instance }: any) {\n row.toggleRowSelected = (set: any) => instance.toggleRowSelected(row.id, set);\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n {\n instance,\n row,\n },\n );\n\n row.toggleRowLockedSelection = (set: any) =>\n instance.toggleRowLockedSelection(row.id, set);\n row.isSelectionLocked =\n instance.state?.lockedSelectionRowIds?.[row.id] || false;\n}\n\nexport const useHvRowSelection: UseRowSelectionProps = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n\n hooks.getRowProps.push(getRowPropsHook);\n\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps];\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps];\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ];\n\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow);\n};\n\nuseHvRowSelection.pluginName = \"useHvRowSelection\";\n"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@ import { useRowState } from "react-table";
2
2
  const useHvRowState = useRowState.bind({});
3
3
  useHvRowState.pluginName = "useHvRowState";
4
4
  export {
5
- useHvRowState as default
5
+ useHvRowState
6
6
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHvRowState.js","sources":["../../../../src/Table/hooks/useHvRowState.ts"],"sourcesContent":["import { Hooks, useRowState } from \"react-table\";\n\n// #region ##### TYPES #####\n\nexport type UseRowStateProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nexport const useHvRowState = useRowState.bind({});\n(useHvRowState.pluginName as string) = \"useHvRowState\";\n"],"names":[],"mappings":";AAUO,MAAM,gBAAgB,YAAY,KAAK,CAAE,CAAA;AAC/C,cAAc,aAAwB;"}
@@ -25,12 +25,12 @@ const getCellPropsHook = (props, { cell }) => {
25
25
  const useInstanceHook = (instance) => {
26
26
  ensurePluginOrder(instance.plugins, ["useSortBy"], "useHvSortBy");
27
27
  };
28
- const useSortBy = (hooks) => {
28
+ const useHvSortBy = (hooks) => {
29
29
  hooks.getHeaderProps.push(getHeaderPropsHook);
30
30
  hooks.getCellProps.push(getCellPropsHook);
31
31
  hooks.useInstance.push(useInstanceHook);
32
32
  };
33
- useSortBy.pluginName = "useHvSortBy";
33
+ useHvSortBy.pluginName = "useHvSortBy";
34
34
  export {
35
- useSortBy as default
35
+ useHvSortBy
36
36
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHvSortBy.js","sources":["../../../../src/Table/hooks/useHvSortBy.ts"],"sourcesContent":["import { ensurePluginOrder, Hooks } from \"react-table\";\n\n// #region ##### TYPES #####\n\n// getHeaderProps:\nexport interface UseHvSortByColumnProps {\n sortable?: boolean;\n sorted?: boolean;\n sortDirection?: \"descending\" | \"ascending\";\n onClick?: (e: React.MouseEvent<HTMLTableCellElement>) => void;\n}\n\n// getCellProps:\nexport interface UseHvSortByTableCellProps {\n sorted?: boolean;\n}\n\nexport type UseHvSortByProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props: any, { instance, column }: any) => {\n const { isMultiSortEvent = (e: any) => e.shiftKey } = instance;\n\n const sortDirection = column.isSortedDesc ? \"descending\" : \"ascending\";\n\n const nextProps: UseHvSortByColumnProps = {\n sortable: column.canSort,\n sorted: column.isSorted,\n sortDirection: column.isSorted ? sortDirection : undefined,\n\n onClick: column.canSort\n ? (e) => {\n e.persist();\n column.toggleSortBy(\n undefined,\n !instance.disableMultiSort && isMultiSortEvent(e),\n );\n }\n : undefined,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { cell }: any) => {\n const nextProps: UseHvSortByTableCellProps = {\n sorted: cell.column.isSorted,\n };\n\n return [props, nextProps];\n};\n\nconst useInstanceHook = (instance: any) => {\n ensurePluginOrder(instance.plugins, [\"useSortBy\"], \"useHvSortBy\");\n};\n\nexport const useHvSortBy: UseHvSortByProps = (hooks) => {\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n\n hooks.useInstance.push(useInstanceHook);\n};\n\nuseHvSortBy.pluginName = \"useHvSortBy\";\n"],"names":[],"mappings":";AAwBA,MAAM,qBAAqB,CAAC,OAAY,EAAE,UAAU,aAAkB;AACpE,QAAM,EAAE,mBAAmB,CAAC,MAAW,EAAE,SAAa,IAAA;AAEhD,QAAA,gBAAgB,OAAO,eAAe,eAAe;AAE3D,QAAM,YAAoC;AAAA,IACxC,UAAU,OAAO;AAAA,IACjB,QAAQ,OAAO;AAAA,IACf,eAAe,OAAO,WAAW,gBAAgB;AAAA,IAEjD,SAAS,OAAO,UACZ,CAAC,MAAM;AACL,QAAE,QAAQ;AACH,aAAA;AAAA,QACL;AAAA,QACA,CAAC,SAAS,oBAAoB,iBAAiB,CAAC;AAAA,MAClD;AAAA,IAAA,IAEF;AAAA,EACN;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,mBAAmB,CAAC,OAAY,EAAE,WAAgB;AACtD,QAAM,YAAuC;AAAA,IAC3C,QAAQ,KAAK,OAAO;AAAA,EACtB;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEA,MAAM,kBAAkB,CAAC,aAAkB;AACzC,oBAAkB,SAAS,SAAS,CAAC,WAAW,GAAG,aAAa;AAClE;AAEa,MAAA,cAAgC,CAAC,UAAU;AAEhD,QAAA,eAAe,KAAK,kBAAkB;AAEtC,QAAA,aAAa,KAAK,gBAAgB;AAElC,QAAA,YAAY,KAAK,eAAe;AACxC;AAEA,YAAY,aAAa;"}
@@ -153,7 +153,7 @@ const getCellPropsHook = (props, { instance, cell }) => {
153
153
  const nextProps = instance.hasStickyColumns ? getCellProps(cell.column, false) : {};
154
154
  return [props, nextProps];
155
155
  };
156
- const useSticky = (hooks) => {
156
+ const useHvTableSticky = (hooks) => {
157
157
  hooks.visibleColumns.push(visibleColumnsHook);
158
158
  hooks.useInstance.push(useInstanceHook);
159
159
  hooks.getTableProps.push(getTablePropsHook);
@@ -163,9 +163,7 @@ const useSticky = (hooks) => {
163
163
  hooks.getRowProps.push(getRowPropsHook);
164
164
  hooks.getCellProps.push(getCellPropsHook);
165
165
  };
166
- useSticky.pluginName = "useHvTableSticky";
166
+ useHvTableSticky.pluginName = "useHvTableSticky";
167
167
  export {
168
- useSticky as default,
169
- getHeaderGroupPropsHook,
170
- getTableHeadPropsHook
168
+ useHvTableSticky
171
169
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHvSticky.js","sources":["../../../../src/Table/hooks/useHvSticky.ts"],"sourcesContent":["import {\n Hooks,\n makePropGetter,\n PropGetter,\n TableCommonProps,\n useGetLatest,\n} from \"react-table\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\n// #region ##### TYPES #####\n\nexport interface UseHvTableStickyTableHeadProps extends TableCommonProps {\n stickyHeader?: boolean;\n}\n\nexport type HvTableHeadPropGetter<D extends object> = PropGetter<\n D,\n UseHvTableStickyTableHeadProps\n>;\n\nexport type UseHvTableStickyTableOptions = {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n};\n\nexport interface UseHvTableStickyHooks<D extends object> {\n getTableHeadProps: Array<HvTableHeadPropGetter<D>>;\n}\n\nexport interface UseHvTableStickyTableInstance<D extends object> {\n getTableHeadProps: (\n propGetter?: HvTableHeadPropGetter<D>,\n ) => UseHvTableStickyTableHeadProps;\n\n totalRight?: number;\n hasStickyColumns?: boolean;\n}\n\n// props target: <table>\nexport interface UseHvTableStickyTableProps {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n}\n\n// props target: <table><thead><tr><th>\nexport interface UseHvTableStickyColumnProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\n// props target: <table><tbody><tr><td>\nexport interface UseHvTableStickyCellProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\nexport type UseHvTableSticky = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst isSticky = (value: any) => /left|right/i.test(value);\n\nconst getStickyValue = ({ sticky, parent }: any) => {\n if (isSticky(sticky)) {\n return sticky;\n }\n\n if (parent != null) {\n // check if parent is sticky\n sticky = getStickyValue(parent);\n if (isSticky(sticky)) {\n return sticky;\n }\n\n const { columns } = parent;\n // check if any column in the same group is sticky\n if (columns?.length > 0) {\n sticky = columns?.find((col: any) => col.sticky != null)?.sticky;\n if (isSticky(sticky)) {\n return sticky;\n }\n }\n }\n\n return undefined;\n};\n\nconst updateColumnAndParent = (column: any, props: any) => {\n Object.assign(column, props);\n\n if (column.parent != null) {\n updateColumnAndParent(column.parent, props);\n }\n};\n\nconst visibleColumnsHook = (columns: any, { instance }: any) => {\n const toTheLeft: any[] = [];\n const toTheRight: any[] = [];\n const others: any[] = [];\n\n columns.forEach((column: any) => {\n const sticky = getStickyValue(column)?.toLowerCase();\n\n updateColumnAndParent(column, { sticky });\n\n if (sticky === \"left\") {\n toTheLeft.push(column);\n } else if (sticky === \"right\") {\n toTheRight.push(column);\n } else {\n others.push(column);\n }\n });\n\n if (others.length > 0) {\n const [firstNotSticky] = others;\n updateColumnAndParent(firstNotSticky, { isFirstNotSticky: true });\n\n const lastNotSticky = others[others.length - 1];\n updateColumnAndParent(lastNotSticky, { isLastNotSticky: true });\n }\n\n const hasLeftSticky = toTheLeft.length > 0;\n if (hasLeftSticky) {\n const lastLeftSticky = toTheLeft[toTheLeft.length - 1];\n\n updateColumnAndParent(lastLeftSticky, { isLastLeftSticky: true });\n }\n\n const hasRightSticky = toTheRight.length > 0;\n if (hasRightSticky) {\n const [firstRightSticky] = toTheRight;\n\n updateColumnAndParent(firstRightSticky, { isFirstRightSticky: true });\n }\n\n instance.hasStickyColumns = hasLeftSticky || hasRightSticky;\n\n return [...toTheLeft, ...others, ...toTheRight];\n};\n\nconst calculateHeaderWidthsToTheRight = (headers: any, right = 0) => {\n if (!headers?.length) {\n return;\n }\n\n for (let i = headers.length - 1; i !== -1; i -= 1) {\n const header = headers[i];\n\n header.totalRight = right;\n\n const { headers: subHeaders } = header;\n if (subHeaders?.length > 0) {\n calculateHeaderWidthsToTheRight(subHeaders, right);\n }\n\n if (header.isVisible) {\n right += header.totalWidth;\n }\n }\n};\n\nconst useInstanceHook = (instance: any) => {\n calculateHeaderWidthsToTheRight(instance.headers);\n\n const getInstance = useGetLatest(instance);\n instance.getTableHeadProps = makePropGetter(\n instance.getHooks().getTableHeadProps,\n {\n instance: getInstance(),\n },\n );\n};\n\nconst getRowProps = () => ({\n style: {\n display: \"flex\",\n flex: \"1 0 auto\",\n },\n});\n\nconst getCellProps = (header: any, isHeaderCell: boolean) => {\n const props: UseHvTableStickyCellProps & { style: React.CSSProperties } = {\n style: {\n display: \"inline-flex\",\n flex: `${header.totalWidth} ${header.totalMinWidth} auto`,\n alignItems: isHeaderCell ? \"start\" : \"center\",\n justifyContent: header.align,\n\n width: `${header.totalWidth}px`,\n minWidth: `${header.totalMinWidth}px`,\n ...(isHeaderCell && { backgroundColor: theme.colors.atmo2 }),\n },\n };\n\n if (header.sticky != null) {\n props.stickyColumn = true;\n\n const margin =\n header.sticky === \"left\" ? header.totalLeft : header.totalRight;\n\n // @ts-ignore\n props.style[header.sticky] = `${margin}px`;\n\n if (header.isLastLeftSticky) {\n props.stickyColumnMostLeft = true;\n }\n\n if (header.isFirstRightSticky) {\n props.stickyColumnLeastRight = true;\n }\n } else {\n if (header.isFirstNotSticky) {\n props.style.borderLeft = 0;\n }\n\n if (header.isLastNotSticky) {\n props.style.borderRight = 0;\n }\n }\n\n return props;\n};\n\n/*\n * STICKY POSITION MANAGEMENT\n * <thead>: sticky if stickyHeader: true\n * <tr>: never sticky\n * <th>: sticky only if that particular column is sticky (left or right)\n */\n\n/*\n * We need to hide the last non sticky column right border, to avoid issues with double borders.\n *\n * This could be done with css, using the `:has()` selector:\n * - \".not-sticky:has(+ .first-right-sticky)\": { border-right: 0 }\n *\n * Until the `:has()` selector is supported by modern browsers,\n * that at the moment is just a proposal https://developer.mozilla.org/en-US/docs/Web/CSS/:has,\n * we need to override the last not sticky column \"borderRight\" here.\n */\n\n// props target: <table>\nconst getTablePropsHook = (props: any, { instance }: any) => {\n const nextProps: UseHvTableStickyTableProps = {\n stickyHeader: instance.stickyHeader,\n stickyColumns: instance.hasStickyColumns,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead>\nconst getTableHeadPropsHook = (props: any, { instance }: any) => {\n const nextProps = {\n stickyHeader: instance.stickyHeader,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr>\nconst getHeaderGroupPropsHook = (props: any, { instance }: any) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props: any, { instance, column }: any) => {\n const nextProps = instance.hasStickyColumns ? getCellProps(column, true) : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr>\nconst getRowPropsHook = (props: any, { instance }: any) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { instance, cell }: any) => {\n const nextProps: UseHvTableStickyCellProps = instance.hasStickyColumns\n ? getCellProps(cell.column, false)\n : {};\n\n return [props, nextProps];\n};\n\nexport const useHvTableSticky: UseHvTableSticky = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n hooks.useInstance.push(useInstanceHook);\n\n // props target: <table>\n hooks.getTableProps.push(getTablePropsHook);\n // props target: <table><thead>\n hooks.getTableHeadProps = [getTableHeadPropsHook];\n // props target: <table><thead><tr>\n hooks.getHeaderGroupProps.push(getHeaderGroupPropsHook);\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr>\n hooks.getRowProps.push(getRowPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n};\n\nuseHvTableSticky.pluginName = \"useHvTableSticky\";\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { useMemo } from "react";
2
2
  import { useTable, usePagination, useExpanded, useSortBy, useResizeColumns } from "react-table";
3
- import useTableStyles from "./useTableStyles.js";
3
+ import { DefaultCell } from "../renderers/DefaultCell.js";
4
+ import { useHvTableStyles } from "./useHvTableStyles.js";
4
5
  const toTitleCase = (str) => {
5
6
  return str.replace(/([^A-Z])([A-Z])/g, "$1 $2").replace(/[_-]+/g, " ").toLowerCase().replace(/(^\w|\b\w)/g, (m) => m.toUpperCase()).replace(/\s+/g, " ").trim();
6
7
  };
@@ -61,12 +62,13 @@ function useHvTable(options, ...plugins) {
61
62
  (plugin) => plugin.pluginName === "useHvTableStyles"
62
63
  );
63
64
  if (indexOfHvTableStylesPlugin === -1) {
64
- plugins.push(useTableStyles);
65
+ plugins.push(useHvTableStyles);
65
66
  }
66
67
  return useTable(
67
68
  {
68
69
  data,
69
70
  columns,
71
+ defaultColumn: { Cell: DefaultCell },
70
72
  ...others
71
73
  },
72
74
  useHvTableSetup,
@@ -74,5 +76,5 @@ function useHvTable(options, ...plugins) {
74
76
  );
75
77
  }
76
78
  export {
77
- useHvTable as default
79
+ useHvTable
78
80
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHvTable.js","sources":["../../../../src/Table/hooks/useHvTable.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport type {\n ActionType,\n Cell,\n ColumnInstance,\n ColumnInterface,\n Hooks,\n PluginHook,\n ReducerTableState,\n Renderer,\n Row,\n TableCellProps,\n TableFooterProps,\n TableHeaderProps,\n TableInstance,\n TableOptions,\n TableProps,\n TableRowProps,\n TableState,\n UseColumnOrderInstanceProps,\n UseColumnOrderState,\n UseExpandedHooks,\n UseExpandedInstanceProps,\n UseExpandedOptions,\n UseExpandedState,\n UseFiltersColumnOptions,\n UseFiltersColumnProps,\n UseFiltersInstanceProps,\n UseFiltersOptions,\n UseFiltersState,\n UseGlobalFiltersColumnOptions,\n UseGlobalFiltersInstanceProps,\n UseGlobalFiltersOptions,\n UseGlobalFiltersState,\n UseGroupByCellProps,\n UseGroupByColumnOptions,\n UseGroupByColumnProps,\n UseGroupByHooks,\n UseGroupByInstanceProps,\n UseGroupByOptions,\n UseGroupByRowProps,\n UseGroupByState,\n UsePaginationInstanceProps,\n UsePaginationOptions,\n UsePaginationState,\n UseResizeColumnsColumnOptions,\n UseResizeColumnsColumnProps,\n UseResizeColumnsOptions,\n UseResizeColumnsState,\n UseRowStateInstanceProps,\n UseRowStateOptions,\n UseRowStateRowProps,\n UseRowStateState,\n UseSortByColumnOptions,\n UseSortByColumnProps,\n UseSortByHooks,\n UseSortByInstanceProps,\n UseSortByOptions,\n UseSortByState,\n UseTableHeaderGroupProps,\n} from \"react-table\";\nimport {\n useExpanded,\n usePagination,\n useResizeColumns,\n useSortBy,\n useTable,\n} from \"react-table\";\n\nimport { DefaultCell } from \"../renderers/DefaultCell\";\nimport type { HvTableProps } from \"../Table\";\nimport type { HvTableCellProps } from \"../TableCell\";\nimport type { HvTableHeaderProps } from \"../TableHeader\";\nimport type { HvTableRowProps } from \"../TableRow\";\nimport type {\n UseHvBulkActionsHooks,\n UseHvBulkActionsTableInstanceProps,\n UseHvBulkActionsTableOptions,\n} from \"./useHvBulkActions\";\nimport type {\n UseHvHeaderGroupsCellProps,\n UseHvHeaderGroupsColumnProps,\n UseHvHeaderGroupsInstance,\n} from \"./useHvHeaderGroups\";\nimport type {\n UseHvPaginationHooks,\n UseHvPaginationTableInstance,\n} from \"./useHvPagination\";\nimport type {\n UseHvResizeColumnProps,\n UseHvResizeTableCellProps,\n} from \"./useHvResizeColumns\";\nimport type {\n UseHvRowExpandRowInstance,\n UseHvRowExpandTableOptions,\n UseHvRowExpandTableRowProps,\n} from \"./useHvRowExpand\";\nimport type {\n UseHvRowSelectionHooks,\n UseHvRowSelectionRowInstance,\n UseHvRowSelectionState,\n UseHvRowSelectionTableInstance,\n UseHvRowSelectionTableOptions,\n UseHvRowSelectionTableRowProps,\n} from \"./useHvRowSelection\";\nimport type {\n UseHvSortByColumnProps,\n UseHvSortByTableCellProps,\n} from \"./useHvSortBy\";\nimport type {\n UseHvTableStickyCellProps,\n UseHvTableStickyColumnProps,\n UseHvTableStickyHooks,\n UseHvTableStickyTableInstance,\n UseHvTableStickyTableOptions,\n UseHvTableStickyTableProps,\n} from \"./useHvSticky\";\nimport type {\n UseHvTableStylesColumnOptions,\n UseHvTableStylesTableCellProps,\n UseHvTableStylesTableOptions,\n UseHvTableStylesTableRowProps,\n} from \"./useHvTableStyles\";\nimport { useHvTableStyles } from \"./useHvTableStyles\";\n\n// #region ##### TYPES #####\n\ntype Accessor<D extends object> = (\n originalRow: D,\n index: number,\n sub: {\n subRows: D[];\n depth: number;\n data: D[];\n },\n) => CellValue;\n\ntype ValueOf<T> = T[keyof T];\ntype StringKey<D> = Extract<keyof D, string>;\ntype IdType<D> = StringKey<D> | string;\ntype CellValue<V = any> = V;\n\ntype HvHeaderProps<D extends object = Record<string, unknown>> =\n HvTableInstance<D> & {\n column: HvColumnInstance<D>;\n };\n\ninterface HvMetaBase<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> {\n instance: HvTableInstance<D, H>;\n userProps: any;\n}\n\nexport type HvMeta<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n Extension = never,\n M = HvMetaBase<D, H>,\n> = [Extension] extends [never] ? M : M & Extension;\n\nexport type HvPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n Props extends object = Record<string, unknown>,\n T extends object = never,\n P = Partial<Props>,\n> = ((props: P, meta: HvMeta<D, H, T>) => P | P[]) | P | P[];\n\nexport type HvTableHeaderRenderer<D extends object = Record<string, unknown>> =\n Renderer<HvHeaderProps<D>>;\n\ntype HvFooterProps<D extends object = Record<string, unknown>> =\n HvTableInstance<D> & {\n column: HvColumnInstance<D>;\n };\n\ninterface HvHeaderGroup<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends HvColumnInstance<D, H>,\n Omit<UseTableHeaderGroupProps<D>, \"headers\"> {\n headers: Array<HvHeaderGroup<D, H>>;\n}\n\ntype HvRowPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableRowProps, { row: HvRowInstance<D, H> }>;\n\ntype HvTablePropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableProps>;\n\ntype HvCellPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableCellProps, { cell: HvCellInstance<D, H> }>;\n\ntype HvHeaderPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableHeaderProps, { column: HvHeaderGroup<D, H> }>;\n\ntype HvFooterPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableFooterProps, { column: HvHeaderGroup<D, H> }>;\n\nexport interface HvCellProps<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> extends HvTableInstance<D, H> {\n column: HvColumnInstance<D, H>;\n row: HvRowInstance<D, H>;\n cell: HvCellInstance<D, H, V>;\n value: CellValue<V>;\n}\n\nexport type HvTableDefinitionConfig<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableOptions<D, H>;\n\ninterface HvColumnInterfaceBasedOnValue<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> {\n Cell?: Renderer<HvCellProps<D, H, V>>;\n}\n\ninterface HvColumnGroupInterface<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> {\n columns: Array<HvTableColumnConfig<D, H>>;\n}\n\ntype HvColumnGroup<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n HvColumnGroupInterface<D, H> &\n (\n | { Header: H }\n | ({ id: IdType<D> } & {\n Header: H;\n })\n ) & { accessor?: Accessor<D> };\n\ntype HvColumnWithStrictAccessor<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n ValueOf<{\n [K in keyof D]: {\n accessor: K;\n } & HvColumnInterfaceBasedOnValue<D, H, D[K]>;\n }>;\n\ntype HvColumnWithLooseAccessor<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n HvColumnInterfaceBasedOnValue<D, H> &\n (\n | { Header: H }\n | { id: IdType<D> }\n | { accessor: keyof D extends never ? IdType<D> : never }\n ) & {\n accessor?: keyof D extends never ? IdType<D> | Accessor<D> : Accessor<D>;\n };\n\nexport type HvTableColumnConfig<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> =\n | HvColumnGroup<D, H>\n | HvColumnWithLooseAccessor<D, H>\n | HvColumnWithStrictAccessor<D, H>;\n\n// #region HOOKS\nexport interface HvHooks<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<Hooks<D>, \"useOptions\">,\n Partial<UseExpandedHooks<D>>,\n Partial<UseGroupByHooks<D>>,\n Partial<UseSortByHooks<D>>,\n Partial<UseHvRowSelectionHooks<D>>,\n Partial<UseHvTableStickyHooks<D>>,\n Partial<UseHvPaginationHooks<D>>,\n Partial<UseHvBulkActionsHooks<D>> {\n useOptions: Array<\n (\n options: HvTableOptions<D, H>,\n args: HvTableOptions<D, H>,\n ) => HvTableOptions<D, H>\n >;\n stateReducers: Array<\n (\n newState: HvTableState<D>,\n action: ActionType,\n previousState?: HvTableState<D>,\n instance?: HvTableState<D>,\n ) => ReducerTableState<D> | undefined\n >;\n columns: Array<\n (\n columns: Array<HvTableColumnConfig<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n allColumns: Array<\n (\n allColumns: Array<HvColumnInstance<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n visibleColumns: Array<\n (\n allColumns: Array<HvColumnInstance<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n headerGroups: Array<\n (\n allColumns: Array<HvHeaderGroup<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvHeaderGroup<D, H>>\n >;\n useInstanceBeforeDimensions: Array<(instance: HvTableInstance<D, H>) => void>;\n useInstance: Array<(instance: HvTableInstance<D, H>) => void>;\n useControlledState: Array<\n (state: HvTableState<D>, meta: HvMeta<D, H>) => HvTableState<D>\n >;\n getTableProps: Array<HvTablePropGetter<D, H>>;\n getHeaderProps: Array<HvHeaderPropGetter<D>>;\n getFooterProps: Array<HvFooterPropGetter<D>>;\n getRowProps: Array<HvRowPropGetter<D>>;\n getCellProps: Array<HvCellPropGetter<D>>;\n useFinalInstance: Array<(instance: HvTableInstance<D, H>) => void>;\n}\n// #endregion\n\n// #region STATE\nexport interface HvTableState<D extends object = Record<string, unknown>>\n extends TableState<D>,\n Partial<UseColumnOrderState<D>>,\n Partial<UseExpandedState<D>>,\n Partial<UseFiltersState<D>>,\n Partial<UseGlobalFiltersState<D>>,\n Partial<UseGroupByState<D>>,\n Partial<UsePaginationState<D>>,\n Partial<UseResizeColumnsState<D>>,\n Partial<UseSortByState<D>>,\n Partial<UseRowStateState<D>>,\n Partial<UseHvRowSelectionState<D>> {\n rowCount: number;\n}\n// #endregion\n\n// #region OPTIONS\nexport interface HvTableOptions<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n TableOptions<D>,\n | \"columns\"\n | \"data\"\n | \"defaultColumn\"\n | \"stateReducer\"\n | \"useControlledState\"\n | \"getRowId\"\n >,\n Partial<UseExpandedOptions<D>>,\n Partial<UseFiltersOptions<D>>,\n Partial<UseGlobalFiltersOptions<D>>,\n Partial<UseGroupByOptions<D>>,\n Partial<UsePaginationOptions<D>>,\n Partial<UseResizeColumnsOptions<D>>,\n Partial<UseSortByOptions<D>>,\n Partial<UseRowStateOptions<D>>,\n Partial<UseHvTableStylesTableOptions>,\n Partial<UseHvRowSelectionTableOptions>,\n Partial<UseHvTableStickyTableOptions>,\n Partial<UseHvBulkActionsTableOptions>,\n Partial<UseHvRowExpandTableOptions> {\n columns?: Array<HvTableColumnConfig<D, H>>;\n data?: D[];\n initialState?: Partial<HvTableState<D>>;\n labels?: Record<string, string>;\n defaultColumn?: Partial<HvTableColumnConfig<D, H>>;\n stateReducer?: (\n newState: HvTableState<D>,\n action: ActionType,\n previousState: HvTableState<D>,\n instance?: HvTableInstance<D, H>,\n ) => HvTableState<D>;\n useControlledState?: (\n state: HvTableState<D>,\n meta: HvMeta<D, H>,\n ) => HvTableState<D>;\n getRowId?: (\n originalRow: D,\n relativeIndex: number,\n parent?: HvRowInstance<D, H>,\n ) => string;\n}\n\nexport interface HvTableColumnOptions<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<ColumnInterface<D>, \"Header\" | \"Footer\">,\n Partial<UseFiltersColumnOptions<D>>,\n Partial<UseGroupByColumnOptions<D>>,\n Partial<UseResizeColumnsColumnOptions<D>>,\n Partial<UseSortByColumnOptions<D>>,\n Partial<UseGlobalFiltersColumnOptions<D>>,\n Partial<UseHvTableStylesColumnOptions> {\n Header?: H;\n Footer?: Renderer<HvFooterProps<D>>;\n originalId?: IdType<D>;\n}\n// #endregion\n\n// #region INSTANCE\nexport interface HvTableInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n TableInstance<D>,\n | \"pageCount\"\n | \"data\"\n | \"columns\"\n | \"rows\"\n | \"allColumns\"\n | \"visibleColumns\"\n | \"headers\"\n | \"flatHeaders\"\n | \"rowsById\"\n | \"prepareRow\"\n | \"flatRows\"\n | \"headerGroups\"\n | \"footerGroups\"\n | \"defaultColumn\"\n | \"stateReducer\"\n | \"useControlledState\"\n | \"getRowId\"\n | \"getHooks\"\n | \"getTableProps\"\n >,\n Omit<HvTableOptions<D, H>, \"pageCount\" | \"columns\">,\n Partial<UseColumnOrderInstanceProps<D>>,\n Partial<Omit<UseExpandedInstanceProps<D>, \"rows\">>,\n Partial<Omit<UseFiltersInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">>,\n Partial<\n Omit<UseGlobalFiltersInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">\n >,\n Partial<Omit<UseGroupByInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">>,\n Partial<Omit<UsePaginationInstanceProps<D>, \"page\">>,\n Partial<Omit<UseSortByInstanceProps<D>, \"rows\">>,\n Partial<UseRowStateInstanceProps<D>>,\n Partial<Omit<UseHvRowSelectionTableInstance<D>, \"selectedFlatRows\">>,\n Partial<UseHvTableStickyTableInstance<D>>,\n Partial<UseHvHeaderGroupsInstance>,\n Partial<UseHvPaginationTableInstance<D>>,\n Partial<UseHvBulkActionsTableInstanceProps<D>> {\n initialState: Partial<HvTableState<D>>;\n state: HvTableState<D>;\n columns: Array<HvColumnInstance<D, H>>;\n allColumns: Array<HvColumnInstance<D, H>>;\n visibleColumns: Array<HvColumnInstance<D, H>>;\n headers: Array<HvColumnInstance<D, H>>;\n flatHeaders: Array<HvColumnInstance<D, H>>;\n rows: Array<HvRowInstance<D, H>>;\n page: Array<HvRowInstance<D, H>>;\n rowsById: Record<string, HvRowInstance<D, H>>;\n flatRows: Array<HvRowInstance<D, H>>;\n getHooks: () => HvHooks<D>;\n getTableProps: (propGetter?: HvTablePropGetter<D, H>) => HvUseTableProps;\n prepareRow: (row: HvRowInstance<D, H>) => void;\n selectedFlatRows: Array<HvRowInstance<D, H>>;\n initialRows: Array<HvRowInstance<D, H>>;\n initialRowsById: Record<string, HvRowInstance<D, H>>;\n labels: Record<string, string>;\n headerGroups: Array<HvHeaderGroup<D, H>>;\n footerGroups: Array<HvHeaderGroup<D, H>>;\n}\n\nexport interface HvColumnInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n ColumnInstance<D>,\n | \"Cell\"\n | \"columns\"\n | \"parent\"\n | \"placeholderOf\"\n | \"id\"\n | \"Header\"\n | \"getHeaderProps\"\n | \"getFooterProps\"\n | \"Footer\"\n >,\n HvTableColumnOptions<D, H>,\n Partial<UseFiltersColumnProps<D>>,\n Partial<UseGroupByColumnProps<D>>,\n Partial<UseResizeColumnsColumnProps<D>>,\n Partial<UseSortByColumnProps<D>> {\n Cell?: Renderer<HvCellProps<D, H>>;\n columns: Array<HvColumnInstance<D, H>>;\n parent: HvColumnInstance<D, H>;\n placeholderOf?: HvColumnInstance<D, H>;\n getHeaderProps: (\n propGetter?: HvHeaderPropGetter<D, H>,\n ) => HvUseTableHeaderProps;\n getFooterProps: (\n propGetter?: HvFooterPropGetter<D, H>,\n ) => HvUseTableFooterProps;\n}\n\nexport interface HvRowInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<Row<D>, \"cells\" | \"allCells\" | \"subRows\" | \"getRowProps\">,\n Partial<Omit<UseGroupByRowProps<D>, \"subRows\" | \"values\">>,\n Partial<UseRowStateRowProps<D>>,\n Partial<Omit<UseHvRowExpandRowInstance<D>, \"subRows\">>,\n Partial<UseHvRowSelectionRowInstance> {\n cells: Array<HvCellInstance<D, H>>;\n allCells: Array<HvCellInstance<D, H>>;\n getRowProps: (propGetter?: HvRowPropGetter<D, H>) => HvUseTableRowProps;\n index: number;\n original: D;\n id: string;\n subRows: Array<HvRowInstance<D, H>>;\n}\n\nexport interface HvCellInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> extends Omit<Cell<D, V>, \"column\" | \"row\" | \"getCellProps\">,\n Partial<UseGroupByCellProps<D>> {\n column: HvColumnInstance<D, H>;\n row: HvRowInstance<D, H>;\n getCellProps: (propGetter?: HvCellPropGetter<D, H>) => HvUseTableCellProps;\n}\n// #endregion\n\n// #region PROPS\nexport interface HvUseTableProps\n extends Omit<TableProps, \"role\">,\n UseHvTableStickyTableProps,\n HvTableProps {}\n\nexport interface HvUseTableHeaderProps\n extends Omit<TableHeaderProps, \"role\">,\n Omit<UseHvTableStylesTableCellProps, \"classes\">,\n UseHvTableStickyColumnProps,\n UseHvHeaderGroupsColumnProps,\n UseHvResizeColumnProps,\n Omit<UseHvSortByColumnProps, \"sortDirection\">,\n HvTableHeaderProps {}\n\nexport interface HvUseTableFooterProps\n extends TableFooterProps,\n UseHvTableStylesTableCellProps {}\n\nexport interface HvUseTableRowProps\n extends Omit<TableRowProps, \"role\">,\n UseHvTableStylesTableRowProps,\n UseHvRowSelectionTableRowProps,\n UseHvRowExpandTableRowProps,\n HvTableRowProps {}\n\nexport interface HvUseTableCellProps\n extends Omit<TableCellProps, \"role\">,\n Omit<UseHvTableStylesTableCellProps, \"variant\" | \"classes\">,\n UseHvTableStickyCellProps,\n UseHvHeaderGroupsCellProps,\n UseHvResizeTableCellProps,\n UseHvSortByTableCellProps,\n HvTableCellProps {}\n\n// #endregion\n\nexport type UseHvTableProps = <\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n options: HvTableOptions<D, H>,\n ...plugins: Array<PluginHook<D>>\n) => HvTableInstance<D, H>;\n\nexport type { PluginHook as HvTablePluginHook };\n\n// #endregion ##### TYPES #####\n\nconst toTitleCase = (str: string) => {\n return str\n .replace(/([^A-Z])([A-Z])/g, \"$1 $2\") // split cameCase\n .replace(/[_-]+/g, \" \") // split snake_case and lisp-case\n .toLowerCase()\n .replace(/(^\\w|\\b\\w)/g, (m) => m.toUpperCase()) // title case words\n .replace(/\\s+/g, \" \") // collapse repeated whitespace\n .trim(); // remove leading/trailing whitespace\n};\n\nfunction useDefaultData<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(data?: HvTableOptions<D, H>[\"data\"]) {\n return useMemo(() => {\n return data || [];\n }, [data]);\n}\n\nfunction useDefaultColumns<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n data: NonNullable<HvTableOptions<D, H>[\"data\"]>,\n columns?: HvTableOptions<D, H>[\"columns\"],\n) {\n return useMemo(() => {\n if (columns != null) {\n return columns;\n }\n\n const uniqueKeys = Object.keys(Object.assign({}, ...data));\n\n return uniqueKeys\n .filter((key) => ![\"subRows\", \"subComponent\"].includes(key))\n .map((key) => ({\n accessor: key,\n Header: toTitleCase(key),\n }));\n }, [columns, data]);\n}\n\nfunction ensureCorePluginInstallation<\n D extends object = Record<string, unknown>,\n>(\n plugins: PluginHook<D>[],\n hvPluginName: string,\n corePluginToInstall: PluginHook<D>,\n) {\n const indexOfCorePlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === corePluginToInstall.pluginName,\n );\n const indexOfHvPlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === hvPluginName,\n );\n\n if (\n indexOfHvPlugin !== -1 &&\n (indexOfCorePlugin === -1 || indexOfCorePlugin > indexOfHvPlugin)\n ) {\n if (indexOfCorePlugin > -1) {\n plugins.splice(indexOfCorePlugin, 1);\n }\n\n plugins.splice(indexOfHvPlugin, 0, corePluginToInstall);\n }\n}\n\nfunction useInstanceHook<D extends object = Record<string, unknown>>(\n instance: TableInstance<D>,\n) {\n const { rowsById } = instance;\n\n Object.assign(instance, {\n initialRowsById: rowsById,\n });\n}\n\nfunction useHvTableSetup<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) {\n hooks.useInstance.push(useInstanceHook);\n}\nuseHvTableSetup.pluginName = \"useHvTableSetup\";\n\nexport function useHvTable<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n options: HvTableOptions<D, H>,\n ...plugins: PluginHook<D>[]\n): HvTableInstance<D, H> {\n const { data: dataProp, columns: columnsProp, ...others } = options;\n\n const data = useDefaultData<D, H>(dataProp);\n const columns = useDefaultColumns<D, H>(data, columnsProp);\n\n ensureCorePluginInstallation<D>(plugins, \"useHvPagination\", usePagination);\n ensureCorePluginInstallation<D>(plugins, \"useHvRowExpand\", useExpanded);\n ensureCorePluginInstallation<D>(plugins, \"useHvSortBy\", useSortBy);\n ensureCorePluginInstallation<D>(\n plugins,\n \"useHvResizeColumns\",\n useResizeColumns,\n );\n\n const indexOfHvTableStylesPlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === \"useHvTableStyles\",\n );\n if (indexOfHvTableStylesPlugin === -1) {\n plugins.push(useHvTableStyles);\n }\n\n // Main hook call\n return useTable<D>(\n {\n data,\n columns,\n defaultColumn: { Cell: DefaultCell },\n ...others,\n } as any,\n useHvTableSetup,\n ...plugins,\n ) as any;\n}\n"],"names":[],"mappings":";;;;AA4lBA,MAAM,cAAc,CAAC,QAAgB;AAC5B,SAAA,IACJ,QAAQ,oBAAoB,OAAO,EACnC,QAAQ,UAAU,GAAG,EACrB,YAAY,EACZ,QAAQ,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7C,QAAQ,QAAQ,GAAG,EACnB,KAAK;AACV;AAEA,SAAS,eAGP,MAAqC;AACrC,SAAO,QAAQ,MAAM;AACnB,WAAO,QAAQ,CAAC;AAAA,EAAA,GACf,CAAC,IAAI,CAAC;AACX;AAEA,SAAS,kBAIP,MACA,SACA;AACA,SAAO,QAAQ,MAAM;AACnB,QAAI,WAAW,MAAM;AACZ,aAAA;AAAA,IAAA;AAGH,UAAA,aAAa,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;AAEzD,WAAO,WACJ,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,cAAc,EAAE,SAAS,GAAG,CAAC,EAC1D,IAAI,CAAC,SAAS;AAAA,MACb,UAAU;AAAA,MACV,QAAQ,YAAY,GAAG;AAAA,IAAA,EACvB;AAAA,EAAA,GACH,CAAC,SAAS,IAAI,CAAC;AACpB;AAEA,SAAS,6BAGP,SACA,cACA,qBACA;AACA,QAAM,oBAAoB,QAAQ;AAAA,IAChC,CAAC,WAAW,OAAO,eAAe,oBAAoB;AAAA,EACxD;AACA,QAAM,kBAAkB,QAAQ;AAAA,IAC9B,CAAC,WAAW,OAAO,eAAe;AAAA,EACpC;AAEA,MACE,oBAAoB,OACnB,sBAAsB,MAAM,oBAAoB,kBACjD;AACA,QAAI,oBAAoB,IAAI;AAClB,cAAA,OAAO,mBAAmB,CAAC;AAAA,IAAA;AAG7B,YAAA,OAAO,iBAAiB,GAAG,mBAAmB;AAAA,EAAA;AAE1D;AAEA,SAAS,gBACP,UACA;AACM,QAAA,EAAE,aAAa;AAErB,SAAO,OAAO,UAAU;AAAA,IACtB,iBAAiB;AAAA,EAAA,CAClB;AACH;AAEA,SAAS,gBACP,OACA;AACM,QAAA,YAAY,KAAK,eAAe;AACxC;AACA,gBAAgB,aAAa;AAEb,SAAA,WAId,YACG,SACoB;AACvB,QAAM,EAAE,MAAM,UAAU,SAAS,aAAa,GAAG,WAAW;AAEtD,QAAA,OAAO,eAAqB,QAAQ;AACpC,QAAA,UAAU,kBAAwB,MAAM,WAAW;AAEzB,+BAAA,SAAS,mBAAmB,aAAa;AACzC,+BAAA,SAAS,kBAAkB,WAAW;AACtC,+BAAA,SAAS,eAAe,SAAS;AACjE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,6BAA6B,QAAQ;AAAA,IACzC,CAAC,WAAW,OAAO,eAAe;AAAA,EACpC;AACA,MAAI,+BAA+B,IAAI;AACrC,YAAQ,KAAK,gBAAgB;AAAA,EAAA;AAIxB,SAAA;AAAA,IACL;AAAA,MACE;AAAA,MACA;AAAA,MACA,eAAe,EAAE,MAAM,YAAY;AAAA,MACnC,GAAG;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AACF;"}
@@ -76,15 +76,14 @@ const getCellPropsHook = (props, { cell }) => {
76
76
  }
77
77
  return [props, nextProps];
78
78
  };
79
- const useTableStyles = (hooks) => {
79
+ const useHvTableStyles = (hooks) => {
80
80
  hooks.getTableProps.push(getTablePropsHook);
81
81
  hooks.getHeaderProps.push(getHeaderFooterPropsHook);
82
82
  hooks.getFooterProps.push(getHeaderFooterPropsHook);
83
83
  hooks.getRowProps.push(getRowPropsHook);
84
84
  hooks.getCellProps.push(getCellPropsHook);
85
85
  };
86
- useTableStyles.pluginName = "useHvTableStyles";
86
+ useHvTableStyles.pluginName = "useHvTableStyles";
87
87
  export {
88
- useTableStyles as default,
89
- getHeaderFooterPropsHook
88
+ useHvTableStyles
90
89
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHvTableStyles.js","sources":["../../../../src/Table/hooks/useHvTableStyles.ts"],"sourcesContent":["import { Hooks } from \"react-table\";\nimport { clsx } from \"clsx\";\n\n// #region ##### TYPES #####\n\nexport type UseHvTableStylesTableOptions = {\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n component?: any;\n};\n\n// column definition:\nexport interface UseHvTableStylesColumnOptions {\n variant?: \"checkbox\" | \"expand\" | \"actions\" | \"default\" | \"none\";\n align?: \"center\" | \"inherit\" | \"justify\" | \"left\" | \"right\";\n\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n\n headerStyle?: React.CSSProperties;\n headerClassName?: string;\n headerClasses?: Record<string, string>;\n\n cellStyle?: React.CSSProperties;\n cellClassName?: string;\n cellClasses?: Record<string, string>;\n}\n\n// PROPS:\nexport interface UseHvTableStylesTableRowProps {\n hover?: boolean;\n}\n\nexport interface UseHvTableStylesTableCellProps {\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n variant?: \"checkbox\" | \"expand\" | \"actions\" | \"default\" | \"none\";\n align?: \"center\" | \"inherit\" | \"justify\" | \"left\" | \"right\";\n}\n\nexport type UseTableStylesProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// props target: <table>\nconst getTablePropsHook = (props: any, { instance }: any) => {\n const nextProps: UseHvTableStylesTableOptions = {\n component: instance.tableComponent,\n };\n\n if (instance.style != null) {\n nextProps.style = instance.style;\n }\n\n if (instance.className != null) {\n nextProps.className = instance.className;\n }\n\n if (instance.classes != null) {\n nextProps.classes = instance.classes;\n }\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr><th>\nconst getHeaderFooterPropsHook = (props: any, { column }: any) => {\n const nextProps: UseHvTableStylesColumnOptions = {\n variant: column.variant,\n align: column.align,\n };\n\n if (column.style != null || column.headerStyle != null) {\n nextProps.style = {\n ...props.style,\n ...column.style,\n ...column.headerStyle,\n };\n }\n\n if (column.className != null || column.headerClassName != null) {\n nextProps.className = clsx(\n props.className,\n column.className,\n column.headerClassName,\n );\n }\n\n if (column.classes != null || column.headerClasses) {\n nextProps.classes = {\n ...props.classes,\n ...column.classes,\n ...column.headerClasses,\n };\n }\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr>\nconst getRowPropsHook = (props: any) => {\n const nextProps: UseHvTableStylesTableRowProps = {\n hover: true,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { cell }: any) => {\n const nextProps: UseHvTableStylesTableCellProps = {\n variant: cell.column.variant,\n align: cell.column.align,\n };\n\n if (cell.column.style != null || cell.column.cellStyle != null) {\n nextProps.style = {\n ...props.style,\n ...cell.column.style,\n ...cell.column.cellStyle,\n };\n }\n\n if (cell.column.className != null || cell.column.cellClassName != null) {\n nextProps.className = clsx(\n props.className,\n cell.column.className,\n cell.column.cellClassName,\n );\n }\n\n if (cell.column.classes != null || cell.column.cellClasses) {\n nextProps.classes = {\n ...props.classes,\n ...cell.column.classes,\n ...cell.column.cellClasses,\n };\n }\n\n return [props, nextProps];\n};\n\nexport const useHvTableStyles: UseTableStylesProps = (hooks) => {\n // props target: <table>\n hooks.getTableProps.push(getTablePropsHook);\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderFooterPropsHook);\n // props target: <table><tfoot><tr><td>\n hooks.getFooterProps.push(getHeaderFooterPropsHook);\n // props target: <table><tbody><tr>\n hooks.getRowProps.push(getRowPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n};\n\nuseHvTableStyles.pluginName = \"useHvTableStyles\";\n"],"names":[],"mappings":";AAkDA,MAAM,oBAAoB,CAAC,OAAY,EAAE,eAAoB;AAC3D,QAAM,YAA0C;AAAA,IAC9C,WAAW,SAAS;AAAA,EACtB;AAEI,MAAA,SAAS,SAAS,MAAM;AAC1B,cAAU,QAAQ,SAAS;AAAA,EAAA;AAGzB,MAAA,SAAS,aAAa,MAAM;AAC9B,cAAU,YAAY,SAAS;AAAA,EAAA;AAG7B,MAAA,SAAS,WAAW,MAAM;AAC5B,cAAU,UAAU,SAAS;AAAA,EAAA;AAGxB,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,2BAA2B,CAAC,OAAY,EAAE,aAAkB;AAChE,QAAM,YAA2C;AAAA,IAC/C,SAAS,OAAO;AAAA,IAChB,OAAO,OAAO;AAAA,EAChB;AAEA,MAAI,OAAO,SAAS,QAAQ,OAAO,eAAe,MAAM;AACtD,cAAU,QAAQ;AAAA,MAChB,GAAG,MAAM;AAAA,MACT,GAAG,OAAO;AAAA,MACV,GAAG,OAAO;AAAA,IACZ;AAAA,EAAA;AAGF,MAAI,OAAO,aAAa,QAAQ,OAAO,mBAAmB,MAAM;AAC9D,cAAU,YAAY;AAAA,MACpB,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EAAA;AAGF,MAAI,OAAO,WAAW,QAAQ,OAAO,eAAe;AAClD,cAAU,UAAU;AAAA,MAClB,GAAG,MAAM;AAAA,MACT,GAAG,OAAO;AAAA,MACV,GAAG,OAAO;AAAA,IACZ;AAAA,EAAA;AAGK,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,kBAAkB,CAAC,UAAe;AACtC,QAAM,YAA2C;AAAA,IAC/C,OAAO;AAAA,EACT;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,mBAAmB,CAAC,OAAY,EAAE,WAAgB;AACtD,QAAM,YAA4C;AAAA,IAChD,SAAS,KAAK,OAAO;AAAA,IACrB,OAAO,KAAK,OAAO;AAAA,EACrB;AAEA,MAAI,KAAK,OAAO,SAAS,QAAQ,KAAK,OAAO,aAAa,MAAM;AAC9D,cAAU,QAAQ;AAAA,MAChB,GAAG,MAAM;AAAA,MACT,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,OAAO;AAAA,IACjB;AAAA,EAAA;AAGF,MAAI,KAAK,OAAO,aAAa,QAAQ,KAAK,OAAO,iBAAiB,MAAM;AACtE,cAAU,YAAY;AAAA,MACpB,MAAM;AAAA,MACN,KAAK,OAAO;AAAA,MACZ,KAAK,OAAO;AAAA,IACd;AAAA,EAAA;AAGF,MAAI,KAAK,OAAO,WAAW,QAAQ,KAAK,OAAO,aAAa;AAC1D,cAAU,UAAU;AAAA,MAClB,GAAG,MAAM;AAAA,MACT,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,OAAO;AAAA,IACjB;AAAA,EAAA;AAGK,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEa,MAAA,mBAAwC,CAAC,UAAU;AAExD,QAAA,cAAc,KAAK,iBAAiB;AAEpC,QAAA,eAAe,KAAK,wBAAwB;AAE5C,QAAA,eAAe,KAAK,wBAAwB;AAE5C,QAAA,YAAY,KAAK,eAAe;AAEhC,QAAA,aAAa,KAAK,gBAAgB;AAC1C;AAEA,iBAAiB,aAAa;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
3
  import dayjs from "dayjs";
4
- import { HvOverflowTooltip } from "../../../OverflowTooltip/OverflowTooltip.js";
4
+ import { HvOverflowTooltip } from "../../OverflowTooltip/OverflowTooltip.js";
5
5
  const HvDateColumnCell = ({
6
6
  date,
7
7
  dateFormat
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateColumnCell.js","sources":["../../../../src/Table/renderers/DateColumnCell.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport dayjs from \"dayjs\";\n\nimport { HvOverflowTooltip } from \"../../OverflowTooltip\";\n\nexport interface HvDateColumnCellProp {\n /** The date's text representation format. */\n dateFormat?: string;\n /** Date to render. */\n date?: string;\n}\n\nexport const HvDateColumnCell = ({\n date,\n dateFormat,\n}: HvDateColumnCellProp): JSX.Element => {\n const formattedDate = useMemo(() => {\n if (date)\n return dayjs(date).format(\n dateFormat !== \"ISO8601\" ? dateFormat : undefined,\n );\n return \"—\";\n }, [date, dateFormat]);\n\n return <HvOverflowTooltip data={formattedDate} />;\n};\n"],"names":[],"mappings":";;;;AAYO,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AACF,MAAyC;AACjC,QAAA,gBAAgB,QAAQ,MAAM;AAC9B,QAAA;AACK,aAAA,MAAM,IAAI,EAAE;AAAA,QACjB,eAAe,YAAY,aAAa;AAAA,MAC1C;AACK,WAAA;AAAA,EAAA,GACN,CAAC,MAAM,UAAU,CAAC;AAEd,SAAA,oBAAC,mBAAkB,EAAA,MAAM,cAAe,CAAA;AACjD;"}
@@ -0,0 +1,21 @@
1
+ const EM_DASH = "—";
2
+ const DefaultCell = ({
3
+ row,
4
+ value
5
+ }) => {
6
+ switch (true) {
7
+ case row.subRows.length > 0:
8
+ return value;
9
+ case value instanceof Date:
10
+ return value.toISOString().slice(0, 10);
11
+ case typeof value === "object":
12
+ return value;
13
+ case (value == null || value === ""):
14
+ return EM_DASH;
15
+ default:
16
+ return String(value);
17
+ }
18
+ };
19
+ export {
20
+ DefaultCell
21
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultCell.js","sources":["../../../../src/Table/renderers/DefaultCell.tsx"],"sourcesContent":["import type { HvCellProps } from \"../hooks/useHvTable\";\n\nconst EM_DASH = \"—\";\n\n/** Default cell renderer for `Table`. */\nexport const DefaultCell = <T extends object>({\n row,\n value,\n}: HvCellProps<T, any>) => {\n switch (true) {\n case row.subRows.length > 0:\n // do nothing if row has sub-rows\n return value;\n case value instanceof Date:\n // render date in ISO format\n return value.toISOString().slice(0, 10);\n case typeof value === \"object\":\n // render objects as-is\n return value;\n case value == null || value === \"\":\n // render EM_DASH for empty values\n return EM_DASH;\n default:\n // stringify boolean/bigint/number/etc.\n return String(value);\n }\n};\n"],"names":[],"mappings":"AAEA,MAAM,UAAU;AAGT,MAAM,cAAc,CAAmB;AAAA,EAC5C;AAAA,EACA;AACF,MAA2B;AACzB,UAAQ,MAAM;AAAA,IACZ,KAAK,IAAI,QAAQ,SAAS;AAEjB,aAAA;AAAA,IACT,KAAK,iBAAiB;AAEpB,aAAO,MAAM,YAAA,EAAc,MAAM,GAAG,EAAE;AAAA,IACxC,KAAK,OAAO,UAAU;AAEb,aAAA;AAAA,IACT,MAAK,SAAS,QAAQ,UAAU;AAEvB,aAAA;AAAA,IACT;AAEE,aAAO,OAAO,KAAK;AAAA,EAAA;AAEzB;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { HvDropdown } from "../../../Dropdown/Dropdown.js";
2
+ import { HvDropdown } from "../../Dropdown/Dropdown.js";
3
3
  const HvDropdownColumnCell = ({
4
4
  dropdownProps,
5
5
  ...others
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownColumnCell.js","sources":["../../../../src/Table/renderers/DropdownColumnCell.tsx"],"sourcesContent":["import { HvDropdown, HvDropdownProps } from \"../../Dropdown\";\n\nexport interface HvDropdownColumnCellProp extends HvDropdownProps<false> {\n /** Extra props to be passed onto the dropdown. @deprecated pass props directly */\n dropdownProps?: HvDropdownProps<false>;\n}\n\nexport const HvDropdownColumnCell = ({\n dropdownProps,\n ...others\n}: HvDropdownColumnCellProp) => {\n return <HvDropdown {...dropdownProps} {...others} />;\n};\n"],"names":[],"mappings":";;AAOO,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA,GAAG;AACL,MAAgC;AAC9B,SAAQ,oBAAA,YAAA,EAAY,GAAG,eAAgB,GAAG,OAAQ,CAAA;AACpD;"}
@@ -1,6 +1,24 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import MuiLinearProgress from "@mui/material/LinearProgress";
3
- import { useClasses } from "./ProgressColumnCell.styles.js";
3
+ import { createClasses } from "@hitachivantara/uikit-react-utils";
4
+ import { theme } from "@hitachivantara/uikit-styles";
5
+ const { useClasses } = createClasses("HvProgressColumnCell", {
6
+ root: { display: "flex", width: "100%" },
7
+ linearProgressContainer: { width: "100%", margin: "auto" },
8
+ linearProgress: {
9
+ height: 8
10
+ },
11
+ linearProgressRoot: { backgroundColor: theme.colors.atmo4 },
12
+ linearProgressColorPrimary: {
13
+ backgroundColor: theme.colors.atmo4
14
+ },
15
+ linearProgressBarColorPrimary: {
16
+ backgroundColor: theme.colors.positive
17
+ },
18
+ linearProgressBarColorSecondary: {
19
+ backgroundColor: theme.colors.secondary
20
+ }
21
+ });
4
22
  const normalizeProgressBar = (value, max) => {
5
23
  return max > 0 ? Math.floor(value * 100 / max) : 0;
6
24
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressColumnCell.js","sources":["../../../../src/Table/renderers/ProgressColumnCell.tsx"],"sourcesContent":["import MuiLinearProgress from \"@mui/material/LinearProgress\";\nimport { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nconst { useClasses } = createClasses(\"HvProgressColumnCell\", {\n root: { display: \"flex\", width: \"100%\" },\n linearProgressContainer: { width: \"100%\", margin: \"auto\" },\n linearProgress: {\n height: 8,\n },\n linearProgressRoot: { backgroundColor: theme.colors.atmo4 },\n linearProgressColorPrimary: {\n backgroundColor: theme.colors.atmo4,\n },\n linearProgressBarColorPrimary: {\n backgroundColor: theme.colors.positive,\n },\n linearProgressBarColorSecondary: {\n backgroundColor: theme.colors.secondary,\n },\n});\n\nexport interface HvProgressColumnCellProp {\n /** Current value of the bar. */\n partial: number;\n /** Maximum value of the bar. */\n total: number;\n /** The color of the bar. */\n color?: \"primary\" | \"secondary\";\n \"aria-labelledby\"?: string;\n}\n\nexport const normalizeProgressBar = (value: number, max: number) => {\n return max > 0 ? Math.floor((value * 100) / max) : 0;\n};\n\nexport const HvProgressColumnCell = ({\n partial,\n total,\n color = \"primary\",\n \"aria-labelledby\": ariaLabelledBy,\n}: HvProgressColumnCellProp): JSX.Element => {\n const { classes } = useClasses();\n\n const percentage = normalizeProgressBar(partial, total);\n\n return (\n <div className={classes.root}>\n <div className={classes.linearProgressContainer}>\n <MuiLinearProgress\n className={classes.linearProgress}\n classes={{\n root: classes.linearProgressRoot,\n colorPrimary: classes.linearProgressColorPrimary,\n barColorPrimary: classes.linearProgressBarColorPrimary,\n barColorSecondary: classes.linearProgressBarColorSecondary,\n }}\n color={color}\n variant=\"determinate\"\n value={percentage}\n aria-labelledby={ariaLabelledBy}\n />\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;AAIA,MAAM,EAAE,WAAA,IAAe,cAAc,wBAAwB;AAAA,EAC3D,MAAM,EAAE,SAAS,QAAQ,OAAO,OAAO;AAAA,EACvC,yBAAyB,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,EACzD,gBAAgB;AAAA,IACd,QAAQ;AAAA,EACV;AAAA,EACA,oBAAoB,EAAE,iBAAiB,MAAM,OAAO,MAAM;AAAA,EAC1D,4BAA4B;AAAA,IAC1B,iBAAiB,MAAM,OAAO;AAAA,EAChC;AAAA,EACA,+BAA+B;AAAA,IAC7B,iBAAiB,MAAM,OAAO;AAAA,EAChC;AAAA,EACA,iCAAiC;AAAA,IAC/B,iBAAiB,MAAM,OAAO;AAAA,EAAA;AAElC,CAAC;AAYY,MAAA,uBAAuB,CAAC,OAAe,QAAgB;AAClE,SAAO,MAAM,IAAI,KAAK,MAAO,QAAQ,MAAO,GAAG,IAAI;AACrD;AAEO,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,mBAAmB;AACrB,MAA6C;AACrC,QAAA,EAAE,QAAQ,IAAI,WAAW;AAEzB,QAAA,aAAa,qBAAqB,SAAS,KAAK;AAGpD,SAAA,oBAAC,SAAI,WAAW,QAAQ,MACtB,UAAC,oBAAA,OAAA,EAAI,WAAW,QAAQ,yBACtB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,QAAQ;AAAA,MACnB,SAAS;AAAA,QACP,MAAM,QAAQ;AAAA,QACd,cAAc,QAAQ;AAAA,QACtB,iBAAiB,QAAQ;AAAA,QACzB,mBAAmB,QAAQ;AAAA,MAC7B;AAAA,MACA;AAAA,MACA,SAAQ;AAAA,MACR,OAAO;AAAA,MACP,mBAAiB;AAAA,IAAA;AAAA,KAErB,EACF,CAAA;AAEJ;"}
@@ -1,7 +1,16 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { useClasses } from "./SwitchColumnCell.styles.js";
3
- import { HvTypography } from "../../../Typography/Typography.js";
4
- import { HvBaseSwitch } from "../../../BaseSwitch/BaseSwitch.js";
2
+ import { createClasses } from "@hitachivantara/uikit-react-utils";
3
+ import { HvTypography } from "../../Typography/Typography.js";
4
+ import { HvBaseSwitch } from "../../BaseSwitch/BaseSwitch.js";
5
+ const switchStyle = {
6
+ cursor: "pointer",
7
+ display: "inline-flex",
8
+ marginLeft: "10px"
9
+ };
10
+ const { useClasses } = createClasses("HvSwitchColumnCell", {
11
+ switchNo: switchStyle,
12
+ switchYes: switchStyle
13
+ });
5
14
  const HvSwitchColumnCell = ({
6
15
  checked,
7
16
  value,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchColumnCell.js","sources":["../../../../src/Table/renderers/SwitchColumnCell.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseSwitch, HvBaseSwitchProps } from \"../../BaseSwitch\";\nimport { HvTypography } from \"../../Typography\";\n\nconst switchStyle = {\n cursor: \"pointer\",\n display: \"inline-flex\",\n marginLeft: \"10px\",\n};\n\nconst { useClasses } = createClasses(\"HvSwitchColumnCell\", {\n switchNo: switchStyle,\n switchYes: switchStyle,\n});\n\nexport interface HvSwitchColumnCellProp {\n /** Whether the switch is checked or not. */\n checked: boolean;\n /** The switch label. */\n value: number | string | undefined;\n /** The value of the switch. */\n switchLabel: string;\n /** The right switch label. */\n falseLabel?: string;\n /** The left switch label. */\n trueLabel?: string;\n /** Extra props to be passed to the switch. */\n switchProps?: HvBaseSwitchProps;\n}\n\nexport const HvSwitchColumnCell = ({\n checked,\n value,\n switchLabel,\n falseLabel,\n trueLabel,\n switchProps,\n}: HvSwitchColumnCellProp): JSX.Element => {\n const { classes } = useClasses();\n\n return (\n <>\n {falseLabel != null && (\n <HvTypography\n aria-hidden=\"true\"\n variant=\"body\"\n className={classes.switchNo}\n >\n {falseLabel}\n </HvTypography>\n )}\n <HvBaseSwitch\n checked={checked}\n value={value}\n {...switchProps}\n inputProps={{ \"aria-label\": switchLabel, ...switchProps?.inputProps }}\n />\n {trueLabel != null && (\n <HvTypography\n aria-hidden=\"true\"\n variant=\"body\"\n className={classes.switchYes}\n >\n {trueLabel}\n </HvTypography>\n )}\n </>\n );\n};\n"],"names":[],"mappings":";;;;AAKA,MAAM,cAAc;AAAA,EAClB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AACd;AAEA,MAAM,EAAE,WAAA,IAAe,cAAc,sBAAsB;AAAA,EACzD,UAAU;AAAA,EACV,WAAW;AACb,CAAC;AAiBM,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2C;AACnC,QAAA,EAAE,QAAQ,IAAI,WAAW;AAE/B,SAEK,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,cAAc,QACb;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,SAAQ;AAAA,QACR,WAAW,QAAQ;AAAA,QAElB,UAAA;AAAA,MAAA;AAAA,IACH;AAAA,IAEF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACC,GAAG;AAAA,QACJ,YAAY,EAAE,cAAc,aAAa,GAAG,aAAa,WAAW;AAAA,MAAA;AAAA,IACtE;AAAA,IACC,aAAa,QACZ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,SAAQ;AAAA,QACR,WAAW,QAAQ;AAAA,QAElB,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GAEJ;AAEJ;"}
@@ -2,15 +2,25 @@ import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
2
  import { ClassNames } from "@emotion/react";
3
3
  import { DropUpXS, DropDownXS } from "@hitachivantara/uikit-react-icons";
4
4
  import { setId } from "../../utils/setId.js";
5
- import { hvStringFallback, hvNumberFallback } from "../utils/fallbacks.js";
6
- import { HvDateColumnCell } from "./DateColumnCell/DateColumnCell.js";
5
+ import { HvDateColumnCell } from "./DateColumnCell.js";
6
+ import { HvDropdownColumnCell } from "./DropdownColumnCell.js";
7
+ import { HvProgressColumnCell } from "./ProgressColumnCell.js";
8
+ import { HvSwitchColumnCell } from "./SwitchColumnCell.js";
7
9
  import { HvButton } from "../../Button/Button.js";
8
10
  import { HvTag } from "../../Tag/Tag.js";
9
- import { HvSwitchColumnCell } from "./SwitchColumnCell/SwitchColumnCell.js";
10
- import { HvDropdownColumnCell } from "./DropdownColumnCell/DropdownColumnCell.js";
11
- import { HvProgressColumnCell } from "./ProgressColumnCell/ProgressColumnCell.js";
12
11
  import { HvOverflowTooltip } from "../../OverflowTooltip/OverflowTooltip.js";
13
12
  import { HvTypography } from "../../Typography/Typography.js";
13
+ const EM_DASH = "—";
14
+ const hvStringFallback = (value) => {
15
+ return typeof value === "string" && value !== "" ? value : EM_DASH;
16
+ };
17
+ const hvNumberFallback = (value) => {
18
+ return typeof value === "number" ? value : EM_DASH;
19
+ };
20
+ const hvNodeFallback = (value) => {
21
+ if (!value) return EM_DASH;
22
+ return hvStringFallback(value?.toString()) === EM_DASH ? EM_DASH : value;
23
+ };
14
24
  function hvTextColumn(col, overflowTooltipProps = {}) {
15
25
  return {
16
26
  Cell: ({ value }) => /* @__PURE__ */ jsx(
@@ -183,8 +193,11 @@ export {
183
193
  hvDateColumn,
184
194
  hvDropdownColumn,
185
195
  hvExpandColumn,
196
+ hvNodeFallback,
186
197
  hvNumberColumn,
198
+ hvNumberFallback,
187
199
  hvProgressColumn,
200
+ hvStringFallback,
188
201
  hvSwitchColumn,
189
202
  hvTagColumn,
190
203
  hvTextColumn
@@ -1 +1 @@
1
- {"version":3,"file":"renderers.js","sources":["../../../../src/Table/renderers/renderers.tsx"],"sourcesContent":["import { ClassNames } from \"@emotion/react\";\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseSwitchProps } from \"../../BaseSwitch\";\nimport { HvButton } from \"../../Button\";\nimport { HvDropdownProps } from \"../../Dropdown\";\nimport { HvListValue } from \"../../List\";\nimport {\n HvOverflowTooltip,\n HvOverflowTooltipProps,\n} from \"../../OverflowTooltip\";\nimport { HvTag, HvTagProps } from \"../../Tag\";\nimport { HvTypography } from \"../../Typography\";\nimport { setId } from \"../../utils/setId\";\nimport {\n HvCellProps,\n HvRowInstance,\n HvTableColumnConfig,\n HvTableHeaderRenderer,\n} from \"../hooks/useTable\";\nimport { hvNumberFallback, hvStringFallback } from \"../utils\";\nimport { HvDateColumnCell } from \"./DateColumnCell\";\nimport { HvDropdownColumnCell } from \"./DropdownColumnCell\";\nimport { HvProgressColumnCell } from \"./ProgressColumnCell\";\nimport { HvSwitchColumnCell } from \"./SwitchColumnCell\";\n\nexport function hvTextColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n overflowTooltipProps: Omit<HvOverflowTooltipProps, \"data\"> = {},\n): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => (\n <HvOverflowTooltip\n data={hvStringFallback(value)}\n {...overflowTooltipProps}\n />\n ),\n sortType: \"alphanumeric\",\n ...col,\n };\n}\n\nexport function hvNumberColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(col: HvTableColumnConfig<D, H>): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => <>{hvNumberFallback(value)}</>,\n align: \"right\",\n sortType: \"number\",\n ...col,\n };\n}\n\nexport function hvDateColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n dateFormat?: string,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => (\n <HvDateColumnCell date={value} dateFormat={dateFormat} />\n ),\n sortType: \"alphanumeric\",\n sortDescFirst: true,\n ...col,\n };\n}\n\nexport function hvExpandColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n expandRowButtonAriaLabel: string,\n collapseRowButtonAriaLabel: string,\n getCanRowExpand?: (row: HvRowInstance<D, H>) => boolean,\n ExpandedIcon: React.ReactNode = <DropUpXS />,\n CollapsedIcon: React.ReactNode = <DropDownXS />,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n const expandedProps = row.getToggleRowExpandedProps?.();\n\n const hasContent = getCanRowExpand?.(row) ?? true;\n\n return (\n <ClassNames>\n {({ css }) => (\n <>\n {hasContent && (\n <HvButton\n icon\n aria-label={\n row.isExpanded\n ? collapseRowButtonAriaLabel\n : expandRowButtonAriaLabel\n }\n aria-expanded={row.isExpanded}\n onClick={expandedProps?.onClick}\n classes={{\n root: css({\n position: \"absolute\",\n left: 0,\n top: \"50%\",\n transform: \"translateY(-50%)\",\n }),\n }}\n >\n {row.isExpanded ? ExpandedIcon : CollapsedIcon}\n </HvButton>\n )}\n\n <HvOverflowTooltip data={hvStringFallback(value)} />\n </>\n )}\n </ClassNames>\n );\n },\n sortType: \"alphanumeric\",\n cellStyle: {\n position: \"relative\",\n },\n ...col,\n };\n}\n\nexport function hvTagColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n A extends object = Record<string, unknown>,\n>(\n col: HvTableColumnConfig<D, H>,\n valueDataKey: keyof A,\n colorDataKey: keyof A,\n textColorDataKey: keyof A,\n fromRowData = false,\n tagProps?: HvTagProps,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n if (!value) {\n return <>—</>;\n }\n\n const {\n [valueDataKey]: name,\n [colorDataKey]: color,\n [textColorDataKey]: textColor,\n } = fromRowData ? row.original : value;\n\n return (\n <HvTag\n label={<HvTypography variant=\"body\">{name}</HvTypography>}\n type=\"semantic\"\n color={color}\n style={textColor != null ? { color: textColor } : {}}\n tabIndex={-1}\n {...tagProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\n// TODO - Review accessibility on the next renderers because they all differ\n\nexport function hvSwitchColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n switchLabel: string,\n falseLabel?: string,\n trueLabel?: string,\n switchProps?: HvBaseSwitchProps,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n return (\n <HvSwitchColumnCell\n checked={value}\n value={row.id}\n switchLabel={switchLabel}\n falseLabel={falseLabel}\n trueLabel={trueLabel}\n switchProps={switchProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\nexport function hvDropdownColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n id: string | undefined,\n placeholder: string,\n disabledPlaceholder: string,\n onChange?: (identifier: string, value: HvListValue) => void,\n dropdownProps?: HvDropdownProps<false>,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row, column } = cellProps;\n const disabled =\n !Array.isArray(value) || (Array.isArray(value) && value.length < 1);\n return (\n <HvDropdownColumnCell\n values={value}\n placeholder={disabled ? disabledPlaceholder : placeholder}\n onChange={(val) => onChange?.(row.id, val!)}\n disabled={disabled}\n aria-labelledby={setId(id, column.id) || column.id || id} // TODO - to be reviewed because it doesn't make much sense\n {...dropdownProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\nexport function hvProgressColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n getPartial?: (row: HvRowInstance<D, H>) => number,\n getTotal?: (row: HvRowInstance<D, H>) => number,\n color?: \"primary\" | \"secondary\",\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { row, column } = cellProps;\n const partial = getPartial?.(row) || 0;\n const total = getTotal?.(row);\n\n if (total) {\n return (\n <HvProgressColumnCell\n partial={partial}\n total={total}\n color={color}\n aria-labelledby={column.id}\n />\n );\n }\n\n return <>—</>;\n },\n\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderers.js","sources":["../../../../src/Table/renderers/renderers.tsx"],"sourcesContent":["import { ClassNames } from \"@emotion/react\";\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseSwitchProps } from \"../../BaseSwitch\";\nimport { HvButton } from \"../../Button\";\nimport { HvDropdownProps } from \"../../Dropdown\";\nimport { HvListValue } from \"../../List\";\nimport {\n HvOverflowTooltip,\n HvOverflowTooltipProps,\n} from \"../../OverflowTooltip\";\nimport { HvTag, HvTagProps } from \"../../Tag\";\nimport { HvTypography } from \"../../Typography\";\nimport { setId } from \"../../utils/setId\";\nimport type {\n HvCellProps,\n HvRowInstance,\n HvTableColumnConfig,\n HvTableHeaderRenderer,\n} from \"../hooks/useHvTable\";\nimport { HvDateColumnCell } from \"./DateColumnCell\";\nimport { HvDropdownColumnCell } from \"./DropdownColumnCell\";\nimport { HvProgressColumnCell } from \"./ProgressColumnCell\";\nimport { HvSwitchColumnCell } from \"./SwitchColumnCell\";\n\nconst EM_DASH = \"—\";\n\nexport const hvStringFallback = (value: any) => {\n return typeof value === \"string\" && value !== \"\" ? value : EM_DASH;\n};\n\nexport const hvNumberFallback = (value: any) => {\n return typeof value === \"number\" ? value : EM_DASH;\n};\n\nexport const hvNodeFallback = (value: any) => {\n if (!value) return EM_DASH;\n return hvStringFallback(value?.toString()) === EM_DASH ? EM_DASH : value;\n};\n\nexport function hvTextColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n overflowTooltipProps: Omit<HvOverflowTooltipProps, \"data\"> = {},\n): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => (\n <HvOverflowTooltip\n data={hvStringFallback(value)}\n {...overflowTooltipProps}\n />\n ),\n sortType: \"alphanumeric\",\n ...col,\n };\n}\n\nexport function hvNumberColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(col: HvTableColumnConfig<D, H>): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => <>{hvNumberFallback(value)}</>,\n align: \"right\",\n sortType: \"number\",\n ...col,\n };\n}\n\nexport function hvDateColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n dateFormat?: string,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => (\n <HvDateColumnCell date={value} dateFormat={dateFormat} />\n ),\n sortType: \"alphanumeric\",\n sortDescFirst: true,\n ...col,\n };\n}\n\nexport function hvExpandColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n expandRowButtonAriaLabel: string,\n collapseRowButtonAriaLabel: string,\n getCanRowExpand?: (row: HvRowInstance<D, H>) => boolean,\n ExpandedIcon: React.ReactNode = <DropUpXS />,\n CollapsedIcon: React.ReactNode = <DropDownXS />,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n const expandedProps = row.getToggleRowExpandedProps?.();\n\n const hasContent = getCanRowExpand?.(row) ?? true;\n\n return (\n <ClassNames>\n {({ css }) => (\n <>\n {hasContent && (\n <HvButton\n icon\n aria-label={\n row.isExpanded\n ? collapseRowButtonAriaLabel\n : expandRowButtonAriaLabel\n }\n aria-expanded={row.isExpanded}\n onClick={expandedProps?.onClick}\n classes={{\n root: css({\n position: \"absolute\",\n left: 0,\n top: \"50%\",\n transform: \"translateY(-50%)\",\n }),\n }}\n >\n {row.isExpanded ? ExpandedIcon : CollapsedIcon}\n </HvButton>\n )}\n\n <HvOverflowTooltip data={hvStringFallback(value)} />\n </>\n )}\n </ClassNames>\n );\n },\n sortType: \"alphanumeric\",\n cellStyle: {\n position: \"relative\",\n },\n ...col,\n };\n}\n\nexport function hvTagColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n A extends object = Record<string, unknown>,\n>(\n col: HvTableColumnConfig<D, H>,\n valueDataKey: keyof A,\n colorDataKey: keyof A,\n textColorDataKey: keyof A,\n fromRowData = false,\n tagProps?: HvTagProps,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n if (!value) {\n return <>—</>;\n }\n\n const {\n [valueDataKey]: name,\n [colorDataKey]: color,\n [textColorDataKey]: textColor,\n } = fromRowData ? row.original : value;\n\n return (\n <HvTag\n label={<HvTypography variant=\"body\">{name}</HvTypography>}\n type=\"semantic\"\n color={color}\n style={textColor != null ? { color: textColor } : {}}\n tabIndex={-1}\n {...tagProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\n// TODO - Review accessibility on the next renderers because they all differ\n\nexport function hvSwitchColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n switchLabel: string,\n falseLabel?: string,\n trueLabel?: string,\n switchProps?: HvBaseSwitchProps,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n return (\n <HvSwitchColumnCell\n checked={value}\n value={row.id}\n switchLabel={switchLabel}\n falseLabel={falseLabel}\n trueLabel={trueLabel}\n switchProps={switchProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\nexport function hvDropdownColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n id: string | undefined,\n placeholder: string,\n disabledPlaceholder: string,\n onChange?: (identifier: string, value: HvListValue) => void,\n dropdownProps?: HvDropdownProps<false>,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row, column } = cellProps;\n const disabled =\n !Array.isArray(value) || (Array.isArray(value) && value.length < 1);\n return (\n <HvDropdownColumnCell\n values={value}\n placeholder={disabled ? disabledPlaceholder : placeholder}\n onChange={(val) => onChange?.(row.id, val!)}\n disabled={disabled}\n aria-labelledby={setId(id, column.id) || column.id || id} // TODO - to be reviewed because it doesn't make much sense\n {...dropdownProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\nexport function hvProgressColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n getPartial?: (row: HvRowInstance<D, H>) => number,\n getTotal?: (row: HvRowInstance<D, H>) => number,\n color?: \"primary\" | \"secondary\",\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { row, column } = cellProps;\n const partial = getPartial?.(row) || 0;\n const total = getTotal?.(row);\n\n if (total) {\n return (\n <HvProgressColumnCell\n partial={partial}\n total={total}\n color={color}\n aria-labelledby={column.id}\n />\n );\n }\n\n return <>—</>;\n },\n\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAyBA,MAAM,UAAU;AAEH,MAAA,mBAAmB,CAAC,UAAe;AAC9C,SAAO,OAAO,UAAU,YAAY,UAAU,KAAK,QAAQ;AAC7D;AAEa,MAAA,mBAAmB,CAAC,UAAe;AACvC,SAAA,OAAO,UAAU,WAAW,QAAQ;AAC7C;AAEa,MAAA,iBAAiB,CAAC,UAAe;AACxC,MAAA,CAAC,MAAc,QAAA;AACnB,SAAO,iBAAiB,OAAO,SAAU,CAAA,MAAM,UAAU,UAAU;AACrE;AAEO,SAAS,aAId,KACA,uBAA6D,IAClC;AACpB,SAAA;AAAA,IACL,MAAM,CAAC,EAAE,MAAA,MACP;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,iBAAiB,KAAK;AAAA,QAC3B,GAAG;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,UAAU;AAAA,IACV,GAAG;AAAA,EACL;AACF;AAEO,SAAS,eAGd,KAA2D;AACpD,SAAA;AAAA,IACL,MAAM,CAAC,EAAE,MAAA,MAAkC,oBAAA,UAAA,EAAA,UAAA,iBAAiB,KAAK,GAAE;AAAA,IACnE,OAAO;AAAA,IACP,UAAU;AAAA,IACV,GAAG;AAAA,EACL;AACF;AAEgB,SAAA,aAId,KACA,YAC2B;AACpB,SAAA;AAAA,IACL,MAAM,CAAC,EAAE,MAAA,MACN,oBAAA,kBAAA,EAAiB,MAAM,OAAO,YAAwB;AAAA,IAEzD,UAAU;AAAA,IACV,eAAe;AAAA,IACf,GAAG;AAAA,EACL;AACF;AAEO,SAAS,eAId,KACA,0BACA,4BACA,iBACA,eAAiC,oBAAA,UAAA,CAAA,CAAS,GAC1C,gBAAkC,oBAAA,YAAA,CAAW,CAAA,GAClB;AACpB,SAAA;AAAA,IACL,MAAM,CAAC,cAAiC;AAChC,YAAA,EAAE,OAAO,IAAA,IAAQ;AACjB,YAAA,gBAAgB,IAAI,4BAA4B;AAEhD,YAAA,aAAa,kBAAkB,GAAG,KAAK;AAE7C,iCACG,YACE,EAAA,UAAA,CAAC,EAAE,IAAA,MAEC,qBAAA,UAAA,EAAA,UAAA;AAAA,QACC,cAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAI;AAAA,YACJ,cACE,IAAI,aACA,6BACA;AAAA,YAEN,iBAAe,IAAI;AAAA,YACnB,SAAS,eAAe;AAAA,YACxB,SAAS;AAAA,cACP,MAAM,IAAI;AAAA,gBACR,UAAU;AAAA,gBACV,MAAM;AAAA,gBACN,KAAK;AAAA,gBACL,WAAW;AAAA,cACZ,CAAA;AAAA,YACH;AAAA,YAEC,UAAA,IAAI,aAAa,eAAe;AAAA,UAAA;AAAA,QACnC;AAAA,QAGD,oBAAA,mBAAA,EAAkB,MAAM,iBAAiB,KAAK,EAAG,CAAA;AAAA,MAAA,EAAA,CACpD,EAEJ,CAAA;AAAA,IAEJ;AAAA,IACA,UAAU;AAAA,IACV,WAAW;AAAA,MACT,UAAU;AAAA,IACZ;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAEO,SAAS,YAKd,KACA,cACA,cACA,kBACA,cAAc,OACd,UAC2B;AACpB,SAAA;AAAA,IACL,MAAM,CAAC,cAAiC;AAChC,YAAA,EAAE,OAAO,IAAA,IAAQ;AACvB,UAAI,CAAC,OAAO;AACV,+CAAS,UAAC,IAAA,CAAA;AAAA,MAAA;AAGN,YAAA;AAAA,QACJ,CAAC,YAAY,GAAG;AAAA,QAChB,CAAC,YAAY,GAAG;AAAA,QAChB,CAAC,gBAAgB,GAAG;AAAA,MAAA,IAClB,cAAc,IAAI,WAAW;AAG/B,aAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO,oBAAC,cAAa,EAAA,SAAQ,QAAQ,UAAK,MAAA;AAAA,UAC1C,MAAK;AAAA,UACL;AAAA,UACA,OAAO,aAAa,OAAO,EAAE,OAAO,cAAc,CAAC;AAAA,UACnD,UAAU;AAAA,UACT,GAAG;AAAA,QAAA;AAAA,MACN;AAAA,IAEJ;AAAA,IACA,WAAW;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,IACjB;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAIO,SAAS,eAId,KACA,aACA,YACA,WACA,aAC2B;AACpB,SAAA;AAAA,IACL,MAAM,CAAC,cAAiC;AAChC,YAAA,EAAE,OAAO,IAAA,IAAQ;AAErB,aAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,OAAO,IAAI;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IAEJ;AAAA,IACA,WAAW;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,IACjB;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAEO,SAAS,iBAId,KACA,IACA,aACA,qBACA,UACA,eAC2B;AACpB,SAAA;AAAA,IACL,MAAM,CAAC,cAAiC;AACtC,YAAM,EAAE,OAAO,KAAK,OAAW,IAAA;AACzB,YAAA,WACJ,CAAC,MAAM,QAAQ,KAAK,KAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS;AAEjE,aAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,QAAQ;AAAA,UACR,aAAa,WAAW,sBAAsB;AAAA,UAC9C,UAAU,CAAC,QAAQ,WAAW,IAAI,IAAI,GAAI;AAAA,UAC1C;AAAA,UACA,mBAAiB,MAAM,IAAI,OAAO,EAAE,KAAK,OAAO,MAAM;AAAA,UACrD,GAAG;AAAA,QAAA;AAAA,MACN;AAAA,IAEJ;AAAA,IACA,WAAW;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,IACjB;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAEO,SAAS,iBAId,KACA,YACA,UACA,OAC2B;AACpB,SAAA;AAAA,IACL,MAAM,CAAC,cAAiC;AAChC,YAAA,EAAE,KAAK,OAAA,IAAW;AAClB,YAAA,UAAU,aAAa,GAAG,KAAK;AAC/B,YAAA,QAAQ,WAAW,GAAG;AAE5B,UAAI,OAAO;AAEP,eAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,mBAAiB,OAAO;AAAA,UAAA;AAAA,QAC1B;AAAA,MAAA;AAIJ,6CAAS,UAAC,IAAA,CAAA;AAAA,IACZ;AAAA,IAEA,WAAW;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,IACjB;AAAA,IACA,GAAG;AAAA,EACL;AACF;"}