@osdk/react-components 0.19.0 → 0.19.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  3. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +1 -0
  4. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  5. package/build/browser/filter-list/FilterInput.js +7 -0
  6. package/build/browser/filter-list/FilterInput.js.map +1 -1
  7. package/build/browser/filter-list/FilterList.js +8 -2
  8. package/build/browser/filter-list/FilterList.js.map +1 -1
  9. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  10. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  11. package/build/browser/filter-list/__tests__/aggregationMocks.js +50 -0
  12. package/build/browser/filter-list/__tests__/aggregationMocks.js.map +1 -0
  13. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
  14. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
  15. package/build/browser/filter-list/base/FilterInputExcludeRow.js +12 -16
  16. package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -1
  17. package/build/browser/filter-list/base/FilterListContent.js +42 -40
  18. package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
  19. package/build/browser/filter-list/base/FilterListItem.js +8 -36
  20. package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
  21. package/build/browser/filter-list/base/SortableFilterListItem.js +3 -1
  22. package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -1
  23. package/build/browser/filter-list/base/inputs/ListogramInput.js +3 -1
  24. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
  25. package/build/browser/filter-list/base/inputs/ListogramInput.module.css +6 -0
  26. package/build/browser/filter-list/base/inputs/MultiDateInput.js +2 -1
  27. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  28. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +7 -3
  29. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  30. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +6 -0
  31. package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +1 -0
  32. package/build/browser/filter-list/base/inputs/SingleDateInput.js +4 -2
  33. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  34. package/build/browser/filter-list/hooks/useDualScopeAggregation.js +70 -0
  35. package/build/browser/filter-list/hooks/useDualScopeAggregation.js.map +1 -0
  36. package/build/browser/filter-list/hooks/useFilterListState.js +35 -17
  37. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  38. package/build/browser/filter-list/hooks/useFilterPropertyAggregation.js +37 -0
  39. package/build/browser/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -0
  40. package/build/browser/filter-list/hooks/usePropertyAggregation.js +7 -6
  41. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  42. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +45 -22
  43. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  44. package/build/browser/filter-list/inputs/ListogramFilterInput.js +9 -7
  45. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  46. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +8 -6
  47. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  48. package/build/browser/filter-list/inputs/PropertyFilterInput.js +10 -1
  49. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  50. package/build/browser/filter-list/inputs/SingleDateFilterInput.js +4 -2
  51. package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
  52. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +9 -6
  53. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  54. package/build/browser/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
  55. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
  56. package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -1
  57. package/build/browser/filter-list/types/LinkedFilterTypes.js +42 -1
  58. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
  59. package/build/browser/filter-list/types/StaticValuesTypes.js.map +1 -1
  60. package/build/browser/filter-list/utils/filterStateToWhereClause.js +58 -22
  61. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  62. package/build/browser/filter-list/utils/filterValues.js +148 -2
  63. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  64. package/build/browser/filter-list/utils/narrowObjectSet.js +48 -0
  65. package/build/browser/filter-list/utils/narrowObjectSet.js.map +1 -0
  66. package/build/browser/public/experimental/filter-list.js +1 -0
  67. package/build/browser/public/experimental/filter-list.js.map +1 -1
  68. package/build/browser/styles.css +17 -0
  69. package/build/browser/tokens/component-tokens/filter-list.css +5 -0
  70. package/build/browser/util/UserAgent.js +1 -1
  71. package/build/browser/util/UserAgent.js.map +1 -1
  72. package/build/cjs/{chunk-6XRF4IAL.cjs → chunk-2AK24MNP.cjs} +4 -4
  73. package/build/cjs/{chunk-6XRF4IAL.cjs.map → chunk-2AK24MNP.cjs.map} +1 -1
  74. package/build/cjs/chunk-3DIODTDY.cjs +11 -0
  75. package/build/cjs/{chunk-774FGQHO.cjs.map → chunk-3DIODTDY.cjs.map} +1 -1
  76. package/build/cjs/{chunk-P7R4RWMU.cjs → chunk-3RKGMRPD.cjs} +4 -4
  77. package/build/cjs/{chunk-P7R4RWMU.cjs.map → chunk-3RKGMRPD.cjs.map} +1 -1
  78. package/build/cjs/chunk-ACIIYYEL.cjs +11 -0
  79. package/build/cjs/{chunk-62DGPKOC.cjs.map → chunk-ACIIYYEL.cjs.map} +1 -1
  80. package/build/cjs/{chunk-3OUALM3K.cjs → chunk-COLGW56W.cjs} +4 -4
  81. package/build/cjs/{chunk-3OUALM3K.cjs.map → chunk-COLGW56W.cjs.map} +1 -1
  82. package/build/cjs/{chunk-DKPG7O4B.cjs → chunk-GTFPQHZL.cjs} +5 -4
  83. package/build/cjs/chunk-GTFPQHZL.cjs.map +1 -0
  84. package/build/cjs/{chunk-L6QDNMMG.cjs → chunk-K3IJA7WZ.cjs} +4 -4
  85. package/build/cjs/{chunk-L6QDNMMG.cjs.map → chunk-K3IJA7WZ.cjs.map} +1 -1
  86. package/build/cjs/chunk-MAQSZDRT.cjs +11 -0
  87. package/build/cjs/{chunk-S25XCKOA.cjs.map → chunk-MAQSZDRT.cjs.map} +1 -1
  88. package/build/cjs/chunk-MHMRIDIM.cjs +11 -0
  89. package/build/cjs/{chunk-SLHKSOQC.cjs.map → chunk-MHMRIDIM.cjs.map} +1 -1
  90. package/build/cjs/{chunk-BXCHISUQ.cjs → chunk-NOONKE5X.cjs} +3 -3
  91. package/build/cjs/{chunk-BXCHISUQ.cjs.map → chunk-NOONKE5X.cjs.map} +1 -1
  92. package/build/cjs/chunk-OEESYGT4.cjs +11 -0
  93. package/build/cjs/{chunk-3Y4W37E3.cjs.map → chunk-OEESYGT4.cjs.map} +1 -1
  94. package/build/cjs/{chunk-QOI2FQSL.cjs → chunk-PUZZZTC7.cjs} +372 -157
  95. package/build/cjs/chunk-PUZZZTC7.cjs.map +1 -0
  96. package/build/cjs/{chunk-FIAYYZHY.cjs → chunk-QWKUCBXE.cjs} +4 -4
  97. package/build/cjs/{chunk-FIAYYZHY.cjs.map → chunk-QWKUCBXE.cjs.map} +1 -1
  98. package/build/cjs/public/experimental/action-form.cjs +4 -4
  99. package/build/cjs/public/experimental/action-form.d.cts +1 -1
  100. package/build/cjs/public/experimental/document-viewer.cjs +4 -4
  101. package/build/cjs/public/experimental/email-viewer.cjs +3 -3
  102. package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
  103. package/build/cjs/public/experimental/filter-list.cjs +17 -13
  104. package/build/cjs/public/experimental/filter-list.css +8 -0
  105. package/build/cjs/public/experimental/filter-list.css.map +1 -1
  106. package/build/cjs/public/experimental/filter-list.d.cts +95 -25
  107. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  108. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  109. package/build/cjs/public/experimental/object-table.cjs +8 -8
  110. package/build/cjs/public/experimental/pdf-viewer.cjs +7 -7
  111. package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
  112. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  113. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  114. package/build/cjs/public/experimental.cjs +50 -46
  115. package/build/cjs/public/experimental.css +8 -0
  116. package/build/cjs/public/experimental.css.map +1 -1
  117. package/build/cjs/public/experimental.d.cts +1 -1
  118. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  119. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +1 -0
  120. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  121. package/build/esm/filter-list/FilterInput.js +7 -0
  122. package/build/esm/filter-list/FilterInput.js.map +1 -1
  123. package/build/esm/filter-list/FilterList.js +8 -2
  124. package/build/esm/filter-list/FilterList.js.map +1 -1
  125. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  126. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  127. package/build/esm/filter-list/__tests__/aggregationMocks.js +50 -0
  128. package/build/esm/filter-list/__tests__/aggregationMocks.js.map +1 -0
  129. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
  130. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
  131. package/build/esm/filter-list/base/FilterInputExcludeRow.js +12 -16
  132. package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -1
  133. package/build/esm/filter-list/base/FilterListContent.js +42 -40
  134. package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
  135. package/build/esm/filter-list/base/FilterListItem.js +8 -36
  136. package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
  137. package/build/esm/filter-list/base/SortableFilterListItem.js +3 -1
  138. package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -1
  139. package/build/esm/filter-list/base/inputs/ListogramInput.js +3 -1
  140. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
  141. package/build/esm/filter-list/base/inputs/ListogramInput.module.css +6 -0
  142. package/build/esm/filter-list/base/inputs/MultiDateInput.js +2 -1
  143. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  144. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +7 -3
  145. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  146. package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +6 -0
  147. package/build/esm/filter-list/base/inputs/SingleDateInput.js +4 -2
  148. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  149. package/build/esm/filter-list/hooks/useDualScopeAggregation.js +70 -0
  150. package/build/esm/filter-list/hooks/useDualScopeAggregation.js.map +1 -0
  151. package/build/esm/filter-list/hooks/useFilterListState.js +35 -17
  152. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  153. package/build/esm/filter-list/hooks/useFilterPropertyAggregation.js +37 -0
  154. package/build/esm/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -0
  155. package/build/esm/filter-list/hooks/usePropertyAggregation.js +7 -6
  156. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  157. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +45 -22
  158. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  159. package/build/esm/filter-list/inputs/ListogramFilterInput.js +9 -7
  160. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  161. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +8 -6
  162. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  163. package/build/esm/filter-list/inputs/PropertyFilterInput.js +10 -1
  164. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  165. package/build/esm/filter-list/inputs/SingleDateFilterInput.js +4 -2
  166. package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
  167. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +9 -6
  168. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  169. package/build/esm/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
  170. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
  171. package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -1
  172. package/build/esm/filter-list/types/LinkedFilterTypes.js +42 -1
  173. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
  174. package/build/esm/filter-list/types/StaticValuesTypes.js.map +1 -1
  175. package/build/esm/filter-list/utils/filterStateToWhereClause.js +58 -22
  176. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  177. package/build/esm/filter-list/utils/filterValues.js +148 -2
  178. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  179. package/build/esm/filter-list/utils/narrowObjectSet.js +48 -0
  180. package/build/esm/filter-list/utils/narrowObjectSet.js.map +1 -0
  181. package/build/esm/public/experimental/filter-list.js +1 -0
  182. package/build/esm/public/experimental/filter-list.js.map +1 -1
  183. package/build/esm/tokens/component-tokens/filter-list.css +5 -0
  184. package/build/esm/util/UserAgent.js +1 -1
  185. package/build/esm/util/UserAgent.js.map +1 -1
  186. package/build/types/action-form/FormFieldApi.d.ts +1 -1
  187. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  188. package/build/types/filter-list/FilterInput.d.ts +6 -1
  189. package/build/types/filter-list/FilterInput.d.ts.map +1 -1
  190. package/build/types/filter-list/FilterList.d.ts.map +1 -1
  191. package/build/types/filter-list/FilterListApi.d.ts +30 -15
  192. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  193. package/build/types/filter-list/FilterListItemApi.d.ts +15 -1
  194. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  195. package/build/types/filter-list/__tests__/aggregationMocks.d.ts +11 -0
  196. package/build/types/filter-list/__tests__/aggregationMocks.d.ts.map +1 -0
  197. package/build/types/filter-list/base/BaseFilterList.d.ts +2 -1
  198. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -1
  199. package/build/types/filter-list/base/BaseFilterListApi.d.ts +2 -2
  200. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
  201. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -1
  202. package/build/types/filter-list/base/FilterListContent.d.ts +3 -3
  203. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
  204. package/build/types/filter-list/base/FilterListItem.d.ts +2 -1
  205. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
  206. package/build/types/filter-list/base/SortableFilterListItem.d.ts +2 -1
  207. package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -1
  208. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -1
  209. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -1
  210. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -1
  211. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts +2 -0
  212. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
  213. package/build/types/filter-list/hooks/useDualScopeAggregation.d.ts +32 -0
  214. package/build/types/filter-list/hooks/useDualScopeAggregation.d.ts.map +1 -0
  215. package/build/types/filter-list/hooks/useFilterListState.d.ts +7 -0
  216. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  217. package/build/types/filter-list/hooks/useFilterPropertyAggregation.d.ts +13 -0
  218. package/build/types/filter-list/hooks/useFilterPropertyAggregation.d.ts.map +1 -0
  219. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +6 -4
  220. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
  221. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +4 -1
  222. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
  223. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +4 -1
  224. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
  225. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +4 -1
  226. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
  227. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +7 -1
  228. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -1
  229. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +4 -1
  230. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
  231. package/build/types/filter-list/inputs/StaticValuesFilterInput.d.ts +1 -1
  232. package/build/types/filter-list/types/CustomRendererTypes.d.ts +2 -2
  233. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
  234. package/build/types/filter-list/types/KeywordSearchTypes.d.ts +2 -2
  235. package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -1
  236. package/build/types/filter-list/types/LinkedFilterTypes.d.ts +34 -4
  237. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
  238. package/build/types/filter-list/types/StaticValuesTypes.d.ts +2 -2
  239. package/build/types/filter-list/types/StaticValuesTypes.d.ts.map +1 -1
  240. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +24 -1
  241. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
  242. package/build/types/filter-list/utils/filterValues.d.ts +26 -0
  243. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  244. package/build/types/filter-list/utils/narrowObjectSet.d.ts +7 -0
  245. package/build/types/filter-list/utils/narrowObjectSet.d.ts.map +1 -0
  246. package/build/types/public/experimental/filter-list.d.ts +3 -1
  247. package/build/types/public/experimental/filter-list.d.ts.map +1 -1
  248. package/docs/CSSVariables.md +78 -17
  249. package/docs/FilterList.md +52 -6
  250. package/package.json +9 -9
  251. package/build/cjs/chunk-3Y4W37E3.cjs +0 -11
  252. package/build/cjs/chunk-62DGPKOC.cjs +0 -11
  253. package/build/cjs/chunk-774FGQHO.cjs +0 -11
  254. package/build/cjs/chunk-DKPG7O4B.cjs.map +0 -1
  255. package/build/cjs/chunk-QOI2FQSL.cjs.map +0 -1
  256. package/build/cjs/chunk-S25XCKOA.cjs +0 -11
  257. package/build/cjs/chunk-SLHKSOQC.cjs +0 -11
