@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
@@ -6,7 +6,7 @@ var chunk4KC5U44T_cjs = require('./chunk-4KC5U44T.cjs');
6
6
  var chunkJBRNNWYC_cjs = require('./chunk-JBRNNWYC.cjs');
7
7
  var chunk7LXS66DW_cjs = require('./chunk-7LXS66DW.cjs');
8
8
  var chunkUCTQICPR_cjs = require('./chunk-UCTQICPR.cjs');
9
- var chunkBXCHISUQ_cjs = require('./chunk-BXCHISUQ.cjs');
9
+ var chunkNOONKE5X_cjs = require('./chunk-NOONKE5X.cjs');
10
10
  var button = require('@base-ui/react/button');
11
11
  var classnames3 = require('classnames');
12
12
  var React13 = require('react');
@@ -133,6 +133,12 @@ var ErrorBoundary = class extends React13.Component {
133
133
  };
134
134
 
135
135
  // src/filter-list/utils/filterValues.ts
136
+ function getEffectiveFilterState(state) {
137
+ if (state?.type === "linkedProperty") {
138
+ return state.linkedFilterState;
139
+ }
140
+ return state;
141
+ }
136
142
  function supportsSearch(state) {
137
143
  if (!state) {
138
144
  return false;
@@ -207,12 +213,47 @@ function dedupeEmptyAggregationRows(values) {
207
213
  }
208
214
  function filterValuesBySearch(values, searchValue, getValue) {
209
215
  const trimmed = searchValue.trim();
210
- if (!trimmed) return values;
216
+ if (!trimmed) {
217
+ return values;
218
+ }
211
219
  const lowerSearch = trimmed.toLowerCase();
212
220
  return values.filter((v) => getValue(v).toLowerCase().includes(lowerSearch));
213
221
  }
222
+ function toggleIsExcluding(state) {
223
+ if (state.type === "linkedProperty") {
224
+ const inner = state.linkedFilterState;
225
+ return {
226
+ type: "linkedProperty",
227
+ linkedFilterState: {
228
+ ...inner,
229
+ isExcluding: !inner.isExcluding
230
+ }
231
+ };
232
+ }
233
+ if (!supportsExcluding(state)) {
234
+ return void 0;
235
+ }
236
+ return {
237
+ ...state,
238
+ isExcluding: !state.isExcluding
239
+ };
240
+ }
241
+ function getSelectedCount(state) {
242
+ if (!state) {
243
+ return 0;
244
+ }
245
+ if (state.type === "EXACT_MATCH") {
246
+ return state.values.length;
247
+ }
248
+ if (state.type === "SELECT") {
249
+ return state.selectedValues.length;
250
+ }
251
+ return 0;
252
+ }
214
253
  function filterHasActiveState(state) {
215
- if (!state) return false;
254
+ if (!state) {
255
+ return false;
256
+ }
216
257
  switch (state.type) {
217
258
  case "SELECT":
218
259
  return state.selectedValues.length > 0;
@@ -288,37 +329,6 @@ function _extends() {
288
329
  return n;
289
330
  }, _extends.apply(null, arguments);
290
331
  }
291
- function hasActiveSelection(filterState) {
292
- if (filterState == null) {
293
- return false;
294
- }
295
- switch (filterState.type) {
296
- case "EXACT_MATCH":
297
- return filterState.values.length > 0;
298
- case "SELECT":
299
- return filterState.selectedValues.length > 0;
300
- case "CONTAINS_TEXT":
301
- return filterState.value != null && filterState.value.length > 0;
302
- case "NUMBER_RANGE":
303
- return filterState.minValue != null || filterState.maxValue != null;
304
- case "DATE_RANGE":
305
- return filterState.minValue != null || filterState.maxValue != null;
306
- case "TIMELINE":
307
- return filterState.startDate != null || filterState.endDate != null;
308
- case "TOGGLE":
309
- return filterState.enabled;
310
- case "keywordSearch":
311
- return filterState.searchTerm.length > 0;
312
- case "hasLink":
313
- return filterState.hasLink;
314
- case "linkedProperty":
315
- return hasActiveSelection(filterState.linkedFilterState);
316
- case "custom":
317
- return true;
318
- default:
319
- return false;
320
- }
321
- }
322
332
  function FilterListItemInner({
323
333
  definition,
324
334
  filterKey,
@@ -327,6 +337,7 @@ function FilterListItemInner({
327
337
  onFilterStateChanged,
328
338
  onFilterRemoved,
329
339
  renderInput,
340
+ searchField,
330
341
  dragHandleAttributes,
331
342
  dragHandleListeners,
332
343
  className,
@@ -370,16 +381,18 @@ function FilterListItemInner({
370
381
  preventScroll: true
371
382
  });
372
383
  }, []);
373
- const showExcludeDropdown = supportsExcluding(filterState);
374
- const showSearch = supportsSearch(filterState);
384
+ const effectiveState = React13.useMemo(() => getEffectiveFilterState(filterState), [filterState]);
385
+ const showExcludeDropdown = supportsExcluding(effectiveState);
386
+ const showSearch = supportsSearch(effectiveState) && searchField !== false;
375
387
  const hasOverflowActions = showExcludeDropdown;
388
+ const hasSelection = filterHasActiveState(filterState);
376
389
  const searchOpen = searchState.type === "open";
377
390
  const searchQuery = searchState.type === "open" ? searchState.query : "";
378
391
  const searchQueryForInput = searchState.type === "open" ? searchState.query : void 0;
379
392
  return /* @__PURE__ */ React13__default.default.createElement("div", {
380
393
  className: classnames3__default.default(FilterListItem_default.filterItem, className),
381
394
  style,
382
- "data-has-selection": hasActiveSelection(filterState) || void 0
395
+ "data-has-selection": hasSelection || void 0
383
396
  }, /* @__PURE__ */ React13__default.default.createElement("div", {
384
397
  className: FilterListItem_default.itemHeader
385
398
  }, dragHandleAttributes && /* @__PURE__ */ React13__default.default.createElement(button.Button, _extends({
@@ -438,7 +451,8 @@ function SortableFilterListItemInner({
438
451
  filterState,
439
452
  onFilterStateChanged,
440
453
  onFilterRemoved,
441
- renderInput
454
+ renderInput,
455
+ searchField
442
456
  }) {
443
457
  const {
444
458
  attributes,
@@ -466,6 +480,7 @@ function SortableFilterListItemInner({
466
480
  onFilterStateChanged,
467
481
  onFilterRemoved,
468
482
  renderInput,
483
+ searchField,
469
484
  dragHandleAttributes: attributes,
470
485
  dragHandleListeners: listeners
471
486
  }));
@@ -538,46 +553,45 @@ function FilterListContent({
538
553
  const handleDragCancel = React13.useCallback(() => {
539
554
  setActiveId(null);
540
555
  }, []);
541
- const announcements = React13.useMemo(() => ({
542
- onDragStart({
543
- active
544
- }) {
545
- const idx = sortableIds.indexOf(String(active.id));
546
- const def = idx >= 0 && filterDefinitions ? filterDefinitions[idx] : void 0;
547
- const label = def ? getFilterLabel2(def) : "filter";
548
- return `Picked up ${label} filter`;
549
- },
550
- onDragOver({
551
- over
552
- }) {
553
- if (!over) {
554
- return "Not over a droppable area";
555
- }
556
- const overIdx = sortableIds.indexOf(String(over.id));
557
- return `Moved to position ${overIdx + 1} of ${sortableIds.length}`;
558
- },
559
- onDragEnd({
560
- active,
561
- over
562
- }) {
563
- const idx = sortableIds.indexOf(String(active.id));
564
- const def = idx >= 0 && filterDefinitions ? filterDefinitions[idx] : void 0;
565
- const label = def ? getFilterLabel2(def) : "filter";
566
- if (over && active.id !== over.id) {
556
+ const announcements = React13.useMemo(() => {
557
+ const labelForId = (id) => {
558
+ const idx = sortableIds.indexOf(String(id));
559
+ const def = idx >= 0 ? filterDefinitions?.[idx] : void 0;
560
+ return def ? getFilterLabel2(def) : "filter";
561
+ };
562
+ return {
563
+ onDragStart({
564
+ active
565
+ }) {
566
+ return `Picked up ${labelForId(active.id)} filter`;
567
+ },
568
+ onDragOver({
569
+ over
570
+ }) {
571
+ if (!over) {
572
+ return "Not over a droppable area";
573
+ }
567
574
  const overIdx = sortableIds.indexOf(String(over.id));
568
- return `Dropped ${label} filter at position ${overIdx + 1}`;
575
+ return `Moved to position ${overIdx + 1} of ${sortableIds.length}`;
576
+ },
577
+ onDragEnd({
578
+ active,
579
+ over
580
+ }) {
581
+ const label = labelForId(active.id);
582
+ if (over && active.id !== over.id) {
583
+ const overIdx = sortableIds.indexOf(String(over.id));
584
+ return `Dropped ${label} filter at position ${overIdx + 1}`;
585
+ }
586
+ return `Dropped ${label} filter back in its original position`;
587
+ },
588
+ onDragCancel({
589
+ active
590
+ }) {
591
+ return `Cancelled dragging ${labelForId(active.id)} filter`;
569
592
  }
570
- return `Dropped ${label} filter back in its original position`;
571
- },
572
- onDragCancel({
573
- active
574
- }) {
575
- const idx = sortableIds.indexOf(String(active.id));
576
- const def = idx >= 0 && filterDefinitions ? filterDefinitions[idx] : void 0;
577
- const label = def ? getFilterLabel2(def) : "filter";
578
- return `Cancelled dragging ${label} filter`;
579
- }
580
- }), [filterDefinitions, sortableIds, getFilterLabel2]);
593
+ };
594
+ }, [filterDefinitions, sortableIds, getFilterLabel2]);
581
595
  const accessibility = React13.useMemo(() => ({
582
596
  announcements
583
597
  }), [announcements]);
@@ -617,7 +631,8 @@ function FilterListContent({
617
631
  filterState: state,
618
632
  onFilterStateChanged,
619
633
  onFilterRemoved,
620
- renderInput
634
+ renderInput,
635
+ searchField: definition.searchField
621
636
  });
622
637
  })), /* @__PURE__ */ React13__default.default.createElement(core.DragOverlay, {
623
638
  dropAnimation: null,
@@ -630,6 +645,7 @@ function FilterListContent({
630
645
  onFilterStateChanged,
631
646
  onFilterRemoved,
632
647
  renderInput,
648
+ searchField: activeDefinition.searchField,
633
649
  dragHandleAttributes: DRAG_OVERLAY_HANDLE_ATTRIBUTES
634
650
  }))));
635
651
  }
@@ -647,7 +663,8 @@ function FilterListContent({
647
663
  filterState: state,
648
664
  onFilterStateChanged,
649
665
  onFilterRemoved,
650
- renderInput
666
+ renderInput,
667
+ searchField: definition.searchField
651
668
  });
652
669
  }));
653
670
  }
@@ -1936,10 +1953,12 @@ function ListogramInputInner({
1936
1953
  const percentage = maxCount > 0 ? count / maxCount * 100 : 0;
1937
1954
  const perRowColor = colorMap?.[value];
1938
1955
  const isEmpty = isEmptyValue(value);
1956
+ const isFilteredOut = count === 0 && !selectedSet.has(value);
1939
1957
  return /* @__PURE__ */ React13__default.default.createElement(button.Button, {
1940
1958
  key: value,
1941
1959
  className: ListogramInput_default.row,
1942
1960
  "data-empty": isEmpty || void 0,
1961
+ "data-filtered-out": isFilteredOut || void 0,
1943
1962
  onClick: () => toggleValue(value),
1944
1963
  "aria-pressed": selectedSet.has(value),
1945
1964
  style: perRowColor || percentage > 0 ? {
@@ -2027,7 +2046,8 @@ function MultiDateInputInner({
2027
2046
  min: minDate,
2028
2047
  max: maxDate,
2029
2048
  ariaLabel: "Add date",
2030
- modal: false
2049
+ modal: false,
2050
+ formatDate
2031
2051
  })));
2032
2052
  }
2033
2053
  var MultiDateInput = /* @__PURE__ */ React13.memo(MultiDateInputInner);
@@ -2122,18 +2142,22 @@ function MultiSelectInputInner({
2122
2142
  value,
2123
2143
  count
2124
2144
  }) => [value, count])), [stableValues]);
2145
+ const selectedSet = React13.useMemo(() => new Set(selectedValues), [selectedValues]);
2125
2146
  const comboboxFilter = React13.useMemo(() => renderValue ? createRenderValueFilter(renderValue) : void 0, [renderValue]);
2126
2147
  const renderItem = React13.useCallback((value) => {
2127
2148
  const isEmpty = isEmptyValue(value);
2149
+ const count = countByValue.get(value) ?? 0;
2150
+ const isFilteredOut = count === 0 && !selectedSet.has(value);
2128
2151
  return /* @__PURE__ */ React13__default.default.createElement(chunk4KC5U44T_cjs.Combobox.Item, {
2129
2152
  key: value,
2130
- value
2153
+ value,
2154
+ className: isFilteredOut ? MultiSelectInput_default.filteredOutItem : void 0
2131
2155
  }, /* @__PURE__ */ React13__default.default.createElement(chunk4KC5U44T_cjs.Combobox.ItemIndicator, null), /* @__PURE__ */ React13__default.default.createElement("span", {
2132
2156
  className: MultiSelectInput_default.itemLabel
2133
2157
  }, isEmpty ? /* @__PURE__ */ React13__default.default.createElement(NoValueLabel, null) : renderValue ? renderValue(value) : value), showCounts && /* @__PURE__ */ React13__default.default.createElement("span", {
2134
2158
  className: MultiSelectInput_default.itemCount
2135
- }, "(", (countByValue.get(value) ?? 0).toLocaleString(), ")"));
2136
- }, [countByValue, showCounts, renderValue]);
2159
+ }, "(", count.toLocaleString(), ")"));
2160
+ }, [countByValue, selectedSet, showCounts, renderValue]);
2137
2161
  const renderChips = React13.useCallback((selectedItems) => /* @__PURE__ */ React13__default.default.createElement(React13__default.default.Fragment, null, selectedItems.map((value) => {
2138
2162
  const isEmpty = isEmptyValue(value);
2139
2163
  return /* @__PURE__ */ React13__default.default.createElement(chunk4KC5U44T_cjs.Combobox.Chip, {
@@ -2265,7 +2289,8 @@ function SingleDateInputInner({
2265
2289
  minDate,
2266
2290
  maxDate,
2267
2291
  placeholder,
2268
- showClearButton = true
2292
+ showClearButton = true,
2293
+ formatDate
2269
2294
  }) {
2270
2295
  const handleClear = React13.useCallback(() => {
2271
2296
  onChange(void 0);
@@ -2285,7 +2310,8 @@ function SingleDateInputInner({
2285
2310
  max: maxDate,
2286
2311
  placeholder,
2287
2312
  ariaLabel: "Select date",
2288
- modal: false
2313
+ modal: false,
2314
+ formatDate
2289
2315
  }), showClearButton && selectedDate !== void 0 && /* @__PURE__ */ React13__default.default.createElement(button.Button, {
2290
2316
  className: SingleDateInput_default.clearButton,
2291
2317
  onClick: handleClear,
@@ -2585,13 +2611,13 @@ function usePropertyAggregation(objectType, propertyKey, objectSet, options) {
2585
2611
  const raw = item.$group[propertyKey];
2586
2612
  existingValues.add(raw == null ? "" : String(raw));
2587
2613
  }
2588
- const ghostEntries = activeValues.flatMap((v) => existingValues.has(v) ? [] : [{
2614
+ const filteredOutEntries = activeValues.flatMap((v) => existingValues.has(v) ? [] : [{
2589
2615
  $group: {
2590
2616
  [propertyKey]: v
2591
2617
  },
2592
2618
  $count: 0
2593
2619
  }]);
2594
- for (const item of [...dataArray, ...ghostEntries]) {
2620
+ for (const item of [...dataArray, ...filteredOutEntries]) {
2595
2621
  const rawValue = item.$group[propertyKey];
2596
2622
  const count = item.$count ?? 0;
2597
2623
  if (rawValue == null) {
@@ -2634,6 +2660,41 @@ function usePropertyAggregation(objectType, propertyKey, objectSet, options) {
2634
2660
  };
2635
2661
  }
2636
2662
 
2663
+ // src/filter-list/hooks/useDualScopeAggregation.ts
2664
+ var EMPTY_VALUES = [];
2665
+ function useDualScopeAggregation(objectType, propertyKey, scopedObjectSet, emptySourceObjectSet, options = {}) {
2666
+ const {
2667
+ sortBy,
2668
+ selectedValues = EMPTY_VALUES,
2669
+ limit
2670
+ } = options;
2671
+ const isDualScope = emptySourceObjectSet !== void 0;
2672
+ const emptySourceAggregation = usePropertyAggregation(objectType, propertyKey, emptySourceObjectSet);
2673
+ const activeValues = React13.useMemo(() => {
2674
+ const merged = new Set(selectedValues);
2675
+ if (isDualScope && emptySourceAggregation.error == null) {
2676
+ for (const d of emptySourceAggregation.data) {
2677
+ merged.add(d.value);
2678
+ }
2679
+ }
2680
+ return merged.size === 0 ? void 0 : Array.from(merged);
2681
+ }, [isDualScope, emptySourceAggregation.data, emptySourceAggregation.error, selectedValues]);
2682
+ const primary = usePropertyAggregation(objectType, propertyKey, scopedObjectSet, {
2683
+ sortBy,
2684
+ activeValues,
2685
+ limit
2686
+ });
2687
+ return {
2688
+ data: primary.data,
2689
+ maxCount: primary.maxCount,
2690
+ isLoading: primary.isLoading || isDualScope && emptySourceAggregation.isLoading,
2691
+ error: primary.error
2692
+ };
2693
+ }
2694
+
2695
+ // src/filter-list/types/LinkedFilterTypes.ts
2696
+ var EMPTY_LINKED_FILTERS = [];
2697
+
2637
2698
  // src/filter-list/utils/aggregationHelpers.ts
2638
2699
  function createGroupByAggregateOptions(propertyKey) {
2639
2700
  return {
@@ -2670,18 +2731,54 @@ function coerceToStringArray(values) {
2670
2731
  return values.map((v) => String(v));
2671
2732
  }
2672
2733
 
2734
+ // src/filter-list/utils/narrowObjectSet.ts
2735
+ function narrowObjectSet(objectSet, whereClause, linkedFilters) {
2736
+ let narrowed = Object.keys(whereClause).length === 0 ? objectSet : objectSet.where(whereClause);
2737
+ for (const filter of linkedFilters) {
2738
+ narrowed = narrowed.intersect(applyLinkedFilter(narrowed, filter));
2739
+ }
2740
+ return narrowed;
2741
+ }
2742
+ function applyLinkedFilter(base, filter) {
2743
+ return base.pivotTo(filter.linkName).where(filter.innerWhere).pivotTo(filter.reverseLinkName);
2744
+ }
2745
+ function computeDualScopes(objectSet, whereClause, linkedFilters, showFilteredOutValues) {
2746
+ if (objectSet == null) {
2747
+ return {
2748
+ scoped: void 0,
2749
+ emptySource: void 0
2750
+ };
2751
+ }
2752
+ const scoped = narrowObjectSet(objectSet, whereClause, linkedFilters);
2753
+ if (!showFilteredOutValues || linkedFilters.length === 0) {
2754
+ return {
2755
+ scoped,
2756
+ emptySource: void 0
2757
+ };
2758
+ }
2759
+ return {
2760
+ scoped,
2761
+ emptySource: narrowObjectSet(objectSet, whereClause, [])
2762
+ };
2763
+ }
2764
+
2673
2765
  // src/filter-list/inputs/LinkedPropertyInput.tsx
2674
2766
  function LinkedPropertyInputInner({
2675
2767
  objectSet,
2768
+ whereClause,
2769
+ linkedFilters = EMPTY_LINKED_FILTERS,
2676
2770
  definition,
2677
2771
  filterState,
2678
2772
  onFilterStateChanged,
2773
+ showFilteredOutValues,
2679
2774
  searchQuery,
2680
2775
  className,
2681
2776
  style,
2682
2777
  layout
2683
2778
  }) {
2684
- const linkedObjectSet = React13.useMemo(() => objectSet.pivotTo(definition.linkName), [objectSet, definition.linkName]);
2779
+ const scoped = React13.useMemo(() => narrowObjectSet(objectSet, whereClause, linkedFilters), [objectSet, whereClause, linkedFilters]);
2780
+ const linkedObjectSet = React13.useMemo(() => scoped.pivotTo(definition.linkName), [scoped, definition.linkName]);
2781
+ const emptySourceLinkedObjectSet = React13.useMemo(() => showFilteredOutValues ? objectSet.pivotTo(definition.linkName) : void 0, [showFilteredOutValues, objectSet, definition.linkName]);
2685
2782
  const linkedObjectType = linkedObjectSet.$objectSetInternals.def;
2686
2783
  const linkedPropertyKey = definition.linkedPropertyKey;
2687
2784
  const innerState = filterState?.type === "linkedProperty" ? filterState.linkedFilterState : void 0;
@@ -2790,10 +2887,12 @@ function LinkedPropertyInputInner({
2790
2887
  return /* @__PURE__ */ React13__default.default.createElement(LinkedMultiSelectInput, {
2791
2888
  objectType: linkedObjectType,
2792
2889
  objectSet: linkedObjectSet,
2890
+ emptySourceObjectSet: emptySourceLinkedObjectSet,
2793
2891
  propertyKey: linkedPropertyKey,
2794
2892
  selectedValues: values,
2795
2893
  onChange: onSelectChange,
2796
2894
  showCount: definition.showCount,
2895
+ renderValue: definition.renderValue,
2797
2896
  layout
2798
2897
  });
2799
2898
  }
@@ -2802,10 +2901,12 @@ function LinkedPropertyInputInner({
2802
2901
  return /* @__PURE__ */ React13__default.default.createElement(LinkedSingleSelectInput, {
2803
2902
  objectType: linkedObjectType,
2804
2903
  objectSet: linkedObjectSet,
2904
+ emptySourceObjectSet: emptySourceLinkedObjectSet,
2805
2905
  propertyKey: linkedPropertyKey,
2806
2906
  selectedValue: value,
2807
2907
  onChange: onSingleSelectChange,
2808
- showCount: definition.showCount
2908
+ showCount: definition.showCount,
2909
+ renderValue: definition.renderValue
2809
2910
  });
2810
2911
  }
2811
2912
  case "CONTAINS_TEXT": {
@@ -2855,11 +2956,13 @@ function LinkedPropertyInputInner({
2855
2956
  return /* @__PURE__ */ React13__default.default.createElement(LinkedListogramInput, {
2856
2957
  objectType: linkedObjectType,
2857
2958
  objectSet: linkedObjectSet,
2959
+ emptySourceObjectSet: emptySourceLinkedObjectSet,
2858
2960
  propertyKey: linkedPropertyKey,
2859
2961
  selectedValues,
2860
2962
  onChange: onExactMatchChange,
2861
2963
  searchQuery,
2862
- showCount: definition.showCount
2964
+ showCount: definition.showCount,
2965
+ renderValue: definition.renderValue
2863
2966
  });
2864
2967
  }
2865
2968
  case "TEXT_TAGS": {
@@ -2910,20 +3013,21 @@ var LinkedPropertyInput = /* @__PURE__ */ React13.memo(LinkedPropertyInputInner)
2910
3013
  function LinkedMultiSelectInput({
2911
3014
  objectType,
2912
3015
  objectSet,
3016
+ emptySourceObjectSet,
2913
3017
  propertyKey,
2914
3018
  selectedValues,
2915
3019
  onChange,
2916
3020
  showCount,
3021
+ renderValue,
2917
3022
  layout
2918
3023
  }) {
2919
- const aggregationOptions = React13.useMemo(() => ({
2920
- activeValues: selectedValues
2921
- }), [selectedValues]);
2922
3024
  const {
2923
3025
  data,
2924
3026
  isLoading,
2925
3027
  error
2926
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
3028
+ } = useDualScopeAggregation(objectType, propertyKey, objectSet, emptySourceObjectSet, {
3029
+ selectedValues
3030
+ });
2927
3031
  return /* @__PURE__ */ React13__default.default.createElement(MultiSelectInput, {
2928
3032
  values: data,
2929
3033
  isLoading,
@@ -2931,25 +3035,28 @@ function LinkedMultiSelectInput({
2931
3035
  selectedValues,
2932
3036
  onChange,
2933
3037
  showCounts: showCount,
3038
+ renderValue,
2934
3039
  layout
2935
3040
  });
2936
3041
  }
2937
3042
  function LinkedSingleSelectInput({
2938
3043
  objectType,
2939
3044
  objectSet,
3045
+ emptySourceObjectSet,
2940
3046
  propertyKey,
2941
3047
  selectedValue,
2942
3048
  onChange,
2943
- showCount
3049
+ showCount,
3050
+ renderValue
2944
3051
  }) {
2945
- const aggregationOptions = React13.useMemo(() => ({
2946
- activeValues: selectedValue != null ? [selectedValue] : void 0
2947
- }), [selectedValue]);
3052
+ const selectedValues = React13.useMemo(() => selectedValue != null ? [selectedValue] : [], [selectedValue]);
2948
3053
  const {
2949
3054
  data,
2950
3055
  isLoading,
2951
3056
  error
2952
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
3057
+ } = useDualScopeAggregation(objectType, propertyKey, objectSet, emptySourceObjectSet, {
3058
+ selectedValues
3059
+ });
2953
3060
  return /* @__PURE__ */ React13__default.default.createElement(SingleSelectInput, {
2954
3061
  values: data,
2955
3062
  isLoading,
@@ -2957,27 +3064,29 @@ function LinkedSingleSelectInput({
2957
3064
  selectedValue,
2958
3065
  onChange,
2959
3066
  showCounts: showCount,
3067
+ renderValue,
2960
3068
  ariaLabel: `Select ${propertyKey}`
2961
3069
  });
2962
3070
  }
2963
3071
  function LinkedListogramInput({
2964
3072
  objectType,
2965
3073
  objectSet,
3074
+ emptySourceObjectSet,
2966
3075
  propertyKey,
2967
3076
  selectedValues,
2968
3077
  onChange,
2969
3078
  searchQuery,
2970
- showCount
3079
+ showCount,
3080
+ renderValue
2971
3081
  }) {
2972
- const aggregationOptions = React13.useMemo(() => ({
2973
- activeValues: selectedValues
2974
- }), [selectedValues]);
2975
3082
  const {
2976
3083
  data,
2977
3084
  maxCount,
2978
3085
  isLoading,
2979
3086
  error
2980
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
3087
+ } = useDualScopeAggregation(objectType, propertyKey, objectSet, emptySourceObjectSet, {
3088
+ selectedValues
3089
+ });
2981
3090
  return /* @__PURE__ */ React13__default.default.createElement(ListogramInput, {
2982
3091
  values: data,
2983
3092
  maxCount,
@@ -2986,9 +3095,13 @@ function LinkedListogramInput({
2986
3095
  selectedValues,
2987
3096
  onChange,
2988
3097
  searchQuery,
2989
- showCount
3098
+ showCount,
3099
+ renderValue
2990
3100
  });
2991
3101
  }
3102
+ var TEXT_TAGS_OPTIONS = {
3103
+ limit: 50
3104
+ };
2992
3105
  function LinkedTextTagsInput({
2993
3106
  objectType,
2994
3107
  objectSet,
@@ -2996,14 +3109,11 @@ function LinkedTextTagsInput({
2996
3109
  tags,
2997
3110
  onChange
2998
3111
  }) {
2999
- const aggregationOptions = React13.useMemo(() => ({
3000
- limit: 50
3001
- }), []);
3002
3112
  const {
3003
3113
  data,
3004
3114
  isLoading,
3005
3115
  error
3006
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
3116
+ } = usePropertyAggregation(objectType, propertyKey, objectSet, TEXT_TAGS_OPTIONS);
3007
3117
  return /* @__PURE__ */ React13__default.default.createElement(TextTagsInput, {
3008
3118
  suggestions: data,
3009
3119
  isLoading,
@@ -3193,12 +3303,6 @@ function ExcludeDropdownInner({
3193
3303
  var ExcludeDropdown = /* @__PURE__ */ React13.memo(ExcludeDropdownInner);
3194
3304
 
3195
3305
  // src/filter-list/base/FilterInputExcludeRow.tsx
3196
- function getSelectedCount(filterState) {
3197
- if (!filterState) return 0;
3198
- if (filterState.type === "EXACT_MATCH") return filterState.values.length;
3199
- if (filterState.type === "SELECT") return filterState.selectedValues.length;
3200
- return 0;
3201
- }
3202
3306
  function FilterInputExcludeRowInner({
3203
3307
  excludeRowOpen,
3204
3308
  filterState,
@@ -3208,17 +3312,19 @@ function FilterInputExcludeRowInner({
3208
3312
  children
3209
3313
  }) {
3210
3314
  const handleToggleExclude = React13.useCallback(() => {
3211
- if (filterState) {
3212
- onFilterStateChanged({
3213
- ...filterState,
3214
- isExcluding: !filterState.isExcluding
3215
- });
3315
+ if (filterState == null) {
3316
+ return;
3317
+ }
3318
+ const next = toggleIsExcluding(filterState);
3319
+ if (next != null) {
3320
+ onFilterStateChanged(next);
3216
3321
  }
3217
3322
  }, [filterState, onFilterStateChanged]);
3218
- const isExcluding = filterState?.isExcluding ?? false;
3323
+ const effectiveState = getEffectiveFilterState(filterState);
3324
+ const isExcluding = effectiveState?.isExcluding ?? false;
3219
3325
  const isOpen = excludeRowOpen ?? false;
3220
- const selectedCount = React13.useMemo(() => getSelectedCount(filterState), [filterState]);
3221
- if (!supportsExcluding(filterState)) {
3326
+ const selectedCount = getSelectedCount(effectiveState);
3327
+ if (!supportsExcluding(effectiveState)) {
3222
3328
  return /* @__PURE__ */ React13__default.default.createElement(React13__default.default.Fragment, null, children);
3223
3329
  }
3224
3330
  return /* @__PURE__ */ React13__default.default.createElement(React13__default.default.Fragment, null, /* @__PURE__ */ React13__default.default.createElement("div", {
@@ -3353,6 +3459,25 @@ function DateRangeFilterInputInner({
3353
3459
  }));
3354
3460
  }
3355
3461
  var DateRangeFilterInput = /* @__PURE__ */ React13.memo(DateRangeFilterInputInner);
3462
+ function useFilterPropertyAggregation(objectType, propertyKey, objectSet, whereClause, linkedFilters, options = {}) {
3463
+ const {
3464
+ sortBy,
3465
+ selectedValues,
3466
+ limit,
3467
+ showFilteredOutValues
3468
+ } = options;
3469
+ const {
3470
+ scoped,
3471
+ emptySource
3472
+ } = React13.useMemo(() => computeDualScopes(objectSet, whereClause, linkedFilters, showFilteredOutValues), [objectSet, whereClause, linkedFilters, showFilteredOutValues]);
3473
+ return useDualScopeAggregation(objectType, propertyKey, scoped, emptySource, {
3474
+ sortBy,
3475
+ selectedValues,
3476
+ limit
3477
+ });
3478
+ }
3479
+
3480
+ // src/filter-list/inputs/ListogramFilterInput.tsx
3356
3481
  function ListogramFilterInputInner({
3357
3482
  objectType,
3358
3483
  objectSet,
@@ -3360,6 +3485,8 @@ function ListogramFilterInputInner({
3360
3485
  filterState,
3361
3486
  onFilterStateChanged,
3362
3487
  whereClause,
3488
+ linkedFilters = EMPTY_LINKED_FILTERS,
3489
+ showFilteredOutValues,
3363
3490
  colorMap,
3364
3491
  displayMode,
3365
3492
  showCount,
@@ -3385,17 +3512,16 @@ function ListogramFilterInputInner({
3385
3512
  });
3386
3513
  }, [onFilterStateChanged, isExcluding]);
3387
3514
  const sortBy = displayMode === "minimal" ? "value" : "count";
3388
- const aggregationOptions = React13.useMemo(() => ({
3389
- where: whereClause,
3390
- sortBy,
3391
- activeValues: selectedValues
3392
- }), [whereClause, sortBy, selectedValues]);
3393
3515
  const {
3394
3516
  data,
3395
3517
  maxCount,
3396
3518
  isLoading,
3397
3519
  error
3398
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
3520
+ } = useFilterPropertyAggregation(objectType, propertyKey, objectSet, whereClause, linkedFilters, {
3521
+ sortBy,
3522
+ selectedValues,
3523
+ showFilteredOutValues
3524
+ });
3399
3525
  return /* @__PURE__ */ React13__default.default.createElement(FilterInputExcludeRow, {
3400
3526
  excludeRowOpen,
3401
3527
  filterState,
@@ -3447,6 +3573,8 @@ function MultiSelectFilterInputInner({
3447
3573
  filterState,
3448
3574
  onFilterStateChanged,
3449
3575
  whereClause,
3576
+ linkedFilters = EMPTY_LINKED_FILTERS,
3577
+ showFilteredOutValues,
3450
3578
  excludeRowOpen,
3451
3579
  renderValue,
3452
3580
  showCount,
@@ -3468,15 +3596,14 @@ function MultiSelectFilterInputInner({
3468
3596
  isExcluding
3469
3597
  });
3470
3598
  }, [onFilterStateChanged, isExcluding]);
3471
- const aggregationOptions = React13.useMemo(() => ({
3472
- where: whereClause,
3473
- activeValues: selectedValues
3474
- }), [whereClause, selectedValues]);
3475
3599
  const {
3476
3600
  data,
3477
3601
  isLoading,
3478
3602
  error
3479
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
3603
+ } = useFilterPropertyAggregation(objectType, propertyKey, objectSet, whereClause, linkedFilters, {
3604
+ selectedValues,
3605
+ showFilteredOutValues
3606
+ });
3480
3607
  return /* @__PURE__ */ React13__default.default.createElement(FilterInputExcludeRow, {
3481
3608
  excludeRowOpen,
3482
3609
  filterState,
@@ -3599,7 +3726,8 @@ function NumberRangeFilterInputInner({
3599
3726
  var NumberRangeFilterInput = /* @__PURE__ */ React13.memo(NumberRangeFilterInputInner);
3600
3727
  function SingleDateFilterInputInner({
3601
3728
  filterState,
3602
- onFilterStateChanged
3729
+ onFilterStateChanged,
3730
+ formatDate
3603
3731
  }) {
3604
3732
  const selectedDate = React13.useMemo(() => filterState?.type === "SELECT" ? filterState.selectedValues[0] instanceof Date ? filterState.selectedValues[0] : void 0 : void 0, [filterState]);
3605
3733
  const isExcluding = filterState?.isExcluding ?? false;
@@ -3612,7 +3740,8 @@ function SingleDateFilterInputInner({
3612
3740
  }, [onFilterStateChanged, isExcluding]);
3613
3741
  return /* @__PURE__ */ React13__default.default.createElement(SingleDateInput, {
3614
3742
  selectedDate,
3615
- onChange: handleChange
3743
+ onChange: handleChange,
3744
+ formatDate
3616
3745
  });
3617
3746
  }
3618
3747
  var SingleDateFilterInput = /* @__PURE__ */ React13.memo(SingleDateFilterInputInner);
@@ -3623,6 +3752,8 @@ function SingleSelectFilterInputInner({
3623
3752
  filterState,
3624
3753
  onFilterStateChanged,
3625
3754
  whereClause,
3755
+ linkedFilters = EMPTY_LINKED_FILTERS,
3756
+ showFilteredOutValues,
3626
3757
  excludeRowOpen,
3627
3758
  renderValue,
3628
3759
  showCount
@@ -3643,15 +3774,15 @@ function SingleSelectFilterInputInner({
3643
3774
  isExcluding
3644
3775
  });
3645
3776
  }, [onFilterStateChanged, isExcluding]);
3646
- const aggregationOptions = React13.useMemo(() => ({
3647
- where: whereClause,
3648
- activeValues: selectedValue != null ? [selectedValue] : void 0
3649
- }), [whereClause, selectedValue]);
3777
+ const selectedValues = React13.useMemo(() => selectedValue != null ? [selectedValue] : [], [selectedValue]);
3650
3778
  const {
3651
3779
  data,
3652
3780
  isLoading,
3653
3781
  error
3654
- } = usePropertyAggregation(objectType, propertyKey, objectSet, aggregationOptions);
3782
+ } = useFilterPropertyAggregation(objectType, propertyKey, objectSet, whereClause, linkedFilters, {
3783
+ selectedValues,
3784
+ showFilteredOutValues
3785
+ });
3655
3786
  return /* @__PURE__ */ React13__default.default.createElement(FilterInputExcludeRow, {
3656
3787
  excludeRowOpen,
3657
3788
  filterState,
@@ -3776,6 +3907,8 @@ function PropertyFilterInputInner({
3776
3907
  filterState,
3777
3908
  onFilterStateChanged,
3778
3909
  whereClause,
3910
+ linkedFilters,
3911
+ showFilteredOutValues,
3779
3912
  searchQuery,
3780
3913
  excludeRowOpen,
3781
3914
  layout
@@ -3825,6 +3958,8 @@ function PropertyFilterInputInner({
3825
3958
  filterState,
3826
3959
  onFilterStateChanged,
3827
3960
  whereClause,
3961
+ linkedFilters,
3962
+ showFilteredOutValues,
3828
3963
  excludeRowOpen,
3829
3964
  renderValue: definition.renderValue,
3830
3965
  showCount: definition.showCount
@@ -3837,6 +3972,8 @@ function PropertyFilterInputInner({
3837
3972
  filterState,
3838
3973
  onFilterStateChanged,
3839
3974
  whereClause,
3975
+ linkedFilters,
3976
+ showFilteredOutValues,
3840
3977
  excludeRowOpen,
3841
3978
  renderValue: definition.renderValue,
3842
3979
  showCount: definition.showCount,
@@ -3845,7 +3982,8 @@ function PropertyFilterInputInner({
3845
3982
  case "SINGLE_DATE":
3846
3983
  return /* @__PURE__ */ React13__default.default.createElement(SingleDateFilterInput, {
3847
3984
  filterState,
3848
- onFilterStateChanged
3985
+ onFilterStateChanged,
3986
+ formatDate: definition.formatDate
3849
3987
  });
3850
3988
  case "MULTI_DATE":
3851
3989
  return /* @__PURE__ */ React13__default.default.createElement(MultiDateFilterInput, {
@@ -3861,6 +3999,8 @@ function PropertyFilterInputInner({
3861
3999
  filterState,
3862
4000
  onFilterStateChanged,
3863
4001
  whereClause,
4002
+ linkedFilters,
4003
+ showFilteredOutValues,
3864
4004
  colorMap: definition.colorMap,
3865
4005
  displayMode: definition.listogramConfig?.displayMode,
3866
4006
  showCount: definition.showCount,
@@ -4051,6 +4191,8 @@ function FilterInputInner({
4051
4191
  filterState,
4052
4192
  onFilterStateChanged,
4053
4193
  whereClause,
4194
+ linkedFilters,
4195
+ showFilteredOutValues,
4054
4196
  searchQuery,
4055
4197
  excludeRowOpen,
4056
4198
  layout
@@ -4070,6 +4212,9 @@ function FilterInputInner({
4070
4212
  definition,
4071
4213
  filterState,
4072
4214
  onFilterStateChanged,
4215
+ whereClause,
4216
+ linkedFilters,
4217
+ showFilteredOutValues,
4073
4218
  searchQuery,
4074
4219
  layout
4075
4220
  });
@@ -4102,6 +4247,8 @@ function FilterInputInner({
4102
4247
  filterState,
4103
4248
  onFilterStateChanged,
4104
4249
  whereClause,
4250
+ linkedFilters,
4251
+ showFilteredOutValues,
4105
4252
  searchQuery,
4106
4253
  excludeRowOpen,
4107
4254
  layout
@@ -4407,9 +4554,8 @@ function buildWhereClause(definitions, filterStates, propertyTypes, excludeFilte
4407
4554
  });
4408
4555
  break;
4409
4556
  }
4410
- case "LINKED_PROPERTY": {
4557
+ case "LINKED_PROPERTY":
4411
4558
  break;
4412
- }
4413
4559
  case "KEYWORD_SEARCH": {
4414
4560
  if (state.type !== "keywordSearch") {
4415
4561
  if (process.env.NODE_ENV !== "production") {
@@ -4506,6 +4652,45 @@ function buildWhereClause(definitions, filterStates, propertyTypes, excludeFilte
4506
4652
  $and: clauses
4507
4653
  };
4508
4654
  }
4655
+ function buildLinkedInnerWhere(definition, state) {
4656
+ const record = buildPropertyKeyClause(definition.linkedPropertyKey, state.linkedFilterState);
4657
+ if (record === void 0) {
4658
+ return void 0;
4659
+ }
4660
+ return record;
4661
+ }
4662
+ function getActiveLinkedFilters(definitions, filterStates, excludeFilterKey) {
4663
+ if (!definitions || definitions.length === 0) {
4664
+ return [];
4665
+ }
4666
+ const result = [];
4667
+ for (const definition of definitions) {
4668
+ if (definition.type !== "LINKED_PROPERTY") {
4669
+ continue;
4670
+ }
4671
+ const key = getFilterKey(definition);
4672
+ if (key === excludeFilterKey) {
4673
+ continue;
4674
+ }
4675
+ const state = filterStates.get(key);
4676
+ if (!state || state.type !== "linkedProperty") {
4677
+ continue;
4678
+ }
4679
+ if (definition.reverseLinkName == null) {
4680
+ continue;
4681
+ }
4682
+ const innerWhere = buildLinkedInnerWhere(definition, state);
4683
+ if (innerWhere === void 0) {
4684
+ continue;
4685
+ }
4686
+ result.push({
4687
+ linkName: definition.linkName,
4688
+ reverseLinkName: definition.reverseLinkName,
4689
+ innerWhere
4690
+ });
4691
+ }
4692
+ return result;
4693
+ }
4509
4694
  function buildValueOrNullFilter(values) {
4510
4695
  if (values.length === 0) {
4511
4696
  return void 0;
@@ -4592,9 +4777,11 @@ function buildInitialStates(definitions) {
4592
4777
  function useFilterListState(props) {
4593
4778
  const {
4594
4779
  objectType,
4780
+ objectSet,
4595
4781
  filterDefinitions,
4596
4782
  onFilterStateChanged,
4597
4783
  onFilterClauseChanged,
4784
+ onEffectiveObjectSet,
4598
4785
  initialFilterStates
4599
4786
  } = props;
4600
4787
  const {
@@ -4602,6 +4789,10 @@ function useFilterListState(props) {
4602
4789
  } = react.useOsdkMetadata(objectType);
4603
4790
  const onFilterClauseChangedRef = React13.useRef(onFilterClauseChanged);
4604
4791
  onFilterClauseChangedRef.current = onFilterClauseChanged;
4792
+ const onEffectiveObjectSetRef = React13.useRef(onEffectiveObjectSet);
4793
+ onEffectiveObjectSetRef.current = onEffectiveObjectSet;
4794
+ const filterDefinitionsRef = React13.useRef(filterDefinitions);
4795
+ filterDefinitionsRef.current = filterDefinitions;
4605
4796
  const propertyTypes = React13.useMemo(() => {
4606
4797
  const map = /* @__PURE__ */ new Map();
4607
4798
  if (metadata?.properties) {
@@ -4617,13 +4808,13 @@ function useFilterListState(props) {
4617
4808
  return map;
4618
4809
  }, [metadata?.properties]);
4619
4810
  const [filterStates, setFilterStates] = React13.useState(() => {
4620
- const states = buildInitialStates(filterDefinitions);
4811
+ const initial = buildInitialStates(filterDefinitions);
4621
4812
  if (initialFilterStates) {
4622
4813
  for (const [key, state] of initialFilterStates) {
4623
- states.set(key, state);
4814
+ initial.set(key, state);
4624
4815
  }
4625
4816
  }
4626
- return states;
4817
+ return initial;
4627
4818
  });
4628
4819
  const setFilterState = React13.useCallback((filterKey, state) => {
4629
4820
  setFilterStates((prev) => {
@@ -4631,11 +4822,11 @@ function useFilterListState(props) {
4631
4822
  next.set(filterKey, state);
4632
4823
  return next;
4633
4824
  });
4634
- const definition = filterDefinitions?.find((d) => getFilterKey(d) === filterKey);
4825
+ const definition = filterDefinitionsRef.current?.find((d) => getFilterKey(d) === filterKey);
4635
4826
  if (definition) {
4636
4827
  onFilterStateChanged?.(definition, state);
4637
4828
  }
4638
- }, [filterDefinitions, onFilterStateChanged]);
4829
+ }, [onFilterStateChanged]);
4639
4830
  const clearFilterState = React13.useCallback((filterKey) => {
4640
4831
  setFilterStates((prev) => {
4641
4832
  const next = new Map(prev);
@@ -4643,10 +4834,21 @@ function useFilterListState(props) {
4643
4834
  return next;
4644
4835
  });
4645
4836
  }, []);
4837
+ const reset = React13.useCallback(() => {
4838
+ setFilterStates(buildInitialStates(filterDefinitionsRef.current));
4839
+ }, []);
4646
4840
  const whereClause = React13.useMemo(() => buildWhereClause(filterDefinitions, filterStates, propertyTypes), [filterDefinitions, filterStates, propertyTypes]);
4841
+ const linkedFilters = React13.useMemo(() => getActiveLinkedFilters(filterDefinitions, filterStates), [filterDefinitions, filterStates]);
4842
+ const effectiveObjectSet = React13.useMemo(() => objectSet == null ? void 0 : narrowObjectSet(objectSet, whereClause, linkedFilters), [objectSet, whereClause, linkedFilters]);
4647
4843
  React13.useEffect(() => {
4648
4844
  onFilterClauseChangedRef.current?.(whereClause);
4649
4845
  }, [whereClause]);
4846
+ React13.useEffect(() => {
4847
+ if (effectiveObjectSet == null) {
4848
+ return;
4849
+ }
4850
+ onEffectiveObjectSetRef.current?.(effectiveObjectSet);
4851
+ }, [effectiveObjectSet]);
4650
4852
  const perFilterWhereClauses = useStableMapEntries(React13.useMemo(() => {
4651
4853
  const map = /* @__PURE__ */ new Map();
4652
4854
  for (const definition of filterDefinitions ?? []) {
@@ -4655,6 +4857,14 @@ function useFilterListState(props) {
4655
4857
  }
4656
4858
  return map;
4657
4859
  }, [filterDefinitions, filterStates, propertyTypes]));
4860
+ const perFilterLinkedFilters = useStableMapEntries(React13.useMemo(() => {
4861
+ const map = /* @__PURE__ */ new Map();
4862
+ for (const definition of filterDefinitions ?? []) {
4863
+ const key = getFilterKey(definition);
4864
+ map.set(key, getActiveLinkedFilters(filterDefinitions, filterStates, key));
4865
+ }
4866
+ return map;
4867
+ }, [filterDefinitions, filterStates]));
4658
4868
  const activeFilterCount = React13.useMemo(() => {
4659
4869
  let count = 0;
4660
4870
  for (const state of filterStates.values()) {
@@ -4664,18 +4874,17 @@ function useFilterListState(props) {
4664
4874
  }
4665
4875
  return count;
4666
4876
  }, [filterStates]);
4667
- const reset = React13.useCallback(() => {
4668
- setFilterStates(buildInitialStates(filterDefinitions));
4669
- }, [filterDefinitions]);
4670
4877
  return React13.useMemo(() => ({
4671
4878
  filterStates,
4672
4879
  setFilterState,
4673
4880
  clearFilterState,
4674
4881
  whereClause,
4882
+ linkedFilters,
4675
4883
  perFilterWhereClauses,
4884
+ perFilterLinkedFilters,
4676
4885
  activeFilterCount,
4677
4886
  reset
4678
- }), [filterStates, setFilterState, clearFilterState, whereClause, perFilterWhereClauses, activeFilterCount, reset]);
4887
+ }), [filterStates, setFilterState, clearFilterState, whereClause, linkedFilters, perFilterWhereClauses, perFilterLinkedFilters, activeFilterCount, reset]);
4679
4888
  }
4680
4889
  function useFilterVisibility(filterDefinitions, onVisibilityChange) {
4681
4890
  const allKeys = React13.useMemo(() => filterDefinitions?.map(getFilterKey) ?? [], [filterDefinitions]);
@@ -4805,6 +5014,7 @@ function getFilterLabel(definition) {
4805
5014
  }
4806
5015
 
4807
5016
  // src/filter-list/FilterList.tsx
5017
+ var EMPTY_WHERE = {};
4808
5018
  function FilterList(props) {
4809
5019
  const {
4810
5020
  objectType,
@@ -4818,6 +5028,7 @@ function FilterList(props) {
4818
5028
  showResetButton = false,
4819
5029
  onReset,
4820
5030
  showActiveFilterCount = false,
5031
+ showFilteredOutValues = false,
4821
5032
  className,
4822
5033
  enableSorting,
4823
5034
  onFilterAdded,
@@ -4830,6 +5041,7 @@ function FilterList(props) {
4830
5041
  setFilterState,
4831
5042
  clearFilterState,
4832
5043
  perFilterWhereClauses,
5044
+ perFilterLinkedFilters,
4833
5045
  activeFilterCount,
4834
5046
  reset
4835
5047
  } = useFilterListState(props);
@@ -4913,10 +5125,12 @@ function FilterList(props) {
4913
5125
  definition,
4914
5126
  filterState,
4915
5127
  onFilterStateChanged,
4916
- whereClause: perFilterWhereClauses.get(filterKey) ?? {},
5128
+ whereClause: perFilterWhereClauses.get(filterKey) ?? EMPTY_WHERE,
5129
+ linkedFilters: perFilterLinkedFilters.get(filterKey) ?? EMPTY_LINKED_FILTERS,
5130
+ showFilteredOutValues,
4917
5131
  searchQuery,
4918
5132
  excludeRowOpen
4919
- }), [objectType, objectSet, perFilterWhereClauses]);
5133
+ }), [objectType, objectSet, perFilterWhereClauses, perFilterLinkedFilters, showFilteredOutValues]);
4920
5134
  return /* @__PURE__ */ React13__default.default.createElement(BaseFilterList, {
4921
5135
  title,
4922
5136
  titleIcon,
@@ -5105,7 +5319,7 @@ function summarizeFilterValue(definition, state) {
5105
5319
  }
5106
5320
 
5107
5321
  // src/public/experimental/filter-list.ts
5108
- var FilterList2 = chunkBXCHISUQ_cjs.withOsdkMetrics(FilterList, "FilterList");
5322
+ var FilterList2 = chunkNOONKE5X_cjs.withOsdkMetrics(FilterList, "FilterList");
5109
5323
 
5110
5324
  exports.BaseFilterList = BaseFilterList;
5111
5325
  exports.FilterInput = FilterInput;
@@ -5115,8 +5329,9 @@ exports.deserializeFilterStates = deserializeFilterStates;
5115
5329
  exports.filterHasActiveState = filterHasActiveState;
5116
5330
  exports.getFilterKey = getFilterKey;
5117
5331
  exports.getFilterLabel = getFilterLabel;
5332
+ exports.narrowObjectSet = narrowObjectSet;
5118
5333
  exports.serializeFilterStates = serializeFilterStates;
5119
5334
  exports.summarizeFilterValue = summarizeFilterValue;
5120
5335
  exports.useFilterListState = useFilterListState;
5121
- //# sourceMappingURL=chunk-QOI2FQSL.cjs.map
5122
- //# sourceMappingURL=chunk-QOI2FQSL.cjs.map
5336
+ //# sourceMappingURL=chunk-PUZZZTC7.cjs.map
5337
+ //# sourceMappingURL=chunk-PUZZZTC7.cjs.map