@osdk/react-components 0.34.0 → 0.34.1-main-e39a72892d538f3130e2cd51cee05d83d11fa493

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 (987) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/browser/action-form/ActionForm.js.map +1 -1
  3. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  4. package/build/browser/action-form/BaseForm.js +3 -3
  5. package/build/browser/action-form/BaseForm.js.map +1 -1
  6. package/build/browser/action-form/FormField.js.map +1 -1
  7. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  8. package/build/browser/action-form/FormHeader.js.map +1 -1
  9. package/build/browser/action-form/FormSection.js.map +1 -1
  10. package/build/browser/action-form/fields/AsyncDropdownField.js +1 -1
  11. package/build/browser/action-form/fields/AsyncDropdownField.js.map +1 -1
  12. package/build/browser/action-form/fields/CustomField.js.map +1 -1
  13. package/build/browser/action-form/fields/DropdownField.js +2 -2
  14. package/build/browser/action-form/fields/DropdownField.js.map +1 -1
  15. package/build/browser/action-form/fields/FieldBridge.js.map +1 -1
  16. package/build/browser/action-form/fields/FilePickerField.js.map +1 -1
  17. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -1
  18. package/build/browser/action-form/fields/NumberInputField.js.map +1 -1
  19. package/build/browser/action-form/fields/ObjectSelectField.js.map +1 -1
  20. package/build/browser/action-form/fields/ObjectSetField.js.map +1 -1
  21. package/build/browser/action-form/fields/RadioButtonsField.js.map +1 -1
  22. package/build/browser/action-form/fields/SwitchField.js.map +1 -1
  23. package/build/browser/action-form/fields/TextAreaField.js.map +1 -1
  24. package/build/browser/action-form/fields/TextInputField.js.map +1 -1
  25. package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -1
  26. package/build/browser/action-form/utils/extractValidationRules.js.map +1 -1
  27. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  28. package/build/browser/aip-agent-chat/AipAgentChat.js.map +1 -1
  29. package/build/browser/aip-agent-chat/BaseAipAgentChat.js +1 -1
  30. package/build/browser/aip-agent-chat/BaseAipAgentChat.js.map +1 -1
  31. package/build/browser/aip-agent-chat/components/AipAgentChatComposer.js.map +1 -1
  32. package/build/browser/aip-agent-chat/components/AipAgentChatLoader.js.map +1 -1
  33. package/build/browser/aip-agent-chat/components/AipAgentChatMessage.js.map +1 -1
  34. package/build/browser/aip-agent-chat/components/AipAgentChatMessageList.js +1 -1
  35. package/build/browser/aip-agent-chat/components/AipAgentChatMessageList.js.map +1 -1
  36. package/build/browser/aip-agent-chat/components/AipAgentChatModelPicker.js.map +1 -1
  37. package/build/browser/aip-agent-chat/hooks/useChatAutoScroll.js.map +1 -1
  38. package/build/browser/base-components/action-button/ActionButton.js.map +1 -1
  39. package/build/browser/base-components/callout/Callout.js.map +1 -1
  40. package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
  41. package/build/browser/base-components/combobox/Combobox.js.map +1 -1
  42. package/build/browser/base-components/dialog/Dialog.js.map +1 -1
  43. package/build/browser/base-components/draggable-list/DraggableList.js +1 -1
  44. package/build/browser/base-components/draggable-list/DraggableList.js.map +1 -1
  45. package/build/browser/base-components/icon/BlueprintIcon.js.map +1 -1
  46. package/build/browser/base-components/search-bar/SearchBar.js.map +1 -1
  47. package/build/browser/base-components/searchable-menu/SearchableMenu.js.map +1 -1
  48. package/build/browser/base-components/select/Select.js.map +1 -1
  49. package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -1
  50. package/build/browser/base-components/switch/Switch.js.map +1 -1
  51. package/build/browser/base-components/tooltip/Tooltip.js.map +1 -1
  52. package/build/browser/cbac-picker/CbacBanner.js.map +1 -1
  53. package/build/browser/cbac-picker/CbacBannerPopover.js.map +1 -1
  54. package/build/browser/cbac-picker/CbacPicker.js.map +1 -1
  55. package/build/browser/cbac-picker/CbacPickerDialog.js.map +1 -1
  56. package/build/browser/cbac-picker/base/BaseCbacBanner.js.map +1 -1
  57. package/build/browser/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -1
  58. package/build/browser/cbac-picker/base/BaseCbacPicker.js +1 -1
  59. package/build/browser/cbac-picker/base/BaseCbacPicker.js.map +1 -1
  60. package/build/browser/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -1
  61. package/build/browser/cbac-picker/base/CategoryMarkingGroup.js +1 -1
  62. package/build/browser/cbac-picker/base/CategoryMarkingGroup.js.map +1 -1
  63. package/build/browser/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -1
  64. package/build/browser/cbac-picker/base/InfoBanner.js.map +1 -1
  65. package/build/browser/cbac-picker/base/MarkingButton.js +1 -1
  66. package/build/browser/cbac-picker/base/MarkingButton.js.map +1 -1
  67. package/build/browser/cbac-picker/base/MaxClassificationField.js.map +1 -1
  68. package/build/browser/cbac-picker/base/OverflowButton.js +1 -1
  69. package/build/browser/cbac-picker/base/OverflowButton.js.map +1 -1
  70. package/build/browser/cbac-picker/base/OverflowItem.js +1 -1
  71. package/build/browser/cbac-picker/base/OverflowItem.js.map +1 -1
  72. package/build/browser/cbac-picker/base/ValidationWarning.js.map +1 -1
  73. package/build/browser/cbac-picker/base/selectionStateHelpers.js.map +1 -1
  74. package/build/browser/cbac-picker/useCbacPickerState.js.map +1 -1
  75. package/build/browser/cbac-picker/useCbacSelection.js.map +1 -1
  76. package/build/browser/cbac-picker/useConstraintCallout.js.map +1 -1
  77. package/build/browser/cbac-picker/utils/cbacPickerUtils.js.map +1 -1
  78. package/build/browser/cbac-picker/utils/errorMessages.js.map +1 -1
  79. package/build/browser/cbac-picker/utils/selectionLogic.js.map +1 -1
  80. package/build/browser/cbac-picker/utils/validationMessages.js.map +1 -1
  81. package/build/browser/document-viewer/DocumentViewer.js +1 -1
  82. package/build/browser/document-viewer/DocumentViewer.js.map +1 -1
  83. package/build/browser/document-viewer/DocumentViewerApi.js.map +1 -1
  84. package/build/browser/document-viewer/TiffDocumentViewer.js +1 -1
  85. package/build/browser/document-viewer/TiffDocumentViewer.js.map +1 -1
  86. package/build/browser/document-viewer/hooks/useTiffToPdf.js.map +1 -1
  87. package/build/browser/email-viewer/BaseEmailViewer.js.map +1 -1
  88. package/build/browser/email-viewer/EmailViewer.js +1 -1
  89. package/build/browser/email-viewer/EmailViewer.js.map +1 -1
  90. package/build/browser/email-viewer/EmailViewerApi.js.map +1 -1
  91. package/build/browser/email-viewer/parseEmail.js.map +1 -1
  92. package/build/browser/excel-viewer/BaseExcelViewer.js +1 -0
  93. package/build/browser/excel-viewer/BaseExcelViewer.js.map +1 -1
  94. package/build/browser/excel-viewer/ExcelViewer.js +1 -1
  95. package/build/browser/excel-viewer/ExcelViewer.js.map +1 -1
  96. package/build/browser/excel-viewer/ExcelViewerApi.js.map +1 -1
  97. package/build/browser/excel-viewer/parseSpreadsheet.js.map +1 -1
  98. package/build/browser/filter-list/FilterInput.js.map +1 -1
  99. package/build/browser/filter-list/FilterList.js.map +1 -1
  100. package/build/browser/filter-list/FilterListApi.js.map +1 -1
  101. package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
  102. package/build/browser/filter-list/base/AddFilterPopover.js +1 -1
  103. package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -1
  104. package/build/browser/filter-list/base/BaseFilterList.js +1 -1
  105. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
  106. package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -1
  107. package/build/browser/filter-list/base/ExcludeDropdown.js +1 -1
  108. package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -1
  109. package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -1
  110. package/build/browser/filter-list/base/FilterListContent.js +1 -1
  111. package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
  112. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  113. package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
  114. package/build/browser/filter-list/base/FilterPopover.js.map +1 -1
  115. package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -1
  116. package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  117. package/build/browser/filter-list/base/inputs/DateRangeHistogramInput.js.map +1 -1
  118. package/build/browser/filter-list/base/inputs/EmptyStringLabel.js +1 -0
  119. package/build/browser/filter-list/base/inputs/EmptyStringLabel.js.map +1 -1
  120. package/build/browser/filter-list/base/inputs/HistogramTooltip.js.map +1 -1
  121. package/build/browser/filter-list/base/inputs/ListogramInput.js +2 -2
  122. package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -1
  123. package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -1
  124. package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  125. package/build/browser/filter-list/base/inputs/MultiSelectDropdownLayout.js.map +1 -1
  126. package/build/browser/filter-list/base/inputs/MultiSelectInlineLayout.js.map +1 -1
  127. package/build/browser/filter-list/base/inputs/MultiSelectInput.js +2 -2
  128. package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  129. package/build/browser/filter-list/base/inputs/NoValueLabel.js.map +1 -1
  130. package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
  131. package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
  132. package/build/browser/filter-list/base/inputs/OptionLabel.js.map +1 -1
  133. package/build/browser/filter-list/base/inputs/RangeInput.js +1 -1
  134. package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -1
  135. package/build/browser/filter-list/base/inputs/SelectInputSkeleton.js.map +1 -1
  136. package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  137. package/build/browser/filter-list/base/inputs/SingleSelectInput.js +1 -1
  138. package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  139. package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  140. package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -1
  141. package/build/browser/filter-list/base/inputs/ToggleInput.js.map +1 -1
  142. package/build/browser/filter-list/base/inputs/comboboxFilter.js.map +1 -1
  143. package/build/browser/filter-list/base/inputs/createDateHistogramBuckets.js.map +1 -1
  144. package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -1
  145. package/build/browser/filter-list/hooks/useDualScopeAggregation.js.map +1 -1
  146. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  147. package/build/browser/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -1
  148. package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -1
  149. package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  150. package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -1
  151. package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
  152. package/build/browser/filter-list/inputs/LinkedPropertyInput.js +1 -1
  153. package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  154. package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  155. package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -1
  156. package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  157. package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
  158. package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  159. package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
  160. package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  161. package/build/browser/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
  162. package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
  163. package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -1
  164. package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -1
  165. package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
  166. package/build/browser/filter-list/types/KeywordSearchTypes.js.map +1 -1
  167. package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
  168. package/build/browser/filter-list/types/StaticValuesTypes.js.map +1 -1
  169. package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -1
  170. package/build/browser/filter-list/utils/coerceFilterValue.js.map +1 -1
  171. package/build/browser/filter-list/utils/emptyFilterDisplayState.js.map +1 -1
  172. package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -1
  173. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  174. package/build/browser/filter-list/utils/filterValues.js.map +1 -1
  175. package/build/browser/filter-list/utils/getFilterKey.js.map +1 -1
  176. package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -1
  177. package/build/browser/filter-list/utils/narrowObjectSet.js.map +1 -1
  178. package/build/browser/filter-list/utils/summarizeFilterValue.js.map +1 -1
  179. package/build/browser/images/image-viewer/BaseImageViewer.js.map +1 -1
  180. package/build/browser/images/image-viewer/ImageViewer.js.map +1 -1
  181. package/build/browser/images/image-viewer/ImageViewerApi.js.map +1 -1
  182. package/build/browser/images/tiff-renderer/TiffRenderer.js +1 -0
  183. package/build/browser/images/tiff-renderer/TiffRenderer.js.map +1 -1
  184. package/build/browser/images/tiff-renderer/TiffViewerMedia.js.map +1 -1
  185. package/build/browser/markdown-renderer/MarkdownRenderer.js.map +1 -1
  186. package/build/browser/markdown-renderer/MarkdownViewerMedia.js.map +1 -1
  187. package/build/browser/object-table/CellContextMenu.js.map +1 -1
  188. package/build/browser/object-table/ColumnConfigDialog.js.map +1 -1
  189. package/build/browser/object-table/DefaultCellRenderer.js +4 -3
  190. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
  191. package/build/browser/object-table/EditableCell.js +1 -1
  192. package/build/browser/object-table/EditableCell.js.map +1 -1
  193. package/build/browser/object-table/LoadingCell.js.map +1 -1
  194. package/build/browser/object-table/LoadingRow.js +1 -1
  195. package/build/browser/object-table/LoadingRow.js.map +1 -1
  196. package/build/browser/object-table/LoadingStateTable.js +3 -3
  197. package/build/browser/object-table/LoadingStateTable.js.map +1 -1
  198. package/build/browser/object-table/MultiColumnSortDialog.js +1 -1
  199. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
  200. package/build/browser/object-table/NonIdealState.js.map +1 -1
  201. package/build/browser/object-table/ObjectTable.js.map +1 -1
  202. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  203. package/build/browser/object-table/SelectionCells.js.map +1 -1
  204. package/build/browser/object-table/SortableItemsList.js.map +1 -1
  205. package/build/browser/object-table/Table.js +1 -1
  206. package/build/browser/object-table/Table.js.map +1 -1
  207. package/build/browser/object-table/TableBody.js +1 -1
  208. package/build/browser/object-table/TableBody.js.map +1 -1
  209. package/build/browser/object-table/TableCell.js +1 -1
  210. package/build/browser/object-table/TableCell.js.map +1 -1
  211. package/build/browser/object-table/TableEditContainer.js.map +1 -1
  212. package/build/browser/object-table/TableHeader.js +1 -1
  213. package/build/browser/object-table/TableHeader.js.map +1 -1
  214. package/build/browser/object-table/TableHeaderContent.js.map +1 -1
  215. package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
  216. package/build/browser/object-table/TableRow.js.map +1 -1
  217. package/build/browser/object-table/components/AsyncValueCell.js.map +1 -1
  218. package/build/browser/object-table/components/CbacMarkingCell.js.map +1 -1
  219. package/build/browser/object-table/components/DatePickerCellField.js +1 -1
  220. package/build/browser/object-table/components/DatePickerCellField.js.map +1 -1
  221. package/build/browser/object-table/components/DropdownCellField.js +1 -1
  222. package/build/browser/object-table/components/DropdownCellField.js.map +1 -1
  223. package/build/browser/object-table/components/MandatoryMarkingCell.js.map +1 -1
  224. package/build/browser/object-table/components/ReadonlyDisplayCell.js.map +1 -1
  225. package/build/browser/object-table/components/TextInputCellField.js.map +1 -1
  226. package/build/browser/object-table/hooks/useCellContextMenu.js.map +1 -1
  227. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  228. package/build/browser/object-table/hooks/useColumnPinning.js.map +1 -1
  229. package/build/browser/object-table/hooks/useColumnResize.js.map +1 -1
  230. package/build/browser/object-table/hooks/useColumnVisibility.js.map +1 -1
  231. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
  232. package/build/browser/object-table/hooks/useFocusedRow.js.map +1 -1
  233. package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -1
  234. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  235. package/build/browser/object-table/hooks/useObjectTableSnapshot.js.map +1 -1
  236. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  237. package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -1
  238. package/build/browser/object-table/hooks/useTableSorting.js.map +1 -1
  239. package/build/browser/object-table/utils/AsyncCellData.js.map +1 -1
  240. package/build/browser/object-table/utils/PortalTracker.js.map +1 -1
  241. package/build/browser/object-table/utils/deriveSelectionObjectSet.js.map +1 -1
  242. package/build/browser/object-table/utils/editableUtils.js.map +1 -1
  243. package/build/browser/object-table/utils/functionColumns.js.map +1 -1
  244. package/build/browser/object-table/utils/getColumnPinningStyles.js.map +1 -1
  245. package/build/browser/object-table/utils/getRowId.js.map +1 -1
  246. package/build/browser/object-table/utils/objectTableSnapshot.js.map +1 -1
  247. package/build/browser/object-table/utils/shouldShowEditableCell.js.map +1 -1
  248. package/build/browser/object-table/utils/types.js.map +1 -1
  249. package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -1
  250. package/build/browser/pdf-viewer/PdfViewer.js.map +1 -1
  251. package/build/browser/pdf-viewer/PdfViewerContext.js.map +1 -1
  252. package/build/browser/pdf-viewer/components/PdfAnnotationOverlay.js.map +1 -1
  253. package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -1
  254. package/build/browser/pdf-viewer/components/PdfViewerContent.js +1 -1
  255. package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -1
  256. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +1 -1
  257. package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -1
  258. package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -1
  259. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js +1 -1
  260. package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -1
  261. package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -1
  262. package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -1
  263. package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -1
  264. package/build/browser/pdf-viewer/constants.js.map +1 -1
  265. package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -1
  266. package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -1
  267. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  268. package/build/browser/pdf-viewer/hooks/usePdfFormFields.js.map +1 -1
  269. package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -1
  270. package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -1
  271. package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
  272. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
  273. package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -1
  274. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
  275. package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -1
  276. package/build/browser/public/experimental/action-form.js.map +1 -1
  277. package/build/browser/public/experimental/cbac-picker.js.map +1 -1
  278. package/build/browser/public/experimental/document-viewer.js.map +1 -1
  279. package/build/browser/public/experimental/email-viewer.js.map +1 -1
  280. package/build/browser/public/experimental/excel-viewer.js.map +1 -1
  281. package/build/browser/public/experimental/filter-list.js.map +1 -1
  282. package/build/browser/public/experimental/image-viewer.js.map +1 -1
  283. package/build/browser/public/experimental/markdown-renderer.js.map +1 -1
  284. package/build/browser/public/experimental/object-table.js.map +1 -1
  285. package/build/browser/public/experimental/pdf-viewer.js.map +1 -1
  286. package/build/browser/public/experimental/tiff-renderer.js.map +1 -1
  287. package/build/browser/public/experimental/video-viewer.js.map +1 -1
  288. package/build/browser/public/experimental/xml-viewer.js.map +1 -1
  289. package/build/browser/shared/ErrorBoundary.js.map +1 -1
  290. package/build/browser/shared/PortalContainerContext.js.map +1 -1
  291. package/build/browser/shared/PortalDismissLayer.js.map +1 -1
  292. package/build/browser/shared/calendar/DateCalendar.js +1 -1
  293. package/build/browser/shared/calendar/DateCalendar.js.map +1 -1
  294. package/build/browser/shared/calendar/DatePicker.js +2 -2
  295. package/build/browser/shared/calendar/DatePicker.js.map +1 -1
  296. package/build/browser/shared/calendar/DateRangeCalendar.js.map +1 -1
  297. package/build/browser/shared/calendar/DateRangePicker.js +2 -2
  298. package/build/browser/shared/calendar/DateRangePicker.js.map +1 -1
  299. package/build/browser/shared/calendar/LazyDateCalendar.js.map +1 -1
  300. package/build/browser/shared/calendar/LazyDateRangeCalendar.js.map +1 -1
  301. package/build/browser/shared/calendar/TimePicker.js.map +1 -1
  302. package/build/browser/shared/calendar/calendarShared.js.map +1 -1
  303. package/build/browser/shared/calendar/useDateEditState.js.map +1 -1
  304. package/build/browser/shared/dateUtils.js.map +1 -1
  305. package/build/browser/shared/hooks/useAsyncAction.js.map +1 -1
  306. package/build/browser/shared/hooks/useDebouncedValue.js.map +1 -1
  307. package/build/browser/shared/hooks/useEventCallback.js.map +1 -1
  308. package/build/browser/shared/hooks/useInfiniteScroll.js.map +1 -1
  309. package/build/browser/shared/hooks/useMediaContents.js.map +1 -1
  310. package/build/browser/theme/OsdkThemeContext.js.map +1 -1
  311. package/build/browser/theme/OsdkThemeProvider.js.map +1 -1
  312. package/build/browser/theme/useOsdkTheme.js.map +1 -1
  313. package/build/browser/theme/useSystemTheme.js.map +1 -1
  314. package/build/browser/util/UserAgent.js +1 -1
  315. package/build/browser/util/UserAgent.js.map +1 -1
  316. package/build/browser/util/withOsdkMetrics.js.map +1 -1
  317. package/build/browser/video-viewer/BaseVideoViewer.js.map +1 -1
  318. package/build/browser/video-viewer/VideoViewer.js.map +1 -1
  319. package/build/browser/video-viewer/VideoViewerApi.js.map +1 -1
  320. package/build/browser/xml-viewer/BaseXmlViewer.js.map +1 -1
  321. package/build/browser/xml-viewer/XmlViewer.js.map +1 -1
  322. package/build/browser/xml-viewer/XmlViewerApi.js.map +1 -1
  323. package/build/cjs/{DateCalendar-OCDSESQR.cjs → DateCalendar-FCZXD24P.cjs} +6 -6
  324. package/build/cjs/{DateCalendar-OCDSESQR.cjs.map → DateCalendar-FCZXD24P.cjs.map} +1 -1
  325. package/build/cjs/{DateCalendar-FTW3OIEP.css → DateCalendar-VBZGPZ5P.css} +39 -39
  326. package/build/cjs/DateCalendar-VBZGPZ5P.css.map +1 -0
  327. package/build/cjs/{DateRangeCalendar-I4JHCZAK.css → DateRangeCalendar-2M2I5Q3Z.css} +39 -39
  328. package/build/cjs/DateRangeCalendar-2M2I5Q3Z.css.map +1 -0
  329. package/build/cjs/DateRangeCalendar-XN2ZWAFK.cjs +12 -0
  330. package/build/cjs/{DateRangeCalendar-PHC3VPW3.cjs.map → DateRangeCalendar-XN2ZWAFK.cjs.map} +1 -1
  331. package/build/cjs/{chunk-DA22W6ZO.cjs → chunk-BE226IHU.cjs} +8 -8
  332. package/build/cjs/chunk-BE226IHU.cjs.map +1 -0
  333. package/build/cjs/{chunk-XWT6S3FL.cjs → chunk-BFRUHBWM.cjs} +12 -12
  334. package/build/cjs/{chunk-XWT6S3FL.cjs.map → chunk-BFRUHBWM.cjs.map} +1 -1
  335. package/build/cjs/chunk-CXMIRPQU.cjs +11 -0
  336. package/build/cjs/{chunk-PYOEFNQH.cjs.map → chunk-CXMIRPQU.cjs.map} +1 -1
  337. package/build/cjs/{chunk-CASYBF4M.cjs → chunk-ENE2RWIL.cjs} +25 -23
  338. package/build/cjs/chunk-ENE2RWIL.cjs.map +1 -0
  339. package/build/cjs/{chunk-IHVPE5CD.cjs → chunk-G6AOIKDH.cjs} +66 -66
  340. package/build/cjs/chunk-G6AOIKDH.cjs.map +1 -0
  341. package/build/cjs/{chunk-U74WOMFV.cjs → chunk-GJ2KJKWI.cjs} +17 -17
  342. package/build/cjs/{chunk-U74WOMFV.cjs.map → chunk-GJ2KJKWI.cjs.map} +1 -1
  343. package/build/cjs/chunk-HBU5ZLVP.cjs +11 -0
  344. package/build/cjs/{chunk-F4JELV7M.cjs.map → chunk-HBU5ZLVP.cjs.map} +1 -1
  345. package/build/cjs/{chunk-KNZXFIIH.cjs → chunk-HWWTZKC5.cjs} +24 -24
  346. package/build/cjs/{chunk-KNZXFIIH.cjs.map → chunk-HWWTZKC5.cjs.map} +1 -1
  347. package/build/cjs/{chunk-YTDSW5OV.cjs → chunk-IHTYJU2F.cjs} +29 -28
  348. package/build/cjs/chunk-IHTYJU2F.cjs.map +1 -0
  349. package/build/cjs/{chunk-5KTGUKJT.cjs → chunk-JCN6P3YW.cjs} +4 -4
  350. package/build/cjs/{chunk-5KTGUKJT.cjs.map → chunk-JCN6P3YW.cjs.map} +1 -1
  351. package/build/cjs/{chunk-XK4H7EHE.cjs → chunk-KQ4B2XDH.cjs} +5 -5
  352. package/build/cjs/chunk-KQ4B2XDH.cjs.map +1 -0
  353. package/build/cjs/{chunk-IISDOJPR.cjs → chunk-LB3IHFAB.cjs} +2 -2
  354. package/build/cjs/{chunk-IISDOJPR.cjs.map → chunk-LB3IHFAB.cjs.map} +1 -1
  355. package/build/cjs/{chunk-PUQBJVFU.cjs → chunk-MUDJXY6I.cjs} +22 -22
  356. package/build/cjs/{chunk-PUQBJVFU.cjs.map → chunk-MUDJXY6I.cjs.map} +1 -1
  357. package/build/cjs/chunk-NN5IHTYW.cjs +11 -0
  358. package/build/cjs/{chunk-W6DWGABB.cjs.map → chunk-NN5IHTYW.cjs.map} +1 -1
  359. package/build/cjs/{chunk-PKJFOG2Z.cjs → chunk-OISZU73V.cjs} +2 -2
  360. package/build/cjs/{chunk-PKJFOG2Z.cjs.map → chunk-OISZU73V.cjs.map} +1 -1
  361. package/build/cjs/chunk-PPVWOEYX.cjs +11 -0
  362. package/build/cjs/{chunk-VRTFHF24.cjs.map → chunk-PPVWOEYX.cjs.map} +1 -1
  363. package/build/cjs/{chunk-3SJODG6U.cjs → chunk-S2FQCZAB.cjs} +2 -2
  364. package/build/cjs/{chunk-3SJODG6U.cjs.map → chunk-S2FQCZAB.cjs.map} +1 -1
  365. package/build/cjs/{chunk-4VNWCW75.cjs → chunk-V3ZJM4N2.cjs} +16 -16
  366. package/build/cjs/chunk-V3ZJM4N2.cjs.map +1 -0
  367. package/build/cjs/{chunk-MMPVBH5H.cjs → chunk-VT7TNOMD.cjs} +24 -21
  368. package/build/cjs/chunk-VT7TNOMD.cjs.map +1 -0
  369. package/build/cjs/chunk-WKKN2KJU.cjs +11 -0
  370. package/build/cjs/{chunk-Q5H4KPSL.cjs.map → chunk-WKKN2KJU.cjs.map} +1 -1
  371. package/build/cjs/{chunk-WE4REEMW.cjs → chunk-YIBSLDUU.cjs} +3 -3
  372. package/build/cjs/chunk-YIBSLDUU.cjs.map +1 -0
  373. package/build/cjs/chunk-YK3PUDSD.cjs +11 -0
  374. package/build/cjs/{chunk-LGGRMQCE.cjs.map → chunk-YK3PUDSD.cjs.map} +1 -1
  375. package/build/cjs/public/experimental/action-form.cjs +8 -8
  376. package/build/cjs/public/experimental/action-form.css +98 -98
  377. package/build/cjs/public/experimental/action-form.css.map +1 -1
  378. package/build/cjs/public/experimental/aip-agent-chat.cjs +2 -0
  379. package/build/cjs/public/experimental/aip-agent-chat.cjs.map +1 -1
  380. package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
  381. package/build/cjs/public/experimental/cbac-picker.css +110 -110
  382. package/build/cjs/public/experimental/cbac-picker.css.map +1 -1
  383. package/build/cjs/public/experimental/document-viewer.cjs +8 -8
  384. package/build/cjs/public/experimental/document-viewer.css +72 -72
  385. package/build/cjs/public/experimental/document-viewer.css.map +1 -1
  386. package/build/cjs/public/experimental/email-viewer.cjs +5 -5
  387. package/build/cjs/public/experimental/excel-viewer.cjs +5 -5
  388. package/build/cjs/public/experimental/filter-list.cjs +18 -18
  389. package/build/cjs/public/experimental/filter-list.css +225 -225
  390. package/build/cjs/public/experimental/filter-list.css.map +1 -1
  391. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  392. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  393. package/build/cjs/public/experimental/object-table.cjs +12 -12
  394. package/build/cjs/public/experimental/object-table.css +151 -151
  395. package/build/cjs/public/experimental/object-table.css.map +1 -1
  396. package/build/cjs/public/experimental/pdf-viewer.cjs +25 -25
  397. package/build/cjs/public/experimental/pdf-viewer.css +72 -72
  398. package/build/cjs/public/experimental/pdf-viewer.css.map +1 -1
  399. package/build/cjs/public/experimental/pdf-viewer.d.cts +1 -1
  400. package/build/cjs/public/experimental/tiff-renderer.cjs +5 -5
  401. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  402. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  403. package/build/cjs/public/experimental.cjs +86 -86
  404. package/build/cjs/public/experimental.css +632 -632
  405. package/build/cjs/public/experimental.css.map +1 -1
  406. package/build/esm/action-form/ActionForm.js.map +1 -1
  407. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  408. package/build/esm/action-form/BaseForm.js +3 -3
  409. package/build/esm/action-form/BaseForm.js.map +1 -1
  410. package/build/esm/action-form/FormField.js.map +1 -1
  411. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  412. package/build/esm/action-form/FormHeader.js.map +1 -1
  413. package/build/esm/action-form/FormSection.js.map +1 -1
  414. package/build/esm/action-form/fields/AsyncDropdownField.js +1 -1
  415. package/build/esm/action-form/fields/AsyncDropdownField.js.map +1 -1
  416. package/build/esm/action-form/fields/CustomField.js.map +1 -1
  417. package/build/esm/action-form/fields/DropdownField.js +2 -2
  418. package/build/esm/action-form/fields/DropdownField.js.map +1 -1
  419. package/build/esm/action-form/fields/FieldBridge.js.map +1 -1
  420. package/build/esm/action-form/fields/FilePickerField.js.map +1 -1
  421. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -1
  422. package/build/esm/action-form/fields/NumberInputField.js.map +1 -1
  423. package/build/esm/action-form/fields/ObjectSelectField.js.map +1 -1
  424. package/build/esm/action-form/fields/ObjectSetField.js.map +1 -1
  425. package/build/esm/action-form/fields/RadioButtonsField.js.map +1 -1
  426. package/build/esm/action-form/fields/SwitchField.js.map +1 -1
  427. package/build/esm/action-form/fields/TextAreaField.js.map +1 -1
  428. package/build/esm/action-form/fields/TextInputField.js.map +1 -1
  429. package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -1
  430. package/build/esm/action-form/utils/extractValidationRules.js.map +1 -1
  431. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -1
  432. package/build/esm/aip-agent-chat/AipAgentChat.js.map +1 -1
  433. package/build/esm/aip-agent-chat/BaseAipAgentChat.js +1 -1
  434. package/build/esm/aip-agent-chat/BaseAipAgentChat.js.map +1 -1
  435. package/build/esm/aip-agent-chat/components/AipAgentChatComposer.js.map +1 -1
  436. package/build/esm/aip-agent-chat/components/AipAgentChatLoader.js.map +1 -1
  437. package/build/esm/aip-agent-chat/components/AipAgentChatMessage.js.map +1 -1
  438. package/build/esm/aip-agent-chat/components/AipAgentChatMessageList.js +1 -1
  439. package/build/esm/aip-agent-chat/components/AipAgentChatMessageList.js.map +1 -1
  440. package/build/esm/aip-agent-chat/components/AipAgentChatModelPicker.js.map +1 -1
  441. package/build/esm/aip-agent-chat/hooks/useChatAutoScroll.js.map +1 -1
  442. package/build/esm/base-components/action-button/ActionButton.js.map +1 -1
  443. package/build/esm/base-components/callout/Callout.js.map +1 -1
  444. package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
  445. package/build/esm/base-components/combobox/Combobox.js.map +1 -1
  446. package/build/esm/base-components/dialog/Dialog.js.map +1 -1
  447. package/build/esm/base-components/draggable-list/DraggableList.js +1 -1
  448. package/build/esm/base-components/draggable-list/DraggableList.js.map +1 -1
  449. package/build/esm/base-components/icon/BlueprintIcon.js.map +1 -1
  450. package/build/esm/base-components/search-bar/SearchBar.js.map +1 -1
  451. package/build/esm/base-components/searchable-menu/SearchableMenu.js.map +1 -1
  452. package/build/esm/base-components/select/Select.js.map +1 -1
  453. package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -1
  454. package/build/esm/base-components/switch/Switch.js.map +1 -1
  455. package/build/esm/base-components/tooltip/Tooltip.js.map +1 -1
  456. package/build/esm/cbac-picker/CbacBanner.js.map +1 -1
  457. package/build/esm/cbac-picker/CbacBannerPopover.js.map +1 -1
  458. package/build/esm/cbac-picker/CbacPicker.js.map +1 -1
  459. package/build/esm/cbac-picker/CbacPickerDialog.js.map +1 -1
  460. package/build/esm/cbac-picker/base/BaseCbacBanner.js.map +1 -1
  461. package/build/esm/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -1
  462. package/build/esm/cbac-picker/base/BaseCbacPicker.js +1 -1
  463. package/build/esm/cbac-picker/base/BaseCbacPicker.js.map +1 -1
  464. package/build/esm/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -1
  465. package/build/esm/cbac-picker/base/CategoryMarkingGroup.js +1 -1
  466. package/build/esm/cbac-picker/base/CategoryMarkingGroup.js.map +1 -1
  467. package/build/esm/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -1
  468. package/build/esm/cbac-picker/base/InfoBanner.js.map +1 -1
  469. package/build/esm/cbac-picker/base/MarkingButton.js +1 -1
  470. package/build/esm/cbac-picker/base/MarkingButton.js.map +1 -1
  471. package/build/esm/cbac-picker/base/MaxClassificationField.js.map +1 -1
  472. package/build/esm/cbac-picker/base/OverflowButton.js +1 -1
  473. package/build/esm/cbac-picker/base/OverflowButton.js.map +1 -1
  474. package/build/esm/cbac-picker/base/OverflowItem.js +1 -1
  475. package/build/esm/cbac-picker/base/OverflowItem.js.map +1 -1
  476. package/build/esm/cbac-picker/base/ValidationWarning.js.map +1 -1
  477. package/build/esm/cbac-picker/base/selectionStateHelpers.js.map +1 -1
  478. package/build/esm/cbac-picker/useCbacPickerState.js.map +1 -1
  479. package/build/esm/cbac-picker/useCbacSelection.js.map +1 -1
  480. package/build/esm/cbac-picker/useConstraintCallout.js.map +1 -1
  481. package/build/esm/cbac-picker/utils/cbacPickerUtils.js.map +1 -1
  482. package/build/esm/cbac-picker/utils/errorMessages.js.map +1 -1
  483. package/build/esm/cbac-picker/utils/selectionLogic.js.map +1 -1
  484. package/build/esm/cbac-picker/utils/validationMessages.js.map +1 -1
  485. package/build/esm/document-viewer/DocumentViewer.js +1 -1
  486. package/build/esm/document-viewer/DocumentViewer.js.map +1 -1
  487. package/build/esm/document-viewer/DocumentViewerApi.js.map +1 -1
  488. package/build/esm/document-viewer/TiffDocumentViewer.js +1 -1
  489. package/build/esm/document-viewer/TiffDocumentViewer.js.map +1 -1
  490. package/build/esm/document-viewer/hooks/useTiffToPdf.js.map +1 -1
  491. package/build/esm/email-viewer/BaseEmailViewer.js.map +1 -1
  492. package/build/esm/email-viewer/EmailViewer.js +1 -1
  493. package/build/esm/email-viewer/EmailViewer.js.map +1 -1
  494. package/build/esm/email-viewer/EmailViewerApi.js.map +1 -1
  495. package/build/esm/email-viewer/parseEmail.js.map +1 -1
  496. package/build/esm/excel-viewer/BaseExcelViewer.js +1 -0
  497. package/build/esm/excel-viewer/BaseExcelViewer.js.map +1 -1
  498. package/build/esm/excel-viewer/ExcelViewer.js +1 -1
  499. package/build/esm/excel-viewer/ExcelViewer.js.map +1 -1
  500. package/build/esm/excel-viewer/ExcelViewerApi.js.map +1 -1
  501. package/build/esm/excel-viewer/parseSpreadsheet.js.map +1 -1
  502. package/build/esm/filter-list/FilterInput.js.map +1 -1
  503. package/build/esm/filter-list/FilterList.js.map +1 -1
  504. package/build/esm/filter-list/FilterListApi.js.map +1 -1
  505. package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
  506. package/build/esm/filter-list/base/AddFilterPopover.js +1 -1
  507. package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -1
  508. package/build/esm/filter-list/base/BaseFilterList.js +1 -1
  509. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
  510. package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -1
  511. package/build/esm/filter-list/base/ExcludeDropdown.js +1 -1
  512. package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -1
  513. package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -1
  514. package/build/esm/filter-list/base/FilterListContent.js +1 -1
  515. package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
  516. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  517. package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
  518. package/build/esm/filter-list/base/FilterPopover.js.map +1 -1
  519. package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -1
  520. package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
  521. package/build/esm/filter-list/base/inputs/DateRangeHistogramInput.js.map +1 -1
  522. package/build/esm/filter-list/base/inputs/EmptyStringLabel.js +1 -0
  523. package/build/esm/filter-list/base/inputs/EmptyStringLabel.js.map +1 -1
  524. package/build/esm/filter-list/base/inputs/HistogramTooltip.js.map +1 -1
  525. package/build/esm/filter-list/base/inputs/ListogramInput.js +2 -2
  526. package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -1
  527. package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -1
  528. package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
  529. package/build/esm/filter-list/base/inputs/MultiSelectDropdownLayout.js.map +1 -1
  530. package/build/esm/filter-list/base/inputs/MultiSelectInlineLayout.js.map +1 -1
  531. package/build/esm/filter-list/base/inputs/MultiSelectInput.js +2 -2
  532. package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -1
  533. package/build/esm/filter-list/base/inputs/NoValueLabel.js.map +1 -1
  534. package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -1
  535. package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -1
  536. package/build/esm/filter-list/base/inputs/OptionLabel.js.map +1 -1
  537. package/build/esm/filter-list/base/inputs/RangeInput.js +1 -1
  538. package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -1
  539. package/build/esm/filter-list/base/inputs/SelectInputSkeleton.js.map +1 -1
  540. package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
  541. package/build/esm/filter-list/base/inputs/SingleSelectInput.js +1 -1
  542. package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -1
  543. package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -1
  544. package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -1
  545. package/build/esm/filter-list/base/inputs/ToggleInput.js.map +1 -1
  546. package/build/esm/filter-list/base/inputs/comboboxFilter.js.map +1 -1
  547. package/build/esm/filter-list/base/inputs/createDateHistogramBuckets.js.map +1 -1
  548. package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -1
  549. package/build/esm/filter-list/hooks/useDualScopeAggregation.js.map +1 -1
  550. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  551. package/build/esm/filter-list/hooks/useFilterPropertyAggregation.js.map +1 -1
  552. package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -1
  553. package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -1
  554. package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -1
  555. package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -1
  556. package/build/esm/filter-list/inputs/LinkedPropertyInput.js +1 -1
  557. package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -1
  558. package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -1
  559. package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -1
  560. package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -1
  561. package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -1
  562. package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -1
  563. package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -1
  564. package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -1
  565. package/build/esm/filter-list/inputs/StaticValuesFilterInput.js.map +1 -1
  566. package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -1
  567. package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -1
  568. package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -1
  569. package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
  570. package/build/esm/filter-list/types/KeywordSearchTypes.js.map +1 -1
  571. package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
  572. package/build/esm/filter-list/types/StaticValuesTypes.js.map +1 -1
  573. package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -1
  574. package/build/esm/filter-list/utils/coerceFilterValue.js.map +1 -1
  575. package/build/esm/filter-list/utils/emptyFilterDisplayState.js.map +1 -1
  576. package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -1
  577. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  578. package/build/esm/filter-list/utils/filterValues.js.map +1 -1
  579. package/build/esm/filter-list/utils/getFilterKey.js.map +1 -1
  580. package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -1
  581. package/build/esm/filter-list/utils/narrowObjectSet.js.map +1 -1
  582. package/build/esm/filter-list/utils/summarizeFilterValue.js.map +1 -1
  583. package/build/esm/images/image-viewer/BaseImageViewer.js.map +1 -1
  584. package/build/esm/images/image-viewer/ImageViewer.js.map +1 -1
  585. package/build/esm/images/image-viewer/ImageViewerApi.js.map +1 -1
  586. package/build/esm/images/tiff-renderer/TiffRenderer.js +1 -0
  587. package/build/esm/images/tiff-renderer/TiffRenderer.js.map +1 -1
  588. package/build/esm/images/tiff-renderer/TiffViewerMedia.js.map +1 -1
  589. package/build/esm/markdown-renderer/MarkdownRenderer.js.map +1 -1
  590. package/build/esm/markdown-renderer/MarkdownViewerMedia.js.map +1 -1
  591. package/build/esm/object-table/CellContextMenu.js.map +1 -1
  592. package/build/esm/object-table/ColumnConfigDialog.js.map +1 -1
  593. package/build/esm/object-table/DefaultCellRenderer.js +4 -3
  594. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
  595. package/build/esm/object-table/EditableCell.js +1 -1
  596. package/build/esm/object-table/EditableCell.js.map +1 -1
  597. package/build/esm/object-table/LoadingCell.js.map +1 -1
  598. package/build/esm/object-table/LoadingRow.js +1 -1
  599. package/build/esm/object-table/LoadingRow.js.map +1 -1
  600. package/build/esm/object-table/LoadingStateTable.js +3 -3
  601. package/build/esm/object-table/LoadingStateTable.js.map +1 -1
  602. package/build/esm/object-table/MultiColumnSortDialog.js +1 -1
  603. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
  604. package/build/esm/object-table/NonIdealState.js.map +1 -1
  605. package/build/esm/object-table/ObjectTable.js.map +1 -1
  606. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  607. package/build/esm/object-table/SelectionCells.js.map +1 -1
  608. package/build/esm/object-table/SortableItemsList.js.map +1 -1
  609. package/build/esm/object-table/Table.js +1 -1
  610. package/build/esm/object-table/Table.js.map +1 -1
  611. package/build/esm/object-table/TableBody.js +1 -1
  612. package/build/esm/object-table/TableBody.js.map +1 -1
  613. package/build/esm/object-table/TableCell.js +1 -1
  614. package/build/esm/object-table/TableCell.js.map +1 -1
  615. package/build/esm/object-table/TableEditContainer.js.map +1 -1
  616. package/build/esm/object-table/TableHeader.js +1 -1
  617. package/build/esm/object-table/TableHeader.js.map +1 -1
  618. package/build/esm/object-table/TableHeaderContent.js.map +1 -1
  619. package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
  620. package/build/esm/object-table/TableRow.js.map +1 -1
  621. package/build/esm/object-table/components/AsyncValueCell.js.map +1 -1
  622. package/build/esm/object-table/components/CbacMarkingCell.js.map +1 -1
  623. package/build/esm/object-table/components/DatePickerCellField.js +1 -1
  624. package/build/esm/object-table/components/DatePickerCellField.js.map +1 -1
  625. package/build/esm/object-table/components/DropdownCellField.js +1 -1
  626. package/build/esm/object-table/components/DropdownCellField.js.map +1 -1
  627. package/build/esm/object-table/components/MandatoryMarkingCell.js.map +1 -1
  628. package/build/esm/object-table/components/ReadonlyDisplayCell.js.map +1 -1
  629. package/build/esm/object-table/components/TextInputCellField.js.map +1 -1
  630. package/build/esm/object-table/hooks/useCellContextMenu.js.map +1 -1
  631. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  632. package/build/esm/object-table/hooks/useColumnPinning.js.map +1 -1
  633. package/build/esm/object-table/hooks/useColumnResize.js.map +1 -1
  634. package/build/esm/object-table/hooks/useColumnVisibility.js.map +1 -1
  635. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
  636. package/build/esm/object-table/hooks/useFocusedRow.js.map +1 -1
  637. package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -1
  638. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  639. package/build/esm/object-table/hooks/useObjectTableSnapshot.js.map +1 -1
  640. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  641. package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -1
  642. package/build/esm/object-table/hooks/useTableSorting.js.map +1 -1
  643. package/build/esm/object-table/utils/AsyncCellData.js.map +1 -1
  644. package/build/esm/object-table/utils/PortalTracker.js.map +1 -1
  645. package/build/esm/object-table/utils/deriveSelectionObjectSet.js.map +1 -1
  646. package/build/esm/object-table/utils/editableUtils.js.map +1 -1
  647. package/build/esm/object-table/utils/functionColumns.js.map +1 -1
  648. package/build/esm/object-table/utils/getColumnPinningStyles.js.map +1 -1
  649. package/build/esm/object-table/utils/getRowId.js.map +1 -1
  650. package/build/esm/object-table/utils/objectTableSnapshot.js.map +1 -1
  651. package/build/esm/object-table/utils/shouldShowEditableCell.js.map +1 -1
  652. package/build/esm/object-table/utils/types.js.map +1 -1
  653. package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -1
  654. package/build/esm/pdf-viewer/PdfViewer.js.map +1 -1
  655. package/build/esm/pdf-viewer/PdfViewerContext.js.map +1 -1
  656. package/build/esm/pdf-viewer/components/PdfAnnotationOverlay.js.map +1 -1
  657. package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -1
  658. package/build/esm/pdf-viewer/components/PdfViewerContent.js +1 -1
  659. package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -1
  660. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +1 -1
  661. package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -1
  662. package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -1
  663. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js +1 -1
  664. package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -1
  665. package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -1
  666. package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -1
  667. package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -1
  668. package/build/esm/pdf-viewer/constants.js.map +1 -1
  669. package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -1
  670. package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -1
  671. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  672. package/build/esm/pdf-viewer/hooks/usePdfFormFields.js.map +1 -1
  673. package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -1
  674. package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -1
  675. package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -1
  676. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
  677. package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -1
  678. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
  679. package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -1
  680. package/build/esm/public/experimental/action-form.js.map +1 -1
  681. package/build/esm/public/experimental/cbac-picker.js.map +1 -1
  682. package/build/esm/public/experimental/document-viewer.js.map +1 -1
  683. package/build/esm/public/experimental/email-viewer.js.map +1 -1
  684. package/build/esm/public/experimental/excel-viewer.js.map +1 -1
  685. package/build/esm/public/experimental/filter-list.js.map +1 -1
  686. package/build/esm/public/experimental/image-viewer.js.map +1 -1
  687. package/build/esm/public/experimental/markdown-renderer.js.map +1 -1
  688. package/build/esm/public/experimental/object-table.js.map +1 -1
  689. package/build/esm/public/experimental/pdf-viewer.js.map +1 -1
  690. package/build/esm/public/experimental/tiff-renderer.js.map +1 -1
  691. package/build/esm/public/experimental/video-viewer.js.map +1 -1
  692. package/build/esm/public/experimental/xml-viewer.js.map +1 -1
  693. package/build/esm/shared/ErrorBoundary.js.map +1 -1
  694. package/build/esm/shared/PortalContainerContext.js.map +1 -1
  695. package/build/esm/shared/PortalDismissLayer.js.map +1 -1
  696. package/build/esm/shared/calendar/DateCalendar.js +1 -1
  697. package/build/esm/shared/calendar/DateCalendar.js.map +1 -1
  698. package/build/esm/shared/calendar/DatePicker.js +2 -2
  699. package/build/esm/shared/calendar/DatePicker.js.map +1 -1
  700. package/build/esm/shared/calendar/DateRangeCalendar.js.map +1 -1
  701. package/build/esm/shared/calendar/DateRangePicker.js +2 -2
  702. package/build/esm/shared/calendar/DateRangePicker.js.map +1 -1
  703. package/build/esm/shared/calendar/LazyDateCalendar.js.map +1 -1
  704. package/build/esm/shared/calendar/LazyDateRangeCalendar.js.map +1 -1
  705. package/build/esm/shared/calendar/TimePicker.js.map +1 -1
  706. package/build/esm/shared/calendar/calendarShared.js.map +1 -1
  707. package/build/esm/shared/calendar/useDateEditState.js.map +1 -1
  708. package/build/esm/shared/dateUtils.js.map +1 -1
  709. package/build/esm/shared/hooks/useAsyncAction.js.map +1 -1
  710. package/build/esm/shared/hooks/useDebouncedValue.js.map +1 -1
  711. package/build/esm/shared/hooks/useEventCallback.js.map +1 -1
  712. package/build/esm/shared/hooks/useInfiniteScroll.js.map +1 -1
  713. package/build/esm/shared/hooks/useMediaContents.js.map +1 -1
  714. package/build/esm/theme/OsdkThemeContext.js.map +1 -1
  715. package/build/esm/theme/OsdkThemeProvider.js.map +1 -1
  716. package/build/esm/theme/useOsdkTheme.js.map +1 -1
  717. package/build/esm/theme/useSystemTheme.js.map +1 -1
  718. package/build/esm/util/UserAgent.js +1 -1
  719. package/build/esm/util/UserAgent.js.map +1 -1
  720. package/build/esm/util/withOsdkMetrics.js.map +1 -1
  721. package/build/esm/video-viewer/BaseVideoViewer.js.map +1 -1
  722. package/build/esm/video-viewer/VideoViewer.js.map +1 -1
  723. package/build/esm/video-viewer/VideoViewerApi.js.map +1 -1
  724. package/build/esm/xml-viewer/BaseXmlViewer.js.map +1 -1
  725. package/build/esm/xml-viewer/XmlViewer.js.map +1 -1
  726. package/build/esm/xml-viewer/XmlViewerApi.js.map +1 -1
  727. package/build/types/action-form/ActionForm.d.ts.map +1 -1
  728. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  729. package/build/types/action-form/BaseForm.d.ts.map +1 -1
  730. package/build/types/action-form/FormField.d.ts.map +1 -1
  731. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  732. package/build/types/action-form/FormHeader.d.ts.map +1 -1
  733. package/build/types/action-form/FormSection.d.ts.map +1 -1
  734. package/build/types/action-form/fields/AsyncDropdownField.d.ts.map +1 -1
  735. package/build/types/action-form/fields/CustomField.d.ts.map +1 -1
  736. package/build/types/action-form/fields/DropdownField.d.ts.map +1 -1
  737. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -1
  738. package/build/types/action-form/fields/FilePickerField.d.ts.map +1 -1
  739. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -1
  740. package/build/types/action-form/fields/NumberInputField.d.ts.map +1 -1
  741. package/build/types/action-form/fields/ObjectSelectField.d.ts.map +1 -1
  742. package/build/types/action-form/fields/ObjectSetField.d.ts.map +1 -1
  743. package/build/types/action-form/fields/RadioButtonsField.d.ts.map +1 -1
  744. package/build/types/action-form/fields/SwitchField.d.ts.map +1 -1
  745. package/build/types/action-form/fields/TextAreaField.d.ts.map +1 -1
  746. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -1
  747. package/build/types/action-form/utils/extractValidationRules.d.ts.map +1 -1
  748. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -1
  749. package/build/types/aip-agent-chat/AipAgentChat.d.ts.map +1 -1
  750. package/build/types/aip-agent-chat/BaseAipAgentChat.d.ts.map +1 -1
  751. package/build/types/aip-agent-chat/components/AipAgentChatComposer.d.ts.map +1 -1
  752. package/build/types/aip-agent-chat/components/AipAgentChatLoader.d.ts.map +1 -1
  753. package/build/types/aip-agent-chat/components/AipAgentChatMessage.d.ts.map +1 -1
  754. package/build/types/aip-agent-chat/components/AipAgentChatMessageList.d.ts.map +1 -1
  755. package/build/types/aip-agent-chat/components/AipAgentChatModelPicker.d.ts.map +1 -1
  756. package/build/types/base-components/action-button/ActionButton.d.ts.map +1 -1
  757. package/build/types/base-components/callout/Callout.d.ts.map +1 -1
  758. package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -1
  759. package/build/types/base-components/combobox/Combobox.d.ts.map +1 -1
  760. package/build/types/base-components/dialog/Dialog.d.ts.map +1 -1
  761. package/build/types/base-components/draggable-list/DraggableList.d.ts.map +1 -1
  762. package/build/types/base-components/search-bar/SearchBar.d.ts.map +1 -1
  763. package/build/types/base-components/searchable-menu/SearchableMenu.d.ts.map +1 -1
  764. package/build/types/base-components/select/Select.d.ts.map +1 -1
  765. package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -1
  766. package/build/types/base-components/switch/Switch.d.ts.map +1 -1
  767. package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -1
  768. package/build/types/cbac-picker/CbacBanner.d.ts.map +1 -1
  769. package/build/types/cbac-picker/CbacBannerPopover.d.ts.map +1 -1
  770. package/build/types/cbac-picker/CbacPicker.d.ts.map +1 -1
  771. package/build/types/cbac-picker/CbacPickerDialog.d.ts.map +1 -1
  772. package/build/types/cbac-picker/base/BaseCbacBanner.d.ts.map +1 -1
  773. package/build/types/cbac-picker/base/BaseCbacBannerPopover.d.ts.map +1 -1
  774. package/build/types/cbac-picker/base/BaseCbacPicker.d.ts.map +1 -1
  775. package/build/types/cbac-picker/base/BaseCbacPickerDialog.d.ts.map +1 -1
  776. package/build/types/cbac-picker/base/CategoryMarkingGroup.d.ts.map +1 -1
  777. package/build/types/cbac-picker/base/CbacPickerDialogFooter.d.ts.map +1 -1
  778. package/build/types/cbac-picker/base/InfoBanner.d.ts.map +1 -1
  779. package/build/types/cbac-picker/base/MarkingButton.d.ts.map +1 -1
  780. package/build/types/cbac-picker/base/MaxClassificationField.d.ts.map +1 -1
  781. package/build/types/cbac-picker/base/OverflowButton.d.ts.map +1 -1
  782. package/build/types/cbac-picker/base/OverflowItem.d.ts.map +1 -1
  783. package/build/types/cbac-picker/base/ValidationWarning.d.ts.map +1 -1
  784. package/build/types/cbac-picker/useCbacPickerState.d.ts.map +1 -1
  785. package/build/types/cbac-picker/useCbacSelection.d.ts.map +1 -1
  786. package/build/types/cbac-picker/useConstraintCallout.d.ts.map +1 -1
  787. package/build/types/cbac-picker/utils/errorMessages.d.ts.map +1 -1
  788. package/build/types/document-viewer/DocumentViewer.d.ts.map +1 -1
  789. package/build/types/document-viewer/DocumentViewerApi.d.ts.map +1 -1
  790. package/build/types/document-viewer/TiffDocumentViewer.d.ts.map +1 -1
  791. package/build/types/document-viewer/hooks/useTiffToPdf.d.ts.map +1 -1
  792. package/build/types/email-viewer/BaseEmailViewer.d.ts.map +1 -1
  793. package/build/types/email-viewer/EmailViewer.d.ts.map +1 -1
  794. package/build/types/email-viewer/EmailViewerApi.d.ts.map +1 -1
  795. package/build/types/email-viewer/parseEmail.d.ts.map +1 -1
  796. package/build/types/excel-viewer/BaseExcelViewer.d.ts.map +1 -1
  797. package/build/types/excel-viewer/ExcelViewer.d.ts.map +1 -1
  798. package/build/types/excel-viewer/ExcelViewerApi.d.ts.map +1 -1
  799. package/build/types/excel-viewer/parseSpreadsheet.d.ts.map +1 -1
  800. package/build/types/filter-list/FilterInput.d.ts.map +1 -1
  801. package/build/types/filter-list/FilterList.d.ts.map +1 -1
  802. package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
  803. package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
  804. package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -1
  805. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -1
  806. package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -1
  807. package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -1
  808. package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -1
  809. package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
  810. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  811. package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
  812. package/build/types/filter-list/base/FilterPopover.d.ts.map +1 -1
  813. package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -1
  814. package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -1
  815. package/build/types/filter-list/base/inputs/DateRangeHistogramInput.d.ts.map +1 -1
  816. package/build/types/filter-list/base/inputs/EmptyStringLabel.d.ts.map +1 -1
  817. package/build/types/filter-list/base/inputs/HistogramTooltip.d.ts.map +1 -1
  818. package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -1
  819. package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -1
  820. package/build/types/filter-list/base/inputs/MultiDateInput.d.ts.map +1 -1
  821. package/build/types/filter-list/base/inputs/MultiSelectDropdownLayout.d.ts.map +1 -1
  822. package/build/types/filter-list/base/inputs/MultiSelectInlineLayout.d.ts.map +1 -1
  823. package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -1
  824. package/build/types/filter-list/base/inputs/NoValueLabel.d.ts.map +1 -1
  825. package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -1
  826. package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -1
  827. package/build/types/filter-list/base/inputs/OptionLabel.d.ts.map +1 -1
  828. package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -1
  829. package/build/types/filter-list/base/inputs/SelectInputSkeleton.d.ts.map +1 -1
  830. package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
  831. package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -1
  832. package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -1
  833. package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -1
  834. package/build/types/filter-list/base/inputs/ToggleInput.d.ts.map +1 -1
  835. package/build/types/filter-list/base/inputs/createDateHistogramBuckets.d.ts.map +1 -1
  836. package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -1
  837. package/build/types/filter-list/hooks/useDualScopeAggregation.d.ts.map +1 -1
  838. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  839. package/build/types/filter-list/hooks/useFilterPropertyAggregation.d.ts.map +1 -1
  840. package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -1
  841. package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -1
  842. package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -1
  843. package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -1
  844. package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -1
  845. package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -1
  846. package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -1
  847. package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -1
  848. package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -1
  849. package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -1
  850. package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -1
  851. package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -1
  852. package/build/types/filter-list/inputs/StaticValuesFilterInput.d.ts.map +1 -1
  853. package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -1
  854. package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -1
  855. package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -1
  856. package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
  857. package/build/types/filter-list/types/KeywordSearchTypes.d.ts.map +1 -1
  858. package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
  859. package/build/types/filter-list/types/StaticValuesTypes.d.ts.map +1 -1
  860. package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -1
  861. package/build/types/filter-list/utils/emptyFilterDisplayState.d.ts.map +1 -1
  862. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
  863. package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
  864. package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -1
  865. package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -1
  866. package/build/types/filter-list/utils/narrowObjectSet.d.ts.map +1 -1
  867. package/build/types/filter-list/utils/summarizeFilterValue.d.ts.map +1 -1
  868. package/build/types/images/image-viewer/BaseImageViewer.d.ts.map +1 -1
  869. package/build/types/images/image-viewer/ImageViewer.d.ts.map +1 -1
  870. package/build/types/images/image-viewer/ImageViewerApi.d.ts.map +1 -1
  871. package/build/types/images/tiff-renderer/TiffRenderer.d.ts.map +1 -1
  872. package/build/types/images/tiff-renderer/TiffViewerMedia.d.ts.map +1 -1
  873. package/build/types/markdown-renderer/MarkdownRenderer.d.ts.map +1 -1
  874. package/build/types/markdown-renderer/MarkdownViewerMedia.d.ts.map +1 -1
  875. package/build/types/object-table/CellContextMenu.d.ts.map +1 -1
  876. package/build/types/object-table/ColumnConfigDialog.d.ts.map +1 -1
  877. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
  878. package/build/types/object-table/EditableCell.d.ts.map +1 -1
  879. package/build/types/object-table/LoadingCell.d.ts.map +1 -1
  880. package/build/types/object-table/LoadingRow.d.ts.map +1 -1
  881. package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
  882. package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -1
  883. package/build/types/object-table/NonIdealState.d.ts.map +1 -1
  884. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  885. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  886. package/build/types/object-table/SelectionCells.d.ts.map +1 -1
  887. package/build/types/object-table/SortableItemsList.d.ts.map +1 -1
  888. package/build/types/object-table/Table.d.ts.map +1 -1
  889. package/build/types/object-table/TableBody.d.ts.map +1 -1
  890. package/build/types/object-table/TableCell.d.ts.map +1 -1
  891. package/build/types/object-table/TableEditContainer.d.ts.map +1 -1
  892. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  893. package/build/types/object-table/TableHeaderContent.d.ts.map +1 -1
  894. package/build/types/object-table/TableHeaderWithPopover.d.ts.map +1 -1
  895. package/build/types/object-table/TableRow.d.ts.map +1 -1
  896. package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -1
  897. package/build/types/object-table/components/CbacMarkingCell.d.ts.map +1 -1
  898. package/build/types/object-table/components/DatePickerCellField.d.ts.map +1 -1
  899. package/build/types/object-table/components/DropdownCellField.d.ts.map +1 -1
  900. package/build/types/object-table/components/MandatoryMarkingCell.d.ts.map +1 -1
  901. package/build/types/object-table/components/ReadonlyDisplayCell.d.ts.map +1 -1
  902. package/build/types/object-table/components/TextInputCellField.d.ts.map +1 -1
  903. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
  904. package/build/types/object-table/hooks/useColumnPinning.d.ts.map +1 -1
  905. package/build/types/object-table/hooks/useColumnVisibility.d.ts.map +1 -1
  906. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
  907. package/build/types/object-table/hooks/useFocusedRow.d.ts.map +1 -1
  908. package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -1
  909. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  910. package/build/types/object-table/hooks/useObjectTableSnapshot.d.ts.map +1 -1
  911. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  912. package/build/types/object-table/hooks/useSelectionColumn.d.ts.map +1 -1
  913. package/build/types/object-table/hooks/useTableSorting.d.ts.map +1 -1
  914. package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -1
  915. package/build/types/object-table/utils/PortalTracker.d.ts.map +1 -1
  916. package/build/types/object-table/utils/deriveSelectionObjectSet.d.ts.map +1 -1
  917. package/build/types/object-table/utils/functionColumns.d.ts.map +1 -1
  918. package/build/types/object-table/utils/getRowId.d.ts.map +1 -1
  919. package/build/types/object-table/utils/objectTableSnapshot.d.ts.map +1 -1
  920. package/build/types/object-table/utils/types.d.ts.map +1 -1
  921. package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -1
  922. package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -1
  923. package/build/types/pdf-viewer/PdfViewerContext.d.ts.map +1 -1
  924. package/build/types/pdf-viewer/components/PdfAnnotationOverlay.d.ts.map +1 -1
  925. package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -1
  926. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -1
  927. package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -1
  928. package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -1
  929. package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -1
  930. package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -1
  931. package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts.map +1 -1
  932. package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -1
  933. package/build/types/pdf-viewer/constants.d.ts.map +1 -1
  934. package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -1
  935. package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts.map +1 -1
  936. package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts.map +1 -1
  937. package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts.map +1 -1
  938. package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -1
  939. package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -1
  940. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -1
  941. package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -1
  942. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -1
  943. package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -1
  944. package/build/types/shared/ErrorBoundary.d.ts.map +1 -1
  945. package/build/types/shared/PortalContainerContext.d.ts.map +1 -1
  946. package/build/types/shared/PortalDismissLayer.d.ts.map +1 -1
  947. package/build/types/shared/calendar/DateCalendar.d.ts.map +1 -1
  948. package/build/types/shared/calendar/DatePicker.d.ts.map +1 -1
  949. package/build/types/shared/calendar/DateRangeCalendar.d.ts.map +1 -1
  950. package/build/types/shared/calendar/DateRangePicker.d.ts.map +1 -1
  951. package/build/types/shared/calendar/LazyDateCalendar.d.ts.map +1 -1
  952. package/build/types/shared/calendar/LazyDateRangeCalendar.d.ts.map +1 -1
  953. package/build/types/shared/calendar/TimePicker.d.ts.map +1 -1
  954. package/build/types/shared/calendar/useDateEditState.d.ts.map +1 -1
  955. package/build/types/shared/dateUtils.d.ts.map +1 -1
  956. package/build/types/shared/hooks/useAsyncAction.d.ts.map +1 -1
  957. package/build/types/shared/hooks/useInfiniteScroll.d.ts.map +1 -1
  958. package/build/types/theme/OsdkThemeContext.d.ts.map +1 -1
  959. package/build/types/theme/OsdkThemeProvider.d.ts.map +1 -1
  960. package/build/types/theme/useOsdkTheme.d.ts.map +1 -1
  961. package/build/types/theme/useSystemTheme.d.ts.map +1 -1
  962. package/build/types/util/UserAgent.d.ts.map +1 -1
  963. package/build/types/util/withOsdkMetrics.d.ts.map +1 -1
  964. package/build/types/video-viewer/BaseVideoViewer.d.ts.map +1 -1
  965. package/build/types/video-viewer/VideoViewer.d.ts.map +1 -1
  966. package/build/types/video-viewer/VideoViewerApi.d.ts.map +1 -1
  967. package/build/types/xml-viewer/BaseXmlViewer.d.ts.map +1 -1
  968. package/build/types/xml-viewer/XmlViewer.d.ts.map +1 -1
  969. package/build/types/xml-viewer/XmlViewerApi.d.ts.map +1 -1
  970. package/package.json +9 -10
  971. package/build/cjs/DateCalendar-FTW3OIEP.css.map +0 -1
  972. package/build/cjs/DateRangeCalendar-I4JHCZAK.css.map +0 -1
  973. package/build/cjs/DateRangeCalendar-PHC3VPW3.cjs +0 -12
  974. package/build/cjs/chunk-4VNWCW75.cjs.map +0 -1
  975. package/build/cjs/chunk-CASYBF4M.cjs.map +0 -1
  976. package/build/cjs/chunk-DA22W6ZO.cjs.map +0 -1
  977. package/build/cjs/chunk-F4JELV7M.cjs +0 -11
  978. package/build/cjs/chunk-IHVPE5CD.cjs.map +0 -1
  979. package/build/cjs/chunk-LGGRMQCE.cjs +0 -11
  980. package/build/cjs/chunk-MMPVBH5H.cjs.map +0 -1
  981. package/build/cjs/chunk-PYOEFNQH.cjs +0 -11
  982. package/build/cjs/chunk-Q5H4KPSL.cjs +0 -11
  983. package/build/cjs/chunk-VRTFHF24.cjs +0 -11
  984. package/build/cjs/chunk-W6DWGABB.cjs +0 -11
  985. package/build/cjs/chunk-WE4REEMW.cjs.map +0 -1
  986. package/build/cjs/chunk-XK4H7EHE.cjs.map +0 -1
  987. package/build/cjs/chunk-YTDSW5OV.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createDateHistogramBuckets.js","names":["addDays","addMonths","addYears","differenceInCalendarDays","format","startOfDay","startOfMonth","startOfYear","SHORT_MONTH_FORMATTER","Intl","DateTimeFormat","undefined","month","createDateHistogramBuckets","pairs","range","formatDate","formatTickLabel","length","buckets","subtitle","granularity","span","Math","max","min","start","dayCount","counts","Array","fill","value","count","idx","i","push","tickLabel","end","months","cursor","getTime","monthStart","findIndex","m","years","yearStart","y","computeSubtitle","rangeMin","rangeMax","sameMonth","getFullYear","getMonth","sameYear"],"sources":["createDateHistogramBuckets.ts"],"sourcesContent":["/*\n * Copyright 2026 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 {\n addDays,\n addMonths,\n addYears,\n differenceInCalendarDays,\n format,\n startOfDay,\n startOfMonth,\n startOfYear,\n} from \"date-fns\";\nimport type { HistogramBucket } from \"./createHistogramBuckets.js\";\n\nconst SHORT_MONTH_FORMATTER = new Intl.DateTimeFormat(undefined, {\n month: \"short\",\n});\n\nexport type DateHistogramGranularity = \"day\" | \"month\" | \"year\";\n\nexport interface DateHistogramData {\n buckets: Array<HistogramBucket<Date>>;\n /** Period label rendered as the bottom-center subtitle (e.g. \"2020-05\"). */\n subtitle: string;\n granularity: DateHistogramGranularity;\n}\n\ninterface ValueCountPair {\n value: Date;\n count: number;\n}\n\n/**\n * Picks calendar-aligned histogram buckets for a date series.\n *\n * Granularity is chosen from the data span:\n * span ≤ 31 days → daily buckets, ticks \"1\" / \"2\" / ... / \"31\"\n * span ≤ 365 days → monthly buckets, ticks \"Jan\" / \"Feb\" / ... (locale-aware)\n * span > 365 days → yearly buckets, ticks \"2020\" / \"2021\" / ...\n *\n * Month ticks use `Intl.DateTimeFormat(..., { month: \"short\" })` so each\n * browser locale renders its native short-month names rather than getting\n * English-only \"Jan\"/\"Feb\". Day and year ticks remain locale-neutral integers.\n *\n * The subtitle reflects the surrounding calendar context — e.g. \"2020-05\"\n * for a daily histogram inside one month, \"2020\" for a monthly histogram\n * inside one year. When the data straddles multiple periods (e.g. monthly\n * histogram across multiple years) the subtitle is empty so the per-bucket\n * tick labels stay self-describing.\n *\n * @param formatDate Consumer-provided display formatter. Used for the\n * subtitle only.\n * @param formatTickLabel Optional override for per-bucket tick labels.\n * Receives the bucket's start `Date` and the chosen granularity.\n */\nexport function createDateHistogramBuckets(\n pairs: ReadonlyArray<ValueCountPair>,\n range: { min: Date; max: Date },\n formatDate?: (date: Date) => string,\n formatTickLabel?: (\n date: Date,\n granularity: DateHistogramGranularity,\n ) => string,\n): DateHistogramData {\n if (pairs.length === 0) {\n return { buckets: [], subtitle: \"\", granularity: \"day\" };\n }\n\n const span = Math.max(\n 0,\n differenceInCalendarDays(range.max, range.min),\n );\n\n const granularity: DateHistogramGranularity = span <= 31\n ? \"day\"\n : span <= 365\n ? \"month\"\n : \"year\";\n\n const buckets: Array<HistogramBucket<Date>> = [];\n\n if (granularity === \"day\") {\n const start = startOfDay(range.min);\n const dayCount = span + 1;\n const counts = new Array<number>(dayCount).fill(0);\n for (const { value, count } of pairs) {\n const idx = differenceInCalendarDays(value, start);\n if (idx >= 0 && idx < dayCount) {\n counts[idx] += count;\n }\n }\n for (let i = 0; i < dayCount; i++) {\n const min = addDays(start, i);\n const max = addDays(start, i + 1);\n buckets.push({\n min,\n max,\n count: counts[i],\n tickLabel: formatTickLabel != null\n ? formatTickLabel(min, \"day\")\n : format(min, \"d\"),\n });\n }\n } else if (granularity === \"month\") {\n const start = startOfMonth(range.min);\n const end = startOfMonth(range.max);\n const months: Date[] = [];\n let cursor = start;\n while (cursor.getTime() <= end.getTime()) {\n months.push(cursor);\n cursor = addMonths(cursor, 1);\n }\n const counts = new Array<number>(months.length).fill(0);\n for (const { value, count } of pairs) {\n const monthStart = startOfMonth(value).getTime();\n const idx = months.findIndex((m) => m.getTime() === monthStart);\n if (idx >= 0) {\n counts[idx] += count;\n }\n }\n for (let i = 0; i < months.length; i++) {\n const monthStart = months[i];\n buckets.push({\n min: monthStart,\n max: addMonths(monthStart, 1),\n count: counts[i],\n tickLabel: formatTickLabel != null\n ? formatTickLabel(monthStart, \"month\")\n : SHORT_MONTH_FORMATTER.format(monthStart),\n });\n }\n } else {\n const start = startOfYear(range.min);\n const end = startOfYear(range.max);\n const years: Date[] = [];\n let cursor = start;\n while (cursor.getTime() <= end.getTime()) {\n years.push(cursor);\n cursor = addYears(cursor, 1);\n }\n const counts = new Array<number>(years.length).fill(0);\n for (const { value, count } of pairs) {\n const yearStart = startOfYear(value).getTime();\n const idx = years.findIndex((y) => y.getTime() === yearStart);\n if (idx >= 0) {\n counts[idx] += count;\n }\n }\n for (let i = 0; i < years.length; i++) {\n const yearStart = years[i];\n buckets.push({\n min: yearStart,\n max: addYears(yearStart, 1),\n count: counts[i],\n tickLabel: formatTickLabel != null\n ? formatTickLabel(yearStart, \"year\")\n : format(yearStart, \"yyyy\"),\n });\n }\n }\n\n const subtitle = computeSubtitle(\n range.min,\n range.max,\n granularity,\n formatDate,\n );\n return { buckets, subtitle, granularity };\n}\n\nfunction computeSubtitle(\n rangeMin: Date,\n rangeMax: Date,\n granularity: DateHistogramGranularity,\n formatDate?: (date: Date) => string,\n): string {\n if (granularity === \"day\") {\n // Daily within one month: \"2020-05\". Across months: the year(s) when\n // the data still fits inside one calendar year.\n const sameMonth = rangeMin.getFullYear() === rangeMax.getFullYear()\n && rangeMin.getMonth() === rangeMax.getMonth();\n if (sameMonth) {\n return formatDate != null\n ? formatDate(rangeMin)\n : format(rangeMin, \"yyyy-MM\");\n }\n const sameYear = rangeMin.getFullYear() === rangeMax.getFullYear();\n if (sameYear) {\n return formatDate != null\n ? formatDate(rangeMin)\n : format(rangeMin, \"yyyy\");\n }\n return \"\";\n }\n if (granularity === \"month\") {\n const sameYear = rangeMin.getFullYear() === rangeMax.getFullYear();\n if (sameYear) {\n return formatDate != null\n ? formatDate(rangeMin)\n : format(rangeMin, \"yyyy\");\n }\n return \"\";\n }\n return \"\";\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createDateHistogramBuckets.js","names":["addDays","addMonths","addYears","differenceInCalendarDays","format","startOfDay","startOfMonth","startOfYear","SHORT_MONTH_FORMATTER","Intl","DateTimeFormat","undefined","month","createDateHistogramBuckets","pairs","range","formatDate","formatTickLabel","length","buckets","subtitle","granularity","span","Math","max","min","start","dayCount","counts","Array","fill","value","count","idx","i","push","tickLabel","end","months","cursor","getTime","monthStart","findIndex","m","years","yearStart","y","computeSubtitle","rangeMin","rangeMax","sameMonth","getFullYear","getMonth","sameYear"],"sources":["createDateHistogramBuckets.ts"],"sourcesContent":["/*\n * Copyright 2026 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 {\n addDays,\n addMonths,\n addYears,\n differenceInCalendarDays,\n format,\n startOfDay,\n startOfMonth,\n startOfYear,\n} from \"date-fns\";\n\nimport type { HistogramBucket } from \"./createHistogramBuckets.js\";\n\nconst SHORT_MONTH_FORMATTER = new Intl.DateTimeFormat(undefined, {\n month: \"short\",\n});\n\nexport type DateHistogramGranularity = \"day\" | \"month\" | \"year\";\n\nexport interface DateHistogramData {\n buckets: Array<HistogramBucket<Date>>;\n /** Period label rendered as the bottom-center subtitle (e.g. \"2020-05\"). */\n subtitle: string;\n granularity: DateHistogramGranularity;\n}\n\ninterface ValueCountPair {\n value: Date;\n count: number;\n}\n\n/**\n * Picks calendar-aligned histogram buckets for a date series.\n *\n * Granularity is chosen from the data span:\n * span ≤ 31 days → daily buckets, ticks \"1\" / \"2\" / ... / \"31\"\n * span ≤ 365 days → monthly buckets, ticks \"Jan\" / \"Feb\" / ... (locale-aware)\n * span > 365 days → yearly buckets, ticks \"2020\" / \"2021\" / ...\n *\n * Month ticks use `Intl.DateTimeFormat(..., { month: \"short\" })` so each\n * browser locale renders its native short-month names rather than getting\n * English-only \"Jan\"/\"Feb\". Day and year ticks remain locale-neutral integers.\n *\n * The subtitle reflects the surrounding calendar context — e.g. \"2020-05\"\n * for a daily histogram inside one month, \"2020\" for a monthly histogram\n * inside one year. When the data straddles multiple periods (e.g. monthly\n * histogram across multiple years) the subtitle is empty so the per-bucket\n * tick labels stay self-describing.\n *\n * @param formatDate Consumer-provided display formatter. Used for the\n * subtitle only.\n * @param formatTickLabel Optional override for per-bucket tick labels.\n * Receives the bucket's start `Date` and the chosen granularity.\n */\nexport function createDateHistogramBuckets(\n pairs: ReadonlyArray<ValueCountPair>,\n range: { min: Date; max: Date },\n formatDate?: (date: Date) => string,\n formatTickLabel?: (\n date: Date,\n granularity: DateHistogramGranularity\n ) => string\n): DateHistogramData {\n if (pairs.length === 0) {\n return { buckets: [], subtitle: \"\", granularity: \"day\" };\n }\n\n const span = Math.max(0, differenceInCalendarDays(range.max, range.min));\n\n const granularity: DateHistogramGranularity =\n span <= 31 ? \"day\" : span <= 365 ? \"month\" : \"year\";\n\n const buckets: Array<HistogramBucket<Date>> = [];\n\n if (granularity === \"day\") {\n const start = startOfDay(range.min);\n const dayCount = span + 1;\n const counts = new Array<number>(dayCount).fill(0);\n for (const { value, count } of pairs) {\n const idx = differenceInCalendarDays(value, start);\n if (idx >= 0 && idx < dayCount) {\n counts[idx] += count;\n }\n }\n for (let i = 0; i < dayCount; i++) {\n const min = addDays(start, i);\n const max = addDays(start, i + 1);\n buckets.push({\n min,\n max,\n count: counts[i],\n tickLabel:\n formatTickLabel != null\n ? formatTickLabel(min, \"day\")\n : format(min, \"d\"),\n });\n }\n } else if (granularity === \"month\") {\n const start = startOfMonth(range.min);\n const end = startOfMonth(range.max);\n const months: Date[] = [];\n let cursor = start;\n while (cursor.getTime() <= end.getTime()) {\n months.push(cursor);\n cursor = addMonths(cursor, 1);\n }\n const counts = new Array<number>(months.length).fill(0);\n for (const { value, count } of pairs) {\n const monthStart = startOfMonth(value).getTime();\n const idx = months.findIndex((m) => m.getTime() === monthStart);\n if (idx >= 0) {\n counts[idx] += count;\n }\n }\n for (let i = 0; i < months.length; i++) {\n const monthStart = months[i];\n buckets.push({\n min: monthStart,\n max: addMonths(monthStart, 1),\n count: counts[i],\n tickLabel:\n formatTickLabel != null\n ? formatTickLabel(monthStart, \"month\")\n : SHORT_MONTH_FORMATTER.format(monthStart),\n });\n }\n } else {\n const start = startOfYear(range.min);\n const end = startOfYear(range.max);\n const years: Date[] = [];\n let cursor = start;\n while (cursor.getTime() <= end.getTime()) {\n years.push(cursor);\n cursor = addYears(cursor, 1);\n }\n const counts = new Array<number>(years.length).fill(0);\n for (const { value, count } of pairs) {\n const yearStart = startOfYear(value).getTime();\n const idx = years.findIndex((y) => y.getTime() === yearStart);\n if (idx >= 0) {\n counts[idx] += count;\n }\n }\n for (let i = 0; i < years.length; i++) {\n const yearStart = years[i];\n buckets.push({\n min: yearStart,\n max: addYears(yearStart, 1),\n count: counts[i],\n tickLabel:\n formatTickLabel != null\n ? formatTickLabel(yearStart, \"year\")\n : format(yearStart, \"yyyy\"),\n });\n }\n }\n\n const subtitle = computeSubtitle(\n range.min,\n range.max,\n granularity,\n formatDate\n );\n return { buckets, subtitle, granularity };\n}\n\nfunction computeSubtitle(\n rangeMin: Date,\n rangeMax: Date,\n granularity: DateHistogramGranularity,\n formatDate?: (date: Date) => string\n): string {\n if (granularity === \"day\") {\n // Daily within one month: \"2020-05\". Across months: the year(s) when\n // the data still fits inside one calendar year.\n const sameMonth =\n rangeMin.getFullYear() === rangeMax.getFullYear() &&\n rangeMin.getMonth() === rangeMax.getMonth();\n if (sameMonth) {\n return formatDate != null\n ? formatDate(rangeMin)\n : format(rangeMin, \"yyyy-MM\");\n }\n const sameYear = rangeMin.getFullYear() === rangeMax.getFullYear();\n if (sameYear) {\n return formatDate != null\n ? formatDate(rangeMin)\n : format(rangeMin, \"yyyy\");\n }\n return \"\";\n }\n if (granularity === \"month\") {\n const sameYear = rangeMin.getFullYear() === rangeMax.getFullYear();\n if (sameYear) {\n return formatDate != null\n ? formatDate(rangeMin)\n : format(rangeMin, \"yyyy\");\n }\n return \"\";\n }\n return \"\";\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"createHistogramBuckets.js","names":["HISTOGRAM_BUCKETS","niceTicks","max","desiredCount","Number","isFinite","out","i","Math","ceil","push","rough","exponent","floor","log10","fraction","pow","niceFraction","step","ticks","v","round","createHistogramBuckets","pairs","range","toNumber","fromNumber","length","minNum","min","maxNum","rangeSize","totalCount","reduce","sum","p","count","bucketSize","bucketCounts","Array","fill","value","bucketIndex","map","getMaxBucketCount","buckets","b"],"sources":["createHistogramBuckets.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\nexport const HISTOGRAM_BUCKETS = 20;\n\nexport interface HistogramBucket<T> {\n min: T;\n max: T;\n count: number;\n /**\n * Optional short label shown beneath the bucket on the SVG x-axis.\n * Date histograms populate this with day/month/year text; numeric\n * histograms leave it unset (the SVG renders min/max only).\n */\n tickLabel?: string;\n}\n\n/**\n * Returns \"nice\" tick positions covering the [0, max] range — values that\n * round to 1/2/5 × 10^n so the tick labels read cleanly. Used for\n * y-axis axis lines on the histogram.\n *\n * Edge cases:\n * - max ≤ 0 → returns [0]\n * - max ≤ 1/2/3 → returns [0, ..., max] without rounding to 5/10\n * - otherwise → between 3 and 6 ticks aligned on a nice step\n */\nexport function niceTicks(max: number, desiredCount = 5): number[] {\n if (!Number.isFinite(max) || max <= 0) return [0];\n if (max <= 3) {\n const out: number[] = [];\n for (let i = 0; i <= Math.ceil(max); i++) out.push(i);\n return out;\n }\n const rough = max / desiredCount;\n const exponent = Math.floor(Math.log10(rough));\n const fraction = rough / Math.pow(10, exponent);\n const niceFraction = fraction <= 1\n ? 1\n : fraction <= 2\n ? 2\n : fraction <= 5\n ? 5\n : 10;\n const step = niceFraction * Math.pow(10, exponent);\n const ticks: number[] = [];\n for (let v = 0; v <= max + step / 2; v += step) {\n ticks.push(Math.round(v / step) * step);\n }\n return ticks;\n}\n\ninterface ValueCountPair<T> {\n value: T;\n count: number;\n}\n\nexport function createHistogramBuckets<T>(\n pairs: Array<ValueCountPair<T>>,\n range: { min: T; max: T },\n toNumber: (value: T) => number,\n fromNumber: (value: number) => T,\n): Array<HistogramBucket<T>> {\n if (pairs.length === 0) {\n return [];\n }\n\n const minNum = toNumber(range.min);\n const maxNum = toNumber(range.max);\n const rangeSize = maxNum - minNum;\n\n // Handle single-value case\n if (rangeSize === 0) {\n const totalCount = pairs.reduce((sum, p) => sum + p.count, 0);\n return [{ min: range.min, max: range.max, count: totalCount }];\n }\n\n // Create buckets\n const bucketSize = rangeSize / HISTOGRAM_BUCKETS;\n const bucketCounts = new Array<number>(HISTOGRAM_BUCKETS).fill(0);\n\n for (const { value, count } of pairs) {\n const bucketIndex = Math.min(\n Math.floor((toNumber(value) - minNum) / bucketSize),\n HISTOGRAM_BUCKETS - 1,\n );\n bucketCounts[bucketIndex] += count;\n }\n\n return bucketCounts.map((count, i) => ({\n min: fromNumber(minNum + i * bucketSize),\n max: fromNumber(minNum + (i + 1) * bucketSize),\n count,\n }));\n}\n\nexport function getMaxBucketCount<T>(\n buckets: Array<HistogramBucket<T>>,\n): number {\n return Math.max(...buckets.map((b) => b.count), 1);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createHistogramBuckets.js","names":["HISTOGRAM_BUCKETS","niceTicks","max","desiredCount","Number","isFinite","out","i","Math","ceil","push","rough","exponent","floor","log10","fraction","pow","niceFraction","step","ticks","v","round","createHistogramBuckets","pairs","range","toNumber","fromNumber","length","minNum","min","maxNum","rangeSize","totalCount","reduce","sum","p","count","bucketSize","bucketCounts","Array","fill","value","bucketIndex","map","getMaxBucketCount","buckets","b"],"sources":["createHistogramBuckets.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\nexport const HISTOGRAM_BUCKETS = 20;\n\nexport interface HistogramBucket<T> {\n min: T;\n max: T;\n count: number;\n /**\n * Optional short label shown beneath the bucket on the SVG x-axis.\n * Date histograms populate this with day/month/year text; numeric\n * histograms leave it unset (the SVG renders min/max only).\n */\n tickLabel?: string;\n}\n\n/**\n * Returns \"nice\" tick positions covering the [0, max] range — values that\n * round to 1/2/5 × 10^n so the tick labels read cleanly. Used for\n * y-axis axis lines on the histogram.\n *\n * Edge cases:\n * - max ≤ 0 → returns [0]\n * - max ≤ 1/2/3 → returns [0, ..., max] without rounding to 5/10\n * - otherwise → between 3 and 6 ticks aligned on a nice step\n */\nexport function niceTicks(max: number, desiredCount = 5): number[] {\n if (!Number.isFinite(max) || max <= 0) return [0];\n if (max <= 3) {\n const out: number[] = [];\n for (let i = 0; i <= Math.ceil(max); i++) out.push(i);\n return out;\n }\n const rough = max / desiredCount;\n const exponent = Math.floor(Math.log10(rough));\n const fraction = rough / Math.pow(10, exponent);\n const niceFraction =\n fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n const step = niceFraction * Math.pow(10, exponent);\n const ticks: number[] = [];\n for (let v = 0; v <= max + step / 2; v += step) {\n ticks.push(Math.round(v / step) * step);\n }\n return ticks;\n}\n\ninterface ValueCountPair<T> {\n value: T;\n count: number;\n}\n\nexport function createHistogramBuckets<T>(\n pairs: Array<ValueCountPair<T>>,\n range: { min: T; max: T },\n toNumber: (value: T) => number,\n fromNumber: (value: number) => T\n): Array<HistogramBucket<T>> {\n if (pairs.length === 0) {\n return [];\n }\n\n const minNum = toNumber(range.min);\n const maxNum = toNumber(range.max);\n const rangeSize = maxNum - minNum;\n\n // Handle single-value case\n if (rangeSize === 0) {\n const totalCount = pairs.reduce((sum, p) => sum + p.count, 0);\n return [{ min: range.min, max: range.max, count: totalCount }];\n }\n\n // Create buckets\n const bucketSize = rangeSize / HISTOGRAM_BUCKETS;\n const bucketCounts = new Array<number>(HISTOGRAM_BUCKETS).fill(0);\n\n for (const { value, count } of pairs) {\n const bucketIndex = Math.min(\n Math.floor((toNumber(value) - minNum) / bucketSize),\n HISTOGRAM_BUCKETS - 1\n );\n bucketCounts[bucketIndex] += count;\n }\n\n return bucketCounts.map((count, i) => ({\n min: fromNumber(minNum + i * bucketSize),\n max: fromNumber(minNum + (i + 1) * bucketSize),\n count,\n }));\n}\n\nexport function getMaxBucketCount<T>(\n buckets: Array<HistogramBucket<T>>\n): number {\n return Math.max(...buckets.map((b) => b.count), 1);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDualScopeAggregation.js","names":["useMemo","usePropertyAggregation","EMPTY_VALUES","useDualScopeAggregation","objectType","propertyKey","scopedObjectSet","emptySourceObjectSet","options","sortBy","selectedValues","limit","isDualScope","undefined","emptySourceAggregation","activeValues","merged","Set","error","d","data","add","value","size","Array","from","primary","maxCount","isLoading"],"sources":["useDualScopeAggregation.ts"],"sourcesContent":["/*\n * Copyright 2026 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, PropertyKeys } from \"@osdk/api\";\nimport { useMemo } from \"react\";\nimport {\n usePropertyAggregation,\n type UsePropertyAggregationResult,\n} from \"./usePropertyAggregation.js\";\n\nconst EMPTY_VALUES: string[] = [];\n\nexport interface UseDualScopeAggregationOptions {\n limit?: number;\n sortBy?: \"count\" | \"value\";\n selectedValues?: string[];\n}\n\n/**\n * Aggregates a property over `scopedObjectSet` (the narrowed scope) and pins\n * any values that exist in `emptySourceObjectSet` (the unfiltered base) but\n * are absent from the narrowed result to count=0, so facets can render\n * \"filtered-out\" rows alongside live counts.\n *\n * When `emptySourceObjectSet` is `undefined`, this falls through to a single\n * aggregation against `scopedObjectSet` — equivalent to `usePropertyAggregation`\n * with `selectedValues` as the only pinned values.\n *\n * @param objectType - Object type for the aggregation\n * @param propertyKey - Property to aggregate on\n * @param scopedObjectSet - Set the live counts are computed against (post-narrowing)\n * @param emptySourceObjectSet - Unfiltered base set whose values are pinned as\n * count=0 when absent from the scoped aggregation. Pass `undefined` to skip\n * the dual-scope behavior.\n * @param options.selectedValues - Values to always include in the result, even\n * when their count is 0 (e.g. currently-selected filter values)\n * @returns Aggregation against the scoped set, with isLoading reflecting both\n * queries when dual-scope is active.\n */\nexport function useDualScopeAggregation<\n Q extends ObjectTypeDefinition,\n K extends PropertyKeys<Q>,\n>(\n objectType: Q,\n propertyKey: K,\n scopedObjectSet: ObjectSet<Q> | undefined,\n emptySourceObjectSet: ObjectSet<Q> | undefined,\n options: UseDualScopeAggregationOptions = {},\n): UsePropertyAggregationResult {\n const { sortBy, selectedValues = EMPTY_VALUES, limit } = options;\n const isDualScope = emptySourceObjectSet !== undefined;\n\n const emptySourceAggregation = usePropertyAggregation(\n objectType,\n propertyKey,\n emptySourceObjectSet,\n );\n\n const activeValues = useMemo(() => {\n const merged = new Set(selectedValues);\n if (isDualScope && emptySourceAggregation.error == null) {\n for (const d of emptySourceAggregation.data) {\n merged.add(d.value);\n }\n }\n return merged.size === 0 ? undefined : Array.from(merged);\n }, [\n isDualScope,\n emptySourceAggregation.data,\n emptySourceAggregation.error,\n selectedValues,\n ]);\n\n const primary = usePropertyAggregation(\n objectType,\n propertyKey,\n scopedObjectSet,\n { sortBy, activeValues, limit },\n );\n\n return {\n data: primary.data,\n maxCount: primary.maxCount,\n isLoading: primary.isLoading\n || (isDualScope && emptySourceAggregation.isLoading),\n error: primary.error,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SACEC,sBAAsB,QAEjB,6BAA6B;AAEpC,MAAMC,YAAsB,GAAG,EAAE;AAQjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CAIrCC,UAAa,EACbC,WAAc,EACdC,eAAyC,EACzCC,oBAA8C,EAC9CC,OAAuC,GAAG,CAAC,CAAC,EACd;EAC9B,MAAM;IAAEC,MAAM;IAAEC,cAAc,GAAGR,YAAY;IAAES;EAAM,CAAC,GAAGH,OAAO;EAChE,MAAMI,WAAW,GAAGL,oBAAoB,KAAKM,SAAS;EAEtD,MAAMC,sBAAsB,GAAGb,sBAAsB,CACnDG,UAAU,EACVC,WAAW,EACXE,oBACF,CAAC;EAED,MAAMQ,YAAY,GAAGf,OAAO,CAAC,MAAM;IACjC,MAAMgB,MAAM,GAAG,IAAIC,GAAG,CAACP,cAAc,CAAC;IACtC,IAAIE,WAAW,IAAIE,sBAAsB,CAACI,KAAK,IAAI,IAAI,EAAE;MACvD,KAAK,MAAMC,CAAC,IAAIL,sBAAsB,CAACM,IAAI,EAAE;QAC3CJ,MAAM,CAACK,GAAG,CAACF,CAAC,CAACG,KAAK,CAAC;MACrB;IACF;IACA,OAAON,MAAM,CAACO,IAAI,KAAK,CAAC,GAAGV,SAAS,GAAGW,KAAK,CAACC,IAAI,CAACT,MAAM,CAAC;EAC3D,CAAC,EAAE,CACDJ,WAAW,EACXE,sBAAsB,CAACM,IAAI,EAC3BN,sBAAsB,CAACI,KAAK,EAC5BR,cAAc,CACf,CAAC;EAEF,MAAMgB,OAAO,GAAGzB,sBAAsB,CACpCG,UAAU,EACVC,WAAW,EACXC,eAAe,EACf;IAAEG,MAAM;IAAEM,YAAY;IAAEJ;EAAM,CAChC,CAAC;EAED,OAAO;IACLS,IAAI,EAAEM,OAAO,CAACN,IAAI;IAClBO,QAAQ,EAAED,OAAO,CAACC,QAAQ;IAC1BC,SAAS,EAAEF,OAAO,CAACE,SAAS,IACtBhB,WAAW,IAAIE,sBAAsB,CAACc,SAAU;IACtDV,KAAK,EAAEQ,OAAO,CAACR;EACjB,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"useDualScopeAggregation.js","names":["useMemo","usePropertyAggregation","EMPTY_VALUES","useDualScopeAggregation","objectType","propertyKey","scopedObjectSet","emptySourceObjectSet","options","sortBy","selectedValues","limit","isDualScope","undefined","emptySourceAggregation","activeValues","merged","Set","error","d","data","add","value","size","Array","from","primary","maxCount","isLoading"],"sources":["useDualScopeAggregation.ts"],"sourcesContent":["/*\n * Copyright 2026 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, PropertyKeys } from \"@osdk/api\";\nimport { useMemo } from \"react\";\n\nimport {\n usePropertyAggregation,\n type UsePropertyAggregationResult,\n} from \"./usePropertyAggregation.js\";\n\nconst EMPTY_VALUES: string[] = [];\n\nexport interface UseDualScopeAggregationOptions {\n limit?: number;\n sortBy?: \"count\" | \"value\";\n selectedValues?: string[];\n}\n\n/**\n * Aggregates a property over `scopedObjectSet` (the narrowed scope) and pins\n * any values that exist in `emptySourceObjectSet` (the unfiltered base) but\n * are absent from the narrowed result to count=0, so facets can render\n * \"filtered-out\" rows alongside live counts.\n *\n * When `emptySourceObjectSet` is `undefined`, this falls through to a single\n * aggregation against `scopedObjectSet` — equivalent to `usePropertyAggregation`\n * with `selectedValues` as the only pinned values.\n *\n * @param objectType - Object type for the aggregation\n * @param propertyKey - Property to aggregate on\n * @param scopedObjectSet - Set the live counts are computed against (post-narrowing)\n * @param emptySourceObjectSet - Unfiltered base set whose values are pinned as\n * count=0 when absent from the scoped aggregation. Pass `undefined` to skip\n * the dual-scope behavior.\n * @param options.selectedValues - Values to always include in the result, even\n * when their count is 0 (e.g. currently-selected filter values)\n * @returns Aggregation against the scoped set, with isLoading reflecting both\n * queries when dual-scope is active.\n */\nexport function useDualScopeAggregation<\n Q extends ObjectTypeDefinition,\n K extends PropertyKeys<Q>,\n>(\n objectType: Q,\n propertyKey: K,\n scopedObjectSet: ObjectSet<Q> | undefined,\n emptySourceObjectSet: ObjectSet<Q> | undefined,\n options: UseDualScopeAggregationOptions = {}\n): UsePropertyAggregationResult {\n const { sortBy, selectedValues = EMPTY_VALUES, limit } = options;\n const isDualScope = emptySourceObjectSet !== undefined;\n\n const emptySourceAggregation = usePropertyAggregation(\n objectType,\n propertyKey,\n emptySourceObjectSet\n );\n\n const activeValues = useMemo(() => {\n const merged = new Set(selectedValues);\n if (isDualScope && emptySourceAggregation.error == null) {\n for (const d of emptySourceAggregation.data) {\n merged.add(d.value);\n }\n }\n return merged.size === 0 ? undefined : Array.from(merged);\n }, [\n isDualScope,\n emptySourceAggregation.data,\n emptySourceAggregation.error,\n selectedValues,\n ]);\n\n const primary = usePropertyAggregation(\n objectType,\n propertyKey,\n scopedObjectSet,\n { sortBy, activeValues, limit }\n );\n\n return {\n data: primary.data,\n maxCount: primary.maxCount,\n isLoading:\n primary.isLoading || (isDualScope && emptySourceAggregation.isLoading),\n error: primary.error,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SACEC,sBAAsB,QAEjB,6BAA6B;AAEpC,MAAMC,YAAsB,GAAG,EAAE;AAQjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CAIrCC,UAAa,EACbC,WAAc,EACdC,eAAyC,EACzCC,oBAA8C,EAC9CC,OAAuC,GAAG,CAAC,CAAC,EACd;EAC9B,MAAM;IAAEC,MAAM;IAAEC,cAAc,GAAGR,YAAY;IAAES;EAAM,CAAC,GAAGH,OAAO;EAChE,MAAMI,WAAW,GAAGL,oBAAoB,KAAKM,SAAS;EAEtD,MAAMC,sBAAsB,GAAGb,sBAAsB,CACnDG,UAAU,EACVC,WAAW,EACXE,oBACF,CAAC;EAED,MAAMQ,YAAY,GAAGf,OAAO,CAAC,MAAM;IACjC,MAAMgB,MAAM,GAAG,IAAIC,GAAG,CAACP,cAAc,CAAC;IACtC,IAAIE,WAAW,IAAIE,sBAAsB,CAACI,KAAK,IAAI,IAAI,EAAE;MACvD,KAAK,MAAMC,CAAC,IAAIL,sBAAsB,CAACM,IAAI,EAAE;QAC3CJ,MAAM,CAACK,GAAG,CAACF,CAAC,CAACG,KAAK,CAAC;MACrB;IACF;IACA,OAAON,MAAM,CAACO,IAAI,KAAK,CAAC,GAAGV,SAAS,GAAGW,KAAK,CAACC,IAAI,CAACT,MAAM,CAAC;EAC3D,CAAC,EAAE,CACDJ,WAAW,EACXE,sBAAsB,CAACM,IAAI,EAC3BN,sBAAsB,CAACI,KAAK,EAC5BR,cAAc,CACf,CAAC;EAEF,MAAMgB,OAAO,GAAGzB,sBAAsB,CACpCG,UAAU,EACVC,WAAW,EACXC,eAAe,EACf;IAAEG,MAAM;IAAEM,YAAY;IAAEJ;EAAM,CAChC,CAAC;EAED,OAAO;IACLS,IAAI,EAAEM,OAAO,CAACN,IAAI;IAClBO,QAAQ,EAAED,OAAO,CAACC,QAAQ;IAC1BC,SAAS,EACPF,OAAO,CAACE,SAAS,IAAKhB,WAAW,IAAIE,sBAAsB,CAACc,SAAU;IACxEV,KAAK,EAAEQ,OAAO,CAACR;EACjB,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterListState.js","names":["useOsdkMetadata","isEqual","useCallback","useEffect","useMemo","useRef","useState","assertUnreachable","buildWhereClause","getActiveLinkedFilters","filterHasActiveState","getFilterKey","narrowObjectSet","useStableMapEntries","buildInitialStates","definitions","states","Map","definition","key","type","state","filterState","set","defaultFilterState","innerState","defaultLinkedFilterState","linkedFilterState","useFilterListState","props","objectType","objectSet","filterDefinitions","onFilterStateChanged","onFilterClauseChanged","onEffectiveObjectSet","initialFilterStates","metadata","onFilterClauseChangedRef","current","onEffectiveObjectSetRef","filterDefinitionsRef","propertyTypes","map","properties","prop","Object","entries","multiplicity","initialFilterStatesSnapshot","snapshot","filterStates","setFilterStates","setFilterState","filterKey","prev","next","find","d","clearFilterState","delete","reset","whereClause","linkedFilters","effectiveObjectSet","undefined","perFilterWhereClauses","perFilterLinkedFilters","activeFilterCount","count","values","hasChangesFromInitial"],"sources":["useFilterListState.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 { useOsdkMetadata } from \"@osdk/react\";\nimport { isEqual } from \"lodash-es\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport type { FilterListProps } from \"../FilterListApi.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport type {\n LinkedFilter,\n LinkedPropertyFilterState,\n} from \"../types/LinkedFilterTypes.js\";\nimport {\n buildWhereClause,\n getActiveLinkedFilters,\n type PropertyTypeInfo,\n} from \"../utils/filterStateToWhereClause.js\";\nimport { filterHasActiveState } from \"../utils/filterValues.js\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\nimport { narrowObjectSet } from \"../utils/narrowObjectSet.js\";\nimport { useStableMapEntries } from \"./useStableMapEntries.js\";\n\nexport interface UseFilterListStateResult<Q extends ObjectTypeDefinition> {\n filterStates: Map<string, FilterState>;\n setFilterState: (\n filterKey: string,\n state: FilterState,\n ) => void;\n clearFilterState: (filterKey: string) => void;\n /** Direct (non-link-traversing) filters combined into a `WhereClause<Q>`. */\n whereClause: WhereClause<Q>;\n /** Active linked-property records; apply via `narrowObjectSet`. */\n linkedFilters: ReadonlyArray<LinkedFilter<Q>>;\n /** Per-filter excluding-self where clauses keyed by `getFilterKey`. */\n perFilterWhereClauses: Map<string, WhereClause<Q>>;\n /** Per-filter excluding-self linked filters keyed by `getFilterKey`. */\n perFilterLinkedFilters: Map<string, ReadonlyArray<LinkedFilter<Q>>>;\n activeFilterCount: number;\n hasChangesFromInitial: boolean;\n reset: () => void;\n}\n\nfunction buildInitialStates<Q extends ObjectTypeDefinition>(\n definitions: FilterListProps<Q>[\"filterDefinitions\"],\n): Map<string, FilterState> {\n const states = new Map<string, FilterState>();\n\n if (!definitions) {\n return states;\n }\n\n for (const definition of definitions) {\n const key = getFilterKey(definition);\n switch (definition.type) {\n case \"PROPERTY\": {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"HAS_LINK\":\n case \"KEYWORD_SEARCH\":\n case \"CUSTOM\": {\n const state = definition.defaultFilterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"STATIC_VALUES\": {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"LINKED_PROPERTY\": {\n const innerState = definition.defaultLinkedFilterState;\n if (innerState) {\n const state: LinkedPropertyFilterState = {\n type: \"linkedProperty\",\n linkedFilterState: innerState,\n };\n states.set(key, state);\n }\n break;\n }\n default:\n assertUnreachable(definition);\n }\n }\n\n return states;\n}\n\nexport function useFilterListState<Q extends ObjectTypeDefinition>(\n props: FilterListProps<Q>,\n): UseFilterListStateResult<Q> {\n const {\n objectType,\n objectSet,\n filterDefinitions,\n onFilterStateChanged,\n onFilterClauseChanged,\n onEffectiveObjectSet,\n initialFilterStates,\n } = props;\n const { metadata } = useOsdkMetadata(objectType);\n const onFilterClauseChangedRef = useRef(onFilterClauseChanged);\n onFilterClauseChangedRef.current = onFilterClauseChanged;\n const onEffectiveObjectSetRef = useRef(onEffectiveObjectSet);\n onEffectiveObjectSetRef.current = onEffectiveObjectSet;\n const filterDefinitionsRef = useRef(filterDefinitions);\n filterDefinitionsRef.current = filterDefinitions;\n\n const propertyTypes = useMemo(() => {\n const map = new Map<string, PropertyTypeInfo>();\n if (metadata?.properties) {\n for (const [key, prop] of Object.entries(metadata.properties)) {\n if (typeof prop.type === \"string\") {\n map.set(key, {\n type: prop.type,\n multiplicity: prop.multiplicity === true,\n });\n }\n }\n }\n return map;\n }, [metadata?.properties]);\n\n // Captured once on first render to provide a stable baseline for the reset\n // button's enabled state. `useState`'s lazy initializer pins the value for\n // the lifetime of the component (unlike `useMemo`, which React may discard).\n const [initialFilterStatesSnapshot] = useState<Map<string, FilterState>>(\n () => {\n const snapshot = buildInitialStates(filterDefinitions);\n if (initialFilterStates) {\n for (const [key, state] of initialFilterStates) {\n snapshot.set(key, state);\n }\n }\n return snapshot;\n },\n );\n\n const [filterStates, setFilterStates] = useState<Map<string, FilterState>>(\n () => new Map(initialFilterStatesSnapshot),\n );\n\n const setFilterState = useCallback(\n (filterKey: string, state: FilterState) => {\n setFilterStates((prev) => {\n const next = new Map(prev);\n next.set(filterKey, state);\n return next;\n });\n\n const definition = filterDefinitionsRef.current?.find(\n (d) => getFilterKey(d) === filterKey,\n );\n if (definition) {\n onFilterStateChanged?.(definition, state);\n }\n },\n [onFilterStateChanged],\n );\n\n const clearFilterState = useCallback((filterKey: string) => {\n setFilterStates((prev) => {\n const next = new Map(prev);\n next.delete(filterKey);\n return next;\n });\n }, []);\n\n const reset = useCallback(() => {\n setFilterStates(new Map(initialFilterStatesSnapshot));\n }, [initialFilterStatesSnapshot]);\n\n const whereClause = useMemo(\n () => buildWhereClause(filterDefinitions, filterStates, propertyTypes),\n [filterDefinitions, filterStates, propertyTypes],\n );\n\n const linkedFilters = useMemo(\n () => getActiveLinkedFilters(filterDefinitions, filterStates),\n [filterDefinitions, filterStates],\n );\n\n const effectiveObjectSet = useMemo<ObjectSet<Q> | undefined>(\n () =>\n objectSet == null\n ? undefined\n : narrowObjectSet(objectSet, whereClause, linkedFilters),\n [objectSet, whereClause, linkedFilters],\n );\n\n useEffect(() => {\n onFilterClauseChangedRef.current?.(whereClause);\n }, [whereClause]);\n\n useEffect(() => {\n if (effectiveObjectSet == null) {\n return;\n }\n onEffectiveObjectSetRef.current?.(effectiveObjectSet);\n }, [effectiveObjectSet]);\n\n const perFilterWhereClauses = useStableMapEntries(\n useMemo(() => {\n const map = new Map<string, WhereClause<Q>>();\n for (const definition of filterDefinitions ?? []) {\n const key = getFilterKey(definition);\n map.set(\n key,\n buildWhereClause(filterDefinitions, filterStates, propertyTypes, key),\n );\n }\n return map;\n }, [filterDefinitions, filterStates, propertyTypes]),\n );\n\n const perFilterLinkedFilters = useStableMapEntries(\n useMemo(() => {\n const map = new Map<string, ReadonlyArray<LinkedFilter<Q>>>();\n for (const definition of filterDefinitions ?? []) {\n const key = getFilterKey(definition);\n map.set(\n key,\n getActiveLinkedFilters(filterDefinitions, filterStates, key),\n );\n }\n return map;\n }, [filterDefinitions, filterStates]),\n );\n\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const state of filterStates.values()) {\n if (filterHasActiveState(state)) {\n count++;\n }\n }\n return count;\n }, [filterStates]);\n\n const hasChangesFromInitial = useMemo(\n () => !isEqual(filterStates, initialFilterStatesSnapshot),\n [filterStates, initialFilterStatesSnapshot],\n );\n\n return useMemo(() => ({\n filterStates,\n setFilterState,\n clearFilterState,\n whereClause,\n linkedFilters,\n perFilterWhereClauses,\n perFilterLinkedFilters,\n activeFilterCount,\n hasChangesFromInitial,\n reset,\n }), [\n filterStates,\n setFilterState,\n clearFilterState,\n whereClause,\n linkedFilters,\n perFilterWhereClauses,\n perFilterLinkedFilters,\n activeFilterCount,\n hasChangesFromInitial,\n reset,\n ]);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useFilterListState.js","names":["useOsdkMetadata","isEqual","useCallback","useEffect","useMemo","useRef","useState","assertUnreachable","buildWhereClause","getActiveLinkedFilters","filterHasActiveState","getFilterKey","narrowObjectSet","useStableMapEntries","buildInitialStates","definitions","states","Map","definition","key","type","state","filterState","set","defaultFilterState","innerState","defaultLinkedFilterState","linkedFilterState","useFilterListState","props","objectType","objectSet","filterDefinitions","onFilterStateChanged","onFilterClauseChanged","onEffectiveObjectSet","initialFilterStates","metadata","onFilterClauseChangedRef","current","onEffectiveObjectSetRef","filterDefinitionsRef","propertyTypes","map","properties","prop","Object","entries","multiplicity","initialFilterStatesSnapshot","snapshot","filterStates","setFilterStates","setFilterState","filterKey","prev","next","find","d","clearFilterState","delete","reset","whereClause","linkedFilters","effectiveObjectSet","undefined","perFilterWhereClauses","perFilterLinkedFilters","activeFilterCount","count","values","hasChangesFromInitial"],"sources":["useFilterListState.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 { useOsdkMetadata } from \"@osdk/react\";\nimport { isEqual } from \"lodash-es\";\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { assertUnreachable } from \"../../shared/assertUnreachable.js\";\nimport type { FilterListProps } from \"../FilterListApi.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport type {\n LinkedFilter,\n LinkedPropertyFilterState,\n} from \"../types/LinkedFilterTypes.js\";\nimport {\n buildWhereClause,\n getActiveLinkedFilters,\n type PropertyTypeInfo,\n} from \"../utils/filterStateToWhereClause.js\";\nimport { filterHasActiveState } from \"../utils/filterValues.js\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\nimport { narrowObjectSet } from \"../utils/narrowObjectSet.js\";\nimport { useStableMapEntries } from \"./useStableMapEntries.js\";\n\nexport interface UseFilterListStateResult<Q extends ObjectTypeDefinition> {\n filterStates: Map<string, FilterState>;\n setFilterState: (filterKey: string, state: FilterState) => void;\n clearFilterState: (filterKey: string) => void;\n /** Direct (non-link-traversing) filters combined into a `WhereClause<Q>`. */\n whereClause: WhereClause<Q>;\n /** Active linked-property records; apply via `narrowObjectSet`. */\n linkedFilters: ReadonlyArray<LinkedFilter<Q>>;\n /** Per-filter excluding-self where clauses keyed by `getFilterKey`. */\n perFilterWhereClauses: Map<string, WhereClause<Q>>;\n /** Per-filter excluding-self linked filters keyed by `getFilterKey`. */\n perFilterLinkedFilters: Map<string, ReadonlyArray<LinkedFilter<Q>>>;\n activeFilterCount: number;\n hasChangesFromInitial: boolean;\n reset: () => void;\n}\n\nfunction buildInitialStates<Q extends ObjectTypeDefinition>(\n definitions: FilterListProps<Q>[\"filterDefinitions\"]\n): Map<string, FilterState> {\n const states = new Map<string, FilterState>();\n\n if (!definitions) {\n return states;\n }\n\n for (const definition of definitions) {\n const key = getFilterKey(definition);\n switch (definition.type) {\n case \"PROPERTY\": {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"HAS_LINK\":\n case \"KEYWORD_SEARCH\":\n case \"CUSTOM\": {\n const state = definition.defaultFilterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"STATIC_VALUES\": {\n const state = definition.filterState;\n if (state) {\n states.set(key, state);\n }\n break;\n }\n case \"LINKED_PROPERTY\": {\n const innerState = definition.defaultLinkedFilterState;\n if (innerState) {\n const state: LinkedPropertyFilterState = {\n type: \"linkedProperty\",\n linkedFilterState: innerState,\n };\n states.set(key, state);\n }\n break;\n }\n default:\n assertUnreachable(definition);\n }\n }\n\n return states;\n}\n\nexport function useFilterListState<Q extends ObjectTypeDefinition>(\n props: FilterListProps<Q>\n): UseFilterListStateResult<Q> {\n const {\n objectType,\n objectSet,\n filterDefinitions,\n onFilterStateChanged,\n onFilterClauseChanged,\n onEffectiveObjectSet,\n initialFilterStates,\n } = props;\n const { metadata } = useOsdkMetadata(objectType);\n const onFilterClauseChangedRef = useRef(onFilterClauseChanged);\n onFilterClauseChangedRef.current = onFilterClauseChanged;\n const onEffectiveObjectSetRef = useRef(onEffectiveObjectSet);\n onEffectiveObjectSetRef.current = onEffectiveObjectSet;\n const filterDefinitionsRef = useRef(filterDefinitions);\n filterDefinitionsRef.current = filterDefinitions;\n\n const propertyTypes = useMemo(() => {\n const map = new Map<string, PropertyTypeInfo>();\n if (metadata?.properties) {\n for (const [key, prop] of Object.entries(metadata.properties)) {\n if (typeof prop.type === \"string\") {\n map.set(key, {\n type: prop.type,\n multiplicity: prop.multiplicity === true,\n });\n }\n }\n }\n return map;\n }, [metadata?.properties]);\n\n // Captured once on first render to provide a stable baseline for the reset\n // button's enabled state. `useState`'s lazy initializer pins the value for\n // the lifetime of the component (unlike `useMemo`, which React may discard).\n const [initialFilterStatesSnapshot] = useState<Map<string, FilterState>>(\n () => {\n const snapshot = buildInitialStates(filterDefinitions);\n if (initialFilterStates) {\n for (const [key, state] of initialFilterStates) {\n snapshot.set(key, state);\n }\n }\n return snapshot;\n }\n );\n\n const [filterStates, setFilterStates] = useState<Map<string, FilterState>>(\n () => new Map(initialFilterStatesSnapshot)\n );\n\n const setFilterState = useCallback(\n (filterKey: string, state: FilterState) => {\n setFilterStates((prev) => {\n const next = new Map(prev);\n next.set(filterKey, state);\n return next;\n });\n\n const definition = filterDefinitionsRef.current?.find(\n (d) => getFilterKey(d) === filterKey\n );\n if (definition) {\n onFilterStateChanged?.(definition, state);\n }\n },\n [onFilterStateChanged]\n );\n\n const clearFilterState = useCallback((filterKey: string) => {\n setFilterStates((prev) => {\n const next = new Map(prev);\n next.delete(filterKey);\n return next;\n });\n }, []);\n\n const reset = useCallback(() => {\n setFilterStates(new Map(initialFilterStatesSnapshot));\n }, [initialFilterStatesSnapshot]);\n\n const whereClause = useMemo(\n () => buildWhereClause(filterDefinitions, filterStates, propertyTypes),\n [filterDefinitions, filterStates, propertyTypes]\n );\n\n const linkedFilters = useMemo(\n () => getActiveLinkedFilters(filterDefinitions, filterStates),\n [filterDefinitions, filterStates]\n );\n\n const effectiveObjectSet = useMemo<ObjectSet<Q> | undefined>(\n () =>\n objectSet == null\n ? undefined\n : narrowObjectSet(objectSet, whereClause, linkedFilters),\n [objectSet, whereClause, linkedFilters]\n );\n\n useEffect(() => {\n onFilterClauseChangedRef.current?.(whereClause);\n }, [whereClause]);\n\n useEffect(() => {\n if (effectiveObjectSet == null) {\n return;\n }\n onEffectiveObjectSetRef.current?.(effectiveObjectSet);\n }, [effectiveObjectSet]);\n\n const perFilterWhereClauses = useStableMapEntries(\n useMemo(() => {\n const map = new Map<string, WhereClause<Q>>();\n for (const definition of filterDefinitions ?? []) {\n const key = getFilterKey(definition);\n map.set(\n key,\n buildWhereClause(filterDefinitions, filterStates, propertyTypes, key)\n );\n }\n return map;\n }, [filterDefinitions, filterStates, propertyTypes])\n );\n\n const perFilterLinkedFilters = useStableMapEntries(\n useMemo(() => {\n const map = new Map<string, ReadonlyArray<LinkedFilter<Q>>>();\n for (const definition of filterDefinitions ?? []) {\n const key = getFilterKey(definition);\n map.set(\n key,\n getActiveLinkedFilters(filterDefinitions, filterStates, key)\n );\n }\n return map;\n }, [filterDefinitions, filterStates])\n );\n\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const state of filterStates.values()) {\n if (filterHasActiveState(state)) {\n count++;\n }\n }\n return count;\n }, [filterStates]);\n\n const hasChangesFromInitial = useMemo(\n () => !isEqual(filterStates, initialFilterStatesSnapshot),\n [filterStates, initialFilterStatesSnapshot]\n );\n\n return useMemo(\n () => ({\n filterStates,\n setFilterState,\n clearFilterState,\n whereClause,\n linkedFilters,\n perFilterWhereClauses,\n perFilterLinkedFilters,\n activeFilterCount,\n hasChangesFromInitial,\n reset,\n }),\n [\n filterStates,\n setFilterState,\n clearFilterState,\n whereClause,\n linkedFilters,\n perFilterWhereClauses,\n perFilterLinkedFilters,\n activeFilterCount,\n hasChangesFromInitial,\n reset,\n ]\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterPropertyAggregation.js","names":["useMemo","computeDualScopes","useDualScopeAggregation","useFilterPropertyAggregation","objectType","propertyKey","objectSet","whereClause","linkedFilters","options","sortBy","selectedValues","limit","showFilteredOutValues","scoped","emptySource"],"sources":["useFilterPropertyAggregation.ts"],"sourcesContent":["/*\n * Copyright 2026 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 { useMemo } from \"react\";\nimport type { LinkedFilter } from \"../types/LinkedFilterTypes.js\";\nimport { computeDualScopes } from \"../utils/narrowObjectSet.js\";\nimport { useDualScopeAggregation } from \"./useDualScopeAggregation.js\";\nimport type { UsePropertyAggregationResult } from \"./usePropertyAggregation.js\";\n\nexport interface UseFilterPropertyAggregationOptions {\n limit?: number;\n sortBy?: \"count\" | \"value\";\n selectedValues?: string[];\n showFilteredOutValues?: boolean;\n}\n\nexport function useFilterPropertyAggregation<\n Q extends ObjectTypeDefinition,\n K extends PropertyKeys<Q>,\n>(\n objectType: Q,\n propertyKey: K,\n objectSet: ObjectSet<Q> | undefined,\n whereClause: WhereClause<Q>,\n linkedFilters: ReadonlyArray<LinkedFilter<Q>>,\n options: UseFilterPropertyAggregationOptions = {},\n): UsePropertyAggregationResult {\n const { sortBy, selectedValues, limit, showFilteredOutValues } = options;\n\n const { scoped, emptySource } = useMemo(\n () =>\n computeDualScopes(\n objectSet,\n whereClause,\n linkedFilters,\n showFilteredOutValues,\n ),\n [objectSet, whereClause, linkedFilters, showFilteredOutValues],\n );\n\n return useDualScopeAggregation(\n objectType,\n propertyKey,\n scoped,\n emptySource,\n { sortBy, selectedValues, limit },\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,uBAAuB,QAAQ,8BAA8B;AAUtE,OAAO,SAASC,4BAA4BA,CAI1CC,UAAa,EACbC,WAAc,EACdC,SAAmC,EACnCC,WAA2B,EAC3BC,aAA6C,EAC7CC,OAA4C,GAAG,CAAC,CAAC,EACnB;EAC9B,MAAM;IAAEC,MAAM;IAAEC,cAAc;IAAEC,KAAK;IAAEC;EAAsB,CAAC,GAAGJ,OAAO;EAExE,MAAM;IAAEK,MAAM;IAAEC;EAAY,CAAC,GAAGf,OAAO,CACrC,MACEC,iBAAiB,CACfK,SAAS,EACTC,WAAW,EACXC,aAAa,EACbK,qBACF,CAAC,EACH,CAACP,SAAS,EAAEC,WAAW,EAAEC,aAAa,EAAEK,qBAAqB,CAC/D,CAAC;EAED,OAAOX,uBAAuB,CAC5BE,UAAU,EACVC,WAAW,EACXS,MAAM,EACNC,WAAW,EACX;IAAEL,MAAM;IAAEC,cAAc;IAAEC;EAAM,CAClC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"useFilterPropertyAggregation.js","names":["useMemo","computeDualScopes","useDualScopeAggregation","useFilterPropertyAggregation","objectType","propertyKey","objectSet","whereClause","linkedFilters","options","sortBy","selectedValues","limit","showFilteredOutValues","scoped","emptySource"],"sources":["useFilterPropertyAggregation.ts"],"sourcesContent":["/*\n * Copyright 2026 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 { useMemo } from \"react\";\n\nimport type { LinkedFilter } from \"../types/LinkedFilterTypes.js\";\nimport { computeDualScopes } from \"../utils/narrowObjectSet.js\";\nimport { useDualScopeAggregation } from \"./useDualScopeAggregation.js\";\nimport type { UsePropertyAggregationResult } from \"./usePropertyAggregation.js\";\n\nexport interface UseFilterPropertyAggregationOptions {\n limit?: number;\n sortBy?: \"count\" | \"value\";\n selectedValues?: string[];\n showFilteredOutValues?: boolean;\n}\n\nexport function useFilterPropertyAggregation<\n Q extends ObjectTypeDefinition,\n K extends PropertyKeys<Q>,\n>(\n objectType: Q,\n propertyKey: K,\n objectSet: ObjectSet<Q> | undefined,\n whereClause: WhereClause<Q>,\n linkedFilters: ReadonlyArray<LinkedFilter<Q>>,\n options: UseFilterPropertyAggregationOptions = {}\n): UsePropertyAggregationResult {\n const { sortBy, selectedValues, limit, showFilteredOutValues } = options;\n\n const { scoped, emptySource } = useMemo(\n () =>\n computeDualScopes(\n objectSet,\n whereClause,\n linkedFilters,\n showFilteredOutValues\n ),\n [objectSet, whereClause, linkedFilters, showFilteredOutValues]\n );\n\n return useDualScopeAggregation(objectType, propertyKey, scoped, emptySource, {\n sortBy,\n selectedValues,\n limit,\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,SAASA,OAAO,QAAQ,OAAO;AAG/B,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,uBAAuB,QAAQ,8BAA8B;AAUtE,OAAO,SAASC,4BAA4BA,CAI1CC,UAAa,EACbC,WAAc,EACdC,SAAmC,EACnCC,WAA2B,EAC3BC,aAA6C,EAC7CC,OAA4C,GAAG,CAAC,CAAC,EACnB;EAC9B,MAAM;IAAEC,MAAM;IAAEC,cAAc;IAAEC,KAAK;IAAEC;EAAsB,CAAC,GAAGJ,OAAO;EAExE,MAAM;IAAEK,MAAM;IAAEC;EAAY,CAAC,GAAGf,OAAO,CACrC,MACEC,iBAAiB,CACfK,SAAS,EACTC,WAAW,EACXC,aAAa,EACbK,qBACF,CAAC,EACH,CAACP,SAAS,EAAEC,WAAW,EAAEC,aAAa,EAAEK,qBAAqB,CAC/D,CAAC;EAED,OAAOX,uBAAuB,CAACE,UAAU,EAAEC,WAAW,EAAES,MAAM,EAAEC,WAAW,EAAE;IAC3EL,MAAM;IACNC,cAAc;IACdC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterVisibility.js","names":["useCallback","useEffect","useMemo","useRef","useState","getFilterKey","useFilterVisibility","filterDefinitions","onVisibilityChange","allKeys","map","defaultVisibleKeyOrder","filter","def","isVisible","visibleKeyOrder","setVisibleKeyOrder","onVisibilityChangeRef","current","fireVisibilityChange","nextVisibleKeyOrder","visibleSet","Set","hiddenKeys","k","has","defByKey","Map","set","visibleDefinitions","hiddenDefinitions","visible","hidden","key","get","push","showFilter","prev","includes","next","hideFilter","reorderVisible","keys","length","every","i","resetVisibility","hasVisibilityChanges"],"sources":["useFilterVisibility.ts"],"sourcesContent":["/*\n * Copyright 2026 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 { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { FilterDefinitionUnion } from \"../FilterListApi.js\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\n\ninterface FilterVisibilityResult<D> {\n visibleDefinitions: Array<D>;\n hiddenDefinitions: Array<D>;\n showFilter: (key: string) => void;\n hideFilter: (key: string) => void;\n reorderVisible: (keys: string[]) => void;\n hasVisibilityChanges: boolean;\n resetVisibility: () => void;\n}\n\nexport function useFilterVisibility<\n Q extends ObjectTypeDefinition,\n>(\n filterDefinitions: Array<FilterDefinitionUnion<Q>> | undefined,\n onVisibilityChange?: (visibleKeys: string[], hiddenKeys: string[]) => void,\n): FilterVisibilityResult<FilterDefinitionUnion<Q>> {\n const allKeys = useMemo(\n () => filterDefinitions?.map(getFilterKey) ?? [],\n [filterDefinitions],\n );\n\n const defaultVisibleKeyOrder = useMemo(\n () =>\n filterDefinitions\n ?.filter(def => def.isVisible !== false)\n .map(getFilterKey) ?? [],\n [filterDefinitions],\n );\n\n const [visibleKeyOrder, setVisibleKeyOrder] = useState<string[]>(\n () => defaultVisibleKeyOrder,\n );\n\n // Sync state when filterDefinitions changes\n useEffect(() => {\n setVisibleKeyOrder(defaultVisibleKeyOrder);\n }, [defaultVisibleKeyOrder]);\n\n // Keep a ref to onVisibilityChange so callbacks don't need it as a dependency\n const onVisibilityChangeRef = useRef(onVisibilityChange);\n onVisibilityChangeRef.current = onVisibilityChange;\n\n const fireVisibilityChange = useCallback(\n (nextVisibleKeyOrder: string[]) => {\n if (!onVisibilityChangeRef.current) return;\n const visibleSet = new Set(nextVisibleKeyOrder);\n const hiddenKeys = allKeys.filter((k) => !visibleSet.has(k));\n onVisibilityChangeRef.current(nextVisibleKeyOrder, hiddenKeys);\n },\n [allKeys],\n );\n\n const defByKey = useMemo(() => {\n const map = new Map<string, FilterDefinitionUnion<Q>>();\n if (filterDefinitions == null) return map;\n for (const def of filterDefinitions) {\n map.set(getFilterKey(def), def);\n }\n return map;\n }, [filterDefinitions]);\n\n const { visibleDefinitions, hiddenDefinitions } = useMemo(() => {\n if (filterDefinitions == null) {\n return {\n visibleDefinitions: [] as Array<FilterDefinitionUnion<Q>>,\n hiddenDefinitions: [] as Array<FilterDefinitionUnion<Q>>,\n };\n }\n\n const visibleSet = new Set(visibleKeyOrder);\n const visible: Array<FilterDefinitionUnion<Q>> = [];\n const hidden: Array<FilterDefinitionUnion<Q>> = [];\n\n for (const key of visibleKeyOrder) {\n const def = defByKey.get(key);\n if (def != null) {\n visible.push(def);\n }\n }\n\n for (const key of allKeys) {\n if (!visibleSet.has(key)) {\n const def = defByKey.get(key);\n if (def != null) {\n hidden.push(def);\n }\n }\n }\n\n return {\n visibleDefinitions: visible,\n hiddenDefinitions: hidden,\n };\n }, [filterDefinitions, defByKey, visibleKeyOrder, allKeys]);\n\n const showFilter = useCallback((key: string) => {\n setVisibleKeyOrder((prev) => {\n if (prev.includes(key)) return prev;\n const next = [...prev, key];\n fireVisibilityChange(next);\n return next;\n });\n }, [fireVisibilityChange]);\n\n const hideFilter = useCallback((key: string) => {\n setVisibleKeyOrder((prev) => {\n const next = prev.filter((k) => k !== key);\n fireVisibilityChange(next);\n return next;\n });\n }, [fireVisibilityChange]);\n\n const reorderVisible = useCallback((keys: string[]) => {\n setVisibleKeyOrder((prev) => {\n if (keys.length === prev.length && keys.every((k, i) => k === prev[i])) {\n return prev;\n }\n fireVisibilityChange(keys);\n return keys;\n });\n }, [fireVisibilityChange]);\n\n const resetVisibility = useCallback(() => {\n setVisibleKeyOrder((prev) => {\n if (\n defaultVisibleKeyOrder.length === prev.length\n && defaultVisibleKeyOrder.every((k, i) => k === prev[i])\n ) {\n return prev;\n }\n fireVisibilityChange(defaultVisibleKeyOrder);\n return defaultVisibleKeyOrder;\n });\n }, [defaultVisibleKeyOrder, fireVisibilityChange]);\n\n const hasVisibilityChanges = useMemo(() => {\n if (visibleKeyOrder.length !== defaultVisibleKeyOrder.length) {\n return true;\n }\n return !visibleKeyOrder.every((key, i) =>\n key === defaultVisibleKeyOrder[i]\n );\n }, [visibleKeyOrder, defaultVisibleKeyOrder]);\n\n return {\n visibleDefinitions,\n hiddenDefinitions,\n showFilter,\n hideFilter,\n reorderVisible,\n hasVisibilityChanges,\n resetVisibility,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useFilterVisibility.js","names":["useCallback","useEffect","useMemo","useRef","useState","getFilterKey","useFilterVisibility","filterDefinitions","onVisibilityChange","allKeys","map","defaultVisibleKeyOrder","filter","def","isVisible","visibleKeyOrder","setVisibleKeyOrder","onVisibilityChangeRef","current","fireVisibilityChange","nextVisibleKeyOrder","visibleSet","Set","hiddenKeys","k","has","defByKey","Map","set","visibleDefinitions","hiddenDefinitions","visible","hidden","key","get","push","showFilter","prev","includes","next","hideFilter","reorderVisible","keys","length","every","i","resetVisibility","hasVisibilityChanges"],"sources":["useFilterVisibility.ts"],"sourcesContent":["/*\n * Copyright 2026 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 { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport type { FilterDefinitionUnion } from \"../FilterListApi.js\";\nimport { getFilterKey } from \"../utils/getFilterKey.js\";\n\ninterface FilterVisibilityResult<D> {\n visibleDefinitions: Array<D>;\n hiddenDefinitions: Array<D>;\n showFilter: (key: string) => void;\n hideFilter: (key: string) => void;\n reorderVisible: (keys: string[]) => void;\n hasVisibilityChanges: boolean;\n resetVisibility: () => void;\n}\n\nexport function useFilterVisibility<Q extends ObjectTypeDefinition>(\n filterDefinitions: Array<FilterDefinitionUnion<Q>> | undefined,\n onVisibilityChange?: (visibleKeys: string[], hiddenKeys: string[]) => void\n): FilterVisibilityResult<FilterDefinitionUnion<Q>> {\n const allKeys = useMemo(\n () => filterDefinitions?.map(getFilterKey) ?? [],\n [filterDefinitions]\n );\n\n const defaultVisibleKeyOrder = useMemo(\n () =>\n filterDefinitions\n ?.filter((def) => def.isVisible !== false)\n .map(getFilterKey) ?? [],\n [filterDefinitions]\n );\n\n const [visibleKeyOrder, setVisibleKeyOrder] = useState<string[]>(\n () => defaultVisibleKeyOrder\n );\n\n // Sync state when filterDefinitions changes\n useEffect(() => {\n setVisibleKeyOrder(defaultVisibleKeyOrder);\n }, [defaultVisibleKeyOrder]);\n\n // Keep a ref to onVisibilityChange so callbacks don't need it as a dependency\n const onVisibilityChangeRef = useRef(onVisibilityChange);\n onVisibilityChangeRef.current = onVisibilityChange;\n\n const fireVisibilityChange = useCallback(\n (nextVisibleKeyOrder: string[]) => {\n if (!onVisibilityChangeRef.current) return;\n const visibleSet = new Set(nextVisibleKeyOrder);\n const hiddenKeys = allKeys.filter((k) => !visibleSet.has(k));\n onVisibilityChangeRef.current(nextVisibleKeyOrder, hiddenKeys);\n },\n [allKeys]\n );\n\n const defByKey = useMemo(() => {\n const map = new Map<string, FilterDefinitionUnion<Q>>();\n if (filterDefinitions == null) return map;\n for (const def of filterDefinitions) {\n map.set(getFilterKey(def), def);\n }\n return map;\n }, [filterDefinitions]);\n\n const { visibleDefinitions, hiddenDefinitions } = useMemo(() => {\n if (filterDefinitions == null) {\n return {\n visibleDefinitions: [] as Array<FilterDefinitionUnion<Q>>,\n hiddenDefinitions: [] as Array<FilterDefinitionUnion<Q>>,\n };\n }\n\n const visibleSet = new Set(visibleKeyOrder);\n const visible: Array<FilterDefinitionUnion<Q>> = [];\n const hidden: Array<FilterDefinitionUnion<Q>> = [];\n\n for (const key of visibleKeyOrder) {\n const def = defByKey.get(key);\n if (def != null) {\n visible.push(def);\n }\n }\n\n for (const key of allKeys) {\n if (!visibleSet.has(key)) {\n const def = defByKey.get(key);\n if (def != null) {\n hidden.push(def);\n }\n }\n }\n\n return {\n visibleDefinitions: visible,\n hiddenDefinitions: hidden,\n };\n }, [filterDefinitions, defByKey, visibleKeyOrder, allKeys]);\n\n const showFilter = useCallback(\n (key: string) => {\n setVisibleKeyOrder((prev) => {\n if (prev.includes(key)) return prev;\n const next = [...prev, key];\n fireVisibilityChange(next);\n return next;\n });\n },\n [fireVisibilityChange]\n );\n\n const hideFilter = useCallback(\n (key: string) => {\n setVisibleKeyOrder((prev) => {\n const next = prev.filter((k) => k !== key);\n fireVisibilityChange(next);\n return next;\n });\n },\n [fireVisibilityChange]\n );\n\n const reorderVisible = useCallback(\n (keys: string[]) => {\n setVisibleKeyOrder((prev) => {\n if (\n keys.length === prev.length &&\n keys.every((k, i) => k === prev[i])\n ) {\n return prev;\n }\n fireVisibilityChange(keys);\n return keys;\n });\n },\n [fireVisibilityChange]\n );\n\n const resetVisibility = useCallback(() => {\n setVisibleKeyOrder((prev) => {\n if (\n defaultVisibleKeyOrder.length === prev.length &&\n defaultVisibleKeyOrder.every((k, i) => k === prev[i])\n ) {\n return prev;\n }\n fireVisibilityChange(defaultVisibleKeyOrder);\n return defaultVisibleKeyOrder;\n });\n }, [defaultVisibleKeyOrder, fireVisibilityChange]);\n\n const hasVisibilityChanges = useMemo(() => {\n if (visibleKeyOrder.length !== defaultVisibleKeyOrder.length) {\n return true;\n }\n return !visibleKeyOrder.every(\n (key, i) => key === defaultVisibleKeyOrder[i]\n );\n }, [visibleKeyOrder, defaultVisibleKeyOrder]);\n\n return {\n visibleDefinitions,\n hiddenDefinitions,\n showFilter,\n hideFilter,\n reorderVisible,\n hasVisibilityChanges,\n resetVisibility,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAGzE,SAASC,YAAY,QAAQ,0BAA0B;AAYvD,OAAO,SAASC,mBAAmBA,CACjCC,iBAA8D,EAC9DC,kBAA0E,EACxB;EAClD,MAAMC,OAAO,GAAGP,OAAO,CACrB,MAAMK,iBAAiB,EAAEG,GAAG,CAACL,YAAY,CAAC,IAAI,EAAE,EAChD,CAACE,iBAAiB,CACpB,CAAC;EAED,MAAMI,sBAAsB,GAAGT,OAAO,CACpC,MACEK,iBAAiB,EACbK,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACC,SAAS,KAAK,KAAK,CAAC,CACzCJ,GAAG,CAACL,YAAY,CAAC,IAAI,EAAE,EAC5B,CAACE,iBAAiB,CACpB,CAAC;EAED,MAAM,CAACQ,eAAe,EAAEC,kBAAkB,CAAC,GAAGZ,QAAQ,CACpD,MAAMO,sBACR,CAAC;;EAED;EACAV,SAAS,CAAC,MAAM;IACde,kBAAkB,CAACL,sBAAsB,CAAC;EAC5C,CAAC,EAAE,CAACA,sBAAsB,CAAC,CAAC;;EAE5B;EACA,MAAMM,qBAAqB,GAAGd,MAAM,CAACK,kBAAkB,CAAC;EACxDS,qBAAqB,CAACC,OAAO,GAAGV,kBAAkB;EAElD,MAAMW,oBAAoB,GAAGnB,WAAW,CACrCoB,mBAA6B,IAAK;IACjC,IAAI,CAACH,qBAAqB,CAACC,OAAO,EAAE;IACpC,MAAMG,UAAU,GAAG,IAAIC,GAAG,CAACF,mBAAmB,CAAC;IAC/C,MAAMG,UAAU,GAAGd,OAAO,CAACG,MAAM,CAAEY,CAAC,IAAK,CAACH,UAAU,CAACI,GAAG,CAACD,CAAC,CAAC,CAAC;IAC5DP,qBAAqB,CAACC,OAAO,CAACE,mBAAmB,EAAEG,UAAU,CAAC;EAChE,CAAC,EACD,CAACd,OAAO,CACV,CAAC;EAED,MAAMiB,QAAQ,GAAGxB,OAAO,CAAC,MAAM;IAC7B,MAAMQ,GAAG,GAAG,IAAIiB,GAAG,CAAmC,CAAC;IACvD,IAAIpB,iBAAiB,IAAI,IAAI,EAAE,OAAOG,GAAG;IACzC,KAAK,MAAMG,GAAG,IAAIN,iBAAiB,EAAE;MACnCG,GAAG,CAACkB,GAAG,CAACvB,YAAY,CAACQ,GAAG,CAAC,EAAEA,GAAG,CAAC;IACjC;IACA,OAAOH,GAAG;EACZ,CAAC,EAAE,CAACH,iBAAiB,CAAC,CAAC;EAEvB,MAAM;IAAEsB,kBAAkB;IAAEC;EAAkB,CAAC,GAAG5B,OAAO,CAAC,MAAM;IAC9D,IAAIK,iBAAiB,IAAI,IAAI,EAAE;MAC7B,OAAO;QACLsB,kBAAkB,EAAE,EAAqC;QACzDC,iBAAiB,EAAE;MACrB,CAAC;IACH;IAEA,MAAMT,UAAU,GAAG,IAAIC,GAAG,CAACP,eAAe,CAAC;IAC3C,MAAMgB,OAAwC,GAAG,EAAE;IACnD,MAAMC,MAAuC,GAAG,EAAE;IAElD,KAAK,MAAMC,GAAG,IAAIlB,eAAe,EAAE;MACjC,MAAMF,GAAG,GAAGa,QAAQ,CAACQ,GAAG,CAACD,GAAG,CAAC;MAC7B,IAAIpB,GAAG,IAAI,IAAI,EAAE;QACfkB,OAAO,CAACI,IAAI,CAACtB,GAAG,CAAC;MACnB;IACF;IAEA,KAAK,MAAMoB,GAAG,IAAIxB,OAAO,EAAE;MACzB,IAAI,CAACY,UAAU,CAACI,GAAG,CAACQ,GAAG,CAAC,EAAE;QACxB,MAAMpB,GAAG,GAAGa,QAAQ,CAACQ,GAAG,CAACD,GAAG,CAAC;QAC7B,IAAIpB,GAAG,IAAI,IAAI,EAAE;UACfmB,MAAM,CAACG,IAAI,CAACtB,GAAG,CAAC;QAClB;MACF;IACF;IAEA,OAAO;MACLgB,kBAAkB,EAAEE,OAAO;MAC3BD,iBAAiB,EAAEE;IACrB,CAAC;EACH,CAAC,EAAE,CAACzB,iBAAiB,EAAEmB,QAAQ,EAAEX,eAAe,EAAEN,OAAO,CAAC,CAAC;EAE3D,MAAM2B,UAAU,GAAGpC,WAAW,CAC3BiC,GAAW,IAAK;IACfjB,kBAAkB,CAAEqB,IAAI,IAAK;MAC3B,IAAIA,IAAI,CAACC,QAAQ,CAACL,GAAG,CAAC,EAAE,OAAOI,IAAI;MACnC,MAAME,IAAI,GAAG,CAAC,GAAGF,IAAI,EAAEJ,GAAG,CAAC;MAC3Bd,oBAAoB,CAACoB,IAAI,CAAC;MAC1B,OAAOA,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EACD,CAACpB,oBAAoB,CACvB,CAAC;EAED,MAAMqB,UAAU,GAAGxC,WAAW,CAC3BiC,GAAW,IAAK;IACfjB,kBAAkB,CAAEqB,IAAI,IAAK;MAC3B,MAAME,IAAI,GAAGF,IAAI,CAACzB,MAAM,CAAEY,CAAC,IAAKA,CAAC,KAAKS,GAAG,CAAC;MAC1Cd,oBAAoB,CAACoB,IAAI,CAAC;MAC1B,OAAOA,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EACD,CAACpB,oBAAoB,CACvB,CAAC;EAED,MAAMsB,cAAc,GAAGzC,WAAW,CAC/B0C,IAAc,IAAK;IAClB1B,kBAAkB,CAAEqB,IAAI,IAAK;MAC3B,IACEK,IAAI,CAACC,MAAM,KAAKN,IAAI,CAACM,MAAM,IAC3BD,IAAI,CAACE,KAAK,CAAC,CAACpB,CAAC,EAAEqB,CAAC,KAAKrB,CAAC,KAAKa,IAAI,CAACQ,CAAC,CAAC,CAAC,EACnC;QACA,OAAOR,IAAI;MACb;MACAlB,oBAAoB,CAACuB,IAAI,CAAC;MAC1B,OAAOA,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EACD,CAACvB,oBAAoB,CACvB,CAAC;EAED,MAAM2B,eAAe,GAAG9C,WAAW,CAAC,MAAM;IACxCgB,kBAAkB,CAAEqB,IAAI,IAAK;MAC3B,IACE1B,sBAAsB,CAACgC,MAAM,KAAKN,IAAI,CAACM,MAAM,IAC7ChC,sBAAsB,CAACiC,KAAK,CAAC,CAACpB,CAAC,EAAEqB,CAAC,KAAKrB,CAAC,KAAKa,IAAI,CAACQ,CAAC,CAAC,CAAC,EACrD;QACA,OAAOR,IAAI;MACb;MACAlB,oBAAoB,CAACR,sBAAsB,CAAC;MAC5C,OAAOA,sBAAsB;IAC/B,CAAC,CAAC;EACJ,CAAC,EAAE,CAACA,sBAAsB,EAAEQ,oBAAoB,CAAC,CAAC;EAElD,MAAM4B,oBAAoB,GAAG7C,OAAO,CAAC,MAAM;IACzC,IAAIa,eAAe,CAAC4B,MAAM,KAAKhC,sBAAsB,CAACgC,MAAM,EAAE;MAC5D,OAAO,IAAI;IACb;IACA,OAAO,CAAC5B,eAAe,CAAC6B,KAAK,CAC3B,CAACX,GAAG,EAAEY,CAAC,KAAKZ,GAAG,KAAKtB,sBAAsB,CAACkC,CAAC,CAC9C,CAAC;EACH,CAAC,EAAE,CAAC9B,eAAe,EAAEJ,sBAAsB,CAAC,CAAC;EAE7C,OAAO;IACLkB,kBAAkB;IAClBC,iBAAiB;IACjBM,UAAU;IACVI,UAAU;IACVC,cAAc;IACdM,oBAAoB;IACpBD;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePropertyAggregation.js","names":["useOsdkAggregation","useMemo","dedupeEmptyAggregationRows","NO_VALUE","EMPTY_ACTIVE_VALUES","usePropertyAggregation","objectType","propertyKey","objectSet","options","aggregateOptions","$select","$count","$groupBy","$exact","$includeNullValue","aggregationArgs","aggregate","where","data","countData","isLoading","error","activeValues","result","maxCount","values","dataArray","existingValues","Set","item","raw","$group","add","String","filteredOutEntries","flatMap","v","has","rawValue","count","push","value","isNull","Math","max","deduped","sortBy","sort","a","b","localeCompare","limit","length","slice"],"sources":["usePropertyAggregation.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 AggregateOpts,\n ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport { useOsdkAggregation } from \"@osdk/react\";\nimport { useMemo } from \"react\";\nimport type { AggregationGroupResult } from \"../utils/aggregationHelpers.js\";\nimport { dedupeEmptyAggregationRows, NO_VALUE } from \"../utils/filterValues.js\";\n\nexport type { PropertyAggregationValue } from \"../types/AggregationTypes.js\";\n\nimport type { PropertyAggregationValue } from \"../types/AggregationTypes.js\";\n\nexport interface UsePropertyAggregationResult {\n data: PropertyAggregationValue[];\n maxCount: number;\n isLoading: boolean;\n error: Error | null;\n}\n\nconst EMPTY_ACTIVE_VALUES: string[] = [];\n\nexport interface UsePropertyAggregationOptions<\n Q extends ObjectTypeDefinition = ObjectTypeDefinition,\n> {\n limit?: number;\n where?: WhereClause<Q>;\n sortBy?: \"count\" | \"value\";\n /** Selected values to include in results even when they have zero matching\n * rows (e.g. saved filter selections from initialFilterStates). */\n activeValues?: string[];\n}\n\nexport function usePropertyAggregation<\n Q extends ObjectTypeDefinition,\n K extends PropertyKeys<Q>,\n>(\n objectType: Q,\n propertyKey: K,\n objectSet: ObjectSet<Q> | undefined,\n options?: UsePropertyAggregationOptions<Q>,\n): UsePropertyAggregationResult {\n // AggregateOpts requires specific property keys from Q, but we're dynamically\n // using propertyKey. The cast is unavoidable for this dynamic filter pattern.\n const aggregateOptions = useMemo(\n () =>\n ({\n $select: { $count: \"unordered\" as const },\n $groupBy: {\n [propertyKey as string]: {\n $exact: { $includeNullValue: true },\n },\n },\n }) as AggregateOpts<Q>,\n [propertyKey],\n );\n\n const aggregationArgs = useMemo(\n () => ({ aggregate: aggregateOptions, where: options?.where, objectSet }),\n [aggregateOptions, options?.where, objectSet],\n );\n\n const { data: countData, isLoading, error } = useOsdkAggregation(\n objectType,\n aggregationArgs,\n );\n\n const activeValues = options?.activeValues ?? EMPTY_ACTIVE_VALUES;\n\n const result = useMemo(\n (): { data: PropertyAggregationValue[]; maxCount: number } => {\n if (!countData) {\n return { data: [], maxCount: 0 };\n }\n\n const values: PropertyAggregationValue[] = [];\n let maxCount = 0;\n\n // The aggregation result type varies by query structure. Since we're building\n // the query dynamically based on propertyKey, we cast to a known shape that\n // matches the $groupBy + $count aggregation pattern.\n const dataArray = countData as AggregationGroupResult;\n\n // Build a set of values present in the aggregation so we can identify\n // which active selections need to be synthesized as filtered-out entries.\n const existingValues = new Set<string>();\n for (const item of dataArray) {\n const raw = item.$group[propertyKey as string];\n existingValues.add(raw == null ? NO_VALUE : String(raw));\n }\n\n // Synthesize filtered-out entries for active selections absent from\n // aggregation results (e.g. saved filters with zero matching rows). They\n // use the same shape as real entries so the loop below handles isNull\n // uniformly.\n const filteredOutEntries = activeValues.flatMap((v) =>\n existingValues.has(v)\n ? []\n : [{ $group: { [propertyKey as string]: v }, $count: 0 }]\n );\n\n for (const item of [...dataArray, ...filteredOutEntries]) {\n const rawValue = item.$group[propertyKey as string];\n const count = item.$count ?? 0;\n\n if (rawValue == null) {\n values.push({ value: NO_VALUE, count, isNull: true });\n } else {\n values.push({ value: String(rawValue), count });\n }\n maxCount = Math.max(maxCount, count);\n }\n\n const deduped = dedupeEmptyAggregationRows(values);\n\n const sortBy = options?.sortBy ?? \"count\";\n if (sortBy === \"count\") {\n deduped.sort((a, b) =>\n b.count - a.count || a.value.localeCompare(b.value)\n );\n } else {\n deduped.sort((a, b) => a.value.localeCompare(b.value));\n }\n\n if (options?.limit && deduped.length > options.limit) {\n return { data: deduped.slice(0, options.limit), maxCount };\n }\n\n return { data: deduped, maxCount };\n },\n [countData, propertyKey, options?.limit, options?.sortBy, activeValues],\n );\n\n return {\n data: result.data,\n maxCount: result.maxCount,\n isLoading,\n error: error ?? null,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"usePropertyAggregation.js","names":["useOsdkAggregation","useMemo","dedupeEmptyAggregationRows","NO_VALUE","EMPTY_ACTIVE_VALUES","usePropertyAggregation","objectType","propertyKey","objectSet","options","aggregateOptions","$select","$count","$groupBy","$exact","$includeNullValue","aggregationArgs","aggregate","where","data","countData","isLoading","error","activeValues","result","maxCount","values","dataArray","existingValues","Set","item","raw","$group","add","String","filteredOutEntries","flatMap","v","has","rawValue","count","push","value","isNull","Math","max","deduped","sortBy","sort","a","b","localeCompare","limit","length","slice"],"sources":["usePropertyAggregation.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 AggregateOpts,\n ObjectSet,\n ObjectTypeDefinition,\n PropertyKeys,\n WhereClause,\n} from \"@osdk/api\";\nimport { useOsdkAggregation } from \"@osdk/react\";\nimport { useMemo } from \"react\";\n\nimport type { AggregationGroupResult } from \"../utils/aggregationHelpers.js\";\nimport { dedupeEmptyAggregationRows, NO_VALUE } from \"../utils/filterValues.js\";\n\nexport type { PropertyAggregationValue } from \"../types/AggregationTypes.js\";\n\nimport type { PropertyAggregationValue } from \"../types/AggregationTypes.js\";\n\nexport interface UsePropertyAggregationResult {\n data: PropertyAggregationValue[];\n maxCount: number;\n isLoading: boolean;\n error: Error | null;\n}\n\nconst EMPTY_ACTIVE_VALUES: string[] = [];\n\nexport interface UsePropertyAggregationOptions<\n Q extends ObjectTypeDefinition = ObjectTypeDefinition,\n> {\n limit?: number;\n where?: WhereClause<Q>;\n sortBy?: \"count\" | \"value\";\n /** Selected values to include in results even when they have zero matching\n * rows (e.g. saved filter selections from initialFilterStates). */\n activeValues?: string[];\n}\n\nexport function usePropertyAggregation<\n Q extends ObjectTypeDefinition,\n K extends PropertyKeys<Q>,\n>(\n objectType: Q,\n propertyKey: K,\n objectSet: ObjectSet<Q> | undefined,\n options?: UsePropertyAggregationOptions<Q>\n): UsePropertyAggregationResult {\n // AggregateOpts requires specific property keys from Q, but we're dynamically\n // using propertyKey. The cast is unavoidable for this dynamic filter pattern.\n const aggregateOptions = useMemo(\n () =>\n ({\n $select: { $count: \"unordered\" as const },\n $groupBy: {\n [propertyKey as string]: {\n $exact: { $includeNullValue: true },\n },\n },\n }) as AggregateOpts<Q>,\n [propertyKey]\n );\n\n const aggregationArgs = useMemo(\n () => ({ aggregate: aggregateOptions, where: options?.where, objectSet }),\n [aggregateOptions, options?.where, objectSet]\n );\n\n const {\n data: countData,\n isLoading,\n error,\n } = useOsdkAggregation(objectType, aggregationArgs);\n\n const activeValues = options?.activeValues ?? EMPTY_ACTIVE_VALUES;\n\n const result = useMemo((): {\n data: PropertyAggregationValue[];\n maxCount: number;\n } => {\n if (!countData) {\n return { data: [], maxCount: 0 };\n }\n\n const values: PropertyAggregationValue[] = [];\n let maxCount = 0;\n\n // The aggregation result type varies by query structure. Since we're building\n // the query dynamically based on propertyKey, we cast to a known shape that\n // matches the $groupBy + $count aggregation pattern.\n const dataArray = countData as AggregationGroupResult;\n\n // Build a set of values present in the aggregation so we can identify\n // which active selections need to be synthesized as filtered-out entries.\n const existingValues = new Set<string>();\n for (const item of dataArray) {\n const raw = item.$group[propertyKey as string];\n existingValues.add(raw == null ? NO_VALUE : String(raw));\n }\n\n // Synthesize filtered-out entries for active selections absent from\n // aggregation results (e.g. saved filters with zero matching rows). They\n // use the same shape as real entries so the loop below handles isNull\n // uniformly.\n const filteredOutEntries = activeValues.flatMap((v) =>\n existingValues.has(v)\n ? []\n : [{ $group: { [propertyKey as string]: v }, $count: 0 }]\n );\n\n for (const item of [...dataArray, ...filteredOutEntries]) {\n const rawValue = item.$group[propertyKey as string];\n const count = item.$count ?? 0;\n\n if (rawValue == null) {\n values.push({ value: NO_VALUE, count, isNull: true });\n } else {\n values.push({ value: String(rawValue), count });\n }\n maxCount = Math.max(maxCount, count);\n }\n\n const deduped = dedupeEmptyAggregationRows(values);\n\n const sortBy = options?.sortBy ?? \"count\";\n if (sortBy === \"count\") {\n deduped.sort(\n (a, b) => b.count - a.count || a.value.localeCompare(b.value)\n );\n } else {\n deduped.sort((a, b) => a.value.localeCompare(b.value));\n }\n\n if (options?.limit && deduped.length > options.limit) {\n return { data: deduped.slice(0, options.limit), maxCount };\n }\n\n return { data: deduped, maxCount };\n }, [countData, propertyKey, options?.limit, options?.sortBy, activeValues]);\n\n return {\n data: result.data,\n maxCount: result.maxCount,\n isLoading,\n error: error ?? null,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ContainsTextFilterInput.js","names":["React","memo","useCallback","useMemo","ContainsTextInput","ContainsTextFilterInputInner","propertyKey","filterState","onFilterStateChanged","value","type","undefined","handleChange","createElement","onChange","placeholder","ContainsTextFilterInput"],"sources":["ContainsTextFilterInput.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 { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\ninterface ContainsTextFilterInputProps {\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction ContainsTextFilterInputInner({\n propertyKey,\n filterState,\n onFilterStateChanged,\n}: ContainsTextFilterInputProps): React.ReactElement {\n const value = useMemo(\n () =>\n filterState?.type === \"CONTAINS_TEXT\"\n ? filterState.value\n : undefined,\n [filterState],\n );\n\n const handleChange = useCallback(\n (value: string | undefined) => {\n onFilterStateChanged({ type: \"CONTAINS_TEXT\", value });\n },\n [onFilterStateChanged],\n );\n\n return (\n <ContainsTextInput\n value={value}\n onChange={handleChange}\n placeholder=\"Search...\"\n />\n );\n}\n\nexport const ContainsTextFilterInput: React.MemoExoticComponent<\n typeof ContainsTextFilterInputInner\n> = memo(ContainsTextFilterInputInner);\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,iBAAiB,QAAQ,qCAAqC;AASvE,SAASC,4BAA4BA,CAAC;EACpCC,WAAW;EACXC,WAAW;EACXC;AAC4B,CAAC,EAAsB;EACnD,MAAMC,KAAK,GAAGN,OAAO,CACnB,MACEI,WAAW,EAAEG,IAAI,KAAK,eAAe,GACjCH,WAAW,CAACE,KAAK,GACjBE,SAAS,EACf,CAACJ,WAAW,CACd,CAAC;EAED,MAAMK,YAAY,GAAGV,WAAW,CAC7BO,KAAyB,IAAK;IAC7BD,oBAAoB,CAAC;MAAEE,IAAI,EAAE,eAAe;MAAED;IAAM,CAAC,CAAC;EACxD,CAAC,EACD,CAACD,oBAAoB,CACvB,CAAC;EAED,oBACER,KAAA,CAAAa,aAAA,CAACT,iBAAiB;IAChBK,KAAK,EAAEA,KAAM;IACbK,QAAQ,EAAEF,YAAa;IACvBG,WAAW,EAAC;EAAW,CACxB,CAAC;AAEN;AAEA,OAAO,MAAMC,uBAEZ,gBAAGf,IAAI,CAACI,4BAA4B,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ContainsTextFilterInput.js","names":["React","memo","useCallback","useMemo","ContainsTextInput","ContainsTextFilterInputInner","propertyKey","filterState","onFilterStateChanged","value","type","undefined","handleChange","createElement","onChange","placeholder","ContainsTextFilterInput"],"sources":["ContainsTextFilterInput.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\";\n\nimport { ContainsTextInput } from \"../base/inputs/ContainsTextInput.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\n\ninterface ContainsTextFilterInputProps {\n propertyKey: string;\n filterState: FilterState | undefined;\n onFilterStateChanged: (state: FilterState) => void;\n}\n\nfunction ContainsTextFilterInputInner({\n propertyKey,\n filterState,\n onFilterStateChanged,\n}: ContainsTextFilterInputProps): React.ReactElement {\n const value = useMemo(\n () =>\n filterState?.type === \"CONTAINS_TEXT\" ? filterState.value : undefined,\n [filterState]\n );\n\n const handleChange = useCallback(\n (value: string | undefined) => {\n onFilterStateChanged({ type: \"CONTAINS_TEXT\", value });\n },\n [onFilterStateChanged]\n );\n\n return (\n <ContainsTextInput\n value={value}\n onChange={handleChange}\n placeholder=\"Search...\"\n />\n );\n}\n\nexport const ContainsTextFilterInput: React.MemoExoticComponent<\n typeof ContainsTextFilterInputInner\n> = memo(ContainsTextFilterInputInner);\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;AAEzD,SAASC,iBAAiB,QAAQ,qCAAqC;AASvE,SAASC,4BAA4BA,CAAC;EACpCC,WAAW;EACXC,WAAW;EACXC;AAC4B,CAAC,EAAsB;EACnD,MAAMC,KAAK,GAAGN,OAAO,CACnB,MACEI,WAAW,EAAEG,IAAI,KAAK,eAAe,GAAGH,WAAW,CAACE,KAAK,GAAGE,SAAS,EACvE,CAACJ,WAAW,CACd,CAAC;EAED,MAAMK,YAAY,GAAGV,WAAW,CAC7BO,KAAyB,IAAK;IAC7BD,oBAAoB,CAAC;MAAEE,IAAI,EAAE,eAAe;MAAED;IAAM,CAAC,CAAC;EACxD,CAAC,EACD,CAACD,oBAAoB,CACvB,CAAC;EAED,oBACER,KAAA,CAAAa,aAAA,CAACT,iBAAiB;IAChBK,KAAK,EAAEA,KAAM;IACbK,QAAQ,EAAEF,YAAa;IACvBG,WAAW,EAAC;EAAW,CACxB,CAAC;AAEN;AAEA,OAAO,MAAMC,uBAEZ,gBAAGf,IAAI,CAACI,4BAA4B,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangeFilterInput.js","names":["useOsdkAggregation","React","memo","useCallback","useMemo","DateRangeHistogramInput","NullValueWrapper","createGroupByAggregateOptions","createNullCountAggregateOptions","createNullCountWhereClause","DateRangeFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","formatDate","clickToFilter","dateRangeState","type","undefined","includeNull","handleNullChange","minValue","maxValue","handleRangeChange","aggregateOptions","histogramArgs","aggregate","where","data","aggregateData","isLoading","histLoading","valueCountPairs","pairs","item","rawValue","$group","date","Date","String","isNaN","getTime","push","value","count","$count","nullCountAggregateOptions","nullCountWhereClause","nullCountArgs","nullCountData","nullLoading","error","nullError","nullCount","result","createElement","onIncludeNullChange","onChange","DateRangeFilterInput"],"sources":["DateRangeFilterInput.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 { useOsdkAggregation } from \"@osdk/react\";\nimport React, { memo, useCallback, useMemo } from \"react\";\nimport { DateRangeHistogramInput } from \"../base/inputs/DateRangeHistogramInput.js\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport {\n createGroupByAggregateOptions,\n createNullCountAggregateOptions,\n createNullCountWhereClause,\n} from \"../utils/aggregationHelpers.js\";\n\ninterface DateRangeFilterInputProps<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 formatDate?: (date: Date) => string;\n clickToFilter?: boolean;\n}\n\nfunction DateRangeFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n formatDate,\n clickToFilter,\n}: DateRangeFilterInputProps<Q>): React.ReactElement {\n const dateRangeState = filterState?.type === \"DATE_RANGE\"\n ? filterState\n : undefined;\n const includeNull = filterState?.includeNull;\n\n const handleNullChange = useCallback(\n (includeNull: boolean) => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue: dateRangeState?.minValue,\n maxValue: dateRangeState?.maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, dateRangeState?.minValue, dateRangeState?.maxValue],\n );\n\n const handleRangeChange = useCallback(\n (minValue: Date | undefined, maxValue: Date | undefined) => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, includeNull],\n );\n\n const aggregateOptions = useMemo(\n () => createGroupByAggregateOptions<Q>(propertyKey),\n [propertyKey],\n );\n\n const histogramArgs = useMemo(\n () => ({ aggregate: aggregateOptions, objectSet, where: whereClause }),\n [aggregateOptions, objectSet, whereClause],\n );\n\n const { data: aggregateData, isLoading: histLoading } = useOsdkAggregation(\n objectType,\n histogramArgs,\n );\n\n const valueCountPairs = useMemo<Array<{ value: Date; count: number }>>(\n () => {\n if (!aggregateData) return [];\n const dataArray = aggregateData as Iterable<{\n $group: Record<string, unknown>;\n $count?: number;\n }>;\n const pairs: Array<{ value: Date; count: number }> = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const date = new Date(String(rawValue));\n if (!isNaN(date.getTime())) {\n pairs.push({ value: date, count: item.$count ?? 0 });\n }\n }\n }\n return pairs;\n },\n [aggregateData, propertyKey],\n );\n\n const nullCountAggregateOptions = useMemo(\n () => createNullCountAggregateOptions<Q>(),\n [],\n );\n\n const nullCountWhereClause = useMemo(\n () => createNullCountWhereClause<Q>(propertyKey, whereClause),\n [propertyKey, whereClause],\n );\n\n const nullCountArgs = useMemo(\n () => ({\n where: nullCountWhereClause,\n aggregate: nullCountAggregateOptions,\n objectSet,\n }),\n [nullCountWhereClause, nullCountAggregateOptions, objectSet],\n );\n\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError,\n } = useOsdkAggregation(\n objectType,\n nullCountArgs,\n );\n\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData as { $count?: number } | Iterable<unknown>;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n\n const isLoading = histLoading || nullLoading;\n\n return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={isLoading}\n error={nullError}\n includeNull={includeNull}\n onIncludeNullChange={handleNullChange}\n >\n <DateRangeHistogramInput\n valueCountPairs={valueCountPairs}\n isLoading={isLoading}\n minValue={dateRangeState?.minValue}\n maxValue={dateRangeState?.maxValue}\n onChange={handleRangeChange}\n formatDate={formatDate}\n clickToFilter={clickToFilter}\n />\n </NullValueWrapper>\n );\n}\n\nexport const DateRangeFilterInput: typeof DateRangeFilterInputInner = memo(\n DateRangeFilterInputInner,\n) as typeof DateRangeFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DateRangeFilterInput.js","names":["useOsdkAggregation","React","memo","useCallback","useMemo","DateRangeHistogramInput","NullValueWrapper","createGroupByAggregateOptions","createNullCountAggregateOptions","createNullCountWhereClause","DateRangeFilterInputInner","objectType","objectSet","propertyKey","filterState","onFilterStateChanged","whereClause","formatDate","clickToFilter","dateRangeState","type","undefined","includeNull","handleNullChange","minValue","maxValue","handleRangeChange","aggregateOptions","histogramArgs","aggregate","where","data","aggregateData","isLoading","histLoading","valueCountPairs","pairs","item","rawValue","$group","date","Date","String","isNaN","getTime","push","value","count","$count","nullCountAggregateOptions","nullCountWhereClause","nullCountArgs","nullCountData","nullLoading","error","nullError","nullCount","result","createElement","onIncludeNullChange","onChange","DateRangeFilterInput"],"sources":["DateRangeFilterInput.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 { useOsdkAggregation } from \"@osdk/react\";\nimport React, { memo, useCallback, useMemo } from \"react\";\n\nimport { DateRangeHistogramInput } from \"../base/inputs/DateRangeHistogramInput.js\";\nimport { NullValueWrapper } from \"../base/inputs/NullValueWrapper.js\";\nimport type { FilterState } from \"../FilterListItemApi.js\";\nimport {\n createGroupByAggregateOptions,\n createNullCountAggregateOptions,\n createNullCountWhereClause,\n} from \"../utils/aggregationHelpers.js\";\n\ninterface DateRangeFilterInputProps<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 formatDate?: (date: Date) => string;\n clickToFilter?: boolean;\n}\n\nfunction DateRangeFilterInputInner<Q extends ObjectTypeDefinition>({\n objectType,\n objectSet,\n propertyKey,\n filterState,\n onFilterStateChanged,\n whereClause,\n formatDate,\n clickToFilter,\n}: DateRangeFilterInputProps<Q>): React.ReactElement {\n const dateRangeState =\n filterState?.type === \"DATE_RANGE\" ? filterState : undefined;\n const includeNull = filterState?.includeNull;\n\n const handleNullChange = useCallback(\n (includeNull: boolean) => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue: dateRangeState?.minValue,\n maxValue: dateRangeState?.maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, dateRangeState?.minValue, dateRangeState?.maxValue]\n );\n\n const handleRangeChange = useCallback(\n (minValue: Date | undefined, maxValue: Date | undefined) => {\n onFilterStateChanged({\n type: \"DATE_RANGE\",\n minValue,\n maxValue,\n includeNull,\n });\n },\n [onFilterStateChanged, includeNull]\n );\n\n const aggregateOptions = useMemo(\n () => createGroupByAggregateOptions<Q>(propertyKey),\n [propertyKey]\n );\n\n const histogramArgs = useMemo(\n () => ({ aggregate: aggregateOptions, objectSet, where: whereClause }),\n [aggregateOptions, objectSet, whereClause]\n );\n\n const { data: aggregateData, isLoading: histLoading } = useOsdkAggregation(\n objectType,\n histogramArgs\n );\n\n const valueCountPairs = useMemo<Array<{ value: Date; count: number }>>(() => {\n if (!aggregateData) return [];\n const dataArray = aggregateData as Iterable<{\n $group: Record<string, unknown>;\n $count?: number;\n }>;\n const pairs: Array<{ value: Date; count: number }> = [];\n for (const item of dataArray) {\n const rawValue = item.$group[propertyKey];\n if (rawValue != null) {\n const date = new Date(String(rawValue));\n if (!isNaN(date.getTime())) {\n pairs.push({ value: date, count: item.$count ?? 0 });\n }\n }\n }\n return pairs;\n }, [aggregateData, propertyKey]);\n\n const nullCountAggregateOptions = useMemo(\n () => createNullCountAggregateOptions<Q>(),\n []\n );\n\n const nullCountWhereClause = useMemo(\n () => createNullCountWhereClause<Q>(propertyKey, whereClause),\n [propertyKey, whereClause]\n );\n\n const nullCountArgs = useMemo(\n () => ({\n where: nullCountWhereClause,\n aggregate: nullCountAggregateOptions,\n objectSet,\n }),\n [nullCountWhereClause, nullCountAggregateOptions, objectSet]\n );\n\n const {\n data: nullCountData,\n isLoading: nullLoading,\n error: nullError,\n } = useOsdkAggregation(objectType, nullCountArgs);\n\n const nullCount = useMemo(() => {\n if (!nullCountData) return 0;\n const result = nullCountData as { $count?: number } | Iterable<unknown>;\n if (\"$count\" in result && typeof result.$count === \"number\") {\n return result.$count;\n }\n return 0;\n }, [nullCountData]);\n\n const isLoading = histLoading || nullLoading;\n\n return (\n <NullValueWrapper\n nullCount={nullCount}\n isLoading={isLoading}\n error={nullError}\n includeNull={includeNull}\n onIncludeNullChange={handleNullChange}\n >\n <DateRangeHistogramInput\n valueCountPairs={valueCountPairs}\n isLoading={isLoading}\n minValue={dateRangeState?.minValue}\n maxValue={dateRangeState?.maxValue}\n onChange={handleRangeChange}\n formatDate={formatDate}\n clickToFilter={clickToFilter}\n />\n </NullValueWrapper>\n );\n}\n\nexport const DateRangeFilterInput: typeof DateRangeFilterInputInner = memo(\n DateRangeFilterInputInner\n) as typeof DateRangeFilterInputInner;\n"],"mappings":"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","ignoreList":[]}
@@ -21,7 +21,6 @@ import { assertUnreachable } from "../../shared/assertUnreachable.js";
21
21
  import { FilterInputExcludeRow } from "../base/FilterInputExcludeRow.js";
22
22
  import { ContainsTextInput } from "../base/inputs/ContainsTextInput.js";
23
23
  import { DateRangeHistogramInput } from "../base/inputs/DateRangeHistogramInput.js";
24
- import styles from "../base/inputs/LinkedPropertyInput.module.css";
25
24
  import { ListogramInput } from "../base/inputs/ListogramInput.js";
26
25
  import { MultiDateInput } from "../base/inputs/MultiDateInput.js";
27
26
  import { MultiSelectInput } from "../base/inputs/MultiSelectInput.js";
@@ -39,6 +38,7 @@ import { createGroupByAggregateOptions, createNullCountAggregateOptions, createN
39
38
  import { coerceToString, coerceToStringArray } from "../utils/coerceFilterValue.js";
40
39
  import { clearFilterState } from "../utils/filterValues.js";
41
40
  import { narrowObjectSet } from "../utils/narrowObjectSet.js";
41
+ import styles from "../base/inputs/LinkedPropertyInput.module.css";
42
42
  function LinkedPropertyInputInner({
43
43
  objectSet,
44
44
  whereClause,