@wix/patterns 1.496.0 → 1.497.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
- package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
- package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +3 -3
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.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 +6 -6
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTable.js +9 -18
- package/dist/cjs/components/EditableTable/EditableTable.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/JsonInputEdit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/JsonInputEdit.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/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/mediaImage/Edit.js +13 -4
- package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.st.css +7 -0
- package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.st.css.js +22 -0
- package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.st.css.js.map +1 -0
- package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.js +2 -0
- package/dist/cjs/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.js +14 -4
- package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.st.css +6 -0
- package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.st.css.js +23 -0
- package/dist/cjs/components/EditableTable/cellTypes/multiDocument/Edit.st.css.js.map +1 -0
- 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/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/reference/EmptyReferenceView.st.css.js +6 -6
- package/dist/cjs/components/EditableTable/cellTypes/reference/EmptyReferenceView.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/EntityPageFields/EntityPageField.st.css.js +3 -3
- package/dist/cjs/components/EntityPageFields/EntityPageField.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/ImportStepConfiguration.js +30 -28
- package/dist/cjs/components/ImportButton/ImportStepConfiguration.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/cjs/components/SchemaSource/schemaFieldActions.js +24 -6
- package/dist/cjs/components/SchemaSource/schemaFieldActions.js.map +1 -1
- package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +10 -0
- package/dist/cjs/components/SchemaSource/schemaFieldManagement.js.map +1 -1
- package/dist/cjs/components/SchemaSource/tableSchemaSource.js +3 -0
- package/dist/cjs/components/SchemaSource/tableSchemaSource.js.map +1 -1
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
- package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +6 -6
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/cjs/components/Table/NumberCell.st.css.js +2 -2
- package/dist/cjs/components/Table/NumberCell.st.css.js.map +1 -1
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/cjs/components/common.st.css.js +4 -4
- package/dist/cjs/components/common.st.css.js.map +1 -1
- package/dist/cjs/hooks/useOptionalCachedState.js +4 -1
- package/dist/cjs/hooks/useOptionalCachedState.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +3 -3
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
- package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
- package/dist/cjs/state/CustomFields/CustomFieldsPanelState.js +7 -1
- package/dist/cjs/state/CustomFields/CustomFieldsPanelState.js.map +1 -1
- package/dist/cjs/state/EntityPage/EntityPageState.js +4 -0
- package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/cjs/state/EntityPageFieldsCardState.js +5 -1
- package/dist/cjs/state/EntityPageFieldsCardState.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/WixPatternsRouterState.js +13 -0
- package/dist/cjs/state/WixPatternsRouterState.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/ImportButton.md +2 -0
- package/dist/docs/index.json +1 -1
- package/dist/docs/useSchemaSource.md +7 -1
- package/dist/dts-bundle/index.json +28 -28
- package/dist/dts-bundle/index.txt +4 -4
- package/dist/dts-bundle/types/EntityPageState.d.ts +1 -0
- package/dist/dts-bundle/types/SchemaSource.d.ts +5 -0
- package/dist/dts-bundle/types/SchemaSourceInput.d.ts +7 -0
- package/dist/dts-bundle/types/UseCmsSchemaSourceDeps.d.ts +4 -0
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
- package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
- package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +2 -2
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -1
- 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/EditableTable.js +0 -2
- package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/JsonInputEdit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/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/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.js +3 -1
- package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.st.css +7 -0
- package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.st.css.js +15 -0
- package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.st.css.js.map +1 -0
- package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.js +4 -0
- package/dist/esm/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.js +3 -1
- package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.st.css +6 -0
- package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.st.css.js +15 -0
- package/dist/esm/components/EditableTable/cellTypes/multiDocument/Edit.st.css.js.map +1 -0
- 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/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/reference/EmptyReferenceView.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/reference/EmptyReferenceView.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/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- 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/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/esm/components/EntityPageFields/EntityPageField.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportStepConfiguration.js +2 -0
- package/dist/esm/components/ImportButton/ImportStepConfiguration.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/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
- 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/SchemaSource/schemaFieldActions.js +30 -8
- package/dist/esm/components/SchemaSource/schemaFieldActions.js.map +1 -1
- package/dist/esm/components/SchemaSource/schemaFieldManagement.js +12 -0
- package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
- package/dist/esm/components/SchemaSource/tableSchemaSource.js +3 -0
- package/dist/esm/components/SchemaSource/tableSchemaSource.js.map +1 -1
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
- package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/esm/components/Table/NumberCell.st.css.js +2 -2
- package/dist/esm/components/Table/NumberCell.st.css.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/common.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js.map +1 -1
- package/dist/esm/hooks/useOptionalCachedState.js +4 -1
- package/dist/esm/hooks/useOptionalCachedState.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -1
- package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
- package/dist/esm/state/CustomFields/CustomFieldsPanelState.js +13 -1
- package/dist/esm/state/CustomFields/CustomFieldsPanelState.js.map +1 -1
- package/dist/esm/state/EntityPage/EntityPageState.js +3 -0
- package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/esm/state/EntityPageFieldsCardState.js +5 -1
- package/dist/esm/state/EntityPageFieldsCardState.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/WixPatternsRouterState.js +13 -0
- package/dist/esm/state/WixPatternsRouterState.js.map +1 -1
- package/dist/esm/styles.global.css +2 -2
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
- package/dist/types/components/CmsFieldManagement/CmsFieldForm.st.css.d.ts.map +1 -1
- package/dist/types/components/CmsFieldManagement/CmsFieldModal.st.css.d.ts.map +1 -1
- package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +2 -0
- package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +4 -0
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/datetime/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/mediaImage/Edit.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.st.css.d.ts +13 -0
- package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.st.css.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.d.ts +2 -0
- package/dist/types/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/multiDocument/Edit.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/multiDocument/Edit.st.css.d.ts +14 -0
- package/dist/types/components/EditableTable/cellTypes/multiDocument/Edit.st.css.d.ts.map +1 -0
- package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/reference/EmptyReferenceView.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/text/View.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/ImportButton/ImportStepConfiguration.d.ts.map +1 -1
- package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
- package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
- package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/schemaFieldActions.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/tableSchemaSource.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -1
- package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
- package/dist/types/components/Table/AddFieldColumnHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/Table/NumberCell.st.css.d.ts.map +1 -1
- package/dist/types/components/common.st.css.d.ts.map +1 -1
- package/dist/types/hooks/useOptionalCachedState.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/MobilePrimaryActionBar.st.css.d.ts.map +1 -1
- package/dist/types/state/CustomFields/CustomFieldsPanelState.d.ts +1 -0
- package/dist/types/state/CustomFields/CustomFieldsPanelState.d.ts.map +1 -1
- package/dist/types/state/EntityPage/EntityPageState.d.ts +1 -0
- package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
- package/dist/types/state/EntityPageFieldsCardState.d.ts.map +1 -1
- package/dist/types/state/WixPatternsRouterState.d.ts +3 -0
- package/dist/types/state/WixPatternsRouterState.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +4 -0
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/playwright.d.ts +4 -0
- package/dist/types/testkit/playwright.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +4 -0
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +7 -7
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
- package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/CustomFieldModal/CustomFieldFormPiiFields.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/EditableTable.tsx +0 -4
- 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/JsonInputEdit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/address/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/mediaImage/Edit.st.css +7 -0
- package/src/components/EditableTable/cellTypes/mediaImage/Edit.st.css.ts +25 -0
- package/src/components/EditableTable/cellTypes/mediaImage/Edit.tsx +12 -9
- package/src/components/EditableTable/cellTypes/mediaImage/Edit.uni.driver.ts +6 -0
- package/src/components/EditableTable/cellTypes/multiDocument/Edit.st.css +6 -0
- package/src/components/EditableTable/cellTypes/multiDocument/Edit.st.css.ts +25 -0
- package/src/components/EditableTable/cellTypes/multiDocument/Edit.tsx +13 -10
- 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/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/reference/EmptyReferenceView.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/EntityPageFields/EntityPageField.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/ImportStepConfiguration.tsx +4 -1
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
- package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
- package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
- package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
- package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
- package/src/components/SchemaSource/schemaFieldActions.ts +39 -10
- package/src/components/SchemaSource/schemaFieldManagement.ts +15 -0
- package/src/components/SchemaSource/tableSchemaSource.ts +3 -0
- 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/Table/NumberCell.st.css.ts +2 -2
- package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
- package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
- package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
- package/src/components/common.st.css.ts +2 -2
- package/src/hooks/useOptionalCachedState.ts +4 -1
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts +2 -2
- package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
- package/src/state/CustomFields/CustomFieldsPanelState.ts +14 -1
- package/src/state/EntityPage/EntityPageState.ts +4 -0
- package/src/state/EntityPageFieldsCardState.ts +5 -1
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/WixPatternsRouterState.ts +19 -1
- package/src/styles.global.css +2 -2
- package/src/version.ts +1 -1
|
@@ -77,6 +77,11 @@ class CustomFieldsPanelState {
|
|
|
77
77
|
get archive() {
|
|
78
78
|
return this.fieldsSource.archive;
|
|
79
79
|
}
|
|
80
|
+
getFieldTypeLocks(fieldId) {
|
|
81
|
+
var _resolveFieldTypeDefi;
|
|
82
|
+
const field = fieldId ? this.fieldsSource.fields.find(candidate => candidate.id === fieldId) : undefined;
|
|
83
|
+
return field ? ((_resolveFieldTypeDefi = (0, _bexCore.resolveFieldTypeDefinition)(this.fieldsSource, field)) == null || (_resolveFieldTypeDefi = _resolveFieldTypeDefi.fieldModal) == null ? void 0 : _resolveFieldTypeDefi.lockedProperties) ?? [] : [];
|
|
84
|
+
}
|
|
80
85
|
openCustomFieldModal(params) {
|
|
81
86
|
const {
|
|
82
87
|
customFieldModal
|
|
@@ -88,7 +93,8 @@ class CustomFieldsPanelState {
|
|
|
88
93
|
customFieldModal.mode = params.fieldId ? 'edit' : 'new';
|
|
89
94
|
customFieldModal.origin = params.origin;
|
|
90
95
|
customFieldModal.customOrigin = params.customOrigin;
|
|
91
|
-
|
|
96
|
+
const typeLocks = this.getFieldTypeLocks(params.fieldId);
|
|
97
|
+
customFieldModal.lockedProperties = [...new Set([...typeLocks, ...(params.lockedProperties ?? [])])];
|
|
92
98
|
customFieldModal.onSave = params.onSave;
|
|
93
99
|
!params.fieldId && customFieldModalBiReporter.reportAddCustomField({
|
|
94
100
|
origin: params.origin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_fieldTypeActions","CustomFieldsPanelState","constructor","params","_defineProperty2","default","reportBi","closeSidePanel","fieldsSource","container","archive","archiveFieldModal","ArchiveFieldModalState","archiver","customFieldModal","CustomFieldModalState","fieldManagement","fieldCount","manageableFields","length","deleteFieldModal","DeleteFieldModalState","deleteField","id","origin","items","closePanel","undefined","sourceMenu","createFieldActionsMenu","fieldActionsMenu","args","config","field","fields","find","f","fieldId","definition","resolveFieldTypeDefinition","extras","buildFieldTypeActionGroup","mergeFieldTypeActions","makeAutoObservable","openCustomFieldModal","customFieldModalBiReporter","reset","mode","customOrigin","lockedProperties","onSave","reportAddCustomField","formSnapshot","setDefaultPermissions","_this$fieldsSource$fi","formValues","getFieldDraft","setFormValues","disablePermissionCheckboxes","applyInitialField","initialField","modalState","modal","open","exports"],"sources":["../../../../src/state/CustomFields/CustomFieldsPanelState.ts"],"sourcesContent":["import {\n ArchiveFieldModalState,\n CustomFieldModalState,\n CustomFieldOrigin,\n DeleteFieldModalState,\n FieldsSource,\n OpenFieldModalOptions,\n ReportBI,\n WixPatternsContainer,\n resolveFieldTypeDefinition,\n} from '@wix/bex-core';\nimport { makeAutoObservable } from 'mobx';\nimport type { FieldActionsMenuConfig } from '../../components/FieldActions';\nimport {\n buildFieldTypeActionGroup,\n mergeFieldTypeActions,\n} from '../../components/FieldActions/fieldTypeActions';\n\n/** Builds the per-field action popover (edit / archive / delete …) for a field. */\nexport type FieldActionsMenuBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionsMenuConfig | null;\n\nexport interface CustomFieldsPanelStateParams {\n readonly reportBi: ReportBI;\n readonly closeSidePanel: () => unknown;\n readonly fieldsSource: FieldsSource;\n readonly container: WixPatternsContainer;\n /**\n * The source's per-field menu, as a factory over the panel it belongs to (its\n * handlers call back into this panel's modals). Built once in the constructor.\n */\n readonly createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n}\n\nexport class CustomFieldsPanelState {\n readonly reportBi;\n readonly closeSidePanel;\n readonly fieldsSource;\n readonly container;\n readonly customFieldModal;\n readonly archiveFieldModal?: ArchiveFieldModalState;\n readonly deleteFieldModal: DeleteFieldModalState;\n /** The per-field action popover. The source supplies it; CustomFieldItem reads it. */\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n\n constructor(params: CustomFieldsPanelStateParams) {\n this.reportBi = params.reportBi;\n this.closeSidePanel = params.closeSidePanel;\n this.fieldsSource = params.fieldsSource;\n this.container = params.container;\n\n if (params.fieldsSource.archive) {\n this.archiveFieldModal = new ArchiveFieldModalState({\n reportBi: this.reportBi,\n archiver: params.fieldsSource.archive,\n });\n }\n this.customFieldModal = new CustomFieldModalState({\n reportBi: this.reportBi,\n fieldManagement: params.fieldsSource.fieldManagement!,\n container: params.container,\n fieldCount: () => params.fieldsSource.manageableFields.length,\n });\n // The delete runs through the source's own deleteField (which reports its\n // own toast) and reconciles the archived-items list when archiving exists.\n this.deleteFieldModal = new DeleteFieldModalState({\n reportBi: this.reportBi,\n fieldManagement: {\n deleteField: (id, origin) =>\n params.fieldsSource.fieldManagement!.deleteField(id, origin),\n },\n archive: params.fieldsSource.archive ?? {\n items: [],\n closePanel: () => undefined,\n },\n });\n // A custom field type's extra actions render on every surface's menu, so\n // they're appended here — after the source built its own menu — rather\n // than inside each source's builder.\n const sourceMenu = params.createFieldActionsMenu(this);\n this.fieldActionsMenu = (args) => {\n const config = sourceMenu(args);\n const field = this.fieldsSource.fields.find((f) => f.id === args.fieldId);\n const definition = field\n ? resolveFieldTypeDefinition(this.fieldsSource, field)\n : undefined;\n const extras =\n field && definition\n ? buildFieldTypeActionGroup({ field, definition })\n : [];\n return mergeFieldTypeActions(config, extras);\n };\n makeAutoObservable(this, {\n // A function that builds (doesn't mutate) the popover — not an action. It's\n // set once here and never reassigned, so it needn't be observable either.\n fieldActionsMenu: false,\n });\n }\n\n get fieldManagement() {\n return this.fieldsSource.fieldManagement;\n }\n get manageableFields() {\n return this.fieldsSource.manageableFields;\n }\n get archive() {\n return this.fieldsSource.archive;\n }\n\n openCustomFieldModal(\n params: Omit<OpenFieldModalOptions, 'origin'> & {\n origin: CustomFieldOrigin;\n },\n ) {\n const { customFieldModal } = this;\n const { customFieldModalBiReporter } = customFieldModal;\n\n customFieldModal.reset();\n customFieldModal.mode = params.fieldId ? 'edit' : 'new';\n customFieldModal.origin = params.origin;\n customFieldModal.customOrigin = params.customOrigin;\n customFieldModal.lockedProperties = params.lockedProperties ?? [];\n customFieldModal.onSave = params.onSave;\n\n !params.fieldId &&\n customFieldModalBiReporter.reportAddCustomField({\n origin: params.origin,\n customOrigin: params.customOrigin,\n });\n\n customFieldModalBiReporter.formSnapshot = null;\n customFieldModal.setDefaultPermissions();\n\n if (params.fieldId) {\n const formValues = this.fieldsSource.fieldManagement?.getFieldDraft(\n params.fieldId,\n );\n if (!formValues) {\n return;\n }\n customFieldModal.setFormValues(formValues, {\n disablePermissionCheckboxes: true,\n });\n customFieldModalBiReporter.formSnapshot = formValues;\n } else {\n customFieldModal.applyInitialField(params.initialField);\n }\n\n customFieldModal.modalState.modal.open();\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAWA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAKA;;AAqBO,MAAMG,sBAAsB,CAAC;EAWlCC,WAAWA,CAACC,MAAoC,EAAE;IAAA,IAAAC,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;IAHlD;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAIE,IAAI,CAACC,QAAQ,GAAGH,MAAM,CAACG,QAAQ;IAC/B,IAAI,CAACC,cAAc,GAAGJ,MAAM,CAACI,cAAc;IAC3C,IAAI,CAACC,YAAY,GAAGL,MAAM,CAACK,YAAY;IACvC,IAAI,CAACC,SAAS,GAAGN,MAAM,CAACM,SAAS;IAEjC,IAAIN,MAAM,CAACK,YAAY,CAACE,OAAO,EAAE;MAC/B,IAAI,CAACC,iBAAiB,GAAG,IAAIC,+BAAsB,CAAC;QAClDN,QAAQ,EAAE,IAAI,CAACA,QAAQ;QACvBO,QAAQ,EAAEV,MAAM,CAACK,YAAY,CAACE;MAChC,CAAC,CAAC;IACJ;IACA,IAAI,CAACI,gBAAgB,GAAG,IAAIC,8BAAqB,CAAC;MAChDT,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBU,eAAe,EAAEb,MAAM,CAACK,YAAY,CAACQ,eAAgB;MACrDP,SAAS,EAAEN,MAAM,CAACM,SAAS;MAC3BQ,UAAU,EAAEA,CAAA,KAAMd,MAAM,CAACK,YAAY,CAACU,gBAAgB,CAACC;IACzD,CAAC,CAAC;IACF;IACA;IACA,IAAI,CAACC,gBAAgB,GAAG,IAAIC,8BAAqB,CAAC;MAChDf,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBU,eAAe,EAAE;QACfM,WAAW,EAAEA,CAACC,EAAE,EAAEC,MAAM,KACtBrB,MAAM,CAACK,YAAY,CAACQ,eAAe,CAAEM,WAAW,CAACC,EAAE,EAAEC,MAAM;MAC/D,CAAC;MACDd,OAAO,EAAEP,MAAM,CAACK,YAAY,CAACE,OAAO,IAAI;QACtCe,KAAK,EAAE,EAAE;QACTC,UAAU,EAAEA,CAAA,KAAMC;MACpB;IACF,CAAC,CAAC;IACF;IACA;IACA;IACA,MAAMC,UAAU,GAAGzB,MAAM,CAAC0B,sBAAsB,CAAC,IAAI,CAAC;IACtD,IAAI,CAACC,gBAAgB,GAAIC,IAAI,IAAK;MAChC,MAAMC,MAAM,GAAGJ,UAAU,CAACG,IAAI,CAAC;MAC/B,MAAME,KAAK,GAAG,IAAI,CAACzB,YAAY,CAAC0B,MAAM,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACb,EAAE,KAAKQ,IAAI,CAACM,OAAO,CAAC;MACzE,MAAMC,UAAU,GAAGL,KAAK,GACpB,IAAAM,mCAA0B,EAAC,IAAI,CAAC/B,YAAY,EAAEyB,KAAK,CAAC,GACpDN,SAAS;MACb,MAAMa,MAAM,GACVP,KAAK,IAAIK,UAAU,GACf,IAAAG,2CAAyB,EAAC;QAAER,KAAK;QAAEK;MAAW,CAAC,CAAC,GAChD,EAAE;MACR,OAAO,IAAAI,uCAAqB,EAACV,MAAM,EAAEQ,MAAM,CAAC;IAC9C,CAAC;IACD,IAAAG,wBAAkB,EAAC,IAAI,EAAE;MACvB;MACA;MACAb,gBAAgB,EAAE;IACpB,CAAC,CAAC;EACJ;EAEA,IAAId,eAAeA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACR,YAAY,CAACQ,eAAe;EAC1C;EACA,IAAIE,gBAAgBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACV,YAAY,CAACU,gBAAgB;EAC3C;EACA,IAAIR,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACF,YAAY,CAACE,OAAO;EAClC;EAEAkC,oBAAoBA,CAClBzC,MAEC,EACD;IACA,MAAM;MAAEW;IAAiB,CAAC,GAAG,IAAI;IACjC,MAAM;MAAE+B;IAA2B,CAAC,GAAG/B,gBAAgB;IAEvDA,gBAAgB,CAACgC,KAAK,CAAC,CAAC;IACxBhC,gBAAgB,CAACiC,IAAI,GAAG5C,MAAM,CAACkC,OAAO,GAAG,MAAM,GAAG,KAAK;IACvDvB,gBAAgB,CAACU,MAAM,GAAGrB,MAAM,CAACqB,MAAM;IACvCV,gBAAgB,CAACkC,YAAY,GAAG7C,MAAM,CAAC6C,YAAY;IACnDlC,gBAAgB,CAACmC,gBAAgB,GAAG9C,MAAM,CAAC8C,gBAAgB,IAAI,EAAE;IACjEnC,gBAAgB,CAACoC,MAAM,GAAG/C,MAAM,CAAC+C,MAAM;IAEvC,CAAC/C,MAAM,CAACkC,OAAO,IACbQ,0BAA0B,CAACM,oBAAoB,CAAC;MAC9C3B,MAAM,EAAErB,MAAM,CAACqB,MAAM;MACrBwB,YAAY,EAAE7C,MAAM,CAAC6C;IACvB,CAAC,CAAC;IAEJH,0BAA0B,CAACO,YAAY,GAAG,IAAI;IAC9CtC,gBAAgB,CAACuC,qBAAqB,CAAC,CAAC;IAExC,IAAIlD,MAAM,CAACkC,OAAO,EAAE;MAAA,IAAAiB,qBAAA;MAClB,MAAMC,UAAU,IAAAD,qBAAA,GAAG,IAAI,CAAC9C,YAAY,CAACQ,eAAe,qBAAjCsC,qBAAA,CAAmCE,aAAa,CACjErD,MAAM,CAACkC,OACT,CAAC;MACD,IAAI,CAACkB,UAAU,EAAE;QACf;MACF;MACAzC,gBAAgB,CAAC2C,aAAa,CAACF,UAAU,EAAE;QACzCG,2BAA2B,EAAE;MAC/B,CAAC,CAAC;MACFb,0BAA0B,CAACO,YAAY,GAAGG,UAAU;IACtD,CAAC,MAAM;MACLzC,gBAAgB,CAAC6C,iBAAiB,CAACxD,MAAM,CAACyD,YAAY,CAAC;IACzD;IAEA9C,gBAAgB,CAAC+C,UAAU,CAACC,KAAK,CAACC,IAAI,CAAC,CAAC;EAC1C;AACF;AAACC,OAAA,CAAA/D,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_fieldTypeActions","CustomFieldsPanelState","constructor","params","_defineProperty2","default","reportBi","closeSidePanel","fieldsSource","container","archive","archiveFieldModal","ArchiveFieldModalState","archiver","customFieldModal","CustomFieldModalState","fieldManagement","fieldCount","manageableFields","length","deleteFieldModal","DeleteFieldModalState","deleteField","id","origin","items","closePanel","undefined","sourceMenu","createFieldActionsMenu","fieldActionsMenu","args","config","field","fields","find","f","fieldId","definition","resolveFieldTypeDefinition","extras","buildFieldTypeActionGroup","mergeFieldTypeActions","makeAutoObservable","getFieldTypeLocks","_resolveFieldTypeDefi","candidate","fieldModal","lockedProperties","openCustomFieldModal","customFieldModalBiReporter","reset","mode","customOrigin","typeLocks","Set","onSave","reportAddCustomField","formSnapshot","setDefaultPermissions","_this$fieldsSource$fi","formValues","getFieldDraft","setFormValues","disablePermissionCheckboxes","applyInitialField","initialField","modalState","modal","open","exports"],"sources":["../../../../src/state/CustomFields/CustomFieldsPanelState.ts"],"sourcesContent":["import {\n ArchiveFieldModalState,\n CustomFieldModalState,\n CustomFieldOrigin,\n DeleteFieldModalState,\n FieldsSource,\n OpenFieldModalOptions,\n ReportBI,\n WixPatternsContainer,\n resolveFieldTypeDefinition,\n} from '@wix/bex-core';\nimport { makeAutoObservable } from 'mobx';\nimport type { FieldActionsMenuConfig } from '../../components/FieldActions';\nimport {\n buildFieldTypeActionGroup,\n mergeFieldTypeActions,\n} from '../../components/FieldActions/fieldTypeActions';\n\n/** Builds the per-field action popover (edit / archive / delete …) for a field. */\nexport type FieldActionsMenuBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionsMenuConfig | null;\n\nexport interface CustomFieldsPanelStateParams {\n readonly reportBi: ReportBI;\n readonly closeSidePanel: () => unknown;\n readonly fieldsSource: FieldsSource;\n readonly container: WixPatternsContainer;\n /**\n * The source's per-field menu, as a factory over the panel it belongs to (its\n * handlers call back into this panel's modals). Built once in the constructor.\n */\n readonly createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n}\n\nexport class CustomFieldsPanelState {\n readonly reportBi;\n readonly closeSidePanel;\n readonly fieldsSource;\n readonly container;\n readonly customFieldModal;\n readonly archiveFieldModal?: ArchiveFieldModalState;\n readonly deleteFieldModal: DeleteFieldModalState;\n /** The per-field action popover. The source supplies it; CustomFieldItem reads it. */\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n\n constructor(params: CustomFieldsPanelStateParams) {\n this.reportBi = params.reportBi;\n this.closeSidePanel = params.closeSidePanel;\n this.fieldsSource = params.fieldsSource;\n this.container = params.container;\n\n if (params.fieldsSource.archive) {\n this.archiveFieldModal = new ArchiveFieldModalState({\n reportBi: this.reportBi,\n archiver: params.fieldsSource.archive,\n });\n }\n this.customFieldModal = new CustomFieldModalState({\n reportBi: this.reportBi,\n fieldManagement: params.fieldsSource.fieldManagement!,\n container: params.container,\n fieldCount: () => params.fieldsSource.manageableFields.length,\n });\n // The delete runs through the source's own deleteField (which reports its\n // own toast) and reconciles the archived-items list when archiving exists.\n this.deleteFieldModal = new DeleteFieldModalState({\n reportBi: this.reportBi,\n fieldManagement: {\n deleteField: (id, origin) =>\n params.fieldsSource.fieldManagement!.deleteField(id, origin),\n },\n archive: params.fieldsSource.archive ?? {\n items: [],\n closePanel: () => undefined,\n },\n });\n // A custom field type's extra actions render on every surface's menu, so\n // they're appended here — after the source built its own menu — rather\n // than inside each source's builder.\n const sourceMenu = params.createFieldActionsMenu(this);\n this.fieldActionsMenu = (args) => {\n const config = sourceMenu(args);\n const field = this.fieldsSource.fields.find((f) => f.id === args.fieldId);\n const definition = field\n ? resolveFieldTypeDefinition(this.fieldsSource, field)\n : undefined;\n const extras =\n field && definition\n ? buildFieldTypeActionGroup({ field, definition })\n : [];\n return mergeFieldTypeActions(config, extras);\n };\n makeAutoObservable(this, {\n // A function that builds (doesn't mutate) the popover — not an action. It's\n // set once here and never reassigned, so it needn't be observable either.\n fieldActionsMenu: false,\n });\n }\n\n get fieldManagement() {\n return this.fieldsSource.fieldManagement;\n }\n get manageableFields() {\n return this.fieldsSource.manageableFields;\n }\n get archive() {\n return this.fieldsSource.archive;\n }\n\n private getFieldTypeLocks(fieldId?: string) {\n const field = fieldId\n ? this.fieldsSource.fields.find((candidate) => candidate.id === fieldId)\n : undefined;\n return field\n ? resolveFieldTypeDefinition(this.fieldsSource, field)?.fieldModal\n ?.lockedProperties ?? []\n : [];\n }\n\n openCustomFieldModal(\n params: Omit<OpenFieldModalOptions, 'origin'> & {\n origin: CustomFieldOrigin;\n },\n ) {\n const { customFieldModal } = this;\n const { customFieldModalBiReporter } = customFieldModal;\n\n customFieldModal.reset();\n customFieldModal.mode = params.fieldId ? 'edit' : 'new';\n customFieldModal.origin = params.origin;\n customFieldModal.customOrigin = params.customOrigin;\n const typeLocks = this.getFieldTypeLocks(params.fieldId);\n customFieldModal.lockedProperties = [\n ...new Set([...typeLocks, ...(params.lockedProperties ?? [])]),\n ];\n customFieldModal.onSave = params.onSave;\n\n !params.fieldId &&\n customFieldModalBiReporter.reportAddCustomField({\n origin: params.origin,\n customOrigin: params.customOrigin,\n });\n\n customFieldModalBiReporter.formSnapshot = null;\n customFieldModal.setDefaultPermissions();\n\n if (params.fieldId) {\n const formValues = this.fieldsSource.fieldManagement?.getFieldDraft(\n params.fieldId,\n );\n if (!formValues) {\n return;\n }\n customFieldModal.setFormValues(formValues, {\n disablePermissionCheckboxes: true,\n });\n customFieldModalBiReporter.formSnapshot = formValues;\n } else {\n customFieldModal.applyInitialField(params.initialField);\n }\n\n customFieldModal.modalState.modal.open();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -186,6 +186,10 @@ class EntityPageState {
|
|
|
186
186
|
get loadedSchema() {
|
|
187
187
|
return this._loadedSchema;
|
|
188
188
|
}
|
|
189
|
+
markFieldsChanged() {
|
|
190
|
+
var _this$_routerState;
|
|
191
|
+
(_this$_routerState = this._routerState) == null || _this$_routerState.markFieldsChanged();
|
|
192
|
+
}
|
|
189
193
|
get isFetching() {
|
|
190
194
|
return this.formPage.isFetching;
|
|
191
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","_EntityPageDeleteActionState","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","undefined","observable","set","deep","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","_isNewEntity","isNewEntity","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","_parentReferrer","parentReferrer","actionsBarConfig","container","deleteActionState","EntityPageDeleteActionState","deleteAction","getEntity","entity","getLoadedSchema","loadedSchema","onDeleted","action","deletedCollectionItem","handleEntityDeleted","emitDelete","events","emit","emitDeleteError","err","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","ref","setEntity","_schema","setSchema","_loadedSchema","setLoadedSchema","customColumnsState","setActionsBarConfig","holdSave","isSaveHeld","computed","isFormDirty","_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","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","cancelCta","biAdditionalInfo","navigateToParent","_isExistingEntity","isRouteKnown","updatedEntity","entityStringKey","navigateToParentWithState","entityObject","navigate","state","navigateTo","pageId","referrer","_showErrorToast","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","_deletedEntity","hold","_saveHolds","add","delete","size","_this$actionsBarConfi2","submitTask","isLoading","saveCta","disabled","isValid","widgetsFormData","validate","_this$actionsBarConfi3","run","savedEntity","submitSuccessful","_this$actionsBarConfi4","onSaveResult","errorMonitor","captureException","setError","_this$actionsBarConfi5","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 type { LoadedSchema } 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';\nimport {\n EntityPageDeleteAction,\n EntityPageDeleteActionState,\n} from './EntityPageDeleteActionState';\n\ntype OnSaveParams<T> = {\n widgetsFormData: { [key: string]: any };\n /**\n * The entity as `fetch` loaded it, or `null` on a create route. Use it for what\n * the form does not hold but the update needs, such as the record's revision.\n */\n entity: T | null;\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<T>) => 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 * Enables deleting the loaded entity from the entity page. Pass `true` for a\n * schema-backed page to use the source backend, or an object to customize the\n * action and to provide a delete handler for manually wired pages.\n */\n deleteAction?: EntityPageDeleteAction<T>;\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 * Whether the page was opened to create a new entity rather than to edit an\n * existing one. Decides how a save is announced to the parent page — created\n * vs updated — so a new item seeded with local defaults is still announced\n * as created. Pass a getter when the route can change while the page stays\n * mounted. When omitted, the announcement follows whether an entity was\n * loaded.\n */\n isNewEntity?: boolean | (() => boolean);\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 _loadedSchema: LoadedSchema<T> | null = null;\n private readonly _isNewEntity?: boolean | (() => boolean);\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n private readonly _parentReferrer?: string;\n\n actionsBarConfig: EntityPageStateParams<T>['actionsBarConfig'] = undefined;\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 // Shallow: a deep set would wrap the token objects, and release could not\n // find them again.\n private readonly _saveHolds = observable.set<object>([], { deep: false });\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 readonly deleteActionState: EntityPageDeleteActionState<T>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n delete: () => void;\n deleteError: (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._isNewEntity = params.isNewEntity;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this._parentReferrer = params.parentReferrer;\n this.actionsBarConfig = params.actionsBarConfig;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n this.deleteActionState = new EntityPageDeleteActionState<T>({\n container: this.container,\n deleteAction: params.deleteAction,\n schemaSource: this.schemaSource,\n getEntity: () => this.entity,\n getLoadedSchema: () => this.loadedSchema,\n transformEntityToCollectionItem: this.transformEntityToCollectionItem,\n onDeleted: action((deletedCollectionItem) =>\n this.handleEntityDeleted(deletedCollectionItem),\n ),\n emitDelete: () => this.events.emit('delete'),\n emitDeleteError: (err) => this.events.emit('deleteError', err),\n });\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 _loadedSchema: observable.ref,\n setLoadedSchema: action,\n customColumnsState: observable.ref,\n actionsBarConfig: observable.ref,\n setActionsBarConfig: action,\n holdSave: action,\n isSaveHeld: computed,\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 // A fields card can mirror a newer value while these promises settle.\n if (loadedSchema && !this.loadedSchema) {\n this.setLoadedSchema(loadedSchema);\n }\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 setActionsBarConfig(actionsBarConfig?: ActionsBarConfig) {\n this.actionsBarConfig = actionsBarConfig;\n }\n\n setLoadedSchema(loadedSchema: LoadedSchema<T> | null) {\n this._loadedSchema = loadedSchema;\n }\n\n get loadedSchema(): LoadedSchema<T> | null {\n return this._loadedSchema;\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 private get _isExistingEntity(): boolean {\n const isNewEntity =\n typeof this._isNewEntity === 'function'\n ? this._isNewEntity()\n : this._isNewEntity;\n const isRouteKnown = isNewEntity !== undefined;\n return isRouteKnown ? !isNewEntity : !!this._entity;\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._isExistingEntity\n ? '_updatedEntity'\n : '_createdEntity';\n this.navigateToParentWithState({ [entityStringKey]: updatedEntity });\n }\n\n navigateToParentWithState(entityObject: Record<string, unknown>) {\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 private handleEntityDeleted(deletedCollectionItem: any) {\n this.isSubmitSuccessful = true;\n this.navigateToParentWithState({ _deletedEntity: deletedCollectionItem });\n }\n\n /**\n * Blocks `handleSubmit` until the returned release is called (idempotent).\n * For features whose form fields are not mounted yet — react-hook-form only\n * validates mounted controls, so a save in that window would skip their\n * required-field validation.\n */\n holdSave(): () => void {\n const hold = {};\n this._saveHolds.add(hold);\n return action(() => {\n this._saveHolds.delete(hold);\n });\n }\n\n get isSaveHeld(): boolean {\n return this._saveHolds.size > 0;\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (\n this.formPage.submitTask.status.isLoading ||\n this.isSaveHeld ||\n this.actionsBarConfig?.saveCta?.disabled\n ) {\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 entity: this.entity,\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":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAUA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,sBAAA,GAAAF,OAAA;AAEA,IAAAG,0BAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAIA,IAAAK,4BAAA,GAAAL,OAAA;AAuIO,MAAMM,eAAe,CAE5B;EAqCE;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,eAAeA,CAAA,EAA2C;IAC5D,OAAO,IAAAC,wCAAiB,EAAC,IAAI,CAACC,YAAY,CAAC;EAC7C;EAkBAC,WAAWA,CAACC,MAAmC,EAAE;IAAA,IAAAC,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,mBAxD7B,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBACC,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,yBACW,IAAI;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,4BAMqBC,SAAS;IAE1E;AACF;AACA;AACA;AACA;AACA;AACA;IANE,IAAAF,gBAAA,CAAAC,OAAA,kBAOiC,IAAI;IAErC;AACF;AACA;IAFE,IAAAD,gBAAA,CAAAC,OAAA,8BAG0D,IAAI;IAE9D;IACA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBAC8BE,gBAAU,CAACC,GAAG,CAAS,EAAE,EAAE;MAAEC,IAAI,EAAE;IAAM,CAAC,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBAkB3B,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAKhC,IAAIK,oBAAY,CAAC,CAAC;IAQlC,IAAI,CAACC,KAAK,GAAGR,MAAM,CAACQ,KAAK;IACzB,IAAI,CAACC,MAAM,GAAGT,MAAM,CAACS,MAAM;IAC3B,IAAI,CAACC,gBAAgB,GAAGV,MAAM,CAACU,gBAAgB;IAC/C,IAAI,CAACC,cAAc,GAAGX,MAAM,CAACW,cAAc;IAC3C,IAAI,CAACC,QAAQ,GAAG,IAAIC,sBAAa,CAAI;MAAEC,IAAI,EAAEd,MAAM,CAACc;IAAK,CAAC,CAAC;IAC3D,IAAI,CAACC,aAAa,GAAGf,MAAM,CAACgB,YAAY;IACxC,IAAI,CAACC,YAAY,GAAGjB,MAAM,CAACkB,WAAW;IACtC,IAAI,CAACC,+BAA+B,GAClCnB,MAAM,CAACmB,+BAA+B,KAAMC,QAAW,IAAKA,QAAQ,CAAC;IACvE,IAAI,CAACC,WAAW,GAAGrB,MAAM,CAACsB,UAAU;IACpC,IAAI,CAACC,eAAe,GAAGvB,MAAM,CAACwB,cAAc;IAC5C,IAAI,CAACC,gBAAgB,GAAGzB,MAAM,CAACyB,gBAAgB;IAC/C,IAAI,CAAC3B,YAAY,GAAGE,MAAM,CAACF,YAAY;IAEvC,IAAI,CAAC4B,SAAS,GAAG1B,MAAM,CAAC0B,SAAS;IACjC,IAAI,CAACC,iBAAiB,GAAG,IAAIC,wDAA2B,CAAI;MAC1DF,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBG,YAAY,EAAE7B,MAAM,CAAC6B,YAAY;MACjC/B,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/BgC,SAAS,EAAEA,CAAA,KAAM,IAAI,CAACC,MAAM;MAC5BC,eAAe,EAAEA,CAAA,KAAM,IAAI,CAACC,YAAY;MACxCd,+BAA+B,EAAE,IAAI,CAACA,+BAA+B;MACrEe,SAAS,EAAE,IAAAC,YAAM,EAAEC,qBAAqB,IACtC,IAAI,CAACC,mBAAmB,CAACD,qBAAqB,CAChD,CAAC;MACDE,UAAU,EAAEA,CAAA,KAAM,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,QAAQ,CAAC;MAC5CC,eAAe,EAAGC,GAAG,IAAK,IAAI,CAACH,MAAM,CAACC,IAAI,CAAC,aAAa,EAAEE,GAAG;IAC/D,CAAC,CAAC;IAEF,IAAI,CAACC,YAAY,GAAG3C,MAAM,CAAC4C,WAAW,IAAI,IAAI;IAE9C,IAAI,IAAI,CAACD,YAAY,EAAE;MAAA,IAAAE,qBAAA;MACrB,IAAI,CAACC,OAAO,IAAAD,qBAAA,GAAG,IAAI,CAACF,YAAY,CAACI,YAAY,cAAAF,qBAAA,GAA9BA,qBAAA,CAAgCG,aAAa,qBAA7CH,qBAAA,CAA+Cd,MAAM;IACtE;IAEA,IAAI,CAACkB,QAAQ,GAAG,IAAI,CAACvB,SAAS,CAACwB,cAAc,CAAC;MAC5CC,aAAa,EAAE,aAAa;MAC5BC,QAAQ,EAAE,QAAQ;MAClBC,KAAK,EAAEC,MAAM,CAACC,QAAQ,CAACC;IACzB,CAAC,CAAC;IAEF,IAAI,CAACC,EAAE,GAAG,IAAIC,oDAAyB,CAAC;MACtCT,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBU,eAAe,EAAE;IACnB,CAAC,CAAC;IACF,IAAI,CAACF,EAAE,CAACG,IAAI,CAAC,CAAC;IAEd,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,YAAY,EAAE3B,YAAM;MACpBW,OAAO,EAAE1C,gBAAU,CAAC2D,GAAG;MACvBC,SAAS,EAAE7B,YAAM;MACjB8B,OAAO,EAAE7D,gBAAU,CAAC2D,GAAG;MACvBG,SAAS,EAAE/B,YAAM;MACjBgC,aAAa,EAAE/D,gBAAU,CAAC2D,GAAG;MAC7BK,eAAe,EAAEjC,YAAM;MACvBkC,kBAAkB,EAAEjE,gBAAU,CAAC2D,GAAG;MAClCtC,gBAAgB,EAAErB,gBAAU,CAAC2D,GAAG;MAChCO,mBAAmB,EAAEnC,YAAM;MAC3BoC,QAAQ,EAAEpC,YAAM;MAChBqC,UAAU,EAAEC,cAAQ;MACpBC,WAAW,EAAED,cAAQ;MACrBE,aAAa,EAAEF;IACjB,CAAC,CAAC;EACJ;EAEAb,IAAIA,CAAA,EAAG;IACL,IAAI,CAACgB,gBAAgB,CAAC,CAAC;IACvB,MAAM;MACJhE,QAAQ,EAAE;QAAEiE;MAAS,CAAC;MACtBnD;IACF,CAAC,GAAG,IAAI;IACR,MAAM;MAAEoD;IAAe,CAAC,GAAGpD,SAAS;IAEpC,MAAMqD,0BAA0B,GAAGD,cAAc,oBAAdA,cAAc,CAC/C,IAAA3C,YAAM,EAAE6C,KAAY,IAAK;MACvB,IAAI,IAAAC,uBAAc,EAAC,CAAC,EAAE;QACpB;MACF;MAEA,MAAM;QAAEnE;MAAK,CAAC,GAAG,IAAI;MACrB;MACA,IACEA,IAAI,CAACoE,SAAS,CAACC,kBAAkB,IACjC,IAAI,CAACvE,QAAQ,CAACwE,mBAAmB,IACjC,CAAC,IAAI,CAACV,WAAW,EACjB;QACA;MACF;MACAM,KAAK,CAACK,cAAc,CAAC,CAAC;MACtB,IAAI,CAAC5B,EAAE,CAAC6B,oBAAoB,CAAC,CAAC;IAChC,CAAC,CACH,CAAC;IAEDT,QAAQ,CAACU,OAAO,CAAC,YAAY;MAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,sBAAA,EAAAC,kBAAA,EAAAC,QAAA;MAC3B;MACA;MACA,CAAAJ,qBAAA,OAAI,CAAC5F,eAAe,aAApB4F,qBAAA,CAAsB5B,IAAI,CAAC,CAAC;MAE5B,MAAM,CAACiC,IAAI,EAAE5D,YAAY,CAAC,GAAG,MAAM6D,OAAO,CAACC,GAAG,CAAC,CAC7C,IAAI,CAACvF,KAAK,CAAC,CAAC,GAAAiF,kBAAA,GACZ,IAAI,CAAC3F,YAAY,qBAAjB2F,kBAAA,CAAmBO,UAAU,CAAC,CAAC,EAC/BtE,SAAS,CAACmD,QAAQ,CAACoB,MAAM,CAACC,OAAO,GAAAR,sBAAA,GACjC,IAAI,CAAC9F,eAAe,qBAApB8F,sBAAA,CAAsBb,QAAQ,CAACoB,MAAM,CAACC,OAAO,CAC9C,CAAC;MAEF,IAAI,CAAClC,SAAS,CAAC6B,IAAI,CAAC9D,MAAM,IAAI,IAAI,CAAC;MACnC;MACA,IAAIE,YAAY,IAAI,CAAC,IAAI,CAACA,YAAY,EAAE;QACtC,IAAI,CAACmC,eAAe,CAACnC,YAAY,CAAC;MACpC;MACA,IAAIA,YAAY,IAAI,CAAC,IAAI,CAACkE,MAAM,EAAE;QAChC,IAAI,CAACjC,SAAS,CAACjC,YAAY,CAACkE,MAAM,CAAC;MACrC;MACA,CAAAR,kBAAA,IAAAC,QAAA,OAAI,CAACnC,EAAE,EAAC2C,SAAS,aAAjBT,kBAAA,CAAAU,IAAA,CAAAT,QAAoB,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXb,0BAA0B,YAA1BA,0BAA0B,CAAEuB,MAAM,CAAC,CAAC;IACtC,CAAC;EACH;EAEAC,UAAUA,CAAA,EAAG;IACX,IAAI,CAAC3F,QAAQ,CAAC2F,UAAU,CAAC,CAAC;EAC5B;EAEAvC,SAASA,CAACwC,SAAmB,EAAE;IAC7B,IAAI,CAAC1D,OAAO,GAAG0D,SAAS;EAC1B;EAEA,IAAIzE,MAAMA,CAAA,EAAa;IACrB,OAAO,IAAI,CAACe,OAAO;EACrB;EAEAoB,SAASA,CAACiC,MAAqB,EAAE;IAC/B,IAAI,CAAClC,OAAO,GAAGkC,MAAM;EACvB;EAEA,IAAIA,MAAMA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAAClC,OAAO;EACrB;EAEAK,mBAAmBA,CAAC7C,gBAAmC,EAAE;IACvD,IAAI,CAACA,gBAAgB,GAAGA,gBAAgB;EAC1C;EAEA2C,eAAeA,CAACnC,YAAoC,EAAE;IACpD,IAAI,CAACkC,aAAa,GAAGlC,YAAY;EACnC;EAEA,IAAIA,YAAYA,CAAA,EAA2B;IACzC,OAAO,IAAI,CAACkC,aAAa;EAC3B;EAEA,IAAIsC,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC7F,QAAQ,CAAC6F,UAAU;EACjC;EAEA,IAAI3F,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACF,QAAQ,CAACE,IAAI;EAC3B;EAEA,IAAIqE,kBAAkBA,CAACuB,IAAa,EAAE;IACpC,IAAI,CAAC9F,QAAQ,CAACuE,kBAAkB,GAAGuB,IAAI;EACzC;EAEA,IAAIhC,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAAC9D,QAAQ,CAAC+F,OAAO;EAC9B;;EAEA;EACA,IAAIC,YAAYA,CAACC,GAAY,EAAE;IAC7B,IAAI,CAACjG,QAAQ,CAACgG,YAAY,GAAGC,GAAG;EAClC;EAEA,IAAIlC,aAAaA,CAAA,EAAG;IAClB,OAAO,CAAC,CAAC,IAAI,CAAChC,YAAY;EAC5B;EAEAmE,QAAQA,CAAA,EAAG;IAAA,IAAAC,qBAAA;IACT,IAAI,CAACtD,EAAE,CAACuD,iBAAiB,CAAC;MACxBC,OAAO,EAAE,QAAQ;MACjBC,cAAc,GAAAH,qBAAA,GAAE,IAAI,CAACtF,gBAAgB,cAAAsF,qBAAA,GAArBA,qBAAA,CAAuBI,SAAS,qBAAhCJ,qBAAA,CAAkCK;IACpD,CAAC,CAAC;IACF,IAAI,CAACC,gBAAgB,CAAC,CAAC;EACzB;EAEA,IAAYC,iBAAiBA,CAAA,EAAY;IACvC,MAAMpG,WAAW,GACf,OAAO,IAAI,CAACD,YAAY,KAAK,UAAU,GACnC,IAAI,CAACA,YAAY,CAAC,CAAC,GACnB,IAAI,CAACA,YAAY;IACvB,MAAMsG,YAAY,GAAGrG,WAAW,KAAKf,SAAS;IAC9C,OAAOoH,YAAY,GAAG,CAACrG,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC4B,OAAO;EACrD;EAEAuE,gBAAgBA,CAACG,aAAmB,EAAE;IACpC,MAAMC,eAAe,GAAG,IAAI,CAACH,iBAAiB,GAC1C,gBAAgB,GAChB,gBAAgB;IACpB,IAAI,CAACI,yBAAyB,CAAC;MAAE,CAACD,eAAe,GAAGD;IAAc,CAAC,CAAC;EACtE;EAEAE,yBAAyBA,CAACC,YAAqC,EAAE;IAC/D,IAAI,IAAI,CAAChD,aAAa,EAAE;MACtB,IAAI,CAAChC,YAAY,CAAEiF,QAAQ,CAAC,IAAI,CAACvG,WAAW,EAAG;QAAEwG,KAAK,EAAEF;MAAa,CAAC,CAAC;IACzE,CAAC,MAAM;MACL,IAAI,CAACjG,SAAS,CAACoG,UAAU,CAAE;QACzBC,MAAM,EAAE,IAAI,CAAChH,aAAc;QAC3B,IAAI,IAAI,CAACQ,eAAe,KAAKpB,SAAS,IAAI;UACxC6H,QAAQ,EAAE,IAAI,CAACzG;QACjB,CAAC;MACH,CAAC,CAAC;IACJ;EACF;EAEA0G,eAAeA,CAACvF,GAAQ,EAAEwF,CAA4B,EAAE;IAAA,IAAAC,oBAAA,EAAAC,qBAAA,EAAAC,eAAA;IACtD,MAAMC,UAAU,IAAAH,oBAAA,GAAG,IAAI,CAACxH,cAAc,qBAAnBwH,oBAAA,CAAA9B,IAAA,KAAI,EAAkB3D,GAAG,EAAE;MAC5C6F,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACzE,YAAY,CAACoE,CAAC;IAClC,CAAC,CAAC;IACF,MAAMM,OAAO,GACX,OAAOF,UAAU,KAAK,QAAQ,GAAGA,UAAU,GAAGA,UAAU,oBAAVA,UAAU,CAAEE,OAAO;IACnE,MAAMC,YAAY,GAChB,OAAOH,UAAU,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAAA,UAAU,oBAAVA,UAAU,CAAEI,QAAQ,MAAK,KAAK;IACxE,MAAMvG,MAAM,GACV,OAAOmG,UAAU,KAAK,QAAQ,GAAGnI,SAAS,GAAGmI,UAAU,oBAAVA,UAAU,CAAEnG,MAAM;IAEjE,CAAAiG,qBAAA,IAAAC,eAAA,OAAI,CAAC3G,SAAS,EAACiH,SAAS,aAAxBP,qBAAA,CAAA/B,IAAA,CAAAgC,eAAA,EAA2B;MACzBO,IAAI,EAAE,OAAO;MACbC,MAAM,EAAE,oCAAoC;MAC5CL,OAAO,EACLA,OAAO,IACP,IAAI,CAAC9G,SAAS,CAACoH,SAAS,CACtB,CAAApG,GAAG,oBAAHA,GAAG,CAAEqG,IAAI,MAAK,aAAa,GACvB,sDAAsD,GACtD,wDACN,CAAC;MACH5G,MAAM,EACJA,MAAM,IAAIsG,YAAY,GAClB;QACEO,MAAM,EAAE,MAAM;QACdC,IAAI,EACF,CAAA9G,MAAM,oBAANA,MAAM,CAAE8G,IAAI,KAAI,IAAI,CAACvH,SAAS,CAACoH,SAAS,CAAC,mBAAmB,CAAC;QAC/DI,OAAO,EAAEA,CAAA,KAAM;UACb,IAAI/G,MAAM,YAANA,MAAM,CAAE+G,OAAO,EAAE;YACnB/G,MAAM,CAAC+G,OAAO,CAAC,CAAC;UAClB,CAAC,MAAM;YACL,IAAI,CAACzF,EAAE,CAAC0F,kBAAkB,CAAC,CAAC;YAC5B,IAAI,CAACrF,YAAY,CAACoE,CAAC,CAAC;UACtB;QACF,CAAC;QACDkB,kBAAkB,EAAE;MACtB,CAAC,GACDjJ;IACR,CAAC,CAAC;EACJ;EAEAkJ,iBAAiBA,CAAA,EAAG;IAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,gBAAA;IAClB,MAAMhB,OAAO,GACX,OAAO,IAAI,CAAC9H,gBAAgB,KAAK,QAAQ,GACrC,IAAI,CAACA,gBAAgB,IAAA4I,qBAAA,GACrB,IAAI,CAAC5I,gBAAgB,qBAArB4I,qBAAA,CAAuBd,OAAO;IAEpC,CAAAe,sBAAA,IAAAC,gBAAA,OAAI,CAAC9H,SAAS,EAACiH,SAAS,aAAxBY,sBAAA,CAAAlD,IAAA,CAAAmD,gBAAA,EAA2B;MACzBZ,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,sCAAsC;MAC9CL,OAAO,EACLA,OAAO,IAAI,IAAI,CAAC9G,SAAS,CAACoH,SAAS,CAAC,gCAAgC;IACxE,CAAC,CAAC;EACJ;EAEQzG,mBAAmBA,CAACD,qBAA0B,EAAE;IACtD,IAAI,CAAC+C,kBAAkB,GAAG,IAAI;IAC9B,IAAI,CAACuC,yBAAyB,CAAC;MAAE+B,cAAc,EAAErH;IAAsB,CAAC,CAAC;EAC3E;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEmC,QAAQA,CAAA,EAAe;IACrB,MAAMmF,IAAI,GAAG,CAAC,CAAC;IACf,IAAI,CAACC,UAAU,CAACC,GAAG,CAACF,IAAI,CAAC;IACzB,OAAO,IAAAvH,YAAM,EAAC,MAAM;MAClB,IAAI,CAACwH,UAAU,CAACE,MAAM,CAACH,IAAI,CAAC;IAC9B,CAAC,CAAC;EACJ;EAEA,IAAIlF,UAAUA,CAAA,EAAY;IACxB,OAAO,IAAI,CAACmF,UAAU,CAACG,IAAI,GAAG,CAAC;EACjC;EAEA,MAAMhG,YAAYA,CAACoE,CAA4B,EAAE;IAAA,IAAA6B,sBAAA;IAC/C,IACE,IAAI,CAACnJ,QAAQ,CAACoJ,UAAU,CAAC/D,MAAM,CAACgE,SAAS,IACzC,IAAI,CAACzF,UAAU,KAAAuF,sBAAA,GACf,IAAI,CAACtI,gBAAgB,cAAAsI,sBAAA,GAArBA,sBAAA,CAAuBG,OAAO,aAA9BH,sBAAA,CAAgCI,QAAQ,EACxC;MACA;IACF;IAEA,IAAI,CAAC5H,MAAM,CAACC,IAAI,CAAC,MAAM,CAAC;IAExB,MAAM;MAAE4H,OAAO;MAAEvE,IAAI,EAAEwE;IAAgB,CAAC,GAAG,MAAM,IAAI,CAACzJ,QAAQ,CAAC0J,QAAQ,CAAC,CAAC;IAEzE,IAAI,CAACF,OAAO,EAAE;MAAA,IAAAG,sBAAA;MACZ,IAAI,CAAC9G,EAAE,CAACuD,iBAAiB,CAAC;QACxBC,OAAO,EAAE,MAAM;QACfmD,OAAO,EAAE,KAAK;QACdlD,cAAc,GAAAqD,sBAAA,GAAE,IAAI,CAAC9I,gBAAgB,cAAA8I,sBAAA,GAArBA,sBAAA,CAAuBL,OAAO,qBAA9BK,sBAAA,CAAgCnD;MAClD,CAAC,CAAC;MACF;IACF;IAEA,MAAM;MACJtG,IAAI;MACJF,QAAQ,EAAE;QAAEoJ;MAAW,CAAC;MACxBvG;IACF,CAAC,GAAG,IAAI;IAERuG,UAAU,CAACQ,GAAG,CAAC,YAAY;MACzB,IAAIC,WAA0B;MAC9B,IAAIC,gBAAgB,GAAG,KAAK;MAE5B,MAAM5J,IAAI,CAACgD,YAAY,CACrB,YAAY;QAAA,IAAA6G,sBAAA;QACVlH,EAAE,CAACuD,iBAAiB,CAAC;UACnBC,OAAO,EAAE,MAAM;UACfmD,OAAO,EAAE,IAAI;UACblD,cAAc,GAAAyD,sBAAA,GAAE,IAAI,CAAClJ,gBAAgB,cAAAkJ,sBAAA,GAArBA,sBAAA,CAAuBT,OAAO,qBAA9BS,sBAAA,CAAgCvD;QAClD,CAAC,CAAC;QACF,IAAI;UACF,IAAI,CAAC,IAAI,CAACX,UAAU,EAAE;YACpB,MAAMmE,YAAY,GAAG,MAAM,IAAI,CAACnK,MAAM,CAAC;cACrC4J,eAAe;cACftI,MAAM,EAAE,IAAI,CAACA;YACf,CAAC,CAAC;YACF0I,WAAW,GAAGG,YAAY,oBAAZA,YAAY,CAAEpD,aAAa;UAC3C;UACA,IAAI,CAAC6B,iBAAiB,CAAC,CAAC;UACxBqB,gBAAgB,GAAG,IAAI,CAAC,CAAC;UACzB;UACA,IAAI,CAACvF,kBAAkB,GAAG,IAAI;QAChC,CAAC,CAAC,OAAOzC,GAAG,EAAE;UACZ,IAAI,CAACuF,eAAe,CAACvF,GAAG,EAAEwF,CAAC,CAAC;UAC5B,IAAI,CAACxG,SAAS,CAACmJ,YAAY,CAACC,gBAAgB,CAACpI,GAAG,CAAC;UACjD,IAAI,CAACH,MAAM,CAACC,IAAI,CAAC,WAAW,EAAEE,GAAG,CAAC;UAClC5B,IAAI,CAACiK,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC;MACF,CAAC,EACD,MAAM;QAAA,IAAAC,sBAAA;QACJvH,EAAE,CAACuD,iBAAiB,CAAC;UACnBC,OAAO,EAAE,MAAM;UACfmD,OAAO,EAAE,KAAK;UACdlD,cAAc,GAAA8D,sBAAA,GAAE,IAAI,CAACvJ,gBAAgB,cAAAuJ,sBAAA,GAArBA,sBAAA,CAAuBd,OAAO,qBAA9Bc,sBAAA,CAAgC5D;QAClD,CAAC,CAAC;MACJ,CAAC,CAAE;MACL,CAAC,CAACc,CAAC,CAAC;MAEJ,IAAI,CAACwC,gBAAgB,EAAE;QACrB;MACF;MACA,MAAMO,eAAe,GACnBR,WAAW,IAAI,IAAI,CAACtJ,+BAA+B,GAC/C,IAAI,CAACA,+BAA+B,CAACsJ,WAAW,CAAC,GACjDA,WAAW;MACjB,IAAI,CAACpD,gBAAgB,CAAC4D,eAAe,CAAC;IACxC,CAAC,CAAC;IACF,MAAM,IAAI,CAACrK,QAAQ,CAACoJ,UAAU,CAAC/D,MAAM,CAACC,OAAO;EAC/C;EAEA,IAAIrB,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACjE,QAAQ,CAACiE,QAAQ;EAC/B;EAEA,IAAImF,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACpJ,QAAQ,CAACoJ,UAAU;EACjC;EAEQpF,gBAAgBA,CAAA,EAAG;IACzB,IAAI,IAAI,CAACD,aAAa,EAAE;MACtB,IAAI,IAAI,CAACtD,WAAW,KAAKlB,SAAS,EAAE;QAClC,MAAM,IAAI+K,KAAK,CAAC,6CAA6C,CAAC;MAChE;IACF,CAAC,MAAM;MACL,IAAI,IAAI,CAACnK,aAAa,KAAKZ,SAAS,EAAE;QACpC,MAAM,IAAI+K,KAAK,CAAC,+CAA+C,CAAC;MAClE;MAEA,IAAI,CAAC,IAAI,CAACxJ,SAAS,CAACoG,UAAU,EAAE;QAC9B,MAAM,IAAIoD,KAAK,CAAC,iDAAiD,CAAC;MACpE;IACF;EACF;AACF;AAACC,OAAA,CAAAxL,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","_EntityPageDeleteActionState","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","undefined","observable","set","deep","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","_isNewEntity","isNewEntity","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","_parentReferrer","parentReferrer","actionsBarConfig","container","deleteActionState","EntityPageDeleteActionState","deleteAction","getEntity","entity","getLoadedSchema","loadedSchema","onDeleted","action","deletedCollectionItem","handleEntityDeleted","emitDelete","events","emit","emitDeleteError","err","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","ref","setEntity","_schema","setSchema","_loadedSchema","setLoadedSchema","customColumnsState","setActionsBarConfig","holdSave","isSaveHeld","computed","isFormDirty","_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","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","markFieldsChanged","_this$_routerState","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","cancelCta","biAdditionalInfo","navigateToParent","_isExistingEntity","isRouteKnown","updatedEntity","entityStringKey","navigateToParentWithState","entityObject","navigate","state","navigateTo","pageId","referrer","_showErrorToast","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","_deletedEntity","hold","_saveHolds","add","delete","size","_this$actionsBarConfi2","submitTask","isLoading","saveCta","disabled","isValid","widgetsFormData","validate","_this$actionsBarConfi3","run","savedEntity","submitSuccessful","_this$actionsBarConfi4","onSaveResult","errorMonitor","captureException","setError","_this$actionsBarConfi5","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 type { LoadedSchema } 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';\nimport {\n EntityPageDeleteAction,\n EntityPageDeleteActionState,\n} from './EntityPageDeleteActionState';\n\ntype OnSaveParams<T> = {\n widgetsFormData: { [key: string]: any };\n /**\n * The entity as `fetch` loaded it, or `null` on a create route. Use it for what\n * the form does not hold but the update needs, such as the record's revision.\n */\n entity: T | null;\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<T>) => 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 * Enables deleting the loaded entity from the entity page. Pass `true` for a\n * schema-backed page to use the source backend, or an object to customize the\n * action and to provide a delete handler for manually wired pages.\n */\n deleteAction?: EntityPageDeleteAction<T>;\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 * Whether the page was opened to create a new entity rather than to edit an\n * existing one. Decides how a save is announced to the parent page — created\n * vs updated — so a new item seeded with local defaults is still announced\n * as created. Pass a getter when the route can change while the page stays\n * mounted. When omitted, the announcement follows whether an entity was\n * loaded.\n */\n isNewEntity?: boolean | (() => boolean);\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 _loadedSchema: LoadedSchema<T> | null = null;\n private readonly _isNewEntity?: boolean | (() => boolean);\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n private readonly _parentReferrer?: string;\n\n actionsBarConfig: EntityPageStateParams<T>['actionsBarConfig'] = undefined;\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 // Shallow: a deep set would wrap the token objects, and release could not\n // find them again.\n private readonly _saveHolds = observable.set<object>([], { deep: false });\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 readonly deleteActionState: EntityPageDeleteActionState<T>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n delete: () => void;\n deleteError: (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._isNewEntity = params.isNewEntity;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this._parentReferrer = params.parentReferrer;\n this.actionsBarConfig = params.actionsBarConfig;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n this.deleteActionState = new EntityPageDeleteActionState<T>({\n container: this.container,\n deleteAction: params.deleteAction,\n schemaSource: this.schemaSource,\n getEntity: () => this.entity,\n getLoadedSchema: () => this.loadedSchema,\n transformEntityToCollectionItem: this.transformEntityToCollectionItem,\n onDeleted: action((deletedCollectionItem) =>\n this.handleEntityDeleted(deletedCollectionItem),\n ),\n emitDelete: () => this.events.emit('delete'),\n emitDeleteError: (err) => this.events.emit('deleteError', err),\n });\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 _loadedSchema: observable.ref,\n setLoadedSchema: action,\n customColumnsState: observable.ref,\n actionsBarConfig: observable.ref,\n setActionsBarConfig: action,\n holdSave: action,\n isSaveHeld: computed,\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 // A fields card can mirror a newer value while these promises settle.\n if (loadedSchema && !this.loadedSchema) {\n this.setLoadedSchema(loadedSchema);\n }\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 setActionsBarConfig(actionsBarConfig?: ActionsBarConfig) {\n this.actionsBarConfig = actionsBarConfig;\n }\n\n setLoadedSchema(loadedSchema: LoadedSchema<T> | null) {\n this._loadedSchema = loadedSchema;\n }\n\n get loadedSchema(): LoadedSchema<T> | null {\n return this._loadedSchema;\n }\n\n markFieldsChanged() {\n this._routerState?.markFieldsChanged();\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 private get _isExistingEntity(): boolean {\n const isNewEntity =\n typeof this._isNewEntity === 'function'\n ? this._isNewEntity()\n : this._isNewEntity;\n const isRouteKnown = isNewEntity !== undefined;\n return isRouteKnown ? !isNewEntity : !!this._entity;\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._isExistingEntity\n ? '_updatedEntity'\n : '_createdEntity';\n this.navigateToParentWithState({ [entityStringKey]: updatedEntity });\n }\n\n navigateToParentWithState(entityObject: Record<string, unknown>) {\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 private handleEntityDeleted(deletedCollectionItem: any) {\n this.isSubmitSuccessful = true;\n this.navigateToParentWithState({ _deletedEntity: deletedCollectionItem });\n }\n\n /**\n * Blocks `handleSubmit` until the returned release is called (idempotent).\n * For features whose form fields are not mounted yet — react-hook-form only\n * validates mounted controls, so a save in that window would skip their\n * required-field validation.\n */\n holdSave(): () => void {\n const hold = {};\n this._saveHolds.add(hold);\n return action(() => {\n this._saveHolds.delete(hold);\n });\n }\n\n get isSaveHeld(): boolean {\n return this._saveHolds.size > 0;\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (\n this.formPage.submitTask.status.isLoading ||\n this.isSaveHeld ||\n this.actionsBarConfig?.saveCta?.disabled\n ) {\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 entity: this.entity,\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":[]}
|
|
@@ -155,12 +155,16 @@ class EntityPageFieldsCardState {
|
|
|
155
155
|
(0, _mobx.reaction)(() => {
|
|
156
156
|
var _this$sourceState3;
|
|
157
157
|
return (_this$sourceState3 = this.sourceState) == null ? void 0 : _this$sourceState3.loadedSchema;
|
|
158
|
-
}, loadedSchema => {
|
|
158
|
+
}, (loadedSchema, previous) => {
|
|
159
159
|
if (!loadedSchema) {
|
|
160
160
|
return;
|
|
161
161
|
}
|
|
162
162
|
this.params.pageState.setLoadedSchema(loadedSchema);
|
|
163
163
|
this.params.pageState.setSchema(loadedSchema.schema);
|
|
164
|
+
// The first value is the load; every later one is a field mutation.
|
|
165
|
+
if (previous) {
|
|
166
|
+
this.params.pageState.markFieldsChanged();
|
|
167
|
+
}
|
|
164
168
|
}), this.cardState.init()];
|
|
165
169
|
return () => {
|
|
166
170
|
disposers.forEach(dispose => dispose == null ? void 0 : dispose());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_bexCore","_resolveEntityPageFields","_SchemaCardState","_CustomColumnsEntityPageState","EntityPageFieldsCardState","constructor","params","_defineProperty2","default","TaskState","makeObservable","schema","computed","declaredFields","visibleFieldIds","isLayoutReady","canManageFields","schemaSource","pageState","sourceState","SourceState","container","source","undefined","cardState","SchemaCardState","fields","persistencyKey","panels","showManageFields","_params$pageState$sch","manageFieldsSource","fieldManagement","closeSidePanel","panelState","CustomColumnsEntityPageState","collectionId","fieldsState","isFieldsEditable","showFieldTypeIcons","dragAndDrop","modalsContainerRef","customColumnsState","_this$sourceState","resolveEntityPageFields","fieldIds","map","field","id","hideable","isEntityPageFieldHideable","idField","length","orderedFields","filter","isFieldVisible","status","initTask","isSuccess","isError","openManageFields","_this$panelState","toggleSidePanel","init","_this$loadTask$status","loadTask","runOnce","_this$sourceState2","load","promise","catch","releaseSaveHold","holdSave","disposers","when","addEventListener","events","_this$loadTask$status2","reaction","_this$sourceState3","loadedSchema","setLoadedSchema","setSchema","forEach","dispose","exports"],"sources":["../../../src/state/EntityPageFieldsCardState.ts"],"sourcesContent":["import { computed, makeObservable, reaction, when } from 'mobx';\nimport {\n addEventListener,\n SourceState,\n TaskState,\n type Schema,\n type WixPatternsContainer,\n} from '@wix/bex-core';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport {\n isEntityPageFieldHideable,\n resolveEntityPageFields,\n} from './EntityPage/resolveEntityPageFields';\nimport type { EntityPageState } from './EntityPage/EntityPageState';\nimport { SchemaCardState } from './SchemaCard/SchemaCardState';\nimport type { SchemaViewConfig } from './SchemaCard/SchemaFieldsState';\nimport type { ManageFieldsSource } from './ManageFieldsSource';\nimport { CustomColumnsEntityPageState } from './CustomColumnsEntityPageState';\n\nexport interface EntityPageFieldsCardStateParams {\n pageState: EntityPageState<any, any>;\n container: WixPatternsContainer;\n /** Namespace the per-user show/hide and order are stored under. */\n persistencyKey: string;\n /** Field ids to offer, in order. Omitted ⇒ every editable schema field. */\n fieldIds?: string[];\n /** Whether to build the manage-fields panel. Default: `true`. */\n showManageFields?: boolean;\n /** Passed in rather than imported so this stays free of component imports. */\n dragAndDrop?: typeof CustomColumnsDragAndDrop;\n /** Builds add / edit / delete field over the page's source. Passed in for the\n * same reason as `dragAndDrop`. Omitted ⇒ the panel only shows and reorders. */\n fieldManagement?: (params: {\n sourceState: SourceState<any>;\n closeSidePanel: () => void;\n }) => ManageFieldsSource;\n modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\n/**\n * Owns the card's field layout: which of the page's schema fields are visible\n * and in what order, plus the panel that edits them.\n *\n * The schema loads after this state is created, so `init()` awaits the source's\n * load and everything below reads the result through computeds — the states are\n * built once, on the first render, and fill in when the schema arrives.\n */\nexport class EntityPageFieldsCardState {\n readonly cardState: SchemaCardState;\n readonly panelState?: CustomColumnsEntityPageState;\n /** Holds the loaded schema for the card. The page loads the same (memoized)\n * schema into its own copy; this one is also what the field mutations merge\n * their result into, so an added or renamed field shows up with no reload. */\n readonly sourceState?: SourceState<any>;\n /** Add / edit / delete field, when the page has a source and the panel is on. */\n readonly manageFieldsSource?: ManageFieldsSource;\n /** The source's schema load. Owned here rather than read off the page state,\n * because this state's `init()` runs before the page's (child effects run\n * first) and the stored layout must not be read before the fields exist. */\n readonly loadTask = new TaskState();\n private readonly params: EntityPageFieldsCardStateParams;\n\n constructor(params: EntityPageFieldsCardStateParams) {\n this.params = params;\n\n makeObservable(this, {\n schema: computed,\n declaredFields: computed,\n visibleFieldIds: computed,\n isLayoutReady: computed,\n canManageFields: computed,\n });\n\n const { schemaSource } = params.pageState;\n this.sourceState = schemaSource\n ? new SourceState({ container: params.container, source: schemaSource })\n : undefined;\n\n this.cardState = new SchemaCardState({\n fields: () => this.declaredFields,\n persistencyKey: params.persistencyKey,\n container: params.container,\n });\n\n const { panels } = params.pageState;\n\n if ((params.showManageFields ?? true) && panels) {\n this.manageFieldsSource =\n this.sourceState &&\n params.fieldManagement?.({\n sourceState: this.sourceState,\n closeSidePanel: panels.closeSidePanel,\n });\n this.panelState = new CustomColumnsEntityPageState({\n container: params.container,\n // The page's host, so this panel and anything else on the page take\n // turns rather than stacking.\n panels,\n // Namespaces the panel's column collection, the way a table's is\n // namespaced by its collection.\n collectionId: params.pageState.schemaSource?.collectionId,\n fieldsState: this.cardState.fieldsState,\n schema: () => this.schema,\n manageFieldsSource: this.manageFieldsSource,\n isFieldsEditable: true,\n showFieldTypeIcons: true,\n dragAndDrop: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n\n // Where the registered panel reads it from — it renders with no props.\n params.pageState.customColumnsState = this.panelState;\n }\n }\n\n /** The page's schema, or this state's own copy until the page has one — this\n * load resolves first, since the page also waits for the entity fetch. They\n * are the same object (the source memoizes its load), and after a field\n * mutation the page holds the merged one, which `init` mirrors to it. */\n get schema(): Schema | null {\n return this.params.pageState.schema ?? this.sourceState?.schema ?? null;\n }\n\n /** The fields the card offers — empty until the schema loads. */\n get declaredFields(): SchemaViewConfig[] {\n const { schema } = this;\n if (!schema) {\n return [];\n }\n return resolveEntityPageFields(schema.fields, this.params.fieldIds).map(\n (field) => ({\n id: field.id,\n hideable: isEntityPageFieldHideable(field, schema.idField),\n }),\n );\n }\n\n /** What the card renders. Before the schema loads this is whatever the card\n * was asked for, which is also what the fields show a skeleton for. */\n get visibleFieldIds(): string[] | undefined {\n if (!this.declaredFields.length) {\n return this.params.fieldIds;\n }\n const { fieldsState } = this.cardState;\n return fieldsState.orderedFields\n .filter((field) => fieldsState.isFieldVisible(field.id))\n .map((field) => field.id);\n }\n\n get isLayoutReady(): boolean {\n const { status } = this.cardState.fieldsState.initTask;\n return status.isSuccess || status.isError;\n }\n\n get canManageFields(): boolean {\n return !!this.panelState && this.declaredFields.length > 0;\n }\n\n openManageFields() {\n this.panelState?.panels.toggleSidePanel('customColumns');\n }\n\n init() {\n // `loadSchema` is memoized on the source, so this shares the one fetch the\n // page and the collection already make.\n this.loadTask.runOnce(async () => {\n await this.sourceState?.load();\n });\n // The card renders its fields regardless; a failed load leaves the page\n // itself showing the error.\n this.loadTask.status.promise?.catch(() => null);\n\n const releaseSaveHold = this.params.pageState.holdSave();\n\n const disposers: (void | (() => void))[] = [\n when(() => this.isLayoutReady, releaseSaveHold),\n releaseSaveHold,\n // Hold the stored-layout read until the schema is in, so a saved\n // show/hide and order survives a reload. Registered before the card\n // state's init below, which is what collects the listeners.\n addEventListener(\n this.cardState.fieldsState.events,\n 'beforeInitialFetch',\n () => this.loadTask.status.promise?.catch(() => {}),\n ),\n // A field mutation replaces this state's loaded schema. The page keeps\n // its own copy, so update both public views of it together.\n reaction(\n () => this.sourceState?.loadedSchema,\n (loadedSchema) => {\n if (!loadedSchema) {\n return;\n }\n this.params.pageState.setLoadedSchema(loadedSchema);\n this.params.pageState.setSchema(loadedSchema.schema);\n },\n ),\n this.cardState.init(),\n ];\n\n return () => {\n disposers.forEach((dispose) => dispose?.());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_bexCore","_resolveEntityPageFields","_SchemaCardState","_CustomColumnsEntityPageState","EntityPageFieldsCardState","constructor","params","_defineProperty2","default","TaskState","makeObservable","schema","computed","declaredFields","visibleFieldIds","isLayoutReady","canManageFields","schemaSource","pageState","sourceState","SourceState","container","source","undefined","cardState","SchemaCardState","fields","persistencyKey","panels","showManageFields","_params$pageState$sch","manageFieldsSource","fieldManagement","closeSidePanel","panelState","CustomColumnsEntityPageState","collectionId","fieldsState","isFieldsEditable","showFieldTypeIcons","dragAndDrop","modalsContainerRef","customColumnsState","_this$sourceState","resolveEntityPageFields","fieldIds","map","field","id","hideable","isEntityPageFieldHideable","idField","length","orderedFields","filter","isFieldVisible","status","initTask","isSuccess","isError","openManageFields","_this$panelState","toggleSidePanel","init","_this$loadTask$status","loadTask","runOnce","_this$sourceState2","load","promise","catch","releaseSaveHold","holdSave","disposers","when","addEventListener","events","_this$loadTask$status2","reaction","_this$sourceState3","loadedSchema","previous","setLoadedSchema","setSchema","markFieldsChanged","forEach","dispose","exports"],"sources":["../../../src/state/EntityPageFieldsCardState.ts"],"sourcesContent":["import { computed, makeObservable, reaction, when } from 'mobx';\nimport {\n addEventListener,\n SourceState,\n TaskState,\n type Schema,\n type WixPatternsContainer,\n} from '@wix/bex-core';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport {\n isEntityPageFieldHideable,\n resolveEntityPageFields,\n} from './EntityPage/resolveEntityPageFields';\nimport type { EntityPageState } from './EntityPage/EntityPageState';\nimport { SchemaCardState } from './SchemaCard/SchemaCardState';\nimport type { SchemaViewConfig } from './SchemaCard/SchemaFieldsState';\nimport type { ManageFieldsSource } from './ManageFieldsSource';\nimport { CustomColumnsEntityPageState } from './CustomColumnsEntityPageState';\n\nexport interface EntityPageFieldsCardStateParams {\n pageState: EntityPageState<any, any>;\n container: WixPatternsContainer;\n /** Namespace the per-user show/hide and order are stored under. */\n persistencyKey: string;\n /** Field ids to offer, in order. Omitted ⇒ every editable schema field. */\n fieldIds?: string[];\n /** Whether to build the manage-fields panel. Default: `true`. */\n showManageFields?: boolean;\n /** Passed in rather than imported so this stays free of component imports. */\n dragAndDrop?: typeof CustomColumnsDragAndDrop;\n /** Builds add / edit / delete field over the page's source. Passed in for the\n * same reason as `dragAndDrop`. Omitted ⇒ the panel only shows and reorders. */\n fieldManagement?: (params: {\n sourceState: SourceState<any>;\n closeSidePanel: () => void;\n }) => ManageFieldsSource;\n modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\n/**\n * Owns the card's field layout: which of the page's schema fields are visible\n * and in what order, plus the panel that edits them.\n *\n * The schema loads after this state is created, so `init()` awaits the source's\n * load and everything below reads the result through computeds — the states are\n * built once, on the first render, and fill in when the schema arrives.\n */\nexport class EntityPageFieldsCardState {\n readonly cardState: SchemaCardState;\n readonly panelState?: CustomColumnsEntityPageState;\n /** Holds the loaded schema for the card. The page loads the same (memoized)\n * schema into its own copy; this one is also what the field mutations merge\n * their result into, so an added or renamed field shows up with no reload. */\n readonly sourceState?: SourceState<any>;\n /** Add / edit / delete field, when the page has a source and the panel is on. */\n readonly manageFieldsSource?: ManageFieldsSource;\n /** The source's schema load. Owned here rather than read off the page state,\n * because this state's `init()` runs before the page's (child effects run\n * first) and the stored layout must not be read before the fields exist. */\n readonly loadTask = new TaskState();\n private readonly params: EntityPageFieldsCardStateParams;\n\n constructor(params: EntityPageFieldsCardStateParams) {\n this.params = params;\n\n makeObservable(this, {\n schema: computed,\n declaredFields: computed,\n visibleFieldIds: computed,\n isLayoutReady: computed,\n canManageFields: computed,\n });\n\n const { schemaSource } = params.pageState;\n this.sourceState = schemaSource\n ? new SourceState({ container: params.container, source: schemaSource })\n : undefined;\n\n this.cardState = new SchemaCardState({\n fields: () => this.declaredFields,\n persistencyKey: params.persistencyKey,\n container: params.container,\n });\n\n const { panels } = params.pageState;\n\n if ((params.showManageFields ?? true) && panels) {\n this.manageFieldsSource =\n this.sourceState &&\n params.fieldManagement?.({\n sourceState: this.sourceState,\n closeSidePanel: panels.closeSidePanel,\n });\n this.panelState = new CustomColumnsEntityPageState({\n container: params.container,\n // The page's host, so this panel and anything else on the page take\n // turns rather than stacking.\n panels,\n // Namespaces the panel's column collection, the way a table's is\n // namespaced by its collection.\n collectionId: params.pageState.schemaSource?.collectionId,\n fieldsState: this.cardState.fieldsState,\n schema: () => this.schema,\n manageFieldsSource: this.manageFieldsSource,\n isFieldsEditable: true,\n showFieldTypeIcons: true,\n dragAndDrop: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n\n // Where the registered panel reads it from — it renders with no props.\n params.pageState.customColumnsState = this.panelState;\n }\n }\n\n /** The page's schema, or this state's own copy until the page has one — this\n * load resolves first, since the page also waits for the entity fetch. They\n * are the same object (the source memoizes its load), and after a field\n * mutation the page holds the merged one, which `init` mirrors to it. */\n get schema(): Schema | null {\n return this.params.pageState.schema ?? this.sourceState?.schema ?? null;\n }\n\n /** The fields the card offers — empty until the schema loads. */\n get declaredFields(): SchemaViewConfig[] {\n const { schema } = this;\n if (!schema) {\n return [];\n }\n return resolveEntityPageFields(schema.fields, this.params.fieldIds).map(\n (field) => ({\n id: field.id,\n hideable: isEntityPageFieldHideable(field, schema.idField),\n }),\n );\n }\n\n /** What the card renders. Before the schema loads this is whatever the card\n * was asked for, which is also what the fields show a skeleton for. */\n get visibleFieldIds(): string[] | undefined {\n if (!this.declaredFields.length) {\n return this.params.fieldIds;\n }\n const { fieldsState } = this.cardState;\n return fieldsState.orderedFields\n .filter((field) => fieldsState.isFieldVisible(field.id))\n .map((field) => field.id);\n }\n\n get isLayoutReady(): boolean {\n const { status } = this.cardState.fieldsState.initTask;\n return status.isSuccess || status.isError;\n }\n\n get canManageFields(): boolean {\n return !!this.panelState && this.declaredFields.length > 0;\n }\n\n openManageFields() {\n this.panelState?.panels.toggleSidePanel('customColumns');\n }\n\n init() {\n // `loadSchema` is memoized on the source, so this shares the one fetch the\n // page and the collection already make.\n this.loadTask.runOnce(async () => {\n await this.sourceState?.load();\n });\n // The card renders its fields regardless; a failed load leaves the page\n // itself showing the error.\n this.loadTask.status.promise?.catch(() => null);\n\n const releaseSaveHold = this.params.pageState.holdSave();\n\n const disposers: (void | (() => void))[] = [\n when(() => this.isLayoutReady, releaseSaveHold),\n releaseSaveHold,\n // Hold the stored-layout read until the schema is in, so a saved\n // show/hide and order survives a reload. Registered before the card\n // state's init below, which is what collects the listeners.\n addEventListener(\n this.cardState.fieldsState.events,\n 'beforeInitialFetch',\n () => this.loadTask.status.promise?.catch(() => {}),\n ),\n // A field mutation replaces this state's loaded schema. The page keeps\n // its own copy, so update both public views of it together.\n reaction(\n () => this.sourceState?.loadedSchema,\n (loadedSchema, previous) => {\n if (!loadedSchema) {\n return;\n }\n this.params.pageState.setLoadedSchema(loadedSchema);\n this.params.pageState.setSchema(loadedSchema.schema);\n // The first value is the load; every later one is a field mutation.\n if (previous) {\n this.params.pageState.markFieldsChanged();\n }\n },\n ),\n this.cardState.init(),\n ];\n\n return () => {\n disposers.forEach((dispose) => dispose?.());\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_ = "FormPageHeader2994546911";
|
|
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": "FormPageHeader2994546911__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_ = \"FormPageHeader2994546911\";\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\":\"FormPageHeader2994546911__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":[]}
|
|
@@ -6,6 +6,7 @@ exports.WixPatternsRouterState = void 0;
|
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _mobx = require("mobx");
|
|
8
8
|
var _getCollectionComponentUniqueId = require("../utils/getCollectionComponentUniqueId");
|
|
9
|
+
var _bexCore = require("@wix/bex-core");
|
|
9
10
|
class WixPatternsRouterState {
|
|
10
11
|
constructor(params) {
|
|
11
12
|
(0, _defineProperty2.default)(this, "stateRefs", new Map());
|
|
@@ -14,6 +15,7 @@ class WixPatternsRouterState {
|
|
|
14
15
|
(0, _defineProperty2.default)(this, "currentState", null);
|
|
15
16
|
(0, _defineProperty2.default)(this, "isUsingCache", false);
|
|
16
17
|
(0, _defineProperty2.default)(this, "isCollectionStale", false);
|
|
18
|
+
(0, _defineProperty2.default)(this, "fieldsChanged", false);
|
|
17
19
|
this.container = params.container;
|
|
18
20
|
this._navigate = params.navigate;
|
|
19
21
|
(0, _mobx.makeObservable)(this, {
|
|
@@ -29,6 +31,17 @@ class WixPatternsRouterState {
|
|
|
29
31
|
const uniqueId = (0, _getCollectionComponentUniqueId.getCollectionComponentUniqueId)(state);
|
|
30
32
|
this.stateRefs.set(uniqueId, state);
|
|
31
33
|
}
|
|
34
|
+
markFieldsChanged() {
|
|
35
|
+
this.fieldsChanged = true;
|
|
36
|
+
}
|
|
37
|
+
dropCacheIfFieldsChanged() {
|
|
38
|
+
if (!this.fieldsChanged) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.fieldsChanged = false;
|
|
42
|
+
this.stateRefs.clear();
|
|
43
|
+
this.container.queryCache = new _bexCore.QueryCache();
|
|
44
|
+
}
|
|
32
45
|
navigate(to, options) {
|
|
33
46
|
var _this$_navigate;
|
|
34
47
|
this.setCurrentState(options.state);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_getCollectionComponentUniqueId","WixPatternsRouterState","constructor","params","_defineProperty2","default","Map","container","_navigate","navigate","makeObservable","currentState","observable","ref","setCurrentState","action","isCollectionStale","state","saveState","uniqueId","getCollectionComponentUniqueId","stateRefs","set","to","options","_this$_navigate","call","exports"],"sources":["../../../src/state/WixPatternsRouterState.ts"],"sourcesContent":["import { action, makeObservable, observable } from 'mobx';\nimport { getCollectionComponentUniqueId } from '../utils/getCollectionComponentUniqueId';\nimport { ICollectionComponentState } from './ICollectionComponentState';\nimport {
|
|
1
|
+
{"version":3,"names":["_mobx","require","_getCollectionComponentUniqueId","_bexCore","WixPatternsRouterState","constructor","params","_defineProperty2","default","Map","container","_navigate","navigate","makeObservable","currentState","observable","ref","setCurrentState","action","isCollectionStale","state","saveState","uniqueId","getCollectionComponentUniqueId","stateRefs","set","markFieldsChanged","fieldsChanged","dropCacheIfFieldsChanged","clear","queryCache","QueryCache","to","options","_this$_navigate","call","exports"],"sources":["../../../src/state/WixPatternsRouterState.ts"],"sourcesContent":["import { action, makeObservable, observable } from 'mobx';\nimport { getCollectionComponentUniqueId } from '../utils/getCollectionComponentUniqueId';\nimport { ICollectionComponentState } from './ICollectionComponentState';\nimport {\n NavigateOptions,\n QueryCache,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { NavigateFunction } from 'react-router-dom';\n\ninterface WixPatternsRouterStateParams {\n container: WixPatternsContainer;\n navigate: NavigateFunction;\n}\n\nexport type RouteState = {\n _createdEntity?: any;\n _updatedEntity?: any;\n _deletedEntity?: any;\n _chosenEntity?: any;\n} | null;\n\nexport class WixPatternsRouterState {\n readonly stateRefs: Map<string, ICollectionComponentState> = new Map();\n readonly container: WixPatternsContainer;\n readonly _navigate;\n\n currentState: RouteState = null;\n isUsingCache = false;\n isCollectionStale = false;\n private fieldsChanged = false;\n\n constructor(params: WixPatternsRouterStateParams) {\n this.container = params.container;\n this._navigate = params.navigate;\n\n makeObservable(this, {\n currentState: observable.ref,\n setCurrentState: action,\n isCollectionStale: observable,\n });\n }\n\n setCurrentState(state: RouteState) {\n this.currentState = state;\n }\n\n saveState<S extends ICollectionComponentState>(state: S) {\n const uniqueId = getCollectionComponentUniqueId(state);\n this.stateRefs.set(uniqueId, state);\n }\n\n markFieldsChanged() {\n this.fieldsChanged = true;\n }\n\n dropCacheIfFieldsChanged() {\n if (!this.fieldsChanged) {\n return;\n }\n this.fieldsChanged = false;\n this.stateRefs.clear();\n this.container.queryCache = new QueryCache();\n }\n\n navigate(to: string, options: NavigateOptions): void {\n this.setCurrentState(options.state);\n this._navigate?.(to, options);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,+BAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAmBO,MAAMG,sBAAsB,CAAC;EAUlCC,WAAWA,CAACC,MAAoC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,qBATW,IAAIC,GAAG,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBAI3C,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBAChB,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6BACA,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,yBACD,KAAK;IAG3B,IAAI,CAACE,SAAS,GAAGJ,MAAM,CAACI,SAAS;IACjC,IAAI,CAACC,SAAS,GAAGL,MAAM,CAACM,QAAQ;IAEhC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,YAAY,EAAEC,gBAAU,CAACC,GAAG;MAC5BC,eAAe,EAAEC,YAAM;MACvBC,iBAAiB,EAAEJ;IACrB,CAAC,CAAC;EACJ;EAEAE,eAAeA,CAACG,KAAiB,EAAE;IACjC,IAAI,CAACN,YAAY,GAAGM,KAAK;EAC3B;EAEAC,SAASA,CAAsCD,KAAQ,EAAE;IACvD,MAAME,QAAQ,GAAG,IAAAC,8DAA8B,EAACH,KAAK,CAAC;IACtD,IAAI,CAACI,SAAS,CAACC,GAAG,CAACH,QAAQ,EAAEF,KAAK,CAAC;EACrC;EAEAM,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACC,aAAa,GAAG,IAAI;EAC3B;EAEAC,wBAAwBA,CAAA,EAAG;IACzB,IAAI,CAAC,IAAI,CAACD,aAAa,EAAE;MACvB;IACF;IACA,IAAI,CAACA,aAAa,GAAG,KAAK;IAC1B,IAAI,CAACH,SAAS,CAACK,KAAK,CAAC,CAAC;IACtB,IAAI,CAACnB,SAAS,CAACoB,UAAU,GAAG,IAAIC,mBAAU,CAAC,CAAC;EAC9C;EAEAnB,QAAQA,CAACoB,EAAU,EAAEC,OAAwB,EAAQ;IAAA,IAAAC,eAAA;IACnD,IAAI,CAACjB,eAAe,CAACgB,OAAO,CAACb,KAAK,CAAC;IACnC,CAAAc,eAAA,OAAI,CAACvB,SAAS,aAAduB,eAAA,CAAAC,IAAA,KAAI,EAAaH,EAAE,EAAEC,OAAO,CAAC;EAC/B;AACF;AAACG,OAAA,CAAAhC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|