@osdk/react-components 0.2.0-beta.14 → 0.2.0-beta.16

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 (353) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/build/browser/base-components/action-button/ActionButton.module.css +0 -4
  3. package/build/browser/base-components/checkbox/Checkbox.module.css +0 -4
  4. package/build/browser/base-components/dialog/Dialog.module.css +0 -8
  5. package/build/browser/base-components/draggable-list/DraggableList.js +4 -2
  6. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
  7. package/build/browser/base-components/draggable-list/DraggableList.module.css +0 -8
  8. package/build/browser/filter-list/FilterInput.js +132 -0
  9. package/build/browser/filter-list/FilterInput.js.map +1 -0
  10. package/build/browser/filter-list/FilterList.js +91 -0
  11. package/build/browser/filter-list/FilterList.js.map +1 -0
  12. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  13. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  14. package/build/browser/filter-list/base/{FilterList.js → BaseFilterList.js} +30 -31
  15. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -0
  16. package/build/browser/filter-list/base/BaseFilterListApi.js +2 -0
  17. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -0
  18. package/build/browser/filter-list/base/FilterIcons.js +63 -0
  19. package/build/browser/filter-list/base/FilterIcons.js.map +1 -0
  20. package/build/browser/filter-list/base/FilterList.module.css +22 -1
  21. package/build/browser/filter-list/base/FilterList.module.css.js +2 -0
  22. package/build/browser/filter-list/base/FilterListContent.js +21 -20
  23. package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
  24. package/build/browser/filter-list/base/FilterListHeader.js +8 -3
  25. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  26. package/build/browser/filter-list/base/FilterListHeader.module.css +25 -1
  27. package/build/browser/filter-list/base/FilterListHeader.module.css.js +3 -0
  28. package/build/browser/filter-list/base/FilterListItem.js +36 -17
  29. package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
  30. package/build/browser/filter-list/base/FilterListItem.module.css +58 -2
  31. package/build/browser/filter-list/base/FilterListItem.module.css.js +2 -0
  32. package/build/browser/filter-list/base/SortableFilterListItem.js +6 -6
  33. package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -1
  34. package/build/browser/filter-list/base/index.js +1 -2
  35. package/build/browser/filter-list/base/index.js.map +1 -1
  36. package/build/browser/filter-list/base/inputs/CheckboxListInput.js +34 -15
  37. package/build/browser/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
  38. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css +13 -0
  39. package/build/browser/filter-list/base/inputs/CheckboxListInput.module.css.js +2 -1
  40. package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -1
  41. package/build/browser/filter-list/base/inputs/ListogramInput.js +17 -21
  42. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
  43. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +25 -19
  44. package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +6 -4
  45. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +7 -14
  46. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  47. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +4 -1
  48. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +1 -1
  49. package/build/browser/filter-list/base/inputs/NullValueWrapper.js +4 -23
  50. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
  51. package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +3 -2
  52. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
  53. package/build/browser/filter-list/base/inputs/RangeInput.js +2 -32
  54. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
  55. package/build/browser/filter-list/base/inputs/RangeInput.module.css +16 -14
  56. package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +2 -1
  57. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +6 -13
  58. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  59. package/build/browser/filter-list/base/inputs/TextTagsInput.js +6 -14
  60. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  61. package/build/browser/filter-list/base/inputs/TimelineInput.js +2 -2
  62. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -1
  63. package/build/browser/filter-list/base/inputs/TimelineInput.module.css +14 -12
  64. package/build/browser/filter-list/base/inputs/shared.module.css +5 -4
  65. package/build/browser/filter-list/hooks/useFilterListState.js +24 -3
  66. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  67. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  68. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js +56 -0
  69. package/build/browser/filter-list/inputs/CheckboxListFilterInput.js.map +1 -0
  70. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  71. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  72. package/build/browser/filter-list/inputs/DateRangeFilterInput.js +105 -0
  73. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  74. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +508 -0
  75. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  76. package/build/browser/filter-list/inputs/ListogramFilterInput.js +62 -0
  77. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  78. package/build/browser/filter-list/inputs/MultiDateFilterInput.js +38 -0
  79. package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  80. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +55 -0
  81. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  82. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +105 -0
  83. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  84. package/build/browser/filter-list/inputs/PropertyFilterInput.js +129 -0
  85. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  86. package/build/browser/filter-list/inputs/SingleDateFilterInput.js +38 -0
  87. package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  88. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +55 -0
  89. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  90. package/build/browser/filter-list/inputs/TextTagsFilterInput.js +54 -0
  91. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  92. package/build/browser/filter-list/inputs/TimelineFilterInput.js +49 -0
  93. package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  94. package/build/browser/filter-list/inputs/ToggleFilterInput.js +36 -0
  95. package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  96. package/build/browser/filter-list/types/AggregationTypes.js +2 -0
  97. package/build/browser/filter-list/types/AggregationTypes.js.map +1 -0
  98. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
  99. package/build/browser/filter-list/types/index.js +0 -2
  100. package/build/browser/filter-list/types/index.js.map +1 -1
  101. package/build/browser/filter-list/utils/filterStateSerialization.js +42 -0
  102. package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -0
  103. package/build/browser/filter-list/utils/filterStateToWhereClause.js +19 -11
  104. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  105. package/build/browser/filter-list/utils/filterValues.js +26 -0
  106. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  107. package/build/browser/object-table/ColumnConfigDialog.module.css +0 -9
  108. package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -4
  109. package/build/browser/object-table/ObjectTable.js +2 -0
  110. package/build/browser/object-table/ObjectTable.js.map +1 -1
  111. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  112. package/build/browser/object-table/TableHeaderWithPopover.module.css +0 -12
  113. package/build/browser/object-table/hooks/useRowSelection.js +11 -8
  114. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  115. package/build/browser/public/experimental.js +4 -1
  116. package/build/browser/public/experimental.js.map +1 -1
  117. package/build/browser/shared/ErrorBoundary.module.css +14 -14
  118. package/build/browser/styles.css +207 -124
  119. package/build/cjs/public/experimental.cjs +3156 -2559
  120. package/build/cjs/public/experimental.cjs.map +1 -1
  121. package/build/cjs/public/experimental.css +591 -513
  122. package/build/cjs/public/experimental.css.map +1 -1
  123. package/build/cjs/public/experimental.d.cts +70 -4
  124. package/build/esm/base-components/action-button/ActionButton.module.css +0 -4
  125. package/build/esm/base-components/checkbox/Checkbox.module.css +0 -4
  126. package/build/esm/base-components/dialog/Dialog.module.css +0 -8
  127. package/build/esm/base-components/draggable-list/DraggableList.js +4 -2
  128. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
  129. package/build/esm/base-components/draggable-list/DraggableList.module.css +0 -8
  130. package/build/esm/filter-list/FilterInput.js +132 -0
  131. package/build/esm/filter-list/FilterInput.js.map +1 -0
  132. package/build/esm/filter-list/FilterList.js +91 -0
  133. package/build/esm/filter-list/FilterList.js.map +1 -0
  134. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  135. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  136. package/build/esm/filter-list/base/{FilterList.js → BaseFilterList.js} +30 -31
  137. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -0
  138. package/build/esm/filter-list/base/BaseFilterListApi.js +2 -0
  139. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -0
  140. package/build/esm/filter-list/base/FilterIcons.js +63 -0
  141. package/build/esm/filter-list/base/FilterIcons.js.map +1 -0
  142. package/build/esm/filter-list/base/FilterList.module.css +22 -1
  143. package/build/esm/filter-list/base/FilterListContent.js +21 -20
  144. package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
  145. package/build/esm/filter-list/base/FilterListHeader.js +8 -3
  146. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  147. package/build/esm/filter-list/base/FilterListHeader.module.css +25 -1
  148. package/build/esm/filter-list/base/FilterListItem.js +36 -17
  149. package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
  150. package/build/esm/filter-list/base/FilterListItem.module.css +58 -2
  151. package/build/esm/filter-list/base/SortableFilterListItem.js +6 -6
  152. package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -1
  153. package/build/esm/filter-list/base/index.js +1 -2
  154. package/build/esm/filter-list/base/index.js.map +1 -1
  155. package/build/esm/filter-list/base/inputs/CheckboxListInput.js +34 -15
  156. package/build/esm/filter-list/base/inputs/CheckboxListInput.js.map +1 -1
  157. package/build/esm/filter-list/base/inputs/CheckboxListInput.module.css +13 -0
  158. package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -1
  159. package/build/esm/filter-list/base/inputs/ListogramInput.js +17 -21
  160. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
  161. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +25 -19
  162. package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +6 -4
  163. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +7 -14
  164. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  165. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +4 -1
  166. package/build/esm/filter-list/base/inputs/NullValueWrapper.js +4 -23
  167. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
  168. package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +3 -2
  169. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
  170. package/build/esm/filter-list/base/inputs/RangeInput.js +2 -32
  171. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
  172. package/build/esm/filter-list/base/inputs/RangeInput.module.css +16 -14
  173. package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +2 -1
  174. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +6 -13
  175. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  176. package/build/esm/filter-list/base/inputs/TextTagsInput.js +6 -14
  177. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  178. package/build/esm/filter-list/base/inputs/TimelineInput.js +2 -2
  179. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -1
  180. package/build/esm/filter-list/base/inputs/TimelineInput.module.css +14 -12
  181. package/build/esm/filter-list/base/inputs/shared.module.css +5 -4
  182. package/build/esm/filter-list/hooks/useFilterListState.js +24 -3
  183. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  184. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  185. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js +56 -0
  186. package/build/esm/filter-list/inputs/CheckboxListFilterInput.js.map +1 -0
  187. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js +38 -0
  188. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
  189. package/build/esm/filter-list/inputs/DateRangeFilterInput.js +105 -0
  190. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
  191. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +508 -0
  192. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
  193. package/build/esm/filter-list/inputs/ListogramFilterInput.js +62 -0
  194. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -0
  195. package/build/esm/filter-list/inputs/MultiDateFilterInput.js +38 -0
  196. package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
  197. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +55 -0
  198. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
  199. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +105 -0
  200. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
  201. package/build/esm/filter-list/inputs/PropertyFilterInput.js +129 -0
  202. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -0
  203. package/build/esm/filter-list/inputs/SingleDateFilterInput.js +38 -0
  204. package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
  205. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +55 -0
  206. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
  207. package/build/esm/filter-list/inputs/TextTagsFilterInput.js +54 -0
  208. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
  209. package/build/esm/filter-list/inputs/TimelineFilterInput.js +49 -0
  210. package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -0
  211. package/build/esm/filter-list/inputs/ToggleFilterInput.js +36 -0
  212. package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -0
  213. package/build/esm/filter-list/types/AggregationTypes.js +2 -0
  214. package/build/esm/filter-list/types/AggregationTypes.js.map +1 -0
  215. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
  216. package/build/esm/filter-list/types/index.js +0 -2
  217. package/build/esm/filter-list/types/index.js.map +1 -1
  218. package/build/esm/filter-list/utils/filterStateSerialization.js +42 -0
  219. package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -0
  220. package/build/esm/filter-list/utils/filterStateToWhereClause.js +19 -11
  221. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  222. package/build/esm/filter-list/utils/filterValues.js +26 -0
  223. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  224. package/build/esm/object-table/ColumnConfigDialog.module.css +0 -9
  225. package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -4
  226. package/build/esm/object-table/ObjectTable.js +2 -0
  227. package/build/esm/object-table/ObjectTable.js.map +1 -1
  228. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  229. package/build/esm/object-table/TableHeaderWithPopover.module.css +0 -12
  230. package/build/esm/object-table/hooks/useRowSelection.js +11 -8
  231. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  232. package/build/esm/public/experimental.js +4 -1
  233. package/build/esm/public/experimental.js.map +1 -1
  234. package/build/esm/shared/ErrorBoundary.module.css +14 -14
  235. package/build/types/filter-list/{base/FilterInput.d.ts → FilterInput.d.ts} +2 -2
  236. package/build/types/filter-list/FilterInput.d.ts.map +1 -0
  237. package/build/types/filter-list/{base/FilterList.d.ts → FilterList.d.ts} +1 -1
  238. package/build/types/filter-list/FilterList.d.ts.map +1 -0
  239. package/build/types/filter-list/FilterListApi.d.ts +14 -0
  240. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  241. package/build/types/filter-list/FilterListItemApi.d.ts +13 -0
  242. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  243. package/build/types/filter-list/base/BaseFilterList.d.ts +3 -0
  244. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -0
  245. package/build/types/filter-list/base/BaseFilterListApi.d.ts +29 -0
  246. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -0
  247. package/build/types/filter-list/base/FilterIcons.d.ts +4 -0
  248. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -0
  249. package/build/types/filter-list/base/FilterListContent.d.ts +8 -8
  250. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
  251. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  252. package/build/types/filter-list/base/FilterListItem.d.ts +7 -8
  253. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
  254. package/build/types/filter-list/base/SortableFilterListItem.d.ts +7 -8
  255. package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -1
  256. package/build/types/filter-list/base/index.d.ts +2 -2
  257. package/build/types/filter-list/base/index.d.ts.map +1 -1
  258. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts +7 -13
  259. package/build/types/filter-list/base/inputs/CheckboxListInput.d.ts.map +1 -1
  260. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +7 -12
  261. package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -1
  262. package/build/types/filter-list/base/inputs/ListogramInput.d.ts +10 -13
  263. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -1
  264. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +7 -13
  265. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -1
  266. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +5 -11
  267. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -1
  268. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +7 -12
  269. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -1
  270. package/build/types/filter-list/base/inputs/RangeInput.d.ts +7 -14
  271. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -1
  272. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +7 -13
  273. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -1
  274. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +7 -13
  275. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -1
  276. package/build/types/filter-list/hooks/useFilterListState.d.ts +1 -0
  277. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  278. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +2 -5
  279. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
  280. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts +14 -0
  281. package/build/types/filter-list/inputs/CheckboxListFilterInput.d.ts.map +1 -0
  282. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts +10 -0
  283. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -0
  284. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +12 -0
  285. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -0
  286. package/build/types/filter-list/{base/inputs → inputs}/LinkedPropertyInput.d.ts +2 -2
  287. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -0
  288. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +16 -0
  289. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -0
  290. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts +9 -0
  291. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -0
  292. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +13 -0
  293. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -0
  294. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +12 -0
  295. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -0
  296. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +17 -0
  297. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -0
  298. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +9 -0
  299. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -0
  300. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +13 -0
  301. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -0
  302. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +13 -0
  303. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -0
  304. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts +9 -0
  305. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -0
  306. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts +9 -0
  307. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -0
  308. package/build/types/filter-list/types/AggregationTypes.d.ts +5 -0
  309. package/build/types/filter-list/types/AggregationTypes.d.ts.map +1 -0
  310. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +0 -19
  311. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
  312. package/build/types/filter-list/types/index.d.ts +0 -2
  313. package/build/types/filter-list/types/index.d.ts.map +1 -1
  314. package/build/types/filter-list/utils/filterStateSerialization.d.ts +3 -0
  315. package/build/types/filter-list/utils/filterStateSerialization.d.ts.map +1 -0
  316. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +1 -1
  317. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
  318. package/build/types/filter-list/utils/filterValues.d.ts +2 -0
  319. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  320. package/build/types/object-table/ObjectTable.d.ts +1 -1
  321. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  322. package/build/types/object-table/ObjectTableApi.d.ts +7 -1
  323. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  324. package/build/types/object-table/hooks/useRowSelection.d.ts +3 -2
  325. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  326. package/build/types/public/experimental.d.ts +4 -1
  327. package/build/types/public/experimental.d.ts.map +1 -1
  328. package/package.json +4 -4
  329. package/build/browser/filter-list/base/FilterInput.js +0 -542
  330. package/build/browser/filter-list/base/FilterInput.js.map +0 -1
  331. package/build/browser/filter-list/base/FilterList.js.map +0 -1
  332. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js +0 -237
  333. package/build/browser/filter-list/base/inputs/LinkedPropertyInput.js.map +0 -1
  334. package/build/browser/filter-list/types/AddFilterMenuTypes.js +0 -2
  335. package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +0 -1
  336. package/build/browser/filter-list/types/FilterPanelTypes.js +0 -2
  337. package/build/browser/filter-list/types/FilterPanelTypes.js.map +0 -1
  338. package/build/esm/filter-list/base/FilterInput.js +0 -542
  339. package/build/esm/filter-list/base/FilterInput.js.map +0 -1
  340. package/build/esm/filter-list/base/FilterList.js.map +0 -1
  341. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js +0 -237
  342. package/build/esm/filter-list/base/inputs/LinkedPropertyInput.js.map +0 -1
  343. package/build/esm/filter-list/types/AddFilterMenuTypes.js +0 -2
  344. package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +0 -1
  345. package/build/esm/filter-list/types/FilterPanelTypes.js +0 -2
  346. package/build/esm/filter-list/types/FilterPanelTypes.js.map +0 -1
  347. package/build/types/filter-list/base/FilterInput.d.ts.map +0 -1
  348. package/build/types/filter-list/base/FilterList.d.ts.map +0 -1
  349. package/build/types/filter-list/base/inputs/LinkedPropertyInput.d.ts.map +0 -1
  350. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +0 -56
  351. package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +0 -1
  352. package/build/types/filter-list/types/FilterPanelTypes.d.ts +0 -18
  353. package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +0 -1
