@osdk/react-components 0.1.0 → 0.2.0-beta.10

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 (609) hide show
  1. package/CHANGELOG.md +98 -19
  2. package/README.md +56 -23
  3. package/build/browser/base-components/action-button/ActionButton.js +31 -0
  4. package/build/browser/base-components/action-button/ActionButton.js.map +1 -0
  5. package/build/browser/base-components/action-button/ActionButton.module.css +70 -0
  6. package/build/browser/base-components/action-button/ActionButton.module.css.js +8 -0
  7. package/build/browser/base-components/checkbox/Checkbox.js +27 -32
  8. package/build/browser/base-components/checkbox/Checkbox.module.css +79 -0
  9. package/build/browser/base-components/checkbox/Checkbox.module.css.js +7 -0
  10. package/build/browser/base-components/combobox/Combobox.js +124 -0
  11. package/build/browser/base-components/combobox/Combobox.js.map +1 -0
  12. package/build/browser/base-components/combobox/Combobox.module.css +177 -0
  13. package/build/browser/base-components/combobox/Combobox.module.css.js +16 -0
  14. package/build/browser/base-components/dialog/Dialog.js +52 -0
  15. package/build/browser/base-components/dialog/Dialog.js.map +1 -0
  16. package/build/browser/base-components/dialog/Dialog.module.css +101 -0
  17. package/build/browser/base-components/dialog/Dialog.module.css.js +13 -0
  18. package/build/browser/base-components/draggable-list/DraggableList.js +155 -0
  19. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -0
  20. package/build/browser/base-components/draggable-list/DraggableList.module.css +108 -0
  21. package/build/browser/base-components/draggable-list/DraggableList.module.css.js +11 -0
  22. package/build/browser/base-components/search-bar/SearchBar.js +44 -0
  23. package/build/browser/base-components/search-bar/SearchBar.js.map +1 -0
  24. package/build/browser/base-components/search-bar/SearchBar.module.css +53 -0
  25. package/build/browser/base-components/search-bar/SearchBar.module.css.js +8 -0
  26. package/build/browser/base-components/select/Select.js +89 -0
  27. package/build/browser/base-components/select/Select.js.map +1 -0
  28. package/build/browser/base-components/select/Select.module.css +138 -0
  29. package/build/browser/base-components/select/Select.module.css.js +11 -0
  30. package/build/browser/base-components/switch/Switch.js +33 -0
  31. package/build/browser/base-components/switch/Switch.js.map +1 -0
  32. package/build/browser/base-components/switch/Switch.module.css +91 -0
  33. package/build/browser/base-components/switch/Switch.module.css.js +7 -0
  34. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  35. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  36. package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js +202 -0
  37. package/build/browser/filter-list/__tests__/LinkedPropertyInput.test.js.map +1 -0
  38. package/build/browser/filter-list/__tests__/dateUtils.test.js +55 -0
  39. package/build/browser/filter-list/__tests__/dateUtils.test.js.map +1 -0
  40. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +296 -0
  41. package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +1 -0
  42. package/build/browser/filter-list/__tests__/getFilterKey.test.js +53 -0
  43. package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +1 -0
  44. package/build/browser/filter-list/__tests__/testUtils.js +203 -0
  45. package/build/browser/filter-list/__tests__/testUtils.js.map +1 -0
  46. package/build/browser/filter-list/base/FilterInput.js +542 -0
  47. package/build/browser/filter-list/base/FilterInput.js.map +1 -0
  48. package/build/browser/filter-list/base/FilterList.js +77 -0
  49. package/build/browser/filter-list/base/FilterList.js.map +1 -0
  50. package/build/browser/filter-list/base/FilterList.module.css +67 -0
  51. package/build/browser/filter-list/base/FilterList.module.css.js +8 -0
  52. package/build/browser/filter-list/base/FilterListContent.js +57 -0
  53. package/build/browser/filter-list/base/FilterListContent.js.map +1 -0
  54. package/build/browser/filter-list/base/FilterListContent.module.css +27 -0
  55. package/build/browser/filter-list/base/FilterListContent.module.css.js +7 -0
  56. package/build/browser/filter-list/base/FilterListHeader.js +58 -0
  57. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -0
  58. package/build/browser/filter-list/base/FilterListHeader.module.css +127 -0
  59. package/build/browser/filter-list/base/FilterListHeader.module.css.js +13 -0
  60. package/build/browser/filter-list/base/FilterListItem.js +75 -0
  61. package/build/browser/filter-list/base/FilterListItem.js.map +1 -0
  62. package/build/browser/filter-list/base/FilterListItem.module.css +38 -0
  63. package/build/browser/filter-list/base/FilterListItem.module.css.js +9 -0
  64. package/build/browser/filter-list/base/index.js +22 -0
  65. package/build/browser/filter-list/base/index.js.map +1 -0
  66. package/build/browser/filter-list/base/inputs/CheckboxListInput.js +75 -0
  67. package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  68. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css +42 -0
  69. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css.js +9 -0
  70. package/build/browser/filter-list/base/inputs/ContainsTextInput.js +85 -0
  71. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  72. package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  73. package/build/browser/filter-list/base/inputs/ContainsTextInput.module.css.js +10 -0
  74. package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
  75. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  76. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js +237 -0
  77. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js.map +1 -0
  78. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  79. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
  80. package/build/browser/filter-list/base/inputs/ListogramInput.js +98 -0
  81. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
  82. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +88 -0
  83. package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +12 -0
  84. package/build/browser/filter-list/base/inputs/MultiDateInput.js +82 -0
  85. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  86. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +54 -0
  87. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css.js +9 -0
  88. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +100 -0
  89. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  90. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +35 -0
  91. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +9 -0
  92. package/build/browser/filter-list/base/inputs/NullValueWrapper.js +76 -0
  93. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  94. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +49 -0
  95. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
  96. package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
  97. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  98. package/build/browser/filter-list/base/inputs/RangeInput.js +187 -0
  99. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
  100. package/build/browser/filter-list/base/inputs/RangeInput.module.css +81 -0
  101. package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
  102. package/build/browser/filter-list/base/inputs/SingleDateInput.js +61 -0
  103. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  104. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +63 -0
  105. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css.js +9 -0
  106. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +95 -0
  107. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  108. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  109. package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +8 -0
  110. package/build/browser/filter-list/base/inputs/TextTagsInput.js +141 -0
  111. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  112. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  113. package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
  114. package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
  115. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
  116. package/build/browser/filter-list/base/inputs/TimelineInput.module.css +73 -0
  117. package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
  118. package/build/browser/filter-list/base/inputs/ToggleInput.js +43 -0
  119. package/build/browser/filter-list/base/inputs/ToggleInput.js.map +1 -0
  120. package/build/browser/filter-list/base/inputs/ToggleInput.module.css +34 -0
  121. package/build/browser/filter-list/base/inputs/ToggleInput.module.css.js +8 -0
  122. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  123. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  124. package/build/browser/filter-list/base/inputs/dateUtils.js +57 -0
  125. package/build/browser/filter-list/base/inputs/dateUtils.js.map +1 -0
  126. package/build/browser/filter-list/base/inputs/index.js +25 -0
  127. package/build/browser/filter-list/base/inputs/index.js.map +1 -0
  128. package/build/browser/filter-list/base/inputs/shared.module.css +79 -0
  129. package/build/browser/filter-list/base/inputs/shared.module.css.js +11 -0
  130. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +128 -0
  131. package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +1 -0
  132. package/build/browser/filter-list/hooks/useFilterListState.js +119 -0
  133. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -0
  134. package/build/browser/filter-list/hooks/usePropertyAggregation.js +92 -0
  135. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  136. package/build/browser/filter-list/types/AddFilterMenuTypes.js +2 -0
  137. package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +1 -0
  138. package/build/browser/filter-list/types/CustomRendererTypes.js +2 -0
  139. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -0
  140. package/build/browser/filter-list/types/FilterPanelTypes.js +2 -0
  141. package/build/browser/filter-list/types/FilterPanelTypes.js.map +1 -0
  142. package/build/browser/filter-list/types/KeywordSearchTypes.js +2 -0
  143. package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -0
  144. package/build/browser/filter-list/types/LinkedFilterTypes.js +2 -0
  145. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -0
  146. package/build/browser/filter-list/types/index.js +22 -0
  147. package/build/browser/filter-list/types/index.js.map +1 -0
  148. package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
  149. package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -0
  150. package/build/browser/filter-list/utils/assertUnreachable.js +25 -0
  151. package/build/browser/filter-list/utils/assertUnreachable.js.map +1 -0
  152. package/build/browser/filter-list/utils/coerceFilterValue.js +33 -0
  153. package/build/browser/filter-list/utils/coerceFilterValue.js.map +1 -0
  154. package/build/browser/filter-list/utils/filterStateToWhereClause.js +337 -0
  155. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  156. package/build/browser/filter-list/utils/filterValues.js +55 -0
  157. package/build/browser/filter-list/utils/filterValues.js.map +1 -0
  158. package/build/browser/filter-list/utils/getFilterKey.js +34 -0
  159. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -0
  160. package/build/browser/object-table/CellContextMenu.js +23 -20
  161. package/build/browser/object-table/CellContextMenu.module.css +20 -0
  162. package/build/browser/object-table/CellContextMenu.module.css.js +6 -0
  163. package/build/browser/object-table/ColumnConfigDialog.js +259 -0
  164. package/build/browser/object-table/ColumnConfigDialog.js.map +1 -0
  165. package/build/browser/object-table/ColumnConfigDialog.module.css +247 -0
  166. package/build/browser/object-table/ColumnConfigDialog.module.css.js +29 -0
  167. package/build/browser/object-table/DefaultCellRenderer.js +43 -0
  168. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -0
  169. package/build/browser/object-table/EditableCell.js +91 -0
  170. package/build/browser/object-table/EditableCell.js.map +1 -0
  171. package/build/browser/object-table/EditableCell.module.css +3 -0
  172. package/build/browser/object-table/EditableCell.module.css.js +6 -0
  173. package/build/browser/object-table/LoadingCell.js +24 -29
  174. package/build/browser/object-table/LoadingCell.module.css +48 -0
  175. package/build/browser/object-table/LoadingCell.module.css.js +8 -0
  176. package/build/browser/object-table/LoadingRow.js +24 -50
  177. package/build/browser/object-table/LoadingStateTable.js +49 -343
  178. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  179. package/build/browser/object-table/MultiColumnSortDialog.js +178 -0
  180. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -0
  181. package/build/browser/object-table/MultiColumnSortDialog.module.css +195 -0
  182. package/build/browser/object-table/MultiColumnSortDialog.module.css.js +22 -0
  183. package/build/browser/object-table/NonIdealState.js +23 -20
  184. package/build/browser/object-table/NonIdealState.module.css +27 -0
  185. package/build/browser/object-table/NonIdealState.module.css.js +7 -0
  186. package/build/browser/object-table/ObjectTable.js +74 -15
  187. package/build/browser/object-table/ObjectTable.js.map +1 -1
  188. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  189. package/build/browser/object-table/SelectionCells.js +15 -4
  190. package/build/browser/object-table/SelectionCells.js.map +1 -1
  191. package/build/browser/object-table/SortableItemsList.js +35 -0
  192. package/build/browser/object-table/SortableItemsList.js.map +1 -0
  193. package/build/browser/object-table/Table.js +70 -935
  194. package/build/browser/object-table/Table.js.map +1 -1
  195. package/build/browser/object-table/Table.module.css +45 -0
  196. package/build/browser/object-table/Table.module.css.js +8 -0
  197. package/build/browser/object-table/TableBody.js +36 -260
  198. package/build/browser/object-table/TableBody.module.css +22 -0
  199. package/build/browser/object-table/TableBody.module.css.js +6 -0
  200. package/build/browser/object-table/TableCell.js +31 -111
  201. package/build/browser/object-table/TableCell.module.css +83 -0
  202. package/build/browser/object-table/TableCell.module.css.js +8 -0
  203. package/build/browser/object-table/TableHeader.js +126 -216
  204. package/build/browser/object-table/TableHeader.js.map +1 -1
  205. package/build/browser/object-table/TableHeader.module.css +108 -0
  206. package/build/browser/object-table/TableHeader.module.css.js +10 -0
  207. package/build/browser/object-table/TableHeaderContent.js +21 -18
  208. package/build/browser/object-table/TableHeaderContent.module.css +30 -0
  209. package/build/browser/object-table/TableHeaderContent.module.css.js +6 -0
  210. package/build/browser/object-table/TableHeaderWithPopover.js +110 -93
  211. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  212. package/build/browser/object-table/TableHeaderWithPopover.module.css +141 -0
  213. package/build/browser/object-table/TableHeaderWithPopover.module.css.js +17 -0
  214. package/build/browser/object-table/TableRow.js +26 -144
  215. package/build/browser/object-table/TableRow.module.css +62 -0
  216. package/build/browser/object-table/TableRow.module.css.js +6 -0
  217. package/build/browser/object-table/__tests__/useEditableTable.test.js +197 -0
  218. package/build/browser/object-table/__tests__/useEditableTable.test.js.map +1 -0
  219. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +14 -2
  220. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
  221. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +160 -138
  222. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +1 -1
  223. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +113 -25
  224. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
  225. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +48 -0
  226. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -1
  227. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +27 -82
  228. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -1
  229. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +290 -0
  230. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +1 -1
  231. package/build/browser/object-table/hooks/useColumnDefs.js +16 -3
  232. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  233. package/build/browser/object-table/hooks/useColumnResize.js +45 -0
  234. package/build/browser/object-table/hooks/useColumnResize.js.map +1 -0
  235. package/build/browser/object-table/hooks/useColumnVisibility.js +52 -20
  236. package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
  237. package/build/browser/object-table/hooks/useEditableTable.js +57 -0
  238. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -0
  239. package/build/browser/object-table/hooks/useObjectTableData.js +42 -7
  240. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  241. package/build/browser/object-table/hooks/useRowSelection.js +31 -10
  242. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  243. package/build/browser/object-table/hooks/useSelectionColumn.js +15 -6
  244. package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
  245. package/build/browser/object-table/utils/getCellId.js +27 -0
  246. package/build/browser/object-table/utils/getCellId.js.map +1 -0
  247. package/build/browser/object-table/utils/types.js +2 -0
  248. package/build/browser/object-table/utils/types.js.map +1 -0
  249. package/build/browser/public/experimental.js +2 -0
  250. package/build/browser/public/experimental.js.map +1 -1
  251. package/build/browser/shared/ErrorBoundary.js +62 -0
  252. package/build/browser/shared/ErrorBoundary.js.map +1 -0
  253. package/build/browser/shared/ErrorBoundary.module.css +55 -0
  254. package/build/browser/shared/ErrorBoundary.module.css.js +8 -0
  255. package/build/browser/styles.css +3073 -0
  256. package/build/cjs/public/experimental.cjs +4026 -240
  257. package/build/cjs/public/experimental.cjs.map +1 -1
  258. package/build/cjs/public/experimental.css +1834 -154
  259. package/build/cjs/public/experimental.css.map +1 -1
  260. package/build/cjs/public/experimental.d.cts +453 -50
  261. package/build/esm/base-components/action-button/ActionButton.js +31 -0
  262. package/build/esm/base-components/action-button/ActionButton.js.map +1 -0
  263. package/build/esm/base-components/action-button/ActionButton.module.css +70 -0
  264. package/build/esm/base-components/checkbox/Checkbox.module.css +1 -1
  265. package/build/esm/base-components/combobox/Combobox.js +124 -0
  266. package/build/esm/base-components/combobox/Combobox.js.map +1 -0
  267. package/build/esm/base-components/combobox/Combobox.module.css +177 -0
  268. package/build/esm/base-components/dialog/Dialog.js +52 -0
  269. package/build/esm/base-components/dialog/Dialog.js.map +1 -0
  270. package/build/esm/base-components/dialog/Dialog.module.css +101 -0
  271. package/build/esm/base-components/draggable-list/DraggableList.js +155 -0
  272. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -0
  273. package/build/esm/base-components/draggable-list/DraggableList.module.css +108 -0
  274. package/build/esm/base-components/search-bar/SearchBar.js +44 -0
  275. package/build/esm/base-components/search-bar/SearchBar.js.map +1 -0
  276. package/build/esm/base-components/search-bar/SearchBar.module.css +53 -0
  277. package/build/esm/base-components/select/Select.js +89 -0
  278. package/build/esm/base-components/select/Select.js.map +1 -0
  279. package/build/esm/base-components/select/Select.module.css +138 -0
  280. package/build/esm/base-components/switch/Switch.js +33 -0
  281. package/build/esm/base-components/switch/Switch.js.map +1 -0
  282. package/build/esm/base-components/switch/Switch.module.css +91 -0
  283. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  284. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  285. package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js +202 -0
  286. package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js.map +1 -0
  287. package/build/esm/filter-list/__tests__/dateUtils.test.js +55 -0
  288. package/build/esm/filter-list/__tests__/dateUtils.test.js.map +1 -0
  289. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +296 -0
  290. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +1 -0
  291. package/build/esm/filter-list/__tests__/getFilterKey.test.js +53 -0
  292. package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +1 -0
  293. package/build/esm/filter-list/__tests__/testUtils.js +203 -0
  294. package/build/esm/filter-list/__tests__/testUtils.js.map +1 -0
  295. package/build/esm/filter-list/base/FilterInput.js +542 -0
  296. package/build/esm/filter-list/base/FilterInput.js.map +1 -0
  297. package/build/esm/filter-list/base/FilterList.js +77 -0
  298. package/build/esm/filter-list/base/FilterList.js.map +1 -0
  299. package/build/esm/filter-list/base/FilterList.module.css +67 -0
  300. package/build/esm/filter-list/base/FilterListContent.js +57 -0
  301. package/build/esm/filter-list/base/FilterListContent.js.map +1 -0
  302. package/build/esm/filter-list/base/FilterListContent.module.css +27 -0
  303. package/build/esm/filter-list/base/FilterListHeader.js +58 -0
  304. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -0
  305. package/build/esm/filter-list/base/FilterListHeader.module.css +127 -0
  306. package/build/esm/filter-list/base/FilterListItem.js +75 -0
  307. package/build/esm/filter-list/base/FilterListItem.js.map +1 -0
  308. package/build/esm/filter-list/base/FilterListItem.module.css +38 -0
  309. package/build/esm/filter-list/base/index.js +22 -0
  310. package/build/esm/filter-list/base/index.js.map +1 -0
  311. package/build/esm/filter-list/base/inputs/CheckboxListInput.js +75 -0
  312. package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  313. package/build/esm/filter-list/base/inputs/CheckboxListInput.module.css +42 -0
  314. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +85 -0
  315. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  316. package/build/esm/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  317. package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
  318. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  319. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js +237 -0
  320. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js.map +1 -0
  321. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  322. package/build/esm/filter-list/base/inputs/ListogramInput.js +98 -0
  323. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
  324. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +88 -0
  325. package/build/esm/filter-list/base/inputs/MultiDateInput.js +82 -0
  326. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  327. package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +54 -0
  328. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +100 -0
  329. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  330. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +35 -0
  331. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +76 -0
  332. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  333. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +49 -0
  334. package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
  335. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  336. package/build/esm/filter-list/base/inputs/RangeInput.js +187 -0
  337. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
  338. package/build/esm/filter-list/base/inputs/RangeInput.module.css +81 -0
  339. package/build/esm/filter-list/base/inputs/SingleDateInput.js +61 -0
  340. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  341. package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +63 -0
  342. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +95 -0
  343. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  344. package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  345. package/build/esm/filter-list/base/inputs/TextTagsInput.js +141 -0
  346. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  347. package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  348. package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
  349. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
  350. package/build/esm/filter-list/base/inputs/TimelineInput.module.css +73 -0
  351. package/build/esm/filter-list/base/inputs/ToggleInput.js +43 -0
  352. package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -0
  353. package/build/esm/filter-list/base/inputs/ToggleInput.module.css +34 -0
  354. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  355. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  356. package/build/esm/filter-list/base/inputs/dateUtils.js +57 -0
  357. package/build/esm/filter-list/base/inputs/dateUtils.js.map +1 -0
  358. package/build/esm/filter-list/base/inputs/index.js +25 -0
  359. package/build/esm/filter-list/base/inputs/index.js.map +1 -0
  360. package/build/esm/filter-list/base/inputs/shared.module.css +79 -0
  361. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +128 -0
  362. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +1 -0
  363. package/build/esm/filter-list/hooks/useFilterListState.js +119 -0
  364. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -0
  365. package/build/esm/filter-list/hooks/usePropertyAggregation.js +92 -0
  366. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  367. package/build/esm/filter-list/types/AddFilterMenuTypes.js +2 -0
  368. package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +1 -0
  369. package/build/esm/filter-list/types/CustomRendererTypes.js +2 -0
  370. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -0
  371. package/build/esm/filter-list/types/FilterPanelTypes.js +2 -0
  372. package/build/esm/filter-list/types/FilterPanelTypes.js.map +1 -0
  373. package/build/esm/filter-list/types/KeywordSearchTypes.js +2 -0
  374. package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -0
  375. package/build/esm/filter-list/types/LinkedFilterTypes.js +2 -0
  376. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -0
  377. package/build/esm/filter-list/types/index.js +22 -0
  378. package/build/esm/filter-list/types/index.js.map +1 -0
  379. package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
  380. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
  381. package/build/esm/filter-list/utils/assertUnreachable.js +25 -0
  382. package/build/esm/filter-list/utils/assertUnreachable.js.map +1 -0
  383. package/build/esm/filter-list/utils/coerceFilterValue.js +33 -0
  384. package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -0
  385. package/build/esm/filter-list/utils/filterStateToWhereClause.js +337 -0
  386. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  387. package/build/esm/filter-list/utils/filterValues.js +55 -0
  388. package/build/esm/filter-list/utils/filterValues.js.map +1 -0
  389. package/build/esm/filter-list/utils/getFilterKey.js +34 -0
  390. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -0
  391. package/build/esm/object-table/ColumnConfigDialog.js +259 -0
  392. package/build/esm/object-table/ColumnConfigDialog.js.map +1 -0
  393. package/build/esm/object-table/ColumnConfigDialog.module.css +247 -0
  394. package/build/esm/object-table/DefaultCellRenderer.js +43 -0
  395. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -0
  396. package/build/esm/object-table/EditableCell.js +91 -0
  397. package/build/esm/object-table/EditableCell.js.map +1 -0
  398. package/build/esm/object-table/EditableCell.module.css +3 -0
  399. package/build/esm/object-table/LoadingStateTable.js +4 -4
  400. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  401. package/build/esm/object-table/MultiColumnSortDialog.js +178 -0
  402. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -0
  403. package/build/esm/object-table/MultiColumnSortDialog.module.css +195 -0
  404. package/build/esm/object-table/NonIdealState.module.css +2 -3
  405. package/build/esm/object-table/ObjectTable.js +74 -15
  406. package/build/esm/object-table/ObjectTable.js.map +1 -1
  407. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  408. package/build/esm/object-table/SelectionCells.js +15 -4
  409. package/build/esm/object-table/SelectionCells.js.map +1 -1
  410. package/build/esm/object-table/SortableItemsList.js +35 -0
  411. package/build/esm/object-table/SortableItemsList.js.map +1 -0
  412. package/build/esm/object-table/Table.js +25 -8
  413. package/build/esm/object-table/Table.js.map +1 -1
  414. package/build/esm/object-table/Table.module.css +26 -3
  415. package/build/esm/object-table/TableBody.module.css +2 -0
  416. package/build/esm/object-table/TableCell.module.css +22 -1
  417. package/build/esm/object-table/TableHeader.js +93 -6
  418. package/build/esm/object-table/TableHeader.js.map +1 -1
  419. package/build/esm/object-table/TableHeader.module.css +9 -2
  420. package/build/esm/object-table/TableHeaderWithPopover.js +53 -22
  421. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  422. package/build/esm/object-table/TableHeaderWithPopover.module.css +56 -25
  423. package/build/esm/object-table/TableRow.module.css +2 -0
  424. package/build/esm/object-table/__tests__/useEditableTable.test.js +197 -0
  425. package/build/esm/object-table/__tests__/useEditableTable.test.js.map +1 -0
  426. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +14 -2
  427. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
  428. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +160 -138
  429. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +1 -1
  430. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +113 -25
  431. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
  432. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +48 -0
  433. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -1
  434. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +27 -82
  435. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -1
  436. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +290 -0
  437. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +1 -1
  438. package/build/esm/object-table/hooks/useColumnDefs.js +16 -3
  439. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  440. package/build/esm/object-table/hooks/useColumnResize.js +45 -0
  441. package/build/esm/object-table/hooks/useColumnResize.js.map +1 -0
  442. package/build/esm/object-table/hooks/useColumnVisibility.js +52 -20
  443. package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
  444. package/build/esm/object-table/hooks/useEditableTable.js +57 -0
  445. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -0
  446. package/build/esm/object-table/hooks/useObjectTableData.js +42 -7
  447. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  448. package/build/esm/object-table/hooks/useRowSelection.js +31 -10
  449. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  450. package/build/esm/object-table/hooks/useSelectionColumn.js +15 -6
  451. package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
  452. package/build/esm/object-table/utils/getCellId.js +27 -0
  453. package/build/esm/object-table/utils/getCellId.js.map +1 -0
  454. package/build/esm/object-table/utils/types.js +2 -0
  455. package/build/esm/object-table/utils/types.js.map +1 -0
  456. package/build/esm/public/experimental.js +2 -0
  457. package/build/esm/public/experimental.js.map +1 -1
  458. package/build/esm/shared/ErrorBoundary.js +62 -0
  459. package/build/esm/shared/ErrorBoundary.js.map +1 -0
  460. package/build/esm/shared/ErrorBoundary.module.css +55 -0
  461. package/build/types/base-components/action-button/ActionButton.d.ts +5 -0
  462. package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -0
  463. package/build/types/base-components/combobox/Combobox.d.ts +52 -0
  464. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
  465. package/build/types/base-components/dialog/Dialog.d.ts +10 -0
  466. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -0
  467. package/build/types/base-components/draggable-list/DraggableList.d.ts +17 -0
  468. package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -0
  469. package/build/types/base-components/search-bar/SearchBar.d.ts +11 -0
  470. package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -0
  471. package/build/types/base-components/select/Select.d.ts +34 -0
  472. package/build/types/base-components/select/Select.d.ts.map +1 -0
  473. package/build/types/base-components/switch/Switch.d.ts +10 -0
  474. package/build/types/base-components/switch/Switch.d.ts.map +1 -0
  475. package/build/types/filter-list/FilterListApi.d.ts +62 -17
  476. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  477. package/build/types/filter-list/FilterListItemApi.d.ts +101 -53
  478. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  479. package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts +1 -0
  480. package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts.map +1 -0
  481. package/build/types/filter-list/__tests__/dateUtils.test.d.ts +1 -0
  482. package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +1 -0
  483. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +1 -0
  484. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +1 -0
  485. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +1 -0
  486. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +1 -0
  487. package/build/types/filter-list/__tests__/testUtils.d.ts +65 -0
  488. package/build/types/filter-list/__tests__/testUtils.d.ts.map +1 -0
  489. package/build/types/filter-list/base/FilterInput.d.ts +15 -0
  490. package/build/types/filter-list/base/FilterInput.d.ts.map +1 -0
  491. package/build/types/filter-list/base/FilterList.d.ts +4 -0
  492. package/build/types/filter-list/base/FilterList.d.ts.map +1 -0
  493. package/build/types/filter-list/base/FilterListContent.d.ts +16 -0
  494. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -0
  495. package/build/types/filter-list/base/FilterListHeader.d.ts +14 -0
  496. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -0
  497. package/build/types/filter-list/base/FilterListItem.d.ts +18 -0
  498. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -0
  499. package/build/types/filter-list/base/index.d.ts +5 -0
  500. package/build/types/filter-list/base/index.d.ts.map +1 -0
  501. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts +21 -0
  502. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts.map +1 -0
  503. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts +13 -0
  504. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -0
  505. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +22 -0
  506. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
  507. package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts +21 -0
  508. package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts.map +1 -0
  509. package/build/types/filter-list/base/inputs/ListogramInput.d.ts +22 -0
  510. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
  511. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts +12 -0
  512. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -0
  513. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +24 -0
  514. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
  515. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +21 -0
  516. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
  517. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +22 -0
  518. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
  519. package/build/types/filter-list/base/inputs/RangeInput.d.ts +37 -0
  520. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
  521. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts +13 -0
  522. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -0
  523. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +24 -0
  524. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
  525. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +24 -0
  526. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
  527. package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
  528. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
  529. package/build/types/filter-list/base/inputs/ToggleInput.d.ts +10 -0
  530. package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -0
  531. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
  532. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
  533. package/build/types/filter-list/base/inputs/dateUtils.d.ts +17 -0
  534. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +1 -0
  535. package/build/types/filter-list/base/inputs/index.d.ts +8 -0
  536. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -0
  537. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +1 -0
  538. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +1 -0
  539. package/build/types/filter-list/hooks/useFilterListState.d.ts +11 -0
  540. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -0
  541. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +20 -0
  542. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
  543. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +56 -0
  544. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +1 -0
  545. package/build/types/filter-list/types/CustomRendererTypes.d.ts +76 -0
  546. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -0
  547. package/build/types/filter-list/types/FilterPanelTypes.d.ts +18 -0
  548. package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +1 -0
  549. package/build/types/filter-list/types/KeywordSearchTypes.d.ts +56 -0
  550. package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -0
  551. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +89 -0
  552. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -0
  553. package/build/types/filter-list/types/index.d.ts +5 -0
  554. package/build/types/filter-list/types/index.d.ts.map +1 -0
  555. package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
  556. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
  557. package/build/types/filter-list/utils/assertUnreachable.d.ts +6 -0
  558. package/build/types/filter-list/utils/assertUnreachable.d.ts.map +1 -0
  559. package/build/types/filter-list/utils/coerceFilterValue.d.ts +11 -0
  560. package/build/types/filter-list/utils/coerceFilterValue.d.ts.map +1 -0
  561. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +16 -0
  562. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -0
  563. package/build/types/filter-list/utils/filterValues.d.ts +5 -0
  564. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -0
  565. package/build/types/filter-list/utils/getFilterKey.d.ts +3 -0
  566. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -0
  567. package/build/types/object-table/ColumnConfigDialog.d.ts +18 -0
  568. package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -0
  569. package/build/types/object-table/DefaultCellRenderer.d.ts +3 -0
  570. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -0
  571. package/build/types/object-table/EditableCell.d.ts +10 -0
  572. package/build/types/object-table/EditableCell.d.ts.map +1 -0
  573. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  574. package/build/types/object-table/MultiColumnSortDialog.d.ts +15 -0
  575. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -0
  576. package/build/types/object-table/ObjectTable.d.ts +1 -1
  577. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  578. package/build/types/object-table/ObjectTableApi.d.ts +79 -8
  579. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  580. package/build/types/object-table/SortableItemsList.d.ts +13 -0
  581. package/build/types/object-table/SortableItemsList.d.ts.map +1 -0
  582. package/build/types/object-table/Table.d.ts +26 -1
  583. package/build/types/object-table/Table.d.ts.map +1 -1
  584. package/build/types/object-table/TableHeader.d.ts +3 -1
  585. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  586. package/build/types/object-table/TableHeaderWithPopover.d.ts +30 -6
  587. package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
  588. package/build/types/object-table/__tests__/useEditableTable.test.d.ts +1 -0
  589. package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +1 -0
  590. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
  591. package/build/types/object-table/hooks/useColumnResize.d.ts +10 -0
  592. package/build/types/object-table/hooks/useColumnResize.d.ts.map +1 -0
  593. package/build/types/object-table/hooks/useColumnVisibility.d.ts +18 -7
  594. package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
  595. package/build/types/object-table/hooks/useEditableTable.d.ts +22 -0
  596. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -0
  597. package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -5
  598. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  599. package/build/types/object-table/hooks/useRowSelection.d.ts +5 -4
  600. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  601. package/build/types/object-table/utils/getCellId.d.ts +3 -0
  602. package/build/types/object-table/utils/getCellId.d.ts.map +1 -0
  603. package/build/types/object-table/utils/types.d.ts +14 -0
  604. package/build/types/object-table/utils/types.d.ts.map +1 -0
  605. package/build/types/public/experimental.d.ts +6 -2
  606. package/build/types/public/experimental.d.ts.map +1 -1
  607. package/build/types/shared/ErrorBoundary.d.ts +19 -0
  608. package/build/types/shared/ErrorBoundary.d.ts.map +1 -0
  609. package/package.json +17 -9
