@wix/patterns 1.442.0 → 1.444.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/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.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.js +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.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/CollectionToolbarFilters/CollectionToolbarFilters.js +18 -10
- package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFilters.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.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.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/NestedTable/NestedTableWSRTable.js +9 -7
- package/dist/cjs/components/NestedTable/NestedTableWSRTable.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/ReferenceFieldFilter/ReferenceFieldFilter.js +80 -0
- package/dist/cjs/components/ReferenceFieldFilter/ReferenceFieldFilter.js.map +1 -0
- package/dist/cjs/components/ReferenceFieldFilter/index.js +10 -0
- package/dist/cjs/components/ReferenceFieldFilter/index.js.map +1 -0
- package/dist/cjs/components/ReferenceFieldFilter/pr-5715-comments.md +73 -0
- package/dist/cjs/components/SchemaSource/SchemaState.js +5 -1
- package/dist/cjs/components/SchemaSource/SchemaState.js.map +1 -1
- package/dist/cjs/components/SchemaSource/referenceCells.js +38 -2
- package/dist/cjs/components/SchemaSource/referenceCells.js.map +1 -1
- package/dist/cjs/components/SchemaSource/schemaRendering.js +18 -7
- package/dist/cjs/components/SchemaSource/schemaRendering.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 +9 -9
- 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 +4 -4
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/cjs/components/TableSections/TableSectionRow.js +10 -8
- package/dist/cjs/components/TableSections/TableSectionRow.js.map +1 -1
- package/dist/cjs/components/TableSkeleton/TableSkeleton.js +11 -9
- package/dist/cjs/components/TableSkeleton/TableSkeleton.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/hooks/useEntityPage.js.map +1 -1
- package/dist/cjs/state/CollectionFieldsSourceState.js +2 -2
- package/dist/cjs/state/CollectionFieldsSourceState.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/EntityPage/EntityPageState.js +6 -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/state/ToolbarCollectionState.js +9 -2
- package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
- package/dist/cjs/state/buildFieldFilters.js +60 -8
- package/dist/cjs/state/buildFieldFilters.js.map +1 -1
- package/dist/cjs/styles.global.css +2 -2
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/AutoCompleteFilter.md +1 -0
- package/dist/docs/MultiAutoInlineCheckboxFilter.md +2 -2
- package/dist/docs/MultiInlineCheckboxFilter.md +2 -2
- package/dist/docs/MultiSelectCheckboxFilter.md +1 -0
- package/dist/docs/MultiSelectCollectionFilter.md +1 -0
- package/dist/docs/SingleSelectFilter.md +1 -0
- package/dist/docs/TableTopNotification.md +1 -0
- package/dist/docs/ToolbarFilters.md +0 -9
- package/dist/docs/index.json +36 -36
- package/dist/docs/useEntityPage.md +1 -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/CmsFieldModal.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.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/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +1 -1
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- 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/CollectionToolbarFilters/CollectionToolbarFilters.js +20 -9
- package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
- 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.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/address/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
- 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/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/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.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/email/View.st.css.js.map +1 -1
- 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/object/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- 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/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/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
- 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/Fade/Fade.st.css.js.map +1 -1
- 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/InputOverflow/InputOverflow.st.css.js.map +1 -1
- 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/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableWSRTable.js +3 -1
- package/dist/esm/components/NestedTable/NestedTableWSRTable.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- 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/ReferenceFieldFilter/ReferenceFieldFilter.js +45 -0
- package/dist/esm/components/ReferenceFieldFilter/ReferenceFieldFilter.js.map +1 -0
- package/dist/esm/components/ReferenceFieldFilter/index.js +2 -0
- package/dist/esm/components/ReferenceFieldFilter/index.js.map +1 -0
- package/dist/esm/components/ReferenceFieldFilter/pr-5715-comments.md +73 -0
- package/dist/esm/components/SchemaSource/SchemaState.js +4 -2
- package/dist/esm/components/SchemaSource/SchemaState.js.map +1 -1
- package/dist/esm/components/SchemaSource/referenceCells.js +31 -0
- package/dist/esm/components/SchemaSource/referenceCells.js.map +1 -1
- package/dist/esm/components/SchemaSource/schemaRendering.js +13 -4
- package/dist/esm/components/SchemaSource/schemaRendering.js.map +1 -1
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
- 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/TableSections/TableSectionRow.js +3 -1
- package/dist/esm/components/TableSections/TableSectionRow.js.map +1 -1
- package/dist/esm/components/TableSkeleton/TableSkeleton.js +3 -1
- package/dist/esm/components/TableSkeleton/TableSkeleton.js.map +1 -1
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- 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/components/common.st.css.js.map +1 -1
- package/dist/esm/hooks/useEntityPage.js.map +1 -1
- package/dist/esm/state/CollectionFieldsSourceState.js +2 -2
- package/dist/esm/state/CollectionFieldsSourceState.js.map +1 -1
- 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/EntityPage/EntityPageState.js +4 -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/ToolbarCollectionState.js +7 -3
- package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
- package/dist/esm/state/buildFieldFilters.js +32 -8
- package/dist/esm/state/buildFieldFilters.js.map +1 -1
- package/dist/esm/styles.global.css +2 -2
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFilters.d.ts +10 -0
- package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFilters.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.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/email/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/object/View.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/url/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EmptyState/EmptyStateBase.st.css.d.ts.map +1 -1
- package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
- package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
- package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
- package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTableWSRTable.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
- package/dist/types/components/ReferenceFieldFilter/ReferenceFieldFilter.d.ts +48 -0
- package/dist/types/components/ReferenceFieldFilter/ReferenceFieldFilter.d.ts.map +1 -0
- package/dist/types/components/ReferenceFieldFilter/index.d.ts +2 -0
- package/dist/types/components/ReferenceFieldFilter/index.d.ts.map +1 -0
- package/dist/types/components/SchemaSource/SchemaState.d.ts +3 -0
- package/dist/types/components/SchemaSource/SchemaState.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/referenceCells.d.ts +18 -2
- package/dist/types/components/SchemaSource/referenceCells.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/schemaRendering.d.ts +7 -0
- package/dist/types/components/SchemaSource/schemaRendering.d.ts.map +1 -1
- package/dist/types/components/TableSections/TableSectionRow.d.ts.map +1 -1
- package/dist/types/components/TableSkeleton/TableSkeleton.d.ts.map +1 -1
- package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
- package/dist/types/components/common.st.css.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPage.d.ts +1 -1
- package/dist/types/hooks/useEntityPage.d.ts.map +1 -1
- package/dist/types/state/CollectionFieldsSourceState.d.ts +5 -0
- package/dist/types/state/CollectionFieldsSourceState.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/EntityPage/EntityPageState.d.ts +12 -0
- package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
- package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
- package/dist/types/state/buildFieldFilters.d.ts +20 -4
- package/dist/types/state/buildFieldFilters.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +9 -9
- 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/CmsFieldManagement/formFields/CharactersLimitInput.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/CollectionTable/CollectionTableWSRTable.tsx +1 -1
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionToolbarFilters/CollectionToolbarFilters.tsx +24 -11
- 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/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/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/NestedTable/NestedTableWSRTable.tsx +3 -1
- 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/ReferenceFieldFilter/ReferenceFieldFilter.tsx +77 -0
- package/src/components/ReferenceFieldFilter/index.ts +1 -0
- package/src/components/ReferenceFieldFilter/pr-5715-comments.md +73 -0
- package/src/components/SchemaSource/SchemaState.ts +12 -2
- package/src/components/SchemaSource/referenceCells.ts +42 -0
- package/src/components/SchemaSource/schemaRendering.tsx +15 -4
- 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/TableSections/TableSectionRow.tsx +3 -1
- package/src/components/TableSkeleton/TableSkeleton.tsx +3 -1
- 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/hooks/useEntityPage.ts +1 -0
- package/src/state/CollectionFieldsSourceState.ts +12 -1
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/EntityPage/EntityPageState.ts +17 -0
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/ToolbarCollectionState.ts +13 -5
- package/src/state/buildFieldFilters.tsx +74 -7
- package/src/styles.global.css +2 -2
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_bexCore","_schemaFieldsContainer","_buildFieldColumns","_handleFieldsSourceLoadError","_buildFieldFilters","_CustomFieldsPanelState","CollectionFieldsSourceState","constructor","params","_defineProperty2","default","TaskState","fieldsSource","toolbar","featuredPageActions","props","filterConfig","columnOverrides","schemaSource","editableCellFor","components","errorCode","customFieldsPanel","CustomFieldsPanelState","container","reportBi","closeSidePanel","createFieldActionsMenu","openFieldModal","opts","openCustomFieldModal","fieldId","origin","customOrigin","fieldActionsMenu","fieldActionHandlers","createFieldActionHandlers","setOnTable","source","collectionFieldsSource","buildFilters","buildFieldFilters","registerFilters","registerFieldFilters","buildColumns","firstBuild","initTask","status","isSuccess","buildFieldColumns","syncColumns","columns","hasBuiltColumns","setExtendedColumns","mergeFields","fields","_this$fieldsSource$me","_this$fieldsSource","call","init","_fieldsContainerOf","_this$initTask$status","_this$toolbar$customC","fieldsContainerOf","runOnce","load","promise","catch","handleLoadError","disposers","reaction","filterableFields","fireImmediately","customColumnsState","events","addEventListener","_this$initTask$status2","forEach","d","handleFieldsSourceLoadError","error","reload","retryLoad","reset","exports"],"sources":["../../../src/state/CollectionFieldsSourceState.ts"],"sourcesContent":["import { reaction } from 'mobx';\nimport type { ComponentType } from 'react';\nimport { addEventListener, TaskState } from '@wix/bex-core';\nimport type {\n FieldsSource,\n CustomFieldOrigin,\n Field,\n Schema,\n SchemaSource,\n WixPatternsErrorCode,\n} from '@wix/bex-core';\nimport type { Column } from '../model';\nimport { fieldsContainerOf } from '../model/schemaFieldsContainer';\nimport type { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { buildFieldColumns, ColumnOverridesContext } from './buildFieldColumns';\nimport { handleFieldsSourceLoadError } from './handleFieldsSourceLoadError';\nimport {\n buildFieldFilters,\n registerFieldFilters,\n type FieldFilterConfig,\n} from './buildFieldFilters';\nimport type {\n FilterElement,\n CollectionToolbarFiltersProps,\n} from '../components/CollectionToolbarFilters';\nimport type { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';\nimport {\n CustomFieldsPanelState,\n type FieldActionsMenuBuilder,\n} from './CustomFields/CustomFieldsPanelState';\nimport type { FieldActionHandlersConfig } from '../components/FieldActions';\nimport type { CustomColumnsBaseProps } from '../components/CustomColumns/CustomColumns';\n\n/** A cell type plus the config its editor needs, for a field the default\n * type→cell mapping can't fully resolve on its own. */\nexport interface EditableCellUpgrade {\n cellType: string;\n typeConfig: unknown;\n}\n\n/** Builds the raw field-management for one field (handlers + registry metadata). */\ntype FieldActionHandlersBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionHandlersConfig | null;\n\n/**\n * Components the source attaches at construction time so the table chunk can\n * render them via `source.components.X` instead of statically importing them.\n * Each source's rendering file (dataExtensionRendering / schemaRendering) is\n * the only place these are imported — those files are reachable only from the\n * source's feature module, so the components ship in that chunk, not the\n * table chunk.\n */\nexport interface FieldsSourceComponents {\n FieldManagementModals: ComponentType<{ source: CollectionFieldsSourceState }>;\n CustomColumns: ComponentType<CustomColumnsBaseProps>;\n CollectionToolbarFilters: ComponentType<CollectionToolbarFiltersProps>;\n}\n\n/**\n * The source-specific behavior a collection supplies on top of its FieldsSource\n * (data) — column tweaks, filter behavior, the manage-fields panel, page actions,\n * field actions, and the field-management modal states. A source builds one of\n * these (dataExtensionRendering / schemaRendering); it is spread onto\n * CollectionFieldsSourceState, which owns the pieces directly. The collection\n * renders these with shared, source-neutral components.\n */\nexport interface FieldsSourceRendering {\n /** The schema behind this source, when it has one. The collection initializes\n * the fields container the schema carries; the components read it off the\n * same object for React context. */\n schemaSource?: SchemaSource<any>;\n /**\n * Lets a source replace any column property the shared builder produces,\n * including the render function for media types. Called per field.\n */\n columnOverrides?(field: Field, ctx: ColumnOverridesContext): Partial<Column>;\n /**\n * The editable cell for a field whose editor needs `typeConfig` only the\n * source can supply (a reference cell's referenced collection). Called per\n * field when building editable columns; `undefined` keeps the default mapping\n * for that field type, which for those types is a read-only display.\n */\n editableCellFor?(field: Field): EditableCellUpgrade | undefined;\n /** Per-source filter behavior (text operators, decimal, type icon). */\n filterConfig: FieldFilterConfig;\n /**\n * Builds the source's per-field actions menu for the panel it belongs to. The\n * spine builds the panel and passes it in; the resulting menu drives both the\n * manage-fields panel and the customize-columns header.\n */\n createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n /**\n * Builds the raw field-management for one field (handlers + registry metadata)\n * for the panel it belongs to, before grouping. The header merges these with\n * its table-intrinsic actions (sort / hide / filter). Omitted by sources with\n * no field actions.\n */\n createFieldActionHandlers?: (\n panel: CustomFieldsPanelState,\n ) => FieldActionHandlersBuilder;\n featuredPageActions: MoreActionItemFactory[];\n props?: { disableDefaultPageAction?: boolean };\n /** BI error code reported when the source's load fails. Default: 'InitCustomFieldsDataExtensionFailed'. */\n errorCode?: WixPatternsErrorCode;\n /** The source provides these so the table chunk renders them via DI rather\n * than static import. See FieldsSourceComponents. */\n components: FieldsSourceComponents;\n}\n\n/**\n * A collection's field source: the FieldsSource (data) plus the source's UI,\n * held as flat members. The toolbar holds one of these rather than a specific\n * source. It owns the load status (initTask); field and filter reads pass\n * through to the FieldsSource's own observables.\n */\nexport class CollectionFieldsSourceState {\n readonly fieldsSource: FieldsSource;\n /** The field-management state (modals + per-field menu). Built here from the\n * source's config so every source gets the same panel. */\n readonly customFieldsPanel: CustomFieldsPanelState;\n readonly featuredPageActions: MoreActionItemFactory[];\n readonly props?: { disableDefaultPageAction?: boolean };\n readonly filterConfig: FieldFilterConfig;\n readonly openFieldModal: (opts?: {\n fieldId?: string;\n origin?: CustomFieldOrigin;\n customOrigin?: string;\n }) => void;\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n readonly fieldActionHandlers?: FieldActionHandlersBuilder;\n readonly components: FieldsSourceComponents;\n /** Read by the source-driven components, which put its fields container in\n * React context. */\n readonly schemaSource?: SchemaSource<any>;\n /** Read by EditableTableState when it builds the source's editable columns. */\n readonly editableCellFor?: FieldsSourceRendering['editableCellFor'];\n private readonly columnOverrides?: FieldsSourceRendering['columnOverrides'];\n private readonly toolbar: ToolbarCollectionState<any, any>;\n private readonly errorCode: WixPatternsErrorCode;\n private hasBuiltColumns = false;\n\n constructor(\n params: {\n fieldsSource: FieldsSource;\n toolbar: ToolbarCollectionState<any, any>;\n } & FieldsSourceRendering,\n ) {\n this.fieldsSource = params.fieldsSource;\n this.toolbar = params.toolbar;\n this.featuredPageActions = params.featuredPageActions;\n this.props = params.props;\n this.filterConfig = params.filterConfig;\n this.columnOverrides = params.columnOverrides;\n this.schemaSource = params.schemaSource;\n this.editableCellFor = params.editableCellFor;\n this.components = params.components;\n this.errorCode = params.errorCode ?? 'InitCustomFieldsDataExtensionFailed';\n\n // The panel is generic — the source supplies only its config (the menu\n // factory); the table's container/reportBi wire it up. The panel builds all\n // three field-management modals (add/edit, archive, delete) itself.\n this.customFieldsPanel = new CustomFieldsPanelState({\n fieldsSource: params.fieldsSource,\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n closeSidePanel: this.toolbar.closeSidePanel,\n createFieldActionsMenu: params.createFieldActionsMenu,\n });\n // Opening the add/edit modal and reading the per-field menu are the same for\n // every source, so derive them from the panel rather than per-source.\n this.openFieldModal = (opts) =>\n this.customFieldsPanel.openCustomFieldModal({\n fieldId: opts?.fieldId,\n origin: opts?.origin ?? 'external',\n customOrigin: opts?.customOrigin,\n });\n this.fieldActionsMenu = this.customFieldsPanel.fieldActionsMenu;\n this.fieldActionHandlers = params.createFieldActionHandlers?.(\n this.customFieldsPanel,\n );\n }\n\n /**\n * Attaches a source to a table's toolbar. Builds the wrapper once; calling it\n * again (e.g. on re-render) is a no-op.\n */\n static setOnTable(\n toolbar: ToolbarCollectionState<any, any>,\n source: { fieldsSource: FieldsSource } & FieldsSourceRendering,\n ) {\n toolbar.collectionFieldsSource ??= new CollectionFieldsSourceState({\n ...source,\n toolbar,\n });\n }\n\n readonly initTask = new TaskState();\n\n buildFilters(): FilterElement[] {\n return buildFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n );\n }\n\n /** Registers a filter state per filterable field on the collection query. */\n registerFilters() {\n registerFieldFilters(this.toolbar, this.fieldsSource, this.filterConfig);\n }\n\n /**\n * Builds the columns from the fields, or null while the source is still\n * loading so existing columns are kept.\n */\n buildColumns(firstBuild: boolean): Column[] | null {\n if (!this.initTask.status.isSuccess) {\n return null;\n }\n return buildFieldColumns(this.fieldsSource, this.columnOverrides, {\n firstBuild,\n });\n }\n\n syncColumns() {\n const columns = this.buildColumns(!this.hasBuiltColumns);\n if (columns) {\n this.toolbar.setExtendedColumns(columns);\n this.hasBuiltColumns = true;\n }\n }\n\n /** Merges a returned fields map into the source (no refetch). No-ops for sources\n * that don't support in-place merging. The fields reaction rebuilds columns. */\n mergeFields(fields: Schema['fields']) {\n this.fieldsSource.mergeFields?.(fields);\n }\n\n init() {\n // Idempotent, and the field renderers can't translate until it resolves.\n fieldsContainerOf(this.schemaSource)?.init();\n this.initTask.runOnce(() => this.fieldsSource.load());\n this.initTask.status.promise?.catch(() => this.handleLoadError());\n\n const disposers = [\n // Push the columns once the source loads, and again whenever the field\n // list changes (add/edit/delete field). The first push starts every\n // column hidden; later pushes keep the user's selection.\n reaction(\n () =>\n [this.fieldsSource.fields, this.initTask.status.isSuccess] as const,\n () => this.syncColumns(),\n ),\n // Register a filter state per filterable field. filterableFields populates\n // inside the source's load (before initTask resolves), so the collection's\n // initial fetch still waits for these — matching the prior per-source timing.\n reaction(\n () => this.fieldsSource.filterableFields,\n () => this.registerFilters(),\n { fireImmediately: true },\n ),\n // Make custom-columns storage reconciliation wait until this source's\n // columns are built, so a stored hide/show selection for source fields\n // survives a reload. Covers any source.\n ...(this.toolbar.customColumnsState?.events\n ? [\n addEventListener(\n this.toolbar.customColumnsState.events,\n 'beforeInitialFetch',\n () => this.initTask.status.promise?.catch(() => {}),\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n private handleLoadError() {\n handleFieldsSourceLoadError({\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n error: this.initTask.status.error,\n errorCode: this.errorCode,\n reload: () => this.retryLoad(),\n });\n }\n\n /** Re-runs the source load after a failure (the retry toast). */\n private retryLoad() {\n this.initTask.reset();\n this.initTask.runOnce(() => this.fieldsSource.load());\n return this.initTask.status.promise;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AAUA,IAAAE,sBAAA,GAAAF,OAAA;AAEA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,4BAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAUA,IAAAM,uBAAA,GAAAN,OAAA;AAOA;AACA;;AAMA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8CA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMO,2BAA2B,CAAC;EA0BvCC,WAAWA,CACTC,MAGyB,EACzB;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IA7BF;AACF;IADE,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAcA;AACF;IADE,IAAAD,gBAAA,CAAAC,OAAA;IAGA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,2BAK0B,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,oBAyDX,IAAIC,kBAAS,CAAC,CAAC;IAjDjC,IAAI,CAACC,YAAY,GAAGJ,MAAM,CAACI,YAAY;IACvC,IAAI,CAACC,OAAO,GAAGL,MAAM,CAACK,OAAO;IAC7B,IAAI,CAACC,mBAAmB,GAAGN,MAAM,CAACM,mBAAmB;IACrD,IAAI,CAACC,KAAK,GAAGP,MAAM,CAACO,KAAK;IACzB,IAAI,CAACC,YAAY,GAAGR,MAAM,CAACQ,YAAY;IACvC,IAAI,CAACC,eAAe,GAAGT,MAAM,CAACS,eAAe;IAC7C,IAAI,CAACC,YAAY,GAAGV,MAAM,CAACU,YAAY;IACvC,IAAI,CAACC,eAAe,GAAGX,MAAM,CAACW,eAAe;IAC7C,IAAI,CAACC,UAAU,GAAGZ,MAAM,CAACY,UAAU;IACnC,IAAI,CAACC,SAAS,GAAGb,MAAM,CAACa,SAAS,IAAI,qCAAqC;;IAE1E;IACA;IACA;IACA,IAAI,CAACC,iBAAiB,GAAG,IAAIC,8CAAsB,CAAC;MAClDX,YAAY,EAAEJ,MAAM,CAACI,YAAY;MACjCY,SAAS,EAAE,IAAI,CAACX,OAAO,CAACW,SAAS;MACjCC,QAAQ,EAAE,IAAI,CAACZ,OAAO,CAACY,QAAQ;MAC/BC,cAAc,EAAE,IAAI,CAACb,OAAO,CAACa,cAAc;MAC3CC,sBAAsB,EAAEnB,MAAM,CAACmB;IACjC,CAAC,CAAC;IACF;IACA;IACA,IAAI,CAACC,cAAc,GAAIC,IAAI,IACzB,IAAI,CAACP,iBAAiB,CAACQ,oBAAoB,CAAC;MAC1CC,OAAO,EAAEF,IAAI,oBAAJA,IAAI,CAAEE,OAAO;MACtBC,MAAM,EAAE,CAAAH,IAAI,oBAAJA,IAAI,CAAEG,MAAM,KAAI,UAAU;MAClCC,YAAY,EAAEJ,IAAI,oBAAJA,IAAI,CAAEI;IACtB,CAAC,CAAC;IACJ,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACZ,iBAAiB,CAACY,gBAAgB;IAC/D,IAAI,CAACC,mBAAmB,GAAG3B,MAAM,CAAC4B,yBAAyB,oBAAhC5B,MAAM,CAAC4B,yBAAyB,CACzD,IAAI,CAACd,iBACP,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACE,OAAOe,UAAUA,CACfxB,OAAyC,EACzCyB,MAA8D,EAC9D;IACAzB,OAAO,CAAC0B,sBAAsB,KAA9B1B,OAAO,CAAC0B,sBAAsB,GAAK,IAAIjC,2BAA2B,CAAC;MACjE,GAAGgC,MAAM;MACTzB;IACF,CAAC,CAAC;EACJ;EAIA2B,YAAYA,CAAA,EAAoB;IAC9B,OAAO,IAAAC,oCAAiB,EACtB,IAAI,CAAC5B,OAAO,EACZ,IAAI,CAACD,YAAY,EACjB,IAAI,CAACI,YACP,CAAC;EACH;;EAEA;EACA0B,eAAeA,CAAA,EAAG;IAChB,IAAAC,uCAAoB,EAAC,IAAI,CAAC9B,OAAO,EAAE,IAAI,CAACD,YAAY,EAAE,IAAI,CAACI,YAAY,CAAC;EAC1E;;EAEA;AACF;AACA;AACA;EACE4B,YAAYA,CAACC,UAAmB,EAAmB;IACjD,IAAI,CAAC,IAAI,CAACC,QAAQ,CAACC,MAAM,CAACC,SAAS,EAAE;MACnC,OAAO,IAAI;IACb;IACA,OAAO,IAAAC,oCAAiB,EAAC,IAAI,CAACrC,YAAY,EAAE,IAAI,CAACK,eAAe,EAAE;MAChE4B;IACF,CAAC,CAAC;EACJ;EAEAK,WAAWA,CAAA,EAAG;IACZ,MAAMC,OAAO,GAAG,IAAI,CAACP,YAAY,CAAC,CAAC,IAAI,CAACQ,eAAe,CAAC;IACxD,IAAID,OAAO,EAAE;MACX,IAAI,CAACtC,OAAO,CAACwC,kBAAkB,CAACF,OAAO,CAAC;MACxC,IAAI,CAACC,eAAe,GAAG,IAAI;IAC7B;EACF;;EAEA;AACF;EACEE,WAAWA,CAACC,MAAwB,EAAE;IAAA,IAAAC,qBAAA,EAAAC,kBAAA;IACpC,CAAAD,qBAAA,IAAAC,kBAAA,OAAI,CAAC7C,YAAY,EAAC0C,WAAW,aAA7BE,qBAAA,CAAAE,IAAA,CAAAD,kBAAA,EAAgCF,MAAM,CAAC;EACzC;EAEAI,IAAIA,CAAA,EAAG;IAAA,IAAAC,kBAAA,EAAAC,qBAAA,EAAAC,qBAAA;IACL;IACA,CAAAF,kBAAA,OAAAG,wCAAiB,EAAC,IAAI,CAAC7C,YAAY,CAAC,aAApC0C,kBAAA,CAAsCD,IAAI,CAAC,CAAC;IAC5C,IAAI,CAACb,QAAQ,CAACkB,OAAO,CAAC,MAAM,IAAI,CAACpD,YAAY,CAACqD,IAAI,CAAC,CAAC,CAAC;IACrD,CAAAJ,qBAAA,OAAI,CAACf,QAAQ,CAACC,MAAM,CAACmB,OAAO,aAA5BL,qBAAA,CAA8BM,KAAK,CAAC,MAAM,IAAI,CAACC,eAAe,CAAC,CAAC,CAAC;IAEjE,MAAMC,SAAS,GAAG;IAChB;IACA;IACA;IACA,IAAAC,cAAQ,EACN,MACE,CAAC,IAAI,CAAC1D,YAAY,CAAC2C,MAAM,EAAE,IAAI,CAACT,QAAQ,CAACC,MAAM,CAACC,SAAS,CAAU,EACrE,MAAM,IAAI,CAACE,WAAW,CAAC,CACzB,CAAC;IACD;IACA;IACA;IACA,IAAAoB,cAAQ,EACN,MAAM,IAAI,CAAC1D,YAAY,CAAC2D,gBAAgB,EACxC,MAAM,IAAI,CAAC7B,eAAe,CAAC,CAAC,EAC5B;MAAE8B,eAAe,EAAE;IAAK,CAC1B,CAAC;IACD;IACA;IACA;IACA,IAAI,CAAAV,qBAAA,OAAI,CAACjD,OAAO,CAAC4D,kBAAkB,aAA/BX,qBAAA,CAAiCY,MAAM,GACvC,CACE,IAAAC,yBAAgB,EACd,IAAI,CAAC9D,OAAO,CAAC4D,kBAAkB,CAACC,MAAM,EACtC,oBAAoB,EACpB;MAAA,IAAAE,sBAAA;MAAA,QAAAA,sBAAA,GAAM,IAAI,CAAC9B,QAAQ,CAACC,MAAM,CAACmB,OAAO,qBAA5BU,sBAAA,CAA8BT,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAAA,CACrD,CAAC,CACF,GACD,EAAE,CAAC,CACR;IAED,OAAO,MAAM;MACXE,SAAS,CAACQ,OAAO,CAAEC,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAG,CAAC,CAAC;IACjC,CAAC;EACH;EAEQV,eAAeA,CAAA,EAAG;IACxB,IAAAW,wDAA2B,EAAC;MAC1BvD,SAAS,EAAE,IAAI,CAACX,OAAO,CAACW,SAAS;MACjCC,QAAQ,EAAE,IAAI,CAACZ,OAAO,CAACY,QAAQ;MAC/BuD,KAAK,EAAE,IAAI,CAAClC,QAAQ,CAACC,MAAM,CAACiC,KAAK;MACjC3D,SAAS,EAAE,IAAI,CAACA,SAAS;MACzB4D,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACC,SAAS,CAAC;IAC/B,CAAC,CAAC;EACJ;;EAEA;EACQA,SAASA,CAAA,EAAG;IAClB,IAAI,CAACpC,QAAQ,CAACqC,KAAK,CAAC,CAAC;IACrB,IAAI,CAACrC,QAAQ,CAACkB,OAAO,CAAC,MAAM,IAAI,CAACpD,YAAY,CAACqD,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,IAAI,CAACnB,QAAQ,CAACC,MAAM,CAACmB,OAAO;EACrC;AACF;AAACkB,OAAA,CAAA9E,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_bexCore","_schemaFieldsContainer","_buildFieldColumns","_handleFieldsSourceLoadError","_buildFieldFilters","_CustomFieldsPanelState","CollectionFieldsSourceState","constructor","params","_defineProperty2","default","TaskState","fieldsSource","toolbar","featuredPageActions","props","filterConfig","columnOverrides","schemaSource","editableCellFor","components","errorCode","customFieldsPanel","CustomFieldsPanelState","container","reportBi","closeSidePanel","createFieldActionsMenu","openFieldModal","opts","openCustomFieldModal","fieldId","origin","customOrigin","fieldActionsMenu","fieldActionHandlers","createFieldActionHandlers","setOnTable","source","collectionFieldsSource","buildFilters","buildFieldFilters","ReferenceFieldFilter","registerFilters","registerFieldFilters","buildColumns","firstBuild","initTask","status","isSuccess","buildFieldColumns","syncColumns","columns","hasBuiltColumns","setExtendedColumns","mergeFields","fields","_this$fieldsSource$me","_this$fieldsSource","call","init","_fieldsContainerOf","_this$initTask$status","_this$toolbar$customC","fieldsContainerOf","runOnce","load","promise","catch","handleLoadError","disposers","reaction","filterableFields","fireImmediately","customColumnsState","events","addEventListener","_this$initTask$status2","forEach","d","handleFieldsSourceLoadError","error","reload","retryLoad","reset","exports"],"sources":["../../../src/state/CollectionFieldsSourceState.ts"],"sourcesContent":["import { reaction } from 'mobx';\nimport type { ComponentType } from 'react';\nimport { addEventListener, TaskState } from '@wix/bex-core';\nimport type {\n FieldsSource,\n CustomFieldOrigin,\n Field,\n Schema,\n SchemaSource,\n WixPatternsErrorCode,\n} from '@wix/bex-core';\nimport type { Column } from '../model';\nimport { fieldsContainerOf } from '../model/schemaFieldsContainer';\nimport type { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { buildFieldColumns, ColumnOverridesContext } from './buildFieldColumns';\nimport { handleFieldsSourceLoadError } from './handleFieldsSourceLoadError';\nimport {\n buildFieldFilters,\n registerFieldFilters,\n type FieldFilterConfig,\n} from './buildFieldFilters';\nimport type {\n FilterElement,\n CollectionToolbarFiltersProps,\n} from '../components/CollectionToolbarFilters';\nimport type { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';\nimport {\n CustomFieldsPanelState,\n type FieldActionsMenuBuilder,\n} from './CustomFields/CustomFieldsPanelState';\nimport type { FieldActionHandlersConfig } from '../components/FieldActions';\nimport type { CustomColumnsBaseProps } from '../components/CustomColumns/CustomColumns';\nimport type { ReferenceFieldFilterProps } from '../components/ReferenceFieldFilter/ReferenceFieldFilter';\n\n/** A cell type plus the config its editor needs, for a field the default\n * type→cell mapping can't fully resolve on its own. */\nexport interface EditableCellUpgrade {\n cellType: string;\n typeConfig: unknown;\n}\n\n/** Builds the raw field-management for one field (handlers + registry metadata). */\ntype FieldActionHandlersBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionHandlersConfig | null;\n\n/**\n * Components the source attaches at construction time so the table chunk can\n * render them via `source.components.X` instead of statically importing them.\n * Each source's rendering file (dataExtensionRendering / schemaRendering) is\n * the only place these are imported — those files are reachable only from the\n * source's feature module, so the components ship in that chunk, not the\n * table chunk.\n */\nexport interface FieldsSourceComponents {\n FieldManagementModals: ComponentType<{ source: CollectionFieldsSourceState }>;\n CustomColumns: ComponentType<CustomColumnsBaseProps>;\n CollectionToolbarFilters: ComponentType<CollectionToolbarFiltersProps>;\n /** Filters a reference field by the referenced items. Omit it and reference\n * fields get no filter — which is what a source with no reference fields\n * wants, since the component pulls the referenced-item avatar in with it. */\n ReferenceFieldFilter?: ComponentType<ReferenceFieldFilterProps>;\n}\n\n/**\n * The source-specific behavior a collection supplies on top of its FieldsSource\n * (data) — column tweaks, filter behavior, the manage-fields panel, page actions,\n * field actions, and the field-management modal states. A source builds one of\n * these (dataExtensionRendering / schemaRendering); it is spread onto\n * CollectionFieldsSourceState, which owns the pieces directly. The collection\n * renders these with shared, source-neutral components.\n */\nexport interface FieldsSourceRendering {\n /** The schema behind this source, when it has one. The collection initializes\n * the fields container the schema carries; the components read it off the\n * same object for React context. */\n schemaSource?: SchemaSource<any>;\n /**\n * Lets a source replace any column property the shared builder produces,\n * including the render function for media types. Called per field.\n */\n columnOverrides?(field: Field, ctx: ColumnOverridesContext): Partial<Column>;\n /**\n * The editable cell for a field whose editor needs `typeConfig` only the\n * source can supply (a reference cell's referenced collection). Called per\n * field when building editable columns; `undefined` keeps the default mapping\n * for that field type, which for those types is a read-only display.\n */\n editableCellFor?(field: Field): EditableCellUpgrade | undefined;\n /** Per-source filter behavior (text operators, decimal, type icon). */\n filterConfig: FieldFilterConfig;\n /**\n * Builds the source's per-field actions menu for the panel it belongs to. The\n * spine builds the panel and passes it in; the resulting menu drives both the\n * manage-fields panel and the customize-columns header.\n */\n createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n /**\n * Builds the raw field-management for one field (handlers + registry metadata)\n * for the panel it belongs to, before grouping. The header merges these with\n * its table-intrinsic actions (sort / hide / filter). Omitted by sources with\n * no field actions.\n */\n createFieldActionHandlers?: (\n panel: CustomFieldsPanelState,\n ) => FieldActionHandlersBuilder;\n featuredPageActions: MoreActionItemFactory[];\n props?: { disableDefaultPageAction?: boolean };\n /** BI error code reported when the source's load fails. Default: 'InitCustomFieldsDataExtensionFailed'. */\n errorCode?: WixPatternsErrorCode;\n /** The source provides these so the table chunk renders them via DI rather\n * than static import. See FieldsSourceComponents. */\n components: FieldsSourceComponents;\n}\n\n/**\n * A collection's field source: the FieldsSource (data) plus the source's UI,\n * held as flat members. The toolbar holds one of these rather than a specific\n * source. It owns the load status (initTask); field and filter reads pass\n * through to the FieldsSource's own observables.\n */\nexport class CollectionFieldsSourceState {\n readonly fieldsSource: FieldsSource;\n /** The field-management state (modals + per-field menu). Built here from the\n * source's config so every source gets the same panel. */\n readonly customFieldsPanel: CustomFieldsPanelState;\n readonly featuredPageActions: MoreActionItemFactory[];\n readonly props?: { disableDefaultPageAction?: boolean };\n readonly filterConfig: FieldFilterConfig;\n readonly openFieldModal: (opts?: {\n fieldId?: string;\n origin?: CustomFieldOrigin;\n customOrigin?: string;\n }) => void;\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n readonly fieldActionHandlers?: FieldActionHandlersBuilder;\n readonly components: FieldsSourceComponents;\n /** Read by the source-driven components, which put its fields container in\n * React context. */\n readonly schemaSource?: SchemaSource<any>;\n /** Read by EditableTableState when it builds the source's editable columns. */\n readonly editableCellFor?: FieldsSourceRendering['editableCellFor'];\n private readonly columnOverrides?: FieldsSourceRendering['columnOverrides'];\n private readonly toolbar: ToolbarCollectionState<any, any>;\n private readonly errorCode: WixPatternsErrorCode;\n private hasBuiltColumns = false;\n\n constructor(\n params: {\n fieldsSource: FieldsSource;\n toolbar: ToolbarCollectionState<any, any>;\n } & FieldsSourceRendering,\n ) {\n this.fieldsSource = params.fieldsSource;\n this.toolbar = params.toolbar;\n this.featuredPageActions = params.featuredPageActions;\n this.props = params.props;\n this.filterConfig = params.filterConfig;\n this.columnOverrides = params.columnOverrides;\n this.schemaSource = params.schemaSource;\n this.editableCellFor = params.editableCellFor;\n this.components = params.components;\n this.errorCode = params.errorCode ?? 'InitCustomFieldsDataExtensionFailed';\n\n // The panel is generic — the source supplies only its config (the menu\n // factory); the table's container/reportBi wire it up. The panel builds all\n // three field-management modals (add/edit, archive, delete) itself.\n this.customFieldsPanel = new CustomFieldsPanelState({\n fieldsSource: params.fieldsSource,\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n closeSidePanel: this.toolbar.closeSidePanel,\n createFieldActionsMenu: params.createFieldActionsMenu,\n });\n // Opening the add/edit modal and reading the per-field menu are the same for\n // every source, so derive them from the panel rather than per-source.\n this.openFieldModal = (opts) =>\n this.customFieldsPanel.openCustomFieldModal({\n fieldId: opts?.fieldId,\n origin: opts?.origin ?? 'external',\n customOrigin: opts?.customOrigin,\n });\n this.fieldActionsMenu = this.customFieldsPanel.fieldActionsMenu;\n this.fieldActionHandlers = params.createFieldActionHandlers?.(\n this.customFieldsPanel,\n );\n }\n\n /**\n * Attaches a source to a table's toolbar. Builds the wrapper once; calling it\n * again (e.g. on re-render) is a no-op.\n */\n static setOnTable(\n toolbar: ToolbarCollectionState<any, any>,\n source: { fieldsSource: FieldsSource } & FieldsSourceRendering,\n ) {\n toolbar.collectionFieldsSource ??= new CollectionFieldsSourceState({\n ...source,\n toolbar,\n });\n }\n\n readonly initTask = new TaskState();\n\n buildFilters(): FilterElement[] {\n return buildFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n this.components.ReferenceFieldFilter,\n );\n }\n\n /** Registers a filter state per filterable field on the collection query. */\n registerFilters() {\n registerFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n this.components.ReferenceFieldFilter,\n );\n }\n\n /**\n * Builds the columns from the fields, or null while the source is still\n * loading so existing columns are kept.\n */\n buildColumns(firstBuild: boolean): Column[] | null {\n if (!this.initTask.status.isSuccess) {\n return null;\n }\n return buildFieldColumns(this.fieldsSource, this.columnOverrides, {\n firstBuild,\n });\n }\n\n syncColumns() {\n const columns = this.buildColumns(!this.hasBuiltColumns);\n if (columns) {\n this.toolbar.setExtendedColumns(columns);\n this.hasBuiltColumns = true;\n }\n }\n\n /** Merges a returned fields map into the source (no refetch). No-ops for sources\n * that don't support in-place merging. The fields reaction rebuilds columns. */\n mergeFields(fields: Schema['fields']) {\n this.fieldsSource.mergeFields?.(fields);\n }\n\n init() {\n // Idempotent, and the field renderers can't translate until it resolves.\n fieldsContainerOf(this.schemaSource)?.init();\n this.initTask.runOnce(() => this.fieldsSource.load());\n this.initTask.status.promise?.catch(() => this.handleLoadError());\n\n const disposers = [\n // Push the columns once the source loads, and again whenever the field\n // list changes (add/edit/delete field). The first push starts every\n // column hidden; later pushes keep the user's selection.\n reaction(\n () =>\n [this.fieldsSource.fields, this.initTask.status.isSuccess] as const,\n () => this.syncColumns(),\n ),\n // Register a filter state per filterable field. filterableFields populates\n // inside the source's load (before initTask resolves), so the collection's\n // initial fetch still waits for these — matching the prior per-source timing.\n reaction(\n () => this.fieldsSource.filterableFields,\n () => this.registerFilters(),\n { fireImmediately: true },\n ),\n // Make custom-columns storage reconciliation wait until this source's\n // columns are built, so a stored hide/show selection for source fields\n // survives a reload. Covers any source.\n ...(this.toolbar.customColumnsState?.events\n ? [\n addEventListener(\n this.toolbar.customColumnsState.events,\n 'beforeInitialFetch',\n () => this.initTask.status.promise?.catch(() => {}),\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n private handleLoadError() {\n handleFieldsSourceLoadError({\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n error: this.initTask.status.error,\n errorCode: this.errorCode,\n reload: () => this.retryLoad(),\n });\n }\n\n /** Re-runs the source load after a failure (the retry toast). */\n private retryLoad() {\n this.initTask.reset();\n this.initTask.runOnce(() => this.fieldsSource.load());\n return this.initTask.status.promise;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "CollectionPageHeader2402203768";
|
|
9
9
|
var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
|
|
10
10
|
var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
|
|
11
11
|
var style = exports.style = _style_;
|
|
12
12
|
var st = exports.st = _style_;
|
|
13
13
|
var namespace = exports.namespace = _namespace_;
|
|
14
14
|
var classes = exports.classes = {
|
|
15
|
-
"root": "
|
|
15
|
+
"root": "CollectionPageHeader2402203768__root"
|
|
16
16
|
};
|
|
17
17
|
var keyframes = exports.keyframes = {};
|
|
18
18
|
var layers = exports.layers = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
1
|
+
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader2402203768\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"CollectionPageHeader2402203768__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,gCAAgC;AAClD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAsC,CAAC;AAC7D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -29,6 +29,7 @@ class EntityPageState {
|
|
|
29
29
|
(0, _defineProperty2.default)(this, "_schema", null);
|
|
30
30
|
(0, _defineProperty2.default)(this, "_parentPageId", void 0);
|
|
31
31
|
(0, _defineProperty2.default)(this, "_parentPath", void 0);
|
|
32
|
+
(0, _defineProperty2.default)(this, "_parentReferrer", void 0);
|
|
32
33
|
(0, _defineProperty2.default)(this, "actionsBarConfig", void 0);
|
|
33
34
|
/**
|
|
34
35
|
* The page's side-panel host, the way a table's lives on its toolbar.
|
|
@@ -59,6 +60,7 @@ class EntityPageState {
|
|
|
59
60
|
this._parentPageId = params.parentPageId;
|
|
60
61
|
this.transformEntityToCollectionItem = params.transformEntityToCollectionItem || (anEntity => anEntity);
|
|
61
62
|
this._parentPath = params.parentPath;
|
|
63
|
+
this._parentReferrer = params.parentReferrer;
|
|
62
64
|
this.schemaSource = params.schemaSource;
|
|
63
65
|
this.container = params.container;
|
|
64
66
|
this._routerState = params.routerState ?? null;
|
|
@@ -187,7 +189,10 @@ class EntityPageState {
|
|
|
187
189
|
});
|
|
188
190
|
} else {
|
|
189
191
|
this.container.navigateTo({
|
|
190
|
-
pageId: this._parentPageId
|
|
192
|
+
pageId: this._parentPageId,
|
|
193
|
+
...(this._parentReferrer !== undefined && {
|
|
194
|
+
referrer: this._parentReferrer
|
|
195
|
+
})
|
|
191
196
|
});
|
|
192
197
|
}
|
|
193
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","entity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","observable","ref","setEntity","_schema","setSchema","customColumnsState","isFormDirty","computed","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","isMobileDevice","formState","isSubmitSuccessful","_isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$fieldsContainer","_this$schemaSource","_this$fieldsContainer2","_this$bi$appLoaded","_this$bi","data","loadedSchema","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","actionsBarConfig","cancelCta","biAdditionalInfo","navigateToParent","updatedEntity","entityStringKey","entityObject","navigate","state","navigateTo","pageId","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","undefined","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","isLoading","events","emit","isValid","widgetsFormData","validate","_this$actionsBarConfi2","saveCta","run","savedEntity","submitSuccessful","_this$actionsBarConfi3","onSaveResult","errorMonitor","captureException","setError","_this$actionsBarConfi4","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n WixPatternsContainer,\n ActionsBarConfig,\n isMobileDevice,\n SchemaSource,\n Schema,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport type { PatternsFieldsAppContainer } from '@wix/patterns-fields/providers';\nimport { fieldsContainerOf } from '../../model/schemaFieldsContainer';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\nimport type { SidePanelsState } from '../SidePanelsState';\nimport type { CustomColumnsEntityPageState } from '../CustomColumnsEntityPageState';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\ninterface EntityPageStateParamsBase<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns An object with a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.\n * The previous return types are still supported but are now deprecated.\n */\n saveErrorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) =>\n | {\n message?: string;\n /**\n * @deprecated use `action` instead\n */\n tryAgain?: boolean;\n action?: { text: string; onClick: () => void };\n }\n | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n form: UseFormReturn<V>;\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n\n /**\n * An object representing the router state\n */\n routerState?: WixPatternsRouterState | null;\n\n /**\n * An optional object to override the actions bar.\n */\n actionsBarConfig?: ActionsBarConfig;\n\n /**\n * An optional schema source describing how to load the schema and access\n * the entity's data. When present, the page can read fields from the source\n * instead of relying only on hand-wired fetch/onSave callbacks.\n */\n schemaSource?: SchemaSource<T>;\n}\n\nexport type EntityPageStateParams<\n T,\n V extends FieldValues = FieldValues,\n> = EntityPageStateParamsBase<T, V>;\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n _schema: Schema | null = null;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];\n\n /**\n * The page's side-panel host, the way a table's lives on its toolbar.\n * Attached by the first feature that needs one, through\n * `SidePanelsState.setOnPage` — so a page with no panels neither builds nor\n * bundles the side-panel code. Everything on the page shares this host, which\n * is what keeps one panel open at a time.\n */\n panels: SidePanelsState | null = null;\n\n /** The fields card's \"Manage fields\" state, set by the card that owns it —\n * the panel is rendered by the host with no props and reads it from here,\n * as a table's panel reads `toolbar.customColumnsState`. */\n customColumnsState: CustomColumnsEntityPageState | null = null;\n\n readonly schemaSource?: SchemaSource<T>;\n\n /**\n * The container the page's field renderers are built with — the one the schema\n * carries, so a table on the same schema shares it. Initialized in `init()`\n * below, next to the schema load the fields also wait on; the schema-entry\n * EntityPage puts it in React context.\n */\n get fieldsContainer(): PatternsFieldsAppContainer | undefined {\n return fieldsContainerOf(this.schemaSource);\n }\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _routerState: WixPatternsRouterState | null = null;\n\n readonly formPage: FormPageState<V>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n\n this._routerState = params.routerState ?? null;\n\n if (this._routerState) {\n this._entity = this._routerState.currentState?._chosenEntity?.entity;\n }\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _entity: observable.ref,\n setEntity: action,\n _schema: observable.ref,\n setSchema: action,\n customColumnsState: observable.ref,\n isFormDirty: computed,\n _withinRouter: computed,\n });\n }\n\n init() {\n this._checkPageParams();\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n if (isMobileDevice()) {\n return;\n }\n\n const { form } = this;\n // Check both react-hook-form's state AND the explicitly set flag\n if (\n form.formState.isSubmitSuccessful ||\n this.formPage._isSubmitSuccessful ||\n !this.isFormDirty\n ) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n // The field renderers can't translate until this resolves, so the page\n // waits on it alongside the fetch. Idempotent.\n this.fieldsContainer?.init();\n\n const [data, loadedSchema] = await Promise.all([\n this.fetch(),\n this.schemaSource?.loadSchema(),\n container.initTask.status.promise,\n this.fieldsContainer?.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n // Don't overwrite a schema something already set. A fields card mirrors the\n // schema its field mutations merge into, and `loadSchema` is memoized — so\n // setting it here again would put the pre-mutation fields map back and drop\n // a field the server already has. Nothing is lost by keeping the newer one:\n // this only ever re-sets the very same object (e.g. on `retryFetch`).\n if (loadedSchema && !this.schema) {\n this.setSchema(loadedSchema.schema);\n }\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n setSchema(schema: Schema | null) {\n this._schema = schema;\n }\n\n get schema(): Schema | null {\n return this._schema;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this.formPage.isSubmitSuccessful = flag;\n }\n\n get isFormDirty() {\n return this.formPage.isDirty;\n }\n\n // backwards compatibility\n set _isFormDirty(val: boolean) {\n this.formPage._isFormDirty = val;\n }\n\n get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({\n ctaName: 'Cancel',\n additionalInfo: this.actionsBarConfig?.cancelCta?.biAdditionalInfo,\n });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n retry: () => this.handleSubmit(e),\n });\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n const action =\n typeof errorToast === 'string' ? undefined : errorToast?.action;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action:\n action || showTryAgain\n ? {\n uiType: 'LINK',\n text:\n action?.text ?? this.container.translate('cairo.toast.retry'),\n onClick: () => {\n if (action?.onClick) {\n action.onClick();\n } else {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n }\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: widgetsFormData } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n return;\n }\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n let submitSuccessful = false;\n\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: true,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n try {\n if (!this.isFetching) {\n const onSaveResult = await this.onSave({\n widgetsFormData,\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n submitSuccessful = true; // Mark as successful locally\n // Explicitly set isSubmitSuccessful to prevent onBeforeUnload from triggering\n this.isSubmitSuccessful = true;\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n }, // can be used to report validation errors\n )(e);\n\n if (!submitSuccessful) {\n return;\n }\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.formPage.submitTask.status.promise;\n }\n\n get initTask() {\n return this.formPage.initTask;\n }\n\n get submitTask() {\n return this.formPage.submitTask;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","_parentReferrer","parentReferrer","container","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","entity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","observable","ref","setEntity","_schema","setSchema","customColumnsState","isFormDirty","computed","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","isMobileDevice","formState","isSubmitSuccessful","_isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$fieldsContainer","_this$schemaSource","_this$fieldsContainer2","_this$bi$appLoaded","_this$bi","data","loadedSchema","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","actionsBarConfig","cancelCta","biAdditionalInfo","navigateToParent","updatedEntity","entityStringKey","entityObject","navigate","state","navigateTo","pageId","undefined","referrer","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","isLoading","events","emit","isValid","widgetsFormData","validate","_this$actionsBarConfi2","saveCta","run","savedEntity","submitSuccessful","_this$actionsBarConfi3","onSaveResult","errorMonitor","captureException","setError","_this$actionsBarConfi4","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n WixPatternsContainer,\n ActionsBarConfig,\n isMobileDevice,\n SchemaSource,\n Schema,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport type { PatternsFieldsAppContainer } from '@wix/patterns-fields/providers';\nimport { fieldsContainerOf } from '../../model/schemaFieldsContainer';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\nimport type { SidePanelsState } from '../SidePanelsState';\nimport type { CustomColumnsEntityPageState } from '../CustomColumnsEntityPageState';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\ninterface EntityPageStateParamsBase<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns An object with a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.\n * The previous return types are still supported but are now deprecated.\n */\n saveErrorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) =>\n | {\n message?: string;\n /**\n * @deprecated use `action` instead\n */\n tryAgain?: boolean;\n action?: { text: string; onClick: () => void };\n }\n | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n form: UseFormReturn<V>;\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n\n /**\n * Referrer forwarded to the parent page on back, cancel and save, so callers\n * can carry navigation context across the transition.\n *\n * Only used for parentPageId navigations; Patterns Router keeps its context\n * in router state.\n *\n * Forwarded by the BM and Giza providers. Dropped by the dashboard provider,\n * whose SDK Destination has no referrer field.\n */\n parentReferrer?: string;\n\n /**\n * An object representing the router state\n */\n routerState?: WixPatternsRouterState | null;\n\n /**\n * An optional object to override the actions bar.\n */\n actionsBarConfig?: ActionsBarConfig;\n\n /**\n * An optional schema source describing how to load the schema and access\n * the entity's data. When present, the page can read fields from the source\n * instead of relying only on hand-wired fetch/onSave callbacks.\n */\n schemaSource?: SchemaSource<T>;\n}\n\nexport type EntityPageStateParams<\n T,\n V extends FieldValues = FieldValues,\n> = EntityPageStateParamsBase<T, V>;\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n _schema: Schema | null = null;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n private readonly _parentReferrer?: string;\n\n actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];\n\n /**\n * The page's side-panel host, the way a table's lives on its toolbar.\n * Attached by the first feature that needs one, through\n * `SidePanelsState.setOnPage` — so a page with no panels neither builds nor\n * bundles the side-panel code. Everything on the page shares this host, which\n * is what keeps one panel open at a time.\n */\n panels: SidePanelsState | null = null;\n\n /** The fields card's \"Manage fields\" state, set by the card that owns it —\n * the panel is rendered by the host with no props and reads it from here,\n * as a table's panel reads `toolbar.customColumnsState`. */\n customColumnsState: CustomColumnsEntityPageState | null = null;\n\n readonly schemaSource?: SchemaSource<T>;\n\n /**\n * The container the page's field renderers are built with — the one the schema\n * carries, so a table on the same schema shares it. Initialized in `init()`\n * below, next to the schema load the fields also wait on; the schema-entry\n * EntityPage puts it in React context.\n */\n get fieldsContainer(): PatternsFieldsAppContainer | undefined {\n return fieldsContainerOf(this.schemaSource);\n }\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _routerState: WixPatternsRouterState | null = null;\n\n readonly formPage: FormPageState<V>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this._parentReferrer = params.parentReferrer;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n\n this._routerState = params.routerState ?? null;\n\n if (this._routerState) {\n this._entity = this._routerState.currentState?._chosenEntity?.entity;\n }\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _entity: observable.ref,\n setEntity: action,\n _schema: observable.ref,\n setSchema: action,\n customColumnsState: observable.ref,\n isFormDirty: computed,\n _withinRouter: computed,\n });\n }\n\n init() {\n this._checkPageParams();\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n if (isMobileDevice()) {\n return;\n }\n\n const { form } = this;\n // Check both react-hook-form's state AND the explicitly set flag\n if (\n form.formState.isSubmitSuccessful ||\n this.formPage._isSubmitSuccessful ||\n !this.isFormDirty\n ) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n // The field renderers can't translate until this resolves, so the page\n // waits on it alongside the fetch. Idempotent.\n this.fieldsContainer?.init();\n\n const [data, loadedSchema] = await Promise.all([\n this.fetch(),\n this.schemaSource?.loadSchema(),\n container.initTask.status.promise,\n this.fieldsContainer?.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n // Don't overwrite a schema something already set. A fields card mirrors the\n // schema its field mutations merge into, and `loadSchema` is memoized — so\n // setting it here again would put the pre-mutation fields map back and drop\n // a field the server already has. Nothing is lost by keeping the newer one:\n // this only ever re-sets the very same object (e.g. on `retryFetch`).\n if (loadedSchema && !this.schema) {\n this.setSchema(loadedSchema.schema);\n }\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n setSchema(schema: Schema | null) {\n this._schema = schema;\n }\n\n get schema(): Schema | null {\n return this._schema;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this.formPage.isSubmitSuccessful = flag;\n }\n\n get isFormDirty() {\n return this.formPage.isDirty;\n }\n\n // backwards compatibility\n set _isFormDirty(val: boolean) {\n this.formPage._isFormDirty = val;\n }\n\n get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({\n ctaName: 'Cancel',\n additionalInfo: this.actionsBarConfig?.cancelCta?.biAdditionalInfo,\n });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n ...(this._parentReferrer !== undefined && {\n referrer: this._parentReferrer,\n }),\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n retry: () => this.handleSubmit(e),\n });\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n const action =\n typeof errorToast === 'string' ? undefined : errorToast?.action;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action:\n action || showTryAgain\n ? {\n uiType: 'LINK',\n text:\n action?.text ?? this.container.translate('cairo.toast.retry'),\n onClick: () => {\n if (action?.onClick) {\n action.onClick();\n } else {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n }\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: widgetsFormData } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n return;\n }\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n let submitSuccessful = false;\n\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: true,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n try {\n if (!this.isFetching) {\n const onSaveResult = await this.onSave({\n widgetsFormData,\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n submitSuccessful = true; // Mark as successful locally\n // Explicitly set isSubmitSuccessful to prevent onBeforeUnload from triggering\n this.isSubmitSuccessful = true;\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n }, // can be used to report validation errors\n )(e);\n\n if (!submitSuccessful) {\n return;\n }\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.formPage.submitTask.status.promise;\n }\n\n get initTask() {\n return this.formPage.initTask;\n }\n\n get submitTask() {\n return this.formPage.submitTask;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "FormPageHeader3926371897";
|
|
9
9
|
var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
|
|
10
10
|
var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
|
|
11
11
|
var style = exports.style = _style_;
|
|
12
12
|
var st = exports.st = _style_;
|
|
13
13
|
var namespace = exports.namespace = _namespace_;
|
|
14
14
|
var classes = exports.classes = {
|
|
15
|
-
"root": "
|
|
15
|
+
"root": "FormPageHeader3926371897__root"
|
|
16
16
|
};
|
|
17
17
|
var keyframes = exports.keyframes = {};
|
|
18
18
|
var layers = exports.layers = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
1
|
+
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader3926371897\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"FormPageHeader3926371897__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -773,9 +773,16 @@ class ToolbarCollectionState {
|
|
|
773
773
|
}
|
|
774
774
|
} = this;
|
|
775
775
|
const tableColumnsIds = new Set(tableColumns.map(column => column.id));
|
|
776
|
-
query.sort.value.filter(({
|
|
776
|
+
const staleSortEntries = query.sort.value.filter(({
|
|
777
777
|
field
|
|
778
|
-
}) => !tableColumnsIds.has(field))
|
|
778
|
+
}) => !tableColumnsIds.has(field));
|
|
779
|
+
|
|
780
|
+
// Runs on every column add/duplicate, where the sort is still valid.
|
|
781
|
+
// re-sorting there clears the loaded rows and refetches from page 1.
|
|
782
|
+
if (staleSortEntries.length === 0) {
|
|
783
|
+
return;
|
|
784
|
+
}
|
|
785
|
+
staleSortEntries.forEach(s => {
|
|
779
786
|
query.sort.value.remove(s);
|
|
780
787
|
});
|
|
781
788
|
query.sort.events.emit('change');
|