@@ -1,542 +0,0 @@
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
- import React, { memo, useCallback, useMemo } from "react";
18
- import { coerceToString, coerceToStringArray } from "../utils/coerceFilterValue.js";
19
- import { CheckboxListInput } from "./inputs/CheckboxListInput.js";
20
- import { ContainsTextInput } from "./inputs/ContainsTextInput.js";
21
- import { DateRangeInput } from "./inputs/DateRangeInput.js";
22
- import { LinkedPropertyInput } from "./inputs/LinkedPropertyInput.js";
23
- import { ListogramInput } from "./inputs/ListogramInput.js";
24
- import { MultiDateInput } from "./inputs/MultiDateInput.js";
25
- import { MultiSelectInput } from "./inputs/MultiSelectInput.js";
26
- import { NullValueWrapper } from "./inputs/NullValueWrapper.js";
27
- import { NumberRangeInput } from "./inputs/NumberRangeInput.js";
28
- import { SingleDateInput } from "./inputs/SingleDateInput.js";
29
- import { SingleSelectInput } from "./inputs/SingleSelectInput.js";
30
- import { TextTagsInput } from "./inputs/TextTagsInput.js";
31
- import { TimelineInput } from "./inputs/TimelineInput.js";
32
- import { ToggleInput } from "./inputs/ToggleInput.js";
33
- function FilterInputInner({
34
- objectType,
35
- objectSet,
36
- definition,
37
- filterState,
38
- onFilterStateChanged,
39
- whereClause
40
- }) {
41
- return /*#__PURE__*/React.createElement(FilterInputContent, {
42
- objectType: objectType,
43
- objectSet: objectSet,
44
- definition: definition,
45
- filterState: filterState,
46
- onFilterStateChanged: onFilterStateChanged,
47
- whereClause: whereClause
48
- });
49
- }
50
- export const FilterInput = /*#__PURE__*/memo(FilterInputInner);
51
- function FilterInputContent({
52
- objectType,
53
- objectSet,
54
- definition,
55
- filterState,
56
- onFilterStateChanged,
57
- whereClause
58
- }) {
59
- switch (definition.type) {
60
- case "HAS_LINK":
61
- return /*#__PURE__*/React.createElement(HasLinkInput, {
62
- filterState: filterState,
63
- onFilterStateChanged: onFilterStateChanged
64
- });
65
- case "LINKED_PROPERTY":
66
- return /*#__PURE__*/React.createElement(LinkedPropertyInput, {
67
- objectSet: objectSet,
68
- definition: definition,
69
- filterState: filterState,
70
- onFilterStateChanged: onFilterStateChanged
71
- });
72
- case "KEYWORD_SEARCH":
73
- return /*#__PURE__*/React.createElement(KeywordSearchInput, {
74
- filterState: filterState,
75
- onFilterStateChanged: onFilterStateChanged,
76
- placeholder: definition.label ?? "Search..."
77
- });
78
- case "CUSTOM":
79
- {
80
- if (!definition.renderInput) {
81
- return /*#__PURE__*/React.createElement("div", {
82
- "data-unsupported": "true"
83
- }, "Custom filter missing renderInput");
84
- }
85
- const customFilterState = filterState?.type === "custom" ? filterState : definition.filterState;
86
- return /*#__PURE__*/React.createElement(React.Fragment, null, definition.renderInput({
87
- objectSet,
88
- filterState: customFilterState,
89
- onFilterStateChanged: state => onFilterStateChanged(state)
90
- }));
91
- }
92
- case "PROPERTY":
93
- return /*#__PURE__*/React.createElement(PropertyFilterInput, {
94
- objectType: objectType,
95
- objectSet: objectSet,
96
- definition: definition,
97
- filterState: filterState,
98
- onFilterStateChanged: onFilterStateChanged,
99
- whereClause: whereClause
100
- });
101
- default:
102
- return /*#__PURE__*/React.createElement("div", {
103
- "data-unsupported": "true"
104
- }, "Unsupported filter type");
105
- }
106
- }
107
- const HasLinkInput = /*#__PURE__*/memo(function ({
108
- filterState,
109
- onFilterStateChanged
110
- }) {
111
- const hasLink = filterState?.type === "hasLink" ? filterState.hasLink : false;
112
- const handleChange = useCallback(hasLink => {
113
- onFilterStateChanged({
114
- type: "hasLink",
115
- hasLink
116
- });
117
- }, [onFilterStateChanged]);
118
- return /*#__PURE__*/React.createElement(ToggleInput, {
119
- enabled: hasLink,
120
- onChange: handleChange
121
- });
122
- });
123
- const KeywordSearchInput = /*#__PURE__*/memo(function ({
124
- filterState,
125
- onFilterStateChanged,
126
- placeholder
127
- }) {
128
- const searchTerm = filterState?.type === "keywordSearch" ? filterState.searchTerm : undefined;
129
- const operator = filterState?.type === "keywordSearch" ? filterState.operator : "AND";
130
- const handleChange = useCallback(newSearchTerm => {
131
- onFilterStateChanged({
132
- type: "keywordSearch",
133
- searchTerm: newSearchTerm ?? "",
134
- operator
135
- });
136
- }, [onFilterStateChanged, operator]);
137
- return /*#__PURE__*/React.createElement(ContainsTextInput, {
138
- value: searchTerm,
139
- onChange: handleChange,
140
- placeholder: placeholder
141
- });
142
- });
143
- function PropertyFilterInputInner({
144
- objectType,
145
- objectSet,
146
- definition,
147
- filterState,
148
- onFilterStateChanged,
149
- whereClause
150
- }) {
151
- switch (definition.filterComponent) {
152
- case "CHECKBOX_LIST":
153
- return /*#__PURE__*/React.createElement(CheckboxListFilterInput, {
154
- objectType: objectType,
155
- objectSet: objectSet,
156
- propertyKey: definition.key,
157
- filterState: filterState,
158
- onFilterStateChanged: onFilterStateChanged,
159
- whereClause: whereClause
160
- });
161
- case "CONTAINS_TEXT":
162
- return /*#__PURE__*/React.createElement(ContainsTextFilterInput, {
163
- propertyKey: definition.key,
164
- filterState: filterState,
165
- onFilterStateChanged: onFilterStateChanged
166
- });
167
- case "TOGGLE":
168
- return /*#__PURE__*/React.createElement(ToggleFilterInput, {
169
- filterState: filterState,
170
- onFilterStateChanged: onFilterStateChanged
171
- });
172
- case "NUMBER_RANGE":
173
- return /*#__PURE__*/React.createElement(NumberRangeFilterInput, {
174
- objectType: objectType,
175
- propertyKey: definition.key,
176
- filterState: filterState,
177
- onFilterStateChanged: onFilterStateChanged
178
- });
179
- case "DATE_RANGE":
180
- return /*#__PURE__*/React.createElement(DateRangeFilterInput, {
181
- objectType: objectType,
182
- propertyKey: definition.key,
183
- filterState: filterState,
184
- onFilterStateChanged: onFilterStateChanged
185
- });
186
- case "SINGLE_SELECT":
187
- return /*#__PURE__*/React.createElement(SingleSelectFilterInput, {
188
- objectType: objectType,
189
- propertyKey: definition.key,
190
- filterState: filterState,
191
- onFilterStateChanged: onFilterStateChanged,
192
- whereClause: whereClause
193
- });
194
- case "MULTI_SELECT":
195
- return /*#__PURE__*/React.createElement(MultiSelectFilterInput, {
196
- objectType: objectType,
197
- propertyKey: definition.key,
198
- filterState: filterState,
199
- onFilterStateChanged: onFilterStateChanged,
200
- whereClause: whereClause
201
- });
202
- case "SINGLE_DATE":
203
- return /*#__PURE__*/React.createElement(SingleDateFilterInput, {
204
- filterState: filterState,
205
- onFilterStateChanged: onFilterStateChanged
206
- });
207
- case "MULTI_DATE":
208
- return /*#__PURE__*/React.createElement(MultiDateFilterInput, {
209
- filterState: filterState,
210
- onFilterStateChanged: onFilterStateChanged
211
- });
212
- case "LISTOGRAM":
213
- return /*#__PURE__*/React.createElement(ListogramFilterInput, {
214
- objectType: objectType,
215
- propertyKey: definition.key,
216
- filterState: filterState,
217
- onFilterStateChanged: onFilterStateChanged,
218
- whereClause: whereClause
219
- });
220
- case "TEXT_TAGS":
221
- return /*#__PURE__*/React.createElement(TextTagsFilterInput, {
222
- objectType: objectType,
223
- propertyKey: definition.key,
224
- filterState: filterState,
225
- onFilterStateChanged: onFilterStateChanged,
226
- whereClause: whereClause
227
- });
228
- case "TIMELINE":
229
- return /*#__PURE__*/React.createElement(TimelineFilterInput, {
230
- filterState: filterState,
231
- onFilterStateChanged: onFilterStateChanged
232
- });
233
- default:
234
- return /*#__PURE__*/React.createElement("div", {
235
- "data-unsupported": "true"
236
- }, "Unsupported filter component: ", definition.filterComponent);
237
- }
238
- }
239
- const PropertyFilterInput = /*#__PURE__*/memo(PropertyFilterInputInner);
240
- function CheckboxListFilterInputInner({
241
- objectType,
242
- objectSet,
243
- propertyKey,
244
- filterState,
245
- onFilterStateChanged,
246
- whereClause
247
- }) {
248
- const selectedValues = useMemo(() => filterState?.type === "SELECT" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);
249
- const isExcluding = filterState?.isExcluding ?? false;
250
- const handleChange = useCallback(newSelectedValues => {
251
- onFilterStateChanged({
252
- type: "SELECT",
253
- selectedValues: newSelectedValues,
254
- isExcluding
255
- });
256
- }, [onFilterStateChanged, isExcluding]);
257
- return /*#__PURE__*/React.createElement(CheckboxListInput, {
258
- objectType: objectType,
259
- objectSet: objectSet,
260
- propertyKey: propertyKey,
261
- selectedValues: selectedValues,
262
- onChange: handleChange,
263
- whereClause: whereClause
264
- });
265
- }
266
- const CheckboxListFilterInput = /*#__PURE__*/memo(CheckboxListFilterInputInner);
267
- const ContainsTextFilterInput = /*#__PURE__*/memo(function ({
268
- propertyKey,
269
- filterState,
270
- onFilterStateChanged
271
- }) {
272
- const value = useMemo(() => filterState?.type === "CONTAINS_TEXT" ? filterState.value : undefined, [filterState]);
273
- const handleChange = useCallback(value => {
274
- onFilterStateChanged({
275
- type: "CONTAINS_TEXT",
276
- value
277
- });
278
- }, [onFilterStateChanged]);
279
- return /*#__PURE__*/React.createElement(ContainsTextInput, {
280
- value: value,
281
- onChange: handleChange,
282
- placeholder: `Search ${propertyKey}...`
283
- });
284
- });
285
- const ToggleFilterInput = /*#__PURE__*/memo(function ({
286
- filterState,
287
- onFilterStateChanged
288
- }) {
289
- const enabled = filterState?.type === "TOGGLE" ? filterState.enabled : false;
290
- const handleChange = useCallback(enabled => {
291
- onFilterStateChanged({
292
- type: "TOGGLE",
293
- enabled
294
- });
295
- }, [onFilterStateChanged]);
296
- return /*#__PURE__*/React.createElement(ToggleInput, {
297
- enabled: enabled,
298
- onChange: handleChange
299
- });
300
- });
301
- function NumberRangeFilterInputInner({
302
- objectType,
303
- propertyKey,
304
- filterState,
305
- onFilterStateChanged
306
- }) {
307
- const numberRangeState = useMemo(() => filterState?.type === "NUMBER_RANGE" ? filterState : undefined, [filterState]);
308
- const includeNull = filterState?.includeNull;
309
- const handleNullChange = useCallback(includeNull => {
310
- onFilterStateChanged({
311
- type: "NUMBER_RANGE",
312
- minValue: numberRangeState?.minValue,
313
- maxValue: numberRangeState?.maxValue,
314
- includeNull
315
- });
316
- }, [onFilterStateChanged, numberRangeState?.minValue, numberRangeState?.maxValue]);
317
- const handleRangeChange = useCallback((minValue, maxValue) => {
318
- onFilterStateChanged({
319
- type: "NUMBER_RANGE",
320
- minValue,
321
- maxValue,
322
- includeNull
323
- });
324
- }, [onFilterStateChanged, includeNull]);
325
- return /*#__PURE__*/React.createElement(NullValueWrapper, {
326
- objectType: objectType,
327
- propertyKey: propertyKey,
328
- includeNull: includeNull,
329
- onIncludeNullChange: handleNullChange
330
- }, /*#__PURE__*/React.createElement(NumberRangeInput, {
331
- objectType: objectType,
332
- propertyKey: propertyKey,
333
- minValue: numberRangeState?.minValue,
334
- maxValue: numberRangeState?.maxValue,
335
- onChange: handleRangeChange
336
- }));
337
- }
338
- const NumberRangeFilterInput = /*#__PURE__*/memo(NumberRangeFilterInputInner);
339
- function DateRangeFilterInputInner({
340
- objectType,
341
- propertyKey,
342
- filterState,
343
- onFilterStateChanged
344
- }) {
345
- const dateRangeState = useMemo(() => filterState?.type === "DATE_RANGE" ? filterState : undefined, [filterState]);
346
- const includeNull = filterState?.includeNull;
347
- const handleNullChange = useCallback(includeNull => {
348
- onFilterStateChanged({
349
- type: "DATE_RANGE",
350
- minValue: dateRangeState?.minValue,
351
- maxValue: dateRangeState?.maxValue,
352
- includeNull
353
- });
354
- }, [onFilterStateChanged, dateRangeState?.minValue, dateRangeState?.maxValue]);
355
- const handleRangeChange = useCallback((minValue, maxValue) => {
356
- onFilterStateChanged({
357
- type: "DATE_RANGE",
358
- minValue,
359
- maxValue,
360
- includeNull
361
- });
362
- }, [onFilterStateChanged, includeNull]);
363
- return /*#__PURE__*/React.createElement(NullValueWrapper, {
364
- objectType: objectType,
365
- propertyKey: propertyKey,
366
- includeNull: includeNull,
367
- onIncludeNullChange: handleNullChange
368
- }, /*#__PURE__*/React.createElement(DateRangeInput, {
369
- objectType: objectType,
370
- propertyKey: propertyKey,
371
- minValue: dateRangeState?.minValue,
372
- maxValue: dateRangeState?.maxValue,
373
- onChange: handleRangeChange
374
- }));
375
- }
376
- const DateRangeFilterInput = /*#__PURE__*/memo(DateRangeFilterInputInner);
377
- function SingleSelectFilterInputInner({
378
- objectType,
379
- propertyKey,
380
- filterState,
381
- onFilterStateChanged,
382
- whereClause
383
- }) {
384
- const selectedValue = useMemo(() => filterState?.type === "SELECT" ? coerceToString(filterState.selectedValues[0]) : undefined, [filterState]);
385
- const isExcluding = filterState?.isExcluding ?? false;
386
- const handleChange = useCallback(value => {
387
- onFilterStateChanged({
388
- type: "SELECT",
389
- selectedValues: value !== undefined ? [value] : [],
390
- isExcluding
391
- });
392
- }, [onFilterStateChanged, isExcluding]);
393
- return /*#__PURE__*/React.createElement(SingleSelectInput, {
394
- objectType: objectType,
395
- propertyKey: propertyKey,
396
- selectedValue: selectedValue,
397
- onChange: handleChange,
398
- whereClause: whereClause
399
- });
400
- }
401
- const SingleSelectFilterInput = /*#__PURE__*/memo(SingleSelectFilterInputInner);
402
- function MultiSelectFilterInputInner({
403
- objectType,
404
- propertyKey,
405
- filterState,
406
- onFilterStateChanged,
407
- whereClause
408
- }) {
409
- const selectedValues = useMemo(() => filterState?.type === "SELECT" ? coerceToStringArray(filterState.selectedValues) : [], [filterState]);
410
- const isExcluding = filterState?.isExcluding ?? false;
411
- const handleChange = useCallback(selectedValues => {
412
- onFilterStateChanged({
413
- type: "SELECT",
414
- selectedValues,
415
- isExcluding
416
- });
417
- }, [onFilterStateChanged, isExcluding]);
418
- return /*#__PURE__*/React.createElement(MultiSelectInput, {
419
- objectType: objectType,
420
- propertyKey: propertyKey,
421
- selectedValues: selectedValues,
422
- onChange: handleChange,
423
- whereClause: whereClause
424
- });
425
- }
426
- const MultiSelectFilterInput = /*#__PURE__*/memo(MultiSelectFilterInputInner);
427
- const SingleDateFilterInput = /*#__PURE__*/memo(function ({
428
- filterState,
429
- onFilterStateChanged
430
- }) {
431
- const selectedDate = useMemo(() => filterState?.type === "SELECT" ? filterState.selectedValues[0] instanceof Date ? filterState.selectedValues[0] : undefined : undefined, [filterState]);
432
- const isExcluding = filterState?.isExcluding ?? false;
433
- const handleChange = useCallback(selectedDate => {
434
- onFilterStateChanged({
435
- type: "SELECT",
436
- selectedValues: selectedDate !== undefined ? [selectedDate] : [],
437
- isExcluding
438
- });
439
- }, [onFilterStateChanged, isExcluding]);
440
- return /*#__PURE__*/React.createElement(SingleDateInput, {
441
- selectedDate: selectedDate,
442
- onChange: handleChange
443
- });
444
- });
445
- const MultiDateFilterInput = /*#__PURE__*/memo(function ({
446
- filterState,
447
- onFilterStateChanged
448
- }) {
449
- const selectedDates = useMemo(() => filterState?.type === "SELECT" ? filterState.selectedValues.filter(v => v instanceof Date) : [], [filterState]);
450
- const isExcluding = filterState?.isExcluding ?? false;
451
- const handleChange = useCallback(selectedDates => {
452
- onFilterStateChanged({
453
- type: "SELECT",
454
- selectedValues: selectedDates,
455
- isExcluding
456
- });
457
- }, [onFilterStateChanged, isExcluding]);
458
- return /*#__PURE__*/React.createElement(MultiDateInput, {
459
- selectedDates: selectedDates,
460
- onChange: handleChange
461
- });
462
- });
463
- function ListogramFilterInputInner({
464
- objectType,
465
- propertyKey,
466
- filterState,
467
- onFilterStateChanged,
468
- whereClause
469
- }) {
470
- const selectedValues = useMemo(() => filterState?.type === "EXACT_MATCH" ? coerceToStringArray(filterState.values) : [], [filterState]);
471
- const isExcluding = filterState?.isExcluding ?? false;
472
- const handleChange = useCallback(values => {
473
- onFilterStateChanged({
474
- type: "EXACT_MATCH",
475
- values,
476
- isExcluding
477
- });
478
- }, [onFilterStateChanged, isExcluding]);
479
- return /*#__PURE__*/React.createElement(ListogramInput, {
480
- objectType: objectType,
481
- propertyKey: propertyKey,
482
- selectedValues: selectedValues,
483
- onChange: handleChange,
484
- whereClause: whereClause
485
- });
486
- }
487
- const ListogramFilterInput = /*#__PURE__*/memo(ListogramFilterInputInner);
488
- function TextTagsFilterInputInner({
489
- objectType,
490
- propertyKey,
491
- filterState,
492
- onFilterStateChanged,
493
- whereClause
494
- }) {
495
- const tags = useMemo(() => filterState?.type === "EXACT_MATCH" ? coerceToStringArray(filterState.values) : [], [filterState]);
496
- const isExcluding = filterState?.isExcluding ?? false;
497
- const handleChange = useCallback(values => {
498
- onFilterStateChanged({
499
- type: "EXACT_MATCH",
500
- values,
501
- isExcluding
502
- });
503
- }, [onFilterStateChanged, isExcluding]);
504
- return /*#__PURE__*/React.createElement(TextTagsInput, {
505
- objectType: objectType,
506
- propertyKey: propertyKey,
507
- tags: tags,
508
- onChange: handleChange,
509
- whereClause: whereClause
510
- });
511
- }
512
- const TextTagsFilterInput = /*#__PURE__*/memo(TextTagsFilterInputInner);
513
- const TimelineFilterInput = /*#__PURE__*/memo(function ({
514
- filterState,
515
- onFilterStateChanged
516
- }) {
517
- const {
518
- startDate,
519
- endDate
520
- } = useMemo(() => filterState?.type === "TIMELINE" ? {
521
- startDate: filterState.startDate,
522
- endDate: filterState.endDate
523
- } : {
524
- startDate: undefined,
525
- endDate: undefined
526
- }, [filterState]);
527
- const isExcluding = filterState?.isExcluding ?? false;
528
- const handleChange = useCallback((startDate, endDate) => {
529
- onFilterStateChanged({
530
- type: "TIMELINE",
531
- startDate,
532
- endDate,
533
- isExcluding
534
- });
535
- }, [onFilterStateChanged, isExcluding]);
536
- return /*#__PURE__*/React.createElement(TimelineInput, {
537
- startDate: startDate,
538
- endDate: endDate,
539
- onChange: handleChange
540
- });
541
- });
542
- //# sourceMappingURL=FilterInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterInput.js","names":["React","memo","useCallback","useMemo","coerceToString","coerceToStringArray","CheckboxListInput","ContainsTextInput","DateRangeInput","LinkedPropertyInput","ListogramInput","MultiDateInput","MultiSelectInput","NullValueWrapper","NumberRangeInput","SingleDateInput","SingleSelectInput","TextTagsInput","TimelineInput","ToggleInput","FilterInputInner","objectType","objectSet","definition","filterState","onFilterStateChanged","whereClause","createElement","FilterInputContent","FilterInput","type","HasLinkInput","KeywordSearchInput","placeholder","label","renderInput","customFilterState","Fragment","state","PropertyFilterInput","hasLink","handleChange","enabled","onChange","searchTerm","undefined","operator","newSearchTerm","value","PropertyFilterInputInner","filterComponent","CheckboxListFilterInput","propertyKey","key","ContainsTextFilterInput","ToggleFilterInput","NumberRangeFilterInput","DateRangeFilterInput","SingleSelectFilterInput","MultiSelectFilterInput","SingleDateFilterInput","MultiDateFilterInput","ListogramFilterInput","TextTagsFilterInput","TimelineFilterInput","CheckboxListFilterInputInner","selectedValues","isExcluding","newSelectedValues","NumberRangeFilterInputInner","numberRangeState","includeNull","handleNullChange","minValue","maxValue","handleRangeChange","onIncludeNullChange","DateRangeFilterInputInner","dateRangeState","SingleSelectFilterInputInner","selectedValue","MultiSelectFilterInputInner","selectedDate","Date","selectedDates","filter","v","ListogramFilterInputInner","values","TextTagsFilterInputInner","tags","startDate","endDate"],"sources":["FilterInput.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 { ObjectSet, ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport type { FilterDefinitionUnion } from \"../FilterListApi.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport {\n coerceToString,\n coerceToStringArray,\n} from \"../utils/coerceFilterValue.js\";\nimport { CheckboxListInput } from \"./inputs/CheckboxListInput.js\";\nimport { ContainsTextInput } from \"./inputs/ContainsTextInput.js\";\nimport { DateRangeInput } from \"./inputs/DateRangeInput.js\";\nimport { LinkedPropertyInput } from \"./inputs/LinkedPropertyInput.js\";\nimport { ListogramInput } from \"./inputs/ListogramInput.js\";\nimport { MultiDateInput } from \"./inputs/MultiDateInput.js\";\nimport { MultiSelectInput } from \"./inputs/MultiSelectInput.js\";\nimport { NullValueWrapper } from \"./inputs/NullValueWrapper.js\";\nimport { NumberRangeInput } from \"./inputs/NumberRangeInput.js\";\nimport { SingleDateInput } from \"./inputs/SingleDateInput.js\";\nimport { SingleSelectInput } from \"./inputs/SingleSelectInput.js\";\nimport { TextTagsInput } from \"./inputs/TextTagsInput.js\";\nimport { TimelineInput } from \"./inputs/TimelineInput.js\";\nimport { ToggleInput } from \"./inputs/ToggleInput.js\";\n\ninterface FilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n definition: FilterDefinitionUnion<Q>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction FilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: FilterInputProps<Q>): React.ReactElement {\n return (\n <FilterInputContent\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n}\n\nexport const FilterInput = memo(FilterInputInner) as typeof FilterInputInner;\n\nfunction FilterInputContent<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: FilterInputProps<Q>): React.ReactElement {\n switch (definition.type) {\n case \"HAS_LINK\":\n return (\n <HasLinkInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"LINKED_PROPERTY\":\n return (\n <LinkedPropertyInput\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"KEYWORD_SEARCH\":\n return (\n <KeywordSearchInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n placeholder={definition.label ?? \"Search...\"}\n />\n );\n\n case \"CUSTOM\": {\n if (!definition.renderInput) {\n return (\n <div data-unsupported=\"true\">Custom filter missing renderInput</div>\n );\n }\n const customFilterState = filterState?.type === \"custom\"\n ? filterState\n : definition.filterState;\n return (\n <>\n {definition.renderInput({\n objectSet,\n filterState: customFilterState,\n onFilterStateChanged: (state) => onFilterStateChanged(state),\n })}\n </>\n );\n }\n\n case \"PROPERTY\":\n return (\n <PropertyFilterInput\n objectType={objectType}\n objectSet={objectSet}\n definition={definition}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n default:\n return <div data-unsupported=\"true\">Unsupported filter type</div>;\n }\n}\n\ninterface HasLinkInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst HasLinkInput = memo(function HasLinkInput({\n filterState,\n onFilterStateChanged,\n}: HasLinkInputProps): React.ReactElement {\n const hasLink = filterState?.type === \"hasLink\"\n ? filterState.hasLink\n : false;\n\n const handleChange = useCallback(\n (hasLink: boolean) => {\n onFilterStateChanged({ type: \"hasLink\", hasLink });\n },\n [onFilterStateChanged],\n );\n\n return <ToggleInput enabled={hasLink} onChange={handleChange} />;\n});\n\ninterface KeywordSearchInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n placeholder: string;\n}\n\nconst KeywordSearchInput = memo(function KeywordSearchInput({\n filterState,\n onFilterStateChanged,\n placeholder,\n}: KeywordSearchInputProps): React.ReactElement {\n const searchTerm = filterState?.type === \"keywordSearch\"\n ? filterState.searchTerm\n : undefined;\n const operator = filterState?.type === \"keywordSearch\"\n ? filterState.operator\n : \"AND\";\n\n const handleChange = useCallback(\n (newSearchTerm: string | undefined) => {\n onFilterStateChanged({\n type: \"keywordSearch\",\n searchTerm: newSearchTerm ?? \"\",\n operator,\n });\n },\n [onFilterStateChanged, operator],\n );\n\n return (\n <ContainsTextInput\n value={searchTerm}\n onChange={handleChange}\n placeholder={placeholder}\n />\n );\n});\n\ninterface PropertyFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n definition: Extract<FilterDefinitionUnion<Q>, { type: \"PROPERTY\" }>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction PropertyFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: PropertyFilterInputProps<Q>): React.ReactElement {\n switch (definition.filterComponent) {\n case \"CHECKBOX_LIST\":\n return (\n <CheckboxListFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n case \"CONTAINS_TEXT\":\n return (\n <ContainsTextFilterInput\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"TOGGLE\":\n return (\n <ToggleFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"NUMBER_RANGE\":\n return (\n <NumberRangeFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"DATE_RANGE\":\n return (\n <DateRangeFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"SINGLE_SELECT\":\n return (\n <SingleSelectFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n case \"MULTI_SELECT\":\n return (\n <MultiSelectFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n case \"SINGLE_DATE\":\n return (\n <SingleDateFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"MULTI_DATE\":\n return (\n <MultiDateFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n case \"LISTOGRAM\":\n return (\n <ListogramFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n case \"TEXT_TAGS\":\n return (\n <TextTagsFilterInput\n objectType={objectType}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n />\n );\n\n case \"TIMELINE\":\n return (\n <TimelineFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n );\n\n default:\n return (\n <div data-unsupported=\"true\">\n Unsupported filter component: {definition.filterComponent}\n </div>\n );\n }\n}\n\nconst PropertyFilterInput = memo(\n PropertyFilterInputInner,\n) as typeof PropertyFilterInputInner;\n\ninterface CheckboxListFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet: ObjectSet<Q>;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction CheckboxListFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: CheckboxListFilterInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToStringArray(filterState.selectedValues)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (newSelectedValues: string[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: newSelectedValues,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <CheckboxListInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={propertyKey}\n selectedValues={selectedValues}\n onChange={handleChange}\n whereClause={whereClause}\n />\n );\n}\n\nconst CheckboxListFilterInput = memo(\n CheckboxListFilterInputInner,\n) as typeof CheckboxListFilterInputInner;\n\ninterface ContainsTextFilterInputProps {\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst ContainsTextFilterInput = memo(function ContainsTextFilterInput({\n propertyKey,\n filterState,\n onFilterStateChanged,\n}: ContainsTextFilterInputProps): React.ReactElement {\n const value = useMemo(\n () =>\n filterState?.type === \"CONTAINS_TEXT\"\n ? filterState.value\n : undefined,\n [filterState],\n );\n\n const handleChange = useCallback(\n (value: string | undefined) => {\n onFilterStateChanged({ type: \"CONTAINS_TEXT\", value });\n },\n [onFilterStateChanged],\n );\n\n return (\n <ContainsTextInput\n value={value}\n onChange={handleChange}\n placeholder={`Search ${propertyKey}...`}\n />\n );\n});\n\ninterface ToggleFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst ToggleFilterInput = memo(function ToggleFilterInput({\n filterState,\n onFilterStateChanged,\n}: ToggleFilterInputProps): React.ReactElement {\n const enabled = filterState?.type === \"TOGGLE\" ? filterState.enabled : false;\n\n const handleChange = useCallback(\n (enabled: boolean) => {\n onFilterStateChanged({ type: \"TOGGLE\", enabled });\n },\n [onFilterStateChanged],\n );\n\n return <ToggleInput enabled={enabled} onChange={handleChange} />;\n});\n\ninterface NumberRangeFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction NumberRangeFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n}: NumberRangeFilterInputProps<Q>): React.ReactElement {\n const numberRangeState = useMemo(\n () => filterState?.type === \"NUMBER_RANGE\" ? filterState : undefined,\n [filterState],\n );\n const includeNull = filterState?.includeNull;\n\n const handleNullChange = useCallback(\n (includeNull: boolean) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue: numberRangeState?.minValue,\n maxValue: numberRangeState?.maxValue,\n includeNull,\n });\n },\n [\n onFilterStateChanged,\n numberRangeState?.minValue,\n numberRangeState?.maxValue,\n ],\n );\n\n const handleRangeChange = useCallback(\n (minValue: number | undefined, maxValue: number | undefined) => {\n onFilterStateChanged({\n type: \"NUMBER_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, includeNull],\n );\n\n return (\n <NullValueWrapper\n objectType={objectType}\n propertyKey={propertyKey}\n includeNull={includeNull}\n onIncludeNullChange={handleNullChange}\n >\n <NumberRangeInput\n objectType={objectType}\n propertyKey={propertyKey}\n minValue={numberRangeState?.minValue}\n maxValue={numberRangeState?.maxValue}\n onChange={handleRangeChange}\n />\n </NullValueWrapper>\n );\n}\n\nconst NumberRangeFilterInput = memo(\n NumberRangeFilterInputInner,\n) as typeof NumberRangeFilterInputInner;\n\ninterface DateRangeFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction DateRangeFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n}: DateRangeFilterInputProps<Q>): React.ReactElement {\n const dateRangeState = useMemo(\n () => filterState?.type === \"DATE_RANGE\" ? filterState : undefined,\n [filterState],\n );\n const includeNull = filterState?.includeNull;\n\n const handleNullChange = useCallback(\n (includeNull: boolean) => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue: dateRangeState?.minValue,\n maxValue: dateRangeState?.maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, dateRangeState?.minValue, dateRangeState?.maxValue],\n );\n\n const handleRangeChange = useCallback(\n (minValue: Date | undefined, maxValue: Date | undefined) => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, includeNull],\n );\n\n return (\n <NullValueWrapper\n objectType={objectType}\n propertyKey={propertyKey}\n includeNull={includeNull}\n onIncludeNullChange={handleNullChange}\n >\n <DateRangeInput\n objectType={objectType}\n propertyKey={propertyKey}\n minValue={dateRangeState?.minValue}\n maxValue={dateRangeState?.maxValue}\n onChange={handleRangeChange}\n />\n </NullValueWrapper>\n );\n}\n\nconst DateRangeFilterInput = memo(\n DateRangeFilterInputInner,\n) as typeof DateRangeFilterInputInner;\n\ninterface SingleSelectFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction SingleSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: SingleSelectFilterInputProps<Q>): React.ReactElement {\n const selectedValue = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToString(filterState.selectedValues[0])\n : undefined,\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (value: string | undefined) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: value !== undefined ? [value] : [],\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <SingleSelectInput\n objectType={objectType}\n propertyKey={propertyKey}\n selectedValue={selectedValue}\n onChange={handleChange}\n whereClause={whereClause}\n />\n );\n}\n\nconst SingleSelectFilterInput = memo(\n SingleSelectFilterInputInner,\n) as typeof SingleSelectFilterInputInner;\n\ninterface MultiSelectFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction MultiSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: MultiSelectFilterInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToStringArray(filterState.selectedValues)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (selectedValues: string[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <MultiSelectInput\n objectType={objectType}\n propertyKey={propertyKey}\n selectedValues={selectedValues}\n onChange={handleChange}\n whereClause={whereClause}\n />\n );\n}\n\nconst MultiSelectFilterInput = memo(\n MultiSelectFilterInputInner,\n) as typeof MultiSelectFilterInputInner;\n\ninterface SingleDateFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst SingleDateFilterInput = memo(function SingleDateFilterInput({\n filterState,\n onFilterStateChanged,\n}: SingleDateFilterInputProps): React.ReactElement {\n const selectedDate = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? (filterState.selectedValues[0] instanceof Date\n ? filterState.selectedValues[0]\n : undefined)\n : undefined,\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (selectedDate: Date | undefined) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: selectedDate !== undefined ? [selectedDate] : [],\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <SingleDateInput selectedDate={selectedDate} onChange={handleChange} />\n );\n});\n\ninterface MultiDateFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst MultiDateFilterInput = memo(function MultiDateFilterInput({\n filterState,\n onFilterStateChanged,\n}: MultiDateFilterInputProps): React.ReactElement {\n const selectedDates = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? filterState.selectedValues.filter((v): v is Date => v instanceof Date)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (selectedDates: Date[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: selectedDates,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <MultiDateInput selectedDates={selectedDates} onChange={handleChange} />\n );\n});\n\ninterface ListogramFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction ListogramFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: ListogramFilterInputProps<Q>): React.ReactElement {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"EXACT_MATCH\"\n ? coerceToStringArray(filterState.values)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (values: string[]) => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <ListogramInput\n objectType={objectType}\n propertyKey={propertyKey}\n selectedValues={selectedValues}\n onChange={handleChange}\n whereClause={whereClause}\n />\n );\n}\n\nconst ListogramFilterInput = memo(\n ListogramFilterInputInner,\n) as typeof ListogramFilterInputInner;\n\ninterface TextTagsFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n}\n\nfunction TextTagsFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n}: TextTagsFilterInputProps<Q>): React.ReactElement {\n const tags = useMemo(\n () =>\n filterState?.type === \"EXACT_MATCH\"\n ? coerceToStringArray(filterState.values)\n : [],\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (values: string[]) => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <TextTagsInput\n objectType={objectType}\n propertyKey={propertyKey}\n tags={tags}\n onChange={handleChange}\n whereClause={whereClause}\n />\n );\n}\n\nconst TextTagsFilterInput = memo(\n TextTagsFilterInputInner,\n) as typeof TextTagsFilterInputInner;\n\ninterface TimelineFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nconst TimelineFilterInput = memo(function TimelineFilterInput({\n filterState,\n onFilterStateChanged,\n}: TimelineFilterInputProps): React.ReactElement {\n const { startDate, endDate } = useMemo(\n () =>\n filterState?.type === \"TIMELINE\"\n ? { startDate: filterState.startDate, endDate: filterState.endDate }\n : { startDate: undefined, endDate: undefined },\n [filterState],\n );\n const isExcluding = filterState?.isExcluding ?? false;\n\n const handleChange = useCallback(\n (startDate: Date | undefined, endDate: Date | undefined) => {\n onFilterStateChanged({\n type: \"TIMELINE\",\n startDate,\n endDate,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return (\n <TimelineInput\n startDate={startDate}\n endDate={endDate}\n onChange={handleChange}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterList.js","names":["Button","classnames","React","useCallback","useMemo","useFilterListState","styles","FilterListContent","FilterListHeader","FilterList","props","objectSet","title","titleIcon","filterDefinitions","showResetButton","onReset","onFilterAdded","showActiveFilterCount","enableSorting","className","renderAddFilterButton","objectType","$objectSetInternals","def","filterStates","setFilterState","whereClause","activeFilterCount","reset","handleReset","visibleFilterDefinitions","undefined","filter","isVisible","createElement","filterList","onFilterStateChanged","addButtonContainer","type","addButton"],"sources":["FilterList.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 { Button } from \"@base-ui/react/button\";\nimport type { ObjectTypeDefinition } from \"@osdk/api\";\nimport classnames from \"classnames\";\nimport React, { useCallback, useMemo } from \"react\";\nimport type {\n FilterDefinitionUnion,\n FilterListProps,\n} from \"../FilterListApi.js\";\nimport { useFilterListState } from \"../hooks/useFilterListState.js\";\nimport styles from \"./FilterList.module.css\";\nimport { FilterListContent } from \"./FilterListContent.js\";\nimport { FilterListHeader } from \"./FilterListHeader.js\";\n\nexport function FilterList<Q extends ObjectTypeDefinition>(\n props: FilterListProps<Q>,\n): React.ReactElement {\n const {\n objectSet,\n title,\n titleIcon,\n filterDefinitions,\n showResetButton = false,\n onReset,\n onFilterAdded,\n showActiveFilterCount = false,\n enableSorting,\n className,\n renderAddFilterButton,\n } = props;\n\n const objectType = objectSet.$objectSetInternals.def;\n\n const {\n filterStates,\n setFilterState,\n whereClause,\n activeFilterCount,\n reset,\n } = useFilterListState(props);\n\n const handleReset = useCallback(() => {\n reset();\n onReset?.();\n }, [reset, onReset]);\n\n const visibleFilterDefinitions = useMemo(() => {\n if (!filterDefinitions) return undefined;\n return filterDefinitions.filter(\n (def: FilterDefinitionUnion<Q>) => def.isVisible !== false,\n );\n }, [filterDefinitions]);\n\n const showHeader = title || titleIcon || showResetButton\n || showActiveFilterCount;\n\n const showAddButton = renderAddFilterButton != null || onFilterAdded != null;\n\n return (\n <div\n className={classnames(styles.filterList, className)}\n data-active-count={activeFilterCount}\n >\n {showHeader && (\n <FilterListHeader\n title={title}\n titleIcon={titleIcon}\n showResetButton={showResetButton}\n onReset={handleReset}\n showActiveFilterCount={showActiveFilterCount}\n activeFilterCount={activeFilterCount}\n />\n )}\n\n <FilterListContent\n objectType={objectType}\n objectSet={objectSet}\n filterDefinitions={visibleFilterDefinitions}\n filterStates={filterStates}\n onFilterStateChanged={setFilterState}\n whereClause={whereClause}\n enableSorting={enableSorting}\n />\n\n {showAddButton && (\n <div className={styles.addButtonContainer}>\n {renderAddFilterButton\n ? renderAddFilterButton()\n : (\n <Button type=\"button\" className={styles.addButton}>\n + Add filter\n </Button>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,uBAAuB;AAE9C,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAKnD,SAASC,kBAAkB,QAAQ,gCAAgC;AACnE,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,OAAO,SAASC,UAAUA,CACxBC,KAAyB,EACL;EACpB,MAAM;IACJC,SAAS;IACTC,KAAK;IACLC,SAAS;IACTC,iBAAiB;IACjBC,eAAe,GAAG,KAAK;IACvBC,OAAO;IACPC,aAAa;IACbC,qBAAqB,GAAG,KAAK;IAC7BC,aAAa;IACbC,SAAS;IACTC;EACF,CAAC,GAAGX,KAAK;EAET,MAAMY,UAAU,GAAGX,SAAS,CAACY,mBAAmB,CAACC,GAAG;EAEpD,MAAM;IACJC,YAAY;IACZC,cAAc;IACdC,WAAW;IACXC,iBAAiB;IACjBC;EACF,CAAC,GAAGxB,kBAAkB,CAACK,KAAK,CAAC;EAE7B,MAAMoB,WAAW,GAAG3B,WAAW,CAAC,MAAM;IACpC0B,KAAK,CAAC,CAAC;IACPb,OAAO,GAAG,CAAC;EACb,CAAC,EAAE,CAACa,KAAK,EAAEb,OAAO,CAAC,CAAC;EAEpB,MAAMe,wBAAwB,GAAG3B,OAAO,CAAC,MAAM;IAC7C,IAAI,CAACU,iBAAiB,EAAE,OAAOkB,SAAS;IACxC,OAAOlB,iBAAiB,CAACmB,MAAM,CAC5BT,GAA6B,IAAKA,GAAG,CAACU,SAAS,KAAK,KACvD,CAAC;EACH,CAAC,EAAE,CAACpB,iBAAiB,CAAC,CAAC;EAOvB,oBACEZ,KAAA,CAAAiC,aAAA;IACEf,SAAS,EAAEnB,UAAU,CAACK,MAAM,CAAC8B,UAAU,EAAEhB,SAAS,CAAE;IACpD,qBAAmBQ;EAAkB,GAEpC,CAVchB,KAAK,IAAIC,SAAS,IAAIE,eAAe,IACnDG,qBAAqB,kBAUpBhB,KAAA,CAAAiC,aAAA,CAAC3B,gBAAgB;IACfI,KAAK,EAAEA,KAAM;IACbC,SAAS,EAAEA,SAAU;IACrBE,eAAe,EAAEA,eAAgB;IACjCC,OAAO,EAAEc,WAAY;IACrBZ,qBAAqB,EAAEA,qBAAsB;IAC7CU,iBAAiB,EAAEA;EAAkB,CACtC,CACF,eAED1B,KAAA,CAAAiC,aAAA,CAAC5B,iBAAiB;IAChBe,UAAU,EAAEA,UAAW;IACvBX,SAAS,EAAEA,SAAU;IACrBG,iBAAiB,EAAEiB,wBAAyB;IAC5CN,YAAY,EAAEA,YAAa;IAC3BY,oBAAoB,EAAEX,cAAe;IACrCC,WAAW,EAAEA,WAAY;IACzBR,aAAa,EAAEA;EAAc,CAC9B,CAAC,EAED,CA5BiBE,qBAAqB,IAAI,IAAI,IAAIJ,aAAa,IAAI,IAAI,kBA6BtEf,KAAA,CAAAiC,aAAA;IAAKf,SAAS,EAAEd,MAAM,CAACgC;EAAmB,GACvCjB,qBAAqB,GAClBA,qBAAqB,CAAC,CAAC,gBAEvBnB,KAAA,CAAAiC,aAAA,CAACnC,MAAM;IAACuC,IAAI,EAAC,QAAQ;IAACnB,SAAS,EAAEd,MAAM,CAACkC;EAAU,GAAC,cAE3C,CAET,CAEJ,CAAC;AAEV","ignoreList":[]}