@@ -45,6 +45,7 @@ describe("useRowSelection", () => {
45
45
  expect(result.current.rowSelection).toEqual({});
46
46
  expect(result.current.isAllSelected).toBe(false);
47
47
  expect(result.current.hasSelection).toBe(false);
48
+ expect(result.current.enableRowSelection).toBe(false);
48
49
  });
49
50
  it("does not respond to toggle operations", () => {
50
51
  const data = createMockData(5);
@@ -81,6 +82,7 @@ describe("useRowSelection", () => {
81
82
  act(() => {
82
83
  result.current.onToggleRow("item-0", 0);
83
84
  });
85
+ expect(result.current.enableRowSelection).toBe(true);
84
86
  expect(result.current.rowSelection).toEqual({
85
87
  "item-0": true
86
88
  });
@@ -178,6 +180,7 @@ describe("useRowSelection", () => {
178
180
  act(() => {
179
181
  result.current.onToggleRow("item-2", 2);
180
182
  });
183
+ expect(result.current.enableRowSelection).toBe(true);
181
184
  expect(result.current.rowSelection).toEqual({
182
185
  "item-0": true,
183
186
  "item-2": true
@@ -312,6 +315,51 @@ describe("useRowSelection", () => {
312
315
  "item-7": true
313
316
  });
314
317
  });
318
+ it("shift-click after deselection should select from the last selected row", () => {
319
+ const data = createMockData(7);
320
+ const {
321
+ result
322
+ } = renderHook(() => useRowSelection({
323
+ selectionMode: "multiple",
324
+ data
325
+ }));
326
+
327
+ // Select rows 0, 1, 2
328
+ act(() => {
329
+ result.current.onToggleRow("item-0", 0);
330
+ });
331
+ act(() => {
332
+ result.current.onToggleRow("item-1", 1);
333
+ });
334
+ act(() => {
335
+ result.current.onToggleRow("item-2", 2);
336
+ });
337
+ expect(result.current.rowSelection).toEqual({
338
+ "item-0": true,
339
+ "item-1": true,
340
+ "item-2": true
341
+ });
342
+
343
+ // Deselect row 1 (clears lastSelectedRowIndex)
344
+ act(() => {
345
+ result.current.onToggleRow("item-1", 1);
346
+ });
347
+ expect(result.current.rowSelection).toEqual({
348
+ "item-0": true,
349
+ "item-2": true
350
+ });
351
+
352
+ // Shift-click row 4 - should select from row 2 to row 4
353
+ act(() => {
354
+ result.current.onToggleRow("item-4", 4, true);
355
+ });
356
+ expect(result.current.rowSelection).toEqual({
357
+ "item-0": true,
358
+ "item-2": true,
359
+ "item-3": true,
360
+ "item-4": true
361
+ });
362
+ });
315
363
  it("toggles all rows", () => {
316
364
  const data = createMockData(3);
317
365
  const onRowSelection = vi.fn();
@@ -1 +1 @@
1
- {"version":3,"file":"useRowSelection.test.js","names":["act","renderHook","describe","expect","it","vi","useRowSelection","TestObjectType","type","apiName","createMockData","count","Array","from","length","_","i","$primaryKey","$objectType","$apiName","$title","data","result","selectionMode","current","rowSelection","toEqual","isAllSelected","toBe","hasSelection","onToggleRow","onToggleAll","onRowSelection","fn","toHaveBeenCalledWith","toHaveBeenLastCalledWith","selectedRows","rerender","initialProps","undefined"],"sources":["useRowSelection.test.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, Osdk, PrimaryKeyType } from \"@osdk/api\";\nimport { act, renderHook } from \"@testing-library/react\";\nimport { describe, expect, it, vi } from \"vitest\";\nimport { useRowSelection } from \"../useRowSelection.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\n\n// Helper to create mock data\nfunction createMockData(\n count: number,\n): Array<\n Osdk.Instance<TestObject, \"$allBaseProperties\", never, Record<string, never>>\n> {\n return Array.from({ length: count }, (_, i) => ({\n $primaryKey: `item-${i}` as PrimaryKeyType<TestObject>,\n $objectType: \"TestObject\",\n $apiName: \"TestObject\",\n $title: `Item ${i}`,\n } as Osdk.Instance<\n TestObject,\n \"$allBaseProperties\",\n never,\n Record<string, never>\n >));\n}\n\ndescribe(\"useRowSelection\", () => {\n describe(\"disabled mode (selectionMode: 'none')\", () => {\n it(\"returns empty selection state\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"none\",\n data,\n })\n );\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.isAllSelected).toBe(false);\n expect(result.current.hasSelection).toBe(false);\n });\n\n it(\"does not respond to toggle operations\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"none\",\n data,\n })\n );\n\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.hasSelection).toBe(false);\n\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.hasSelection).toBe(false);\n });\n });\n\n describe(\"uncontrolled mode\", () => {\n describe(\"single selection mode\", () => {\n it(\"selects a single row and calls onRowSelection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n onRowSelection,\n data,\n })\n );\n\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n expect(result.current.hasSelection).toBe(true);\n expect(onRowSelection).toHaveBeenCalledWith([data[0].$primaryKey]);\n });\n\n it(\"deselects when toggling selected row and calls onRowSelection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n onRowSelection,\n data,\n })\n );\n\n // Select\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n\n // Deselect\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.hasSelection).toBe(false);\n expect(onRowSelection).toHaveBeenLastCalledWith([]);\n });\n\n it(\"replaces selection when selecting different row\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n data,\n })\n );\n\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-1\": true });\n expect(result.current.hasSelection).toBe(true);\n });\n\n it(\"treats shift-click as a normal click\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n data,\n })\n );\n // First click as the lastSelectedRow\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n // Shift-click\n act(() => {\n result.current.onToggleRow(\"item-2\", 2, true);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-2\": true });\n });\n });\n\n describe(\"multiple selection mode\", () => {\n it(\"selects multiple rows independently and calls onRowSelection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n onRowSelection,\n data,\n })\n );\n\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n\n act(() => {\n result.current.onToggleRow(\"item-2\", 2);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-2\": true,\n });\n expect(result.current.isAllSelected).toBe(false);\n expect(onRowSelection).toHaveBeenLastCalledWith([\n data[0].$primaryKey,\n data[2].$primaryKey,\n ]);\n });\n\n it(\"deselects individual rows\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // Select two rows\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-1\": true,\n });\n\n // Deselect one\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-1\": true });\n });\n\n it(\"selects range with shift-click and calls onRowSelection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n onRowSelection,\n data,\n })\n );\n\n // First click\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n\n // Shift-click to select range\n act(() => {\n result.current.onToggleRow(\"item-3\", 3, true);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-1\": true,\n \"item-2\": true,\n \"item-3\": true,\n });\n expect(onRowSelection).toHaveBeenLastCalledWith([\n data[1].$primaryKey,\n data[2].$primaryKey,\n data[3].$primaryKey,\n ]);\n });\n\n it(\"selects range in reverse order (shift-click up)\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // First click on row 3\n act(() => {\n result.current.onToggleRow(\"item-3\", 3);\n });\n\n // Shift-click to row 1 (upward)\n act(() => {\n result.current.onToggleRow(\"item-1\", 1, true);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-1\": true,\n \"item-2\": true,\n \"item-3\": true,\n });\n });\n\n it(\"shift-click without previous selection does not select range\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // Shift-click without previous selection\n act(() => {\n result.current.onToggleRow(\"item-2\", 2, true);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-2\": true });\n });\n\n it(\"merges range selection with existing selections\", () => {\n const data = createMockData(10);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // Select row 0\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n // Select row 5\n act(() => {\n result.current.onToggleRow(\"item-5\", 5);\n });\n\n // Shift-click to row 7 (should keep row 0)\n act(() => {\n result.current.onToggleRow(\"item-7\", 7, true);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-5\": true,\n \"item-6\": true,\n \"item-7\": true,\n });\n });\n\n it(\"toggles all rows\", () => {\n const data = createMockData(3);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n onRowSelection,\n data,\n })\n );\n\n expect(result.current.isAllSelected).toBe(false);\n\n // Select all\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-1\": true,\n \"item-2\": true,\n });\n expect(result.current.isAllSelected).toBe(true);\n expect(onRowSelection).toHaveBeenCalledWith([\n data[0].$primaryKey,\n data[1].$primaryKey,\n data[2].$primaryKey,\n ]);\n\n // Deselect all\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.isAllSelected).toBe(false);\n expect(onRowSelection).toHaveBeenLastCalledWith([]);\n });\n });\n });\n\n describe(\"controlled mode\", () => {\n describe(\"single selection mode\", () => {\n it(\"uses selectedRows prop for selection state\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n selectedRows: [data[1].$primaryKey],\n data,\n })\n );\n\n expect(result.current.rowSelection).toEqual({ \"item-1\": true });\n expect(result.current.hasSelection).toBe(true);\n });\n\n it(\"calls onRowSelection when toggling but does not update internal state\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result, rerender } = renderHook(\n ({ selectedRows }) =>\n useRowSelection({\n selectionMode: \"single\",\n selectedRows,\n onRowSelection,\n data,\n }),\n {\n initialProps: { selectedRows: [] as PrimaryKeyType<TestObject>[] },\n },\n );\n\n expect(result.current.rowSelection).toEqual({});\n\n // Click row\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n // Callback is called\n expect(onRowSelection).toHaveBeenCalledWith([data[0].$primaryKey]);\n\n // State doesn't change (controlled)\n expect(result.current.rowSelection).toEqual({});\n\n // Parent updates prop\n rerender({ selectedRows: [data[0].$primaryKey] });\n\n // Now state reflects the prop\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n });\n });\n\n describe(\"multiple selection mode\", () => {\n it(\"uses selectedRows prop for selection state\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows: [data[0].$primaryKey, data[2].$primaryKey],\n data,\n })\n );\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-2\": true,\n });\n });\n\n it(\"calls onRowSelection when toggling rows\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows: [data[0].$primaryKey],\n onRowSelection,\n data,\n })\n );\n\n // Add selection to selectedRows\n act(() => {\n result.current.onToggleRow(\"item-2\", 2);\n });\n\n expect(onRowSelection).toHaveBeenCalledWith([\n data[0].$primaryKey,\n data[2].$primaryKey,\n ]);\n\n // Remove selection from selectedRows\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(onRowSelection).toHaveBeenCalledWith([]);\n });\n\n it(\"calls onRowSelection for shift-click range selection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows: [],\n onRowSelection,\n data,\n })\n );\n\n // First click\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n\n // Shift-click\n act(() => {\n result.current.onToggleRow(\"item-3\", 3, true);\n });\n\n expect(onRowSelection).toHaveBeenLastCalledWith([\n data[1].$primaryKey,\n data[2].$primaryKey,\n data[3].$primaryKey,\n ]);\n });\n\n it(\"calls onRowSelection when toggling all rows\", () => {\n const data = createMockData(3);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows: [],\n onRowSelection,\n data,\n })\n );\n\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(onRowSelection).toHaveBeenCalledWith([\n data[0].$primaryKey,\n data[1].$primaryKey,\n data[2].$primaryKey,\n ]);\n });\n\n it(\"updates when selectedRows prop changes\", () => {\n const data = createMockData(5);\n const { result, rerender } = renderHook(\n ({ selectedRows }) =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows,\n data,\n }),\n {\n initialProps: {\n selectedRows: [data[0].$primaryKey] as PrimaryKeyType<\n TestObject\n >[],\n },\n },\n );\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n\n rerender({\n selectedRows: [data[1].$primaryKey, data[2].$primaryKey],\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-1\": true,\n \"item-2\": true,\n });\n });\n });\n });\n describe(\"edge cases\", () => {\n it(\"handles undefined data gracefully\", () => {\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data: undefined,\n })\n );\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.isAllSelected).toBe(false);\n expect(result.current.hasSelection).toBe(false);\n\n // Should not crash\n act(() => {\n result.current.onToggleAll();\n result.current.onToggleRow(\"item-0\", 0);\n });\n });\n\n it(\"handles empty data array\", () => {\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data: [],\n })\n );\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.isAllSelected).toBe(false);\n\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(result.current.rowSelection).toEqual({});\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useRowSelection.test.js","names":["act","renderHook","describe","expect","it","vi","useRowSelection","TestObjectType","type","apiName","createMockData","count","Array","from","length","_","i","$primaryKey","$objectType","$apiName","$title","data","result","selectionMode","current","rowSelection","toEqual","isAllSelected","toBe","hasSelection","enableRowSelection","onToggleRow","onToggleAll","onRowSelection","fn","toHaveBeenCalledWith","toHaveBeenLastCalledWith","selectedRows","rerender","initialProps","undefined"],"sources":["useRowSelection.test.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, Osdk, PrimaryKeyType } from \"@osdk/api\";\nimport { act, renderHook } from \"@testing-library/react\";\nimport { describe, expect, it, vi } from \"vitest\";\nimport { useRowSelection } from \"../useRowSelection.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\n\n// Helper to create mock data\nfunction createMockData(\n count: number,\n): Array<\n Osdk.Instance<TestObject, \"$allBaseProperties\", never, Record<string, never>>\n> {\n return Array.from({ length: count }, (_, i) => ({\n $primaryKey: `item-${i}` as PrimaryKeyType<TestObject>,\n $objectType: \"TestObject\",\n $apiName: \"TestObject\",\n $title: `Item ${i}`,\n } as Osdk.Instance<\n TestObject,\n \"$allBaseProperties\",\n never,\n Record<string, never>\n >));\n}\n\ndescribe(\"useRowSelection\", () => {\n describe(\"disabled mode (selectionMode: 'none')\", () => {\n it(\"returns empty selection state\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"none\",\n data,\n })\n );\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.isAllSelected).toBe(false);\n expect(result.current.hasSelection).toBe(false);\n expect(result.current.enableRowSelection).toBe(false);\n });\n\n it(\"does not respond to toggle operations\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"none\",\n data,\n })\n );\n\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.hasSelection).toBe(false);\n\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.hasSelection).toBe(false);\n });\n });\n\n describe(\"uncontrolled mode\", () => {\n describe(\"single selection mode\", () => {\n it(\"selects a single row and calls onRowSelection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n onRowSelection,\n data,\n })\n );\n\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.enableRowSelection).toBe(true);\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n expect(result.current.hasSelection).toBe(true);\n expect(onRowSelection).toHaveBeenCalledWith([data[0].$primaryKey]);\n });\n\n it(\"deselects when toggling selected row and calls onRowSelection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n onRowSelection,\n data,\n })\n );\n\n // Select\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n\n // Deselect\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.hasSelection).toBe(false);\n expect(onRowSelection).toHaveBeenLastCalledWith([]);\n });\n\n it(\"replaces selection when selecting different row\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n data,\n })\n );\n\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-1\": true });\n expect(result.current.hasSelection).toBe(true);\n });\n\n it(\"treats shift-click as a normal click\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n data,\n })\n );\n // First click as the lastSelectedRow\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n // Shift-click\n act(() => {\n result.current.onToggleRow(\"item-2\", 2, true);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-2\": true });\n });\n });\n\n describe(\"multiple selection mode\", () => {\n it(\"selects multiple rows independently and calls onRowSelection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n onRowSelection,\n data,\n })\n );\n\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n\n act(() => {\n result.current.onToggleRow(\"item-2\", 2);\n });\n\n expect(result.current.enableRowSelection).toBe(true);\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-2\": true,\n });\n expect(result.current.isAllSelected).toBe(false);\n expect(onRowSelection).toHaveBeenLastCalledWith([\n data[0].$primaryKey,\n data[2].$primaryKey,\n ]);\n });\n\n it(\"deselects individual rows\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // Select two rows\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-1\": true,\n });\n\n // Deselect one\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-1\": true });\n });\n\n it(\"selects range with shift-click and calls onRowSelection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n onRowSelection,\n data,\n })\n );\n\n // First click\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n\n // Shift-click to select range\n act(() => {\n result.current.onToggleRow(\"item-3\", 3, true);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-1\": true,\n \"item-2\": true,\n \"item-3\": true,\n });\n expect(onRowSelection).toHaveBeenLastCalledWith([\n data[1].$primaryKey,\n data[2].$primaryKey,\n data[3].$primaryKey,\n ]);\n });\n\n it(\"selects range in reverse order (shift-click up)\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // First click on row 3\n act(() => {\n result.current.onToggleRow(\"item-3\", 3);\n });\n\n // Shift-click to row 1 (upward)\n act(() => {\n result.current.onToggleRow(\"item-1\", 1, true);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-1\": true,\n \"item-2\": true,\n \"item-3\": true,\n });\n });\n\n it(\"shift-click without previous selection does not select range\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // Shift-click without previous selection\n act(() => {\n result.current.onToggleRow(\"item-2\", 2, true);\n });\n\n expect(result.current.rowSelection).toEqual({ \"item-2\": true });\n });\n\n it(\"merges range selection with existing selections\", () => {\n const data = createMockData(10);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // Select row 0\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n // Select row 5\n act(() => {\n result.current.onToggleRow(\"item-5\", 5);\n });\n\n // Shift-click to row 7 (should keep row 0)\n act(() => {\n result.current.onToggleRow(\"item-7\", 7, true);\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-5\": true,\n \"item-6\": true,\n \"item-7\": true,\n });\n });\n\n it(\"shift-click after deselection should select from the last selected row\", () => {\n const data = createMockData(7);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data,\n })\n );\n\n // Select rows 0, 1, 2\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n act(() => {\n result.current.onToggleRow(\"item-2\", 2);\n });\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-1\": true,\n \"item-2\": true,\n });\n\n // Deselect row 1 (clears lastSelectedRowIndex)\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-2\": true,\n });\n\n // Shift-click row 4 - should select from row 2 to row 4\n act(() => {\n result.current.onToggleRow(\"item-4\", 4, true);\n });\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-2\": true,\n \"item-3\": true,\n \"item-4\": true,\n });\n });\n\n it(\"toggles all rows\", () => {\n const data = createMockData(3);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n onRowSelection,\n data,\n })\n );\n\n expect(result.current.isAllSelected).toBe(false);\n\n // Select all\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-1\": true,\n \"item-2\": true,\n });\n expect(result.current.isAllSelected).toBe(true);\n expect(onRowSelection).toHaveBeenCalledWith([\n data[0].$primaryKey,\n data[1].$primaryKey,\n data[2].$primaryKey,\n ]);\n\n // Deselect all\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.isAllSelected).toBe(false);\n expect(onRowSelection).toHaveBeenLastCalledWith([]);\n });\n });\n });\n\n describe(\"controlled mode\", () => {\n describe(\"single selection mode\", () => {\n it(\"uses selectedRows prop for selection state\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"single\",\n selectedRows: [data[1].$primaryKey],\n data,\n })\n );\n\n expect(result.current.rowSelection).toEqual({ \"item-1\": true });\n expect(result.current.hasSelection).toBe(true);\n });\n\n it(\"calls onRowSelection when toggling but does not update internal state\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result, rerender } = renderHook(\n ({ selectedRows }) =>\n useRowSelection({\n selectionMode: \"single\",\n selectedRows,\n onRowSelection,\n data,\n }),\n {\n initialProps: { selectedRows: [] as PrimaryKeyType<TestObject>[] },\n },\n );\n\n expect(result.current.rowSelection).toEqual({});\n\n // Click row\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n // Callback is called\n expect(onRowSelection).toHaveBeenCalledWith([data[0].$primaryKey]);\n\n // State doesn't change (controlled)\n expect(result.current.rowSelection).toEqual({});\n\n // Parent updates prop\n rerender({ selectedRows: [data[0].$primaryKey] });\n\n // Now state reflects the prop\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n });\n });\n\n describe(\"multiple selection mode\", () => {\n it(\"uses selectedRows prop for selection state\", () => {\n const data = createMockData(5);\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows: [data[0].$primaryKey, data[2].$primaryKey],\n data,\n })\n );\n\n expect(result.current.rowSelection).toEqual({\n \"item-0\": true,\n \"item-2\": true,\n });\n });\n\n it(\"calls onRowSelection when toggling rows\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows: [data[0].$primaryKey],\n onRowSelection,\n data,\n })\n );\n\n // Add selection to selectedRows\n act(() => {\n result.current.onToggleRow(\"item-2\", 2);\n });\n\n expect(onRowSelection).toHaveBeenCalledWith([\n data[0].$primaryKey,\n data[2].$primaryKey,\n ]);\n\n // Remove selection from selectedRows\n act(() => {\n result.current.onToggleRow(\"item-0\", 0);\n });\n\n expect(onRowSelection).toHaveBeenCalledWith([]);\n });\n\n it(\"calls onRowSelection for shift-click range selection\", () => {\n const data = createMockData(5);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows: [],\n onRowSelection,\n data,\n })\n );\n\n // First click\n act(() => {\n result.current.onToggleRow(\"item-1\", 1);\n });\n\n // Shift-click\n act(() => {\n result.current.onToggleRow(\"item-3\", 3, true);\n });\n\n expect(onRowSelection).toHaveBeenLastCalledWith([\n data[1].$primaryKey,\n data[2].$primaryKey,\n data[3].$primaryKey,\n ]);\n });\n\n it(\"calls onRowSelection when toggling all rows\", () => {\n const data = createMockData(3);\n const onRowSelection = vi.fn();\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows: [],\n onRowSelection,\n data,\n })\n );\n\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(onRowSelection).toHaveBeenCalledWith([\n data[0].$primaryKey,\n data[1].$primaryKey,\n data[2].$primaryKey,\n ]);\n });\n\n it(\"updates when selectedRows prop changes\", () => {\n const data = createMockData(5);\n const { result, rerender } = renderHook(\n ({ selectedRows }) =>\n useRowSelection({\n selectionMode: \"multiple\",\n selectedRows,\n data,\n }),\n {\n initialProps: {\n selectedRows: [data[0].$primaryKey] as PrimaryKeyType<\n TestObject\n >[],\n },\n },\n );\n\n expect(result.current.rowSelection).toEqual({ \"item-0\": true });\n\n rerender({\n selectedRows: [data[1].$primaryKey, data[2].$primaryKey],\n });\n\n expect(result.current.rowSelection).toEqual({\n \"item-1\": true,\n \"item-2\": true,\n });\n });\n });\n });\n describe(\"edge cases\", () => {\n it(\"handles undefined data gracefully\", () => {\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data: undefined,\n })\n );\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.isAllSelected).toBe(false);\n expect(result.current.hasSelection).toBe(false);\n\n // Should not crash\n act(() => {\n result.current.onToggleAll();\n result.current.onToggleRow(\"item-0\", 0);\n });\n });\n\n it(\"handles empty data array\", () => {\n const { result } = renderHook(() =>\n useRowSelection({\n selectionMode: \"multiple\",\n data: [],\n })\n );\n\n expect(result.current.rowSelection).toEqual({});\n expect(result.current.isAllSelected).toBe(false);\n\n act(() => {\n result.current.onToggleAll();\n });\n\n expect(result.current.rowSelection).toEqual({});\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -102,7 +102,7 @@ describe("useSelectionColumn", () => {
102
102
  expect(columnDef).not.toBeNull();
103
103
  expect(columnDef?.cell).toBeDefined();
104
104
  });
105
- it("memoizes column definition based on dependencies", () => {
105
+ it("when dependencies other than selectionMode changed, the column definition should not update", () => {
106
106
  const onToggleRow = vi.fn();
107
107
  const onToggleAll = vi.fn();
108
108
  const {
@@ -125,17 +125,37 @@ describe("useSelectionColumn", () => {
125
125
  });
126
126
  const firstResult = result.current;
127
127
 
128
- // Rerender with same props
128
+ // Rerender with different isAllSelected and hasSelection
129
129
  rerender({
130
- isAllSelected: false,
131
- hasSelection: false
130
+ isAllSelected: true,
131
+ hasSelection: true
132
132
  });
133
133
  expect(result.current).toBe(firstResult);
134
+ });
135
+ it("when selectionMode changed, the column definition should update", () => {
136
+ const onToggleRow = vi.fn();
137
+ const onToggleAll = vi.fn();
138
+ const {
139
+ result,
140
+ rerender
141
+ } = renderHook(({
142
+ selectionMode
143
+ }) => useSelectionColumn({
144
+ selectionMode,
145
+ isAllSelected: false,
146
+ hasSelection: true,
147
+ onToggleAll,
148
+ onToggleRow
149
+ }), {
150
+ initialProps: {
151
+ selectionMode: "single"
152
+ }
153
+ });
154
+ const firstResult = result.current;
134
155
 
135
- // Rerender with different hasSelection
156
+ // Rerender with different selectionMode
136
157
  rerender({
137
- isAllSelected: false,
138
- hasSelection: true
158
+ selectionMode: "multiple"
139
159
  });
140
160
  expect(result.current).not.toBe(firstResult);
141
161
  });
@@ -179,81 +199,6 @@ describe("useSelectionColumn", () => {
179
199
  const headerResult = typeof columnDef?.header === "function" ? columnDef.header({}) : null;
180
200
  expect(headerResult).not.toBeNull();
181
201
  });
182
- it("has cell function defined", () => {
183
- const onToggleRow = vi.fn();
184
- const {
185
- result
186
- } = renderHook(() => useSelectionColumn({
187
- selectionMode: "multiple",
188
- isAllSelected: false,
189
- hasSelection: false,
190
- onToggleAll: vi.fn(),
191
- onToggleRow
192
- }));
193
- const columnDef = result.current;
194
- expect(columnDef).not.toBeNull();
195
- expect(columnDef?.cell).toBeDefined();
196
- });
197
- it("memoizes column when dependencies don't change", () => {
198
- const onToggleRow = vi.fn();
199
- const onToggleAll = vi.fn();
200
- const {
201
- result,
202
- rerender
203
- } = renderHook(({
204
- isAllSelected,
205
- hasSelection
206
- }) => useSelectionColumn({
207
- selectionMode: "multiple",
208
- isAllSelected,
209
- hasSelection,
210
- onToggleAll,
211
- onToggleRow
212
- }), {
213
- initialProps: {
214
- isAllSelected: false,
215
- hasSelection: false
216
- }
217
- });
218
- const firstResult = result.current;
219
-
220
- // Rerender with same props
221
- rerender({
222
- isAllSelected: false,
223
- hasSelection: false
224
- });
225
- expect(result.current).toBe(firstResult);
226
- });
227
- it("updates column when dependencies change", () => {
228
- const onToggleRow = vi.fn();
229
- const onToggleAll = vi.fn();
230
- const {
231
- result,
232
- rerender
233
- } = renderHook(({
234
- isAllSelected,
235
- hasSelection
236
- }) => useSelectionColumn({
237
- selectionMode: "multiple",
238
- isAllSelected,
239
- hasSelection,
240
- onToggleAll,
241
- onToggleRow
242
- }), {
243
- initialProps: {
244
- isAllSelected: false,
245
- hasSelection: false
246
- }
247
- });
248
- const firstResult = result.current;
249
-
250
- // Change isAllSelected
251
- rerender({
252
- isAllSelected: true,
253
- hasSelection: true
254
- });
255
- expect(result.current).not.toBe(firstResult);
256
- });
257
202
  });
258
203
  describe("column definition structure", () => {
259
204
  it("disables sorting and resizing", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectionColumn.test.js","names":["renderHook","describe","expect","it","vi","SELECTION_COLUMN_ID","useSelectionColumn","TestObjectType","type","apiName","result","selectionMode","isAllSelected","hasSelection","onToggleAll","fn","onToggleRow","current","toBeNull","not","toMatchObject","id","size","minSize","maxSize","enableSorting","enableResizing","columnDef","headerResult","header","cell","toBeDefined","rerender","initialProps","firstResult","toBe"],"sources":["useSelectionColumn.test.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition } from \"@osdk/api\";\nimport { renderHook } from \"@testing-library/react\";\nimport { describe, expect, it, vi } from \"vitest\";\nimport { SELECTION_COLUMN_ID } from \"../../utils/constants.js\";\nimport { useSelectionColumn } from \"../useSelectionColumn.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\n\ndescribe(\"useSelectionColumn\", () => {\n describe(\"selectionMode: 'none'\", () => {\n it(\"returns null when selection is disabled\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"none\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).toBeNull();\n });\n\n it(\"returns null even with selection state\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"none\",\n isAllSelected: true,\n hasSelection: true,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).toBeNull();\n });\n });\n\n describe(\"selectionMode: 'single'\", () => {\n it(\"returns column definition with correct properties\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).not.toBeNull();\n expect(result.current).toMatchObject({\n id: SELECTION_COLUMN_ID,\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n });\n });\n\n it(\"has header function that returns null for single mode\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n\n // Call header function\n const headerResult = typeof columnDef?.header === \"function\"\n ? columnDef.header({} as any)\n : null;\n\n expect(headerResult).toBeNull();\n });\n\n it(\"has cell function defined\", () => {\n const onToggleRow = vi.fn();\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow,\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n expect(columnDef?.cell).toBeDefined();\n });\n\n it(\"memoizes column definition based on dependencies\", () => {\n const onToggleRow = vi.fn();\n const onToggleAll = vi.fn();\n\n const { result, rerender } = renderHook(\n ({ isAllSelected, hasSelection }) =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n }),\n {\n initialProps: { isAllSelected: false, hasSelection: false },\n },\n );\n\n const firstResult = result.current;\n\n // Rerender with same props\n rerender({ isAllSelected: false, hasSelection: false });\n expect(result.current).toBe(firstResult);\n\n // Rerender with different hasSelection\n rerender({ isAllSelected: false, hasSelection: true });\n expect(result.current).not.toBe(firstResult);\n });\n });\n\n describe(\"selectionMode: 'multiple'\", () => {\n it(\"returns column definition with correct properties\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).not.toBeNull();\n expect(result.current).toMatchObject({\n id: SELECTION_COLUMN_ID,\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n });\n });\n\n it(\"has header function that renders SelectionHeaderCell\", () => {\n const onToggleAll = vi.fn();\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll,\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n\n // Render header\n const headerResult = typeof columnDef?.header === \"function\"\n ? columnDef.header({} as any)\n : null;\n\n expect(headerResult).not.toBeNull();\n });\n\n it(\"has cell function defined\", () => {\n const onToggleRow = vi.fn();\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow,\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n expect(columnDef?.cell).toBeDefined();\n });\n\n it(\"memoizes column when dependencies don't change\", () => {\n const onToggleRow = vi.fn();\n const onToggleAll = vi.fn();\n\n const { result, rerender } = renderHook(\n ({ isAllSelected, hasSelection }) =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n }),\n {\n initialProps: { isAllSelected: false, hasSelection: false },\n },\n );\n\n const firstResult = result.current;\n\n // Rerender with same props\n rerender({ isAllSelected: false, hasSelection: false });\n expect(result.current).toBe(firstResult);\n });\n\n it(\"updates column when dependencies change\", () => {\n const onToggleRow = vi.fn();\n const onToggleAll = vi.fn();\n\n const { result, rerender } = renderHook(\n ({ isAllSelected, hasSelection }) =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n }),\n {\n initialProps: { isAllSelected: false, hasSelection: false },\n },\n );\n\n const firstResult = result.current;\n\n // Change isAllSelected\n rerender({ isAllSelected: true, hasSelection: true });\n expect(result.current).not.toBe(firstResult);\n });\n });\n\n describe(\"column definition structure\", () => {\n it(\"disables sorting and resizing\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef?.enableSorting).toBe(false);\n expect(columnDef?.enableResizing).toBe(false);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useSelectionColumn.test.js","names":["renderHook","describe","expect","it","vi","SELECTION_COLUMN_ID","useSelectionColumn","TestObjectType","type","apiName","result","selectionMode","isAllSelected","hasSelection","onToggleAll","fn","onToggleRow","current","toBeNull","not","toMatchObject","id","size","minSize","maxSize","enableSorting","enableResizing","columnDef","headerResult","header","cell","toBeDefined","rerender","initialProps","firstResult","toBe"],"sources":["useSelectionColumn.test.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition } from \"@osdk/api\";\nimport { renderHook } from \"@testing-library/react\";\nimport { describe, expect, it, vi } from \"vitest\";\nimport { SELECTION_COLUMN_ID } from \"../../utils/constants.js\";\nimport { useSelectionColumn } from \"../useSelectionColumn.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\n\ndescribe(\"useSelectionColumn\", () => {\n describe(\"selectionMode: 'none'\", () => {\n it(\"returns null when selection is disabled\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"none\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).toBeNull();\n });\n\n it(\"returns null even with selection state\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"none\",\n isAllSelected: true,\n hasSelection: true,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).toBeNull();\n });\n });\n\n describe(\"selectionMode: 'single'\", () => {\n it(\"returns column definition with correct properties\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).not.toBeNull();\n expect(result.current).toMatchObject({\n id: SELECTION_COLUMN_ID,\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n });\n });\n\n it(\"has header function that returns null for single mode\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n\n // Call header function\n const headerResult = typeof columnDef?.header === \"function\"\n ? columnDef.header({} as any)\n : null;\n\n expect(headerResult).toBeNull();\n });\n\n it(\"has cell function defined\", () => {\n const onToggleRow = vi.fn();\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow,\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n expect(columnDef?.cell).toBeDefined();\n });\n\n it(\"when dependencies other than selectionMode changed, the column definition should not update\", () => {\n const onToggleRow = vi.fn();\n const onToggleAll = vi.fn();\n\n const { result, rerender } = renderHook(\n ({ isAllSelected, hasSelection }) =>\n useSelectionColumn<TestObject>({\n selectionMode: \"single\",\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n }),\n {\n initialProps: { isAllSelected: false, hasSelection: false },\n },\n );\n\n const firstResult = result.current;\n\n // Rerender with different isAllSelected and hasSelection\n rerender({ isAllSelected: true, hasSelection: true });\n expect(result.current).toBe(firstResult);\n });\n\n it(\"when selectionMode changed, the column definition should update\", () => {\n const onToggleRow = vi.fn();\n const onToggleAll = vi.fn();\n\n const { result, rerender } = renderHook(\n (\n { selectionMode }: { selectionMode: \"single\" | \"multiple\" | \"none\" },\n ) =>\n useSelectionColumn<TestObject>({\n selectionMode,\n isAllSelected: false,\n hasSelection: true,\n onToggleAll,\n onToggleRow,\n }),\n {\n initialProps: { selectionMode: \"single\" },\n },\n );\n\n const firstResult = result.current;\n\n // Rerender with different selectionMode\n rerender({ selectionMode: \"multiple\" });\n expect(result.current).not.toBe(firstResult);\n });\n });\n\n describe(\"selectionMode: 'multiple'\", () => {\n it(\"returns column definition with correct properties\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n expect(result.current).not.toBeNull();\n expect(result.current).toMatchObject({\n id: SELECTION_COLUMN_ID,\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n });\n });\n\n it(\"has header function that renders SelectionHeaderCell\", () => {\n const onToggleAll = vi.fn();\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll,\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef).not.toBeNull();\n\n // Render header\n const headerResult = typeof columnDef?.header === \"function\"\n ? columnDef.header({} as any)\n : null;\n\n expect(headerResult).not.toBeNull();\n });\n });\n\n describe(\"column definition structure\", () => {\n it(\"disables sorting and resizing\", () => {\n const { result } = renderHook(() =>\n useSelectionColumn<TestObject>({\n selectionMode: \"multiple\",\n isAllSelected: false,\n hasSelection: false,\n onToggleAll: vi.fn(),\n onToggleRow: vi.fn(),\n })\n );\n\n const columnDef = result.current;\n expect(columnDef?.enableSorting).toBe(false);\n expect(columnDef?.enableResizing).toBe(false);\n });\n });\n});\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,UAAU,QAAQ,wBAAwB;AACnD,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,QAAQ;AACjD,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,kBAAkB,QAAQ,0BAA0B;AAE7D,MAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE,QAAQ;EACdC,OAAO,EAAE;AACX,CAAyC;AAIzCR,QAAQ,CAAC,oBAAoB,EAAE,MAAM;EACnCA,QAAQ,CAAC,uBAAuB,EAAE,MAAM;IACtCE,EAAE,CAAC,yCAAyC,EAAE,MAAM;MAClD,MAAM;QAAEO;MAAO,CAAC,GAAGV,UAAU,CAAC,MAC5BM,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,MAAM;QACrBC,aAAa,EAAE,KAAK;QACpBC,YAAY,EAAE,KAAK;QACnBC,WAAW,EAAEV,EAAE,CAACW,EAAE,CAAC,CAAC;QACpBC,WAAW,EAAEZ,EAAE,CAACW,EAAE,CAAC;MACrB,CAAC,CACH,CAAC;MAEDb,MAAM,CAACQ,MAAM,CAACO,OAAO,CAAC,CAACC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;IAEFf,EAAE,CAAC,wCAAwC,EAAE,MAAM;MACjD,MAAM;QAAEO;MAAO,CAAC,GAAGV,UAAU,CAAC,MAC5BM,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,MAAM;QACrBC,aAAa,EAAE,IAAI;QACnBC,YAAY,EAAE,IAAI;QAClBC,WAAW,EAAEV,EAAE,CAACW,EAAE,CAAC,CAAC;QACpBC,WAAW,EAAEZ,EAAE,CAACW,EAAE,CAAC;MACrB,CAAC,CACH,CAAC;MAEDb,MAAM,CAACQ,MAAM,CAACO,OAAO,CAAC,CAACC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFjB,QAAQ,CAAC,yBAAyB,EAAE,MAAM;IACxCE,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC5D,MAAM;QAAEO;MAAO,CAAC,GAAGV,UAAU,CAAC,MAC5BM,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,QAAQ;QACvBC,aAAa,EAAE,KAAK;QACpBC,YAAY,EAAE,KAAK;QACnBC,WAAW,EAAEV,EAAE,CAACW,EAAE,CAAC,CAAC;QACpBC,WAAW,EAAEZ,EAAE,CAACW,EAAE,CAAC;MACrB,CAAC,CACH,CAAC;MAEDb,MAAM,CAACQ,MAAM,CAACO,OAAO,CAAC,CAACE,GAAG,CAACD,QAAQ,CAAC,CAAC;MACrChB,MAAM,CAACQ,MAAM,CAACO,OAAO,CAAC,CAACG,aAAa,CAAC;QACnCC,EAAE,EAAEhB,mBAAmB;QACvBiB,IAAI,EAAE,EAAE;QACRC,OAAO,EAAE,EAAE;QACXC,OAAO,EAAE,EAAE;QACXC,aAAa,EAAE,KAAK;QACpBC,cAAc,EAAE;MAClB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFvB,EAAE,CAAC,uDAAuD,EAAE,MAAM;MAChE,MAAM;QAAEO;MAAO,CAAC,GAAGV,UAAU,CAAC,MAC5BM,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,QAAQ;QACvBC,aAAa,EAAE,KAAK;QACpBC,YAAY,EAAE,KAAK;QACnBC,WAAW,EAAEV,EAAE,CAACW,EAAE,CAAC,CAAC;QACpBC,WAAW,EAAEZ,EAAE,CAACW,EAAE,CAAC;MACrB,CAAC,CACH,CAAC;MAED,MAAMY,SAAS,GAAGjB,MAAM,CAACO,OAAO;MAChCf,MAAM,CAACyB,SAAS,CAAC,CAACR,GAAG,CAACD,QAAQ,CAAC,CAAC;;MAEhC;MACA,MAAMU,YAAY,GAAG,OAAOD,SAAS,EAAEE,MAAM,KAAK,UAAU,GACxDF,SAAS,CAACE,MAAM,CAAC,CAAC,CAAQ,CAAC,GAC3B,IAAI;MAER3B,MAAM,CAAC0B,YAAY,CAAC,CAACV,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC;IAEFf,EAAE,CAAC,2BAA2B,EAAE,MAAM;MACpC,MAAMa,WAAW,GAAGZ,EAAE,CAACW,EAAE,CAAC,CAAC;MAC3B,MAAM;QAAEL;MAAO,CAAC,GAAGV,UAAU,CAAC,MAC5BM,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,QAAQ;QACvBC,aAAa,EAAE,KAAK;QACpBC,YAAY,EAAE,KAAK;QACnBC,WAAW,EAAEV,EAAE,CAACW,EAAE,CAAC,CAAC;QACpBC;MACF,CAAC,CACH,CAAC;MAED,MAAMW,SAAS,GAAGjB,MAAM,CAACO,OAAO;MAChCf,MAAM,CAACyB,SAAS,CAAC,CAACR,GAAG,CAACD,QAAQ,CAAC,CAAC;MAChChB,MAAM,CAACyB,SAAS,EAAEG,IAAI,CAAC,CAACC,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF5B,EAAE,CAAC,6FAA6F,EAAE,MAAM;MACtG,MAAMa,WAAW,GAAGZ,EAAE,CAACW,EAAE,CAAC,CAAC;MAC3B,MAAMD,WAAW,GAAGV,EAAE,CAACW,EAAE,CAAC,CAAC;MAE3B,MAAM;QAAEL,MAAM;QAAEsB;MAAS,CAAC,GAAGhC,UAAU,CACrC,CAAC;QAAEY,aAAa;QAAEC;MAAa,CAAC,KAC9BP,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,QAAQ;QACvBC,aAAa;QACbC,YAAY;QACZC,WAAW;QACXE;MACF,CAAC,CAAC,EACJ;QACEiB,YAAY,EAAE;UAAErB,aAAa,EAAE,KAAK;UAAEC,YAAY,EAAE;QAAM;MAC5D,CACF,CAAC;MAED,MAAMqB,WAAW,GAAGxB,MAAM,CAACO,OAAO;;MAElC;MACAe,QAAQ,CAAC;QAAEpB,aAAa,EAAE,IAAI;QAAEC,YAAY,EAAE;MAAK,CAAC,CAAC;MACrDX,MAAM,CAACQ,MAAM,CAACO,OAAO,CAAC,CAACkB,IAAI,CAACD,WAAW,CAAC;IAC1C,CAAC,CAAC;IAEF/B,EAAE,CAAC,iEAAiE,EAAE,MAAM;MAC1E,MAAMa,WAAW,GAAGZ,EAAE,CAACW,EAAE,CAAC,CAAC;MAC3B,MAAMD,WAAW,GAAGV,EAAE,CAACW,EAAE,CAAC,CAAC;MAE3B,MAAM;QAAEL,MAAM;QAAEsB;MAAS,CAAC,GAAGhC,UAAU,CACrC,CACE;QAAEW;MAAiE,CAAC,KAEpEL,kBAAkB,CAAa;QAC7BK,aAAa;QACbC,aAAa,EAAE,KAAK;QACpBC,YAAY,EAAE,IAAI;QAClBC,WAAW;QACXE;MACF,CAAC,CAAC,EACJ;QACEiB,YAAY,EAAE;UAAEtB,aAAa,EAAE;QAAS;MAC1C,CACF,CAAC;MAED,MAAMuB,WAAW,GAAGxB,MAAM,CAACO,OAAO;;MAElC;MACAe,QAAQ,CAAC;QAAErB,aAAa,EAAE;MAAW,CAAC,CAAC;MACvCT,MAAM,CAACQ,MAAM,CAACO,OAAO,CAAC,CAACE,GAAG,CAACgB,IAAI,CAACD,WAAW,CAAC;IAC9C,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFjC,QAAQ,CAAC,2BAA2B,EAAE,MAAM;IAC1CE,EAAE,CAAC,mDAAmD,EAAE,MAAM;MAC5D,MAAM;QAAEO;MAAO,CAAC,GAAGV,UAAU,CAAC,MAC5BM,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,UAAU;QACzBC,aAAa,EAAE,KAAK;QACpBC,YAAY,EAAE,KAAK;QACnBC,WAAW,EAAEV,EAAE,CAACW,EAAE,CAAC,CAAC;QACpBC,WAAW,EAAEZ,EAAE,CAACW,EAAE,CAAC;MACrB,CAAC,CACH,CAAC;MAEDb,MAAM,CAACQ,MAAM,CAACO,OAAO,CAAC,CAACE,GAAG,CAACD,QAAQ,CAAC,CAAC;MACrChB,MAAM,CAACQ,MAAM,CAACO,OAAO,CAAC,CAACG,aAAa,CAAC;QACnCC,EAAE,EAAEhB,mBAAmB;QACvBiB,IAAI,EAAE,EAAE;QACRC,OAAO,EAAE,EAAE;QACXC,OAAO,EAAE,EAAE;QACXC,aAAa,EAAE,KAAK;QACpBC,cAAc,EAAE;MAClB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFvB,EAAE,CAAC,sDAAsD,EAAE,MAAM;MAC/D,MAAMW,WAAW,GAAGV,EAAE,CAACW,EAAE,CAAC,CAAC;MAC3B,MAAM;QAAEL;MAAO,CAAC,GAAGV,UAAU,CAAC,MAC5BM,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,UAAU;QACzBC,aAAa,EAAE,KAAK;QACpBC,YAAY,EAAE,KAAK;QACnBC,WAAW;QACXE,WAAW,EAAEZ,EAAE,CAACW,EAAE,CAAC;MACrB,CAAC,CACH,CAAC;MAED,MAAMY,SAAS,GAAGjB,MAAM,CAACO,OAAO;MAChCf,MAAM,CAACyB,SAAS,CAAC,CAACR,GAAG,CAACD,QAAQ,CAAC,CAAC;;MAEhC;MACA,MAAMU,YAAY,GAAG,OAAOD,SAAS,EAAEE,MAAM,KAAK,UAAU,GACxDF,SAAS,CAACE,MAAM,CAAC,CAAC,CAAQ,CAAC,GAC3B,IAAI;MAER3B,MAAM,CAAC0B,YAAY,CAAC,CAACT,GAAG,CAACD,QAAQ,CAAC,CAAC;IACrC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFjB,QAAQ,CAAC,6BAA6B,EAAE,MAAM;IAC5CE,EAAE,CAAC,+BAA+B,EAAE,MAAM;MACxC,MAAM;QAAEO;MAAO,CAAC,GAAGV,UAAU,CAAC,MAC5BM,kBAAkB,CAAa;QAC7BK,aAAa,EAAE,UAAU;QACzBC,aAAa,EAAE,KAAK;QACpBC,YAAY,EAAE,KAAK;QACnBC,WAAW,EAAEV,EAAE,CAACW,EAAE,CAAC,CAAC;QACpBC,WAAW,EAAEZ,EAAE,CAACW,EAAE,CAAC;MACrB,CAAC,CACH,CAAC;MAED,MAAMY,SAAS,GAAGjB,MAAM,CAACO,OAAO;MAChCf,MAAM,CAACyB,SAAS,EAAEF,aAAa,CAAC,CAACU,IAAI,CAAC,KAAK,CAAC;MAC5CjC,MAAM,CAACyB,SAAS,EAAED,cAAc,CAAC,CAACS,IAAI,CAAC,KAAK,CAAC;IAC/C,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}