@wix/patterns 1.475.0 → 1.477.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
- package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
- package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.js +5 -4
- package/dist/cjs/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
- package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.js +9 -5
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
- package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
- package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
- package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
- package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
- package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
- package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
- package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +6 -6
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/cjs/components/common.st.css.js +4 -4
- package/dist/cjs/components/common.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
- package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
- package/dist/cjs/state/EntityPage/EntityPageState.js +2 -1
- package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/cjs/styles.global.css +2 -2
- package/dist/cjs/test-utils/index.js +6 -0
- package/dist/cjs/test-utils/index.js.map +1 -1
- package/dist/cjs/test-utils/scrollUntilRendered.js +45 -0
- package/dist/cjs/test-utils/scrollUntilRendered.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/Collection Toolkit.md +16 -1
- package/dist/docs/Collection to Entity Flow.md +8 -1
- package/dist/docs/Composition and Providers.md +16 -1
- package/dist/docs/CustomFieldType.md +10 -1
- package/dist/docs/ImportButton.md +5 -24
- package/dist/docs/Reading the Doc Indices.md +21 -0
- package/dist/docs/index.json +62 -6
- package/dist/docs/useSchemaSource.md +22 -82
- package/dist/dts-bundle/components/EditableTable.d.ts +551 -0
- package/dist/dts-bundle/components/EntityPageFieldsCard.d.ts +100 -0
- package/dist/dts-bundle/components/LayoutSwitch.d.ts +931 -0
- package/dist/dts-bundle/components/schema/EntityPage.d.ts +317 -0
- package/dist/dts-bundle/components/schema/Grid.d.ts +467 -0
- package/dist/dts-bundle/components/schema/Table.d.ts +360 -0
- package/dist/dts-bundle/exports/core.d.ts +1 -0
- package/dist/dts-bundle/exports/essentials.d.ts +0 -1
- package/dist/dts-bundle/exports/giza.d.ts +0 -1
- package/dist/dts-bundle/exports/index.d.ts +1 -2
- package/dist/dts-bundle/exports/schema.d.ts +14 -7
- package/dist/dts-bundle/functions/listCmsCollections.d.ts +12 -0
- package/dist/dts-bundle/hooks/schema/useCollection.d.ts +341 -0
- package/dist/dts-bundle/hooks/schema/useEntityPage.d.ts +244 -0
- package/dist/dts-bundle/hooks/schema/useGridCollection.d.ts +338 -0
- package/dist/dts-bundle/hooks/schema/useTableCollection.d.ts +338 -0
- package/dist/dts-bundle/hooks/useCmsSchemaSource.d.ts +439 -0
- package/dist/dts-bundle/hooks/useEditableTableCollection.d.ts +422 -0
- package/dist/dts-bundle/hooks/useLayoutSwitchCollection.d.ts +414 -0
- package/dist/dts-bundle/hooks/useSchemaSource.d.ts +59 -0
- package/dist/dts-bundle/index.json +328 -18
- package/dist/dts-bundle/index.txt +23 -2
- package/dist/dts-bundle/types/CellType.d.ts +839 -0
- package/dist/dts-bundle/types/CmsCollectionSummary.d.ts +9 -0
- package/dist/dts-bundle/types/EntityPageState.d.ts +1 -1
- package/dist/dts-bundle/types/SchemaSource.d.ts +8 -48
- package/dist/dts-bundle/types/SchemaSourceInput.d.ts +814 -0
- package/dist/dts-bundle/types/UseCmsSchemaSourceDeps.d.ts +919 -0
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
- package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/EditableTable/EditableCell.js +1 -1
- package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
- package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.js +4 -1
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
- package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
- package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
- package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
- package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
- package/dist/esm/state/EntityPage/EntityPageState.js +2 -0
- package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/esm/styles.global.css +2 -2
- package/dist/esm/test-utils/index.js +1 -0
- package/dist/esm/test-utils/index.js.map +1 -1
- package/dist/esm/test-utils/scrollUntilRendered.js +32 -0
- package/dist/esm/test-utils/scrollUntilRendered.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/examples/useSchemaSource/cms-collection.tsx +1 -1
- package/dist/examples/useSchemaSource/extra-columns-and-data.tsx +1 -1
- package/dist/types/components/CmsFieldManagement/CmsFieldForm.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/array/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/datetime/View.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/number/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/text/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/time/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EmptyState/EmptyStateBase.st.css.d.ts.map +1 -1
- package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
- package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
- package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -1
- package/dist/types/components/Table/AddFieldColumnHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
- package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/TitleBadges.st.css.d.ts.map +1 -1
- package/dist/types/state/EntityPage/EntityPageState.d.ts +1 -1
- package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
- package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/test-utils/index.d.ts +1 -0
- package/dist/types/test-utils/index.d.ts.map +1 -1
- package/dist/types/test-utils/scrollUntilRendered.d.ts +24 -0
- package/dist/types/test-utils/scrollUntilRendered.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +8 -8
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
- package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.tsx +1 -0
- package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/datetime/View.tsx +4 -0
- package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
- package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
- package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
- package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
- package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
- package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
- package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
- package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
- package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
- package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
- package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
- package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
- package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
- package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
- package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
- package/src/components/common.st.css.ts +2 -2
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
- package/src/state/EntityPage/EntityPageState.ts +2 -1
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/styles.global.css +2 -2
- package/src/test-utils/index.ts +1 -0
- package/src/test-utils/scrollUntilRendered.ts +98 -0
- package/src/version.ts +1 -1
- package/dist/examples/ImportButton/platformized-import-from-a-source.tsx +0 -56
- package/dist/examples/useSchemaSource/your-own-source.tsx +0 -173
- /package/dist/examples/ImportButton/{platformized-import-fields-inline.tsx → platformized-import.tsx} +0 -0
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
interface ExtendedFieldsDataMap {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
}
|
|
4
|
+
interface ExtendedFields {
|
|
5
|
+
_type?: 'ExtendedFields';
|
|
6
|
+
/**
|
|
7
|
+
* Data Extensions extended fields
|
|
8
|
+
* Key: Namespace
|
|
9
|
+
* Value: extended fields data in Struct format
|
|
10
|
+
*/
|
|
11
|
+
namespaces?: {
|
|
12
|
+
_user_fields?: ExtendedFieldsDataMap | undefined;
|
|
13
|
+
[key: string]: ExtendedFieldsDataMap | undefined;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* `OffsetQuery` — cut here because it has its own bundle.
|
|
19
|
+
* Full shape: `types/OffsetQuery.d.ts`.
|
|
20
|
+
*/
|
|
21
|
+
type OffsetQuery<F = any> = Omit<ComputedQuery<F>, 'cursor'>;
|
|
22
|
+
type OffsetQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'>;
|
|
23
|
+
type OffsetFetchDataFn<T, F extends FiltersMap> = (query: OffsetQuery<F>) => Promise<OffsetQueryResult<T>>;
|
|
24
|
+
type CursorQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'> & {
|
|
25
|
+
cursor: string | undefined | null;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* `CursorQuery` — cut here because it has its own bundle.
|
|
29
|
+
* Full shape: `types/CursorQuery.d.ts`.
|
|
30
|
+
*/
|
|
31
|
+
type CursorQuery<F = any> = Omit<ComputedQuery<F>, 'offset'>;
|
|
32
|
+
type CursorFetchDataFn<T, F extends FiltersMap> = (query: CursorQuery<F>) => Promise<CursorQueryResult<T>>;
|
|
33
|
+
type FetchTotalFn = (query: CursorQuery) => Promise<number>;
|
|
34
|
+
type PaginationModeConfig<T, F extends FiltersMap> = {
|
|
35
|
+
paginationMode?: 'offset';
|
|
36
|
+
fetchData: OffsetFetchDataFn<T, F>;
|
|
37
|
+
} | {
|
|
38
|
+
paginationMode: 'cursor';
|
|
39
|
+
fetchTotal?: FetchTotalFn;
|
|
40
|
+
fetchData: CursorFetchDataFn<T, F>;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/** The resolved source: defaults filled, `loadSchema` memoized. */
|
|
44
|
+
/**
|
|
45
|
+
* `SchemaSource` — cut here because it has its own bundle.
|
|
46
|
+
* Full shape: `types/SchemaSource.d.ts`.
|
|
47
|
+
*/
|
|
48
|
+
interface SchemaSource<T = any> {
|
|
49
|
+
[key: string]: unknown;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* `Filter` — cut here because it has its own bundle.
|
|
54
|
+
* Full shape: `types/Filter.d.ts`.
|
|
55
|
+
*/
|
|
56
|
+
interface Filter<T = any> {
|
|
57
|
+
[key: string]: unknown;
|
|
58
|
+
}
|
|
59
|
+
type FiltersMap = {
|
|
60
|
+
[key: string]: Filter<any> | undefined;
|
|
61
|
+
};
|
|
62
|
+
type OptionalFiltersMap = {
|
|
63
|
+
[key: string]: undefined;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* `ComputedQuery` — cut here because it has its own bundle.
|
|
68
|
+
* Full shape: `types/ComputedQuery.d.ts`.
|
|
69
|
+
*/
|
|
70
|
+
interface ComputedQuery<F = any> {
|
|
71
|
+
[key: string]: unknown;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* `DataResultRaw` — cut here because it has its own bundle.
|
|
76
|
+
* Full shape: `types/DataResultRaw.d.ts`.
|
|
77
|
+
*/
|
|
78
|
+
interface DataResultRaw<T = any> {
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
interface ComputedResult {
|
|
83
|
+
total: number;
|
|
84
|
+
available: number;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type OnResultUpdated<F extends FiltersMap> = (params: {
|
|
88
|
+
query: ComputedQuery<F>;
|
|
89
|
+
result: ComputedResult;
|
|
90
|
+
}) => unknown;
|
|
91
|
+
type OnNewPageAdded<F extends FiltersMap> = (params: {
|
|
92
|
+
totalNewItems: number;
|
|
93
|
+
result: {
|
|
94
|
+
total: number;
|
|
95
|
+
available: number;
|
|
96
|
+
};
|
|
97
|
+
query: ComputedQuery<F>;
|
|
98
|
+
}) => unknown;
|
|
99
|
+
interface CollectionEvents<F extends FiltersMap> {
|
|
100
|
+
/** When the first page of items is ready */
|
|
101
|
+
readonly onInitialPageFetched?: OnResultUpdated<F>;
|
|
102
|
+
/** When fetching new items as a result new search */
|
|
103
|
+
readonly onSearch?: (params: {
|
|
104
|
+
query: ComputedQuery<F>;
|
|
105
|
+
}) => unknown;
|
|
106
|
+
/** When the result of a search is ready */
|
|
107
|
+
readonly onSearchResults?: OnResultUpdated<F>;
|
|
108
|
+
/** When starting to load the next page of items */
|
|
109
|
+
readonly onNewPageStart?: (params: {
|
|
110
|
+
query: ComputedQuery<F>;
|
|
111
|
+
}) => void | undefined | null | OnNewPageAdded<F>;
|
|
112
|
+
/** When the result of the next page is ready */
|
|
113
|
+
readonly onNewPageAdded?: OnNewPageAdded<F>;
|
|
114
|
+
/** When `fetchData` throws an error. Return `true` from this function if the error was reported and shouldn't be reported again internally. */
|
|
115
|
+
readonly onError?: (params: {
|
|
116
|
+
err: unknown;
|
|
117
|
+
isOnline: boolean;
|
|
118
|
+
}) => boolean | undefined | null | void;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Retry configuration for failed queries.
|
|
123
|
+
* - `false`: Disable retries entirely
|
|
124
|
+
* - `number`: Retry up to this many times
|
|
125
|
+
* - `function`: Custom retry logic that receives (failureCount, error) and returns boolean
|
|
126
|
+
*/
|
|
127
|
+
type RetryValue = boolean | number | ((failureCount: number, error: unknown) => boolean);
|
|
128
|
+
interface QueryOptions {
|
|
129
|
+
staleTime?: number;
|
|
130
|
+
retryDelay?: number;
|
|
131
|
+
/**
|
|
132
|
+
* Configure retry behavior for failed queries.
|
|
133
|
+
*
|
|
134
|
+
* By default, Cairo retries all failed queries up to 3 times.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* // Disable retries entirely
|
|
138
|
+
* queryOptions: { retry: false }
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* // Custom retry logic
|
|
142
|
+
* queryOptions: {
|
|
143
|
+
* retry: (failureCount, error) => {
|
|
144
|
+
* // Only retry on 5xx server errors
|
|
145
|
+
* if (isHttpError(error) && error.response?.status >= 500) {
|
|
146
|
+
* return failureCount < 3;
|
|
147
|
+
* }
|
|
148
|
+
* return false;
|
|
149
|
+
* }
|
|
150
|
+
* }
|
|
151
|
+
*/
|
|
152
|
+
retry?: RetryValue;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
interface CollectionConfigBase<T, F extends FiltersMap> {
|
|
156
|
+
/**
|
|
157
|
+
* Whether to disable "Select All" server simulation for bulk selection.
|
|
158
|
+
* @external
|
|
159
|
+
*/
|
|
160
|
+
disableAutoSelectAllCount?: boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Whether to enable new "Select All" logic.
|
|
163
|
+
* <br> <br>
|
|
164
|
+
* If `true`: <br>
|
|
165
|
+
* - Unchecking items after checking "Select All" does not fallback to specific selection logic and values. This means in `<bulkActionToolbar />` and `<MultiBulkActionToolbar />`, "Total Selected" will show `total - unchecked items` and `isSelectAll` will be true. <br>
|
|
166
|
+
* - You will receive a list of unchecked IDs.
|
|
167
|
+
* @external
|
|
168
|
+
*/
|
|
169
|
+
useNewSelectAllLogic?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Unique value for each API endpoint consumed in `fetchData`.
|
|
172
|
+
* @external
|
|
173
|
+
*/
|
|
174
|
+
queryName: string;
|
|
175
|
+
/**
|
|
176
|
+
* Entity fqdn.
|
|
177
|
+
* @external
|
|
178
|
+
*/
|
|
179
|
+
fqdn?: string;
|
|
180
|
+
/**
|
|
181
|
+
* The `ExtendedFields` object used to render custom field values
|
|
182
|
+
* Optional in case your data complies to the type `{ extendedFields: ExtendedFields }`
|
|
183
|
+
*/
|
|
184
|
+
toExtendedFields?: (item: T) => ExtendedFields | undefined | null;
|
|
185
|
+
/**
|
|
186
|
+
* Message shown in a toast when fetching from the server fails.
|
|
187
|
+
* <br> <br>
|
|
188
|
+
* If the function returns a nullish value, no toast is shown.
|
|
189
|
+
* @external
|
|
190
|
+
* @deprecated Instead of using `fetchErrorMessage`, use `errorState` prop in the component, which will show the error message in the card.
|
|
191
|
+
*/
|
|
192
|
+
fetchErrorMessage?: (params: {
|
|
193
|
+
err: unknown;
|
|
194
|
+
isOnline: boolean;
|
|
195
|
+
}) => string | null | undefined;
|
|
196
|
+
search?: Filter<string>;
|
|
197
|
+
queryOptions?: QueryOptions;
|
|
198
|
+
/**
|
|
199
|
+
* Persist the selected filters, search & sort in the query parameters of the URL.<br/>
|
|
200
|
+
* For improved readability, sort & columns are formatted in CSV-like formatting, i.e "?sort=name+desc,price+asc". Do not use commas and/or spaces for your columns IDs.<br>
|
|
201
|
+
* Note: The filters from the selected view will be persist, but the actual view will not be selected
|
|
202
|
+
* @default false
|
|
203
|
+
*/
|
|
204
|
+
persistQueryToUrl?: boolean;
|
|
205
|
+
/**
|
|
206
|
+
* Whether the collection refreshes when different columns are selected.
|
|
207
|
+
* <br> <br>
|
|
208
|
+
* Selected columns are passed in `fetchData(query.columns)`.
|
|
209
|
+
* @default false
|
|
210
|
+
* @external
|
|
211
|
+
*/
|
|
212
|
+
refreshOnColumnsChange?: boolean;
|
|
213
|
+
initialPage?: DataResultRaw<T>;
|
|
214
|
+
deferInitialLoading?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Preserve or clear selection after applying a new search or filter.
|
|
217
|
+
* @default preserve
|
|
218
|
+
* @external
|
|
219
|
+
*/
|
|
220
|
+
selectionConsistencyMode?: 'preserve' | 'clear';
|
|
221
|
+
/**
|
|
222
|
+
* Optional callbacks for various events of the collection state lifecycle
|
|
223
|
+
* - `onInitialPageFetched` - when the first page of items is ready
|
|
224
|
+
* - `onSearch` - when fetching new items as a result new search
|
|
225
|
+
* - `onSearchResults` - when the result of a search is ready
|
|
226
|
+
* - `onNewPageStart` - when starting to load the next page of items
|
|
227
|
+
* - `onNewPageAdded` - when the result of the next page is ready
|
|
228
|
+
* - `onError` - When `fetchData` throws an error. Return `true` from this function if the error was reported and shouldn't be reported again internally.
|
|
229
|
+
*/
|
|
230
|
+
events?: CollectionEvents<F>;
|
|
231
|
+
}
|
|
232
|
+
interface CollectionConfigAnyPaginationMode<T, F extends FiltersMap> extends CollectionConfigBase<T, F> {
|
|
233
|
+
/**
|
|
234
|
+
* Function that fetches the collection data.<br> <br>
|
|
235
|
+
* Supported parameters: <br>
|
|
236
|
+
* - `query`: [object] [ComputedQuery](./com?path=/story/common-models--computedquery) instance.
|
|
237
|
+
* <br> <br>
|
|
238
|
+
*
|
|
239
|
+
* Must return a [DataResultRaw](./?path=/story/common-models--dataresultraw) Promise.
|
|
240
|
+
* @external
|
|
241
|
+
*/
|
|
242
|
+
fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;
|
|
243
|
+
/**
|
|
244
|
+
* A function that fetches the total number of items in the collection.<br> <br>
|
|
245
|
+
* Supported parameters: <br>
|
|
246
|
+
* - `query`: [object] [ComputedQuery](./com?path=/story/common-models--computedquery) of type `CursorQuery`.
|
|
247
|
+
* <br> <br>
|
|
248
|
+
* Must return a number Promise.
|
|
249
|
+
* @external
|
|
250
|
+
*/
|
|
251
|
+
fetchTotal?: FetchTotalFn;
|
|
252
|
+
/**
|
|
253
|
+
* Defines the filters that the collection supports.
|
|
254
|
+
* <br> <br>
|
|
255
|
+
* Either an [arrayFilter](./?path=/story/features-filter-factories--arrayfilter) or a [customFilter](./?path=/story/features-filter-factories--customfilter).
|
|
256
|
+
* @external
|
|
257
|
+
*/
|
|
258
|
+
filters: F;
|
|
259
|
+
/**
|
|
260
|
+
* Used to identify the item in many messages from Wix Patterns.
|
|
261
|
+
* <br> <br>
|
|
262
|
+
* For example, '{entity} "{itemName}" was deleted successfully' may become 'Contact "Johnny Doe" was deleted successfully'.
|
|
263
|
+
* <br> <br>
|
|
264
|
+
* If your data has an ID, then `itemKey` will default to this ID.
|
|
265
|
+
* @external
|
|
266
|
+
*/
|
|
267
|
+
itemName: (item: T) => string;
|
|
268
|
+
/**
|
|
269
|
+
* Unique key within the collection. The item's ID is often used for its key.
|
|
270
|
+
* <br> <br>
|
|
271
|
+
* If your data has an ID, then `itemKey` will default to this ID.
|
|
272
|
+
* @external
|
|
273
|
+
*/
|
|
274
|
+
itemKey: (item: T) => string;
|
|
275
|
+
/**
|
|
276
|
+
* Maximum number of items fetched per page.
|
|
277
|
+
* @external
|
|
278
|
+
*/
|
|
279
|
+
limit?: number;
|
|
280
|
+
}
|
|
281
|
+
interface CollectionConfig<T, F extends FiltersMap> extends CollectionConfigAnyPaginationMode<T, F> {
|
|
282
|
+
/**
|
|
283
|
+
* Pagination type supported by `fetchData`.
|
|
284
|
+
* <br> <br>
|
|
285
|
+
* Supported values: <br>
|
|
286
|
+
* - `"offset"`: Server accepts `query.offset`. <br>
|
|
287
|
+
* - `"cursor"`: Server returns a cursor when `fetchData` is called.
|
|
288
|
+
* @default offset
|
|
289
|
+
* @external
|
|
290
|
+
*/
|
|
291
|
+
paginationMode?: 'cursor' | 'offset';
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
type ItemKeyConfig<T> = T extends {
|
|
295
|
+
id?: string | null;
|
|
296
|
+
} ? {
|
|
297
|
+
itemKey?: (item: T) => string;
|
|
298
|
+
} : T extends {
|
|
299
|
+
_id?: string | null;
|
|
300
|
+
} ? {
|
|
301
|
+
itemKey?: (item: T) => string;
|
|
302
|
+
} : {
|
|
303
|
+
itemKey: (item: T) => string;
|
|
304
|
+
};
|
|
305
|
+
type ItemNameConfig<T> = T extends {
|
|
306
|
+
name?: string | null;
|
|
307
|
+
} ? {
|
|
308
|
+
itemName?: (item: T) => string;
|
|
309
|
+
} : {
|
|
310
|
+
itemName: (item: T) => string;
|
|
311
|
+
};
|
|
312
|
+
type FiltersConfig<F extends FiltersMap> = F extends OptionalFiltersMap ? {
|
|
313
|
+
filters?: {};
|
|
314
|
+
} : {
|
|
315
|
+
filters: F;
|
|
316
|
+
};
|
|
317
|
+
type CollectionConfigConditionals<T, F extends FiltersMap> = FiltersConfig<F> & ItemKeyConfig<T> & ItemNameConfig<T> & PaginationModeConfig<T, F>;
|
|
318
|
+
type CollectionConfigWithConditionals<T, F extends FiltersMap> = Omit<CollectionConfig<T, F>, 'itemKey' | 'itemName' | 'filters' | 'paginationMode' | 'fetchData'> & CollectionConfigConditionals<T, F>;
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* `GridState` — you receive this, you don't construct it.
|
|
322
|
+
* Produced by `useGridCollection()` (also `useAmbassadorGrid()`, `useVirtualGridStateContext()`). Its own API is in `types/GridState.d.ts`.
|
|
323
|
+
*/
|
|
324
|
+
declare class GridState<T = any, F = any> {
|
|
325
|
+
[key: string]: unknown;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
type FetchData<T> = (query: OffsetQuery) => Promise<OffsetQueryResult<T>>;
|
|
329
|
+
type SchemaCollectionOptions<T, F extends FiltersMap> = Omit<CollectionConfigWithConditionals<T, F>, 'queryName' | 'paginationMode' | 'fetchData' | 'fetchTotal' | 'itemKey' | 'itemName' | 'fqdn'> & {
|
|
330
|
+
/** Wraps the source's fetch (filter/enrich results) without replacing it. */
|
|
331
|
+
wrapFetchData?: (next: FetchData<T>) => FetchData<T>;
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
/** A grid collection driven by a source — the source's filters and field
|
|
335
|
+
* management attach to the toolbar even though a grid has no columns. */
|
|
336
|
+
declare function useGridCollection<T, F extends FiltersMap = OptionalFiltersMap>(source: SchemaSource<T>, options?: SchemaCollectionOptions<T, F>): GridState<T, F>;
|
|
337
|
+
|
|
338
|
+
export { useGridCollection };
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
interface ExtendedFieldsDataMap {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
}
|
|
4
|
+
interface ExtendedFields {
|
|
5
|
+
_type?: 'ExtendedFields';
|
|
6
|
+
/**
|
|
7
|
+
* Data Extensions extended fields
|
|
8
|
+
* Key: Namespace
|
|
9
|
+
* Value: extended fields data in Struct format
|
|
10
|
+
*/
|
|
11
|
+
namespaces?: {
|
|
12
|
+
_user_fields?: ExtendedFieldsDataMap | undefined;
|
|
13
|
+
[key: string]: ExtendedFieldsDataMap | undefined;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* `OffsetQuery` — cut here because it has its own bundle.
|
|
19
|
+
* Full shape: `types/OffsetQuery.d.ts`.
|
|
20
|
+
*/
|
|
21
|
+
type OffsetQuery<F = any> = Omit<ComputedQuery<F>, 'cursor'>;
|
|
22
|
+
type OffsetQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'>;
|
|
23
|
+
type OffsetFetchDataFn<T, F extends FiltersMap> = (query: OffsetQuery<F>) => Promise<OffsetQueryResult<T>>;
|
|
24
|
+
type CursorQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'> & {
|
|
25
|
+
cursor: string | undefined | null;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* `CursorQuery` — cut here because it has its own bundle.
|
|
29
|
+
* Full shape: `types/CursorQuery.d.ts`.
|
|
30
|
+
*/
|
|
31
|
+
type CursorQuery<F = any> = Omit<ComputedQuery<F>, 'offset'>;
|
|
32
|
+
type CursorFetchDataFn<T, F extends FiltersMap> = (query: CursorQuery<F>) => Promise<CursorQueryResult<T>>;
|
|
33
|
+
type FetchTotalFn = (query: CursorQuery) => Promise<number>;
|
|
34
|
+
type PaginationModeConfig<T, F extends FiltersMap> = {
|
|
35
|
+
paginationMode?: 'offset';
|
|
36
|
+
fetchData: OffsetFetchDataFn<T, F>;
|
|
37
|
+
} | {
|
|
38
|
+
paginationMode: 'cursor';
|
|
39
|
+
fetchTotal?: FetchTotalFn;
|
|
40
|
+
fetchData: CursorFetchDataFn<T, F>;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/** The resolved source: defaults filled, `loadSchema` memoized. */
|
|
44
|
+
/**
|
|
45
|
+
* `SchemaSource` — cut here because it has its own bundle.
|
|
46
|
+
* Full shape: `types/SchemaSource.d.ts`.
|
|
47
|
+
*/
|
|
48
|
+
interface SchemaSource<T = any> {
|
|
49
|
+
[key: string]: unknown;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* `Filter` — cut here because it has its own bundle.
|
|
54
|
+
* Full shape: `types/Filter.d.ts`.
|
|
55
|
+
*/
|
|
56
|
+
interface Filter<T = any> {
|
|
57
|
+
[key: string]: unknown;
|
|
58
|
+
}
|
|
59
|
+
type FiltersMap = {
|
|
60
|
+
[key: string]: Filter<any> | undefined;
|
|
61
|
+
};
|
|
62
|
+
type OptionalFiltersMap = {
|
|
63
|
+
[key: string]: undefined;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* `ComputedQuery` — cut here because it has its own bundle.
|
|
68
|
+
* Full shape: `types/ComputedQuery.d.ts`.
|
|
69
|
+
*/
|
|
70
|
+
interface ComputedQuery<F = any> {
|
|
71
|
+
[key: string]: unknown;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* `DataResultRaw` — cut here because it has its own bundle.
|
|
76
|
+
* Full shape: `types/DataResultRaw.d.ts`.
|
|
77
|
+
*/
|
|
78
|
+
interface DataResultRaw<T = any> {
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
interface ComputedResult {
|
|
83
|
+
total: number;
|
|
84
|
+
available: number;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type OnResultUpdated<F extends FiltersMap> = (params: {
|
|
88
|
+
query: ComputedQuery<F>;
|
|
89
|
+
result: ComputedResult;
|
|
90
|
+
}) => unknown;
|
|
91
|
+
type OnNewPageAdded<F extends FiltersMap> = (params: {
|
|
92
|
+
totalNewItems: number;
|
|
93
|
+
result: {
|
|
94
|
+
total: number;
|
|
95
|
+
available: number;
|
|
96
|
+
};
|
|
97
|
+
query: ComputedQuery<F>;
|
|
98
|
+
}) => unknown;
|
|
99
|
+
interface CollectionEvents<F extends FiltersMap> {
|
|
100
|
+
/** When the first page of items is ready */
|
|
101
|
+
readonly onInitialPageFetched?: OnResultUpdated<F>;
|
|
102
|
+
/** When fetching new items as a result new search */
|
|
103
|
+
readonly onSearch?: (params: {
|
|
104
|
+
query: ComputedQuery<F>;
|
|
105
|
+
}) => unknown;
|
|
106
|
+
/** When the result of a search is ready */
|
|
107
|
+
readonly onSearchResults?: OnResultUpdated<F>;
|
|
108
|
+
/** When starting to load the next page of items */
|
|
109
|
+
readonly onNewPageStart?: (params: {
|
|
110
|
+
query: ComputedQuery<F>;
|
|
111
|
+
}) => void | undefined | null | OnNewPageAdded<F>;
|
|
112
|
+
/** When the result of the next page is ready */
|
|
113
|
+
readonly onNewPageAdded?: OnNewPageAdded<F>;
|
|
114
|
+
/** When `fetchData` throws an error. Return `true` from this function if the error was reported and shouldn't be reported again internally. */
|
|
115
|
+
readonly onError?: (params: {
|
|
116
|
+
err: unknown;
|
|
117
|
+
isOnline: boolean;
|
|
118
|
+
}) => boolean | undefined | null | void;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Retry configuration for failed queries.
|
|
123
|
+
* - `false`: Disable retries entirely
|
|
124
|
+
* - `number`: Retry up to this many times
|
|
125
|
+
* - `function`: Custom retry logic that receives (failureCount, error) and returns boolean
|
|
126
|
+
*/
|
|
127
|
+
type RetryValue = boolean | number | ((failureCount: number, error: unknown) => boolean);
|
|
128
|
+
interface QueryOptions {
|
|
129
|
+
staleTime?: number;
|
|
130
|
+
retryDelay?: number;
|
|
131
|
+
/**
|
|
132
|
+
* Configure retry behavior for failed queries.
|
|
133
|
+
*
|
|
134
|
+
* By default, Cairo retries all failed queries up to 3 times.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* // Disable retries entirely
|
|
138
|
+
* queryOptions: { retry: false }
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* // Custom retry logic
|
|
142
|
+
* queryOptions: {
|
|
143
|
+
* retry: (failureCount, error) => {
|
|
144
|
+
* // Only retry on 5xx server errors
|
|
145
|
+
* if (isHttpError(error) && error.response?.status >= 500) {
|
|
146
|
+
* return failureCount < 3;
|
|
147
|
+
* }
|
|
148
|
+
* return false;
|
|
149
|
+
* }
|
|
150
|
+
* }
|
|
151
|
+
*/
|
|
152
|
+
retry?: RetryValue;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
interface CollectionConfigBase<T, F extends FiltersMap> {
|
|
156
|
+
/**
|
|
157
|
+
* Whether to disable "Select All" server simulation for bulk selection.
|
|
158
|
+
* @external
|
|
159
|
+
*/
|
|
160
|
+
disableAutoSelectAllCount?: boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Whether to enable new "Select All" logic.
|
|
163
|
+
* <br> <br>
|
|
164
|
+
* If `true`: <br>
|
|
165
|
+
* - Unchecking items after checking "Select All" does not fallback to specific selection logic and values. This means in `<bulkActionToolbar />` and `<MultiBulkActionToolbar />`, "Total Selected" will show `total - unchecked items` and `isSelectAll` will be true. <br>
|
|
166
|
+
* - You will receive a list of unchecked IDs.
|
|
167
|
+
* @external
|
|
168
|
+
*/
|
|
169
|
+
useNewSelectAllLogic?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Unique value for each API endpoint consumed in `fetchData`.
|
|
172
|
+
* @external
|
|
173
|
+
*/
|
|
174
|
+
queryName: string;
|
|
175
|
+
/**
|
|
176
|
+
* Entity fqdn.
|
|
177
|
+
* @external
|
|
178
|
+
*/
|
|
179
|
+
fqdn?: string;
|
|
180
|
+
/**
|
|
181
|
+
* The `ExtendedFields` object used to render custom field values
|
|
182
|
+
* Optional in case your data complies to the type `{ extendedFields: ExtendedFields }`
|
|
183
|
+
*/
|
|
184
|
+
toExtendedFields?: (item: T) => ExtendedFields | undefined | null;
|
|
185
|
+
/**
|
|
186
|
+
* Message shown in a toast when fetching from the server fails.
|
|
187
|
+
* <br> <br>
|
|
188
|
+
* If the function returns a nullish value, no toast is shown.
|
|
189
|
+
* @external
|
|
190
|
+
* @deprecated Instead of using `fetchErrorMessage`, use `errorState` prop in the component, which will show the error message in the card.
|
|
191
|
+
*/
|
|
192
|
+
fetchErrorMessage?: (params: {
|
|
193
|
+
err: unknown;
|
|
194
|
+
isOnline: boolean;
|
|
195
|
+
}) => string | null | undefined;
|
|
196
|
+
search?: Filter<string>;
|
|
197
|
+
queryOptions?: QueryOptions;
|
|
198
|
+
/**
|
|
199
|
+
* Persist the selected filters, search & sort in the query parameters of the URL.<br/>
|
|
200
|
+
* For improved readability, sort & columns are formatted in CSV-like formatting, i.e "?sort=name+desc,price+asc". Do not use commas and/or spaces for your columns IDs.<br>
|
|
201
|
+
* Note: The filters from the selected view will be persist, but the actual view will not be selected
|
|
202
|
+
* @default false
|
|
203
|
+
*/
|
|
204
|
+
persistQueryToUrl?: boolean;
|
|
205
|
+
/**
|
|
206
|
+
* Whether the collection refreshes when different columns are selected.
|
|
207
|
+
* <br> <br>
|
|
208
|
+
* Selected columns are passed in `fetchData(query.columns)`.
|
|
209
|
+
* @default false
|
|
210
|
+
* @external
|
|
211
|
+
*/
|
|
212
|
+
refreshOnColumnsChange?: boolean;
|
|
213
|
+
initialPage?: DataResultRaw<T>;
|
|
214
|
+
deferInitialLoading?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Preserve or clear selection after applying a new search or filter.
|
|
217
|
+
* @default preserve
|
|
218
|
+
* @external
|
|
219
|
+
*/
|
|
220
|
+
selectionConsistencyMode?: 'preserve' | 'clear';
|
|
221
|
+
/**
|
|
222
|
+
* Optional callbacks for various events of the collection state lifecycle
|
|
223
|
+
* - `onInitialPageFetched` - when the first page of items is ready
|
|
224
|
+
* - `onSearch` - when fetching new items as a result new search
|
|
225
|
+
* - `onSearchResults` - when the result of a search is ready
|
|
226
|
+
* - `onNewPageStart` - when starting to load the next page of items
|
|
227
|
+
* - `onNewPageAdded` - when the result of the next page is ready
|
|
228
|
+
* - `onError` - When `fetchData` throws an error. Return `true` from this function if the error was reported and shouldn't be reported again internally.
|
|
229
|
+
*/
|
|
230
|
+
events?: CollectionEvents<F>;
|
|
231
|
+
}
|
|
232
|
+
interface CollectionConfigAnyPaginationMode<T, F extends FiltersMap> extends CollectionConfigBase<T, F> {
|
|
233
|
+
/**
|
|
234
|
+
* Function that fetches the collection data.<br> <br>
|
|
235
|
+
* Supported parameters: <br>
|
|
236
|
+
* - `query`: [object] [ComputedQuery](./com?path=/story/common-models--computedquery) instance.
|
|
237
|
+
* <br> <br>
|
|
238
|
+
*
|
|
239
|
+
* Must return a [DataResultRaw](./?path=/story/common-models--dataresultraw) Promise.
|
|
240
|
+
* @external
|
|
241
|
+
*/
|
|
242
|
+
fetchData: (query: ComputedQuery<F>) => Promise<DataResultRaw<T>>;
|
|
243
|
+
/**
|
|
244
|
+
* A function that fetches the total number of items in the collection.<br> <br>
|
|
245
|
+
* Supported parameters: <br>
|
|
246
|
+
* - `query`: [object] [ComputedQuery](./com?path=/story/common-models--computedquery) of type `CursorQuery`.
|
|
247
|
+
* <br> <br>
|
|
248
|
+
* Must return a number Promise.
|
|
249
|
+
* @external
|
|
250
|
+
*/
|
|
251
|
+
fetchTotal?: FetchTotalFn;
|
|
252
|
+
/**
|
|
253
|
+
* Defines the filters that the collection supports.
|
|
254
|
+
* <br> <br>
|
|
255
|
+
* Either an [arrayFilter](./?path=/story/features-filter-factories--arrayfilter) or a [customFilter](./?path=/story/features-filter-factories--customfilter).
|
|
256
|
+
* @external
|
|
257
|
+
*/
|
|
258
|
+
filters: F;
|
|
259
|
+
/**
|
|
260
|
+
* Used to identify the item in many messages from Wix Patterns.
|
|
261
|
+
* <br> <br>
|
|
262
|
+
* For example, '{entity} "{itemName}" was deleted successfully' may become 'Contact "Johnny Doe" was deleted successfully'.
|
|
263
|
+
* <br> <br>
|
|
264
|
+
* If your data has an ID, then `itemKey` will default to this ID.
|
|
265
|
+
* @external
|
|
266
|
+
*/
|
|
267
|
+
itemName: (item: T) => string;
|
|
268
|
+
/**
|
|
269
|
+
* Unique key within the collection. The item's ID is often used for its key.
|
|
270
|
+
* <br> <br>
|
|
271
|
+
* If your data has an ID, then `itemKey` will default to this ID.
|
|
272
|
+
* @external
|
|
273
|
+
*/
|
|
274
|
+
itemKey: (item: T) => string;
|
|
275
|
+
/**
|
|
276
|
+
* Maximum number of items fetched per page.
|
|
277
|
+
* @external
|
|
278
|
+
*/
|
|
279
|
+
limit?: number;
|
|
280
|
+
}
|
|
281
|
+
interface CollectionConfig<T, F extends FiltersMap> extends CollectionConfigAnyPaginationMode<T, F> {
|
|
282
|
+
/**
|
|
283
|
+
* Pagination type supported by `fetchData`.
|
|
284
|
+
* <br> <br>
|
|
285
|
+
* Supported values: <br>
|
|
286
|
+
* - `"offset"`: Server accepts `query.offset`. <br>
|
|
287
|
+
* - `"cursor"`: Server returns a cursor when `fetchData` is called.
|
|
288
|
+
* @default offset
|
|
289
|
+
* @external
|
|
290
|
+
*/
|
|
291
|
+
paginationMode?: 'cursor' | 'offset';
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
type ItemKeyConfig<T> = T extends {
|
|
295
|
+
id?: string | null;
|
|
296
|
+
} ? {
|
|
297
|
+
itemKey?: (item: T) => string;
|
|
298
|
+
} : T extends {
|
|
299
|
+
_id?: string | null;
|
|
300
|
+
} ? {
|
|
301
|
+
itemKey?: (item: T) => string;
|
|
302
|
+
} : {
|
|
303
|
+
itemKey: (item: T) => string;
|
|
304
|
+
};
|
|
305
|
+
type ItemNameConfig<T> = T extends {
|
|
306
|
+
name?: string | null;
|
|
307
|
+
} ? {
|
|
308
|
+
itemName?: (item: T) => string;
|
|
309
|
+
} : {
|
|
310
|
+
itemName: (item: T) => string;
|
|
311
|
+
};
|
|
312
|
+
type FiltersConfig<F extends FiltersMap> = F extends OptionalFiltersMap ? {
|
|
313
|
+
filters?: {};
|
|
314
|
+
} : {
|
|
315
|
+
filters: F;
|
|
316
|
+
};
|
|
317
|
+
type CollectionConfigConditionals<T, F extends FiltersMap> = FiltersConfig<F> & ItemKeyConfig<T> & ItemNameConfig<T> & PaginationModeConfig<T, F>;
|
|
318
|
+
type CollectionConfigWithConditionals<T, F extends FiltersMap> = Omit<CollectionConfig<T, F>, 'itemKey' | 'itemName' | 'filters' | 'paginationMode' | 'fetchData'> & CollectionConfigConditionals<T, F>;
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* `TableState` — you receive this, you don't construct it.
|
|
322
|
+
* Produced by `useTableCollection()` (also `useAmbassadorTable()`, `useTableContext()`). Its own API is in `types/TableState.d.ts`.
|
|
323
|
+
*/
|
|
324
|
+
declare class TableState<T = any, F = any> {
|
|
325
|
+
[key: string]: unknown;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
type FetchData<T> = (query: OffsetQuery) => Promise<OffsetQueryResult<T>>;
|
|
329
|
+
type SchemaCollectionOptions<T, F extends FiltersMap> = Omit<CollectionConfigWithConditionals<T, F>, 'queryName' | 'paginationMode' | 'fetchData' | 'fetchTotal' | 'itemKey' | 'itemName' | 'fqdn'> & {
|
|
330
|
+
/** Wraps the source's fetch (filter/enrich results) without replacing it. */
|
|
331
|
+
wrapFetchData?: (next: FetchData<T>) => FetchData<T>;
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
/** A table collection driven by a source: the source supplies the query and
|
|
335
|
+
* the fields area, and both attach when the state is created. */
|
|
336
|
+
declare function useTableCollection<T, F extends FiltersMap = OptionalFiltersMap>(source: SchemaSource<T>, options?: SchemaCollectionOptions<T, F>): TableState<T, F>;
|
|
337
|
+
|
|
338
|
+
export { useTableCollection };
|