@osdk/react-components 0.2.0-beta.9 → 0.2.1-main-20260407074313
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.
- package/AGENTS.md +26 -0
- package/CHANGELOG.md +356 -0
- package/README.md +166 -7
- package/build/browser/action-form/ActionForm.js +117 -0
- package/build/browser/action-form/ActionForm.js.map +1 -0
- package/build/browser/action-form/ActionFormApi.js.map +1 -1
- package/build/browser/action-form/BaseForm.js +83 -0
- package/build/browser/action-form/BaseForm.js.map +1 -0
- package/build/browser/action-form/BaseForm.module.css +38 -0
- package/build/browser/action-form/BaseForm.module.css.js +8 -0
- package/build/browser/action-form/FormField.js +42 -0
- package/build/browser/action-form/FormField.js.map +1 -0
- package/build/browser/action-form/FormField.module.css +41 -0
- package/build/browser/action-form/FormField.module.css.js +10 -0
- package/build/browser/action-form/FormFieldApi.js.map +1 -1
- package/build/browser/action-form/FormHeader.js +26 -0
- package/build/browser/action-form/FormHeader.js.map +1 -0
- package/build/browser/action-form/FormHeader.module.css +26 -0
- package/build/browser/action-form/FormHeader.module.css.js +6 -0
- package/build/browser/action-form/fields/BaseInput.module.css +56 -0
- package/build/browser/action-form/fields/BaseInput.module.css.js +6 -0
- package/build/browser/action-form/fields/CustomField.js +30 -0
- package/build/browser/action-form/fields/CustomField.js.map +1 -0
- package/build/browser/action-form/fields/DateCalendar.js +70 -0
- package/build/browser/action-form/fields/DateCalendar.js.map +1 -0
- package/build/browser/action-form/fields/DateCalendar.module.css +136 -0
- package/build/browser/action-form/fields/DateCalendar.module.css.js +22 -0
- package/build/browser/action-form/fields/DatetimePickerField.js +98 -0
- package/build/browser/action-form/fields/DatetimePickerField.js.map +1 -0
- package/build/browser/action-form/fields/DatetimePickerField.module.css +66 -0
- package/build/browser/action-form/fields/DatetimePickerField.module.css.js +10 -0
- package/build/browser/action-form/fields/DropdownField.js +104 -0
- package/build/browser/action-form/fields/DropdownField.js.map +1 -0
- package/build/browser/action-form/fields/FieldBridge.js +45 -0
- package/build/browser/action-form/fields/FieldBridge.js.map +1 -0
- package/build/browser/action-form/fields/FilePickerField.js +119 -0
- package/build/browser/action-form/fields/FilePickerField.js.map +1 -0
- package/build/browser/action-form/fields/FilePickerField.module.css +132 -0
- package/build/browser/action-form/fields/FilePickerField.module.css.js +11 -0
- package/build/browser/action-form/fields/FormFieldRenderer.js +128 -0
- package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -0
- package/build/browser/action-form/fields/LazyDateCalendar.js +27 -0
- package/build/browser/action-form/fields/LazyDateCalendar.js.map +1 -0
- package/build/browser/action-form/fields/NumberInputField.js +130 -0
- package/build/browser/action-form/fields/NumberInputField.js.map +1 -0
- package/build/browser/action-form/fields/NumberInputField.module.css +96 -0
- package/build/browser/action-form/fields/NumberInputField.module.css.js +9 -0
- package/build/browser/action-form/fields/RadioButtonsField.js +57 -0
- package/build/browser/action-form/fields/RadioButtonsField.js.map +1 -0
- package/build/browser/action-form/fields/RadioButtonsField.module.css +83 -0
- package/build/browser/action-form/fields/RadioButtonsField.module.css.js +10 -0
- package/build/browser/action-form/fields/TextAreaField.js +50 -0
- package/build/browser/action-form/fields/TextAreaField.js.map +1 -0
- package/build/browser/action-form/fields/TextInputField.js +39 -0
- package/build/browser/action-form/fields/TextInputField.js.map +1 -0
- package/build/browser/action-form/utils/coerceFieldValue.js +93 -0
- package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -0
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +120 -0
- package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
- package/build/browser/base-components/action-button/ActionButton.module.css +0 -4
- package/build/browser/base-components/checkbox/Checkbox.js +8 -4
- package/build/browser/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/browser/base-components/checkbox/Checkbox.module.css +13 -8
- package/build/browser/base-components/combobox/Combobox.js +154 -0
- package/build/browser/base-components/combobox/Combobox.js.map +1 -0
- package/build/browser/base-components/combobox/Combobox.module.css +364 -0
- package/build/browser/base-components/combobox/Combobox.module.css.js +18 -0
- package/build/browser/base-components/dialog/Dialog.js +4 -2
- package/build/browser/base-components/dialog/Dialog.js.map +1 -1
- package/build/browser/base-components/dialog/Dialog.module.css +0 -8
- package/build/browser/base-components/draggable-list/DraggableList.module.css +2 -10
- package/build/browser/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/browser/base-components/searchable-menu/SearchableMenu.js +86 -0
- package/build/browser/base-components/searchable-menu/SearchableMenu.js.map +1 -0
- package/build/browser/base-components/searchable-menu/SearchableMenu.module.css +80 -0
- package/build/browser/base-components/searchable-menu/SearchableMenu.module.css.js +10 -0
- package/build/browser/base-components/select/Select.js +93 -0
- package/build/browser/base-components/select/Select.js.map +1 -0
- package/build/browser/base-components/select/Select.module.css +233 -0
- package/build/browser/base-components/select/Select.module.css.js +13 -0
- package/build/browser/base-components/skeleton/SkeletonBar.js +36 -0
- package/build/browser/base-components/skeleton/SkeletonBar.js.map +1 -0
- package/build/browser/base-components/skeleton/SkeletonBar.module.css +39 -0
- package/build/browser/base-components/skeleton/SkeletonBar.module.css.js +7 -0
- package/build/browser/base-components/switch/Switch.module.css +14 -15
- package/build/browser/base-components/tooltip/Tooltip.js +91 -0
- package/build/browser/base-components/tooltip/Tooltip.js.map +1 -0
- package/build/browser/base-components/tooltip/Tooltip.module.css +70 -0
- package/build/browser/base-components/tooltip/Tooltip.module.css.js +11 -0
- package/build/browser/base-components/tooltip/index.js +18 -0
- package/build/browser/base-components/tooltip/index.js.map +1 -0
- package/build/browser/filter-list/FilterInput.js +141 -0
- package/build/browser/filter-list/FilterInput.js.map +1 -0
- package/build/browser/filter-list/FilterList.js +142 -0
- package/build/browser/filter-list/FilterList.js.map +1 -0
- package/build/browser/filter-list/FilterListApi.js.map +1 -1
- package/build/browser/filter-list/FilterListItemApi.js.map +1 -1
- package/build/browser/filter-list/base/AddFilterPopover.js +35 -0
- package/build/browser/filter-list/base/AddFilterPopover.js.map +1 -0
- package/build/browser/filter-list/base/AddFilterPopover.module.css +49 -0
- package/build/browser/filter-list/base/AddFilterPopover.module.css.js +6 -0
- package/build/browser/filter-list/base/BaseFilterList.js +94 -0
- package/build/browser/filter-list/base/BaseFilterList.js.map +1 -0
- package/build/browser/filter-list/base/BaseFilterListApi.js +2 -0
- package/build/browser/filter-list/base/BaseFilterListApi.js.map +1 -0
- package/build/browser/filter-list/base/DragHandleIcon.js +51 -0
- package/build/browser/filter-list/base/DragHandleIcon.js.map +1 -0
- package/build/browser/filter-list/base/ExcludeDropdown.js +62 -0
- package/build/browser/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css +96 -0
- package/build/browser/filter-list/base/ExcludeDropdown.module.css.js +12 -0
- package/build/browser/filter-list/base/FilterIcons.js +65 -0
- package/build/browser/filter-list/base/FilterIcons.js.map +1 -0
- package/build/browser/filter-list/base/FilterInputExcludeRow.js +67 -0
- package/build/browser/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/browser/filter-list/base/FilterList.module.css +84 -6
- package/build/browser/filter-list/base/FilterList.module.css.js +6 -0
- package/build/browser/filter-list/base/FilterListContent.js +172 -6
- package/build/browser/filter-list/base/FilterListContent.js.map +1 -1
- package/build/browser/filter-list/base/FilterListContent.module.css +6 -0
- package/build/browser/filter-list/base/FilterListContent.module.css.js +2 -1
- package/build/browser/filter-list/base/FilterListHeader.js +14 -13
- package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/browser/filter-list/base/FilterListHeader.module.css +22 -21
- package/build/browser/filter-list/base/FilterListHeader.module.css.js +1 -1
- package/build/browser/filter-list/base/FilterListItem.js +124 -27
- package/build/browser/filter-list/base/FilterListItem.js.map +1 -1
- package/build/browser/filter-list/base/FilterListItem.module.css +173 -0
- package/build/browser/filter-list/base/FilterListItem.module.css.js +11 -1
- package/build/browser/filter-list/base/SortableFilterListItem.js +64 -0
- package/build/browser/filter-list/base/SortableFilterListItem.js.map +1 -0
- package/build/browser/filter-list/base/index.js +1 -2
- package/build/browser/filter-list/base/index.js.map +1 -1
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js +5 -7
- package/build/browser/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/DateRangeInput.js +37 -0
- package/build/browser/filter-list/base/inputs/DateRangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
- package/build/browser/filter-list/base/inputs/LinkedPropertyInput.module.css.js +6 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.js +118 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css +137 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css.js +14 -0
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.js +45 -0
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
- package/build/browser/filter-list/base/inputs/ListogramSkeleton.module.css.js +8 -0
- package/build/browser/filter-list/base/inputs/MultiDateInput.js +1 -1
- package/build/browser/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/MultiDateInput.module.css +6 -6
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js +76 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css +37 -0
- package/build/browser/filter-list/base/inputs/MultiSelectInput.module.css.js +8 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js +57 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
- package/build/browser/filter-list/base/inputs/NullValueWrapper.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/NumberRangeInput.js +48 -0
- package/build/browser/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/RangeInput.js +159 -0
- package/build/browser/filter-list/base/inputs/RangeInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/RangeInput.module.css +106 -0
- package/build/browser/filter-list/base/inputs/RangeInput.module.css.js +13 -0
- package/build/browser/filter-list/base/inputs/SingleDateInput.js +1 -1
- package/build/browser/filter-list/base/inputs/SingleDateInput.js.map +1 -1
- package/build/browser/filter-list/base/inputs/SingleDateInput.module.css +2 -2
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js +77 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css +45 -0
- package/build/browser/filter-list/base/inputs/SingleSelectInput.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.js +133 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.module.css +25 -0
- package/build/browser/filter-list/base/inputs/TextTagsInput.module.css.js +7 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.js +74 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.js.map +1 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.module.css +75 -0
- package/build/browser/filter-list/base/inputs/TimelineInput.module.css.js +10 -0
- package/build/browser/filter-list/base/inputs/createHistogramBuckets.js +53 -0
- package/build/browser/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
- package/build/browser/filter-list/base/inputs/index.js +5 -1
- package/build/browser/filter-list/base/inputs/index.js.map +1 -1
- package/build/browser/filter-list/base/inputs/shared.module.css +5 -5
- package/build/browser/filter-list/base/inputs/useStableData.js +29 -0
- package/build/browser/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/browser/filter-list/hooks/useFilterListState.js +56 -10
- package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/browser/filter-list/hooks/useFilterVisibility.js +74 -0
- package/build/browser/filter-list/hooks/useFilterVisibility.js.map +1 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js +98 -0
- package/build/browser/filter-list/hooks/usePropertyAggregation.js.map +1 -0
- package/build/browser/filter-list/inputs/ContainsTextFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js +109 -0
- package/build/browser/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js +496 -0
- package/build/browser/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
- package/build/browser/filter-list/inputs/ListogramFilterInput.js +83 -0
- package/build/browser/filter-list/inputs/ListogramFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/MultiDateFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js +71 -0
- package/build/browser/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js +109 -0
- package/build/browser/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/PropertyFilterInput.js +142 -0
- package/build/browser/filter-list/inputs/PropertyFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js +38 -0
- package/build/browser/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js +71 -0
- package/build/browser/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js +70 -0
- package/build/browser/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/TimelineFilterInput.js +49 -0
- package/build/browser/filter-list/inputs/TimelineFilterInput.js.map +1 -0
- package/build/browser/filter-list/inputs/ToggleFilterInput.js +36 -0
- package/build/browser/filter-list/inputs/ToggleFilterInput.js.map +1 -0
- package/build/browser/filter-list/types/AggregationTypes.js +2 -0
- package/build/browser/filter-list/types/AggregationTypes.js.map +1 -0
- package/build/browser/filter-list/types/CustomRendererTypes.js.map +1 -1
- package/build/browser/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/browser/filter-list/types/index.js +0 -2
- package/build/browser/filter-list/types/index.js.map +1 -1
- package/build/browser/filter-list/utils/aggregationHelpers.js +44 -0
- package/build/browser/filter-list/utils/aggregationHelpers.js.map +1 -0
- package/build/browser/filter-list/utils/filterStateSerialization.js +42 -0
- package/build/browser/filter-list/utils/filterStateSerialization.js.map +1 -0
- package/build/browser/filter-list/utils/filterStateToWhereClause.js +124 -91
- package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/browser/filter-list/utils/filterValues.js +55 -1
- package/build/browser/filter-list/utils/filterValues.js.map +1 -1
- package/build/browser/filter-list/utils/getFilterKey.js +1 -1
- package/build/browser/filter-list/utils/getFilterKey.js.map +1 -1
- package/build/browser/filter-list/utils/getFilterLabel.js +36 -0
- package/build/browser/filter-list/utils/getFilterLabel.js.map +1 -0
- package/build/browser/object-table/ColumnConfigDialog.module.css +1 -11
- package/build/browser/object-table/DefaultCellRenderer.js +23 -5
- package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
- package/build/browser/object-table/EditableCell.js +87 -10
- package/build/browser/object-table/EditableCell.js.map +1 -1
- package/build/browser/object-table/EditableCell.module.css +69 -2
- package/build/browser/object-table/EditableCell.module.css.js +6 -1
- package/build/browser/object-table/LoadingCell.js +7 -3
- package/build/browser/object-table/LoadingCell.js.map +1 -1
- package/build/browser/object-table/LoadingCell.module.css +3 -21
- package/build/browser/object-table/LoadingCell.module.css.js +1 -2
- package/build/browser/object-table/LoadingRow.js +2 -1
- package/build/browser/object-table/LoadingRow.js.map +1 -1
- package/build/browser/object-table/LoadingStateTable.js +2 -1
- package/build/browser/object-table/LoadingStateTable.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.js +22 -58
- package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/browser/object-table/MultiColumnSortDialog.module.css +0 -69
- package/build/browser/object-table/MultiColumnSortDialog.module.css.js +0 -5
- package/build/browser/object-table/ObjectTable.js +16 -23
- package/build/browser/object-table/ObjectTable.js.map +1 -1
- package/build/browser/object-table/ObjectTableApi.js.map +1 -1
- package/build/browser/object-table/SelectionCells.js +1 -0
- package/build/browser/object-table/SelectionCells.js.map +1 -1
- package/build/browser/object-table/Table.js +23 -15
- package/build/browser/object-table/Table.js.map +1 -1
- package/build/browser/object-table/Table.module.css +0 -8
- package/build/browser/object-table/Table.module.css.js +1 -2
- package/build/browser/object-table/TableBody.js +8 -2
- package/build/browser/object-table/TableBody.js.map +1 -1
- package/build/browser/object-table/TableCell.module.css +2 -9
- package/build/browser/object-table/TableEditContainer.js +90 -0
- package/build/browser/object-table/TableEditContainer.js.map +1 -0
- package/build/browser/object-table/TableEditContainer.module.css +71 -0
- package/build/browser/object-table/TableEditContainer.module.css.js +13 -0
- package/build/browser/object-table/TableHeader.js +4 -1
- package/build/browser/object-table/TableHeader.js.map +1 -1
- package/build/browser/object-table/TableHeader.module.css +4 -3
- package/build/browser/object-table/TableHeader.module.css.js +1 -0
- package/build/browser/object-table/TableHeaderWithPopover.js +2 -4
- package/build/browser/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/browser/object-table/TableHeaderWithPopover.module.css +1 -12
- package/build/browser/object-table/TableRow.js +10 -3
- package/build/browser/object-table/TableRow.js.map +1 -1
- package/build/browser/object-table/TableRow.module.css +2 -1
- package/build/browser/object-table/components/AsyncValueCell.js +35 -0
- package/build/browser/object-table/components/AsyncValueCell.js.map +1 -0
- package/build/browser/object-table/hooks/useColumnDefs.js +5 -2
- package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/browser/object-table/hooks/useEditableTable.js +39 -11
- package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
- package/build/browser/object-table/hooks/useFunctionColumnsData.js +135 -0
- package/build/browser/object-table/hooks/useFunctionColumnsData.js.map +1 -0
- package/build/browser/object-table/hooks/useObjectTableData.js +33 -17
- package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/browser/object-table/hooks/useRowSelection.js +11 -8
- package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/browser/object-table/utils/AsyncCellData.js +30 -0
- package/build/browser/object-table/utils/AsyncCellData.js.map +1 -0
- package/build/browser/object-table/utils/constants.js +1 -0
- package/build/browser/object-table/utils/constants.js.map +1 -1
- package/build/browser/object-table/utils/getCellId.js +0 -7
- package/build/browser/object-table/utils/getCellId.js.map +1 -1
- package/build/browser/object-table/utils/types.js.map +1 -1
- package/build/browser/pdf-viewer/PdfRenderer.js +88 -0
- package/build/browser/pdf-viewer/PdfRenderer.js.map +1 -0
- package/build/browser/pdf-viewer/PdfViewer.js +179 -0
- package/build/browser/pdf-viewer/PdfViewer.js.map +1 -0
- package/build/browser/pdf-viewer/PdfViewer.module.css +95 -0
- package/build/browser/pdf-viewer/PdfViewer.module.css.js +16 -0
- package/build/browser/pdf-viewer/PdfViewerContext.js +108 -0
- package/build/browser/pdf-viewer/PdfViewerContext.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js +141 -0
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css +82 -0
- package/build/browser/pdf-viewer/components/PdfViewerAnnotationLayer.module.css.js +12 -0
- package/build/browser/pdf-viewer/components/PdfViewerContent.js +125 -0
- package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
- package/build/browser/pdf-viewer/components/PdfViewerOutlineSidebar.module.css.js +15 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js +84 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css +65 -0
- package/build/browser/pdf-viewer/components/PdfViewerSearchBar.module.css.js +10 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.js +78 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.module.css +37 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebar.module.css.js +10 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
- package/build/browser/pdf-viewer/components/PdfViewerSidebarHeader.module.css.js +8 -0
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js +100 -0
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.module.css +26 -0
- package/build/browser/pdf-viewer/components/PdfViewerThumbnail.module.css.js +8 -0
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.js +221 -0
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css +91 -0
- package/build/browser/pdf-viewer/components/PdfViewerToolbar.module.css.js +13 -0
- package/build/browser/pdf-viewer/constants.js +46 -0
- package/build/browser/pdf-viewer/constants.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js +30 -0
- package/build/browser/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfDocument.js +66 -0
- package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfFormFields.js +341 -0
- package/build/browser/pdf-viewer/hooks/usePdfFormFields.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js +227 -0
- package/build/browser/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfOutline.js +268 -0
- package/build/browser/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewer.js +86 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerState.js +135 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
- package/build/browser/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
- package/build/browser/pdf-viewer/types.js +2 -0
- package/build/browser/pdf-viewer/types.js.map +1 -0
- package/build/browser/public/experimental.js +34 -0
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/public/primitives.js +20 -0
- package/build/browser/public/primitives.js.map +1 -0
- package/build/browser/shared/ErrorBoundary.module.css +14 -14
- package/build/browser/{filter-list/utils → shared}/assertUnreachable.js +1 -1
- package/build/browser/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
- package/build/{esm/filter-list/base/inputs → browser/shared}/dateUtils.js +38 -2
- package/build/browser/shared/dateUtils.js.map +1 -0
- package/build/browser/shared/typedMemo.js +25 -0
- package/build/browser/shared/typedMemo.js.map +1 -0
- package/build/browser/styles.css +4452 -1405
- package/build/cjs/DateCalendar-QWGFKD6J.css +113 -0
- package/build/cjs/DateCalendar-QWGFKD6J.css.map +1 -0
- package/build/cjs/DateCalendar-R44GMN3O.cjs +67 -0
- package/build/cjs/DateCalendar-R44GMN3O.cjs.map +1 -0
- package/build/cjs/chunk-HMQTYQEX.cjs +9 -0
- package/build/cjs/chunk-HMQTYQEX.cjs.map +1 -0
- package/build/cjs/chunk-MRRRZN44.cjs +165 -0
- package/build/cjs/chunk-MRRRZN44.cjs.map +1 -0
- package/build/cjs/chunk-UZ2E5NRX.cjs +8 -0
- package/build/cjs/chunk-UZ2E5NRX.cjs.map +1 -0
- package/build/cjs/index.cjs +2 -0
- package/build/cjs/public/experimental.cjs +9514 -2011
- package/build/cjs/public/experimental.cjs.map +1 -1
- package/build/cjs/public/experimental.css +3230 -736
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +1182 -125
- package/build/cjs/public/primitives.cjs +25 -0
- package/build/cjs/public/primitives.cjs.map +1 -0
- package/build/cjs/public/primitives.css +154 -0
- package/build/cjs/public/primitives.css.map +1 -0
- package/build/cjs/public/primitives.d.cts +50 -0
- package/build/esm/action-form/ActionForm.js +117 -0
- package/build/esm/action-form/ActionForm.js.map +1 -0
- package/build/esm/action-form/ActionFormApi.js.map +1 -1
- package/build/esm/action-form/BaseForm.js +83 -0
- package/build/esm/action-form/BaseForm.js.map +1 -0
- package/build/esm/action-form/BaseForm.module.css +38 -0
- package/build/esm/action-form/FormField.js +42 -0
- package/build/esm/action-form/FormField.js.map +1 -0
- package/build/esm/action-form/FormField.module.css +41 -0
- package/build/esm/action-form/FormFieldApi.js.map +1 -1
- package/build/esm/action-form/FormHeader.js +26 -0
- package/build/esm/action-form/FormHeader.js.map +1 -0
- package/build/esm/action-form/FormHeader.module.css +26 -0
- package/build/esm/action-form/fields/BaseInput.module.css +56 -0
- package/build/esm/action-form/fields/CustomField.js +30 -0
- package/build/esm/action-form/fields/CustomField.js.map +1 -0
- package/build/esm/action-form/fields/DateCalendar.js +70 -0
- package/build/esm/action-form/fields/DateCalendar.js.map +1 -0
- package/build/esm/action-form/fields/DateCalendar.module.css +136 -0
- package/build/esm/action-form/fields/DatetimePickerField.js +98 -0
- package/build/esm/action-form/fields/DatetimePickerField.js.map +1 -0
- package/build/esm/action-form/fields/DatetimePickerField.module.css +66 -0
- package/build/esm/action-form/fields/DropdownField.js +104 -0
- package/build/esm/action-form/fields/DropdownField.js.map +1 -0
- package/build/esm/action-form/fields/FieldBridge.js +45 -0
- package/build/esm/action-form/fields/FieldBridge.js.map +1 -0
- package/build/esm/action-form/fields/FilePickerField.js +119 -0
- package/build/esm/action-form/fields/FilePickerField.js.map +1 -0
- package/build/esm/action-form/fields/FilePickerField.module.css +132 -0
- package/build/esm/action-form/fields/FormFieldRenderer.js +128 -0
- package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -0
- package/build/esm/action-form/fields/LazyDateCalendar.js +27 -0
- package/build/esm/action-form/fields/LazyDateCalendar.js.map +1 -0
- package/build/esm/action-form/fields/NumberInputField.js +130 -0
- package/build/esm/action-form/fields/NumberInputField.js.map +1 -0
- package/build/esm/action-form/fields/NumberInputField.module.css +96 -0
- package/build/esm/action-form/fields/RadioButtonsField.js +57 -0
- package/build/esm/action-form/fields/RadioButtonsField.js.map +1 -0
- package/build/esm/action-form/fields/RadioButtonsField.module.css +83 -0
- package/build/esm/action-form/fields/TextAreaField.js +50 -0
- package/build/esm/action-form/fields/TextAreaField.js.map +1 -0
- package/build/esm/action-form/fields/TextInputField.js +39 -0
- package/build/esm/action-form/fields/TextInputField.js.map +1 -0
- package/build/esm/action-form/utils/coerceFieldValue.js +93 -0
- package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -0
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +120 -0
- package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
- package/build/esm/base-components/action-button/ActionButton.module.css +0 -4
- package/build/esm/base-components/checkbox/Checkbox.js +8 -4
- package/build/esm/base-components/checkbox/Checkbox.js.map +1 -1
- package/build/esm/base-components/checkbox/Checkbox.module.css +13 -8
- package/build/esm/base-components/combobox/Combobox.js +154 -0
- package/build/esm/base-components/combobox/Combobox.js.map +1 -0
- package/build/esm/base-components/combobox/Combobox.module.css +364 -0
- package/build/esm/base-components/dialog/Dialog.js +4 -2
- package/build/esm/base-components/dialog/Dialog.js.map +1 -1
- package/build/esm/base-components/dialog/Dialog.module.css +0 -8
- package/build/esm/base-components/draggable-list/DraggableList.module.css +2 -10
- package/build/esm/base-components/search-bar/SearchBar.module.css +2 -2
- package/build/esm/base-components/searchable-menu/SearchableMenu.js +86 -0
- package/build/esm/base-components/searchable-menu/SearchableMenu.js.map +1 -0
- package/build/esm/base-components/searchable-menu/SearchableMenu.module.css +80 -0
- package/build/esm/base-components/select/Select.js +93 -0
- package/build/esm/base-components/select/Select.js.map +1 -0
- package/build/esm/base-components/select/Select.module.css +233 -0
- package/build/esm/base-components/skeleton/SkeletonBar.js +36 -0
- package/build/esm/base-components/skeleton/SkeletonBar.js.map +1 -0
- package/build/esm/base-components/skeleton/SkeletonBar.module.css +39 -0
- package/build/esm/base-components/switch/Switch.module.css +14 -15
- package/build/esm/base-components/tooltip/Tooltip.js +91 -0
- package/build/esm/base-components/tooltip/Tooltip.js.map +1 -0
- package/build/esm/base-components/tooltip/Tooltip.module.css +70 -0
- package/build/esm/base-components/tooltip/index.js +18 -0
- package/build/esm/base-components/tooltip/index.js.map +1 -0
- package/build/esm/filter-list/FilterInput.js +141 -0
- package/build/esm/filter-list/FilterInput.js.map +1 -0
- package/build/esm/filter-list/FilterList.js +142 -0
- package/build/esm/filter-list/FilterList.js.map +1 -0
- package/build/esm/filter-list/FilterListApi.js.map +1 -1
- package/build/esm/filter-list/FilterListItemApi.js.map +1 -1
- package/build/esm/filter-list/base/AddFilterPopover.js +35 -0
- package/build/esm/filter-list/base/AddFilterPopover.js.map +1 -0
- package/build/esm/filter-list/base/AddFilterPopover.module.css +49 -0
- package/build/esm/filter-list/base/BaseFilterList.js +94 -0
- package/build/esm/filter-list/base/BaseFilterList.js.map +1 -0
- package/build/esm/filter-list/base/BaseFilterListApi.js +2 -0
- package/build/esm/filter-list/base/BaseFilterListApi.js.map +1 -0
- package/build/esm/filter-list/base/DragHandleIcon.js +51 -0
- package/build/esm/filter-list/base/DragHandleIcon.js.map +1 -0
- package/build/esm/filter-list/base/ExcludeDropdown.js +62 -0
- package/build/esm/filter-list/base/ExcludeDropdown.js.map +1 -0
- package/build/esm/filter-list/base/ExcludeDropdown.module.css +96 -0
- package/build/esm/filter-list/base/FilterIcons.js +65 -0
- package/build/esm/filter-list/base/FilterIcons.js.map +1 -0
- package/build/esm/filter-list/base/FilterInputExcludeRow.js +67 -0
- package/build/esm/filter-list/base/FilterInputExcludeRow.js.map +1 -0
- package/build/esm/filter-list/base/FilterList.module.css +84 -6
- package/build/esm/filter-list/base/FilterListContent.js +172 -6
- package/build/esm/filter-list/base/FilterListContent.js.map +1 -1
- package/build/esm/filter-list/base/FilterListContent.module.css +6 -0
- package/build/esm/filter-list/base/FilterListHeader.js +14 -13
- package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
- package/build/esm/filter-list/base/FilterListHeader.module.css +22 -21
- package/build/esm/filter-list/base/FilterListItem.js +124 -27
- package/build/esm/filter-list/base/FilterListItem.js.map +1 -1
- package/build/esm/filter-list/base/FilterListItem.module.css +173 -0
- package/build/esm/filter-list/base/SortableFilterListItem.js +64 -0
- package/build/esm/filter-list/base/SortableFilterListItem.js.map +1 -0
- package/build/esm/filter-list/base/index.js +1 -2
- package/build/esm/filter-list/base/index.js.map +1 -1
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js +5 -7
- package/build/esm/filter-list/base/inputs/ContainsTextInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/DateRangeInput.js +37 -0
- package/build/esm/filter-list/base/inputs/DateRangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/LinkedPropertyInput.module.css +20 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.js +118 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.module.css +137 -0
- package/build/esm/filter-list/base/inputs/ListogramSkeleton.js +45 -0
- package/build/esm/filter-list/base/inputs/ListogramSkeleton.js.map +1 -0
- package/build/esm/filter-list/base/inputs/ListogramSkeleton.module.css +32 -0
- package/build/esm/filter-list/base/inputs/MultiDateInput.js +1 -1
- package/build/esm/filter-list/base/inputs/MultiDateInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/MultiDateInput.module.css +6 -6
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js +76 -0
- package/build/esm/filter-list/base/inputs/MultiSelectInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/MultiSelectInput.module.css +37 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js +57 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.js.map +1 -0
- package/build/esm/filter-list/base/inputs/NullValueWrapper.module.css +50 -0
- package/build/esm/filter-list/base/inputs/NumberRangeInput.js +48 -0
- package/build/esm/filter-list/base/inputs/NumberRangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/RangeInput.js +159 -0
- package/build/esm/filter-list/base/inputs/RangeInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/RangeInput.module.css +106 -0
- package/build/esm/filter-list/base/inputs/SingleDateInput.js +1 -1
- package/build/esm/filter-list/base/inputs/SingleDateInput.js.map +1 -1
- package/build/esm/filter-list/base/inputs/SingleDateInput.module.css +2 -2
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js +77 -0
- package/build/esm/filter-list/base/inputs/SingleSelectInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/SingleSelectInput.module.css +45 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.js +133 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/TextTagsInput.module.css +25 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.js +74 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.js.map +1 -0
- package/build/esm/filter-list/base/inputs/TimelineInput.module.css +75 -0
- package/build/esm/filter-list/base/inputs/createHistogramBuckets.js +53 -0
- package/build/esm/filter-list/base/inputs/createHistogramBuckets.js.map +1 -0
- package/build/esm/filter-list/base/inputs/index.js +5 -1
- package/build/esm/filter-list/base/inputs/index.js.map +1 -1
- package/build/esm/filter-list/base/inputs/shared.module.css +5 -5
- package/build/esm/filter-list/base/inputs/useStableData.js +29 -0
- package/build/esm/filter-list/base/inputs/useStableData.js.map +1 -0
- package/build/esm/filter-list/hooks/useFilterListState.js +56 -10
- package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
- package/build/esm/filter-list/hooks/useFilterVisibility.js +74 -0
- package/build/esm/filter-list/hooks/useFilterVisibility.js.map +1 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js +98 -0
- package/build/esm/filter-list/hooks/usePropertyAggregation.js.map +1 -0
- package/build/esm/filter-list/inputs/ContainsTextFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/ContainsTextFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js +109 -0
- package/build/esm/filter-list/inputs/DateRangeFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js +496 -0
- package/build/esm/filter-list/inputs/LinkedPropertyInput.js.map +1 -0
- package/build/esm/filter-list/inputs/ListogramFilterInput.js +83 -0
- package/build/esm/filter-list/inputs/ListogramFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/MultiDateFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/MultiDateFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js +71 -0
- package/build/esm/filter-list/inputs/MultiSelectFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js +109 -0
- package/build/esm/filter-list/inputs/NumberRangeFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/PropertyFilterInput.js +142 -0
- package/build/esm/filter-list/inputs/PropertyFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js +38 -0
- package/build/esm/filter-list/inputs/SingleDateFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js +71 -0
- package/build/esm/filter-list/inputs/SingleSelectFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js +70 -0
- package/build/esm/filter-list/inputs/TextTagsFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/TimelineFilterInput.js +49 -0
- package/build/esm/filter-list/inputs/TimelineFilterInput.js.map +1 -0
- package/build/esm/filter-list/inputs/ToggleFilterInput.js +36 -0
- package/build/esm/filter-list/inputs/ToggleFilterInput.js.map +1 -0
- package/build/esm/filter-list/types/AggregationTypes.js +2 -0
- package/build/esm/filter-list/types/AggregationTypes.js.map +1 -0
- package/build/esm/filter-list/types/CustomRendererTypes.js.map +1 -1
- package/build/esm/filter-list/types/LinkedFilterTypes.js.map +1 -1
- package/build/esm/filter-list/types/index.js +0 -2
- package/build/esm/filter-list/types/index.js.map +1 -1
- package/build/esm/filter-list/utils/aggregationHelpers.js +44 -0
- package/build/esm/filter-list/utils/aggregationHelpers.js.map +1 -0
- package/build/esm/filter-list/utils/filterStateSerialization.js +42 -0
- package/build/esm/filter-list/utils/filterStateSerialization.js.map +1 -0
- package/build/esm/filter-list/utils/filterStateToWhereClause.js +124 -91
- package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
- package/build/esm/filter-list/utils/filterValues.js +55 -1
- package/build/esm/filter-list/utils/filterValues.js.map +1 -1
- package/build/esm/filter-list/utils/getFilterKey.js +1 -1
- package/build/esm/filter-list/utils/getFilterKey.js.map +1 -1
- package/build/esm/filter-list/utils/getFilterLabel.js +36 -0
- package/build/esm/filter-list/utils/getFilterLabel.js.map +1 -0
- package/build/esm/object-table/ColumnConfigDialog.module.css +1 -11
- package/build/esm/object-table/DefaultCellRenderer.js +23 -5
- package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
- package/build/esm/object-table/EditableCell.js +87 -10
- package/build/esm/object-table/EditableCell.js.map +1 -1
- package/build/esm/object-table/EditableCell.module.css +69 -2
- package/build/esm/object-table/LoadingCell.js +7 -3
- package/build/esm/object-table/LoadingCell.js.map +1 -1
- package/build/esm/object-table/LoadingCell.module.css +3 -21
- package/build/esm/object-table/LoadingRow.js +2 -1
- package/build/esm/object-table/LoadingRow.js.map +1 -1
- package/build/esm/object-table/LoadingStateTable.js +2 -1
- package/build/esm/object-table/LoadingStateTable.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.js +22 -58
- package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
- package/build/esm/object-table/MultiColumnSortDialog.module.css +0 -69
- package/build/esm/object-table/ObjectTable.js +16 -23
- package/build/esm/object-table/ObjectTable.js.map +1 -1
- package/build/esm/object-table/ObjectTableApi.js.map +1 -1
- package/build/esm/object-table/SelectionCells.js +1 -0
- package/build/esm/object-table/SelectionCells.js.map +1 -1
- package/build/esm/object-table/Table.js +23 -15
- package/build/esm/object-table/Table.js.map +1 -1
- package/build/esm/object-table/Table.module.css +0 -8
- package/build/esm/object-table/TableBody.js +8 -2
- package/build/esm/object-table/TableBody.js.map +1 -1
- package/build/esm/object-table/TableCell.module.css +2 -9
- package/build/esm/object-table/TableEditContainer.js +90 -0
- package/build/esm/object-table/TableEditContainer.js.map +1 -0
- package/build/esm/object-table/TableEditContainer.module.css +71 -0
- package/build/esm/object-table/TableHeader.js +4 -1
- package/build/esm/object-table/TableHeader.js.map +1 -1
- package/build/esm/object-table/TableHeader.module.css +4 -3
- package/build/esm/object-table/TableHeaderWithPopover.js +2 -4
- package/build/esm/object-table/TableHeaderWithPopover.js.map +1 -1
- package/build/esm/object-table/TableHeaderWithPopover.module.css +1 -12
- package/build/esm/object-table/TableRow.js +10 -3
- package/build/esm/object-table/TableRow.js.map +1 -1
- package/build/esm/object-table/TableRow.module.css +2 -1
- package/build/esm/object-table/components/AsyncValueCell.js +35 -0
- package/build/esm/object-table/components/AsyncValueCell.js.map +1 -0
- package/build/esm/object-table/hooks/useColumnDefs.js +5 -2
- package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
- package/build/esm/object-table/hooks/useEditableTable.js +39 -11
- package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
- package/build/esm/object-table/hooks/useFunctionColumnsData.js +135 -0
- package/build/esm/object-table/hooks/useFunctionColumnsData.js.map +1 -0
- package/build/esm/object-table/hooks/useObjectTableData.js +33 -17
- package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
- package/build/esm/object-table/hooks/useRowSelection.js +11 -8
- package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
- package/build/esm/object-table/utils/AsyncCellData.js +30 -0
- package/build/esm/object-table/utils/AsyncCellData.js.map +1 -0
- package/build/esm/object-table/utils/constants.js +1 -0
- package/build/esm/object-table/utils/constants.js.map +1 -1
- package/build/esm/object-table/utils/getCellId.js +0 -7
- package/build/esm/object-table/utils/getCellId.js.map +1 -1
- package/build/esm/object-table/utils/types.js.map +1 -1
- package/build/esm/pdf-viewer/PdfRenderer.js +88 -0
- package/build/esm/pdf-viewer/PdfRenderer.js.map +1 -0
- package/build/esm/pdf-viewer/PdfViewer.js +179 -0
- package/build/esm/pdf-viewer/PdfViewer.js.map +1 -0
- package/build/esm/pdf-viewer/PdfViewer.module.css +95 -0
- package/build/esm/pdf-viewer/PdfViewerContext.js +108 -0
- package/build/esm/pdf-viewer/PdfViewerContext.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js +141 -0
- package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerAnnotationLayer.module.css +82 -0
- package/build/esm/pdf-viewer/components/PdfViewerContent.js +125 -0
- package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js +98 -0
- package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerOutlineSidebar.module.css +89 -0
- package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js +84 -0
- package/build/esm/pdf-viewer/components/PdfViewerSearchBar.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerSearchBar.module.css +65 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.js +78 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebar.module.css +37 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js +54 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerSidebarHeader.module.css +70 -0
- package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js +100 -0
- package/build/esm/pdf-viewer/components/PdfViewerThumbnail.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerThumbnail.module.css +26 -0
- package/build/esm/pdf-viewer/components/PdfViewerToolbar.js +221 -0
- package/build/esm/pdf-viewer/components/PdfViewerToolbar.js.map +1 -0
- package/build/esm/pdf-viewer/components/PdfViewerToolbar.module.css +91 -0
- package/build/esm/pdf-viewer/constants.js +46 -0
- package/build/esm/pdf-viewer/constants.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js +54 -0
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationPortals.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js +30 -0
- package/build/esm/pdf-viewer/hooks/usePdfAnnotationsByPage.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfDocument.js +66 -0
- package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfFormFields.js +341 -0
- package/build/esm/pdf-viewer/hooks/usePdfFormFields.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js +227 -0
- package/build/esm/pdf-viewer/hooks/usePdfHighlightMode.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfOutline.js +268 -0
- package/build/esm/pdf-viewer/hooks/usePdfOutline.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewer.js +86 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewer.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js +80 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js +106 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerSearch.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerState.js +135 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js +71 -0
- package/build/esm/pdf-viewer/hooks/usePdfViewerSync.js.map +1 -0
- package/build/esm/pdf-viewer/types.js +2 -0
- package/build/esm/pdf-viewer/types.js.map +1 -0
- package/build/esm/public/experimental.js +34 -0
- package/build/esm/public/experimental.js.map +1 -1
- package/build/esm/public/primitives.js +20 -0
- package/build/esm/public/primitives.js.map +1 -0
- package/build/esm/shared/ErrorBoundary.module.css +14 -14
- package/build/esm/{filter-list/utils → shared}/assertUnreachable.js +1 -1
- package/build/esm/{filter-list/utils → shared}/assertUnreachable.js.map +1 -1
- package/build/{browser/filter-list/base/inputs → esm/shared}/dateUtils.js +38 -2
- package/build/esm/shared/dateUtils.js.map +1 -0
- package/build/esm/shared/typedMemo.js +25 -0
- package/build/esm/shared/typedMemo.js.map +1 -0
- package/build/types/action-form/ActionForm.d.ts +4 -0
- package/build/types/action-form/ActionForm.d.ts.map +1 -0
- package/build/types/action-form/ActionFormApi.d.ts +49 -32
- package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
- package/build/types/action-form/BaseForm.d.ts +3 -0
- package/build/types/action-form/BaseForm.d.ts.map +1 -0
- package/build/types/action-form/FormField.d.ts +11 -0
- package/build/types/action-form/FormField.d.ts.map +1 -0
- package/build/types/action-form/FormFieldApi.d.ts +152 -51
- package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
- package/build/types/action-form/FormHeader.d.ts +6 -0
- package/build/types/action-form/FormHeader.d.ts.map +1 -0
- package/build/types/action-form/fields/CustomField.d.ts +9 -0
- package/build/types/action-form/fields/CustomField.d.ts.map +1 -0
- package/build/types/action-form/fields/DateCalendar.d.ts +9 -0
- package/build/types/action-form/fields/DateCalendar.d.ts.map +1 -0
- package/build/types/action-form/fields/DatetimePickerField.d.ts +3 -0
- package/build/types/action-form/fields/DatetimePickerField.d.ts.map +1 -0
- package/build/types/action-form/fields/DropdownField.d.ts +6 -0
- package/build/types/action-form/fields/DropdownField.d.ts.map +1 -0
- package/build/types/action-form/fields/FieldBridge.d.ts +9 -0
- package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -0
- package/build/types/action-form/fields/FilePickerField.d.ts +3 -0
- package/build/types/action-form/fields/FilePickerField.d.ts.map +1 -0
- package/build/types/action-form/fields/FormFieldRenderer.d.ts +8 -0
- package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -0
- package/build/types/action-form/fields/LazyDateCalendar.d.ts +3 -0
- package/build/types/action-form/fields/LazyDateCalendar.d.ts.map +1 -0
- package/build/types/action-form/fields/NumberInputField.d.ts +3 -0
- package/build/types/action-form/fields/NumberInputField.d.ts.map +1 -0
- package/build/types/action-form/fields/RadioButtonsField.d.ts +3 -0
- package/build/types/action-form/fields/RadioButtonsField.d.ts.map +1 -0
- package/build/types/action-form/fields/TextAreaField.d.ts +3 -0
- package/build/types/action-form/fields/TextAreaField.d.ts.map +1 -0
- package/build/types/action-form/fields/TextInputField.d.ts +5 -0
- package/build/types/action-form/fields/TextInputField.d.ts.map +1 -0
- package/build/types/action-form/utils/coerceFieldValue.d.ts +10 -0
- package/build/types/action-form/utils/coerceFieldValue.d.ts.map +1 -0
- package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts +9 -0
- package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -0
- package/build/types/base-components/checkbox/Checkbox.d.ts +2 -1
- package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -1
- package/build/types/base-components/combobox/Combobox.d.ts +65 -0
- package/build/types/base-components/combobox/Combobox.d.ts.map +1 -0
- package/build/types/base-components/dialog/Dialog.d.ts +3 -2
- package/build/types/base-components/dialog/Dialog.d.ts.map +1 -1
- package/build/types/base-components/searchable-menu/SearchableMenu.d.ts +18 -0
- package/build/types/base-components/searchable-menu/SearchableMenu.d.ts.map +1 -0
- package/build/types/base-components/select/Select.d.ts +40 -0
- package/build/types/base-components/select/Select.d.ts.map +1 -0
- package/build/types/base-components/skeleton/SkeletonBar.d.ts +9 -0
- package/build/types/base-components/skeleton/SkeletonBar.d.ts.map +1 -0
- package/build/types/base-components/tooltip/Tooltip.d.ts +31 -0
- package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -0
- package/build/types/base-components/tooltip/index.d.ts +1 -0
- package/build/types/base-components/tooltip/index.d.ts.map +1 -0
- package/build/types/filter-list/FilterInput.d.ts +17 -0
- package/build/types/filter-list/FilterInput.d.ts.map +1 -0
- package/build/types/filter-list/{base/FilterList.d.ts → FilterList.d.ts} +1 -1
- package/build/types/filter-list/FilterList.d.ts.map +1 -0
- package/build/types/filter-list/FilterListApi.d.ts +49 -33
- package/build/types/filter-list/FilterListApi.d.ts.map +1 -1
- package/build/types/filter-list/FilterListItemApi.d.ts +22 -6
- package/build/types/filter-list/FilterListItemApi.d.ts.map +1 -1
- package/build/types/filter-list/base/AddFilterPopover.d.ts +13 -0
- package/build/types/filter-list/base/AddFilterPopover.d.ts.map +1 -0
- package/build/types/filter-list/base/BaseFilterList.d.ts +3 -0
- package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -0
- package/build/types/filter-list/base/BaseFilterListApi.d.ts +32 -0
- package/build/types/filter-list/base/BaseFilterListApi.d.ts.map +1 -0
- package/build/types/filter-list/base/DragHandleIcon.d.ts +2 -0
- package/build/types/filter-list/base/DragHandleIcon.d.ts.map +1 -0
- package/build/types/filter-list/base/ExcludeDropdown.d.ts +8 -0
- package/build/types/filter-list/base/ExcludeDropdown.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterIcons.d.ts +10 -0
- package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts +13 -0
- package/build/types/filter-list/base/FilterInputExcludeRow.d.ts.map +1 -0
- package/build/types/filter-list/base/FilterListContent.d.ts +9 -6
- package/build/types/filter-list/base/FilterListContent.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListHeader.d.ts +3 -2
- package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
- package/build/types/filter-list/base/FilterListItem.d.ts +10 -6
- package/build/types/filter-list/base/FilterListItem.d.ts.map +1 -1
- package/build/types/filter-list/base/SortableFilterListItem.d.ts +16 -0
- package/build/types/filter-list/base/SortableFilterListItem.d.ts.map +1 -0
- package/build/types/filter-list/base/index.d.ts +2 -2
- package/build/types/filter-list/base/index.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/ContainsTextInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/DateRangeInput.d.ts +17 -0
- package/build/types/filter-list/base/inputs/DateRangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts +21 -0
- package/build/types/filter-list/base/inputs/ListogramInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts +2 -0
- package/build/types/filter-list/base/inputs/ListogramSkeleton.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts +16 -0
- package/build/types/filter-list/base/inputs/MultiSelectInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts +15 -0
- package/build/types/filter-list/base/inputs/NullValueWrapper.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts +17 -0
- package/build/types/filter-list/base/inputs/NumberRangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/RangeInput.d.ts +30 -0
- package/build/types/filter-list/base/inputs/RangeInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/SingleDateInput.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts +18 -0
- package/build/types/filter-list/base/inputs/SingleSelectInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts +18 -0
- package/build/types/filter-list/base/inputs/TextTagsInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/TimelineInput.d.ts +11 -0
- package/build/types/filter-list/base/inputs/TimelineInput.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts +16 -0
- package/build/types/filter-list/base/inputs/createHistogramBuckets.d.ts.map +1 -0
- package/build/types/filter-list/base/inputs/index.d.ts +5 -1
- package/build/types/filter-list/base/inputs/index.d.ts.map +1 -1
- package/build/types/filter-list/base/inputs/useStableData.d.ts +1 -0
- package/build/types/filter-list/base/inputs/useStableData.d.ts.map +1 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts +2 -0
- package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
- package/build/types/filter-list/hooks/useFilterVisibility.d.ts +10 -0
- package/build/types/filter-list/hooks/useFilterVisibility.d.ts.map +1 -0
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts +18 -0
- package/build/types/filter-list/hooks/usePropertyAggregation.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts +10 -0
- package/build/types/filter-list/inputs/ContainsTextFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts +13 -0
- package/build/types/filter-list/inputs/DateRangeFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts +22 -0
- package/build/types/filter-list/inputs/LinkedPropertyInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts +19 -0
- package/build/types/filter-list/inputs/ListogramFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/MultiDateFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts +15 -0
- package/build/types/filter-list/inputs/MultiSelectFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts +13 -0
- package/build/types/filter-list/inputs/NumberRangeFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts +19 -0
- package/build/types/filter-list/inputs/PropertyFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/SingleDateFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts +15 -0
- package/build/types/filter-list/inputs/SingleSelectFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts +15 -0
- package/build/types/filter-list/inputs/TextTagsFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/TimelineFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/TimelineFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/inputs/ToggleFilterInput.d.ts +9 -0
- package/build/types/filter-list/inputs/ToggleFilterInput.d.ts.map +1 -0
- package/build/types/filter-list/types/AggregationTypes.d.ts +5 -0
- package/build/types/filter-list/types/AggregationTypes.d.ts.map +1 -0
- package/build/types/filter-list/types/CustomRendererTypes.d.ts +2 -1
- package/build/types/filter-list/types/CustomRendererTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts +0 -19
- package/build/types/filter-list/types/LinkedFilterTypes.d.ts.map +1 -1
- package/build/types/filter-list/types/index.d.ts +0 -2
- package/build/types/filter-list/types/index.d.ts.map +1 -1
- package/build/types/filter-list/utils/aggregationHelpers.d.ts +9 -0
- package/build/types/filter-list/utils/aggregationHelpers.d.ts.map +1 -0
- package/build/types/filter-list/utils/filterStateSerialization.d.ts +3 -0
- package/build/types/filter-list/utils/filterStateSerialization.d.ts.map +1 -0
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +5 -1
- package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
- package/build/types/filter-list/utils/filterValues.d.ts +4 -0
- package/build/types/filter-list/utils/filterValues.d.ts.map +1 -1
- package/build/types/filter-list/utils/getFilterKey.d.ts.map +1 -1
- package/build/types/filter-list/utils/getFilterLabel.d.ts +3 -0
- package/build/types/filter-list/utils/getFilterLabel.d.ts.map +1 -0
- package/build/types/object-table/DefaultCellRenderer.d.ts +2 -2
- package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -1
- package/build/types/object-table/EditableCell.d.ts +22 -6
- package/build/types/object-table/EditableCell.d.ts.map +1 -1
- package/build/types/object-table/LoadingCell.d.ts +1 -0
- package/build/types/object-table/LoadingCell.d.ts.map +1 -1
- package/build/types/object-table/LoadingRow.d.ts.map +1 -1
- package/build/types/object-table/LoadingStateTable.d.ts.map +1 -1
- package/build/types/object-table/MultiColumnSortDialog.d.ts.map +1 -1
- package/build/types/object-table/ObjectTable.d.ts +1 -9
- package/build/types/object-table/ObjectTable.d.ts.map +1 -1
- package/build/types/object-table/ObjectTableApi.d.ts +82 -22
- package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
- package/build/types/object-table/Table.d.ts +10 -10
- package/build/types/object-table/Table.d.ts.map +1 -1
- package/build/types/object-table/TableBody.d.ts +4 -1
- package/build/types/object-table/TableBody.d.ts.map +1 -1
- package/build/types/object-table/TableEditContainer.d.ts +9 -0
- package/build/types/object-table/TableEditContainer.d.ts.map +1 -0
- package/build/types/object-table/TableHeader.d.ts.map +1 -1
- package/build/types/object-table/TableRow.d.ts +4 -1
- package/build/types/object-table/TableRow.d.ts.map +1 -1
- package/build/types/object-table/components/AsyncValueCell.d.ts +5 -0
- package/build/types/object-table/components/AsyncValueCell.d.ts.map +1 -0
- package/build/types/object-table/hooks/useEditableTable.d.ts +4 -9
- package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
- package/build/types/object-table/hooks/useFunctionColumnsData.d.ts +13 -0
- package/build/types/object-table/hooks/useFunctionColumnsData.d.ts.map +1 -0
- package/build/types/object-table/hooks/useObjectTableData.d.ts +6 -1
- package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
- package/build/types/object-table/hooks/useRowSelection.d.ts +3 -2
- package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
- package/build/types/object-table/utils/AsyncCellData.d.ts +8 -0
- package/build/types/object-table/utils/AsyncCellData.d.ts.map +1 -0
- package/build/types/object-table/utils/constants.d.ts +1 -0
- package/build/types/object-table/utils/constants.d.ts.map +1 -1
- package/build/types/object-table/utils/getCellId.d.ts +0 -1
- package/build/types/object-table/utils/getCellId.d.ts.map +1 -1
- package/build/types/object-table/utils/types.d.ts +28 -3
- package/build/types/object-table/utils/types.d.ts.map +1 -1
- package/build/types/pdf-viewer/PdfRenderer.d.ts +8 -0
- package/build/types/pdf-viewer/PdfRenderer.d.ts.map +1 -0
- package/build/types/pdf-viewer/PdfViewer.d.ts +4 -0
- package/build/types/pdf-viewer/PdfViewer.d.ts.map +1 -0
- package/build/types/pdf-viewer/PdfViewerContext.d.ts +64 -0
- package/build/types/pdf-viewer/PdfViewerContext.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts +9 -0
- package/build/types/pdf-viewer/components/PdfViewerAnnotationLayer.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +26 -0
- package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts +11 -0
- package/build/types/pdf-viewer/components/PdfViewerOutlineSidebar.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts +11 -0
- package/build/types/pdf-viewer/components/PdfViewerSearchBar.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts +12 -0
- package/build/types/pdf-viewer/components/PdfViewerSidebar.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts +7 -0
- package/build/types/pdf-viewer/components/PdfViewerSidebarHeader.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts +10 -0
- package/build/types/pdf-viewer/components/PdfViewerThumbnail.d.ts.map +1 -0
- package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts +21 -0
- package/build/types/pdf-viewer/components/PdfViewerToolbar.d.ts.map +1 -0
- package/build/types/pdf-viewer/constants.d.ts +22 -0
- package/build/types/pdf-viewer/constants.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts +10 -0
- package/build/types/pdf-viewer/hooks/usePdfAnnotationPortals.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts +5 -0
- package/build/types/pdf-viewer/hooks/usePdfAnnotationsByPage.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts +9 -0
- package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts +24 -0
- package/build/types/pdf-viewer/hooks/usePdfFormFields.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts +36 -0
- package/build/types/pdf-viewer/hooks/usePdfHighlightMode.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts +3 -0
- package/build/types/pdf-viewer/hooks/usePdfOutline.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts +9 -0
- package/build/types/pdf-viewer/hooks/usePdfViewer.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts +43 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts +15 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerSearch.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts +39 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts +15 -0
- package/build/types/pdf-viewer/hooks/usePdfViewerSync.d.ts.map +1 -0
- package/build/types/pdf-viewer/types.d.ts +210 -0
- package/build/types/pdf-viewer/types.d.ts.map +1 -0
- package/build/types/public/experimental.d.ts +33 -2
- package/build/types/public/experimental.d.ts.map +1 -1
- package/build/types/public/primitives.d.ts +3 -0
- package/build/types/public/primitives.d.ts.map +1 -0
- package/build/types/shared/assertUnreachable.d.ts.map +1 -0
- package/build/types/shared/dateUtils.d.ts +31 -0
- package/build/types/shared/dateUtils.d.ts.map +1 -0
- package/build/types/shared/typedMemo.d.ts +6 -0
- package/build/types/shared/typedMemo.d.ts.map +1 -0
- package/package.json +23 -10
- package/primitives.d.ts +17 -0
- package/build/browser/filter-list/__tests__/dateUtils.test.js +0 -55
- package/build/browser/filter-list/__tests__/dateUtils.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
- package/build/browser/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/getFilterKey.test.js +0 -53
- package/build/browser/filter-list/__tests__/getFilterKey.test.js.map +0 -1
- package/build/browser/filter-list/__tests__/testUtils.js +0 -203
- package/build/browser/filter-list/__tests__/testUtils.js.map +0 -1
- package/build/browser/filter-list/base/FilterInput.js +0 -225
- package/build/browser/filter-list/base/FilterInput.js.map +0 -1
- package/build/browser/filter-list/base/FilterList.js +0 -73
- package/build/browser/filter-list/base/FilterList.js.map +0 -1
- package/build/browser/filter-list/base/inputs/dateUtils.js.map +0 -1
- package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
- package/build/browser/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
- package/build/browser/filter-list/types/AddFilterMenuTypes.js +0 -2
- package/build/browser/filter-list/types/AddFilterMenuTypes.js.map +0 -1
- package/build/browser/filter-list/types/FilterPanelTypes.js +0 -2
- package/build/browser/filter-list/types/FilterPanelTypes.js.map +0 -1
- package/build/browser/object-table/__tests__/useEditableTable.test.js +0 -197
- package/build/browser/object-table/__tests__/useEditableTable.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
- package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
- package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
- package/build/browser/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
- package/build/browser/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
- package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
- package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
- package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
- package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
- package/build/browser/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/dateUtils.test.js +0 -55
- package/build/esm/filter-list/__tests__/dateUtils.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js +0 -296
- package/build/esm/filter-list/__tests__/filterStateToWhereClause.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/getFilterKey.test.js +0 -53
- package/build/esm/filter-list/__tests__/getFilterKey.test.js.map +0 -1
- package/build/esm/filter-list/__tests__/testUtils.js +0 -203
- package/build/esm/filter-list/__tests__/testUtils.js.map +0 -1
- package/build/esm/filter-list/base/FilterInput.js +0 -225
- package/build/esm/filter-list/base/FilterInput.js.map +0 -1
- package/build/esm/filter-list/base/FilterList.js +0 -73
- package/build/esm/filter-list/base/FilterList.js.map +0 -1
- package/build/esm/filter-list/base/inputs/dateUtils.js.map +0 -1
- package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js +0 -128
- package/build/esm/filter-list/hooks/__tests__/useFilterListState.test.js.map +0 -1
- package/build/esm/filter-list/types/AddFilterMenuTypes.js +0 -2
- package/build/esm/filter-list/types/AddFilterMenuTypes.js.map +0 -1
- package/build/esm/filter-list/types/FilterPanelTypes.js +0 -2
- package/build/esm/filter-list/types/FilterPanelTypes.js.map +0 -1
- package/build/esm/object-table/__tests__/useEditableTable.test.js +0 -197
- package/build/esm/object-table/__tests__/useEditableTable.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +0 -147
- package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +0 -520
- package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js +0 -266
- package/build/esm/object-table/hooks/__tests__/useColumnPinning.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js +0 -200
- package/build/esm/object-table/hooks/__tests__/useColumnVisibility.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +0 -315
- package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +0 -596
- package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +0 -220
- package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +0 -1
- package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js +0 -501
- package/build/esm/object-table/hooks/__tests__/useTableSorting.test.js.map +0 -1
- package/build/types/filter-list/__tests__/dateUtils.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/dateUtils.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/filterStateToWhereClause.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/getFilterKey.test.d.ts +0 -1
- package/build/types/filter-list/__tests__/getFilterKey.test.d.ts.map +0 -1
- package/build/types/filter-list/__tests__/testUtils.d.ts +0 -65
- package/build/types/filter-list/__tests__/testUtils.d.ts.map +0 -1
- package/build/types/filter-list/base/FilterInput.d.ts +0 -13
- package/build/types/filter-list/base/FilterInput.d.ts.map +0 -1
- package/build/types/filter-list/base/FilterList.d.ts.map +0 -1
- package/build/types/filter-list/base/inputs/dateUtils.d.ts +0 -17
- package/build/types/filter-list/base/inputs/dateUtils.d.ts.map +0 -1
- package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts +0 -1
- package/build/types/filter-list/hooks/__tests__/useFilterListState.test.d.ts.map +0 -1
- package/build/types/filter-list/types/AddFilterMenuTypes.d.ts +0 -77
- package/build/types/filter-list/types/AddFilterMenuTypes.d.ts.map +0 -1
- package/build/types/filter-list/types/FilterPanelTypes.d.ts +0 -18
- package/build/types/filter-list/types/FilterPanelTypes.d.ts.map +0 -1
- package/build/types/filter-list/utils/assertUnreachable.d.ts.map +0 -1
- package/build/types/object-table/__tests__/useEditableTable.test.d.ts +0 -1
- package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnDefs.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnPinning.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useColumnVisibility.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useObjectTableData.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +0 -1
- package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts +0 -1
- package/build/types/object-table/hooks/__tests__/useTableSorting.test.d.ts.map +0 -1
- /package/build/types/{filter-list/utils → shared}/assertUnreachable.d.ts +0 -0
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { ObjectTypeDefinition, WhereClause, PropertyKeys, LinkNames, LinkedType, WirePropertyTypes, CompileTimeMetadata, ObjectSet, ObjectOrInterfaceDefinition, SimplePropertyDef, QueryDefinition, DerivedProperty, Osdk, PrimaryKeyType } from '@osdk/api';
|
|
2
1
|
import * as React from 'react';
|
|
3
|
-
import React__default, { ReactNode, ReactElement } from 'react';
|
|
2
|
+
import React__default, { ReactNode, ReactElement, RefObject } from 'react';
|
|
3
|
+
import { ObjectTypeDefinition, ObjectSet, WhereClause, PropertyKeys, LinkNames, LinkedType, WirePropertyTypes, CompileTimeMetadata, ObjectOrInterfaceDefinition, SimplePropertyDef, QueryDefinition, Osdk, DerivedProperty, PrimaryKeyType, Media, ActionDefinition, ActionMetadata, ActionParam, DataValueClientToWire, ActionEditResponse, ActionValidationResponse } from '@osdk/api';
|
|
4
|
+
import { QueryParameterType } from '@osdk/client/unstable-do-not-use';
|
|
4
5
|
import { RowData, Table, Cell, VisibilityState, ColumnOrderState } from '@tanstack/react-table';
|
|
6
|
+
import { PDFDocumentProxy } from 'pdfjs-dist';
|
|
7
|
+
import { PDFViewer, EventBus, PDFFindController } from 'pdfjs-dist/web/pdf_viewer.mjs';
|
|
8
|
+
import { ActionValidationError } from '@osdk/client';
|
|
5
9
|
|
|
6
10
|
/**
|
|
7
11
|
* State for custom filter
|
|
@@ -14,6 +18,7 @@ interface CustomFilterState<T = Record<string, unknown>> extends BaseFilterState
|
|
|
14
18
|
* Props passed to custom filter input renderer
|
|
15
19
|
*/
|
|
16
20
|
interface CustomFilterInputRendererProps<Q extends ObjectTypeDefinition, State extends BaseFilterState> {
|
|
21
|
+
objectSet: ObjectSet<Q>;
|
|
17
22
|
filterState: State;
|
|
18
23
|
onFilterStateChanged: (newState: State) => void;
|
|
19
24
|
}
|
|
@@ -186,11 +191,11 @@ type PropertyTypeFromKey<Q extends ObjectTypeDefinition, K extends PropertyKeys<
|
|
|
186
191
|
/**
|
|
187
192
|
* All available filter component types
|
|
188
193
|
*/
|
|
189
|
-
type FilterComponentType = "LISTOGRAM" | "DATE_RANGE" | "NUMBER_RANGE" | "TEXT_TAGS" | "CONTAINS_TEXT" | "SINGLE_SELECT" | "MULTI_SELECT" | "SINGLE_DATE" | "MULTI_DATE" | "TIMELINE" | "
|
|
194
|
+
type FilterComponentType = "LISTOGRAM" | "DATE_RANGE" | "NUMBER_RANGE" | "TEXT_TAGS" | "CONTAINS_TEXT" | "SINGLE_SELECT" | "MULTI_SELECT" | "SINGLE_DATE" | "MULTI_DATE" | "TIMELINE" | "TOGGLE";
|
|
190
195
|
/**
|
|
191
196
|
* Gets valid component types for a given property type
|
|
192
197
|
*/
|
|
193
|
-
type ValidComponentsForPropertyType<P extends WirePropertyTypes> = P extends "boolean" ? "LISTOGRAM" | "
|
|
198
|
+
type ValidComponentsForPropertyType<P extends WirePropertyTypes> = P extends "boolean" ? "LISTOGRAM" | "SINGLE_SELECT" | "TOGGLE" : P extends "string" ? "LISTOGRAM" | "TEXT_TAGS" | "CONTAINS_TEXT" | "SINGLE_SELECT" | "MULTI_SELECT" : P extends "datetime" | "timestamp" ? "DATE_RANGE" | "SINGLE_DATE" | "MULTI_DATE" | "TIMELINE" : P extends "double" | "integer" | "long" | "float" | "short" | "byte" | "decimal" ? "NUMBER_RANGE" | "SINGLE_SELECT" | "MULTI_SELECT" : never;
|
|
194
199
|
/**
|
|
195
200
|
* Union of all possible filter states
|
|
196
201
|
*/
|
|
@@ -209,7 +214,6 @@ interface FilterStateByComponentType {
|
|
|
209
214
|
SINGLE_DATE: SelectFilterState<Date>;
|
|
210
215
|
MULTI_DATE: SelectFilterState<Date>;
|
|
211
216
|
TIMELINE: TimelineFilterState;
|
|
212
|
-
CHECKBOX_LIST: SelectFilterState<string>;
|
|
213
217
|
TOGGLE: ToggleFilterState;
|
|
214
218
|
}
|
|
215
219
|
/**
|
|
@@ -268,7 +272,7 @@ interface NumberRangeFilterState extends BaseFilterState {
|
|
|
268
272
|
}
|
|
269
273
|
/**
|
|
270
274
|
* Consolidated state type for select-based filters.
|
|
271
|
-
* Used by SINGLE_SELECT, MULTI_SELECT, SINGLE_DATE,
|
|
275
|
+
* Used by SINGLE_SELECT, MULTI_SELECT, SINGLE_DATE, and MULTI_DATE.
|
|
272
276
|
*/
|
|
273
277
|
interface SelectFilterState<T = string | boolean | number | Date> extends BaseFilterState {
|
|
274
278
|
type: "SELECT";
|
|
@@ -288,8 +292,8 @@ interface ToggleFilterState extends BaseFilterState {
|
|
|
288
292
|
* A property filter definition specifies configuration for filtering on a single property
|
|
289
293
|
*
|
|
290
294
|
* The component type C must be compatible with the property type derived from the key.
|
|
291
|
-
* For example, boolean properties can only use LISTOGRAM
|
|
292
|
-
* while string properties can use LISTOGRAM, TEXT_TAGS, CONTAINS_TEXT, SINGLE_SELECT,
|
|
295
|
+
* For example, boolean properties can only use LISTOGRAM or SINGLE_SELECT,
|
|
296
|
+
* while string properties can use LISTOGRAM, TEXT_TAGS, CONTAINS_TEXT, SINGLE_SELECT, or MULTI_SELECT.
|
|
293
297
|
*/
|
|
294
298
|
interface PropertyFilterDefinition<Q extends ObjectTypeDefinition, K extends PropertyKeys<Q> = PropertyKeys<Q>, C extends ValidComponentsForPropertyType<PropertyTypeFromKey<Q, K>> = ValidComponentsForPropertyType<PropertyTypeFromKey<Q, K>>> {
|
|
295
299
|
/**
|
|
@@ -318,6 +322,23 @@ interface PropertyFilterDefinition<Q extends ObjectTypeDefinition, K extends Pro
|
|
|
318
322
|
* If provided, the filter is controlled.
|
|
319
323
|
*/
|
|
320
324
|
filterState: FilterStateByComponentType[C];
|
|
325
|
+
/**
|
|
326
|
+
* Maps filter values to colors for visual differentiation.
|
|
327
|
+
* Used by LISTOGRAM (per-row bar colors).
|
|
328
|
+
*/
|
|
329
|
+
colorMap?: Record<string, string>;
|
|
330
|
+
/**
|
|
331
|
+
* Configuration for LISTOGRAM display mode.
|
|
332
|
+
* Only applies when filterComponent is "LISTOGRAM".
|
|
333
|
+
*/
|
|
334
|
+
listogramConfig?: {
|
|
335
|
+
displayMode?: "full" | "count" | "minimal";
|
|
336
|
+
/**
|
|
337
|
+
* Number of items shown before "View all" link appears
|
|
338
|
+
* @default 5
|
|
339
|
+
*/
|
|
340
|
+
maxVisibleItems?: number;
|
|
341
|
+
};
|
|
321
342
|
/**
|
|
322
343
|
* Controls whether this filter is rendered.
|
|
323
344
|
* When false, the filter is hidden but its state is preserved.
|
|
@@ -339,61 +360,39 @@ interface FilterListItemProps<Q extends ObjectTypeDefinition, K extends Property
|
|
|
339
360
|
onFilterRemoved?: (key: PropertyKeys<Q>) => void;
|
|
340
361
|
}
|
|
341
362
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
* Icon to display next to the filter label.
|
|
372
|
-
* Can be a string (icon name) or a ReactNode for custom icons.
|
|
373
|
-
*/
|
|
374
|
-
icon: string | ReactNode;
|
|
375
|
-
/**
|
|
376
|
-
* Type of data indicator to show (histogram, count, none)
|
|
377
|
-
*/
|
|
378
|
-
dataIndicator?: FilterDataIndicator;
|
|
379
|
-
/**
|
|
380
|
-
* Whether to show a "Select All" option for checkbox lists
|
|
381
|
-
*/
|
|
382
|
-
showSelectAll?: boolean;
|
|
383
|
-
/**
|
|
384
|
-
* Maximum number of visible items before scrolling
|
|
385
|
-
*/
|
|
386
|
-
maxVisibleItems?: number;
|
|
387
|
-
/**
|
|
388
|
-
* Whether multiple instances of this filter can be added
|
|
389
|
-
*/
|
|
390
|
-
allowMultiple: boolean;
|
|
391
|
-
/**
|
|
392
|
-
* Category for grouping in the add filter menu
|
|
393
|
-
*/
|
|
394
|
-
category: FilterCategory;
|
|
363
|
+
type RenderFilterInput<D> = (props: {
|
|
364
|
+
definition: D;
|
|
365
|
+
filterKey: string;
|
|
366
|
+
filterState: FilterState | undefined;
|
|
367
|
+
onFilterStateChanged: (state: FilterState) => void;
|
|
368
|
+
searchQuery?: string;
|
|
369
|
+
excludeRowOpen?: boolean;
|
|
370
|
+
}) => React__default.ReactNode;
|
|
371
|
+
interface BaseFilterListProps<D> {
|
|
372
|
+
filterDefinitions?: Array<D>;
|
|
373
|
+
filterStates: Map<string, FilterState>;
|
|
374
|
+
onFilterStateChanged: (filterKey: string, state: FilterState) => void;
|
|
375
|
+
renderInput: RenderFilterInput<D>;
|
|
376
|
+
getFilterKey: (definition: D) => string;
|
|
377
|
+
getFilterLabel: (definition: D) => string;
|
|
378
|
+
activeFilterCount: number;
|
|
379
|
+
onReset?: () => void;
|
|
380
|
+
onFilterAdded?: () => void;
|
|
381
|
+
onFilterRemoved?: (filterKey: string) => void;
|
|
382
|
+
collapsed?: boolean;
|
|
383
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
384
|
+
title?: React__default.ReactNode;
|
|
385
|
+
titleIcon?: React__default.ReactNode;
|
|
386
|
+
showResetButton?: boolean;
|
|
387
|
+
showActiveFilterCount?: boolean;
|
|
388
|
+
hasVisibilityChanges?: boolean;
|
|
389
|
+
enableSorting?: boolean;
|
|
390
|
+
className?: string;
|
|
391
|
+
renderAddFilterButton?: () => React__default.ReactNode;
|
|
395
392
|
}
|
|
396
393
|
|
|
394
|
+
declare function BaseFilterList<D>(props: BaseFilterListProps<D>): React__default.ReactElement;
|
|
395
|
+
|
|
397
396
|
/**
|
|
398
397
|
* Union type of all filter definition types
|
|
399
398
|
*/
|
|
@@ -414,7 +413,7 @@ interface FilterListProps<Q extends ObjectTypeDefinition> {
|
|
|
414
413
|
/**
|
|
415
414
|
* Optional title to display in the filter list header
|
|
416
415
|
*/
|
|
417
|
-
title?:
|
|
416
|
+
title?: ReactNode;
|
|
418
417
|
/**
|
|
419
418
|
* Optional icon to display next to the title
|
|
420
419
|
*/
|
|
@@ -431,18 +430,11 @@ interface FilterListProps<Q extends ObjectTypeDefinition> {
|
|
|
431
430
|
filterClause?: WhereClause<Q>;
|
|
432
431
|
/**
|
|
433
432
|
* Called when the filter clause changes.
|
|
434
|
-
* The filters are joined by the selected filterOperator.
|
|
435
433
|
* Required in controlled mode.
|
|
436
434
|
*
|
|
437
435
|
* @param newClause The updated filter clause
|
|
438
436
|
*/
|
|
439
437
|
onFilterClauseChanged?: (newClause: WhereClause<Q>) => void;
|
|
440
|
-
/**
|
|
441
|
-
* The logical operator to join multiple filters
|
|
442
|
-
*
|
|
443
|
-
* @default "and"
|
|
444
|
-
*/
|
|
445
|
-
filterOperator?: "and" | "or";
|
|
446
438
|
/**
|
|
447
439
|
* Called when filter state changes
|
|
448
440
|
*
|
|
@@ -451,47 +443,66 @@ interface FilterListProps<Q extends ObjectTypeDefinition> {
|
|
|
451
443
|
*/
|
|
452
444
|
onFilterStateChanged?: (definition: FilterDefinitionUnion<Q>, newState: FilterState) => void;
|
|
453
445
|
/**
|
|
454
|
-
*
|
|
455
|
-
*
|
|
446
|
+
* Controls how filter visibility (add/remove) is managed.
|
|
447
|
+
*
|
|
448
|
+
* - `"uncontrolled"` (default): FilterList manages visibility internally.
|
|
449
|
+
* An "Add filter" popover is rendered for filters with `isVisible: false`,
|
|
450
|
+
* and each visible filter shows a remove button.
|
|
451
|
+
* - `"controlled"`: The consumer manages which filters are visible via
|
|
452
|
+
* `filterDefinitions`. Filters with `isVisible: false` are excluded from
|
|
453
|
+
* the rendered list.
|
|
454
|
+
*
|
|
455
|
+
* @default "uncontrolled"
|
|
456
|
+
*/
|
|
457
|
+
addFilterMode?: "controlled" | "uncontrolled";
|
|
458
|
+
/**
|
|
459
|
+
* Called when a filter is added (shown).
|
|
460
|
+
*
|
|
461
|
+
* In uncontrolled mode, this fires when a user selects a hidden filter
|
|
462
|
+
* from the "Add filter" popover.
|
|
456
463
|
*
|
|
457
464
|
* @param filterKey The key of the added filter
|
|
458
|
-
* @param newDefinitions The filter
|
|
465
|
+
* @param newDefinitions The current filter definitions array
|
|
459
466
|
*/
|
|
460
467
|
onFilterAdded?: (filterKey: FilterKey<Q>, newDefinitions: Array<FilterDefinitionUnion<Q>>) => void;
|
|
461
468
|
/**
|
|
462
|
-
* Called when a filter is removed
|
|
463
|
-
*
|
|
469
|
+
* Called when a filter is removed (hidden).
|
|
470
|
+
*
|
|
471
|
+
* In uncontrolled mode, this fires as a notification after the filter
|
|
472
|
+
* is hidden internally.
|
|
464
473
|
*
|
|
465
474
|
* @param filterKey The key of the removed filter
|
|
466
|
-
* @param newDefinitions The updated filter list with the filter removed
|
|
467
475
|
*/
|
|
468
|
-
onFilterRemoved?: (filterKey: FilterKey<Q
|
|
476
|
+
onFilterRemoved?: (filterKey: FilterKey<Q>) => void;
|
|
469
477
|
/**
|
|
470
|
-
*
|
|
471
|
-
*
|
|
472
|
-
*
|
|
473
|
-
*
|
|
478
|
+
* Enable drag-and-drop reordering of filters.
|
|
479
|
+
* When true, drag handles are rendered and filters can be reordered.
|
|
480
|
+
* Reorder state is managed internally; consumers who need to track order
|
|
481
|
+
* should use controlled filterDefinitions.
|
|
474
482
|
*/
|
|
475
|
-
|
|
483
|
+
enableSorting?: boolean;
|
|
476
484
|
/**
|
|
477
|
-
*
|
|
485
|
+
* Whether the filter list panel is collapsed
|
|
478
486
|
*/
|
|
479
|
-
|
|
487
|
+
collapsed?: boolean;
|
|
480
488
|
/**
|
|
481
|
-
* Called when
|
|
489
|
+
* Called when the collapsed state changes
|
|
482
490
|
*/
|
|
483
|
-
|
|
491
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
492
|
+
/**
|
|
493
|
+
* Initial filter states for hydrating from external storage.
|
|
494
|
+
* These states are merged over definition defaults on mount.
|
|
495
|
+
* Use onFilterStateChanged to persist state changes externally.
|
|
496
|
+
*/
|
|
497
|
+
initialFilterStates?: Map<string, FilterState>;
|
|
484
498
|
/**
|
|
485
|
-
*
|
|
486
|
-
* When provided along with onFilterAdded, clicking the add button
|
|
487
|
-
* shows a popover with these templates organized by category.
|
|
499
|
+
* Show reset filters button in header
|
|
488
500
|
*/
|
|
489
|
-
|
|
501
|
+
showResetButton?: boolean;
|
|
490
502
|
/**
|
|
491
|
-
* Called when
|
|
492
|
-
* The consumer should create a new filter definition and add it to filterDefinitions.
|
|
503
|
+
* Called when reset button is clicked
|
|
493
504
|
*/
|
|
494
|
-
|
|
505
|
+
onReset?: () => void;
|
|
495
506
|
/**
|
|
496
507
|
* Show count of active filters in header
|
|
497
508
|
*/
|
|
@@ -502,11 +513,20 @@ interface FilterListProps<Q extends ObjectTypeDefinition> {
|
|
|
502
513
|
className?: string;
|
|
503
514
|
/**
|
|
504
515
|
* Custom render function for the "Add filter" button.
|
|
505
|
-
*
|
|
516
|
+
*
|
|
517
|
+
* - In uncontrolled mode: customizes the trigger element for the built-in
|
|
518
|
+
* add-filter popover. The popover behavior is handled automatically.
|
|
519
|
+
* - In controlled mode: replaces the entire add-filter button area.
|
|
520
|
+
* The consumer is responsible for all add-filter behavior.
|
|
506
521
|
*/
|
|
507
522
|
renderAddFilterButton?: () => React__default.ReactNode;
|
|
508
523
|
}
|
|
509
524
|
|
|
525
|
+
declare function FilterList<Q extends ObjectTypeDefinition>(props: FilterListProps<Q>): React__default.ReactElement;
|
|
526
|
+
|
|
527
|
+
declare function serializeFilterStates(states: Map<string, FilterState>): string;
|
|
528
|
+
declare function deserializeFilterStates(json: string): Map<string, FilterState>;
|
|
529
|
+
|
|
510
530
|
interface ColumnOption {
|
|
511
531
|
id: string;
|
|
512
532
|
name: string;
|
|
@@ -516,9 +536,28 @@ interface CellIdentifier {
|
|
|
516
536
|
rowId: string;
|
|
517
537
|
columnId: string;
|
|
518
538
|
}
|
|
519
|
-
interface
|
|
520
|
-
newValue:
|
|
521
|
-
oldValue:
|
|
539
|
+
interface CellEditInfo<TData extends RowData = unknown, CellValue = unknown> extends CellIdentifier {
|
|
540
|
+
newValue: CellValue | null;
|
|
541
|
+
oldValue: CellValue | null;
|
|
542
|
+
originalRowData: TData;
|
|
543
|
+
}
|
|
544
|
+
type EditModeState = {
|
|
545
|
+
type: "always";
|
|
546
|
+
isActive: true;
|
|
547
|
+
} | {
|
|
548
|
+
type: "manual";
|
|
549
|
+
isActive: boolean;
|
|
550
|
+
setActive: (value: boolean) => void;
|
|
551
|
+
};
|
|
552
|
+
interface EditableConfig<TData extends RowData = unknown, CellValue = unknown> {
|
|
553
|
+
cellEdits: Record<string, CellEditInfo<TData, CellValue>>;
|
|
554
|
+
onCellEdit: (cellId: string, info: CellEditInfo<TData, CellValue>) => void;
|
|
555
|
+
onSubmitEdits?: () => Promise<boolean>;
|
|
556
|
+
clearEdits: () => void;
|
|
557
|
+
editModeState: EditModeState;
|
|
558
|
+
onCellValidationError: (cellId: string, error: string) => void;
|
|
559
|
+
validationErrors: Map<string, string>;
|
|
560
|
+
clearCellValidationError: (cellId: string) => void;
|
|
522
561
|
}
|
|
523
562
|
|
|
524
563
|
type ColumnDefinition<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = Record<string, never>, FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>> = {
|
|
@@ -538,6 +577,13 @@ type ColumnDefinition<Q extends ObjectOrInterfaceDefinition, RDPs extends Record
|
|
|
538
577
|
orderable?: boolean;
|
|
539
578
|
filterable?: boolean;
|
|
540
579
|
editable?: boolean;
|
|
580
|
+
/**
|
|
581
|
+
* Additional function to validate the cell value during edit
|
|
582
|
+
*
|
|
583
|
+
* @param value the current cell value
|
|
584
|
+
* @returns a promise that resolves to an error message string if validation fails, or undefined if validation succeeds
|
|
585
|
+
*/
|
|
586
|
+
validateEdit?: (value: unknown) => Promise<string | undefined>;
|
|
541
587
|
renderCell?: (object: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>) => React.ReactNode;
|
|
542
588
|
/**
|
|
543
589
|
* If provided, this will be used in the column header.
|
|
@@ -555,20 +601,49 @@ type ColumnDefinition<Q extends ObjectOrInterfaceDefinition, RDPs extends Record
|
|
|
555
601
|
*/
|
|
556
602
|
renderHeader?: () => React.ReactNode;
|
|
557
603
|
};
|
|
558
|
-
type
|
|
604
|
+
type ExtractQueryParameters<Q extends QueryDefinition> = CompileTimeMetadata<Q>["parameters"] extends Record<string, never> ? undefined : QueryParameterType<CompileTimeMetadata<Q>["parameters"]>;
|
|
605
|
+
interface PropertyColumnLocator<Q extends ObjectOrInterfaceDefinition> {
|
|
559
606
|
type: "property";
|
|
560
607
|
id: PropertyKeys<Q>;
|
|
561
|
-
}
|
|
608
|
+
}
|
|
609
|
+
interface FunctionColumnLocator<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = Record<string, never>, FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>> {
|
|
610
|
+
/**
|
|
611
|
+
* This is equivalent to workshop's function-backed columns.
|
|
612
|
+
* The function needs to meet the specifications stated in https://www.palantir.com/docs/foundry/workshop/widgets-object-table/#function-backed-columns
|
|
613
|
+
*/
|
|
562
614
|
type: "function";
|
|
563
615
|
id: keyof FunctionColumns;
|
|
564
|
-
|
|
616
|
+
queryDefinition: FunctionColumns[keyof FunctionColumns];
|
|
617
|
+
/**
|
|
618
|
+
* The function will be called with the current object set to get the input parameters for the function query.
|
|
619
|
+
* @param objectSet - The current object set.
|
|
620
|
+
* @returns - The function's input parameters including the object set.
|
|
621
|
+
*/
|
|
622
|
+
getFunctionParams: (objectSet: ObjectSet<Q, RDPs>) => ExtractQueryParameters<FunctionColumns[keyof FunctionColumns]>;
|
|
623
|
+
/**
|
|
624
|
+
* Function to generate keys for looking up results in the FunctionsMap.
|
|
625
|
+
* @param object - The object instance
|
|
626
|
+
* @returns - The key to use for looking up this object's result in the FunctionsMap
|
|
627
|
+
*/
|
|
628
|
+
getKey: (object: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>) => string;
|
|
629
|
+
/**
|
|
630
|
+
* Function to extract the cell value from the raw cell data returned by the function.
|
|
631
|
+
* This is useful when functions return custom types with multiple properties.
|
|
632
|
+
* @param cellData - The raw data returned by the function for this object
|
|
633
|
+
* @returns - The value to display in the cell
|
|
634
|
+
*/
|
|
635
|
+
getValue?: (cellData: unknown) => unknown;
|
|
636
|
+
}
|
|
637
|
+
interface RdpColumnLocator<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = Record<string, never>> {
|
|
565
638
|
type: "rdp";
|
|
566
639
|
id: keyof RDPs;
|
|
567
640
|
creator: DerivedProperty.Creator<Q, RDPs[keyof RDPs]>;
|
|
568
|
-
}
|
|
641
|
+
}
|
|
642
|
+
interface CustomColumnLocator {
|
|
569
643
|
type: "custom";
|
|
570
644
|
id: string;
|
|
571
|
-
}
|
|
645
|
+
}
|
|
646
|
+
type ColumnDefinitionLocator<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = Record<string, never>, FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>> = PropertyColumnLocator<Q> | FunctionColumnLocator<Q, RDPs, FunctionColumns> | RdpColumnLocator<Q, RDPs> | CustomColumnLocator;
|
|
572
647
|
interface ObjectTableProps<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = Record<string, never>, FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>> {
|
|
573
648
|
/**
|
|
574
649
|
* The object or interface type of the object
|
|
@@ -629,6 +704,14 @@ interface ObjectTableProps<Q extends ObjectOrInterfaceDefinition, RDPs extends R
|
|
|
629
704
|
* @default true
|
|
630
705
|
*/
|
|
631
706
|
enableColumnConfig?: boolean;
|
|
707
|
+
/**
|
|
708
|
+
* Controls the edit mode behavior of the table.
|
|
709
|
+
* - "always": Editable cells are immediately in edit mode on row clicked.
|
|
710
|
+
* - "manual": User can toggle edit mode on/off via the Edit Table button.
|
|
711
|
+
*
|
|
712
|
+
* @default "manual"
|
|
713
|
+
*/
|
|
714
|
+
editMode?: "always" | "manual";
|
|
632
715
|
/**
|
|
633
716
|
* The default order by clause to sort the objects in the table.
|
|
634
717
|
* If provided without orderBy prop, the sorting is uncontrolled.
|
|
@@ -660,16 +743,18 @@ interface ObjectTableProps<Q extends ObjectOrInterfaceDefinition, RDPs extends R
|
|
|
660
743
|
/**
|
|
661
744
|
* Called after the value of a cell is edited and committed by the user.
|
|
662
745
|
*
|
|
663
|
-
* @param
|
|
664
|
-
*
|
|
746
|
+
* @param info An object containing details about the cell that was edited,
|
|
747
|
+
* including the rowId, columnId, new and old values, and the row data before the edit
|
|
665
748
|
*/
|
|
666
|
-
onCellValueChanged?: (
|
|
749
|
+
onCellValueChanged?: (info: CellEditInfo<Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, unknown>) => void;
|
|
667
750
|
/**
|
|
668
751
|
* If provided, the button Submit Edits will be shown in the table
|
|
669
752
|
*
|
|
670
|
-
* @param edits
|
|
753
|
+
* @param edits an array of edit info containing details about the edited cells
|
|
754
|
+
* including the rowId, columnId, new and old values, and the row data before the edit
|
|
755
|
+
* @return a promise that resolves to true if the edits were successfully submitted
|
|
671
756
|
*/
|
|
672
|
-
onSubmitEdits?: (edits:
|
|
757
|
+
onSubmitEdits?: (edits: CellEditInfo<Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, unknown>[]) => Promise<boolean>;
|
|
673
758
|
/**
|
|
674
759
|
* Called when the column visibility or ordering changed.
|
|
675
760
|
*
|
|
@@ -719,13 +804,19 @@ interface ObjectTableProps<Q extends ObjectOrInterfaceDefinition, RDPs extends R
|
|
|
719
804
|
* If provided, the row selection is controlled.
|
|
720
805
|
*/
|
|
721
806
|
selectedRows?: PrimaryKeyType<Q>[];
|
|
807
|
+
/**
|
|
808
|
+
* Indicates whether all rows are selected in controlled mode.
|
|
809
|
+
* When true, the table will show all rows as selected regardless of the selectedRows array.
|
|
810
|
+
*/
|
|
811
|
+
isAllSelected?: boolean;
|
|
722
812
|
/**
|
|
723
813
|
* Called when the row selection changes.
|
|
724
814
|
* Required when row selection is controlled.
|
|
725
815
|
*
|
|
726
816
|
* @param selectedRowIds The primary keys of currently selected rows
|
|
817
|
+
* @param isSelectAll Whether the change was triggered by a "select all" action. Defaults to false
|
|
727
818
|
*/
|
|
728
|
-
onRowSelection?: (selectedRowIds: PrimaryKeyType<Q>[]) => void;
|
|
819
|
+
onRowSelection?: (selectedRowIds: PrimaryKeyType<Q>[], isSelectAll?: boolean) => void;
|
|
729
820
|
/**
|
|
730
821
|
* If provided, will render this context menu when right clicking on a cell
|
|
731
822
|
*/
|
|
@@ -753,15 +844,7 @@ interface ObjectSetOptions<Q extends ObjectOrInterfaceDefinition> {
|
|
|
753
844
|
subtract?: ObjectSet<Q>[];
|
|
754
845
|
}
|
|
755
846
|
|
|
756
|
-
|
|
757
|
-
* ObjectTable - A headless table component for displaying OSDK object sets
|
|
758
|
-
*
|
|
759
|
-
* @example
|
|
760
|
-
* ```tsx
|
|
761
|
-
* <ObjectTable objectType={MyObjectType} />
|
|
762
|
-
* ```
|
|
763
|
-
*/
|
|
764
|
-
declare function ObjectTable<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = Record<string, never>, FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>>({ objectType, objectSet, columnDefinitions, filter, objectSetOptions, orderBy, defaultOrderBy, onOrderByChanged, onColumnsPinnedChanged, onColumnResize, onRowSelection, renderCellContextMenu, selectionMode, selectedRows, onColumnVisibilityChanged, onCellValueChanged, onSubmitEdits, enableOrdering, enableColumnPinning, enableColumnResizing, enableColumnConfig, ...props }: ObjectTableProps<Q, RDPs, FunctionColumns>): React__default.ReactElement;
|
|
847
|
+
declare function ObjectTable<Q extends ObjectOrInterfaceDefinition, RDPs extends Record<string, SimplePropertyDef> = Record<string, never>, FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>>({ objectType, objectSet, columnDefinitions, filter, objectSetOptions, orderBy, defaultOrderBy, onOrderByChanged, onColumnsPinnedChanged, onColumnResize, onRowSelection, renderCellContextMenu, selectionMode, selectedRows, isAllSelected: isAllSelectedProp, onColumnVisibilityChanged, onCellValueChanged, onSubmitEdits, enableOrdering, enableColumnPinning, enableColumnResizing, enableColumnConfig, editMode, ...props }: ObjectTableProps<Q, RDPs, FunctionColumns>): React__default.ReactElement;
|
|
765
848
|
|
|
766
849
|
interface HeaderMenuFeatureFlags {
|
|
767
850
|
/**
|
|
@@ -789,20 +872,21 @@ interface HeaderMenuFeatureFlags {
|
|
|
789
872
|
declare module "@tanstack/react-table" {
|
|
790
873
|
interface ColumnMeta<TData extends RowData = unknown, TValue = unknown> {
|
|
791
874
|
columnName?: string;
|
|
875
|
+
isAsyncColumn?: boolean;
|
|
792
876
|
isVisible?: boolean;
|
|
793
877
|
editable?: boolean;
|
|
794
878
|
dataType?: string;
|
|
879
|
+
validateEdit?: (value: unknown) => Promise<string | undefined>;
|
|
795
880
|
}
|
|
796
881
|
interface TableMeta<TData extends RowData = unknown> {
|
|
797
|
-
onCellEdit?: (cellId: string,
|
|
798
|
-
|
|
882
|
+
onCellEdit?: (cellId: string, info: CellEditInfo<TData, unknown>) => void;
|
|
883
|
+
onCellValidationError?: (cellId: string, error: string) => void;
|
|
884
|
+
clearCellValidationError?: (cellId: string) => void;
|
|
885
|
+
cellEdits?: Record<string, CellEditInfo<TData, unknown>>;
|
|
886
|
+
isInEditMode?: boolean;
|
|
887
|
+
validationErrors?: Map<string, string>;
|
|
799
888
|
}
|
|
800
889
|
}
|
|
801
|
-
interface EditableConfig {
|
|
802
|
-
onSubmitEdits?: () => Promise<void>;
|
|
803
|
-
clearEdits?: () => void;
|
|
804
|
-
cellEdits?: Record<string, CellValueState>;
|
|
805
|
-
}
|
|
806
890
|
interface BaseTableProps<TData extends RowData> {
|
|
807
891
|
table: Table<TData>;
|
|
808
892
|
isLoading?: boolean;
|
|
@@ -813,7 +897,7 @@ interface BaseTableProps<TData extends RowData> {
|
|
|
813
897
|
className?: string;
|
|
814
898
|
error?: Error;
|
|
815
899
|
headerMenuFeatureFlags?: HeaderMenuFeatureFlags;
|
|
816
|
-
editableConfig?: EditableConfig
|
|
900
|
+
editableConfig?: EditableConfig<TData, unknown>;
|
|
817
901
|
}
|
|
818
902
|
declare function BaseTable<TData extends RowData>({ table, isLoading, fetchNextPage, onRowClick, rowHeight, renderCellContextMenu, className, error, headerMenuFeatureFlags, editableConfig, }: BaseTableProps<TData>): ReactElement;
|
|
819
903
|
|
|
@@ -833,4 +917,977 @@ interface ColumnConfigDialogProps {
|
|
|
833
917
|
}
|
|
834
918
|
declare function ColumnConfigDialog({ isOpen, onClose, columnOptions, currentVisibility, currentColumnOrder, onApply, isValidConfig, }: ColumnConfigDialogProps): React__default.ReactElement | null;
|
|
835
919
|
|
|
836
|
-
|
|
920
|
+
/** Which sidebar panel to display when the sidebar is open. */
|
|
921
|
+
type SidebarMode = "thumbnails" | "outline";
|
|
922
|
+
/** A single item in the PDF document outline (table of contents). */
|
|
923
|
+
interface OutlineItem {
|
|
924
|
+
title: string;
|
|
925
|
+
depth: number;
|
|
926
|
+
pageNumber: number;
|
|
927
|
+
bold: boolean;
|
|
928
|
+
italic: boolean;
|
|
929
|
+
}
|
|
930
|
+
/** The visual style of an annotation rendered on the PDF. */
|
|
931
|
+
type AnnotationType = "highlight" | "underline" | "comment" | "pin" | "custom";
|
|
932
|
+
/** A rectangle in PDF coordinate space (origin: bottom-left of page). */
|
|
933
|
+
interface PdfRect {
|
|
934
|
+
x: number;
|
|
935
|
+
y: number;
|
|
936
|
+
width: number;
|
|
937
|
+
height: number;
|
|
938
|
+
}
|
|
939
|
+
/** Props passed to a custom annotation renderer. */
|
|
940
|
+
interface PdfAnnotationRenderProps {
|
|
941
|
+
annotation: PdfAnnotation;
|
|
942
|
+
scale: number;
|
|
943
|
+
pageHeight: number;
|
|
944
|
+
}
|
|
945
|
+
/** Common fields shared by all annotation types. */
|
|
946
|
+
interface PdfAnnotationBase {
|
|
947
|
+
/** Unique identifier for this annotation */
|
|
948
|
+
id: string;
|
|
949
|
+
/** Page number (1-indexed) */
|
|
950
|
+
page: number;
|
|
951
|
+
/** Coordinates in PDF points (origin: bottom-left of page) */
|
|
952
|
+
rect: PdfRect;
|
|
953
|
+
/** Additional rects for multi-line text highlights. When present, all rects are rendered. */
|
|
954
|
+
rects?: PdfRect[];
|
|
955
|
+
/** Optional label or tooltip text */
|
|
956
|
+
label?: string;
|
|
957
|
+
/** Optional color override (CSS color string) */
|
|
958
|
+
color?: string;
|
|
959
|
+
}
|
|
960
|
+
/** A built-in annotation type (highlight, underline, comment, pin). */
|
|
961
|
+
interface PdfStandardAnnotation extends PdfAnnotationBase {
|
|
962
|
+
/** The type of annotation to render */
|
|
963
|
+
type: "highlight" | "underline" | "comment" | "pin";
|
|
964
|
+
}
|
|
965
|
+
/** A custom annotation with a user-provided renderer. */
|
|
966
|
+
interface PdfCustomAnnotation extends PdfAnnotationBase {
|
|
967
|
+
/** Must be "custom" for custom-rendered annotations */
|
|
968
|
+
type: "custom";
|
|
969
|
+
/** Render function for the custom annotation content (required for custom type) */
|
|
970
|
+
render: (props: PdfAnnotationRenderProps) => React__default.ReactNode;
|
|
971
|
+
}
|
|
972
|
+
/** A single annotation positioned on a specific page of the PDF. */
|
|
973
|
+
type PdfAnnotation = PdfStandardAnnotation | PdfCustomAnnotation;
|
|
974
|
+
/** Result passed to the {@link PdfViewerProps.onDownload} callback. */
|
|
975
|
+
type PdfDownloadResult = {
|
|
976
|
+
success: true;
|
|
977
|
+
filename: string;
|
|
978
|
+
} | {
|
|
979
|
+
success: false;
|
|
980
|
+
error: Error;
|
|
981
|
+
};
|
|
982
|
+
/** Possible values for a PDF form field. */
|
|
983
|
+
type PdfFormFieldValue = string | boolean | string[];
|
|
984
|
+
/** Data emitted when the user creates a text highlight via the highlight editor. */
|
|
985
|
+
interface PdfTextHighlightEvent {
|
|
986
|
+
/** Internal PDF.js editor ID. Use with `deleteHighlight` to programmatically remove. */
|
|
987
|
+
editorId: string;
|
|
988
|
+
/** Page number (1-indexed) */
|
|
989
|
+
page: number;
|
|
990
|
+
/** Bounding rects in PDF coordinate space (bottom-left origin) */
|
|
991
|
+
rects: PdfRect[];
|
|
992
|
+
/** The selected text content */
|
|
993
|
+
selectedText: string;
|
|
994
|
+
/** Highlight color as CSS color string */
|
|
995
|
+
color: string;
|
|
996
|
+
}
|
|
997
|
+
/** Imperative handle for programmatic control of a {@link PdfViewer} or {@link BasePdfViewer}. */
|
|
998
|
+
interface PdfViewerHandle {
|
|
999
|
+
/** Scroll the viewer to the given page number (1-indexed). */
|
|
1000
|
+
scrollToPage: (page: number) => void;
|
|
1001
|
+
/** Programmatically delete a highlight by its `editorId` (from {@link PdfTextHighlightEvent}). */
|
|
1002
|
+
deleteHighlight: (editorId: string) => void;
|
|
1003
|
+
}
|
|
1004
|
+
/**
|
|
1005
|
+
* Options for {@link usePdfViewerInstance}.
|
|
1006
|
+
* Equivalent to {@link PdfViewerProps} minus the `className` rendering concern.
|
|
1007
|
+
*/
|
|
1008
|
+
interface PdfViewerInstanceOptions {
|
|
1009
|
+
/** PDF source — URL string or ArrayBuffer */
|
|
1010
|
+
src: string | ArrayBuffer;
|
|
1011
|
+
/** Annotations to overlay on the PDF */
|
|
1012
|
+
annotations?: PdfAnnotation[];
|
|
1013
|
+
/** Callback fired when an annotation is clicked */
|
|
1014
|
+
onAnnotationClick?: (annotation: PdfAnnotation) => void;
|
|
1015
|
+
/** Callback fired when a download completes or fails */
|
|
1016
|
+
onDownload?: (result: PdfDownloadResult) => void;
|
|
1017
|
+
/** Whether the highlight toggle button is shown in the toolbar */
|
|
1018
|
+
highlightEnabled?: boolean;
|
|
1019
|
+
/** Callback fired when the user creates a text highlight */
|
|
1020
|
+
onTextHighlight?: (event: PdfTextHighlightEvent) => void;
|
|
1021
|
+
/** Callback fired when the user deletes a highlight */
|
|
1022
|
+
onHighlightDelete?: (event: PdfTextHighlightEvent) => void;
|
|
1023
|
+
/** Initial form field values keyed by field name */
|
|
1024
|
+
formData?: Record<string, PdfFormFieldValue>;
|
|
1025
|
+
/** Callback fired when the user clicks the save button */
|
|
1026
|
+
onFormSubmit?: (data: Record<string, PdfFormFieldValue>) => void;
|
|
1027
|
+
/** Callback fired when any form field value changes */
|
|
1028
|
+
onFormChange?: (fieldName: string, value: PdfFormFieldValue) => void;
|
|
1029
|
+
/** Initial page number (1-indexed, default 1) */
|
|
1030
|
+
initialPage?: number;
|
|
1031
|
+
/** Initial zoom scale (default 1.0) */
|
|
1032
|
+
initialScale?: number;
|
|
1033
|
+
/** Whether the sidebar is initially open (default false) */
|
|
1034
|
+
initialSidebarOpen?: boolean;
|
|
1035
|
+
/** Whether the download button is shown in the toolbar */
|
|
1036
|
+
enableDownload?: boolean;
|
|
1037
|
+
/** Which sidebar panel to show: thumbnails or document outline */
|
|
1038
|
+
sidebarMode?: SidebarMode;
|
|
1039
|
+
/** Custom icon components for each outline depth level (0-indexed) */
|
|
1040
|
+
outlineIcons?: Partial<Record<number, React__default.ComponentType>>;
|
|
1041
|
+
}
|
|
1042
|
+
/** Props for the {@link PdfViewer} component. */
|
|
1043
|
+
interface PdfViewerProps {
|
|
1044
|
+
/** PDF source — URL string or ArrayBuffer */
|
|
1045
|
+
src: string | ArrayBuffer;
|
|
1046
|
+
/** Annotations to overlay on the PDF */
|
|
1047
|
+
annotations?: PdfAnnotation[];
|
|
1048
|
+
/**
|
|
1049
|
+
* Callback fired when an annotation is clicked.
|
|
1050
|
+
*
|
|
1051
|
+
* @param annotation - The annotation that was clicked
|
|
1052
|
+
* @returns void
|
|
1053
|
+
*/
|
|
1054
|
+
onAnnotationClick?: (annotation: PdfAnnotation) => void;
|
|
1055
|
+
/**
|
|
1056
|
+
* Callback fired when a download completes or fails.
|
|
1057
|
+
*
|
|
1058
|
+
* @param result - The download result indicating success with the filename, or failure with an error
|
|
1059
|
+
* @returns void
|
|
1060
|
+
*/
|
|
1061
|
+
onDownload?: (result: PdfDownloadResult) => void;
|
|
1062
|
+
/**
|
|
1063
|
+
* Whether the highlight toggle button is shown in the toolbar.
|
|
1064
|
+
* @default false
|
|
1065
|
+
*/
|
|
1066
|
+
enableHighlight?: boolean;
|
|
1067
|
+
/**
|
|
1068
|
+
* Callback fired when the user creates a text highlight.
|
|
1069
|
+
* Only fires when highlight mode is active.
|
|
1070
|
+
*
|
|
1071
|
+
* @param event - The highlight event with page, rects, text, and color
|
|
1072
|
+
* @returns void
|
|
1073
|
+
*/
|
|
1074
|
+
onTextHighlight?: (event: PdfTextHighlightEvent) => void;
|
|
1075
|
+
/**
|
|
1076
|
+
* Callback fired when the user deletes a highlight via the PDF.js editor UI.
|
|
1077
|
+
*
|
|
1078
|
+
* @param event - The highlight event that was deleted
|
|
1079
|
+
* @returns void
|
|
1080
|
+
*/
|
|
1081
|
+
onHighlightDelete?: (event: PdfTextHighlightEvent) => void;
|
|
1082
|
+
/** Initial page number (1-indexed, default 1) */
|
|
1083
|
+
initialPage?: number;
|
|
1084
|
+
/** Initial zoom scale (default 1.0) */
|
|
1085
|
+
initialScale?: number;
|
|
1086
|
+
/** Whether the sidebar is initially open (default false) */
|
|
1087
|
+
initialSidebarOpen?: boolean;
|
|
1088
|
+
/**
|
|
1089
|
+
* Whether the download button is shown in the toolbar.
|
|
1090
|
+
* @default false
|
|
1091
|
+
*/
|
|
1092
|
+
enableDownload?: boolean;
|
|
1093
|
+
/**
|
|
1094
|
+
* Which sidebar panel to show: thumbnails or document outline.
|
|
1095
|
+
* @default "thumbnails"
|
|
1096
|
+
*/
|
|
1097
|
+
sidebarMode?: SidebarMode;
|
|
1098
|
+
/**
|
|
1099
|
+
* Custom icon components for each outline depth level (0-indexed).
|
|
1100
|
+
* Key 0 = top-level items, 1 = first nesting level, etc.
|
|
1101
|
+
* If omitted, no icons are rendered.
|
|
1102
|
+
*/
|
|
1103
|
+
outlineIcons?: Partial<Record<number, React__default.ComponentType>>;
|
|
1104
|
+
/**
|
|
1105
|
+
* Initial form field values keyed by field name. Applied when the document loads.
|
|
1106
|
+
* Use this to pre-populate form fields when resuming a previously edited PDF.
|
|
1107
|
+
*/
|
|
1108
|
+
formData?: Record<string, PdfFormFieldValue>;
|
|
1109
|
+
/**
|
|
1110
|
+
* Callback fired when the user clicks the save button in the toolbar.
|
|
1111
|
+
* Receives all current form field values keyed by field name.
|
|
1112
|
+
*
|
|
1113
|
+
* @param data - All form field values keyed by field name
|
|
1114
|
+
* @returns void
|
|
1115
|
+
*/
|
|
1116
|
+
onFormSubmit?: (data: Record<string, PdfFormFieldValue>) => void;
|
|
1117
|
+
/**
|
|
1118
|
+
* Callback fired when any form field value changes.
|
|
1119
|
+
*
|
|
1120
|
+
* @param fieldName - The name of the field that changed
|
|
1121
|
+
* @param value - The new value
|
|
1122
|
+
* @returns void
|
|
1123
|
+
*/
|
|
1124
|
+
onFormChange?: (fieldName: string, value: PdfFormFieldValue) => void;
|
|
1125
|
+
/** Additional CSS class name for the root element */
|
|
1126
|
+
className?: string;
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
declare const BasePdfViewer: React__default.ForwardRefExoticComponent<PdfViewerProps & React__default.RefAttributes<PdfViewerHandle>>;
|
|
1130
|
+
|
|
1131
|
+
interface PdfViewerAnnotationLayerProps {
|
|
1132
|
+
annotations: PdfAnnotation[];
|
|
1133
|
+
pageHeight: number;
|
|
1134
|
+
scale: number;
|
|
1135
|
+
onAnnotationClick?: (annotation: PdfAnnotation) => void;
|
|
1136
|
+
}
|
|
1137
|
+
declare function PdfViewerAnnotationLayer({ annotations, pageHeight, scale, onAnnotationClick, }: PdfViewerAnnotationLayerProps): React__default.ReactElement;
|
|
1138
|
+
|
|
1139
|
+
interface PdfViewerContentProps {
|
|
1140
|
+
/** PDF source — URL string or ArrayBuffer */
|
|
1141
|
+
src: string | ArrayBuffer;
|
|
1142
|
+
/** Annotations to overlay on the PDF */
|
|
1143
|
+
annotations?: PdfAnnotation[];
|
|
1144
|
+
/** Callback fired when an annotation is clicked */
|
|
1145
|
+
onAnnotationClick?: (annotation: PdfAnnotation) => void;
|
|
1146
|
+
/** Initial page number (1-indexed, default 1) */
|
|
1147
|
+
initialPage?: number;
|
|
1148
|
+
/** Initial zoom scale (default 1.0) */
|
|
1149
|
+
initialScale?: number;
|
|
1150
|
+
/** Callback fired when the current page changes during scrolling */
|
|
1151
|
+
onPageChange?: (page: number) => void;
|
|
1152
|
+
/** Callback fired when the zoom scale changes */
|
|
1153
|
+
onScaleChange?: (scale: number) => void;
|
|
1154
|
+
/** Initial form field values keyed by field name. Applied when the document loads. */
|
|
1155
|
+
formData?: Record<string, PdfFormFieldValue>;
|
|
1156
|
+
/** Callback fired when any form field value changes. */
|
|
1157
|
+
onFormChange?: (fieldName: string, value: PdfFormFieldValue) => void;
|
|
1158
|
+
/** Additional CSS class name for the root element */
|
|
1159
|
+
className?: string;
|
|
1160
|
+
}
|
|
1161
|
+
declare function PdfViewerContent({ src, annotations, onAnnotationClick, initialPage, initialScale, onPageChange: onPageChangeProp, onScaleChange: onScaleChangeProp, formData, onFormChange, className, }: PdfViewerContentProps): React__default.ReactElement;
|
|
1162
|
+
|
|
1163
|
+
interface PdfViewerOutlineSidebarProps {
|
|
1164
|
+
outlineItems: OutlineItem[];
|
|
1165
|
+
currentPage: number;
|
|
1166
|
+
onItemClick: (pageNumber: number) => void;
|
|
1167
|
+
sidebarMode: SidebarMode;
|
|
1168
|
+
onSidebarModeChange: (mode: SidebarMode) => void;
|
|
1169
|
+
outlineIcons?: Partial<Record<number, React__default.ComponentType>>;
|
|
1170
|
+
}
|
|
1171
|
+
declare function PdfViewerOutlineSidebar({ outlineItems, currentPage, onItemClick, sidebarMode, onSidebarModeChange, outlineIcons, }: PdfViewerOutlineSidebarProps): React__default.ReactElement;
|
|
1172
|
+
|
|
1173
|
+
interface PdfViewerSearchBarProps {
|
|
1174
|
+
query: string;
|
|
1175
|
+
totalMatches: number;
|
|
1176
|
+
currentMatchIndex: number;
|
|
1177
|
+
onQueryChange: (query: string) => void;
|
|
1178
|
+
onNext: () => void;
|
|
1179
|
+
onPrev: () => void;
|
|
1180
|
+
onClose: () => void;
|
|
1181
|
+
}
|
|
1182
|
+
declare function PdfViewerSearchBar({ query, totalMatches, currentMatchIndex, onQueryChange, onNext, onPrev, onClose, }: PdfViewerSearchBarProps): React__default.ReactElement;
|
|
1183
|
+
|
|
1184
|
+
interface PdfViewerSidebarProps {
|
|
1185
|
+
document: PDFDocumentProxy;
|
|
1186
|
+
numPages: number;
|
|
1187
|
+
currentPage: number;
|
|
1188
|
+
onPageClick: (page: number) => void;
|
|
1189
|
+
sidebarMode: SidebarMode;
|
|
1190
|
+
onSidebarModeChange: (mode: SidebarMode) => void;
|
|
1191
|
+
}
|
|
1192
|
+
declare function PdfViewerSidebar({ document, numPages, currentPage, onPageClick, sidebarMode, onSidebarModeChange, }: PdfViewerSidebarProps): React__default.ReactElement;
|
|
1193
|
+
|
|
1194
|
+
interface PdfViewerToolbarProps {
|
|
1195
|
+
currentPage: number;
|
|
1196
|
+
numPages: number;
|
|
1197
|
+
scale: number;
|
|
1198
|
+
sidebarOpen: boolean;
|
|
1199
|
+
onPageChange: (page: number) => void;
|
|
1200
|
+
onScaleChange: (scale: number) => void;
|
|
1201
|
+
onSearchOpen: () => void;
|
|
1202
|
+
onSidebarToggle: () => void;
|
|
1203
|
+
onDownload: () => void;
|
|
1204
|
+
enableDownload: boolean;
|
|
1205
|
+
onRotateLeft: () => void;
|
|
1206
|
+
onRotateRight: () => void;
|
|
1207
|
+
enableHighlight: boolean;
|
|
1208
|
+
highlightModeActive: boolean;
|
|
1209
|
+
onHighlightToggle: () => void;
|
|
1210
|
+
enableFormSave?: boolean;
|
|
1211
|
+
onFormSave?: () => void;
|
|
1212
|
+
}
|
|
1213
|
+
declare function PdfViewerToolbar({ currentPage, numPages, scale, sidebarOpen, onPageChange, onScaleChange, onSearchOpen, onSidebarToggle, onDownload, enableDownload, onRotateLeft, onRotateRight, enableHighlight, highlightModeActive, onHighlightToggle, enableFormSave, onFormSave, }: PdfViewerToolbarProps): React__default.ReactElement;
|
|
1214
|
+
|
|
1215
|
+
interface AnnotationPortalTarget {
|
|
1216
|
+
pageNumber: number;
|
|
1217
|
+
container: HTMLDivElement;
|
|
1218
|
+
pageHeight: number;
|
|
1219
|
+
scale: number;
|
|
1220
|
+
}
|
|
1221
|
+
declare function usePdfAnnotationPortals(pdfViewerRef: RefObject<PDFViewer | null>, eventBusRef: RefObject<EventBus | null>, document: PDFDocumentProxy | undefined): AnnotationPortalTarget[];
|
|
1222
|
+
|
|
1223
|
+
/**
|
|
1224
|
+
* Groups a flat array of annotations by page number for efficient per-page lookup.
|
|
1225
|
+
*/
|
|
1226
|
+
declare function usePdfAnnotationsByPage(annotations: PdfAnnotation[]): Record<number, PdfAnnotation[]>;
|
|
1227
|
+
|
|
1228
|
+
interface UsePdfDocumentResult {
|
|
1229
|
+
document: PDFDocumentProxy | undefined;
|
|
1230
|
+
numPages: number;
|
|
1231
|
+
loading: boolean;
|
|
1232
|
+
error: Error | undefined;
|
|
1233
|
+
}
|
|
1234
|
+
declare function usePdfDocument(src: string | ArrayBuffer): UsePdfDocumentResult;
|
|
1235
|
+
|
|
1236
|
+
interface UsePdfFormFieldsOptions {
|
|
1237
|
+
pdfViewerRef: RefObject<PDFViewer | null>;
|
|
1238
|
+
eventBusRef: RefObject<EventBus | null>;
|
|
1239
|
+
document: PDFDocumentProxy | undefined;
|
|
1240
|
+
formData?: Record<string, PdfFormFieldValue>;
|
|
1241
|
+
onFormSubmit?: (data: Record<string, PdfFormFieldValue>) => void;
|
|
1242
|
+
onFormChange?: (fieldName: string, value: PdfFormFieldValue) => void;
|
|
1243
|
+
}
|
|
1244
|
+
interface UsePdfFormFieldsResult {
|
|
1245
|
+
/** Whether the loaded PDF contains interactive form fields. */
|
|
1246
|
+
hasFormFields: boolean;
|
|
1247
|
+
/** Collect all current form field values and invoke onFormSubmit. */
|
|
1248
|
+
submitFormData: () => void;
|
|
1249
|
+
}
|
|
1250
|
+
/**
|
|
1251
|
+
* Hook that manages interactive PDF form fields.
|
|
1252
|
+
* Builds a field metadata map, pre-populates initial values,
|
|
1253
|
+
* listens for field changes, and collects values on submit.
|
|
1254
|
+
*/
|
|
1255
|
+
declare function usePdfFormFields({ pdfViewerRef, eventBusRef, document, formData, onFormSubmit, onFormChange, }: UsePdfFormFieldsOptions): UsePdfFormFieldsResult;
|
|
1256
|
+
|
|
1257
|
+
interface UsePdfHighlightModeOptions {
|
|
1258
|
+
pdfViewerRef: RefObject<PDFViewer | null>;
|
|
1259
|
+
document: PDFDocumentProxy | undefined;
|
|
1260
|
+
enabled: boolean;
|
|
1261
|
+
onTextHighlight?: (event: PdfTextHighlightEvent) => void;
|
|
1262
|
+
onHighlightDelete?: (event: PdfTextHighlightEvent) => void;
|
|
1263
|
+
}
|
|
1264
|
+
interface UsePdfHighlightModeResult {
|
|
1265
|
+
highlightModeActive: boolean;
|
|
1266
|
+
toggleHighlightMode: () => void;
|
|
1267
|
+
deleteHighlight: (editorId: string) => void;
|
|
1268
|
+
}
|
|
1269
|
+
/**
|
|
1270
|
+
* Hook that manages the PDF.js built-in highlight annotation editor mode.
|
|
1271
|
+
* When active, users can select text to create highlights.
|
|
1272
|
+
* A callback fires with the annotation details for persistence.
|
|
1273
|
+
*/
|
|
1274
|
+
declare function usePdfHighlightMode({ pdfViewerRef, document, enabled, onTextHighlight, onHighlightDelete, }: UsePdfHighlightModeOptions): UsePdfHighlightModeResult;
|
|
1275
|
+
|
|
1276
|
+
declare function usePdfOutline(document: PDFDocumentProxy | undefined): OutlineItem[];
|
|
1277
|
+
|
|
1278
|
+
interface UsePdfViewerResult {
|
|
1279
|
+
pdfViewerRef: RefObject<PDFViewer | null>;
|
|
1280
|
+
eventBusRef: RefObject<EventBus | null>;
|
|
1281
|
+
findControllerRef: RefObject<PDFFindController | null>;
|
|
1282
|
+
}
|
|
1283
|
+
declare function usePdfViewer(containerRef: RefObject<HTMLDivElement | null>, viewerRef: RefObject<HTMLDivElement | null>, document: PDFDocumentProxy | undefined, initialScale?: number, initialPage?: number): UsePdfViewerResult;
|
|
1284
|
+
|
|
1285
|
+
interface UsePdfViewerSearchResult {
|
|
1286
|
+
query: string;
|
|
1287
|
+
totalMatches: number;
|
|
1288
|
+
currentMatchIndex: number;
|
|
1289
|
+
isSearchOpen: boolean;
|
|
1290
|
+
setQuery: (query: string) => void;
|
|
1291
|
+
nextMatch: () => void;
|
|
1292
|
+
prevMatch: () => void;
|
|
1293
|
+
openSearch: () => void;
|
|
1294
|
+
closeSearch: () => void;
|
|
1295
|
+
}
|
|
1296
|
+
declare function usePdfViewerSearch(eventBusRef: RefObject<EventBus | null>, findControllerRef: RefObject<PDFFindController | null>, document: PDFDocumentProxy | undefined): UsePdfViewerSearchResult;
|
|
1297
|
+
|
|
1298
|
+
interface UsePdfViewerSyncOptions {
|
|
1299
|
+
pdfViewerRef: RefObject<PDFViewer | null>;
|
|
1300
|
+
eventBusRef: RefObject<EventBus | null>;
|
|
1301
|
+
document: PDFDocumentProxy | undefined;
|
|
1302
|
+
scale: number;
|
|
1303
|
+
onScaleChange: (scale: number) => void;
|
|
1304
|
+
onPageChange: (page: number) => void;
|
|
1305
|
+
}
|
|
1306
|
+
declare function usePdfViewerSync({ pdfViewerRef, eventBusRef, document, scale, onScaleChange, onPageChange, }: UsePdfViewerSyncOptions): {
|
|
1307
|
+
scrollToPage: (page: number) => void;
|
|
1308
|
+
};
|
|
1309
|
+
|
|
1310
|
+
/** The shape of the value provided by {@link PdfViewerProvider}. */
|
|
1311
|
+
interface PdfViewerContextValue {
|
|
1312
|
+
document: PDFDocumentProxy | undefined;
|
|
1313
|
+
numPages: number;
|
|
1314
|
+
loading: boolean;
|
|
1315
|
+
error: Error | undefined;
|
|
1316
|
+
containerRef: RefObject<HTMLDivElement>;
|
|
1317
|
+
viewerRef: RefObject<HTMLDivElement>;
|
|
1318
|
+
currentPage: number;
|
|
1319
|
+
scrollToPage: (page: number) => void;
|
|
1320
|
+
scale: number;
|
|
1321
|
+
setScale: (scale: number) => void;
|
|
1322
|
+
zoomIn: () => void;
|
|
1323
|
+
zoomOut: () => void;
|
|
1324
|
+
rotation: number;
|
|
1325
|
+
rotateLeft: () => void;
|
|
1326
|
+
rotateRight: () => void;
|
|
1327
|
+
sidebarOpen: boolean;
|
|
1328
|
+
sidebarMode: SidebarMode;
|
|
1329
|
+
setSidebarMode: (mode: SidebarMode) => void;
|
|
1330
|
+
toggleSidebar: () => void;
|
|
1331
|
+
search: UsePdfViewerSearchResult;
|
|
1332
|
+
outlineItems: OutlineItem[];
|
|
1333
|
+
download: (filename?: string) => void;
|
|
1334
|
+
portalTargets: AnnotationPortalTarget[];
|
|
1335
|
+
highlightEnabled: boolean;
|
|
1336
|
+
highlightModeActive: boolean;
|
|
1337
|
+
toggleHighlightMode: () => void;
|
|
1338
|
+
hasFormFields: boolean;
|
|
1339
|
+
submitFormData: () => void;
|
|
1340
|
+
annotations: PdfAnnotation[];
|
|
1341
|
+
annotationsByPage: Record<number, PdfAnnotation[]>;
|
|
1342
|
+
onAnnotationClick: ((annotation: PdfAnnotation) => void) | undefined;
|
|
1343
|
+
enableDownload: boolean;
|
|
1344
|
+
enableFormSave: boolean;
|
|
1345
|
+
outlineIcons: Partial<Record<number, React__default.ComponentType>> | undefined;
|
|
1346
|
+
pdfViewerRef: RefObject<PDFViewer | null>;
|
|
1347
|
+
eventBusRef: RefObject<EventBus | null>;
|
|
1348
|
+
findControllerRef: RefObject<PDFFindController | null>;
|
|
1349
|
+
}
|
|
1350
|
+
interface PdfViewerProviderProps {
|
|
1351
|
+
value: PdfViewerContextValue;
|
|
1352
|
+
children: React__default.ReactNode;
|
|
1353
|
+
}
|
|
1354
|
+
/** Provides {@link PdfViewerContextValue} to descendant components. */
|
|
1355
|
+
declare function PdfViewerProvider({ value, children }: PdfViewerProviderProps): React__default.ReactElement;
|
|
1356
|
+
/**
|
|
1357
|
+
* Returns the nearest {@link PdfViewerContextValue} from a {@link PdfViewerProvider}.
|
|
1358
|
+
* Throws if called outside a provider.
|
|
1359
|
+
*/
|
|
1360
|
+
declare function usePdfViewerContext(): PdfViewerContextValue;
|
|
1361
|
+
/**
|
|
1362
|
+
* Consumer-facing setup hook analogous to react-hook-form's `useForm()`.
|
|
1363
|
+
* Accepts viewer options and returns a {@link PdfViewerContextValue} suitable
|
|
1364
|
+
* for passing to {@link PdfViewerProvider}.
|
|
1365
|
+
*/
|
|
1366
|
+
declare function usePdfViewerInstance(options: PdfViewerInstanceOptions): PdfViewerContextValue;
|
|
1367
|
+
|
|
1368
|
+
interface UsePdfViewerCoreOptions {
|
|
1369
|
+
/** PDF source — URL string or ArrayBuffer */
|
|
1370
|
+
src: string | ArrayBuffer;
|
|
1371
|
+
/** Initial page number (1-indexed, default 1) */
|
|
1372
|
+
initialPage?: number;
|
|
1373
|
+
/** Initial zoom scale (default 1.0) */
|
|
1374
|
+
initialScale?: number;
|
|
1375
|
+
}
|
|
1376
|
+
interface UsePdfViewerCoreResult {
|
|
1377
|
+
/** The loaded PDF document, or undefined while loading */
|
|
1378
|
+
document: PDFDocumentProxy | undefined;
|
|
1379
|
+
/** Total number of pages in the document */
|
|
1380
|
+
numPages: number;
|
|
1381
|
+
/** Whether the document is currently loading */
|
|
1382
|
+
loading: boolean;
|
|
1383
|
+
/** Error encountered while loading the document */
|
|
1384
|
+
error: Error | undefined;
|
|
1385
|
+
/** Ref to attach to the scroll-container div */
|
|
1386
|
+
containerRef: RefObject<HTMLDivElement>;
|
|
1387
|
+
/** Ref to attach to the inner viewer div (className="pdfViewer") */
|
|
1388
|
+
viewerRef: RefObject<HTMLDivElement>;
|
|
1389
|
+
/** Current page number (1-indexed) */
|
|
1390
|
+
currentPage: number;
|
|
1391
|
+
/** Navigate to a specific page (updates state and scrolls the viewer) */
|
|
1392
|
+
scrollToPage: (page: number) => void;
|
|
1393
|
+
/** Current zoom scale */
|
|
1394
|
+
scale: number;
|
|
1395
|
+
/** Set the zoom scale directly */
|
|
1396
|
+
setScale: (scale: number) => void;
|
|
1397
|
+
/** Portal targets for rendering annotation overlays on each page */
|
|
1398
|
+
portalTargets: AnnotationPortalTarget[];
|
|
1399
|
+
/** Ref to the internal pdfjs PDFViewer instance */
|
|
1400
|
+
pdfViewerRef: RefObject<PDFViewer | null>;
|
|
1401
|
+
/** Ref to the internal pdfjs EventBus instance */
|
|
1402
|
+
eventBusRef: RefObject<EventBus | null>;
|
|
1403
|
+
/** Ref to the internal pdfjs PDFFindController instance */
|
|
1404
|
+
findControllerRef: RefObject<PDFFindController | null>;
|
|
1405
|
+
}
|
|
1406
|
+
declare function usePdfViewerCore({ src, initialPage, initialScale, }: UsePdfViewerCoreOptions): UsePdfViewerCoreResult;
|
|
1407
|
+
|
|
1408
|
+
interface UsePdfViewerStateOptions extends UsePdfViewerCoreOptions {
|
|
1409
|
+
/** Whether the sidebar is initially open (default false) */
|
|
1410
|
+
initialSidebarOpen?: boolean;
|
|
1411
|
+
/** Which sidebar panel to show (default "thumbnails") */
|
|
1412
|
+
sidebarMode?: SidebarMode;
|
|
1413
|
+
/** Callback fired when a download completes or fails */
|
|
1414
|
+
onDownload?: (result: PdfDownloadResult) => void;
|
|
1415
|
+
}
|
|
1416
|
+
interface UsePdfViewerStateResult extends UsePdfViewerCoreResult {
|
|
1417
|
+
/** Zoom in by one step */
|
|
1418
|
+
zoomIn: () => void;
|
|
1419
|
+
/** Zoom out by one step */
|
|
1420
|
+
zoomOut: () => void;
|
|
1421
|
+
/** Current rotation in degrees (0, 90, 180, 270) */
|
|
1422
|
+
rotation: number;
|
|
1423
|
+
/** Rotate 90 degrees counter-clockwise */
|
|
1424
|
+
rotateLeft: () => void;
|
|
1425
|
+
/** Rotate 90 degrees clockwise */
|
|
1426
|
+
rotateRight: () => void;
|
|
1427
|
+
/** Whether the sidebar panel is open */
|
|
1428
|
+
sidebarOpen: boolean;
|
|
1429
|
+
/** Which sidebar panel is active */
|
|
1430
|
+
sidebarMode: SidebarMode;
|
|
1431
|
+
/** Change the active sidebar panel */
|
|
1432
|
+
setSidebarMode: (mode: SidebarMode) => void;
|
|
1433
|
+
/** Toggle sidebar open/closed */
|
|
1434
|
+
toggleSidebar: () => void;
|
|
1435
|
+
/** Search state and actions */
|
|
1436
|
+
search: UsePdfViewerSearchResult;
|
|
1437
|
+
/** Document outline items (from bookmarks or text extraction) */
|
|
1438
|
+
outlineItems: ReturnType<typeof usePdfOutline>;
|
|
1439
|
+
/** Download the PDF as a file */
|
|
1440
|
+
download: (filename?: string) => void;
|
|
1441
|
+
}
|
|
1442
|
+
declare function usePdfViewerState({ src, initialPage, initialScale, initialSidebarOpen, sidebarMode: sidebarModeProp, onDownload, }: UsePdfViewerStateOptions): UsePdfViewerStateResult;
|
|
1443
|
+
|
|
1444
|
+
interface PdfViewerMediaProps extends Omit<PdfViewerProps, "src"> {
|
|
1445
|
+
/** The Media object to fetch PDF contents from */
|
|
1446
|
+
media: Media;
|
|
1447
|
+
}
|
|
1448
|
+
declare function PdfViewer({ media, className, ...pdfViewerProps }: PdfViewerMediaProps): React__default.ReactElement;
|
|
1449
|
+
|
|
1450
|
+
/**
|
|
1451
|
+
* A form field definition specifies configuration for a single field
|
|
1452
|
+
*/
|
|
1453
|
+
interface FormFieldDefinition<Q extends ActionDefinition<unknown>, K extends FieldKey<Q> = FieldKey<Q>> {
|
|
1454
|
+
/**
|
|
1455
|
+
* The field's unique key
|
|
1456
|
+
*/
|
|
1457
|
+
fieldKey: K;
|
|
1458
|
+
/**
|
|
1459
|
+
* Display label for the field
|
|
1460
|
+
*/
|
|
1461
|
+
label: string;
|
|
1462
|
+
/**
|
|
1463
|
+
* Default value of the field
|
|
1464
|
+
*/
|
|
1465
|
+
defaultValue?: FieldValueType<Q, K>;
|
|
1466
|
+
/**
|
|
1467
|
+
* The form field component type to render
|
|
1468
|
+
*/
|
|
1469
|
+
fieldComponent: ValidFormFieldForPropertyType<FieldDescriptorType<Q, K>>;
|
|
1470
|
+
/**
|
|
1471
|
+
* Whether the field is required
|
|
1472
|
+
*/
|
|
1473
|
+
isRequired?: boolean;
|
|
1474
|
+
/**
|
|
1475
|
+
* Placeholder text
|
|
1476
|
+
*/
|
|
1477
|
+
placeholder?: string;
|
|
1478
|
+
/**
|
|
1479
|
+
* Additional information to display on this field
|
|
1480
|
+
* The placement of helper text depends on the value of helperTextPlacement prop
|
|
1481
|
+
*/
|
|
1482
|
+
helperText?: string;
|
|
1483
|
+
/**
|
|
1484
|
+
* The placement of the helper text either below the field or in a tooltip
|
|
1485
|
+
*
|
|
1486
|
+
* @default "tooltip"
|
|
1487
|
+
*/
|
|
1488
|
+
helperTextPlacement?: "bottom" | "tooltip";
|
|
1489
|
+
/**
|
|
1490
|
+
* Whether the field is disabled
|
|
1491
|
+
*/
|
|
1492
|
+
isDisabled?: boolean;
|
|
1493
|
+
/**
|
|
1494
|
+
* A callback to return a custom error message if validation failed
|
|
1495
|
+
*
|
|
1496
|
+
* @param validationRule the validation rule that failed with the error message
|
|
1497
|
+
* @returns the error message to display
|
|
1498
|
+
*/
|
|
1499
|
+
onValidationError?: (error: ValidationError) => string;
|
|
1500
|
+
/**
|
|
1501
|
+
* Additional function to validate the field
|
|
1502
|
+
*
|
|
1503
|
+
* @param value the current field value
|
|
1504
|
+
* @returns a boolean promise indicating whether the value is valid
|
|
1505
|
+
*/
|
|
1506
|
+
validate?: (value: FieldValueType<Q, K>) => Promise<boolean>;
|
|
1507
|
+
/**
|
|
1508
|
+
* The component props for the form field
|
|
1509
|
+
* Excludes runtime props (value, onChange) which are managed by ActionForm
|
|
1510
|
+
*/
|
|
1511
|
+
fieldComponentProps: Omit<FormFieldPropsByType[ValidFormFieldForPropertyType<FieldDescriptorType<Q, K>>], "value" | "onChange">;
|
|
1512
|
+
}
|
|
1513
|
+
type ValidationError = {
|
|
1514
|
+
type: ValidationRule;
|
|
1515
|
+
error: string;
|
|
1516
|
+
};
|
|
1517
|
+
type ValidationRule = "required" | "min" | "max" | "minLength" | "maxLength" | "pattern" | "validate";
|
|
1518
|
+
/**
|
|
1519
|
+
* Maps field types to their corresponding props
|
|
1520
|
+
*/
|
|
1521
|
+
interface FormFieldPropsByType {
|
|
1522
|
+
DATETIME_PICKER: DatetimePickerFieldProps;
|
|
1523
|
+
DROPDOWN: DropdownFieldProps<unknown, boolean>;
|
|
1524
|
+
FILE_PICKER: FilePickerProps;
|
|
1525
|
+
NUMBER_INPUT: NumberInputFieldProps;
|
|
1526
|
+
OBJECT_SET: ObjectSetFieldProps<ObjectTypeDefinition>;
|
|
1527
|
+
RADIO_BUTTONS: RadioButtonsFieldProps<unknown>;
|
|
1528
|
+
TEXT_AREA: TextAreaFieldProps;
|
|
1529
|
+
TEXT_INPUT: TextInputFieldProps;
|
|
1530
|
+
CUSTOM: CustomFieldProps<unknown>;
|
|
1531
|
+
}
|
|
1532
|
+
/**
|
|
1533
|
+
* Datetime picker field props.
|
|
1534
|
+
*
|
|
1535
|
+
* When `formatDate` is omitted, ISO-like format is used (YYYY-MM-DD / YYYY-MM-DD HH:mm).
|
|
1536
|
+
*/
|
|
1537
|
+
interface DatetimePickerFieldProps extends BaseFormFieldProps<Date> {
|
|
1538
|
+
/**
|
|
1539
|
+
* The earliest date the user can select.
|
|
1540
|
+
* If provided, this will be added to the field validation.
|
|
1541
|
+
*/
|
|
1542
|
+
min?: Date;
|
|
1543
|
+
/**
|
|
1544
|
+
* The latest date the user can select.
|
|
1545
|
+
* If provided, this will be added to the field validation.
|
|
1546
|
+
*/
|
|
1547
|
+
max?: Date;
|
|
1548
|
+
/**
|
|
1549
|
+
* Whether to show time picker.
|
|
1550
|
+
*/
|
|
1551
|
+
showTime?: boolean;
|
|
1552
|
+
/**
|
|
1553
|
+
* Whether to close the popover after selecting a date.
|
|
1554
|
+
* @default true when `showTime` is false, false when `showTime` is true
|
|
1555
|
+
*/
|
|
1556
|
+
closeOnSelection?: boolean;
|
|
1557
|
+
/**
|
|
1558
|
+
* Placeholder text shown when no value is selected.
|
|
1559
|
+
*/
|
|
1560
|
+
placeholder?: string;
|
|
1561
|
+
/** Formats a Date for display in the trigger button. */
|
|
1562
|
+
formatDate?: (date: Date) => string;
|
|
1563
|
+
}
|
|
1564
|
+
/**
|
|
1565
|
+
* Dropdown field props with selectable items
|
|
1566
|
+
*/
|
|
1567
|
+
interface DropdownFieldProps<V, Multiple extends boolean = false> extends BaseFormFieldProps<Multiple extends true ? V[] : V> {
|
|
1568
|
+
/**
|
|
1569
|
+
* Available items for the dropdown
|
|
1570
|
+
*/
|
|
1571
|
+
items: V[];
|
|
1572
|
+
/**
|
|
1573
|
+
* Converts an item to a display string. Defaults to `String()`.
|
|
1574
|
+
*/
|
|
1575
|
+
itemToStringLabel?: (item: V) => string;
|
|
1576
|
+
/**
|
|
1577
|
+
* Returns a unique string key for a list item. Used as the React `key`.
|
|
1578
|
+
* Falls back to the item's index when not provided.
|
|
1579
|
+
*/
|
|
1580
|
+
itemToKey?: (item: V) => string;
|
|
1581
|
+
/**
|
|
1582
|
+
* Custom equality check for item values. Defaults to `Object.is`.
|
|
1583
|
+
* Required when items are objects to ensure correct selection matching.
|
|
1584
|
+
*/
|
|
1585
|
+
isItemEqual?: (a: V, b: V) => boolean;
|
|
1586
|
+
/**
|
|
1587
|
+
* Whether the dropdown allows searching/filtering.
|
|
1588
|
+
* When true, renders a Combobox with a search input.
|
|
1589
|
+
* When false (default), renders a Select dropdown.
|
|
1590
|
+
*/
|
|
1591
|
+
isSearchable?: boolean;
|
|
1592
|
+
/**
|
|
1593
|
+
* Placeholder text shown when no value is selected.
|
|
1594
|
+
*/
|
|
1595
|
+
placeholder?: string;
|
|
1596
|
+
/**
|
|
1597
|
+
* Whether multiple values can be selected
|
|
1598
|
+
*/
|
|
1599
|
+
isMultiple?: Multiple;
|
|
1600
|
+
}
|
|
1601
|
+
interface FilePickerProps extends BaseFormFieldProps<File | File[]> {
|
|
1602
|
+
/**
|
|
1603
|
+
* Whether multiple files can be selected
|
|
1604
|
+
*/
|
|
1605
|
+
isMulti?: boolean;
|
|
1606
|
+
/**
|
|
1607
|
+
* Accepted file types (e.g., "image/*", ".pdf")
|
|
1608
|
+
*/
|
|
1609
|
+
accept?: string | string[];
|
|
1610
|
+
/**
|
|
1611
|
+
* Maximum file size in bytes
|
|
1612
|
+
*/
|
|
1613
|
+
maxSize?: number;
|
|
1614
|
+
/**
|
|
1615
|
+
* The text displayed when no file is selected.
|
|
1616
|
+
*
|
|
1617
|
+
* @default "No file chosen"
|
|
1618
|
+
*/
|
|
1619
|
+
text?: string;
|
|
1620
|
+
/**
|
|
1621
|
+
* The text displayed on the browse button.
|
|
1622
|
+
*
|
|
1623
|
+
* @default "Browse"
|
|
1624
|
+
*/
|
|
1625
|
+
buttonText?: string;
|
|
1626
|
+
}
|
|
1627
|
+
/**
|
|
1628
|
+
* Text area field props
|
|
1629
|
+
*/
|
|
1630
|
+
interface TextAreaFieldProps extends BaseFormFieldProps<string>, Pick<React__default.TextareaHTMLAttributes<HTMLTextAreaElement>, "rows" | "wrap"
|
|
1631
|
+
/**
|
|
1632
|
+
* If provided, this will be added to the field validation
|
|
1633
|
+
*/
|
|
1634
|
+
| "minLength"
|
|
1635
|
+
/**
|
|
1636
|
+
* If provided, this will be added to the field validation
|
|
1637
|
+
*/
|
|
1638
|
+
| "maxLength"> {
|
|
1639
|
+
placeholder?: string;
|
|
1640
|
+
}
|
|
1641
|
+
interface TextInputFieldProps extends BaseFormFieldProps<string>, Pick<React__default.InputHTMLAttributes<HTMLInputElement>,
|
|
1642
|
+
/**
|
|
1643
|
+
* If provided, this will be added to the field validation
|
|
1644
|
+
*/
|
|
1645
|
+
"minLength"
|
|
1646
|
+
/**
|
|
1647
|
+
* If provided, this will be added to the field validation
|
|
1648
|
+
*/
|
|
1649
|
+
| "maxLength"> {
|
|
1650
|
+
placeholder?: string;
|
|
1651
|
+
}
|
|
1652
|
+
/**
|
|
1653
|
+
* Number input field props
|
|
1654
|
+
*/
|
|
1655
|
+
interface NumberInputFieldProps extends BaseFormFieldProps<number> {
|
|
1656
|
+
/**
|
|
1657
|
+
* Minimum allowed value.
|
|
1658
|
+
*/
|
|
1659
|
+
min?: number;
|
|
1660
|
+
/**
|
|
1661
|
+
* Maximum allowed value.
|
|
1662
|
+
*/
|
|
1663
|
+
max?: number;
|
|
1664
|
+
/**
|
|
1665
|
+
* Step increment for the input. Used by the stepper buttons and ArrowUp/ArrowDown keyboard stepping.
|
|
1666
|
+
*
|
|
1667
|
+
* @default 1
|
|
1668
|
+
*/
|
|
1669
|
+
step?: number;
|
|
1670
|
+
/**
|
|
1671
|
+
* Placeholder text shown when the input is empty.
|
|
1672
|
+
*/
|
|
1673
|
+
placeholder?: string;
|
|
1674
|
+
}
|
|
1675
|
+
/**
|
|
1676
|
+
* Radio buttons field props
|
|
1677
|
+
*/
|
|
1678
|
+
interface RadioButtonsFieldProps<V> extends BaseFormFieldProps<V> {
|
|
1679
|
+
/**
|
|
1680
|
+
* Available options for radio buttons.
|
|
1681
|
+
*
|
|
1682
|
+
* Values are compared by reference equality (`===`). When options contain
|
|
1683
|
+
* non-primitive values, pass the same object references for `value` and
|
|
1684
|
+
* the corresponding option entry.
|
|
1685
|
+
*/
|
|
1686
|
+
options: Option<V>[];
|
|
1687
|
+
}
|
|
1688
|
+
/**
|
|
1689
|
+
* Option interface for radio button options
|
|
1690
|
+
*/
|
|
1691
|
+
interface Option<V> {
|
|
1692
|
+
label: string;
|
|
1693
|
+
value: V;
|
|
1694
|
+
}
|
|
1695
|
+
/**
|
|
1696
|
+
* Object set field displays the summary of the count of the given object set
|
|
1697
|
+
*/
|
|
1698
|
+
interface ObjectSetFieldProps<T extends ObjectTypeDefinition> extends BaseFormFieldProps<ObjectSet<T>> {
|
|
1699
|
+
}
|
|
1700
|
+
/**
|
|
1701
|
+
* Custom field props for user-defined renderers
|
|
1702
|
+
*/
|
|
1703
|
+
interface CustomFieldProps<V> extends BaseFormFieldProps<V> {
|
|
1704
|
+
/**
|
|
1705
|
+
* Custom renderer function
|
|
1706
|
+
*/
|
|
1707
|
+
customRenderer: (props: BaseFormFieldProps<V>) => React__default.ReactNode;
|
|
1708
|
+
}
|
|
1709
|
+
interface BaseFormFieldProps<V> {
|
|
1710
|
+
/**
|
|
1711
|
+
* The HTML `id` attribute for the field input element.
|
|
1712
|
+
* Used for `<label htmlFor>` association.
|
|
1713
|
+
*/
|
|
1714
|
+
id?: string;
|
|
1715
|
+
/**
|
|
1716
|
+
* The value of the form field
|
|
1717
|
+
*/
|
|
1718
|
+
value: V | null;
|
|
1719
|
+
/**
|
|
1720
|
+
* Called when the field value changes.
|
|
1721
|
+
*
|
|
1722
|
+
* ActionForm internally wraps this to pass the key to `onFieldValueChange`:
|
|
1723
|
+
* ```
|
|
1724
|
+
* <DropdownField
|
|
1725
|
+
* {...fieldDef}
|
|
1726
|
+
* onChange={(value) => onFieldValueChange(fieldDef.key, value)}
|
|
1727
|
+
* />
|
|
1728
|
+
* ```
|
|
1729
|
+
*
|
|
1730
|
+
* @param value The new value of the form field
|
|
1731
|
+
*/
|
|
1732
|
+
onChange?: (value: V | null) => void;
|
|
1733
|
+
}
|
|
1734
|
+
type FieldKey<Q extends ActionDefinition<unknown>> = keyof ActionParameters<Q>;
|
|
1735
|
+
/**
|
|
1736
|
+
* Extracts parameters from an ActionDefinition
|
|
1737
|
+
*/
|
|
1738
|
+
type ActionParameters<Q extends ActionDefinition<unknown>> = CompileTimeMetadata<Q>["parameters"];
|
|
1739
|
+
/**
|
|
1740
|
+
* Extracts the value type for a specific parameter
|
|
1741
|
+
*
|
|
1742
|
+
* TODO: Re-use `BaseType`
|
|
1743
|
+
*/
|
|
1744
|
+
type FieldValueType<Q extends ActionDefinition<unknown>, K extends keyof ActionParameters<Q> = keyof ActionParameters<Q>> = ActionParameters<Q>[K]["type"] extends ActionMetadata.DataType.Object<infer T> ? ActionParam.ObjectType<T> : ActionParameters<Q>[K]["type"] extends ActionMetadata.DataType.ObjectSet<infer T> ? ActionParam.ObjectSetType<T> : ActionParameters<Q>[K]["type"] extends ActionMetadata.DataType.Struct<infer T> ? ActionParam.StructType<T> : ActionParameters<Q>[K]["type"] extends keyof DataValueClientToWire ? DataValueClientToWire[ActionParameters<Q>[K]["type"]] : never;
|
|
1745
|
+
/**
|
|
1746
|
+
* Extracts the parameter type descriptor for a specific action parameter.
|
|
1747
|
+
*/
|
|
1748
|
+
type FieldDescriptorType<Q extends ActionDefinition<unknown> = ActionDefinition<unknown>, K extends keyof ActionParameters<Q> = keyof ActionParameters<Q>> = ActionParameters<Q>[K]["type"];
|
|
1749
|
+
/**
|
|
1750
|
+
* Available form field component types
|
|
1751
|
+
*/
|
|
1752
|
+
type FieldComponent = "DATETIME_PICKER" | "DROPDOWN" | "FILE_PICKER" | "NUMBER_INPUT" | "RADIO_BUTTONS" | "OBJECT_SET" | "TEXT_AREA" | "TEXT_INPUT" | "CUSTOM";
|
|
1753
|
+
/**
|
|
1754
|
+
* Describes the data type of a form field, independent of OSDK.
|
|
1755
|
+
* Mirrors ActionMetadata.DataType to keep the rendering layer OSDK-agnostic.
|
|
1756
|
+
*/
|
|
1757
|
+
type FieldType = "boolean" | "string" | "integer" | "long" | "double" | "datetime" | "timestamp" | "attachment" | "marking" | "mediaReference" | "objectType" | "geoshape" | "geohash" | {
|
|
1758
|
+
type: "object";
|
|
1759
|
+
object: string;
|
|
1760
|
+
} | {
|
|
1761
|
+
type: "objectSet";
|
|
1762
|
+
objectSet: string;
|
|
1763
|
+
} | {
|
|
1764
|
+
type: "interface";
|
|
1765
|
+
interface: string;
|
|
1766
|
+
} | {
|
|
1767
|
+
type: "struct";
|
|
1768
|
+
struct: Record<string, string>;
|
|
1769
|
+
};
|
|
1770
|
+
/**
|
|
1771
|
+
* An OSDK-agnostic field definition used by BaseForm and FormFieldRenderer.
|
|
1772
|
+
* Contains only the information needed to render a single field — no generics,
|
|
1773
|
+
* no compile-time parameter constraints.
|
|
1774
|
+
*
|
|
1775
|
+
* Implemented as a distributed mapped type: switching on `fieldComponent`
|
|
1776
|
+
* narrows `fieldComponentProps` to the correct props type automatically.
|
|
1777
|
+
*/
|
|
1778
|
+
type RendererFieldDefinition = {
|
|
1779
|
+
[K in FieldComponent]: {
|
|
1780
|
+
fieldKey: string;
|
|
1781
|
+
fieldComponent: K;
|
|
1782
|
+
fieldType?: FieldType;
|
|
1783
|
+
label: string;
|
|
1784
|
+
defaultValue?: unknown;
|
|
1785
|
+
isRequired?: boolean;
|
|
1786
|
+
placeholder?: string;
|
|
1787
|
+
helperText?: string;
|
|
1788
|
+
helperTextPlacement?: "bottom" | "tooltip";
|
|
1789
|
+
fieldComponentProps: Omit<FormFieldPropsByType[K], "value" | "onChange">;
|
|
1790
|
+
};
|
|
1791
|
+
}[FieldComponent];
|
|
1792
|
+
/**
|
|
1793
|
+
* Gets valid form field types for a given property type
|
|
1794
|
+
*/
|
|
1795
|
+
type ValidFormFieldForPropertyType<P extends FieldDescriptorType> = P extends "objectSet" ? "OBJECT_SET" : P extends "object" ? "DROPDOWN" : P extends "mediaReference" | "attachment" ? "FILE_PICKER" : P extends "boolean" ? "RADIO_BUTTONS" | "DROPDOWN" : P extends "string" ? "TEXT_INPUT" | "TEXT_AREA" : P extends "datetime" | "timestamp" ? "DATETIME_PICKER" : P extends "double" | "integer" | "long" | "float" | "short" | "byte" | "decimal" ? "NUMBER_INPUT" : never;
|
|
1796
|
+
|
|
1797
|
+
/**
|
|
1798
|
+
* Props for the ActionForm component.
|
|
1799
|
+
*
|
|
1800
|
+
* A discriminated union ensures that controlled mode (formState provided)
|
|
1801
|
+
* always requires onFormStateChange, and uncontrolled mode makes `onFormStateChange` optional
|
|
1802
|
+
*/
|
|
1803
|
+
type ActionFormProps<Q extends ActionDefinition<unknown>> = (ActionFormConfigProps<Q> & {
|
|
1804
|
+
formState: FormState<Q>;
|
|
1805
|
+
onFormStateChange: (updater: (prevState: FormState<Q>) => FormState<Q>) => void;
|
|
1806
|
+
}) | (ActionFormConfigProps<Q> & {
|
|
1807
|
+
formState?: undefined;
|
|
1808
|
+
onFormStateChange?: (updater: (prevState: FormState<Q>) => FormState<Q>) => void;
|
|
1809
|
+
});
|
|
1810
|
+
interface ActionFormConfigProps<Q extends ActionDefinition<unknown>> extends Pick<BaseFormProps, "formTitle" | "isSubmitDisabled"> {
|
|
1811
|
+
actionDefinition: Q;
|
|
1812
|
+
/**
|
|
1813
|
+
* If not supplied, field definitions are constructed from `ActionParameters`.
|
|
1814
|
+
*/
|
|
1815
|
+
formFieldDefinitions?: ReadonlyArray<FormFieldDefinition<Q>>;
|
|
1816
|
+
/**
|
|
1817
|
+
* If supplied, this will override the default submit action
|
|
1818
|
+
* By default, the action's applyAction will be called
|
|
1819
|
+
*
|
|
1820
|
+
* @param formState all field values when onSubmit is called
|
|
1821
|
+
* @param applyAction the function to execute the action
|
|
1822
|
+
* @returns a promise of the submission response
|
|
1823
|
+
*/
|
|
1824
|
+
onSubmit?: (formState: FormState<Q>, applyAction: (args: ActionParameters<Q>) => Promise<ActionEditResponse | undefined>) => Promise<unknown> | void;
|
|
1825
|
+
/**
|
|
1826
|
+
* Called when the validation response is returned from a validateOnly submission
|
|
1827
|
+
*
|
|
1828
|
+
* @param results the validation response
|
|
1829
|
+
*/
|
|
1830
|
+
onValidationResponse?: (results: ActionValidationResponse) => void;
|
|
1831
|
+
/**
|
|
1832
|
+
* Called when the action is successfully executed from a non-validateOnly submission
|
|
1833
|
+
*
|
|
1834
|
+
* @param results the submission response
|
|
1835
|
+
*/
|
|
1836
|
+
onSuccess?: (results: ActionEditResponse | undefined) => void;
|
|
1837
|
+
/**
|
|
1838
|
+
* Called when there is an error in form submission
|
|
1839
|
+
*
|
|
1840
|
+
* @param error the error that occurred
|
|
1841
|
+
*/
|
|
1842
|
+
onError?: (error: FormError) => void;
|
|
1843
|
+
}
|
|
1844
|
+
/**
|
|
1845
|
+
* Form values mapping parameter names to their values
|
|
1846
|
+
*/
|
|
1847
|
+
type FormState<Q extends ActionDefinition<unknown>> = {
|
|
1848
|
+
[K in FieldKey<Q>]?: FieldValueType<Q, K>;
|
|
1849
|
+
};
|
|
1850
|
+
/**
|
|
1851
|
+
* Form error discriminated union
|
|
1852
|
+
*/
|
|
1853
|
+
type FormError = {
|
|
1854
|
+
type: "validation";
|
|
1855
|
+
error: ActionValidationError;
|
|
1856
|
+
} | {
|
|
1857
|
+
type: "submission";
|
|
1858
|
+
error: unknown;
|
|
1859
|
+
} | {
|
|
1860
|
+
type: "unknown";
|
|
1861
|
+
error: unknown;
|
|
1862
|
+
};
|
|
1863
|
+
/**
|
|
1864
|
+
* Props for the `BaseForm` component, which renders a form without
|
|
1865
|
+
* OSDK data fetching.
|
|
1866
|
+
*
|
|
1867
|
+
* Uses a discriminated union so that controlled mode (`formState` provided)
|
|
1868
|
+
* always requires `onFieldValueChange`, and uncontrolled mode omits both.
|
|
1869
|
+
* `onSubmit` receives the current form state so callers can access values
|
|
1870
|
+
* even in uncontrolled mode.
|
|
1871
|
+
*/
|
|
1872
|
+
type BaseFormProps = BaseFormCommonProps & ({
|
|
1873
|
+
formState: Record<string, unknown>;
|
|
1874
|
+
onFieldValueChange: (fieldKey: string, value: unknown) => void;
|
|
1875
|
+
} | {
|
|
1876
|
+
formState?: undefined;
|
|
1877
|
+
onFieldValueChange?: (fieldKey: string, value: unknown) => void;
|
|
1878
|
+
});
|
|
1879
|
+
interface BaseFormCommonProps {
|
|
1880
|
+
formTitle?: string;
|
|
1881
|
+
fieldDefinitions: ReadonlyArray<RendererFieldDefinition>;
|
|
1882
|
+
onSubmit: (formState: Record<string, unknown>) => void;
|
|
1883
|
+
isSubmitDisabled?: boolean;
|
|
1884
|
+
isPending?: boolean;
|
|
1885
|
+
isLoading?: boolean;
|
|
1886
|
+
className?: string;
|
|
1887
|
+
}
|
|
1888
|
+
|
|
1889
|
+
declare const ActionForm: <Q extends ActionDefinition<unknown>>(props: ActionFormProps<Q>) => React__default.ReactElement;
|
|
1890
|
+
|
|
1891
|
+
declare const BaseForm: React__default.FC<BaseFormProps>;
|
|
1892
|
+
|
|
1893
|
+
export { ActionForm, type ActionFormProps, type ActionParameters, type AnnotationPortalTarget, type AnnotationType, BaseFilterList, type BaseFilterListProps, BaseForm, type BaseFormFieldProps, type BaseFormProps, BasePdfViewer, BaseTable, type BaseTableProps, type CellEditInfo, ColumnConfigDialog, type ColumnConfigDialogProps, type ColumnConfigOptions, type ColumnDefinition, type ColumnDefinitionLocator, type CustomColumnLocator, type CustomFieldProps, type DatetimePickerFieldProps, type DropdownFieldProps, type FieldComponent, type FieldValueType, type FilePickerProps, type FilterComponentType, type FilterDefinitionUnion, FilterList, type FilterListItemProps, type FilterListProps, type FilterState, type FormError, type FormFieldDefinition, type FormFieldPropsByType, type FormState, type FunctionColumnLocator, type NumberInputFieldProps, type ObjectSetFieldProps, ObjectTable, type ObjectTableProps, type Option, type OutlineItem, type PdfAnnotation, type PdfAnnotationRenderProps, type PdfCustomAnnotation, type PdfDownloadResult, type PdfFormFieldValue, type PdfRect, type PdfTextHighlightEvent, PdfViewer, PdfViewerAnnotationLayer, type PdfViewerAnnotationLayerProps, PdfViewerContent, type PdfViewerContentProps, type PdfViewerContextValue, type PdfViewerHandle, type PdfViewerInstanceOptions, type PdfViewerMediaProps, PdfViewerOutlineSidebar, type PdfViewerOutlineSidebarProps, type PdfViewerProps, PdfViewerProvider, PdfViewerSearchBar, type PdfViewerSearchBarProps, PdfViewerSidebar, type PdfViewerSidebarProps, PdfViewerToolbar, type PdfViewerToolbarProps, type PropertyColumnLocator, type PropertyFilterDefinition, type RadioButtonsFieldProps, type RdpColumnLocator, type RenderFilterInput, type RendererFieldDefinition, type SidebarMode, type TextAreaFieldProps, type TextInputFieldProps, type UsePdfFormFieldsOptions, type UsePdfFormFieldsResult, type UsePdfHighlightModeOptions, type UsePdfHighlightModeResult, type UsePdfViewerCoreOptions, type UsePdfViewerCoreResult, type UsePdfViewerResult, type UsePdfViewerSearchResult, type UsePdfViewerStateOptions, type UsePdfViewerStateResult, deserializeFilterStates, serializeFilterStates, usePdfAnnotationPortals, usePdfAnnotationsByPage, usePdfDocument, usePdfFormFields, usePdfHighlightMode, usePdfOutline, usePdfViewer, usePdfViewerContext, usePdfViewerCore, usePdfViewerInstance, usePdfViewerSearch, usePdfViewerState, usePdfViewerSync };
|