@@ -17,7 +17,8 @@
17
17
  import React, { memo, useCallback, useMemo } from "react";
18
18
  import { FilterInputExcludeRow } from "../base/FilterInputExcludeRow.js";
19
19
  import { MultiSelectInput } from "../base/inputs/MultiSelectInput.js";
20
- import { usePropertyAggregation } from "../hooks/usePropertyAggregation.js";
20
+ import { useFilterPropertyAggregation } from "../hooks/useFilterPropertyAggregation.js";
21
+ import { EMPTY_LINKED_FILTERS } from "../types/LinkedFilterTypes.js";
21
22
  import { coerceToStringArray } from "../utils/coerceFilterValue.js";
22
23
  function MultiSelectFilterInputInner({
23
24
  objectType,
@@ -26,6 +27,8 @@ function MultiSelectFilterInputInner({
26
27
  filterState,
27
28
  onFilterStateChanged,
28
29
  whereClause,
30
+ linkedFilters = EMPTY_LINKED_FILTERS,
31
+ showFilteredOutValues,
29
32
  excludeRowOpen,
30
33
  renderValue,
31
34
  showCount,
@@ -47,15 +50,14 @@ function MultiSelectFilterInputInner({
47
50
  isExcluding
48
51
  });
49
52
  }, [onFilterStateChanged, isExcluding]);
50
- const aggregationOptions = useMemo(() => ({
51
- where: whereClause,
52
- activeValues: selectedValues
53
- }), [whereClause, selectedValues]);
54
53
  const {
55
54
  data,
56
55
  isLoading,
57
56
  error
58
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
57
+ } = useFilterPropertyAggregation(objectType, propertyKey, objectSet, whereClause, linkedFilters, {
58
+ selectedValues,
59
+ showFilteredOutValues
60
+ });
59
61
  return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {
60
62
  excludeRowOpen: excludeRowOpen,
61
63
  filterState: filterState,
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","MultiSelectInput","usePropertyAggregation","coerceToStringArray","MultiSelectFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","excludeRowOpen","renderValue","showCount","layout","selectedValues","type","isExcluding","handleClearAll","handleChange","aggregationOptions","where","activeValues","data","isLoading","error","createElement","totalValueCount","length","onClearAll","values","onChange","showCounts","ariaLabel","MultiSelectFilterInput"],"sources":["MultiSelectFilterInput.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 ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport {\n MultiSelectInput,\n type MultiSelectInputLayout,\n} from \"../base/inputs/MultiSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n\ninterface MultiSelectFilterInputProps<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 excludeRowOpen?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n showCount?: boolean;\n layout?: MultiSelectInputLayout;\n}\n\nfunction MultiSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n excludeRowOpen,\n renderValue,\n showCount,\n layout,\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 handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\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 const aggregationOptions = useMemo(\n () => ({ where: whereClause, activeValues: selectedValues }),\n [whereClause, selectedValues],\n );\n\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n objectSet,\n aggregationOptions,\n );\n\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={data.length}\n onClearAll={handleClearAll}\n >\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={handleChange}\n showCounts={showCount}\n ariaLabel={`Search ${propertyKey} values`}\n renderValue={renderValue}\n layout={layout}\n />\n </FilterInputExcludeRow>\n );\n}\n\nexport const MultiSelectFilterInput: typeof MultiSelectFilterInputInner = memo(\n MultiSelectFilterInputInner,\n) as typeof MultiSelectFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SACEC,gBAAgB,QAEX,oCAAoC;AAE3C,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,mBAAmB,QAAQ,+BAA+B;AAenE,SAASC,2BAA2BA,CAAiC;EACnEC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC,cAAc;EACdC,WAAW;EACXC,SAAS;EACTC;AAC8B,CAAC,EAAsB;EACrD,MAAMC,cAAc,GAAGhB,OAAO,CAC5B,MACES,WAAW,EAAEQ,IAAI,KAAK,QAAQ,GAC1Bb,mBAAmB,CAACK,WAAW,CAACO,cAAc,CAAC,GAC/C,EAAE,EACR,CAACP,WAAW,CACd,CAAC;EACD,MAAMS,WAAW,GAAGT,WAAW,EAAES,WAAW,IAAI,KAAK;EAErD,MAAMC,cAAc,GAAGpB,WAAW,CAAC,MAAM;IACvCW,oBAAoB,CAAC;MACnBO,IAAI,EAAE,QAAQ;MACdD,cAAc,EAAE,EAAE;MAClBE;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACR,oBAAoB,EAAEQ,WAAW,CAAC,CAAC;EAEvC,MAAME,YAAY,GAAGrB,WAAW,CAC7BiB,cAAwB,IAAK;IAC5BN,oBAAoB,CAAC;MACnBO,IAAI,EAAE,QAAQ;MACdD,cAAc;MACdE;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACR,oBAAoB,EAAEQ,WAAW,CACpC,CAAC;EAED,MAAMG,kBAAkB,GAAGrB,OAAO,CAChC,OAAO;IAAEsB,KAAK,EAAEX,WAAW;IAAEY,YAAY,EAAEP;EAAe,CAAC,CAAC,EAC5D,CAACL,WAAW,EAAEK,cAAc,CAC9B,CAAC;EAED,MAAM;IAAEQ,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGvB,sBAAsB,CACvDG,UAAU,EACVE,WAAW,EACXD,SAAS,EACTc,kBACF,CAAC;EAED,oBACExB,KAAA,CAAA8B,aAAA,CAAC1B,qBAAqB;IACpBW,cAAc,EAAEA,cAAe;IAC/BH,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3CkB,eAAe,EAAEJ,IAAI,CAACK,MAAO;IAC7BC,UAAU,EAAEX;EAAe,gBAE3BtB,KAAA,CAAA8B,aAAA,CAACzB,gBAAgB;IACf6B,MAAM,EAAEP,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbV,cAAc,EAAEA,cAAe;IAC/BgB,QAAQ,EAAEZ,YAAa;IACvBa,UAAU,EAAEnB,SAAU;IACtBoB,SAAS,EAAE,UAAU1B,WAAW,SAAU;IAC1CK,WAAW,EAAEA,WAAY;IACzBE,MAAM,EAAEA;EAAO,CAChB,CACoB,CAAC;AAE5B;AAEA,OAAO,MAAMoB,sBAA0D,gBAAGrC,IAAI,CAC5EO,2BACF,CAAuC","ignoreList":[]}
1
+ {"version":3,"file":"MultiSelectFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","MultiSelectInput","useFilterPropertyAggregation","EMPTY_LINKED_FILTERS","coerceToStringArray","MultiSelectFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","linkedFilters","showFilteredOutValues","excludeRowOpen","renderValue","showCount","layout","selectedValues","type","isExcluding","handleClearAll","handleChange","data","isLoading","error","createElement","totalValueCount","length","onClearAll","values","onChange","showCounts","ariaLabel","MultiSelectFilterInput"],"sources":["MultiSelectFilterInput.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 ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport {\n MultiSelectInput,\n type MultiSelectInputLayout,\n} from \"../base/inputs/MultiSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { useFilterPropertyAggregation } from \"../hooks/useFilterPropertyAggregation.js\";\nimport {\n EMPTY_LINKED_FILTERS,\n type LinkedFilter,\n} from \"../types/LinkedFilterTypes.js\";\nimport { coerceToStringArray } from \"../utils/coerceFilterValue.js\";\n\ninterface MultiSelectFilterInputProps<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 linkedFilters?: ReadonlyArray<LinkedFilter<Q>>;\n showFilteredOutValues?: boolean;\n excludeRowOpen?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n showCount?: boolean;\n layout?: MultiSelectInputLayout;\n}\n\nfunction MultiSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n linkedFilters = EMPTY_LINKED_FILTERS,\n showFilteredOutValues,\n excludeRowOpen,\n renderValue,\n showCount,\n layout,\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 handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\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 const { data, isLoading, error } = useFilterPropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n objectSet,\n whereClause,\n linkedFilters,\n { selectedValues, showFilteredOutValues },\n );\n\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={data.length}\n onClearAll={handleClearAll}\n >\n <MultiSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValues={selectedValues}\n onChange={handleChange}\n showCounts={showCount}\n ariaLabel={`Search ${propertyKey} values`}\n renderValue={renderValue}\n layout={layout}\n />\n </FilterInputExcludeRow>\n );\n}\n\nexport const MultiSelectFilterInput: typeof MultiSelectFilterInputInner = memo(\n MultiSelectFilterInputInner,\n) as typeof MultiSelectFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SACEC,gBAAgB,QAEX,oCAAoC;AAE3C,SAASC,4BAA4B,QAAQ,0CAA0C;AACvF,SACEC,oBAAoB,QAEf,+BAA+B;AACtC,SAASC,mBAAmB,QAAQ,+BAA+B;AAiBnE,SAASC,2BAA2BA,CAAiC;EACnEC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC,aAAa,GAAGT,oBAAoB;EACpCU,qBAAqB;EACrBC,cAAc;EACdC,WAAW;EACXC,SAAS;EACTC;AAC8B,CAAC,EAAsB;EACrD,MAAMC,cAAc,GAAGnB,OAAO,CAC5B,MACEU,WAAW,EAAEU,IAAI,KAAK,QAAQ,GAC1Bf,mBAAmB,CAACK,WAAW,CAACS,cAAc,CAAC,GAC/C,EAAE,EACR,CAACT,WAAW,CACd,CAAC;EACD,MAAMW,WAAW,GAAGX,WAAW,EAAEW,WAAW,IAAI,KAAK;EAErD,MAAMC,cAAc,GAAGvB,WAAW,CAAC,MAAM;IACvCY,oBAAoB,CAAC;MACnBS,IAAI,EAAE,QAAQ;MACdD,cAAc,EAAE,EAAE;MAClBE;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACV,oBAAoB,EAAEU,WAAW,CAAC,CAAC;EAEvC,MAAME,YAAY,GAAGxB,WAAW,CAC7BoB,cAAwB,IAAK;IAC5BR,oBAAoB,CAAC;MACnBS,IAAI,EAAE,QAAQ;MACdD,cAAc;MACdE;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACV,oBAAoB,EAAEU,WAAW,CACpC,CAAC;EAED,MAAM;IAAEG,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGvB,4BAA4B,CAC7DI,UAAU,EACVE,WAAW,EACXD,SAAS,EACTI,WAAW,EACXC,aAAa,EACb;IAAEM,cAAc;IAAEL;EAAsB,CAC1C,CAAC;EAED,oBACEjB,KAAA,CAAA8B,aAAA,CAAC1B,qBAAqB;IACpBc,cAAc,EAAEA,cAAe;IAC/BL,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3CiB,eAAe,EAAEJ,IAAI,CAACK,MAAO;IAC7BC,UAAU,EAAER;EAAe,gBAE3BzB,KAAA,CAAA8B,aAAA,CAACzB,gBAAgB;IACf6B,MAAM,EAAEP,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbP,cAAc,EAAEA,cAAe;IAC/Ba,QAAQ,EAAET,YAAa;IACvBU,UAAU,EAAEhB,SAAU;IACtBiB,SAAS,EAAE,UAAUzB,WAAW,SAAU;IAC1CO,WAAW,EAAEA,WAAY;IACzBE,MAAM,EAAEA;EAAO,CAChB,CACoB,CAAC;AAE5B;AAEA,OAAO,MAAMiB,sBAA0D,gBAAGrC,IAAI,CAC5EQ,2BACF,CAAuC","ignoreList":[]}
@@ -34,6 +34,8 @@ function PropertyFilterInputInner({
34
34
  filterState,
35
35
  onFilterStateChanged,
36
36
  whereClause,
37
+ linkedFilters,
38
+ showFilteredOutValues,
37
39
  searchQuery,
38
40
  excludeRowOpen,
39
41
  layout
@@ -83,6 +85,8 @@ function PropertyFilterInputInner({
83
85
  filterState: filterState,
84
86
  onFilterStateChanged: onFilterStateChanged,
85
87
  whereClause: whereClause,
88
+ linkedFilters: linkedFilters,
89
+ showFilteredOutValues: showFilteredOutValues,
86
90
  excludeRowOpen: excludeRowOpen,
87
91
  renderValue: definition.renderValue,
88
92
  showCount: definition.showCount
@@ -95,6 +99,8 @@ function PropertyFilterInputInner({
95
99
  filterState: filterState,
96
100
  onFilterStateChanged: onFilterStateChanged,
97
101
  whereClause: whereClause,
102
+ linkedFilters: linkedFilters,
103
+ showFilteredOutValues: showFilteredOutValues,
98
104
  excludeRowOpen: excludeRowOpen,
99
105
  renderValue: definition.renderValue,
100
106
  showCount: definition.showCount,
@@ -103,7 +109,8 @@ function PropertyFilterInputInner({
103
109
  case "SINGLE_DATE":
104
110
  return /*#__PURE__*/React.createElement(SingleDateFilterInput, {
105
111
  filterState: filterState,
106
- onFilterStateChanged: onFilterStateChanged
112
+ onFilterStateChanged: onFilterStateChanged,
113
+ formatDate: definition.formatDate
107
114
  });
108
115
  case "MULTI_DATE":
109
116
  return /*#__PURE__*/React.createElement(MultiDateFilterInput, {
@@ -119,6 +126,8 @@ function PropertyFilterInputInner({
119
126
  filterState: filterState,
120
127
  onFilterStateChanged: onFilterStateChanged,
121
128
  whereClause: whereClause,
129
+ linkedFilters: linkedFilters,
130
+ showFilteredOutValues: showFilteredOutValues,
122
131
  colorMap: definition.colorMap,
123
132
  displayMode: definition.listogramConfig?.displayMode,
124
133
  showCount: definition.showCount,
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyFilterInput.js","names":["React","memo","FilterInputExcludeRow","ContainsTextFilterInput","DateRangeFilterInput","ListogramFilterInput","MultiDateFilterInput","MultiSelectFilterInput","NumberRangeFilterInput","SingleDateFilterInput","SingleSelectFilterInput","TextTagsFilterInput","TimelineFilterInput","ToggleFilterInput","PropertyFilterInputInner","objectType","objectSet","definition","filterState","onFilterStateChanged","whereClause","searchQuery","excludeRowOpen","layout","filterComponent","createElement","propertyKey","key","clickToFilter","formatDate","renderValue","showCount","colorMap","displayMode","listogramConfig","maxVisibleItems","PropertyFilterInput"],"sources":["PropertyFilterInput.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 } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport type { MultiSelectInputLayout } from \"../base/inputs/MultiSelectInput.js\";\nimport type {\n FilterState,\n PropertyFilterDefinition,\n} from \"../FilterListItemApi.js\";\nimport { ContainsTextFilterInput } from \"./ContainsTextFilterInput.js\";\nimport { DateRangeFilterInput } from \"./DateRangeFilterInput.js\";\nimport { ListogramFilterInput } from \"./ListogramFilterInput.js\";\nimport { MultiDateFilterInput } from \"./MultiDateFilterInput.js\";\nimport { MultiSelectFilterInput } from \"./MultiSelectFilterInput.js\";\nimport { NumberRangeFilterInput } from \"./NumberRangeFilterInput.js\";\nimport { SingleDateFilterInput } from \"./SingleDateFilterInput.js\";\nimport { SingleSelectFilterInput } from \"./SingleSelectFilterInput.js\";\nimport { TextTagsFilterInput } from \"./TextTagsFilterInput.js\";\nimport { TimelineFilterInput } from \"./TimelineFilterInput.js\";\nimport { ToggleFilterInput } from \"./ToggleFilterInput.js\";\n\ninterface PropertyFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet?: ObjectSet<Q>;\n definition: PropertyFilterDefinition<Q>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n searchQuery?: string;\n excludeRowOpen?: boolean;\n layout?: MultiSelectInputLayout;\n}\n\nfunction PropertyFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n searchQuery,\n excludeRowOpen,\n layout,\n}: PropertyFilterInputProps<Q>): React.ReactElement {\n switch (definition.filterComponent) {\n case \"CONTAINS_TEXT\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n >\n <ContainsTextFilterInput\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n </FilterInputExcludeRow>\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 objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n clickToFilter={definition.clickToFilter}\n />\n );\n\n case \"DATE_RANGE\":\n return (\n <DateRangeFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n formatDate={definition.formatDate}\n clickToFilter={definition.clickToFilter}\n />\n );\n\n case \"SINGLE_SELECT\":\n return (\n <SingleSelectFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n excludeRowOpen={excludeRowOpen}\n renderValue={definition.renderValue}\n showCount={definition.showCount}\n />\n );\n\n case \"MULTI_SELECT\":\n return (\n <MultiSelectFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n excludeRowOpen={excludeRowOpen}\n renderValue={definition.renderValue}\n showCount={definition.showCount}\n layout={layout}\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 formatDate={definition.formatDate}\n />\n );\n\n case \"LISTOGRAM\":\n return (\n <ListogramFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n colorMap={definition.colorMap}\n displayMode={definition.listogramConfig?.displayMode}\n showCount={definition.showCount}\n maxVisibleItems={definition.listogramConfig?.maxVisibleItems ?? 5}\n searchQuery={searchQuery}\n excludeRowOpen={excludeRowOpen}\n renderValue={definition.renderValue}\n />\n );\n\n case \"TEXT_TAGS\":\n return (\n <TextTagsFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n excludeRowOpen={excludeRowOpen}\n />\n );\n\n case \"TIMELINE\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n >\n <TimelineFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n formatDate={definition.formatDate}\n />\n </FilterInputExcludeRow>\n );\n\n default:\n return (\n <div data-unsupported=\"true\">\n Unsupported filter component: {definition.filterComponent}\n </div>\n );\n }\n}\n\nexport const PropertyFilterInput: typeof PropertyFilterInputInner = memo(\n PropertyFilterInputInner,\n) as typeof PropertyFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PropertyFilterInput.js","names":["React","memo","FilterInputExcludeRow","ContainsTextFilterInput","DateRangeFilterInput","ListogramFilterInput","MultiDateFilterInput","MultiSelectFilterInput","NumberRangeFilterInput","SingleDateFilterInput","SingleSelectFilterInput","TextTagsFilterInput","TimelineFilterInput","ToggleFilterInput","PropertyFilterInputInner","objectType","objectSet","definition","filterState","onFilterStateChanged","whereClause","linkedFilters","showFilteredOutValues","searchQuery","excludeRowOpen","layout","filterComponent","createElement","propertyKey","key","clickToFilter","formatDate","renderValue","showCount","colorMap","displayMode","listogramConfig","maxVisibleItems","PropertyFilterInput"],"sources":["PropertyFilterInput.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 } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport type { MultiSelectInputLayout } from \"../base/inputs/MultiSelectInput.js\";\nimport type {\n FilterState,\n PropertyFilterDefinition,\n} from \"../FilterListItemApi.js\";\nimport type { LinkedFilter } from \"../types/LinkedFilterTypes.js\";\nimport { ContainsTextFilterInput } from \"./ContainsTextFilterInput.js\";\nimport { DateRangeFilterInput } from \"./DateRangeFilterInput.js\";\nimport { ListogramFilterInput } from \"./ListogramFilterInput.js\";\nimport { MultiDateFilterInput } from \"./MultiDateFilterInput.js\";\nimport { MultiSelectFilterInput } from \"./MultiSelectFilterInput.js\";\nimport { NumberRangeFilterInput } from \"./NumberRangeFilterInput.js\";\nimport { SingleDateFilterInput } from \"./SingleDateFilterInput.js\";\nimport { SingleSelectFilterInput } from \"./SingleSelectFilterInput.js\";\nimport { TextTagsFilterInput } from \"./TextTagsFilterInput.js\";\nimport { TimelineFilterInput } from \"./TimelineFilterInput.js\";\nimport { ToggleFilterInput } from \"./ToggleFilterInput.js\";\n\ninterface PropertyFilterInputProps<Q extends ObjectTypeDefinition> {\n objectType: Q;\n objectSet?: ObjectSet<Q>;\n definition: PropertyFilterDefinition<Q>;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n whereClause: WhereClause<Q>;\n linkedFilters?: ReadonlyArray<LinkedFilter<Q>>;\n showFilteredOutValues?: boolean;\n searchQuery?: string;\n excludeRowOpen?: boolean;\n layout?: MultiSelectInputLayout;\n}\n\nfunction PropertyFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n definition,\n filterState,\n onFilterStateChanged,\n whereClause,\n linkedFilters,\n showFilteredOutValues,\n searchQuery,\n excludeRowOpen,\n layout,\n}: PropertyFilterInputProps<Q>): React.ReactElement {\n switch (definition.filterComponent) {\n case \"CONTAINS_TEXT\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n >\n <ContainsTextFilterInput\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n />\n </FilterInputExcludeRow>\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 objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n clickToFilter={definition.clickToFilter}\n />\n );\n\n case \"DATE_RANGE\":\n return (\n <DateRangeFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n formatDate={definition.formatDate}\n clickToFilter={definition.clickToFilter}\n />\n );\n\n case \"SINGLE_SELECT\":\n return (\n <SingleSelectFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n linkedFilters={linkedFilters}\n showFilteredOutValues={showFilteredOutValues}\n excludeRowOpen={excludeRowOpen}\n renderValue={definition.renderValue}\n showCount={definition.showCount}\n />\n );\n\n case \"MULTI_SELECT\":\n return (\n <MultiSelectFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n linkedFilters={linkedFilters}\n showFilteredOutValues={showFilteredOutValues}\n excludeRowOpen={excludeRowOpen}\n renderValue={definition.renderValue}\n showCount={definition.showCount}\n layout={layout}\n />\n );\n\n case \"SINGLE_DATE\":\n return (\n <SingleDateFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n formatDate={definition.formatDate}\n />\n );\n\n case \"MULTI_DATE\":\n return (\n <MultiDateFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n formatDate={definition.formatDate}\n />\n );\n\n case \"LISTOGRAM\":\n return (\n <ListogramFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n linkedFilters={linkedFilters}\n showFilteredOutValues={showFilteredOutValues}\n colorMap={definition.colorMap}\n displayMode={definition.listogramConfig?.displayMode}\n showCount={definition.showCount}\n maxVisibleItems={definition.listogramConfig?.maxVisibleItems ?? 5}\n searchQuery={searchQuery}\n excludeRowOpen={excludeRowOpen}\n renderValue={definition.renderValue}\n />\n );\n\n case \"TEXT_TAGS\":\n return (\n <TextTagsFilterInput\n objectType={objectType}\n objectSet={objectSet}\n propertyKey={definition.key}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n whereClause={whereClause}\n excludeRowOpen={excludeRowOpen}\n />\n );\n\n case \"TIMELINE\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n >\n <TimelineFilterInput\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n formatDate={definition.formatDate}\n />\n </FilterInputExcludeRow>\n );\n\n default:\n return (\n <div data-unsupported=\"true\">\n Unsupported filter component: {definition.filterComponent}\n </div>\n );\n }\n}\n\nexport const PropertyFilterInput: typeof PropertyFilterInputInner = memo(\n PropertyFilterInputInner,\n) as typeof PropertyFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,8 @@ import React, { memo, useCallback, useMemo } from "react";
18
18
  import { SingleDateInput } from "../base/inputs/SingleDateInput.js";
19
19
  function SingleDateFilterInputInner({
20
20
  filterState,
21
- onFilterStateChanged
21
+ onFilterStateChanged,
22
+ formatDate
22
23
  }) {
23
24
  const selectedDate = useMemo(() => filterState?.type === "SELECT" ? filterState.selectedValues[0] instanceof Date ? filterState.selectedValues[0] : undefined : undefined, [filterState]);
24
25
  const isExcluding = filterState?.isExcluding ?? false;
@@ -31,7 +32,8 @@ function SingleDateFilterInputInner({
31
32
  }, [onFilterStateChanged, isExcluding]);
32
33
  return /*#__PURE__*/React.createElement(SingleDateInput, {
33
34
  selectedDate: selectedDate,
34
- onChange: handleChange
35
+ onChange: handleChange,
36
+ formatDate: formatDate
35
37
  });
36
38
  }
37
39
  export const SingleDateFilterInput = /*#__PURE__*/memo(SingleDateFilterInputInner);
@@ -1 +1 @@
1
- {"version":3,"file":"SingleDateFilterInput.js","names":["React","memo","useCallback","useMemo","SingleDateInput","SingleDateFilterInputInner","filterState","onFilterStateChanged","selectedDate","type","selectedValues","Date","undefined","isExcluding","handleChange","createElement","onChange","SingleDateFilterInput"],"sources":["SingleDateFilterInput.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 React, { memo, useCallback, useMemo } from \"react\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\ninterface SingleDateFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction SingleDateFilterInputInner({\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\n selectedDate={selectedDate}\n onChange={handleChange}\n />\n );\n}\n\nexport const SingleDateFilterInput: React.MemoExoticComponent<\n typeof SingleDateFilterInputInner\n> = memo(SingleDateFilterInputInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,eAAe,QAAQ,mCAAmC;AAQnE,SAASC,0BAA0BA,CAAC;EAClCC,WAAW;EACXC;AAC0B,CAAC,EAAsB;EACjD,MAAMC,YAAY,GAAGL,OAAO,CAC1B,MACEG,WAAW,EAAEG,IAAI,KAAK,QAAQ,GACzBH,WAAW,CAACI,cAAc,CAAC,CAAC,CAAC,YAAYC,IAAI,GAC5CL,WAAW,CAACI,cAAc,CAAC,CAAC,CAAC,GAC7BE,SAAS,GACXA,SAAS,EACf,CAACN,WAAW,CACd,CAAC;EACD,MAAMO,WAAW,GAAGP,WAAW,EAAEO,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGZ,WAAW,CAC7BM,YAA8B,IAAK;IAClCD,oBAAoB,CAAC;MACnBE,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAEF,YAAY,KAAKI,SAAS,GAAG,CAACJ,YAAY,CAAC,GAAG,EAAE;MAChEK;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACN,oBAAoB,EAAEM,WAAW,CACpC,CAAC;EAED,oBACEb,KAAA,CAAAe,aAAA,CAACX,eAAe;IACdI,YAAY,EAAEA,YAAa;IAC3BQ,QAAQ,EAAEF;EAAa,CACxB,CAAC;AAEN;AAEA,OAAO,MAAMG,qBAEZ,gBAAGhB,IAAI,CAACI,0BAA0B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"SingleDateFilterInput.js","names":["React","memo","useCallback","useMemo","SingleDateInput","SingleDateFilterInputInner","filterState","onFilterStateChanged","formatDate","selectedDate","type","selectedValues","Date","undefined","isExcluding","handleChange","createElement","onChange","SingleDateFilterInput"],"sources":["SingleDateFilterInput.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 React, { memo, useCallback, useMemo } from \"react\";\nimport { SingleDateInput } from \"../base/inputs/SingleDateInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\ninterface SingleDateFilterInputProps {\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n /**\n * Consumer-provided display formatter forwarded to the underlying\n * `SingleDateInput` / `DatePicker`. Falls back to ISO `YYYY-MM-DD` when\n * omitted.\n */\n formatDate?: (date: Date) => string;\n}\n\nfunction SingleDateFilterInputInner({\n filterState,\n onFilterStateChanged,\n formatDate,\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\n selectedDate={selectedDate}\n onChange={handleChange}\n formatDate={formatDate}\n />\n );\n}\n\nexport const SingleDateFilterInput: React.MemoExoticComponent<\n typeof SingleDateFilterInputInner\n> = memo(SingleDateFilterInputInner);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,eAAe,QAAQ,mCAAmC;AAcnE,SAASC,0BAA0BA,CAAC;EAClCC,WAAW;EACXC,oBAAoB;EACpBC;AAC0B,CAAC,EAAsB;EACjD,MAAMC,YAAY,GAAGN,OAAO,CAC1B,MACEG,WAAW,EAAEI,IAAI,KAAK,QAAQ,GACzBJ,WAAW,CAACK,cAAc,CAAC,CAAC,CAAC,YAAYC,IAAI,GAC5CN,WAAW,CAACK,cAAc,CAAC,CAAC,CAAC,GAC7BE,SAAS,GACXA,SAAS,EACf,CAACP,WAAW,CACd,CAAC;EACD,MAAMQ,WAAW,GAAGR,WAAW,EAAEQ,WAAW,IAAI,KAAK;EAErD,MAAMC,YAAY,GAAGb,WAAW,CAC7BO,YAA8B,IAAK;IAClCF,oBAAoB,CAAC;MACnBG,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAEF,YAAY,KAAKI,SAAS,GAAG,CAACJ,YAAY,CAAC,GAAG,EAAE;MAChEK;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACP,oBAAoB,EAAEO,WAAW,CACpC,CAAC;EAED,oBACEd,KAAA,CAAAgB,aAAA,CAACZ,eAAe;IACdK,YAAY,EAAEA,YAAa;IAC3BQ,QAAQ,EAAEF,YAAa;IACvBP,UAAU,EAAEA;EAAW,CACxB,CAAC;AAEN;AAEA,OAAO,MAAMU,qBAEZ,gBAAGjB,IAAI,CAACI,0BAA0B,CAAC","ignoreList":[]}
@@ -17,7 +17,8 @@
17
17
  import React, { memo, useCallback, useMemo } from "react";
18
18
  import { FilterInputExcludeRow } from "../base/FilterInputExcludeRow.js";
19
19
  import { SingleSelectInput } from "../base/inputs/SingleSelectInput.js";
20
- import { usePropertyAggregation } from "../hooks/usePropertyAggregation.js";
20
+ import { useFilterPropertyAggregation } from "../hooks/useFilterPropertyAggregation.js";
21
+ import { EMPTY_LINKED_FILTERS } from "../types/LinkedFilterTypes.js";
21
22
  import { coerceToString } from "../utils/coerceFilterValue.js";
22
23
  function SingleSelectFilterInputInner({
23
24
  objectType,
@@ -26,6 +27,8 @@ function SingleSelectFilterInputInner({
26
27
  filterState,
27
28
  onFilterStateChanged,
28
29
  whereClause,
30
+ linkedFilters = EMPTY_LINKED_FILTERS,
31
+ showFilteredOutValues,
29
32
  excludeRowOpen,
30
33
  renderValue,
31
34
  showCount
@@ -46,15 +49,15 @@ function SingleSelectFilterInputInner({
46
49
  isExcluding
47
50
  });
48
51
  }, [onFilterStateChanged, isExcluding]);
49
- const aggregationOptions = useMemo(() => ({
50
- where: whereClause,
51
- activeValues: selectedValue != null ? [selectedValue] : undefined
52
- }), [whereClause, selectedValue]);
52
+ const selectedValues = useMemo(() => selectedValue != null ? [selectedValue] : [], [selectedValue]);
53
53
  const {
54
54
  data,
55
55
  isLoading,
56
56
  error
57
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
57
+ } = useFilterPropertyAggregation(objectType, propertyKey, objectSet, whereClause, linkedFilters, {
58
+ selectedValues,
59
+ showFilteredOutValues
60
+ });
58
61
  return /*#__PURE__*/React.createElement(FilterInputExcludeRow, {
59
62
  excludeRowOpen: excludeRowOpen,
60
63
  filterState: filterState,
@@ -1 +1 @@
1
- {"version":3,"file":"SingleSelectFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","SingleSelectInput","usePropertyAggregation","coerceToString","SingleSelectFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","excludeRowOpen","renderValue","showCount","selectedValue","type","selectedValues","undefined","isExcluding","handleClearAll","handleChange","value","aggregationOptions","where","activeValues","data","isLoading","error","createElement","totalValueCount","length","onClearAll","values","onChange","showCounts","ariaLabel","SingleSelectFilterInput"],"sources":["SingleSelectFilterInput.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 ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { usePropertyAggregation } from \"../hooks/usePropertyAggregation.js\";\nimport { coerceToString } from \"../utils/coerceFilterValue.js\";\n\ninterface SingleSelectFilterInputProps<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 excludeRowOpen?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n showCount?: boolean;\n}\n\nfunction SingleSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n excludeRowOpen,\n renderValue,\n showCount,\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 handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\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 const aggregationOptions = useMemo(\n () => ({\n where: whereClause,\n activeValues: selectedValue != null ? [selectedValue] : undefined,\n }),\n [whereClause, selectedValue],\n );\n\n const { data, isLoading, error } = usePropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n objectSet,\n aggregationOptions,\n );\n\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={data.length}\n onClearAll={handleClearAll}\n >\n <SingleSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValue={selectedValue}\n onChange={handleChange}\n showCounts={showCount}\n ariaLabel={`Select ${propertyKey}`}\n renderValue={renderValue}\n />\n </FilterInputExcludeRow>\n );\n}\n\nexport const SingleSelectFilterInput: typeof SingleSelectFilterInputInner =\n memo(\n SingleSelectFilterInputInner,\n ) as typeof SingleSelectFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAASC,sBAAsB,QAAQ,oCAAoC;AAC3E,SAASC,cAAc,QAAQ,+BAA+B;AAc9D,SAASC,4BAA4BA,CAAiC;EACpEC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC,cAAc;EACdC,WAAW;EACXC;AAC+B,CAAC,EAAsB;EACtD,MAAMC,aAAa,GAAGf,OAAO,CAC3B,MACES,WAAW,EAAEO,IAAI,KAAK,QAAQ,GAC1BZ,cAAc,CAACK,WAAW,CAACQ,cAAc,CAAC,CAAC,CAAC,CAAC,GAC7CC,SAAS,EACf,CAACT,WAAW,CACd,CAAC;EACD,MAAMU,WAAW,GAAGV,WAAW,EAAEU,WAAW,IAAI,KAAK;EAErD,MAAMC,cAAc,GAAGrB,WAAW,CAAC,MAAM;IACvCW,oBAAoB,CAAC;MACnBM,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAE,EAAE;MAClBE;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACT,oBAAoB,EAAES,WAAW,CAAC,CAAC;EAEvC,MAAME,YAAY,GAAGtB,WAAW,CAC7BuB,KAAyB,IAAK;IAC7BZ,oBAAoB,CAAC;MACnBM,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAEK,KAAK,KAAKJ,SAAS,GAAG,CAACI,KAAK,CAAC,GAAG,EAAE;MAClDH;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACT,oBAAoB,EAAES,WAAW,CACpC,CAAC;EAED,MAAMI,kBAAkB,GAAGvB,OAAO,CAChC,OAAO;IACLwB,KAAK,EAAEb,WAAW;IAClBc,YAAY,EAAEV,aAAa,IAAI,IAAI,GAAG,CAACA,aAAa,CAAC,GAAGG;EAC1D,CAAC,CAAC,EACF,CAACP,WAAW,EAAEI,aAAa,CAC7B,CAAC;EAED,MAAM;IAAEW,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGzB,sBAAsB,CACvDG,UAAU,EACVE,WAAW,EACXD,SAAS,EACTgB,kBACF,CAAC;EAED,oBACE1B,KAAA,CAAAgC,aAAA,CAAC5B,qBAAqB;IACpBW,cAAc,EAAEA,cAAe;IAC/BH,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3CoB,eAAe,EAAEJ,IAAI,CAACK,MAAO;IAC7BC,UAAU,EAAEZ;EAAe,gBAE3BvB,KAAA,CAAAgC,aAAA,CAAC3B,iBAAiB;IAChB+B,MAAM,EAAEP,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbb,aAAa,EAAEA,aAAc;IAC7BmB,QAAQ,EAAEb,YAAa;IACvBc,UAAU,EAAErB,SAAU;IACtBsB,SAAS,EAAE,UAAU5B,WAAW,EAAG;IACnCK,WAAW,EAAEA;EAAY,CAC1B,CACoB,CAAC;AAE5B;AAEA,OAAO,MAAMwB,uBAA4D,gBACvEvC,IAAI,CACFO,4BACF,CAAwC","ignoreList":[]}
1
+ {"version":3,"file":"SingleSelectFilterInput.js","names":["React","memo","useCallback","useMemo","FilterInputExcludeRow","SingleSelectInput","useFilterPropertyAggregation","EMPTY_LINKED_FILTERS","coerceToString","SingleSelectFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","linkedFilters","showFilteredOutValues","excludeRowOpen","renderValue","showCount","selectedValue","type","selectedValues","undefined","isExcluding","handleClearAll","handleChange","value","data","isLoading","error","createElement","totalValueCount","length","onClearAll","values","onChange","showCounts","ariaLabel","SingleSelectFilterInput"],"sources":["SingleSelectFilterInput.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 ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport { useFilterPropertyAggregation } from \"../hooks/useFilterPropertyAggregation.js\";\nimport {\n EMPTY_LINKED_FILTERS,\n type LinkedFilter,\n} from \"../types/LinkedFilterTypes.js\";\nimport { coerceToString } from \"../utils/coerceFilterValue.js\";\n\ninterface SingleSelectFilterInputProps<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 linkedFilters?: ReadonlyArray<LinkedFilter<Q>>;\n showFilteredOutValues?: boolean;\n excludeRowOpen?: boolean;\n renderValue?: (value: string) => React.ReactNode;\n showCount?: boolean;\n}\n\nfunction SingleSelectFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n linkedFilters = EMPTY_LINKED_FILTERS,\n showFilteredOutValues,\n excludeRowOpen,\n renderValue,\n showCount,\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 handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\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 const selectedValues = useMemo(\n () => selectedValue != null ? [selectedValue] : [],\n [selectedValue],\n );\n\n const { data, isLoading, error } = useFilterPropertyAggregation(\n objectType,\n propertyKey as PropertyKeys<Q>,\n objectSet,\n whereClause,\n linkedFilters,\n { selectedValues, showFilteredOutValues },\n );\n\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={data.length}\n onClearAll={handleClearAll}\n >\n <SingleSelectInput\n values={data}\n isLoading={isLoading}\n error={error}\n selectedValue={selectedValue}\n onChange={handleChange}\n showCounts={showCount}\n ariaLabel={`Select ${propertyKey}`}\n renderValue={renderValue}\n />\n </FilterInputExcludeRow>\n );\n}\n\nexport const SingleSelectFilterInput: typeof SingleSelectFilterInputInner =\n memo(\n SingleSelectFilterInputInner,\n ) as typeof SingleSelectFilterInputInner;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,iBAAiB,QAAQ,qCAAqC;AAEvE,SAASC,4BAA4B,QAAQ,0CAA0C;AACvF,SACEC,oBAAoB,QAEf,+BAA+B;AACtC,SAASC,cAAc,QAAQ,+BAA+B;AAgB9D,SAASC,4BAA4BA,CAAiC;EACpEC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,oBAAoB;EACpBC,WAAW;EACXC,aAAa,GAAGT,oBAAoB;EACpCU,qBAAqB;EACrBC,cAAc;EACdC,WAAW;EACXC;AAC+B,CAAC,EAAsB;EACtD,MAAMC,aAAa,GAAGlB,OAAO,CAC3B,MACEU,WAAW,EAAES,IAAI,KAAK,QAAQ,GAC1Bd,cAAc,CAACK,WAAW,CAACU,cAAc,CAAC,CAAC,CAAC,CAAC,GAC7CC,SAAS,EACf,CAACX,WAAW,CACd,CAAC;EACD,MAAMY,WAAW,GAAGZ,WAAW,EAAEY,WAAW,IAAI,KAAK;EAErD,MAAMC,cAAc,GAAGxB,WAAW,CAAC,MAAM;IACvCY,oBAAoB,CAAC;MACnBQ,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAE,EAAE;MAClBE;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACX,oBAAoB,EAAEW,WAAW,CAAC,CAAC;EAEvC,MAAME,YAAY,GAAGzB,WAAW,CAC7B0B,KAAyB,IAAK;IAC7Bd,oBAAoB,CAAC;MACnBQ,IAAI,EAAE,QAAQ;MACdC,cAAc,EAAEK,KAAK,KAAKJ,SAAS,GAAG,CAACI,KAAK,CAAC,GAAG,EAAE;MAClDH;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACX,oBAAoB,EAAEW,WAAW,CACpC,CAAC;EAED,MAAMF,cAAc,GAAGpB,OAAO,CAC5B,MAAMkB,aAAa,IAAI,IAAI,GAAG,CAACA,aAAa,CAAC,GAAG,EAAE,EAClD,CAACA,aAAa,CAChB,CAAC;EAED,MAAM;IAAEQ,IAAI;IAAEC,SAAS;IAAEC;EAAM,CAAC,GAAGzB,4BAA4B,CAC7DI,UAAU,EACVE,WAAW,EACXD,SAAS,EACTI,WAAW,EACXC,aAAa,EACb;IAAEO,cAAc;IAAEN;EAAsB,CAC1C,CAAC;EAED,oBACEjB,KAAA,CAAAgC,aAAA,CAAC5B,qBAAqB;IACpBc,cAAc,EAAEA,cAAe;IAC/BL,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3CmB,eAAe,EAAEJ,IAAI,CAACK,MAAO;IAC7BC,UAAU,EAAET;EAAe,gBAE3B1B,KAAA,CAAAgC,aAAA,CAAC3B,iBAAiB;IAChB+B,MAAM,EAAEP,IAAK;IACbC,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IACbV,aAAa,EAAEA,aAAc;IAC7BgB,QAAQ,EAAEV,YAAa;IACvBW,UAAU,EAAElB,SAAU;IACtBmB,SAAS,EAAE,UAAU3B,WAAW,EAAG;IACnCO,WAAW,EAAEA;EAAY,CAC1B,CACoB,CAAC;AAE5B;AAEA,OAAO,MAAMqB,uBAA4D,gBACvEvC,IAAI,CACFQ,4BACF,CAAwC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"StaticValuesFilterInput.js","names":["React","memo","useCallback","useMemo","assertUnreachable","FilterInputExcludeRow","ListogramInput","MultiSelectInput","SingleSelectInput","TextTagsInput","coerceToString","coerceToStringArray","useExactMatchState","filterState","onFilterStateChanged","isExcluding","selectedValues","type","values","handleClearAll","handleChange","useSelectState","selectedValue","undefined","handleSingleChange","value","handleMultiChange","StaticValuesFilterInputInner","definition","searchQuery","excludeRowOpen","layout","aggregationValues","map","count","exactMatch","select","filterComponent","createElement","totalValueCount","length","onClearAll","maxCount","isLoading","error","onChange","colorMap","displayMode","listogramConfig","showCount","maxVisibleItems","renderValue","showCounts","ariaLabel","key","suggestions","tags","StaticValuesFilterInput"],"sources":["StaticValuesFilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition } from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport {\n MultiSelectInput,\n type MultiSelectInputLayout,\n} from \"../base/inputs/MultiSelectInput.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport type { PropertyAggregationValue } from \"../types/AggregationTypes.js\";\nimport type { StaticValuesFilterDefinition } from \"../types/StaticValuesTypes.js\";\nimport {\n coerceToString,\n coerceToStringArray,\n} from \"../utils/coerceFilterValue.js\";\n\ninterface StaticValuesFilterInputProps<Q extends ObjectTypeDefinition> {\n /** The static values filter definition containing values and component config */\n definition: StaticValuesFilterDefinition<Q>;\n /** Current filter state, or undefined if no selection has been made */\n filterState: FilterState | undefined;\n /** Callback fired when the user changes the filter selection */\n onFilterStateChanged: (state: FilterState) => void;\n /** Search term for filtering displayed values within the filter input */\n searchQuery?: string;\n /** Whether the exclude/include toggle row is expanded */\n excludeRowOpen?: boolean;\n /** Layout for `MULTI_SELECT` rendering. Forwarded to `MultiSelectInput`. */\n layout?: MultiSelectInputLayout;\n}\n\n/**\n * Hooks for EXACT_MATCH state management (used by LISTOGRAM and TEXT_TAGS).\n */\nfunction useExactMatchState(\n filterState: FilterState | undefined,\n onFilterStateChanged: (state: FilterState) => void,\n isExcluding: boolean,\n) {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"EXACT_MATCH\"\n ? coerceToStringArray(filterState.values)\n : [],\n [filterState],\n );\n\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\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 { selectedValues, handleClearAll, handleChange };\n}\n\n/**\n * Hooks for SELECT state management (used by SINGLE_SELECT and MULTI_SELECT).\n */\nfunction useSelectState(\n filterState: FilterState | undefined,\n onFilterStateChanged: (state: FilterState) => void,\n isExcluding: boolean,\n) {\n const selectedValue = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToString(filterState.selectedValues[0])\n : undefined,\n [filterState],\n );\n\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToStringArray(filterState.selectedValues)\n : [],\n [filterState],\n );\n\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\n\n const handleSingleChange = 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 const handleMultiChange = useCallback(\n (selectedValues: string[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return {\n selectedValue,\n selectedValues,\n handleClearAll,\n handleSingleChange,\n handleMultiChange,\n };\n}\n\nfunction StaticValuesFilterInputInner<Q extends ObjectTypeDefinition>({\n definition,\n filterState,\n onFilterStateChanged,\n searchQuery,\n excludeRowOpen,\n layout,\n}: StaticValuesFilterInputProps<Q>): React.ReactElement {\n const aggregationValues: PropertyAggregationValue[] = useMemo(\n () => definition.values.map((value) => ({ value, count: 0 })),\n [definition.values],\n );\n\n const isExcluding = filterState?.isExcluding ?? false;\n\n const exactMatch = useExactMatchState(\n filterState,\n onFilterStateChanged,\n isExcluding,\n );\n const select = useSelectState(\n filterState,\n onFilterStateChanged,\n isExcluding,\n );\n\n switch (definition.filterComponent) {\n case \"LISTOGRAM\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={aggregationValues.length}\n onClearAll={exactMatch.handleClearAll}\n >\n <ListogramInput\n values={aggregationValues}\n maxCount={0}\n isLoading={false}\n error={null}\n selectedValues={exactMatch.selectedValues}\n onChange={exactMatch.handleChange}\n colorMap={definition.colorMap}\n displayMode={definition.listogramConfig?.displayMode}\n showCount={definition.showCount}\n isExcluding={isExcluding}\n maxVisibleItems={definition.listogramConfig?.maxVisibleItems ?? 5}\n searchQuery={searchQuery}\n renderValue={definition.renderValue}\n />\n </FilterInputExcludeRow>\n );\n\n case \"SINGLE_SELECT\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={aggregationValues.length}\n onClearAll={select.handleClearAll}\n >\n <SingleSelectInput\n values={aggregationValues}\n isLoading={false}\n error={null}\n selectedValue={select.selectedValue}\n onChange={select.handleSingleChange}\n showCounts={definition.showCount}\n ariaLabel={`Select ${definition.key}`}\n renderValue={definition.renderValue}\n />\n </FilterInputExcludeRow>\n );\n\n case \"MULTI_SELECT\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={aggregationValues.length}\n onClearAll={select.handleClearAll}\n >\n <MultiSelectInput\n values={aggregationValues}\n isLoading={false}\n error={null}\n selectedValues={select.selectedValues}\n onChange={select.handleMultiChange}\n showCounts={definition.showCount}\n ariaLabel={`Search ${definition.key} values`}\n renderValue={definition.renderValue}\n layout={layout}\n />\n </FilterInputExcludeRow>\n );\n\n case \"TEXT_TAGS\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={aggregationValues.length}\n onClearAll={exactMatch.handleClearAll}\n >\n <TextTagsInput\n suggestions={aggregationValues}\n isLoading={false}\n error={null}\n tags={exactMatch.selectedValues}\n onChange={exactMatch.handleChange}\n />\n </FilterInputExcludeRow>\n );\n\n default:\n return assertUnreachable(definition.filterComponent);\n }\n}\n\nexport const StaticValuesFilterInput: typeof StaticValuesFilterInputInner =\n memo(\n StaticValuesFilterInputInner,\n ) as typeof StaticValuesFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"StaticValuesFilterInput.js","names":["React","memo","useCallback","useMemo","assertUnreachable","FilterInputExcludeRow","ListogramInput","MultiSelectInput","SingleSelectInput","TextTagsInput","coerceToString","coerceToStringArray","useExactMatchState","filterState","onFilterStateChanged","isExcluding","selectedValues","type","values","handleClearAll","handleChange","useSelectState","selectedValue","undefined","handleSingleChange","value","handleMultiChange","StaticValuesFilterInputInner","definition","searchQuery","excludeRowOpen","layout","aggregationValues","map","count","exactMatch","select","filterComponent","createElement","totalValueCount","length","onClearAll","maxCount","isLoading","error","onChange","colorMap","displayMode","listogramConfig","showCount","maxVisibleItems","renderValue","showCounts","ariaLabel","key","suggestions","tags","StaticValuesFilterInput"],"sources":["StaticValuesFilterInput.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition } from \"@osdk/api\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport { FilterInputExcludeRow } from \"../base/FilterInputExcludeRow.js\";\nimport { ListogramInput } from \"../base/inputs/ListogramInput.js\";\nimport {\n MultiSelectInput,\n type MultiSelectInputLayout,\n} from \"../base/inputs/MultiSelectInput.js\";\nimport { SingleSelectInput } from \"../base/inputs/SingleSelectInput.js\";\nimport { TextTagsInput } from \"../base/inputs/TextTagsInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport type { PropertyAggregationValue } from \"../types/AggregationTypes.js\";\nimport type { StaticValuesFilterDefinition } from \"../types/StaticValuesTypes.js\";\nimport {\n coerceToString,\n coerceToStringArray,\n} from \"../utils/coerceFilterValue.js\";\n\ninterface StaticValuesFilterInputProps<Q extends ObjectTypeDefinition> {\n /** The static values filter definition containing values and component config */\n definition: StaticValuesFilterDefinition<Q>;\n /** Current filter state, or undefined if no selection has been made */\n filterState: FilterState | undefined;\n /** Callback fired when the user changes the filter selection */\n onFilterStateChanged: (state: FilterState) => void;\n /** Search term for filtering displayed values within the filter input */\n searchQuery?: string;\n /** Whether the inline exclude row is currently open */\n excludeRowOpen?: boolean;\n /** Layout for `MULTI_SELECT` rendering. Forwarded to `MultiSelectInput`. */\n layout?: MultiSelectInputLayout;\n}\n\n/**\n * Hooks for EXACT_MATCH state management (used by LISTOGRAM and TEXT_TAGS).\n */\nfunction useExactMatchState(\n filterState: FilterState | undefined,\n onFilterStateChanged: (state: FilterState) => void,\n isExcluding: boolean,\n) {\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"EXACT_MATCH\"\n ? coerceToStringArray(filterState.values)\n : [],\n [filterState],\n );\n\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"EXACT_MATCH\",\n values: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\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 { selectedValues, handleClearAll, handleChange };\n}\n\n/**\n * Hooks for SELECT state management (used by SINGLE_SELECT and MULTI_SELECT).\n */\nfunction useSelectState(\n filterState: FilterState | undefined,\n onFilterStateChanged: (state: FilterState) => void,\n isExcluding: boolean,\n) {\n const selectedValue = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToString(filterState.selectedValues[0])\n : undefined,\n [filterState],\n );\n\n const selectedValues = useMemo(\n () =>\n filterState?.type === \"SELECT\"\n ? coerceToStringArray(filterState.selectedValues)\n : [],\n [filterState],\n );\n\n const handleClearAll = useCallback(() => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues: [],\n isExcluding,\n });\n }, [onFilterStateChanged, isExcluding]);\n\n const handleSingleChange = 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 const handleMultiChange = useCallback(\n (selectedValues: string[]) => {\n onFilterStateChanged({\n type: \"SELECT\",\n selectedValues,\n isExcluding,\n });\n },\n [onFilterStateChanged, isExcluding],\n );\n\n return {\n selectedValue,\n selectedValues,\n handleClearAll,\n handleSingleChange,\n handleMultiChange,\n };\n}\n\nfunction StaticValuesFilterInputInner<Q extends ObjectTypeDefinition>({\n definition,\n filterState,\n onFilterStateChanged,\n searchQuery,\n excludeRowOpen,\n layout,\n}: StaticValuesFilterInputProps<Q>): React.ReactElement {\n const aggregationValues: PropertyAggregationValue[] = useMemo(\n () => definition.values.map((value) => ({ value, count: 0 })),\n [definition.values],\n );\n\n const isExcluding = filterState?.isExcluding ?? false;\n\n const exactMatch = useExactMatchState(\n filterState,\n onFilterStateChanged,\n isExcluding,\n );\n const select = useSelectState(\n filterState,\n onFilterStateChanged,\n isExcluding,\n );\n\n switch (definition.filterComponent) {\n case \"LISTOGRAM\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={aggregationValues.length}\n onClearAll={exactMatch.handleClearAll}\n >\n <ListogramInput\n values={aggregationValues}\n maxCount={0}\n isLoading={false}\n error={null}\n selectedValues={exactMatch.selectedValues}\n onChange={exactMatch.handleChange}\n colorMap={definition.colorMap}\n displayMode={definition.listogramConfig?.displayMode}\n showCount={definition.showCount}\n isExcluding={isExcluding}\n maxVisibleItems={definition.listogramConfig?.maxVisibleItems ?? 5}\n searchQuery={searchQuery}\n renderValue={definition.renderValue}\n />\n </FilterInputExcludeRow>\n );\n\n case \"SINGLE_SELECT\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={aggregationValues.length}\n onClearAll={select.handleClearAll}\n >\n <SingleSelectInput\n values={aggregationValues}\n isLoading={false}\n error={null}\n selectedValue={select.selectedValue}\n onChange={select.handleSingleChange}\n showCounts={definition.showCount}\n ariaLabel={`Select ${definition.key}`}\n renderValue={definition.renderValue}\n />\n </FilterInputExcludeRow>\n );\n\n case \"MULTI_SELECT\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={aggregationValues.length}\n onClearAll={select.handleClearAll}\n >\n <MultiSelectInput\n values={aggregationValues}\n isLoading={false}\n error={null}\n selectedValues={select.selectedValues}\n onChange={select.handleMultiChange}\n showCounts={definition.showCount}\n ariaLabel={`Search ${definition.key} values`}\n renderValue={definition.renderValue}\n layout={layout}\n />\n </FilterInputExcludeRow>\n );\n\n case \"TEXT_TAGS\":\n return (\n <FilterInputExcludeRow\n excludeRowOpen={excludeRowOpen}\n filterState={filterState}\n onFilterStateChanged={onFilterStateChanged}\n totalValueCount={aggregationValues.length}\n onClearAll={exactMatch.handleClearAll}\n >\n <TextTagsInput\n suggestions={aggregationValues}\n isLoading={false}\n error={null}\n tags={exactMatch.selectedValues}\n onChange={exactMatch.handleChange}\n />\n </FilterInputExcludeRow>\n );\n\n default:\n return assertUnreachable(definition.filterComponent);\n }\n}\n\nexport const StaticValuesFilterInput: typeof StaticValuesFilterInputInner =\n memo(\n StaticValuesFilterInputInner,\n ) as typeof StaticValuesFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomRendererTypes.js","names":[],"sources":["CustomRendererTypes.ts"],"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 type { ReactNode } from \"react\";\nimport type { BaseFilterState } from \"../FilterListItemApi.js\";\n\n/**\n * State for custom filter\n */\nexport interface CustomFilterState<T = Record<string, unknown>>\n extends BaseFilterState\n{\n type: \"custom\";\n customState: T;\n}\n\n/**\n * Props passed to custom filter input renderer\n */\nexport interface CustomFilterInputRendererProps<\n Q extends ObjectTypeDefinition,\n State extends BaseFilterState,\n> {\n objectType: Q;\n objectSet?: ObjectSet<Q>;\n filterState: State;\n onFilterStateChanged: (newState: State) => void;\n}\n\n/**\n * Props passed to custom filter item renderer\n * Includes full item context in addition to input renderer props\n */\nexport interface CustomFilterItemRendererProps<\n Q extends ObjectTypeDefinition,\n State extends BaseFilterState,\n> extends CustomFilterInputRendererProps<Q, State> {\n label: string;\n onRemove?: () => void;\n}\n\n/**\n * Filter definition for custom filters\n * Provides full control over rendering and filter logic\n */\nexport interface CustomFilterDefinition<\n Q extends ObjectTypeDefinition,\n State extends BaseFilterState = CustomFilterState,\n> {\n type: \"CUSTOM\";\n /**\n * Optional unique identifier for stable keying across filter reorders.\n * If provided, takes precedence over `key` for state keying.\n */\n id?: string;\n /**\n * Unique key for this custom filter\n */\n key: string;\n label?: string;\n filterComponent: \"CUSTOM\";\n filterState: State;\n defaultFilterState?: State;\n /**\n * Render the input portion of the filter\n * Used when rendering within a filter item wrapper\n */\n renderInput?: (\n props: CustomFilterInputRendererProps<Q, State>,\n ) => ReactNode;\n /**\n * Render the complete filter item\n * Used when you need full control over the item appearance\n */\n renderItem?: (\n props: CustomFilterItemRendererProps<Q, State>,\n ) => ReactNode;\n /**\n * Convert filter state to a WhereClause for filtering\n * Required for the filter to affect the object set\n */\n toWhereClause: (state: State) => WhereClause<Q> | undefined;\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"CustomRendererTypes.js","names":[],"sources":["CustomRendererTypes.ts"],"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 type { ReactNode } from \"react\";\nimport type {\n BaseFilterState,\n FilterDefinitionControls,\n} from \"../FilterListItemApi.js\";\n\n/**\n * State for custom filter\n */\nexport interface CustomFilterState<T = Record<string, unknown>>\n extends BaseFilterState\n{\n type: \"custom\";\n customState: T;\n}\n\n/**\n * Props passed to custom filter input renderer\n */\nexport interface CustomFilterInputRendererProps<\n Q extends ObjectTypeDefinition,\n State extends BaseFilterState,\n> {\n objectType: Q;\n objectSet?: ObjectSet<Q>;\n filterState: State;\n onFilterStateChanged: (newState: State) => void;\n}\n\n/**\n * Props passed to custom filter item renderer\n * Includes full item context in addition to input renderer props\n */\nexport interface CustomFilterItemRendererProps<\n Q extends ObjectTypeDefinition,\n State extends BaseFilterState,\n> extends CustomFilterInputRendererProps<Q, State> {\n label: string;\n onRemove?: () => void;\n}\n\n/**\n * Filter definition for custom filters\n * Provides full control over rendering and filter logic\n */\nexport interface CustomFilterDefinition<\n Q extends ObjectTypeDefinition,\n State extends BaseFilterState = CustomFilterState,\n> extends FilterDefinitionControls {\n type: \"CUSTOM\";\n /**\n * Optional unique identifier for stable keying across filter reorders.\n * If provided, takes precedence over `key` for state keying.\n */\n id?: string;\n /**\n * Unique key for this custom filter\n */\n key: string;\n label?: string;\n filterComponent: \"CUSTOM\";\n filterState: State;\n defaultFilterState?: State;\n /**\n * Render the input portion of the filter\n * Used when rendering within a filter item wrapper\n */\n renderInput?: (\n props: CustomFilterInputRendererProps<Q, State>,\n ) => ReactNode;\n /**\n * Render the complete filter item\n * Used when you need full control over the item appearance\n */\n renderItem?: (\n props: CustomFilterItemRendererProps<Q, State>,\n ) => ReactNode;\n /**\n * Convert filter state to a WhereClause for filtering\n * Required for the filter to affect the object set\n */\n toWhereClause: (state: State) => WhereClause<Q> | undefined;\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"KeywordSearchTypes.js","names":[],"sources":["KeywordSearchTypes.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, PropertyKeys } from \"@osdk/api\";\nimport type { BaseFilterState } from \"../FilterListItemApi.js\";\n\n/**\n * Keys of string properties on an object type\n */\nexport type StringPropertyKeys<Q extends ObjectTypeDefinition> =\n PropertyKeys.Filtered<Q, \"string\">;\n\n/**\n * State for keyword search filter\n */\nexport interface KeywordSearchFilterState extends BaseFilterState {\n type: \"keywordSearch\";\n searchTerm: string;\n /**\n * How multiple terms are combined\n * - \"AND\": All terms must match\n * - \"OR\": Any term must match\n */\n operator: \"AND\" | \"OR\";\n}\n\n/**\n * Filter definition for keyword search across string properties\n */\nexport interface KeywordSearchFilterDefinition<\n Q extends ObjectTypeDefinition,\n K extends StringPropertyKeys<Q> = StringPropertyKeys<Q>,\n> {\n type: \"KEYWORD_SEARCH\";\n /**\n * Optional unique identifier for stable keying across filter reorders.\n */\n id?: string;\n /**\n * Properties to search within\n * - \"all\": Search all string properties\n * - K[]: Search specific string properties\n */\n properties: \"all\" | K[];\n label?: string;\n /**\n * Controlled state for the filter.\n * When provided, the filter becomes controlled and changes should be\n * handled via onFilterStateChanged callback.\n */\n filterState?: KeywordSearchFilterState;\n /**\n * Default state for uncontrolled mode.\n * Used when filterState is not provided.\n */\n defaultFilterState?: KeywordSearchFilterState;\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"KeywordSearchTypes.js","names":[],"sources":["KeywordSearchTypes.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, PropertyKeys } from \"@osdk/api\";\nimport type {\n BaseFilterState,\n FilterDefinitionControls,\n} from \"../FilterListItemApi.js\";\n\n/**\n * Keys of string properties on an object type\n */\nexport type StringPropertyKeys<Q extends ObjectTypeDefinition> =\n PropertyKeys.Filtered<Q, \"string\">;\n\n/**\n * State for keyword search filter\n */\nexport interface KeywordSearchFilterState extends BaseFilterState {\n type: \"keywordSearch\";\n searchTerm: string;\n /**\n * How multiple terms are combined\n * - \"AND\": All terms must match\n * - \"OR\": Any term must match\n */\n operator: \"AND\" | \"OR\";\n}\n\n/**\n * Filter definition for keyword search across string properties\n */\nexport interface KeywordSearchFilterDefinition<\n Q extends ObjectTypeDefinition,\n K extends StringPropertyKeys<Q> = StringPropertyKeys<Q>,\n> extends FilterDefinitionControls {\n type: \"KEYWORD_SEARCH\";\n /**\n * Optional unique identifier for stable keying across filter reorders.\n */\n id?: string;\n /**\n * Properties to search within\n * - \"all\": Search all string properties\n * - K[]: Search specific string properties\n */\n properties: \"all\" | K[];\n label?: string;\n /**\n * Controlled state for the filter.\n * When provided, the filter becomes controlled and changes should be\n * handled via onFilterStateChanged callback.\n */\n filterState?: KeywordSearchFilterState;\n /**\n * Default state for uncontrolled mode.\n * Used when filterState is not provided.\n */\n defaultFilterState?: KeywordSearchFilterState;\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,2 +1,43 @@
1
- export {};
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
+ /**
18
+ * Runtime representation of an active linked-property filter. Each entry
19
+ * binds a `linkName` to its `reverseLinkName` and an `innerWhere` typed
20
+ * against the linked object type, so `narrowObjectSet` can pivot type-safely.
21
+ */
22
+
23
+ /** Shared empty default for `LinkedFilter` arrays — avoids new-array-per-render. */
24
+ export const EMPTY_LINKED_FILTERS = [];
25
+
26
+ /**
27
+ * State for "has link" filter
28
+ */
29
+
30
+ /**
31
+ * State for linked property filter
32
+ * Wraps the filter state of the linked property
33
+ */
34
+
35
+ /**
36
+ * Filter definition for "Has Link" filter
37
+ * Filters objects based on whether they have any linked objects of the specified type
38
+ */
39
+
40
+ /**
41
+ * Filter definition for filtering on a property of linked objects
42
+ */
2
43
  //# sourceMappingURL=LinkedFilterTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkedFilterTypes.js","names":[],"sources":["LinkedFilterTypes.ts"],"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 LinkedType,\n LinkNames,\n ObjectTypeDefinition,\n PropertyKeys,\n} from \"@osdk/api\";\nimport type {\n BaseFilterState,\n FilterState,\n FilterStateByComponentType,\n PropertyTypeFromKey,\n ValidComponentsForPropertyType,\n} from \"../FilterListItemApi.js\";\n\n/**\n * State for \"has link\" filter\n */\nexport interface HasLinkFilterState extends BaseFilterState {\n type: \"hasLink\";\n hasLink: boolean;\n}\n\n/**\n * State for linked property filter\n * Wraps the filter state of the linked property\n */\nexport interface LinkedPropertyFilterState<S extends FilterState = FilterState>\n extends BaseFilterState\n{\n type: \"linkedProperty\";\n linkedFilterState: S;\n}\n\n/**\n * Filter definition for \"Has Link\" filter\n * Filters objects based on whether they have any linked objects of the specified type\n */\nexport interface HasLinkFilterDefinition<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q> = LinkNames<Q>,\n> {\n type: \"HAS_LINK\";\n /**\n * Optional unique identifier for stable keying across filter reorders.\n */\n id?: string;\n linkName: L;\n label?: string;\n filterState: HasLinkFilterState;\n defaultFilterState?: HasLinkFilterState;\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n\n/**\n * Filter definition for filtering on a property of linked objects\n */\nexport interface LinkedPropertyFilterDefinition<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q>,\n LinkedQ extends ObjectTypeDefinition = LinkedType<Q, L>,\n LinkedK extends PropertyKeys<LinkedQ> = PropertyKeys<LinkedQ>,\n LinkedC extends ValidComponentsForPropertyType<\n PropertyTypeFromKey<LinkedQ, LinkedK>\n > = ValidComponentsForPropertyType<PropertyTypeFromKey<LinkedQ, LinkedK>>,\n> {\n type: \"LINKED_PROPERTY\";\n /**\n * Optional unique identifier for stable keying across filter reorders.\n */\n id?: string;\n linkName: L;\n linkedPropertyKey: LinkedK;\n linkedFilterComponent: LinkedC;\n linkedFilterState: FilterStateByComponentType[LinkedC];\n defaultLinkedFilterState?: FilterStateByComponentType[LinkedC];\n filterState: LinkedPropertyFilterState<FilterStateByComponentType[LinkedC]>;\n label?: string;\n\n /**\n * Show aggregation counts next to filter option values.\n * Applies to LISTOGRAM, SINGLE_SELECT, and MULTI_SELECT linked components.\n * @default true for LISTOGRAM and MULTI_SELECT, false for SINGLE_SELECT\n */\n showCount?: boolean;\n\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"LinkedFilterTypes.js","names":["EMPTY_LINKED_FILTERS"],"sources":["LinkedFilterTypes.ts"],"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 LinkedType,\n LinkNames,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport type { ReactNode } from \"react\";\nimport type {\n BaseFilterState,\n FilterDefinitionControls,\n FilterState,\n FilterStateByComponentType,\n PropertyTypeFromKey,\n ValidComponentsForPropertyType,\n} from \"../FilterListItemApi.js\";\n\n/**\n * Runtime representation of an active linked-property filter. Each entry\n * binds a `linkName` to its `reverseLinkName` and an `innerWhere` typed\n * against the linked object type, so `narrowObjectSet` can pivot type-safely.\n */\nexport type LinkedFilter<Q extends ObjectTypeDefinition> = {\n [L in LinkNames<Q>]: {\n linkName: L;\n reverseLinkName: LinkNames<LinkedType<Q, L>>;\n innerWhere: WhereClause<LinkedType<Q, L>>;\n };\n}[LinkNames<Q>];\n\n/** Shared empty default for `LinkedFilter` arrays — avoids new-array-per-render. */\nexport const EMPTY_LINKED_FILTERS: readonly never[] = [];\n\n/**\n * State for \"has link\" filter\n */\nexport interface HasLinkFilterState extends BaseFilterState {\n type: \"hasLink\";\n hasLink: boolean;\n}\n\n/**\n * State for linked property filter\n * Wraps the filter state of the linked property\n */\nexport interface LinkedPropertyFilterState<S extends FilterState = FilterState>\n extends BaseFilterState\n{\n type: \"linkedProperty\";\n linkedFilterState: S;\n}\n\n/**\n * Filter definition for \"Has Link\" filter\n * Filters objects based on whether they have any linked objects of the specified type\n */\nexport interface HasLinkFilterDefinition<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q> = LinkNames<Q>,\n> extends FilterDefinitionControls {\n type: \"HAS_LINK\";\n /**\n * Optional unique identifier for stable keying across filter reorders.\n */\n id?: string;\n linkName: L;\n label?: string;\n filterState: HasLinkFilterState;\n defaultFilterState?: HasLinkFilterState;\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n\n/**\n * Filter definition for filtering on a property of linked objects\n */\nexport interface LinkedPropertyFilterDefinition<\n Q extends ObjectTypeDefinition,\n L extends LinkNames<Q>,\n LinkedQ extends ObjectTypeDefinition = LinkedType<Q, L>,\n LinkedK extends PropertyKeys<LinkedQ> = PropertyKeys<LinkedQ>,\n LinkedC extends ValidComponentsForPropertyType<\n PropertyTypeFromKey<LinkedQ, LinkedK>\n > = ValidComponentsForPropertyType<PropertyTypeFromKey<LinkedQ, LinkedK>>,\n> extends FilterDefinitionControls {\n type: \"LINKED_PROPERTY\";\n /**\n * Optional unique identifier for stable keying across filter reorders.\n */\n id?: string;\n linkName: L;\n /**\n * Set this to make the filter narrow `objectSet`; the result is emitted\n * via `onEffectiveObjectSet`. The value names the link on the linked\n * object type that points back to `Q` (the inverse of `linkName`).\n *\n * Leave unset to keep the filter UI-only. It still renders and fires\n * `onFilterStateChanged`, but FilterList won't narrow on it.\n */\n reverseLinkName?: LinkNames<LinkedQ>;\n linkedPropertyKey: LinkedK;\n linkedFilterComponent: LinkedC;\n linkedFilterState: FilterStateByComponentType[LinkedC];\n defaultLinkedFilterState?: FilterStateByComponentType[LinkedC];\n filterState: LinkedPropertyFilterState<FilterStateByComponentType[LinkedC]>;\n label?: string;\n\n /**\n * Show aggregation counts next to filter option values.\n * Applies to LISTOGRAM, SINGLE_SELECT, and MULTI_SELECT linked components.\n * @default true for LISTOGRAM and MULTI_SELECT, false for SINGLE_SELECT\n */\n showCount?: boolean;\n\n /**\n * Custom display function for filter values.\n * Replaces the default string display in dropdown items, chips, and listogram rows.\n * When the function returns a string, that string is also used for search matching\n * within filter dropdowns. When it returns a non-string `ReactNode`, search falls\n * back to the raw value.\n */\n renderValue?: (value: string) => ReactNode;\n\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA;AACA;AACA;AACA;AACA;;AASA;AACA,OAAO,MAAMA,oBAAsC,GAAG,EAAE;;AAExD;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;;AAsBA;AACA;AACA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"StaticValuesTypes.js","names":[],"sources":["StaticValuesTypes.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport type { ReactNode } from \"react\";\nimport type {\n FilterState,\n FilterStateByComponentType,\n} from \"../FilterListItemApi.js\";\n\n/**\n * Component types that support static values.\n * These components can display a fixed list of string values without OSDK aggregation.\n */\nexport type StaticValuesComponentType =\n | \"LISTOGRAM\"\n | \"SINGLE_SELECT\"\n | \"MULTI_SELECT\"\n | \"TEXT_TAGS\";\n\n/**\n * Filter definition for static (non-OSDK) value lists.\n * Renders built-in filter components with user-provided values instead of\n * fetching values via OSDK aggregation queries.\n */\nexport interface StaticValuesFilterDefinition<\n Q extends ObjectTypeDefinition,\n C extends StaticValuesComponentType = StaticValuesComponentType,\n> {\n type: \"STATIC_VALUES\";\n\n /**\n * Optional unique identifier for stable keying across filter reorders.\n * If provided, takes precedence over `key` for state keying.\n */\n id?: string;\n\n /**\n * Key used for state management and auto WHERE clause generation.\n * When `toWhereClause` is not provided, this is used as the property key\n * in the generated WHERE clause.\n */\n key: string;\n\n /**\n * Display label for the filter\n */\n label?: string;\n\n /**\n * The filter component type to render\n */\n filterComponent: C;\n\n /**\n * The current state of the filter\n */\n filterState: FilterStateByComponentType[C];\n\n /**\n * The static list of values to display in the filter component.\n * These are rendered directly without OSDK aggregation.\n */\n values: string[];\n\n /**\n * Custom display function for filter values.\n * Replaces the default string display in dropdown items, chips, and listogram rows.\n * When the function returns a string, that string is also used for search matching\n * within filter dropdowns. When it returns a non-string `ReactNode`, search falls\n * back to the raw value.\n */\n renderValue?: (value: string) => ReactNode;\n\n /**\n * Show aggregation counts next to filter option values.\n * Applies to LISTOGRAM, SINGLE_SELECT, and MULTI_SELECT components.\n * @default true for LISTOGRAM and MULTI_SELECT, false for SINGLE_SELECT\n */\n showCount?: boolean;\n\n /**\n * Maps filter values to colors for visual differentiation.\n * Used by LISTOGRAM (per-row bar colors).\n */\n colorMap?: Record<string, string>;\n\n /**\n * Configuration for LISTOGRAM display mode.\n * Only applies when filterComponent is \"LISTOGRAM\".\n */\n listogramConfig?: {\n displayMode?: \"full\" | \"count\" | \"minimal\";\n /**\n * Number of items shown before \"View all\" link appears\n * @default 5\n */\n maxVisibleItems?: number;\n };\n\n /**\n * Optional custom WHERE clause generator.\n * When provided, this is used instead of auto-generating a WHERE clause\n * from the `key` and filter state.\n */\n toWhereClause?: (state: FilterState) => WhereClause<Q> | undefined;\n\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"StaticValuesTypes.js","names":[],"sources":["StaticValuesTypes.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, WhereClause } from \"@osdk/api\";\nimport type { ReactNode } from \"react\";\nimport type {\n FilterDefinitionControls,\n FilterState,\n FilterStateByComponentType,\n} from \"../FilterListItemApi.js\";\n\n/**\n * Component types that support static values.\n * These components can display a fixed list of string values without OSDK aggregation.\n */\nexport type StaticValuesComponentType =\n | \"LISTOGRAM\"\n | \"SINGLE_SELECT\"\n | \"MULTI_SELECT\"\n | \"TEXT_TAGS\";\n\n/**\n * Filter definition for static (non-OSDK) value lists.\n * Renders built-in filter components with user-provided values instead of\n * fetching values via OSDK aggregation queries.\n */\nexport interface StaticValuesFilterDefinition<\n Q extends ObjectTypeDefinition,\n C extends StaticValuesComponentType = StaticValuesComponentType,\n> extends FilterDefinitionControls {\n type: \"STATIC_VALUES\";\n\n /**\n * Optional unique identifier for stable keying across filter reorders.\n * If provided, takes precedence over `key` for state keying.\n */\n id?: string;\n\n /**\n * Key used for state management and auto WHERE clause generation.\n * When `toWhereClause` is not provided, this is used as the property key\n * in the generated WHERE clause.\n */\n key: string;\n\n /**\n * Display label for the filter\n */\n label?: string;\n\n /**\n * The filter component type to render\n */\n filterComponent: C;\n\n /**\n * The current state of the filter\n */\n filterState: FilterStateByComponentType[C];\n\n /**\n * The static list of values to display in the filter component.\n * These are rendered directly without OSDK aggregation.\n */\n values: string[];\n\n /**\n * Custom display function for filter values.\n * Replaces the default string display in dropdown items, chips, and listogram rows.\n * When the function returns a string, that string is also used for search matching\n * within filter dropdowns. When it returns a non-string `ReactNode`, search falls\n * back to the raw value.\n */\n renderValue?: (value: string) => ReactNode;\n\n /**\n * Show aggregation counts next to filter option values.\n * Applies to LISTOGRAM, SINGLE_SELECT, and MULTI_SELECT components.\n * @default true for LISTOGRAM and MULTI_SELECT, false for SINGLE_SELECT\n */\n showCount?: boolean;\n\n /**\n * Maps filter values to colors for visual differentiation.\n * Used by LISTOGRAM (per-row bar colors).\n */\n colorMap?: Record<string, string>;\n\n /**\n * Configuration for LISTOGRAM display mode.\n * Only applies when filterComponent is \"LISTOGRAM\".\n */\n listogramConfig?: {\n displayMode?: \"full\" | \"count\" | \"minimal\";\n /**\n * Number of items shown before \"View all\" link appears\n * @default 5\n */\n maxVisibleItems?: number;\n };\n\n /**\n * Optional custom WHERE clause generator.\n * When provided, this is used instead of auto-generating a WHERE clause\n * from the `key` and filter state.\n */\n toWhereClause?: (state: FilterState) => WhereClause<Q> | undefined;\n\n /**\n * Controls whether this filter is rendered.\n * When false, the filter is hidden but its state is preserved.\n * @default true\n */\n isVisible?: boolean;\n}\n"],"mappings":"","ignoreList":[]}