@osdk/react-components 0.2.0-beta.1 → 0.2.0-beta.11

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 (628) hide show
  1. package/CHANGELOG.md +118 -0
  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 +46 -0
  168. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -0
  169. package/build/browser/object-table/EditableCell.js +101 -0
  170. package/build/browser/object-table/EditableCell.js.map +1 -0
  171. package/build/browser/object-table/EditableCell.module.css +31 -0
  172. package/build/browser/object-table/EditableCell.module.css.js +7 -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 +62 -16
  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 +77 -934
  194. package/build/browser/object-table/Table.js.map +1 -1
  195. package/build/browser/object-table/Table.module.css +37 -0
  196. package/build/browser/object-table/Table.module.css.js +7 -0
  197. package/build/browser/object-table/TableBody.js +43 -261
  198. package/build/browser/object-table/TableBody.js.map +1 -1
  199. package/build/browser/object-table/TableBody.module.css +22 -0
  200. package/build/browser/object-table/TableBody.module.css.js +6 -0
  201. package/build/browser/object-table/TableCell.js +31 -111
  202. package/build/browser/object-table/TableCell.module.css +75 -0
  203. package/build/browser/object-table/TableCell.module.css.js +8 -0
  204. package/build/browser/object-table/TableEditContainer.js +79 -0
  205. package/build/browser/object-table/TableEditContainer.js.map +1 -0
  206. package/build/browser/object-table/TableEditContainer.module.css +44 -0
  207. package/build/browser/object-table/TableEditContainer.module.css.js +9 -0
  208. package/build/browser/object-table/TableHeader.js +126 -216
  209. package/build/browser/object-table/TableHeader.js.map +1 -1
  210. package/build/browser/object-table/TableHeader.module.css +108 -0
  211. package/build/browser/object-table/TableHeader.module.css.js +10 -0
  212. package/build/browser/object-table/TableHeaderContent.js +21 -18
  213. package/build/browser/object-table/TableHeaderContent.module.css +30 -0
  214. package/build/browser/object-table/TableHeaderContent.module.css.js +6 -0
  215. package/build/browser/object-table/TableHeaderWithPopover.js +110 -93
  216. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  217. package/build/browser/object-table/TableHeaderWithPopover.module.css +141 -0
  218. package/build/browser/object-table/TableHeaderWithPopover.module.css.js +17 -0
  219. package/build/browser/object-table/TableRow.js +37 -147
  220. package/build/browser/object-table/TableRow.js.map +1 -1
  221. package/build/browser/object-table/TableRow.module.css +63 -0
  222. package/build/browser/object-table/TableRow.module.css.js +6 -0
  223. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +14 -2
  224. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
  225. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +160 -138
  226. package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +1 -1
  227. package/build/browser/object-table/hooks/__tests__/useEditableTable.test.js +292 -0
  228. package/build/browser/object-table/hooks/__tests__/useEditableTable.test.js.map +1 -0
  229. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +113 -25
  230. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
  231. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +48 -0
  232. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -1
  233. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +27 -82
  234. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -1
  235. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +290 -0
  236. package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +1 -1
  237. package/build/browser/object-table/hooks/useColumnDefs.js +16 -3
  238. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  239. package/build/browser/object-table/hooks/useColumnResize.js +45 -0
  240. package/build/browser/object-table/hooks/useColumnResize.js.map +1 -0
  241. package/build/browser/object-table/hooks/useColumnVisibility.js +52 -20
  242. package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
  243. package/build/browser/object-table/hooks/useEditableTable.js +66 -0
  244. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -0
  245. package/build/browser/object-table/hooks/useObjectTableData.js +37 -7
  246. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  247. package/build/browser/object-table/hooks/useRowSelection.js +31 -10
  248. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  249. package/build/browser/object-table/hooks/useSelectionColumn.js +15 -6
  250. package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
  251. package/build/browser/object-table/utils/getCellId.js +20 -0
  252. package/build/browser/object-table/utils/getCellId.js.map +1 -0
  253. package/build/browser/object-table/utils/types.js +2 -0
  254. package/build/browser/object-table/utils/types.js.map +1 -0
  255. package/build/browser/public/experimental.js +2 -0
  256. package/build/browser/public/experimental.js.map +1 -1
  257. package/build/browser/shared/ErrorBoundary.js +62 -0
  258. package/build/browser/shared/ErrorBoundary.js.map +1 -0
  259. package/build/browser/shared/ErrorBoundary.module.css +55 -0
  260. package/build/browser/shared/ErrorBoundary.module.css.js +8 -0
  261. package/build/browser/styles.css +3133 -0
  262. package/build/cjs/public/experimental.cjs +4123 -248
  263. package/build/cjs/public/experimental.cjs.map +1 -1
  264. package/build/cjs/public/experimental.css +1873 -154
  265. package/build/cjs/public/experimental.css.map +1 -1
  266. package/build/cjs/public/experimental.d.cts +475 -50
  267. package/build/esm/base-components/action-button/ActionButton.js +31 -0
  268. package/build/esm/base-components/action-button/ActionButton.js.map +1 -0
  269. package/build/esm/base-components/action-button/ActionButton.module.css +70 -0
  270. package/build/esm/base-components/checkbox/Checkbox.module.css +1 -1
  271. package/build/esm/base-components/combobox/Combobox.js +124 -0
  272. package/build/esm/base-components/combobox/Combobox.js.map +1 -0
  273. package/build/esm/base-components/combobox/Combobox.module.css +177 -0
  274. package/build/esm/base-components/dialog/Dialog.js +52 -0
  275. package/build/esm/base-components/dialog/Dialog.js.map +1 -0
  276. package/build/esm/base-components/dialog/Dialog.module.css +101 -0
  277. package/build/esm/base-components/draggable-list/DraggableList.js +155 -0
  278. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -0
  279. package/build/esm/base-components/draggable-list/DraggableList.module.css +108 -0
  280. package/build/esm/base-components/search-bar/SearchBar.js +44 -0
  281. package/build/esm/base-components/search-bar/SearchBar.js.map +1 -0
  282. package/build/esm/base-components/search-bar/SearchBar.module.css +53 -0
  283. package/build/esm/base-components/select/Select.js +89 -0
  284. package/build/esm/base-components/select/Select.js.map +1 -0
  285. package/build/esm/base-components/select/Select.module.css +138 -0
  286. package/build/esm/base-components/switch/Switch.js +33 -0
  287. package/build/esm/base-components/switch/Switch.js.map +1 -0
  288. package/build/esm/base-components/switch/Switch.module.css +91 -0
  289. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  290. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  291. package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js +202 -0
  292. package/build/esm/filter-list/__tests__/LinkedPropertyInput.test.js.map +1 -0
  293. package/build/esm/filter-list/__tests__/dateUtils.test.js +55 -0
  294. package/build/esm/filter-list/__tests__/dateUtils.test.js.map +1 -0
  295. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +296 -0
  296. package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +1 -0
  297. package/build/esm/filter-list/__tests__/getFilterKey.test.js +53 -0
  298. package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +1 -0
  299. package/build/esm/filter-list/__tests__/testUtils.js +203 -0
  300. package/build/esm/filter-list/__tests__/testUtils.js.map +1 -0
  301. package/build/esm/filter-list/base/FilterInput.js +542 -0
  302. package/build/esm/filter-list/base/FilterInput.js.map +1 -0
  303. package/build/esm/filter-list/base/FilterList.js +77 -0
  304. package/build/esm/filter-list/base/FilterList.js.map +1 -0
  305. package/build/esm/filter-list/base/FilterList.module.css +67 -0
  306. package/build/esm/filter-list/base/FilterListContent.js +57 -0
  307. package/build/esm/filter-list/base/FilterListContent.js.map +1 -0
  308. package/build/esm/filter-list/base/FilterListContent.module.css +27 -0
  309. package/build/esm/filter-list/base/FilterListHeader.js +58 -0
  310. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -0
  311. package/build/esm/filter-list/base/FilterListHeader.module.css +127 -0
  312. package/build/esm/filter-list/base/FilterListItem.js +75 -0
  313. package/build/esm/filter-list/base/FilterListItem.js.map +1 -0
  314. package/build/esm/filter-list/base/FilterListItem.module.css +38 -0
  315. package/build/esm/filter-list/base/index.js +22 -0
  316. package/build/esm/filter-list/base/index.js.map +1 -0
  317. package/build/esm/filter-list/base/inputs/CheckboxListInput.js +75 -0
  318. package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -0
  319. package/build/esm/filter-list/base/inputs/CheckboxListInput.module.css +42 -0
  320. package/build/esm/filter-list/base/inputs/ContainsTextInput.js +85 -0
  321. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -0
  322. package/build/esm/filter-list/base/inputs/ContainsTextInput.module.css +91 -0
  323. package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
  324. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
  325. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js +237 -0
  326. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js.map +1 -0
  327. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
  328. package/build/esm/filter-list/base/inputs/ListogramInput.js +98 -0
  329. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
  330. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +88 -0
  331. package/build/esm/filter-list/base/inputs/MultiDateInput.js +82 -0
  332. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -0
  333. package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +54 -0
  334. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +100 -0
  335. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
  336. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +35 -0
  337. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +76 -0
  338. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
  339. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +49 -0
  340. package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
  341. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
  342. package/build/esm/filter-list/base/inputs/RangeInput.js +187 -0
  343. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
  344. package/build/esm/filter-list/base/inputs/RangeInput.module.css +81 -0
  345. package/build/esm/filter-list/base/inputs/SingleDateInput.js +61 -0
  346. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -0
  347. package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +63 -0
  348. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +95 -0
  349. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
  350. package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +55 -0
  351. package/build/esm/filter-list/base/inputs/TextTagsInput.js +141 -0
  352. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
  353. package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
  354. package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
  355. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
  356. package/build/esm/filter-list/base/inputs/TimelineInput.module.css +73 -0
  357. package/build/esm/filter-list/base/inputs/ToggleInput.js +43 -0
  358. package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -0
  359. package/build/esm/filter-list/base/inputs/ToggleInput.module.css +34 -0
  360. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
  361. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
  362. package/build/esm/filter-list/base/inputs/dateUtils.js +57 -0
  363. package/build/esm/filter-list/base/inputs/dateUtils.js.map +1 -0
  364. package/build/esm/filter-list/base/inputs/index.js +25 -0
  365. package/build/esm/filter-list/base/inputs/index.js.map +1 -0
  366. package/build/esm/filter-list/base/inputs/shared.module.css +79 -0
  367. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +128 -0
  368. package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +1 -0
  369. package/build/esm/filter-list/hooks/useFilterListState.js +119 -0
  370. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -0
  371. package/build/esm/filter-list/hooks/usePropertyAggregation.js +92 -0
  372. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
  373. package/build/esm/filter-list/types/AddFilterMenuTypes.js +2 -0
  374. package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +1 -0
  375. package/build/esm/filter-list/types/CustomRendererTypes.js +2 -0
  376. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -0
  377. package/build/esm/filter-list/types/FilterPanelTypes.js +2 -0
  378. package/build/esm/filter-list/types/FilterPanelTypes.js.map +1 -0
  379. package/build/esm/filter-list/types/KeywordSearchTypes.js +2 -0
  380. package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -0
  381. package/build/esm/filter-list/types/LinkedFilterTypes.js +2 -0
  382. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -0
  383. package/build/esm/filter-list/types/index.js +22 -0
  384. package/build/esm/filter-list/types/index.js.map +1 -0
  385. package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
  386. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
  387. package/build/esm/filter-list/utils/assertUnreachable.js +25 -0
  388. package/build/esm/filter-list/utils/assertUnreachable.js.map +1 -0
  389. package/build/esm/filter-list/utils/coerceFilterValue.js +33 -0
  390. package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -0
  391. package/build/esm/filter-list/utils/filterStateToWhereClause.js +337 -0
  392. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -0
  393. package/build/esm/filter-list/utils/filterValues.js +55 -0
  394. package/build/esm/filter-list/utils/filterValues.js.map +1 -0
  395. package/build/esm/filter-list/utils/getFilterKey.js +34 -0
  396. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -0
  397. package/build/esm/object-table/ColumnConfigDialog.js +259 -0
  398. package/build/esm/object-table/ColumnConfigDialog.js.map +1 -0
  399. package/build/esm/object-table/ColumnConfigDialog.module.css +247 -0
  400. package/build/esm/object-table/DefaultCellRenderer.js +46 -0
  401. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -0
  402. package/build/esm/object-table/EditableCell.js +101 -0
  403. package/build/esm/object-table/EditableCell.js.map +1 -0
  404. package/build/esm/object-table/EditableCell.module.css +31 -0
  405. package/build/esm/object-table/LoadingStateTable.js +4 -4
  406. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  407. package/build/esm/object-table/MultiColumnSortDialog.js +178 -0
  408. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -0
  409. package/build/esm/object-table/MultiColumnSortDialog.module.css +195 -0
  410. package/build/esm/object-table/NonIdealState.module.css +2 -3
  411. package/build/esm/object-table/ObjectTable.js +62 -16
  412. package/build/esm/object-table/ObjectTable.js.map +1 -1
  413. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  414. package/build/esm/object-table/SelectionCells.js +15 -4
  415. package/build/esm/object-table/SelectionCells.js.map +1 -1
  416. package/build/esm/object-table/SortableItemsList.js +35 -0
  417. package/build/esm/object-table/SortableItemsList.js.map +1 -0
  418. package/build/esm/object-table/Table.js +34 -9
  419. package/build/esm/object-table/Table.js.map +1 -1
  420. package/build/esm/object-table/Table.module.css +18 -3
  421. package/build/esm/object-table/TableBody.js +8 -2
  422. package/build/esm/object-table/TableBody.js.map +1 -1
  423. package/build/esm/object-table/TableBody.module.css +2 -0
  424. package/build/esm/object-table/TableCell.module.css +14 -1
  425. package/build/esm/object-table/TableEditContainer.js +79 -0
  426. package/build/esm/object-table/TableEditContainer.js.map +1 -0
  427. package/build/esm/object-table/TableEditContainer.module.css +44 -0
  428. package/build/esm/object-table/TableHeader.js +93 -6
  429. package/build/esm/object-table/TableHeader.js.map +1 -1
  430. package/build/esm/object-table/TableHeader.module.css +9 -2
  431. package/build/esm/object-table/TableHeaderWithPopover.js +53 -22
  432. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  433. package/build/esm/object-table/TableHeaderWithPopover.module.css +56 -25
  434. package/build/esm/object-table/TableRow.js +12 -4
  435. package/build/esm/object-table/TableRow.js.map +1 -1
  436. package/build/esm/object-table/TableRow.module.css +4 -1
  437. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +14 -2
  438. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
  439. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +160 -138
  440. package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +1 -1
  441. package/build/esm/object-table/hooks/__tests__/useEditableTable.test.js +292 -0
  442. package/build/esm/object-table/hooks/__tests__/useEditableTable.test.js.map +1 -0
  443. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +113 -25
  444. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
  445. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +48 -0
  446. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -1
  447. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +27 -82
  448. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -1
  449. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +290 -0
  450. package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +1 -1
  451. package/build/esm/object-table/hooks/useColumnDefs.js +16 -3
  452. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  453. package/build/esm/object-table/hooks/useColumnResize.js +45 -0
  454. package/build/esm/object-table/hooks/useColumnResize.js.map +1 -0
  455. package/build/esm/object-table/hooks/useColumnVisibility.js +52 -20
  456. package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
  457. package/build/esm/object-table/hooks/useEditableTable.js +66 -0
  458. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -0
  459. package/build/esm/object-table/hooks/useObjectTableData.js +37 -7
  460. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  461. package/build/esm/object-table/hooks/useRowSelection.js +31 -10
  462. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  463. package/build/esm/object-table/hooks/useSelectionColumn.js +15 -6
  464. package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
  465. package/build/esm/object-table/utils/getCellId.js +20 -0
  466. package/build/esm/object-table/utils/getCellId.js.map +1 -0
  467. package/build/esm/object-table/utils/types.js +2 -0
  468. package/build/esm/object-table/utils/types.js.map +1 -0
  469. package/build/esm/public/experimental.js +2 -0
  470. package/build/esm/public/experimental.js.map +1 -1
  471. package/build/esm/shared/ErrorBoundary.js +62 -0
  472. package/build/esm/shared/ErrorBoundary.js.map +1 -0
  473. package/build/esm/shared/ErrorBoundary.module.css +55 -0
  474. package/build/types/base-components/action-button/ActionButton.d.ts +5 -0
  475. package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -0
  476. package/build/types/base-components/combobox/Combobox.d.ts +52 -0
  477. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
  478. package/build/types/base-components/dialog/Dialog.d.ts +10 -0
  479. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -0
  480. package/build/types/base-components/draggable-list/DraggableList.d.ts +17 -0
  481. package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -0
  482. package/build/types/base-components/search-bar/SearchBar.d.ts +11 -0
  483. package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -0
  484. package/build/types/base-components/select/Select.d.ts +34 -0
  485. package/build/types/base-components/select/Select.d.ts.map +1 -0
  486. package/build/types/base-components/switch/Switch.d.ts +10 -0
  487. package/build/types/base-components/switch/Switch.d.ts.map +1 -0
  488. package/build/types/filter-list/FilterListApi.d.ts +62 -17
  489. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  490. package/build/types/filter-list/FilterListItemApi.d.ts +101 -53
  491. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  492. package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts +1 -0
  493. package/build/types/filter-list/__tests__/LinkedPropertyInput.test.d.ts.map +1 -0
  494. package/build/types/filter-list/__tests__/dateUtils.test.d.ts +1 -0
  495. package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +1 -0
  496. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +1 -0
  497. package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +1 -0
  498. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +1 -0
  499. package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +1 -0
  500. package/build/types/filter-list/__tests__/testUtils.d.ts +65 -0
  501. package/build/types/filter-list/__tests__/testUtils.d.ts.map +1 -0
  502. package/build/types/filter-list/base/FilterInput.d.ts +15 -0
  503. package/build/types/filter-list/base/FilterInput.d.ts.map +1 -0
  504. package/build/types/filter-list/base/FilterList.d.ts +4 -0
  505. package/build/types/filter-list/base/FilterList.d.ts.map +1 -0
  506. package/build/types/filter-list/base/FilterListContent.d.ts +16 -0
  507. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -0
  508. package/build/types/filter-list/base/FilterListHeader.d.ts +14 -0
  509. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -0
  510. package/build/types/filter-list/base/FilterListItem.d.ts +18 -0
  511. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -0
  512. package/build/types/filter-list/base/index.d.ts +5 -0
  513. package/build/types/filter-list/base/index.d.ts.map +1 -0
  514. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts +21 -0
  515. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts.map +1 -0
  516. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts +13 -0
  517. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -0
  518. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +22 -0
  519. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
  520. package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts +21 -0
  521. package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts.map +1 -0
  522. package/build/types/filter-list/base/inputs/ListogramInput.d.ts +22 -0
  523. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
  524. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts +12 -0
  525. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -0
  526. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +24 -0
  527. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
  528. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +21 -0
  529. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
  530. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +22 -0
  531. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
  532. package/build/types/filter-list/base/inputs/RangeInput.d.ts +37 -0
  533. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
  534. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts +13 -0
  535. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -0
  536. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +24 -0
  537. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
  538. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +24 -0
  539. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
  540. package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
  541. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
  542. package/build/types/filter-list/base/inputs/ToggleInput.d.ts +10 -0
  543. package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -0
  544. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
  545. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
  546. package/build/types/filter-list/base/inputs/dateUtils.d.ts +17 -0
  547. package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +1 -0
  548. package/build/types/filter-list/base/inputs/index.d.ts +8 -0
  549. package/build/types/filter-list/base/inputs/index.d.ts.map +1 -0
  550. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +1 -0
  551. package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +1 -0
  552. package/build/types/filter-list/hooks/useFilterListState.d.ts +11 -0
  553. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -0
  554. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +20 -0
  555. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
  556. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +56 -0
  557. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +1 -0
  558. package/build/types/filter-list/types/CustomRendererTypes.d.ts +76 -0
  559. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -0
  560. package/build/types/filter-list/types/FilterPanelTypes.d.ts +18 -0
  561. package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +1 -0
  562. package/build/types/filter-list/types/KeywordSearchTypes.d.ts +56 -0
  563. package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -0
  564. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +89 -0
  565. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -0
  566. package/build/types/filter-list/types/index.d.ts +5 -0
  567. package/build/types/filter-list/types/index.d.ts.map +1 -0
  568. package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
  569. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
  570. package/build/types/filter-list/utils/assertUnreachable.d.ts +6 -0
  571. package/build/types/filter-list/utils/assertUnreachable.d.ts.map +1 -0
  572. package/build/types/filter-list/utils/coerceFilterValue.d.ts +11 -0
  573. package/build/types/filter-list/utils/coerceFilterValue.d.ts.map +1 -0
  574. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +16 -0
  575. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -0
  576. package/build/types/filter-list/utils/filterValues.d.ts +5 -0
  577. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -0
  578. package/build/types/filter-list/utils/getFilterKey.d.ts +3 -0
  579. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -0
  580. package/build/types/object-table/ColumnConfigDialog.d.ts +18 -0
  581. package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -0
  582. package/build/types/object-table/DefaultCellRenderer.d.ts +3 -0
  583. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -0
  584. package/build/types/object-table/EditableCell.d.ts +22 -0
  585. package/build/types/object-table/EditableCell.d.ts.map +1 -0
  586. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  587. package/build/types/object-table/MultiColumnSortDialog.d.ts +15 -0
  588. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -0
  589. package/build/types/object-table/ObjectTable.d.ts +1 -1
  590. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  591. package/build/types/object-table/ObjectTableApi.d.ts +89 -8
  592. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  593. package/build/types/object-table/SortableItemsList.d.ts +13 -0
  594. package/build/types/object-table/SortableItemsList.d.ts.map +1 -0
  595. package/build/types/object-table/Table.d.ts +21 -1
  596. package/build/types/object-table/Table.d.ts.map +1 -1
  597. package/build/types/object-table/TableBody.d.ts +4 -1
  598. package/build/types/object-table/TableBody.d.ts.map +1 -1
  599. package/build/types/object-table/TableEditContainer.d.ts +9 -0
  600. package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
  601. package/build/types/object-table/TableHeader.d.ts +3 -1
  602. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  603. package/build/types/object-table/TableHeaderWithPopover.d.ts +30 -6
  604. package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
  605. package/build/types/object-table/TableRow.d.ts +5 -1
  606. package/build/types/object-table/TableRow.d.ts.map +1 -1
  607. package/build/types/object-table/hooks/__tests__/useEditableTable.test.d.ts +1 -0
  608. package/build/types/object-table/hooks/__tests__/useEditableTable.test.d.ts.map +1 -0
  609. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
  610. package/build/types/object-table/hooks/useColumnResize.d.ts +10 -0
  611. package/build/types/object-table/hooks/useColumnResize.d.ts.map +1 -0
  612. package/build/types/object-table/hooks/useColumnVisibility.d.ts +18 -7
  613. package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
  614. package/build/types/object-table/hooks/useEditableTable.d.ts +17 -0
  615. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -0
  616. package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -5
  617. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  618. package/build/types/object-table/hooks/useRowSelection.d.ts +5 -4
  619. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  620. package/build/types/object-table/utils/getCellId.d.ts +2 -0
  621. package/build/types/object-table/utils/getCellId.d.ts.map +1 -0
  622. package/build/types/object-table/utils/types.d.ts +36 -0
  623. package/build/types/object-table/utils/types.d.ts.map +1 -0
  624. package/build/types/public/experimental.d.ts +6 -2
  625. package/build/types/public/experimental.d.ts.map +1 -1
  626. package/build/types/shared/ErrorBoundary.d.ts +19 -0
  627. package/build/types/shared/ErrorBoundary.d.ts.map +1 -0
  628. package/package.json +16 -8
@@ -1,161 +1,51 @@
1
- // build/browser/object-table/TableRow.js
2
- import React3, { useCallback as useCallback2 } from "react";
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
3
16
 
4
- // build/browser/object-table/TableCell.js
5
- import { flexRender } from "@tanstack/react-table";
6
- import React2, { useRef as useRef2 } from "react";
7
- import React, { useEffect, useRef } from "react";
8
- import { createPortal } from "react-dom";
9
- import { useCallback, useState } from "react";
10
- var css = '/*\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\n.osdkCellContextMenu {\n position: fixed;\n z-index: var(--osdk-surface-z-index-2);\n}\n';
11
- if (typeof document !== "undefined") {
12
- const style = document.createElement("style");
13
- style.textContent = css;
14
- document.head.appendChild(style);
15
- }
16
- var CellContextMenu_default = { "osdkCellContextMenu": "osdkCellContextMenu" };
17
- function CellContextMenu({
18
- cell,
19
- position,
20
- onClose,
21
- renderContent
22
- }) {
23
- const ref = useRef(null);
24
- useEffect(() => {
25
- const handleClickOutside = (event) => {
26
- if (ref.current && !ref.current.contains(event.target)) {
27
- onClose();
28
- }
29
- };
30
- document.addEventListener("mousedown", handleClickOutside);
31
- return () => {
32
- document.removeEventListener("mousedown", handleClickOutside);
33
- };
34
- }, [onClose]);
35
- return /* @__PURE__ */ createPortal(/* @__PURE__ */ React.createElement("div", {
36
- ref,
37
- className: CellContextMenu_default.osdkCellContextMenu,
38
- style: {
39
- left: position.left,
40
- top: position.top,
41
- minWidth: position.width
42
- }
43
- }, renderContent(cell.row.original, cell)), document.body);
44
- }
45
- var useCellContextMenu = ({
46
- tdRef
47
- }) => {
48
- const [popoverPosition, setPopoverPosition] = useState(null);
49
- const [isContextMenuOpen, setIsContextMenuOpen] = useState(false);
50
- const handleOpenContextMenu = useCallback((event) => {
51
- event.preventDefault();
52
- event.stopPropagation();
53
- if (tdRef.current) {
54
- const rect = tdRef.current.getBoundingClientRect();
55
- const position = {
56
- left: rect.left,
57
- top: rect.bottom,
58
- width: rect.width
59
- };
60
- setPopoverPosition(position);
61
- setIsContextMenuOpen(true);
62
- }
63
- }, [tdRef]);
64
- const handleCloseContextMenu = useCallback(() => {
65
- setIsContextMenuOpen(false);
66
- setPopoverPosition(null);
67
- }, []);
68
- return {
69
- isContextMenuOpen,
70
- handleOpenContextMenu,
71
- handleCloseContextMenu,
72
- popoverPosition
73
- };
74
- };
75
- var css2 = '/*\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\n.osdkTableCell {\n display: flex;\n align-items: center;\n text-align: left;\n position: relative;\n padding: var(--osdk-table-cell-padding);\n font-size: var(--osdk-table-cell-fontSize);\n color: var(--osdk-table-cell-color);\n background-color: inherit;\n border-right: var(--osdk-table-cell-divider);\n\n &:first-child {\n border-left: var(--osdk-table-border);\n }\n\n &:last-child {\n border-right: var(--osdk-table-border);\n }\n}\n\n.osdkTableCell[data-pinned="left"],\n.osdkTableCell[data-pinned="right"] {\n position: sticky;\n z-index: var(--osdk-surface-z-index-1);\n}\n\n/* Last left-pinned column - no left-pinned siblings after it */\n.osdkTableCell[data-pinned="left"]:not(:has(~ [data-pinned="left"])) {\n border-right: var(--osdk-table-pinned-column-border);\n}\n\n/* First right-pinned column - no right-pinned siblings before it */\n.osdkTableCell[data-pinned="right"]:not(:has(~ [data-pinned="right"]):nth-child(n+2)) {\n border-left: var(--osdk-table-pinned-column-border);\n}\n\n.osdkTableCell:has([role="checkbox"]) {\n justify-content: center;\n}\n\n.osdkTableCellContent:not(:has([role="checkbox"])) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-align: left;\n}\n';
76
- if (typeof document !== "undefined") {
77
- const style = document.createElement("style");
78
- style.textContent = css2;
79
- document.head.appendChild(style);
80
- }
81
- var TableCell_default = { "osdkTableCell": "osdkTableCell", "osdkTableCellContent": "osdkTableCellContent" };
82
- var SELECTION_COLUMN_ID = "__selection__";
83
- function getColumnPinningStyles(column) {
84
- const isPinned = column.getIsPinned();
85
- return {
86
- columnStyles: {
87
- left: isPinned === "left" ? `${column.getStart("left")}px` : void 0,
88
- right: isPinned === "right" ? `${column.getAfter("right")}px` : void 0,
89
- width: column.getSize()
90
- }
91
- };
92
- }
93
- function TableCell({
94
- cell,
95
- renderCellContextMenu
96
- }) {
97
- const tdRef = useRef2(null);
98
- const isSelectColumn = cell.column.id === SELECTION_COLUMN_ID;
99
- const {
100
- isContextMenuOpen,
101
- handleOpenContextMenu,
102
- handleCloseContextMenu,
103
- popoverPosition
104
- } = useCellContextMenu({
105
- tdRef
106
- });
107
- const {
108
- columnStyles
109
- } = getColumnPinningStyles(cell.column);
110
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("td", {
111
- ref: tdRef,
112
- "data-pinned": cell.column.getIsPinned(),
113
- className: TableCell_default.osdkTableCell,
114
- style: columnStyles,
115
- onContextMenu: handleOpenContextMenu
116
- }, /* @__PURE__ */ React2.createElement("div", {
117
- className: TableCell_default.osdkTableCellContent
118
- }, flexRender(cell.column.columnDef.cell, cell.getContext()))), !isSelectColumn && isContextMenuOpen && !!popoverPosition && !!renderCellContextMenu && /* @__PURE__ */ React2.createElement(CellContextMenu, {
119
- cell,
120
- position: popoverPosition,
121
- onClose: handleCloseContextMenu,
122
- renderContent: renderCellContextMenu
123
- }));
124
- }
125
-
126
- // build/browser/object-table/TableRow.module.css
127
- var css3 = '/*\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\n.osdkTableRow {\n position: absolute;\n display: flex;\n background-color: var(--osdk-table-row-bg-default);\n border-top: var(--osdk-table-row-divider);\n border-bottom: var(--osdk-table-border-width) solid transparent;\n\n &:last-child {\n border-bottom: var(--osdk-table-border);\n }\n\n /* Zebra rows */\n &:nth-child(even) {\n background-color: var(\n --osdk-table-row-bg-alternate,\n var(--osdk-table-row-bg-default)\n );\n }\n\n &:hover {\n z-index: 1;\n background-color: var(\n --osdk-table-row-bg-hover,\n var(--osdk-surface-background-color-default-hover)\n );\n border-top-color: var(--osdk-table-row-border-color-hover);\n border-bottom-color: var(--osdk-table-row-border-color-hover);\n }\n\n &[data-selected="true"] {\n z-index: 2;\n background-color: var(--osdk-table-row-bg-active);\n border-top-color: var(--osdk-table-row-border-color-active);\n border-bottom-color: var(--osdk-table-row-border-color-active);\n }\n\n &[data-selected="true"] + &[data-selected="true"] {\n border-top-color: transparent;\n }\n\n &[data-selected="true"]:has(+ &[data-selected="true"]) {\n border-bottom-color: transparent;\n }\n}\n';
128
- if (typeof document !== "undefined") {
129
- const style = document.createElement("style");
130
- style.textContent = css3;
131
- document.head.appendChild(style);
132
- }
133
- var TableRow_default = { "osdkTableRow": "osdkTableRow" };
134
-
135
- // build/browser/object-table/TableRow.js
136
- function TableRow({
17
+ import React, { useCallback } from "react";
18
+ import { TableCell } from "./TableCell.js";
19
+ import styles from "./TableRow.module.css.js";
20
+ function TableRowInner({
137
21
  row,
138
22
  virtualRow,
139
23
  onRowClick,
140
- renderCellContextMenu
24
+ renderCellContextMenu,
25
+ focusedRowId,
26
+ setFocusedRowId,
27
+ isInEditMode
141
28
  }) {
142
- const handleClick = useCallback2(() => {
143
- onRowClick?.(row.original);
144
- }, [onRowClick, row.original]);
145
- return /* @__PURE__ */ React3.createElement("tr", {
29
+ const handleClick = useCallback(() => {
30
+ setFocusedRowId?.(row.id);
31
+ if (!isInEditMode) {
32
+ onRowClick?.(row.original);
33
+ }
34
+ }, [isInEditMode, onRowClick, row.original, row.id, setFocusedRowId]);
35
+ return /*#__PURE__*/React.createElement("tr", {
146
36
  "data-selected": row.getIsSelected(),
147
- className: TableRow_default.osdkTableRow,
37
+ "data-focused": focusedRowId === row.id,
38
+ className: styles.osdkTableRow,
148
39
  style: {
149
40
  height: `${virtualRow.size}px`,
150
41
  transform: `translateY(${virtualRow.start}px)`
151
42
  },
152
43
  onClick: handleClick
153
- }, row.getVisibleCells().map((cell) => /* @__PURE__ */ React3.createElement(TableCell, {
44
+ }, row.getVisibleCells().map(cell => /*#__PURE__*/React.createElement(TableCell, {
154
45
  key: cell.id,
155
- cell,
156
- renderCellContextMenu
46
+ cell: cell,
47
+ renderCellContextMenu: renderCellContextMenu
157
48
  })));
158
49
  }
159
- export {
160
- TableRow
161
- };
50
+ export const TableRow = /*#__PURE__*/React.memo(TableRowInner);
51
+ //# sourceMappingURL=TableRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","names":["React","useCallback","TableCell","styles","TableRow","row","virtualRow","onRowClick","renderCellContextMenu","handleClick","original","createElement","getIsSelected","className","osdkTableRow","style","height","size","transform","start","onClick","getVisibleCells","map","cell","key","id"],"sources":["TableRow.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 { Cell, Row, RowData } from \"@tanstack/react-table\";\nimport type { VirtualItem } from \"@tanstack/react-virtual\";\nimport React, { useCallback } from \"react\";\nimport { TableCell } from \"./TableCell.js\";\nimport styles from \"./TableRow.module.css\";\n\ninterface TableRowProps<TData extends RowData> {\n row: Row<TData>;\n virtualRow: VirtualItem;\n onRowClick?: (row: TData) => void;\n renderCellContextMenu?: (\n row: TData,\n cell: Cell<TData, unknown>,\n ) => React.ReactNode;\n}\n\nexport function TableRow<TData extends RowData>({\n row,\n virtualRow,\n onRowClick,\n renderCellContextMenu,\n}: TableRowProps<TData>): React.ReactElement {\n const handleClick = useCallback(() => {\n onRowClick?.(row.original);\n }, [onRowClick, row.original]);\n\n return (\n <tr\n data-selected={row.getIsSelected()}\n className={styles.osdkTableRow}\n style={{\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`,\n }}\n onClick={handleClick}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n cell={cell}\n renderCellContextMenu={renderCellContextMenu}\n />\n ))}\n </tr>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,OAAOC,MAAM,MAAM,uBAAuB;AAY1C,OAAO,SAASC,QAAQA,CAAwB;EAC9CC,GAAG;EACHC,UAAU;EACVC,UAAU;EACVC;AACoB,CAAC,EAAsB;EAC3C,MAAMC,WAAW,GAAGR,WAAW,CAAC,MAAM;IACpCM,UAAU,GAAGF,GAAG,CAACK,QAAQ,CAAC;EAC5B,CAAC,EAAE,CAACH,UAAU,EAAEF,GAAG,CAACK,QAAQ,CAAC,CAAC;EAE9B,oBACEV,KAAA,CAAAW,aAAA;IACE,iBAAeN,GAAG,CAACO,aAAa,CAAC,CAAE;IACnCC,SAAS,EAAEV,MAAM,CAACW,YAAa;IAC/BC,KAAK,EAAE;MACLC,MAAM,EAAE,GAAGV,UAAU,CAACW,IAAI,IAAI;MAC9BC,SAAS,EAAE,cAAcZ,UAAU,CAACa,KAAK;IAC3C,CAAE;IACFC,OAAO,EAAEX;EAAY,GAEpBJ,GAAG,CAACgB,eAAe,CAAC,CAAC,CAACC,GAAG,CAAEC,IAAI,iBAC9BvB,KAAA,CAAAW,aAAA,CAACT,SAAS;IACRsB,GAAG,EAAED,IAAI,CAACE,EAAG;IACbF,IAAI,EAAEA,IAAK;IACXf,qBAAqB,EAAEA;EAAsB,CAC9C,CACF,CACC,CAAC;AAET","ignoreList":[]}
1
+ {"version":3,"file":"TableRow.js","names":["React","useCallback","TableCell","styles","TableRowInner","row","virtualRow","onRowClick","renderCellContextMenu","focusedRowId","setFocusedRowId","isInEditMode","handleClick","id","original","createElement","getIsSelected","className","osdkTableRow","style","height","size","transform","start","onClick","getVisibleCells","map","cell","key","TableRow","memo"],"sources":["TableRow.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 { Cell, Row, RowData } from \"@tanstack/react-table\";\nimport type { VirtualItem } from \"@tanstack/react-virtual\";\nimport React, { useCallback } from \"react\";\nimport { TableCell } from \"./TableCell.js\";\nimport styles from \"./TableRow.module.css\";\n\ninterface TableRowProps<TData extends RowData> {\n row: Row<TData>;\n virtualRow: VirtualItem;\n onRowClick?: (row: TData) => void;\n renderCellContextMenu?: (\n row: TData,\n cell: Cell<TData, unknown>,\n ) => React.ReactNode;\n focusedRowId?: string | null;\n setFocusedRowId?: (rowId: string | null) => void;\n isInEditMode?: boolean;\n}\n\nfunction TableRowInner<TData extends RowData>({\n row,\n virtualRow,\n onRowClick,\n renderCellContextMenu,\n focusedRowId,\n setFocusedRowId,\n isInEditMode,\n}: TableRowProps<TData>): React.ReactElement {\n const handleClick = useCallback(() => {\n setFocusedRowId?.(row.id);\n\n if (!isInEditMode) {\n onRowClick?.(row.original);\n }\n }, [isInEditMode, onRowClick, row.original, row.id, setFocusedRowId]);\n\n return (\n <tr\n data-selected={row.getIsSelected()}\n data-focused={focusedRowId === row.id}\n className={styles.osdkTableRow}\n style={{\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`,\n }}\n onClick={handleClick}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n cell={cell}\n renderCellContextMenu={renderCellContextMenu}\n />\n ))}\n </tr>\n );\n}\n\nexport const TableRow = React.memo(\n TableRowInner,\n) as typeof TableRowInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,OAAOC,MAAM,MAAM,uBAAuB;AAe1C,SAASC,aAAaA,CAAwB;EAC5CC,GAAG;EACHC,UAAU;EACVC,UAAU;EACVC,qBAAqB;EACrBC,YAAY;EACZC,eAAe;EACfC;AACoB,CAAC,EAAsB;EAC3C,MAAMC,WAAW,GAAGX,WAAW,CAAC,MAAM;IACpCS,eAAe,GAAGL,GAAG,CAACQ,EAAE,CAAC;IAEzB,IAAI,CAACF,YAAY,EAAE;MACjBJ,UAAU,GAAGF,GAAG,CAACS,QAAQ,CAAC;IAC5B;EACF,CAAC,EAAE,CAACH,YAAY,EAAEJ,UAAU,EAAEF,GAAG,CAACS,QAAQ,EAAET,GAAG,CAACQ,EAAE,EAAEH,eAAe,CAAC,CAAC;EAErE,oBACEV,KAAA,CAAAe,aAAA;IACE,iBAAeV,GAAG,CAACW,aAAa,CAAC,CAAE;IACnC,gBAAcP,YAAY,KAAKJ,GAAG,CAACQ,EAAG;IACtCI,SAAS,EAAEd,MAAM,CAACe,YAAa;IAC/BC,KAAK,EAAE;MACLC,MAAM,EAAE,GAAGd,UAAU,CAACe,IAAI,IAAI;MAC9BC,SAAS,EAAE,cAAchB,UAAU,CAACiB,KAAK;IAC3C,CAAE;IACFC,OAAO,EAAEZ;EAAY,GAEpBP,GAAG,CAACoB,eAAe,CAAC,CAAC,CAACC,GAAG,CAAEC,IAAI,iBAC9B3B,KAAA,CAAAe,aAAA,CAACb,SAAS;IACR0B,GAAG,EAAED,IAAI,CAACd,EAAG;IACbc,IAAI,EAAEA,IAAK;IACXnB,qBAAqB,EAAEA;EAAsB,CAC9C,CACF,CACC,CAAC;AAET;AAEA,OAAO,MAAMqB,QAAQ,gBAAG7B,KAAK,CAAC8B,IAAI,CAChC1B,aACF,CAAyB","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ .osdkTableRow {
18
+ position: absolute;
19
+ display: flex;
20
+ width: max-content;
21
+ min-width: 100%;
22
+ background-color: var(--osdk-table-row-bg-default);
23
+ border-top: var(--osdk-table-row-divider);
24
+ border-bottom: var(--osdk-table-border-width) solid transparent;
25
+
26
+ &:last-child {
27
+ border-bottom: var(--osdk-table-border);
28
+ }
29
+
30
+ /* Zebra rows */
31
+ &:nth-child(even) {
32
+ background-color: var(
33
+ --osdk-table-row-bg-alternate,
34
+ var(--osdk-table-row-bg-default)
35
+ );
36
+ }
37
+
38
+ &:hover {
39
+ z-index: 1;
40
+ background-color: var(
41
+ --osdk-table-row-bg-hover,
42
+ var(--osdk-surface-background-color-default-hover)
43
+ );
44
+ border-top-color: var(--osdk-table-row-border-color-hover);
45
+ border-bottom-color: var(--osdk-table-row-border-color-hover);
46
+ }
47
+
48
+ &[data-selected="true"],
49
+ &[data-focused="true"] {
50
+ z-index: 2;
51
+ background-color: var(--osdk-table-row-bg-active);
52
+ border-top-color: var(--osdk-table-row-border-color-active);
53
+ border-bottom-color: var(--osdk-table-row-border-color-active);
54
+ }
55
+
56
+ &[data-selected="true"] + &[data-selected="true"] {
57
+ border-top-color: transparent;
58
+ }
59
+
60
+ &[data-selected="true"]:has(+ &[data-selected="true"]) {
61
+ border-bottom-color: transparent;
62
+ }
63
+ }
@@ -0,0 +1,6 @@
1
+ // CSS Module proxy for TableRow.module.css
2
+ const styles = {
3
+ "osdkTableRow": "TableRow-module__osdkTableRow___sjVwZnzA"
4
+ };
5
+
6
+ export default styles;
@@ -345,12 +345,24 @@ describe(useColumnDefs, () => {
345
345
  row: {
346
346
  original: {
347
347
  name: "John"
348
+ },
349
+ id: "row-1"
350
+ },
351
+ getValue: mockGetValue,
352
+ column: {
353
+ id: "name",
354
+ columnDef: {
355
+ meta: {}
348
356
  }
349
357
  },
350
- getValue: mockGetValue
358
+ table: {
359
+ options: {
360
+ meta: {}
361
+ }
362
+ }
351
363
  });
352
364
  }
353
- expect(cellResult).toBe("John");
365
+ expect(cellResult).toEqual(/*#__PURE__*/React.createElement(React.Fragment, null, "John"));
354
366
  expect(mockGetValue).toHaveBeenCalled();
355
367
  });
356
368
  it("handles function column locators", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnDefs.test.js","names":["OsdkProvider","renderHook","waitFor","pDefer","React","describe","expect","it","vitest","useColumnDefs","TestObjectType","type","apiName","mockMetadata","primaryKeyApiName","primaryKeyType","properties","id","displayName","name","age","email","createWrapper","client","children","createElement","deferred","fakeClient","fetchMetadata","fn","promise","wrapper","result","current","loading","toBe","columns","toEqual","error","toBeUndefined","resolve","toHaveLength","accessorKey","header","undefined","noDisplayName","columnDefinitions","locator","width","minWidth","maxWidth","resizable","orderable","filterable","nameColumn","size","minSize","maxSize","enableResizing","enableSorting","enableColumnFilter","emailColumn","length","customHeader","renderHeader","customRenderCell","object","renderCell","cell","toBeDefined","mockObject","mockCellContext","row","original","getValue","toHaveBeenCalledWith","mockGetValue","cellResult","toHaveBeenCalled","functionColumn","mockRdpCreator","creator","rdpColumn","rerender","colDefs","initialProps","firstColumns","updatedColumns","Error","reject"],"sources":["useColumnDefs.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 {\n DerivedProperty,\n ObjectTypeDefinition,\n Osdk,\n PropertyKeys,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport { OsdkProvider } from \"@osdk/react\";\nimport type { AccessorKeyColumnDef } from \"@tanstack/react-table\";\nimport { renderHook, waitFor } from \"@testing-library/react\";\nimport pDefer from \"p-defer\";\nimport * as React from \"react\";\nimport { describe, expect, it, vitest } from \"vitest\";\nimport type { ColumnDefinition } from \"../../ObjectTableApi.js\";\nimport { useColumnDefs } from \"../useColumnDefs.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\n\ntype TestObjectKeys = PropertyKeys<TestObject>;\n\nconst mockMetadata = {\n apiName: \"TestObject\",\n primaryKeyApiName: \"id\",\n primaryKeyType: \"string\",\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n name: {\n type: \"string\",\n displayName: \"Name\",\n },\n age: {\n type: \"integer\",\n displayName: \"Age\",\n },\n email: {\n type: \"string\",\n displayName: \"Email Address\",\n },\n },\n};\ndescribe(useColumnDefs, () => {\n const createWrapper = (client: Client) => {\n return ({ children }: React.PropsWithChildren) => {\n return (\n <OsdkProvider client={client}>\n {children}\n </OsdkProvider>\n );\n };\n };\n\n it(\"returns loading state initially\", () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n expect(result.current.loading).toBe(true);\n expect(result.current.columns).toEqual([]);\n expect(result.current.error).toBeUndefined();\n });\n\n describe(\"when no columnDefinitions provided\", () => {\n it(\"generates default columns from metadata\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n expect(result.current.loading).toBe(true);\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(4);\n expect(result.current.columns[0]).toEqual({\n accessorKey: \"id\",\n header: \"ID\",\n });\n expect(result.current.columns[1]).toEqual({\n accessorKey: \"name\",\n header: \"Name\",\n });\n expect(result.current.columns[2]).toEqual({\n accessorKey: \"age\",\n header: \"Age\",\n });\n expect(result.current.columns[3]).toEqual({\n accessorKey: \"email\",\n header: \"Email Address\",\n });\n });\n\n it(\"returns empty columns array when metadata has no properties\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n deferred.resolve({\n ...mockMetadata,\n properties: undefined,\n });\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toEqual([]);\n });\n\n it(\"uses property key as header when displayName is not available\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n deferred.resolve({\n ...mockMetadata,\n properties: {\n noDisplayName: {\n type: \"string\",\n },\n },\n });\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(1);\n expect(result.current.columns[0]).toEqual({\n accessorKey: \"noDisplayName\",\n header: \"noDisplayName\",\n });\n });\n });\n\n describe(\"when columnDefinitions is provided\", () => {\n it(\"builds columns from columnDefinitions with property locators\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: {\n type: \"property\",\n id: \"name\" as TestObjectKeys,\n },\n width: 200,\n minWidth: 100,\n maxWidth: 400,\n resizable: true,\n orderable: true,\n filterable: false,\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(2);\n\n const nameColumn = result.current.columns[0];\n expect(nameColumn.id).toBe(\"name\");\n expect(\n (nameColumn as AccessorKeyColumnDef<Osdk.Instance<TestObject>>)\n .accessorKey,\n ).toBe(\"name\");\n expect(nameColumn.header).toBe(\"Name\");\n expect(nameColumn.size).toBe(200);\n expect(nameColumn.minSize).toBe(100);\n expect(nameColumn.maxSize).toBe(400);\n expect(nameColumn.enableResizing).toBe(true);\n expect(nameColumn.enableSorting).toBe(true);\n expect(nameColumn.enableColumnFilter).toBe(false);\n\n const emailColumn = result.current.columns[1];\n expect(emailColumn.id).toBe(\"email\");\n expect(\n (emailColumn as AccessorKeyColumnDef<Osdk.Instance<TestObject>>)\n .accessorKey,\n ).toBe(\"email\");\n expect(emailColumn.header).toBe(\"Email Address\");\n });\n\n it(\"builds columns from columnDefinitions even when metadata has no properties\", async () => {\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: {\n type: \"property\",\n id: \"name\" as TestObjectKeys,\n },\n width: 200,\n minWidth: 100,\n maxWidth: 400,\n resizable: true,\n orderable: true,\n filterable: false,\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve({\n ...mockMetadata,\n properties: undefined,\n });\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns.length).toBe(2);\n const nameColumn = result.current.columns[0];\n expect(nameColumn.header).toBeUndefined();\n\n const emailColumn = result.current.columns[1];\n expect(emailColumn.header).toBeUndefined();\n });\n\n it(\"uses custom renderHeader when provided\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const customHeader = () => <div>Custom Header</div>;\n\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n renderHeader: customHeader,\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns[0].header).toBe(customHeader);\n });\n\n it(\"uses custom renderCell when provided\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const customRenderCell = vitest.fn((\n object: Osdk.Instance<TestObject>,\n ) => <div>Custom: {(object as unknown as { name: string }).name}</div>);\n\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n renderCell: customRenderCell,\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n const nameColumn = result.current.columns[0];\n expect(nameColumn.cell).toBeDefined();\n\n // Test the cell renderer\n const mockObject = { name: \"John\" } as unknown as Osdk.Instance<\n TestObject\n >;\n const mockCellContext = {\n row: { original: mockObject },\n getValue: () => \"John\",\n };\n\n if (typeof nameColumn.cell === \"function\") {\n (nameColumn.cell as unknown as (\n ctx: typeof mockCellContext,\n ) => unknown)(mockCellContext);\n }\n\n expect(customRenderCell).toHaveBeenCalledWith(\n mockObject,\n { type: \"property\", id: \"name\" },\n );\n });\n\n it(\"defaults to getValue when renderCell is not provided\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n const nameColumn = result.current.columns[0];\n expect(nameColumn.cell).toBeDefined();\n\n const mockObject = { name: \"John\" } as unknown as Osdk.Instance<\n TestObject\n >;\n const mockGetValue = vitest.fn(() => \"John\");\n const mockCellContext = {\n row: { original: mockObject },\n getValue: mockGetValue,\n };\n\n let cellResult: unknown;\n\n if (typeof nameColumn.cell === \"function\") {\n cellResult = (nameColumn.cell as unknown as (\n ctx: typeof mockCellContext,\n ) => unknown)(mockCellContext);\n }\n expect(cellResult).toBe(\"John\");\n expect(mockGetValue).toHaveBeenCalled();\n });\n\n it(\"handles function column locators\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const columnDefinitions: Array<\n ColumnDefinition<TestObject, {}, { myFunction: any }>\n > = [\n {\n locator: { type: \"function\", id: \"myFunction\" },\n width: 150,\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(1);\n\n const functionColumn = result.current.columns[0];\n expect(functionColumn.id).toBe(\"myFunction\");\n expect(\n (functionColumn as AccessorKeyColumnDef<Osdk.Instance<TestObject>>)\n .accessorKey,\n ).toBe(\"myFunction\");\n expect(functionColumn.header).toBeUndefined();\n expect(functionColumn.size).toBe(150);\n });\n\n it(\"handles RDP column locators\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const mockRdpCreator = vitest.fn() as unknown as DerivedProperty.Creator<\n TestObject,\n SimplePropertyDef\n >;\n\n const columnDefinitions: Array<\n ColumnDefinition<TestObject, { myRdp: SimplePropertyDef }, {}>\n > = [\n {\n locator: { type: \"rdp\", id: \"myRdp\", creator: mockRdpCreator },\n width: 180,\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(1);\n\n const rdpColumn = result.current.columns[0];\n expect(rdpColumn.id).toBe(\"myRdp\");\n expect(\n (rdpColumn as AccessorKeyColumnDef<Osdk.Instance<TestObject>>)\n .accessorKey,\n ).toBe(\"myRdp\");\n expect(rdpColumn.header).toBeUndefined();\n expect(rdpColumn.size).toBe(180);\n });\n\n it(\"updates columns when columnDefinitions changed\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const initialColumnDefinitions: Array<\n ColumnDefinition<TestObject, {}, {}>\n > = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n ];\n\n type ColDefs =\n | Array<\n ColumnDefinition<TestObject, Record<string, SimplePropertyDef>, {}>\n >\n | undefined;\n\n const { result, rerender } = renderHook(\n ({ colDefs }: { colDefs: ColDefs }) =>\n useColumnDefs(TestObjectType, colDefs),\n {\n initialProps: { colDefs: initialColumnDefinitions as ColDefs },\n wrapper,\n },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n const firstColumns = result.current.columns;\n\n const updatedColumnDefinitions: Array<\n ColumnDefinition<TestObject, {}, {}>\n > = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n\n // Rerender with new columnDefinitions\n rerender({ colDefs: updatedColumnDefinitions });\n\n // Updated columns should have two items\n const updatedColumns = result.current.columns;\n\n expect(firstColumns.length).toBe(1);\n expect(updatedColumns.length).toBe(2);\n });\n });\n\n it(\"handles metadata fetch errors\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n const error = new Error(\"Failed to fetch metadata\");\n deferred.reject(error);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.error).toBeDefined();\n expect(result.current.columns).toEqual([]);\n });\n\n it(\"memoizes columns based on metadata properties\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result, rerender } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n const firstColumns = result.current.columns;\n\n // Rerender without changing metadata\n rerender();\n\n // Columns should be the same reference (memoized)\n expect(result.current.columns).toBe(firstColumns);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useColumnDefs.test.js","names":["OsdkProvider","renderHook","waitFor","pDefer","React","describe","expect","it","vitest","useColumnDefs","TestObjectType","type","apiName","mockMetadata","primaryKeyApiName","primaryKeyType","properties","id","displayName","name","age","email","createWrapper","client","children","createElement","deferred","fakeClient","fetchMetadata","fn","promise","wrapper","result","current","loading","toBe","columns","toEqual","error","toBeUndefined","resolve","toHaveLength","accessorKey","header","undefined","noDisplayName","columnDefinitions","locator","width","minWidth","maxWidth","resizable","orderable","filterable","nameColumn","size","minSize","maxSize","enableResizing","enableSorting","enableColumnFilter","emailColumn","length","customHeader","renderHeader","customRenderCell","object","renderCell","cell","toBeDefined","mockObject","mockCellContext","row","original","getValue","toHaveBeenCalledWith","mockGetValue","cellResult","column","columnDef","meta","table","options","Fragment","toHaveBeenCalled","functionColumn","mockRdpCreator","creator","rdpColumn","rerender","colDefs","initialProps","firstColumns","updatedColumns","Error","reject"],"sources":["useColumnDefs.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 {\n DerivedProperty,\n ObjectTypeDefinition,\n Osdk,\n PropertyKeys,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { Client } from \"@osdk/client\";\nimport { OsdkProvider } from \"@osdk/react\";\nimport type { AccessorKeyColumnDef } from \"@tanstack/react-table\";\nimport { renderHook, waitFor } from \"@testing-library/react\";\nimport pDefer from \"p-defer\";\nimport * as React from \"react\";\nimport { describe, expect, it, vitest } from \"vitest\";\nimport type { ColumnDefinition } from \"../../ObjectTableApi.js\";\nimport { useColumnDefs } from \"../useColumnDefs.js\";\n\nconst TestObjectType = {\n type: \"object\",\n apiName: \"TestObject\",\n} as const satisfies ObjectTypeDefinition;\n\ntype TestObject = typeof TestObjectType;\n\ntype TestObjectKeys = PropertyKeys<TestObject>;\n\nconst mockMetadata = {\n apiName: \"TestObject\",\n primaryKeyApiName: \"id\",\n primaryKeyType: \"string\",\n properties: {\n id: {\n type: \"string\",\n displayName: \"ID\",\n },\n name: {\n type: \"string\",\n displayName: \"Name\",\n },\n age: {\n type: \"integer\",\n displayName: \"Age\",\n },\n email: {\n type: \"string\",\n displayName: \"Email Address\",\n },\n },\n};\ndescribe(useColumnDefs, () => {\n const createWrapper = (client: Client) => {\n return ({ children }: React.PropsWithChildren) => {\n return (\n <OsdkProvider client={client}>\n {children}\n </OsdkProvider>\n );\n };\n };\n\n it(\"returns loading state initially\", () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n expect(result.current.loading).toBe(true);\n expect(result.current.columns).toEqual([]);\n expect(result.current.error).toBeUndefined();\n });\n\n describe(\"when no columnDefinitions provided\", () => {\n it(\"generates default columns from metadata\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n expect(result.current.loading).toBe(true);\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(4);\n expect(result.current.columns[0]).toEqual({\n accessorKey: \"id\",\n header: \"ID\",\n });\n expect(result.current.columns[1]).toEqual({\n accessorKey: \"name\",\n header: \"Name\",\n });\n expect(result.current.columns[2]).toEqual({\n accessorKey: \"age\",\n header: \"Age\",\n });\n expect(result.current.columns[3]).toEqual({\n accessorKey: \"email\",\n header: \"Email Address\",\n });\n });\n\n it(\"returns empty columns array when metadata has no properties\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n deferred.resolve({\n ...mockMetadata,\n properties: undefined,\n });\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toEqual([]);\n });\n\n it(\"uses property key as header when displayName is not available\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n deferred.resolve({\n ...mockMetadata,\n properties: {\n noDisplayName: {\n type: \"string\",\n },\n },\n });\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(1);\n expect(result.current.columns[0]).toEqual({\n accessorKey: \"noDisplayName\",\n header: \"noDisplayName\",\n });\n });\n });\n\n describe(\"when columnDefinitions is provided\", () => {\n it(\"builds columns from columnDefinitions with property locators\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: {\n type: \"property\",\n id: \"name\" as TestObjectKeys,\n },\n width: 200,\n minWidth: 100,\n maxWidth: 400,\n resizable: true,\n orderable: true,\n filterable: false,\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(2);\n\n const nameColumn = result.current.columns[0];\n expect(nameColumn.id).toBe(\"name\");\n expect(\n (nameColumn as AccessorKeyColumnDef<Osdk.Instance<TestObject>>)\n .accessorKey,\n ).toBe(\"name\");\n expect(nameColumn.header).toBe(\"Name\");\n expect(nameColumn.size).toBe(200);\n expect(nameColumn.minSize).toBe(100);\n expect(nameColumn.maxSize).toBe(400);\n expect(nameColumn.enableResizing).toBe(true);\n expect(nameColumn.enableSorting).toBe(true);\n expect(nameColumn.enableColumnFilter).toBe(false);\n\n const emailColumn = result.current.columns[1];\n expect(emailColumn.id).toBe(\"email\");\n expect(\n (emailColumn as AccessorKeyColumnDef<Osdk.Instance<TestObject>>)\n .accessorKey,\n ).toBe(\"email\");\n expect(emailColumn.header).toBe(\"Email Address\");\n });\n\n it(\"builds columns from columnDefinitions even when metadata has no properties\", async () => {\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: {\n type: \"property\",\n id: \"name\" as TestObjectKeys,\n },\n width: 200,\n minWidth: 100,\n maxWidth: 400,\n resizable: true,\n orderable: true,\n filterable: false,\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve({\n ...mockMetadata,\n properties: undefined,\n });\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns.length).toBe(2);\n const nameColumn = result.current.columns[0];\n expect(nameColumn.header).toBeUndefined();\n\n const emailColumn = result.current.columns[1];\n expect(emailColumn.header).toBeUndefined();\n });\n\n it(\"uses custom renderHeader when provided\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const customHeader = () => <div>Custom Header</div>;\n\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n renderHeader: customHeader,\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns[0].header).toBe(customHeader);\n });\n\n it(\"uses custom renderCell when provided\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const customRenderCell = vitest.fn((\n object: Osdk.Instance<TestObject>,\n ) => <div>Custom: {(object as unknown as { name: string }).name}</div>);\n\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n renderCell: customRenderCell,\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n const nameColumn = result.current.columns[0];\n expect(nameColumn.cell).toBeDefined();\n\n // Test the cell renderer\n const mockObject = { name: \"John\" } as unknown as Osdk.Instance<\n TestObject\n >;\n const mockCellContext = {\n row: { original: mockObject },\n getValue: () => \"John\",\n };\n\n if (typeof nameColumn.cell === \"function\") {\n (nameColumn.cell as unknown as (\n ctx: typeof mockCellContext,\n ) => unknown)(mockCellContext);\n }\n\n expect(customRenderCell).toHaveBeenCalledWith(\n mockObject,\n { type: \"property\", id: \"name\" },\n );\n });\n\n it(\"defaults to getValue when renderCell is not provided\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const columnDefinitions: Array<ColumnDefinition<TestObject, {}, {}>> = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n const nameColumn = result.current.columns[0];\n expect(nameColumn.cell).toBeDefined();\n\n const mockObject = { name: \"John\" } as unknown as Osdk.Instance<\n TestObject\n >;\n const mockGetValue = vitest.fn(() => \"John\");\n const mockCellContext = {\n row: { original: mockObject, id: \"row-1\" },\n getValue: mockGetValue,\n column: { id: \"name\", columnDef: { meta: {} } },\n table: {\n options: {\n meta: {},\n },\n },\n };\n\n let cellResult: unknown;\n\n if (typeof nameColumn.cell === \"function\") {\n cellResult = (nameColumn.cell as unknown as (\n ctx: typeof mockCellContext,\n ) => unknown)(mockCellContext);\n }\n expect(cellResult).toEqual(\n <React.Fragment>\n John\n </React.Fragment>,\n );\n expect(mockGetValue).toHaveBeenCalled();\n });\n\n it(\"handles function column locators\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const columnDefinitions: Array<\n ColumnDefinition<TestObject, {}, { myFunction: any }>\n > = [\n {\n locator: { type: \"function\", id: \"myFunction\" },\n width: 150,\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(1);\n\n const functionColumn = result.current.columns[0];\n expect(functionColumn.id).toBe(\"myFunction\");\n expect(\n (functionColumn as AccessorKeyColumnDef<Osdk.Instance<TestObject>>)\n .accessorKey,\n ).toBe(\"myFunction\");\n expect(functionColumn.header).toBeUndefined();\n expect(functionColumn.size).toBe(150);\n });\n\n it(\"handles RDP column locators\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const mockRdpCreator = vitest.fn() as unknown as DerivedProperty.Creator<\n TestObject,\n SimplePropertyDef\n >;\n\n const columnDefinitions: Array<\n ColumnDefinition<TestObject, { myRdp: SimplePropertyDef }, {}>\n > = [\n {\n locator: { type: \"rdp\", id: \"myRdp\", creator: mockRdpCreator },\n width: 180,\n },\n ];\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType, columnDefinitions),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.columns).toHaveLength(1);\n\n const rdpColumn = result.current.columns[0];\n expect(rdpColumn.id).toBe(\"myRdp\");\n expect(\n (rdpColumn as AccessorKeyColumnDef<Osdk.Instance<TestObject>>)\n .accessorKey,\n ).toBe(\"myRdp\");\n expect(rdpColumn.header).toBeUndefined();\n expect(rdpColumn.size).toBe(180);\n });\n\n it(\"updates columns when columnDefinitions changed\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const initialColumnDefinitions: Array<\n ColumnDefinition<TestObject, {}, {}>\n > = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n ];\n\n type ColDefs =\n | Array<\n ColumnDefinition<TestObject, Record<string, SimplePropertyDef>, {}>\n >\n | undefined;\n\n const { result, rerender } = renderHook(\n ({ colDefs }: { colDefs: ColDefs }) =>\n useColumnDefs(TestObjectType, colDefs),\n {\n initialProps: { colDefs: initialColumnDefinitions as ColDefs },\n wrapper,\n },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n const firstColumns = result.current.columns;\n\n const updatedColumnDefinitions: Array<\n ColumnDefinition<TestObject, {}, {}>\n > = [\n {\n locator: { type: \"property\", id: \"name\" as TestObjectKeys },\n },\n {\n locator: { type: \"property\", id: \"email\" as TestObjectKeys },\n },\n ];\n\n // Rerender with new columnDefinitions\n rerender({ colDefs: updatedColumnDefinitions });\n\n // Updated columns should have two items\n const updatedColumns = result.current.columns;\n\n expect(firstColumns.length).toBe(1);\n expect(updatedColumns.length).toBe(2);\n });\n });\n\n it(\"handles metadata fetch errors\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n const error = new Error(\"Failed to fetch metadata\");\n deferred.reject(error);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n expect(result.current.error).toBeDefined();\n expect(result.current.columns).toEqual([]);\n });\n\n it(\"memoizes columns based on metadata properties\", async () => {\n const deferred = pDefer();\n const fakeClient = {\n fetchMetadata: vitest.fn(() => deferred.promise),\n } as unknown as Client;\n\n const wrapper = createWrapper(fakeClient);\n\n const { result, rerender } = renderHook(\n () => useColumnDefs(TestObjectType),\n { wrapper },\n );\n\n deferred.resolve(mockMetadata);\n\n await waitFor(() => {\n expect(result.current.loading).toBe(false);\n });\n\n const firstColumns = result.current.columns;\n\n // Rerender without changing metadata\n rerender();\n\n // Columns should be the same reference (memoized)\n expect(result.current.columns).toBe(firstColumns);\n });\n});\n"],"mappings":"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","ignoreList":[]}