@wix/patterns 1.440.0 → 1.443.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
- package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
- package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFilters.js +18 -10
- package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js +14 -13
- package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
- package/dist/cjs/components/CustomFieldFilters/HasValueCustomFieldFilter.js +45 -0
- package/dist/cjs/components/CustomFieldFilters/HasValueCustomFieldFilter.js.map +1 -0
- package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js +7 -5
- package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js.map +1 -1
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
- package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/richContent/index.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/richContent/index.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/EntityPageCustomField.js +61 -0
- package/dist/cjs/components/EntityPageFields/EntityPageCustomField.js.map +1 -0
- package/dist/cjs/components/EntityPageFields/EntityPageField.js +39 -18
- package/dist/cjs/components/EntityPageFields/EntityPageField.js.map +1 -1
- package/dist/cjs/components/EntityPageFields/EntityPageFields.js +26 -19
- package/dist/cjs/components/EntityPageFields/EntityPageFields.js.map +1 -1
- package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
- package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
- package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/cjs/components/ReferenceFieldFilter/ReferenceFieldFilter.js +80 -0
- package/dist/cjs/components/ReferenceFieldFilter/ReferenceFieldFilter.js.map +1 -0
- package/dist/cjs/components/ReferenceFieldFilter/index.js +10 -0
- package/dist/cjs/components/ReferenceFieldFilter/index.js.map +1 -0
- package/dist/cjs/components/ReferenceFieldFilter/pr-5715-comments.md +73 -0
- package/dist/cjs/components/SchemaSource/SchemaState.js +5 -1
- package/dist/cjs/components/SchemaSource/SchemaState.js.map +1 -1
- package/dist/cjs/components/SchemaSource/referenceCells.js +38 -2
- package/dist/cjs/components/SchemaSource/referenceCells.js.map +1 -1
- package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +36 -12
- package/dist/cjs/components/SchemaSource/schemaFieldManagement.js.map +1 -1
- package/dist/cjs/components/SchemaSource/schemaRendering.js +18 -7
- package/dist/cjs/components/SchemaSource/schemaRendering.js.map +1 -1
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/cjs/components/SetupWidget/SetupStepGroup.js +39 -23
- package/dist/cjs/components/SetupWidget/SetupStepGroup.js.map +1 -1
- package/dist/cjs/components/SetupWidget/SetupStepRow.js +91 -68
- package/dist/cjs/components/SetupWidget/SetupStepRow.js.map +1 -1
- package/dist/cjs/components/SetupWidget/SetupStepSecondaryCta.js +69 -0
- package/dist/cjs/components/SetupWidget/SetupStepSecondaryCta.js.map +1 -0
- package/dist/cjs/components/SetupWidget/SetupWidget.js +16 -13
- package/dist/cjs/components/SetupWidget/SetupWidget.js.map +1 -1
- package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +9 -9
- package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
- package/dist/cjs/components/SetupWidget/SetupWidget.uni.driver.js +9 -0
- package/dist/cjs/components/SetupWidget/SetupWidget.uni.driver.js.map +1 -1
- package/dist/cjs/components/SetupWidget/index.js.map +1 -1
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +4 -4
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/cjs/components/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/useCreateWSRColumnBase.js +8 -6
- package/dist/cjs/hooks/useCreateWSRColumnBase.js.map +1 -1
- package/dist/cjs/hooks/useEntityPage.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/model/tableColumn.js.map +1 -1
- package/dist/cjs/state/CollectionFieldsSourceState.js +2 -2
- package/dist/cjs/state/CollectionFieldsSourceState.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/EntityPage/EntityPageState.js +6 -1
- package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/TagsCollectionState.js.map +1 -1
- package/dist/cjs/state/ToolbarCollectionState.js +9 -2
- package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
- package/dist/cjs/state/buildEditableFieldColumns.js +1 -0
- package/dist/cjs/state/buildEditableFieldColumns.js.map +1 -1
- package/dist/cjs/state/buildFieldColumns.js +2 -1
- package/dist/cjs/state/buildFieldColumns.js.map +1 -1
- package/dist/cjs/state/buildFieldFilters.js +92 -9
- package/dist/cjs/state/buildFieldFilters.js.map +1 -1
- package/dist/cjs/styles.global.css +2 -2
- package/dist/cjs/utils/fieldTypePrefixIcons.js +27 -7
- package/dist/cjs/utils/fieldTypePrefixIcons.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/CustomFieldType.md +407 -0
- package/dist/docs/TableColumn.md +1 -0
- package/dist/docs/ToolbarFilters.md +0 -9
- package/dist/docs/index.json +37 -37
- package/dist/docs/useEntityPage.md +1 -0
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/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/CollectionToolbarFilters/CollectionToolbarFilters.js +20 -9
- package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- 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/CustomColumnsPanel/ColumnListTableListItem.js +4 -1
- package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
- package/dist/esm/components/CustomFieldFilters/HasValueCustomFieldFilter.js +30 -0
- package/dist/esm/components/CustomFieldFilters/HasValueCustomFieldFilter.js.map +1 -0
- package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js +2 -0
- package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.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/HeaderActionsPopover.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/richContent/index.js +2 -1
- package/dist/esm/components/EditableTable/cellTypes/richContent/index.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
- package/dist/esm/components/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/EntityPage/EntityPagePlain.st.css.js.map +1 -1
- package/dist/esm/components/EntityPageFields/EntityPageCustomField.js +27 -0
- package/dist/esm/components/EntityPageFields/EntityPageCustomField.js.map +1 -0
- package/dist/esm/components/EntityPageFields/EntityPageField.js +23 -13
- package/dist/esm/components/EntityPageFields/EntityPageField.js.map +1 -1
- package/dist/esm/components/EntityPageFields/EntityPageFields.js +2 -1
- package/dist/esm/components/EntityPageFields/EntityPageFields.js.map +1 -1
- 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/ImportStepUpload.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/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/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/ReferenceFieldFilter/ReferenceFieldFilter.js +45 -0
- package/dist/esm/components/ReferenceFieldFilter/ReferenceFieldFilter.js.map +1 -0
- package/dist/esm/components/ReferenceFieldFilter/index.js +2 -0
- package/dist/esm/components/ReferenceFieldFilter/index.js.map +1 -0
- package/dist/esm/components/ReferenceFieldFilter/pr-5715-comments.md +73 -0
- package/dist/esm/components/SchemaSource/SchemaState.js +4 -2
- package/dist/esm/components/SchemaSource/SchemaState.js.map +1 -1
- package/dist/esm/components/SchemaSource/referenceCells.js +31 -0
- package/dist/esm/components/SchemaSource/referenceCells.js.map +1 -1
- package/dist/esm/components/SchemaSource/schemaFieldManagement.js +52 -28
- package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
- package/dist/esm/components/SchemaSource/schemaRendering.js +13 -4
- package/dist/esm/components/SchemaSource/schemaRendering.js.map +1 -1
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/esm/components/SetupWidget/SetupStepGroup.js +6 -1
- package/dist/esm/components/SetupWidget/SetupStepGroup.js.map +1 -1
- package/dist/esm/components/SetupWidget/SetupStepRow.js +21 -15
- package/dist/esm/components/SetupWidget/SetupStepRow.js.map +1 -1
- package/dist/esm/components/SetupWidget/SetupStepSecondaryCta.js +20 -0
- package/dist/esm/components/SetupWidget/SetupStepSecondaryCta.js.map +1 -0
- package/dist/esm/components/SetupWidget/SetupWidget.js +5 -3
- package/dist/esm/components/SetupWidget/SetupWidget.js.map +1 -1
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
- package/dist/esm/components/SetupWidget/SetupWidget.uni.driver.js +10 -1
- package/dist/esm/components/SetupWidget/SetupWidget.uni.driver.js.map +1 -1
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/hooks/useCreateWSRColumnBase.js +2 -2
- package/dist/esm/hooks/useCreateWSRColumnBase.js.map +1 -1
- package/dist/esm/hooks/useEntityPage.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/model/tableColumn.js.map +1 -1
- package/dist/esm/state/CollectionFieldsSourceState.js +2 -2
- package/dist/esm/state/CollectionFieldsSourceState.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/EntityPage/EntityPageState.js +4 -0
- package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/TagsCollectionState.js.map +1 -1
- package/dist/esm/state/ToolbarCollectionState.js +7 -3
- package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
- package/dist/esm/state/buildEditableFieldColumns.js +1 -1
- package/dist/esm/state/buildEditableFieldColumns.js.map +1 -1
- package/dist/esm/state/buildFieldColumns.js +1 -0
- package/dist/esm/state/buildFieldColumns.js.map +1 -1
- package/dist/esm/state/buildFieldFilters.js +63 -8
- package/dist/esm/state/buildFieldFilters.js.map +1 -1
- package/dist/esm/styles.global.css +2 -2
- package/dist/esm/utils/fieldTypePrefixIcons.js +6 -1
- package/dist/esm/utils/fieldTypePrefixIcons.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CmsFieldManagement/formFields/CharactersLimitInput.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/CollectionToolbarFilters/CollectionToolbarFilters.d.ts +10 -0
- package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFilters.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
- package/dist/types/components/CustomColumnsPanel/ColumnListTableListItem.d.ts.map +1 -1
- package/dist/types/components/CustomFieldFilters/HasValueCustomFieldFilter.d.ts +24 -0
- package/dist/types/components/CustomFieldFilters/HasValueCustomFieldFilter.d.ts.map +1 -0
- package/dist/types/components/CustomFieldModal/CustomFieldTypeDropdown.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/color/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/richContent/index.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/time/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
- package/dist/types/components/EntityPageFields/EntityPageCustomField.d.ts +14 -0
- package/dist/types/components/EntityPageFields/EntityPageCustomField.d.ts.map +1 -0
- package/dist/types/components/EntityPageFields/EntityPageField.d.ts +4 -2
- package/dist/types/components/EntityPageFields/EntityPageField.d.ts.map +1 -1
- package/dist/types/components/EntityPageFields/EntityPageFields.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportStepUpload.st.css.d.ts.map +1 -1
- package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
- package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
- package/dist/types/components/ReferenceFieldFilter/ReferenceFieldFilter.d.ts +48 -0
- package/dist/types/components/ReferenceFieldFilter/ReferenceFieldFilter.d.ts.map +1 -0
- package/dist/types/components/ReferenceFieldFilter/index.d.ts +2 -0
- package/dist/types/components/ReferenceFieldFilter/index.d.ts.map +1 -0
- package/dist/types/components/SchemaSource/SchemaState.d.ts +3 -0
- package/dist/types/components/SchemaSource/SchemaState.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/referenceCells.d.ts +18 -2
- package/dist/types/components/SchemaSource/referenceCells.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/schemaRendering.d.ts +7 -0
- package/dist/types/components/SchemaSource/schemaRendering.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/SetupWidget/SetupStepGroup.d.ts +3 -1
- package/dist/types/components/SetupWidget/SetupStepGroup.d.ts.map +1 -1
- package/dist/types/components/SetupWidget/SetupStepRow.d.ts +3 -1
- package/dist/types/components/SetupWidget/SetupStepRow.d.ts.map +1 -1
- package/dist/types/components/SetupWidget/SetupStepSecondaryCta.d.ts +14 -0
- package/dist/types/components/SetupWidget/SetupStepSecondaryCta.d.ts.map +1 -0
- package/dist/types/components/SetupWidget/SetupWidget.d.ts +7 -1
- package/dist/types/components/SetupWidget/SetupWidget.d.ts.map +1 -1
- package/dist/types/components/SetupWidget/SetupWidget.uni.driver.d.ts +8 -0
- package/dist/types/components/SetupWidget/SetupWidget.uni.driver.d.ts.map +1 -1
- package/dist/types/components/SetupWidget/index.d.ts +1 -1
- package/dist/types/components/SetupWidget/index.d.ts.map +1 -1
- package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
- package/dist/types/hooks/useCreateWSRColumnBase.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPage.d.ts +1 -1
- package/dist/types/hooks/useEntityPage.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model/tableColumn.d.ts +19 -1
- package/dist/types/model/tableColumn.d.ts.map +1 -1
- package/dist/types/state/CollectionFieldsSourceState.d.ts +5 -0
- package/dist/types/state/CollectionFieldsSourceState.d.ts.map +1 -1
- package/dist/types/state/EntityPage/EntityPageState.d.ts +12 -0
- package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
- package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
- package/dist/types/state/buildEditableFieldColumns.d.ts +2 -1
- package/dist/types/state/buildEditableFieldColumns.d.ts.map +1 -1
- package/dist/types/state/buildFieldColumns.d.ts.map +1 -1
- package/dist/types/state/buildFieldFilters.d.ts +20 -4
- package/dist/types/state/buildFieldFilters.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +4 -0
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/utils/fieldTypePrefixIcons.d.ts +8 -2
- package/dist/types/utils/fieldTypePrefixIcons.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/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
- package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionToolbarFilters/CollectionToolbarFilters.tsx +24 -11
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/CustomColumnsPanel/ColumnListTableListItem.tsx +4 -1
- package/src/components/CustomFieldFilters/HasValueCustomFieldFilter.tsx +48 -0
- package/src/components/CustomFieldModal/CustomFieldTypeDropdown.tsx +2 -0
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
- package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/richContent/index.tsx +4 -1
- 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/EntityPageCustomField.tsx +61 -0
- package/src/components/EntityPageFields/EntityPageField.tsx +45 -17
- package/src/components/EntityPageFields/EntityPageFields.tsx +5 -0
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
- package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
- package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
- package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
- package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
- package/src/components/ReferenceFieldFilter/ReferenceFieldFilter.tsx +77 -0
- package/src/components/ReferenceFieldFilter/index.ts +1 -0
- package/src/components/ReferenceFieldFilter/pr-5715-comments.md +73 -0
- package/src/components/SchemaSource/SchemaState.ts +12 -2
- package/src/components/SchemaSource/referenceCells.ts +42 -0
- package/src/components/SchemaSource/schemaFieldManagement.ts +59 -31
- package/src/components/SchemaSource/schemaRendering.tsx +15 -4
- package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
- package/src/components/SetupWidget/SetupStepGroup.tsx +16 -0
- package/src/components/SetupWidget/SetupStepRow.tsx +49 -30
- package/src/components/SetupWidget/SetupStepSecondaryCta.tsx +58 -0
- package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
- package/src/components/SetupWidget/SetupWidget.tsx +15 -0
- package/src/components/SetupWidget/SetupWidget.uni.driver.ts +18 -0
- package/src/components/SetupWidget/index.ts +1 -0
- package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
- package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
- package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
- package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
- package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
- package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
- package/src/components/common.st.css.ts +2 -2
- package/src/hooks/useCreateWSRColumnBase.tsx +12 -3
- package/src/hooks/useEntityPage.ts +1 -0
- package/src/index.ts +3 -0
- package/src/model/tableColumn.ts +13 -1
- package/src/state/CollectionFieldsSourceState.ts +12 -1
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/EntityPage/EntityPageState.ts +17 -0
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/TagsCollectionState.ts +3 -3
- package/src/state/ToolbarCollectionState.ts +13 -5
- package/src/state/buildEditableFieldColumns.ts +1 -1
- package/src/state/buildFieldColumns.tsx +1 -0
- package/src/state/buildFieldFilters.tsx +105 -7
- package/src/styles.global.css +2 -2
- package/src/utils/fieldTypePrefixIcons.tsx +13 -0
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_tableColumnPublicApiTest","c"],"sources":["../../../src/model/tableColumn.ts"],"sourcesContent":["import type { TableColumn as TableColumnWSR } from '@wix/design-system';\nimport type { Field, KeyedItem, SortMode, SortOrder } from '@wix/bex-core';\nimport { CSSProperties, ReactNode } from 'react';\nimport type { FieldType } from '../utils/fieldTypePrefixIcons';\nimport type { ValidationRule } from '../state/EditableTable/types';\n\ntype TableColumnBase<T = any> = Omit<\n TableColumnWSR<T>,\n 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style' | 'titleSuffix'\n> & {\n style?:\n | CSSProperties\n | ((\n column: TableColumnWSR,\n rowData: KeyedItem<T>,\n rowNum: number,\n ) => CSSProperties);\n reorderDisabled?: boolean;\n defaultSortOrder?: SortOrder;\n sortMode?: SortMode;\n searchable?: boolean;\n infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & {\n panelContent?: ReactNode;\n };\n mobile?: ColumnMobileConfig;\n /**\n * The field type string used to resolve a prefix icon for the column.\n * Cairo maps this to the appropriate icon internally.\n * @external\n */\n fieldType?: FieldType;\n /**\n * Whether the field contains personally identifiable information.\n * @external\n */\n isPii?: boolean;\n /**\n * only for cms. Whether this is a system-managed field.\n * @external\n */\n isSystem?: boolean;\n /**\n * Whether this is the primary display field.\n * @external\n */\n isPrimary?: boolean;\n /**\n * Column-level validation rules. When a `required` rule is present, a required indicator is shown in the custom columns panel.\n * @external\n */\n validation?: ValidationRule[];\n};\n\n// disallow specifying `hideable` / `defaultHidden` or setting `hiddenFromCustomColumnsSelection` as false when `id` is missing\ninterface TableColumnOptional<T> extends TableColumnBase<T> {\n id?: string;\n name?: string;\n hiddenFromCustomColumnsSelection?: undefined | true;\n hideable?: undefined;\n defaultHidden?: undefined;\n}\n\n// common case for custom column definition\ninterface TableColumnCustom<T> extends TableColumnBase<T> {\n id: string;\n name: string;\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// allow `name` to be optional when `title` exists\ninterface TableColumnCustomOptionalName<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// force `defaultHidden=false|undefined` when `hideable=false`\ninterface TableColumnCustomDefaultHidden<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable: false;\n defaultHidden?: undefined | false;\n}\n\nexport type CustomColumnConfig<T> =\n | TableColumnOptional<T>\n | TableColumnCustom<T>\n | TableColumnCustomDefaultHidden<T>\n | TableColumnCustomOptionalName<T>;\n\nexport interface SortableColumnConfig<T> extends TableColumnBase<T> {\n id: string;\n sortable: true;\n}\n\nexport interface NotSortableColumnConfig<T> extends TableColumnBase<T> {\n id?: string;\n sortable?: false;\n}\n\nexport type SortableConfig<T> =\n | SortableColumnConfig<T>\n | NotSortableColumnConfig<T>;\n\nexport type TableColumn<T> = CustomColumnConfig<T> & SortableConfig<T>;\n\nexport type ColumnMobileConfig =\n | {\n /**\n * Which mobile column to display in.\n * - 'first': Stacks vertically with other 'first' columns\n * - 'second': Displays as standalone second column\n * - undefined: Hidden on mobile\n */\n column: 'first';\n /**\n * Sort order within 'first' column (lower appears higher).\n * Only relevant when column is 'first'.\n * @default Infinity\n */\n order?: number;\n }\n | {\n /**\n * Which mobile column to display in.\n * - 'first': Stacks vertically with other 'first' columns\n * - 'second': Displays as standalone second column\n * - undefined: Hidden on mobile\n */\n column?: 'second';\n };\n\nexport interface Column {\n /**\n * A unique identifier for the column. This value is required to enable [custom columns](./?path=/story/features-display-custom-columns--overview) or [sortable columns](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n id: string;\n /**\n * A name for the column. This value is shown in the [custom columns](./?path=/story/features-display-custom-columns--overview) dropdown.\n * @external\n */\n name: string;\n /**\n * The text to be shown at the top of the column.\n * @external\n */\n title: TableColumnBase['title'];\n /**\n * Hides the column from the custom column selection panel, making it always visible. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n * @external\n */\n hiddenFromCustomColumnsSelection?: boolean;\n /**\n * When `false`, the column is always selected and displayed. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n */\n hideable?: boolean;\n /**\n * When `true`, search matches in the column's values will be highlighted. Mark a column as searchable only if iy's data is relevant for your search.\n */\n searchable?: boolean;\n /**\n * When `true`, disables drag and drop for the column.\n * @external\n */\n reorderDisabled?: boolean;\n /**\n * When `true`, makes the column a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n sortable?: boolean;\n sortDescending?: boolean;\n sortMode?: SortMode;\n /**\n * Determines the default sort order for the column, either `asc` or `desc`. The column must be a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n defaultSortOrder?: SortOrder;\n /**\n * For [custom columns](./?path=/story/features-display-custom-columns--overview), when `true`, this property causes the column to be unchecked and thus not shown by default. This isn't relevant when `hideable` `=` `false`.\n * @external\n */\n defaultHidden?: boolean;\n dataExtension?: { id: string; editable: boolean; isPii?: boolean };\n /** The source field this column was built from; used to resolve manage actions. */\n field?: Field;\n /**\n * Whether the field contains personally identifiable information.\n * @external\n */\n isPii?: boolean;\n /**\n * only for cms. Whether this is a system-managed field.\n * @external\n */\n isSystem?: boolean;\n /**\n * Whether this is the primary display field.\n * @external\n */\n isPrimary?: boolean;\n /**\n * Column-level validation rules. When a `required` rule is present, a required indicator is shown in the custom columns panel.\n * @external\n */\n validation?: ValidationRule[];\n infoTooltipProps?: {\n content?: ReactNode;\n panelContent?: ReactNode;\n };\n /**\n * A callback that is called for each row in the data to display the value of this row for the specified column.\n * @external\n */\n render: TableColumnWSR['render'];\n width?: TableColumnWSR['width'];\n style?: TableColumnWSR['style'];\n /**\n * Mobile column configuration. Determines how this column is displayed on mobile devices.\n * - column: 'first' - Stacks vertically with other 'first' columns\n * - column: 'second' - Displays as standalone second column\n * - undefined - Hidden on mobile\n * @external\n */\n mobile?: ColumnMobileConfig;\n /**\n * The field type string used to resolve a prefix icon for the column.\n * Cairo maps this to the appropriate icon internally.\n * @external\n */\n fieldType?: FieldType;\n}\n\n// eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n// @ts-ignore\nfunction _tableColumnPublicApiTest<T>(\n c: TableColumn<T>,\n): Omit<Column, 'id' | 'name'> & Pick<Partial<Column>, 'id' | 'name'> {\n return c;\n}\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"names":["_tableColumnPublicApiTest","c"],"sources":["../../../src/model/tableColumn.ts"],"sourcesContent":["import type { TableColumn as TableColumnWSR } from '@wix/design-system';\nimport type { Field, KeyedItem, SortMode, SortOrder } from '@wix/bex-core';\nimport { ComponentType, CSSProperties, ReactNode } from 'react';\nimport type { FieldType } from '../utils/fieldTypePrefixIcons';\nimport type { ValidationRule } from '../state/EditableTable/types';\n\ntype TableColumnBase<T = any> = Omit<\n TableColumnWSR<T>,\n 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style' | 'titleSuffix'\n> & {\n style?:\n | CSSProperties\n | ((\n column: TableColumnWSR,\n rowData: KeyedItem<T>,\n rowNum: number,\n ) => CSSProperties);\n reorderDisabled?: boolean;\n defaultSortOrder?: SortOrder;\n sortMode?: SortMode;\n searchable?: boolean;\n infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & {\n panelContent?: ReactNode;\n };\n mobile?: ColumnMobileConfig;\n /**\n * The field type string used to resolve a prefix icon for the column.\n * Cairo maps this to the appropriate icon internally.\n * @external\n */\n fieldType?: FieldType;\n /**\n * Explicit prefix icons for the column (e.g. a custom field type's\n * `display.icons`). When present, used instead of the `fieldType` mapping.\n * @external\n */\n fieldTypeIcons?: { Small: ComponentType; Medium: ComponentType };\n /**\n * Whether the field contains personally identifiable information.\n * @external\n */\n isPii?: boolean;\n /**\n * only for cms. Whether this is a system-managed field.\n * @external\n */\n isSystem?: boolean;\n /**\n * Whether this is the primary display field.\n * @external\n */\n isPrimary?: boolean;\n /**\n * Column-level validation rules. When a `required` rule is present, a required indicator is shown in the custom columns panel.\n * @external\n */\n validation?: ValidationRule[];\n};\n\n// disallow specifying `hideable` / `defaultHidden` or setting `hiddenFromCustomColumnsSelection` as false when `id` is missing\ninterface TableColumnOptional<T> extends TableColumnBase<T> {\n id?: string;\n name?: string;\n hiddenFromCustomColumnsSelection?: undefined | true;\n hideable?: undefined;\n defaultHidden?: undefined;\n}\n\n// common case for custom column definition\ninterface TableColumnCustom<T> extends TableColumnBase<T> {\n id: string;\n name: string;\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// allow `name` to be optional when `title` exists\ninterface TableColumnCustomOptionalName<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// force `defaultHidden=false|undefined` when `hideable=false`\ninterface TableColumnCustomDefaultHidden<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable: false;\n defaultHidden?: undefined | false;\n}\n\nexport type CustomColumnConfig<T> =\n | TableColumnOptional<T>\n | TableColumnCustom<T>\n | TableColumnCustomDefaultHidden<T>\n | TableColumnCustomOptionalName<T>;\n\nexport interface SortableColumnConfig<T> extends TableColumnBase<T> {\n id: string;\n sortable: true;\n}\n\nexport interface NotSortableColumnConfig<T> extends TableColumnBase<T> {\n id?: string;\n sortable?: false;\n}\n\nexport type SortableConfig<T> =\n | SortableColumnConfig<T>\n | NotSortableColumnConfig<T>;\n\nexport type TableColumn<T> = CustomColumnConfig<T> & SortableConfig<T>;\n\nexport type ColumnMobileConfig =\n | {\n /**\n * Which mobile column to display in.\n * - 'first': Stacks vertically with other 'first' columns\n * - 'second': Displays as standalone second column\n * - undefined: Hidden on mobile\n */\n column: 'first';\n /**\n * Sort order within 'first' column (lower appears higher).\n * Only relevant when column is 'first'.\n * @default Infinity\n */\n order?: number;\n }\n | {\n /**\n * Which mobile column to display in.\n * - 'first': Stacks vertically with other 'first' columns\n * - 'second': Displays as standalone second column\n * - undefined: Hidden on mobile\n */\n column?: 'second';\n };\n\nexport interface Column {\n /**\n * A unique identifier for the column. This value is required to enable [custom columns](./?path=/story/features-display-custom-columns--overview) or [sortable columns](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n id: string;\n /**\n * A name for the column. This value is shown in the [custom columns](./?path=/story/features-display-custom-columns--overview) dropdown.\n * @external\n */\n name: string;\n /**\n * The text to be shown at the top of the column.\n * @external\n */\n title: TableColumnBase['title'];\n /**\n * Hides the column from the custom column selection panel, making it always visible. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n * @external\n */\n hiddenFromCustomColumnsSelection?: boolean;\n /**\n * When `false`, the column is always selected and displayed. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n */\n hideable?: boolean;\n /**\n * When `true`, search matches in the column's values will be highlighted. Mark a column as searchable only if iy's data is relevant for your search.\n */\n searchable?: boolean;\n /**\n * When `true`, disables drag and drop for the column.\n * @external\n */\n reorderDisabled?: boolean;\n /**\n * When `true`, makes the column a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n sortable?: boolean;\n sortDescending?: boolean;\n sortMode?: SortMode;\n /**\n * Determines the default sort order for the column, either `asc` or `desc`. The column must be a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n defaultSortOrder?: SortOrder;\n /**\n * For [custom columns](./?path=/story/features-display-custom-columns--overview), when `true`, this property causes the column to be unchecked and thus not shown by default. This isn't relevant when `hideable` `=` `false`.\n * @external\n */\n defaultHidden?: boolean;\n dataExtension?: { id: string; editable: boolean; isPii?: boolean };\n /** The source field this column was built from; used to resolve manage actions. */\n field?: Field;\n /**\n * Whether the field contains personally identifiable information.\n * @external\n */\n isPii?: boolean;\n /**\n * only for cms. Whether this is a system-managed field.\n * @external\n */\n isSystem?: boolean;\n /**\n * Whether this is the primary display field.\n * @external\n */\n isPrimary?: boolean;\n /**\n * Column-level validation rules. When a `required` rule is present, a required indicator is shown in the custom columns panel.\n * @external\n */\n validation?: ValidationRule[];\n infoTooltipProps?: {\n content?: ReactNode;\n panelContent?: ReactNode;\n };\n /**\n * A callback that is called for each row in the data to display the value of this row for the specified column.\n * @external\n */\n render: TableColumnWSR['render'];\n width?: TableColumnWSR['width'];\n style?: TableColumnWSR['style'];\n /**\n * Mobile column configuration. Determines how this column is displayed on mobile devices.\n * - column: 'first' - Stacks vertically with other 'first' columns\n * - column: 'second' - Displays as standalone second column\n * - undefined - Hidden on mobile\n * @external\n */\n mobile?: ColumnMobileConfig;\n /**\n * The field type string used to resolve a prefix icon for the column.\n * Cairo maps this to the appropriate icon internally.\n * @external\n */\n fieldType?: FieldType;\n /**\n * Explicit prefix icons for the column (e.g. a custom field type's\n * `display.icons`). When present, used instead of the `fieldType` mapping.\n * @external\n */\n fieldTypeIcons?: { Small: ComponentType; Medium: ComponentType };\n}\n\n// eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error\n// @ts-ignore\nfunction _tableColumnPublicApiTest<T>(\n c: TableColumn<T>,\n): Omit<Column, 'id' | 'name'> & Pick<Partial<Column>, 'id' | 'name'> {\n return c;\n}\n"],"mappings":";;;AA2DA;;AASA;;AASA;;AAUA;;AAqKA;AACA;AACA,SAASA,yBAAyBA,CAChCC,CAAiB,EACmD;EACpE,OAAOA,CAAC;AACV","ignoreList":[]}
|
|
@@ -106,12 +106,12 @@ class CollectionFieldsSourceState {
|
|
|
106
106
|
}));
|
|
107
107
|
}
|
|
108
108
|
buildFilters() {
|
|
109
|
-
return (0, _buildFieldFilters.buildFieldFilters)(this.toolbar, this.fieldsSource, this.filterConfig);
|
|
109
|
+
return (0, _buildFieldFilters.buildFieldFilters)(this.toolbar, this.fieldsSource, this.filterConfig, this.components.ReferenceFieldFilter);
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
/** Registers a filter state per filterable field on the collection query. */
|
|
113
113
|
registerFilters() {
|
|
114
|
-
(0, _buildFieldFilters.registerFieldFilters)(this.toolbar, this.fieldsSource, this.filterConfig);
|
|
114
|
+
(0, _buildFieldFilters.registerFieldFilters)(this.toolbar, this.fieldsSource, this.filterConfig, this.components.ReferenceFieldFilter);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_bexCore","_schemaFieldsContainer","_buildFieldColumns","_handleFieldsSourceLoadError","_buildFieldFilters","_CustomFieldsPanelState","CollectionFieldsSourceState","constructor","params","_defineProperty2","default","TaskState","fieldsSource","toolbar","featuredPageActions","props","filterConfig","columnOverrides","schemaSource","editableCellFor","components","errorCode","customFieldsPanel","CustomFieldsPanelState","container","reportBi","closeSidePanel","createFieldActionsMenu","openFieldModal","opts","openCustomFieldModal","fieldId","origin","customOrigin","fieldActionsMenu","fieldActionHandlers","createFieldActionHandlers","setOnTable","source","collectionFieldsSource","buildFilters","buildFieldFilters","registerFilters","registerFieldFilters","buildColumns","firstBuild","initTask","status","isSuccess","buildFieldColumns","syncColumns","columns","hasBuiltColumns","setExtendedColumns","mergeFields","fields","_this$fieldsSource$me","_this$fieldsSource","call","init","_fieldsContainerOf","_this$initTask$status","_this$toolbar$customC","fieldsContainerOf","runOnce","load","promise","catch","handleLoadError","disposers","reaction","filterableFields","fireImmediately","customColumnsState","events","addEventListener","_this$initTask$status2","forEach","d","handleFieldsSourceLoadError","error","reload","retryLoad","reset","exports"],"sources":["../../../src/state/CollectionFieldsSourceState.ts"],"sourcesContent":["import { reaction } from 'mobx';\nimport type { ComponentType } from 'react';\nimport { addEventListener, TaskState } from '@wix/bex-core';\nimport type {\n FieldsSource,\n CustomFieldOrigin,\n Field,\n Schema,\n SchemaSource,\n WixPatternsErrorCode,\n} from '@wix/bex-core';\nimport type { Column } from '../model';\nimport { fieldsContainerOf } from '../model/schemaFieldsContainer';\nimport type { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { buildFieldColumns, ColumnOverridesContext } from './buildFieldColumns';\nimport { handleFieldsSourceLoadError } from './handleFieldsSourceLoadError';\nimport {\n buildFieldFilters,\n registerFieldFilters,\n type FieldFilterConfig,\n} from './buildFieldFilters';\nimport type {\n FilterElement,\n CollectionToolbarFiltersProps,\n} from '../components/CollectionToolbarFilters';\nimport type { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';\nimport {\n CustomFieldsPanelState,\n type FieldActionsMenuBuilder,\n} from './CustomFields/CustomFieldsPanelState';\nimport type { FieldActionHandlersConfig } from '../components/FieldActions';\nimport type { CustomColumnsBaseProps } from '../components/CustomColumns/CustomColumns';\n\n/** A cell type plus the config its editor needs, for a field the default\n * type→cell mapping can't fully resolve on its own. */\nexport interface EditableCellUpgrade {\n cellType: string;\n typeConfig: unknown;\n}\n\n/** Builds the raw field-management for one field (handlers + registry metadata). */\ntype FieldActionHandlersBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionHandlersConfig | null;\n\n/**\n * Components the source attaches at construction time so the table chunk can\n * render them via `source.components.X` instead of statically importing them.\n * Each source's rendering file (dataExtensionRendering / schemaRendering) is\n * the only place these are imported — those files are reachable only from the\n * source's feature module, so the components ship in that chunk, not the\n * table chunk.\n */\nexport interface FieldsSourceComponents {\n FieldManagementModals: ComponentType<{ source: CollectionFieldsSourceState }>;\n CustomColumns: ComponentType<CustomColumnsBaseProps>;\n CollectionToolbarFilters: ComponentType<CollectionToolbarFiltersProps>;\n}\n\n/**\n * The source-specific behavior a collection supplies on top of its FieldsSource\n * (data) — column tweaks, filter behavior, the manage-fields panel, page actions,\n * field actions, and the field-management modal states. A source builds one of\n * these (dataExtensionRendering / schemaRendering); it is spread onto\n * CollectionFieldsSourceState, which owns the pieces directly. The collection\n * renders these with shared, source-neutral components.\n */\nexport interface FieldsSourceRendering {\n /** The schema behind this source, when it has one. The collection initializes\n * the fields container the schema carries; the components read it off the\n * same object for React context. */\n schemaSource?: SchemaSource<any>;\n /**\n * Lets a source replace any column property the shared builder produces,\n * including the render function for media types. Called per field.\n */\n columnOverrides?(field: Field, ctx: ColumnOverridesContext): Partial<Column>;\n /**\n * The editable cell for a field whose editor needs `typeConfig` only the\n * source can supply (a reference cell's referenced collection). Called per\n * field when building editable columns; `undefined` keeps the default mapping\n * for that field type, which for those types is a read-only display.\n */\n editableCellFor?(field: Field): EditableCellUpgrade | undefined;\n /** Per-source filter behavior (text operators, decimal, type icon). */\n filterConfig: FieldFilterConfig;\n /**\n * Builds the source's per-field actions menu for the panel it belongs to. The\n * spine builds the panel and passes it in; the resulting menu drives both the\n * manage-fields panel and the customize-columns header.\n */\n createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n /**\n * Builds the raw field-management for one field (handlers + registry metadata)\n * for the panel it belongs to, before grouping. The header merges these with\n * its table-intrinsic actions (sort / hide / filter). Omitted by sources with\n * no field actions.\n */\n createFieldActionHandlers?: (\n panel: CustomFieldsPanelState,\n ) => FieldActionHandlersBuilder;\n featuredPageActions: MoreActionItemFactory[];\n props?: { disableDefaultPageAction?: boolean };\n /** BI error code reported when the source's load fails. Default: 'InitCustomFieldsDataExtensionFailed'. */\n errorCode?: WixPatternsErrorCode;\n /** The source provides these so the table chunk renders them via DI rather\n * than static import. See FieldsSourceComponents. */\n components: FieldsSourceComponents;\n}\n\n/**\n * A collection's field source: the FieldsSource (data) plus the source's UI,\n * held as flat members. The toolbar holds one of these rather than a specific\n * source. It owns the load status (initTask); field and filter reads pass\n * through to the FieldsSource's own observables.\n */\nexport class CollectionFieldsSourceState {\n readonly fieldsSource: FieldsSource;\n /** The field-management state (modals + per-field menu). Built here from the\n * source's config so every source gets the same panel. */\n readonly customFieldsPanel: CustomFieldsPanelState;\n readonly featuredPageActions: MoreActionItemFactory[];\n readonly props?: { disableDefaultPageAction?: boolean };\n readonly filterConfig: FieldFilterConfig;\n readonly openFieldModal: (opts?: {\n fieldId?: string;\n origin?: CustomFieldOrigin;\n customOrigin?: string;\n }) => void;\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n readonly fieldActionHandlers?: FieldActionHandlersBuilder;\n readonly components: FieldsSourceComponents;\n /** Read by the source-driven components, which put its fields container in\n * React context. */\n readonly schemaSource?: SchemaSource<any>;\n /** Read by EditableTableState when it builds the source's editable columns. */\n readonly editableCellFor?: FieldsSourceRendering['editableCellFor'];\n private readonly columnOverrides?: FieldsSourceRendering['columnOverrides'];\n private readonly toolbar: ToolbarCollectionState<any, any>;\n private readonly errorCode: WixPatternsErrorCode;\n private hasBuiltColumns = false;\n\n constructor(\n params: {\n fieldsSource: FieldsSource;\n toolbar: ToolbarCollectionState<any, any>;\n } & FieldsSourceRendering,\n ) {\n this.fieldsSource = params.fieldsSource;\n this.toolbar = params.toolbar;\n this.featuredPageActions = params.featuredPageActions;\n this.props = params.props;\n this.filterConfig = params.filterConfig;\n this.columnOverrides = params.columnOverrides;\n this.schemaSource = params.schemaSource;\n this.editableCellFor = params.editableCellFor;\n this.components = params.components;\n this.errorCode = params.errorCode ?? 'InitCustomFieldsDataExtensionFailed';\n\n // The panel is generic — the source supplies only its config (the menu\n // factory); the table's container/reportBi wire it up. The panel builds all\n // three field-management modals (add/edit, archive, delete) itself.\n this.customFieldsPanel = new CustomFieldsPanelState({\n fieldsSource: params.fieldsSource,\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n closeSidePanel: this.toolbar.closeSidePanel,\n createFieldActionsMenu: params.createFieldActionsMenu,\n });\n // Opening the add/edit modal and reading the per-field menu are the same for\n // every source, so derive them from the panel rather than per-source.\n this.openFieldModal = (opts) =>\n this.customFieldsPanel.openCustomFieldModal({\n fieldId: opts?.fieldId,\n origin: opts?.origin ?? 'external',\n customOrigin: opts?.customOrigin,\n });\n this.fieldActionsMenu = this.customFieldsPanel.fieldActionsMenu;\n this.fieldActionHandlers = params.createFieldActionHandlers?.(\n this.customFieldsPanel,\n );\n }\n\n /**\n * Attaches a source to a table's toolbar. Builds the wrapper once; calling it\n * again (e.g. on re-render) is a no-op.\n */\n static setOnTable(\n toolbar: ToolbarCollectionState<any, any>,\n source: { fieldsSource: FieldsSource } & FieldsSourceRendering,\n ) {\n toolbar.collectionFieldsSource ??= new CollectionFieldsSourceState({\n ...source,\n toolbar,\n });\n }\n\n readonly initTask = new TaskState();\n\n buildFilters(): FilterElement[] {\n return buildFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n );\n }\n\n /** Registers a filter state per filterable field on the collection query. */\n registerFilters() {\n registerFieldFilters(this.toolbar, this.fieldsSource, this.filterConfig);\n }\n\n /**\n * Builds the columns from the fields, or null while the source is still\n * loading so existing columns are kept.\n */\n buildColumns(firstBuild: boolean): Column[] | null {\n if (!this.initTask.status.isSuccess) {\n return null;\n }\n return buildFieldColumns(this.fieldsSource, this.columnOverrides, {\n firstBuild,\n });\n }\n\n syncColumns() {\n const columns = this.buildColumns(!this.hasBuiltColumns);\n if (columns) {\n this.toolbar.setExtendedColumns(columns);\n this.hasBuiltColumns = true;\n }\n }\n\n /** Merges a returned fields map into the source (no refetch). No-ops for sources\n * that don't support in-place merging. The fields reaction rebuilds columns. */\n mergeFields(fields: Schema['fields']) {\n this.fieldsSource.mergeFields?.(fields);\n }\n\n init() {\n // Idempotent, and the field renderers can't translate until it resolves.\n fieldsContainerOf(this.schemaSource)?.init();\n this.initTask.runOnce(() => this.fieldsSource.load());\n this.initTask.status.promise?.catch(() => this.handleLoadError());\n\n const disposers = [\n // Push the columns once the source loads, and again whenever the field\n // list changes (add/edit/delete field). The first push starts every\n // column hidden; later pushes keep the user's selection.\n reaction(\n () =>\n [this.fieldsSource.fields, this.initTask.status.isSuccess] as const,\n () => this.syncColumns(),\n ),\n // Register a filter state per filterable field. filterableFields populates\n // inside the source's load (before initTask resolves), so the collection's\n // initial fetch still waits for these — matching the prior per-source timing.\n reaction(\n () => this.fieldsSource.filterableFields,\n () => this.registerFilters(),\n { fireImmediately: true },\n ),\n // Make custom-columns storage reconciliation wait until this source's\n // columns are built, so a stored hide/show selection for source fields\n // survives a reload. Covers any source.\n ...(this.toolbar.customColumnsState?.events\n ? [\n addEventListener(\n this.toolbar.customColumnsState.events,\n 'beforeInitialFetch',\n () => this.initTask.status.promise?.catch(() => {}),\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n private handleLoadError() {\n handleFieldsSourceLoadError({\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n error: this.initTask.status.error,\n errorCode: this.errorCode,\n reload: () => this.retryLoad(),\n });\n }\n\n /** Re-runs the source load after a failure (the retry toast). */\n private retryLoad() {\n this.initTask.reset();\n this.initTask.runOnce(() => this.fieldsSource.load());\n return this.initTask.status.promise;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_bexCore","_schemaFieldsContainer","_buildFieldColumns","_handleFieldsSourceLoadError","_buildFieldFilters","_CustomFieldsPanelState","CollectionFieldsSourceState","constructor","params","_defineProperty2","default","TaskState","fieldsSource","toolbar","featuredPageActions","props","filterConfig","columnOverrides","schemaSource","editableCellFor","components","errorCode","customFieldsPanel","CustomFieldsPanelState","container","reportBi","closeSidePanel","createFieldActionsMenu","openFieldModal","opts","openCustomFieldModal","fieldId","origin","customOrigin","fieldActionsMenu","fieldActionHandlers","createFieldActionHandlers","setOnTable","source","collectionFieldsSource","buildFilters","buildFieldFilters","ReferenceFieldFilter","registerFilters","registerFieldFilters","buildColumns","firstBuild","initTask","status","isSuccess","buildFieldColumns","syncColumns","columns","hasBuiltColumns","setExtendedColumns","mergeFields","fields","_this$fieldsSource$me","_this$fieldsSource","call","init","_fieldsContainerOf","_this$initTask$status","_this$toolbar$customC","fieldsContainerOf","runOnce","load","promise","catch","handleLoadError","disposers","reaction","filterableFields","fireImmediately","customColumnsState","events","addEventListener","_this$initTask$status2","forEach","d","handleFieldsSourceLoadError","error","reload","retryLoad","reset","exports"],"sources":["../../../src/state/CollectionFieldsSourceState.ts"],"sourcesContent":["import { reaction } from 'mobx';\nimport type { ComponentType } from 'react';\nimport { addEventListener, TaskState } from '@wix/bex-core';\nimport type {\n FieldsSource,\n CustomFieldOrigin,\n Field,\n Schema,\n SchemaSource,\n WixPatternsErrorCode,\n} from '@wix/bex-core';\nimport type { Column } from '../model';\nimport { fieldsContainerOf } from '../model/schemaFieldsContainer';\nimport type { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { buildFieldColumns, ColumnOverridesContext } from './buildFieldColumns';\nimport { handleFieldsSourceLoadError } from './handleFieldsSourceLoadError';\nimport {\n buildFieldFilters,\n registerFieldFilters,\n type FieldFilterConfig,\n} from './buildFieldFilters';\nimport type {\n FilterElement,\n CollectionToolbarFiltersProps,\n} from '../components/CollectionToolbarFilters';\nimport type { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';\nimport {\n CustomFieldsPanelState,\n type FieldActionsMenuBuilder,\n} from './CustomFields/CustomFieldsPanelState';\nimport type { FieldActionHandlersConfig } from '../components/FieldActions';\nimport type { CustomColumnsBaseProps } from '../components/CustomColumns/CustomColumns';\nimport type { ReferenceFieldFilterProps } from '../components/ReferenceFieldFilter/ReferenceFieldFilter';\n\n/** A cell type plus the config its editor needs, for a field the default\n * type→cell mapping can't fully resolve on its own. */\nexport interface EditableCellUpgrade {\n cellType: string;\n typeConfig: unknown;\n}\n\n/** Builds the raw field-management for one field (handlers + registry metadata). */\ntype FieldActionHandlersBuilder = (args: {\n fieldId: string;\n origin: CustomFieldOrigin;\n location: string;\n}) => FieldActionHandlersConfig | null;\n\n/**\n * Components the source attaches at construction time so the table chunk can\n * render them via `source.components.X` instead of statically importing them.\n * Each source's rendering file (dataExtensionRendering / schemaRendering) is\n * the only place these are imported — those files are reachable only from the\n * source's feature module, so the components ship in that chunk, not the\n * table chunk.\n */\nexport interface FieldsSourceComponents {\n FieldManagementModals: ComponentType<{ source: CollectionFieldsSourceState }>;\n CustomColumns: ComponentType<CustomColumnsBaseProps>;\n CollectionToolbarFilters: ComponentType<CollectionToolbarFiltersProps>;\n /** Filters a reference field by the referenced items. Omit it and reference\n * fields get no filter — which is what a source with no reference fields\n * wants, since the component pulls the referenced-item avatar in with it. */\n ReferenceFieldFilter?: ComponentType<ReferenceFieldFilterProps>;\n}\n\n/**\n * The source-specific behavior a collection supplies on top of its FieldsSource\n * (data) — column tweaks, filter behavior, the manage-fields panel, page actions,\n * field actions, and the field-management modal states. A source builds one of\n * these (dataExtensionRendering / schemaRendering); it is spread onto\n * CollectionFieldsSourceState, which owns the pieces directly. The collection\n * renders these with shared, source-neutral components.\n */\nexport interface FieldsSourceRendering {\n /** The schema behind this source, when it has one. The collection initializes\n * the fields container the schema carries; the components read it off the\n * same object for React context. */\n schemaSource?: SchemaSource<any>;\n /**\n * Lets a source replace any column property the shared builder produces,\n * including the render function for media types. Called per field.\n */\n columnOverrides?(field: Field, ctx: ColumnOverridesContext): Partial<Column>;\n /**\n * The editable cell for a field whose editor needs `typeConfig` only the\n * source can supply (a reference cell's referenced collection). Called per\n * field when building editable columns; `undefined` keeps the default mapping\n * for that field type, which for those types is a read-only display.\n */\n editableCellFor?(field: Field): EditableCellUpgrade | undefined;\n /** Per-source filter behavior (text operators, decimal, type icon). */\n filterConfig: FieldFilterConfig;\n /**\n * Builds the source's per-field actions menu for the panel it belongs to. The\n * spine builds the panel and passes it in; the resulting menu drives both the\n * manage-fields panel and the customize-columns header.\n */\n createFieldActionsMenu: (\n panel: CustomFieldsPanelState,\n ) => FieldActionsMenuBuilder;\n /**\n * Builds the raw field-management for one field (handlers + registry metadata)\n * for the panel it belongs to, before grouping. The header merges these with\n * its table-intrinsic actions (sort / hide / filter). Omitted by sources with\n * no field actions.\n */\n createFieldActionHandlers?: (\n panel: CustomFieldsPanelState,\n ) => FieldActionHandlersBuilder;\n featuredPageActions: MoreActionItemFactory[];\n props?: { disableDefaultPageAction?: boolean };\n /** BI error code reported when the source's load fails. Default: 'InitCustomFieldsDataExtensionFailed'. */\n errorCode?: WixPatternsErrorCode;\n /** The source provides these so the table chunk renders them via DI rather\n * than static import. See FieldsSourceComponents. */\n components: FieldsSourceComponents;\n}\n\n/**\n * A collection's field source: the FieldsSource (data) plus the source's UI,\n * held as flat members. The toolbar holds one of these rather than a specific\n * source. It owns the load status (initTask); field and filter reads pass\n * through to the FieldsSource's own observables.\n */\nexport class CollectionFieldsSourceState {\n readonly fieldsSource: FieldsSource;\n /** The field-management state (modals + per-field menu). Built here from the\n * source's config so every source gets the same panel. */\n readonly customFieldsPanel: CustomFieldsPanelState;\n readonly featuredPageActions: MoreActionItemFactory[];\n readonly props?: { disableDefaultPageAction?: boolean };\n readonly filterConfig: FieldFilterConfig;\n readonly openFieldModal: (opts?: {\n fieldId?: string;\n origin?: CustomFieldOrigin;\n customOrigin?: string;\n }) => void;\n readonly fieldActionsMenu: FieldActionsMenuBuilder;\n readonly fieldActionHandlers?: FieldActionHandlersBuilder;\n readonly components: FieldsSourceComponents;\n /** Read by the source-driven components, which put its fields container in\n * React context. */\n readonly schemaSource?: SchemaSource<any>;\n /** Read by EditableTableState when it builds the source's editable columns. */\n readonly editableCellFor?: FieldsSourceRendering['editableCellFor'];\n private readonly columnOverrides?: FieldsSourceRendering['columnOverrides'];\n private readonly toolbar: ToolbarCollectionState<any, any>;\n private readonly errorCode: WixPatternsErrorCode;\n private hasBuiltColumns = false;\n\n constructor(\n params: {\n fieldsSource: FieldsSource;\n toolbar: ToolbarCollectionState<any, any>;\n } & FieldsSourceRendering,\n ) {\n this.fieldsSource = params.fieldsSource;\n this.toolbar = params.toolbar;\n this.featuredPageActions = params.featuredPageActions;\n this.props = params.props;\n this.filterConfig = params.filterConfig;\n this.columnOverrides = params.columnOverrides;\n this.schemaSource = params.schemaSource;\n this.editableCellFor = params.editableCellFor;\n this.components = params.components;\n this.errorCode = params.errorCode ?? 'InitCustomFieldsDataExtensionFailed';\n\n // The panel is generic — the source supplies only its config (the menu\n // factory); the table's container/reportBi wire it up. The panel builds all\n // three field-management modals (add/edit, archive, delete) itself.\n this.customFieldsPanel = new CustomFieldsPanelState({\n fieldsSource: params.fieldsSource,\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n closeSidePanel: this.toolbar.closeSidePanel,\n createFieldActionsMenu: params.createFieldActionsMenu,\n });\n // Opening the add/edit modal and reading the per-field menu are the same for\n // every source, so derive them from the panel rather than per-source.\n this.openFieldModal = (opts) =>\n this.customFieldsPanel.openCustomFieldModal({\n fieldId: opts?.fieldId,\n origin: opts?.origin ?? 'external',\n customOrigin: opts?.customOrigin,\n });\n this.fieldActionsMenu = this.customFieldsPanel.fieldActionsMenu;\n this.fieldActionHandlers = params.createFieldActionHandlers?.(\n this.customFieldsPanel,\n );\n }\n\n /**\n * Attaches a source to a table's toolbar. Builds the wrapper once; calling it\n * again (e.g. on re-render) is a no-op.\n */\n static setOnTable(\n toolbar: ToolbarCollectionState<any, any>,\n source: { fieldsSource: FieldsSource } & FieldsSourceRendering,\n ) {\n toolbar.collectionFieldsSource ??= new CollectionFieldsSourceState({\n ...source,\n toolbar,\n });\n }\n\n readonly initTask = new TaskState();\n\n buildFilters(): FilterElement[] {\n return buildFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n this.components.ReferenceFieldFilter,\n );\n }\n\n /** Registers a filter state per filterable field on the collection query. */\n registerFilters() {\n registerFieldFilters(\n this.toolbar,\n this.fieldsSource,\n this.filterConfig,\n this.components.ReferenceFieldFilter,\n );\n }\n\n /**\n * Builds the columns from the fields, or null while the source is still\n * loading so existing columns are kept.\n */\n buildColumns(firstBuild: boolean): Column[] | null {\n if (!this.initTask.status.isSuccess) {\n return null;\n }\n return buildFieldColumns(this.fieldsSource, this.columnOverrides, {\n firstBuild,\n });\n }\n\n syncColumns() {\n const columns = this.buildColumns(!this.hasBuiltColumns);\n if (columns) {\n this.toolbar.setExtendedColumns(columns);\n this.hasBuiltColumns = true;\n }\n }\n\n /** Merges a returned fields map into the source (no refetch). No-ops for sources\n * that don't support in-place merging. The fields reaction rebuilds columns. */\n mergeFields(fields: Schema['fields']) {\n this.fieldsSource.mergeFields?.(fields);\n }\n\n init() {\n // Idempotent, and the field renderers can't translate until it resolves.\n fieldsContainerOf(this.schemaSource)?.init();\n this.initTask.runOnce(() => this.fieldsSource.load());\n this.initTask.status.promise?.catch(() => this.handleLoadError());\n\n const disposers = [\n // Push the columns once the source loads, and again whenever the field\n // list changes (add/edit/delete field). The first push starts every\n // column hidden; later pushes keep the user's selection.\n reaction(\n () =>\n [this.fieldsSource.fields, this.initTask.status.isSuccess] as const,\n () => this.syncColumns(),\n ),\n // Register a filter state per filterable field. filterableFields populates\n // inside the source's load (before initTask resolves), so the collection's\n // initial fetch still waits for these — matching the prior per-source timing.\n reaction(\n () => this.fieldsSource.filterableFields,\n () => this.registerFilters(),\n { fireImmediately: true },\n ),\n // Make custom-columns storage reconciliation wait until this source's\n // columns are built, so a stored hide/show selection for source fields\n // survives a reload. Covers any source.\n ...(this.toolbar.customColumnsState?.events\n ? [\n addEventListener(\n this.toolbar.customColumnsState.events,\n 'beforeInitialFetch',\n () => this.initTask.status.promise?.catch(() => {}),\n ),\n ]\n : []),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n private handleLoadError() {\n handleFieldsSourceLoadError({\n container: this.toolbar.container,\n reportBi: this.toolbar.reportBi,\n error: this.initTask.status.error,\n errorCode: this.errorCode,\n reload: () => this.retryLoad(),\n });\n }\n\n /** Re-runs the source load after a failure (the retry toast). */\n private retryLoad() {\n this.initTask.reset();\n this.initTask.runOnce(() => this.fieldsSource.load());\n return this.initTask.status.promise;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "CollectionPageHeader906284805";
|
|
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": "CollectionPageHeader906284805__root"
|
|
16
16
|
};
|
|
17
17
|
var keyframes = exports.keyframes = {};
|
|
18
18
|
var layers = exports.layers = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
1
|
+
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader906284805\";\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\":\"CollectionPageHeader906284805__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,+BAA+B;AACjD,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;AAAqC,CAAC;AAC5D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -29,6 +29,7 @@ class EntityPageState {
|
|
|
29
29
|
(0, _defineProperty2.default)(this, "_schema", null);
|
|
30
30
|
(0, _defineProperty2.default)(this, "_parentPageId", void 0);
|
|
31
31
|
(0, _defineProperty2.default)(this, "_parentPath", void 0);
|
|
32
|
+
(0, _defineProperty2.default)(this, "_parentReferrer", void 0);
|
|
32
33
|
(0, _defineProperty2.default)(this, "actionsBarConfig", void 0);
|
|
33
34
|
/**
|
|
34
35
|
* The page's side-panel host, the way a table's lives on its toolbar.
|
|
@@ -59,6 +60,7 @@ class EntityPageState {
|
|
|
59
60
|
this._parentPageId = params.parentPageId;
|
|
60
61
|
this.transformEntityToCollectionItem = params.transformEntityToCollectionItem || (anEntity => anEntity);
|
|
61
62
|
this._parentPath = params.parentPath;
|
|
63
|
+
this._parentReferrer = params.parentReferrer;
|
|
62
64
|
this.schemaSource = params.schemaSource;
|
|
63
65
|
this.container = params.container;
|
|
64
66
|
this._routerState = params.routerState ?? null;
|
|
@@ -187,7 +189,10 @@ class EntityPageState {
|
|
|
187
189
|
});
|
|
188
190
|
} else {
|
|
189
191
|
this.container.navigateTo({
|
|
190
|
-
pageId: this._parentPageId
|
|
192
|
+
pageId: this._parentPageId,
|
|
193
|
+
...(this._parentReferrer !== undefined && {
|
|
194
|
+
referrer: this._parentReferrer
|
|
195
|
+
})
|
|
191
196
|
});
|
|
192
197
|
}
|
|
193
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","entity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","observable","ref","setEntity","_schema","setSchema","customColumnsState","isFormDirty","computed","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","isMobileDevice","formState","isSubmitSuccessful","_isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$fieldsContainer","_this$schemaSource","_this$fieldsContainer2","_this$bi$appLoaded","_this$bi","data","loadedSchema","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","actionsBarConfig","cancelCta","biAdditionalInfo","navigateToParent","updatedEntity","entityStringKey","entityObject","navigate","state","navigateTo","pageId","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","undefined","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","isLoading","events","emit","isValid","widgetsFormData","validate","_this$actionsBarConfi2","saveCta","run","savedEntity","submitSuccessful","_this$actionsBarConfi3","onSaveResult","errorMonitor","captureException","setError","_this$actionsBarConfi4","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n WixPatternsContainer,\n ActionsBarConfig,\n isMobileDevice,\n SchemaSource,\n Schema,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport type { PatternsFieldsAppContainer } from '@wix/patterns-fields/providers';\nimport { fieldsContainerOf } from '../../model/schemaFieldsContainer';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\nimport type { SidePanelsState } from '../SidePanelsState';\nimport type { CustomColumnsEntityPageState } from '../CustomColumnsEntityPageState';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\ninterface EntityPageStateParamsBase<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns An object with a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.\n * The previous return types are still supported but are now deprecated.\n */\n saveErrorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) =>\n | {\n message?: string;\n /**\n * @deprecated use `action` instead\n */\n tryAgain?: boolean;\n action?: { text: string; onClick: () => void };\n }\n | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n form: UseFormReturn<V>;\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n\n /**\n * An object representing the router state\n */\n routerState?: WixPatternsRouterState | null;\n\n /**\n * An optional object to override the actions bar.\n */\n actionsBarConfig?: ActionsBarConfig;\n\n /**\n * An optional schema source describing how to load the schema and access\n * the entity's data. When present, the page can read fields from the source\n * instead of relying only on hand-wired fetch/onSave callbacks.\n */\n schemaSource?: SchemaSource<T>;\n}\n\nexport type EntityPageStateParams<\n T,\n V extends FieldValues = FieldValues,\n> = EntityPageStateParamsBase<T, V>;\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n _schema: Schema | null = null;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];\n\n /**\n * The page's side-panel host, the way a table's lives on its toolbar.\n * Attached by the first feature that needs one, through\n * `SidePanelsState.setOnPage` — so a page with no panels neither builds nor\n * bundles the side-panel code. Everything on the page shares this host, which\n * is what keeps one panel open at a time.\n */\n panels: SidePanelsState | null = null;\n\n /** The fields card's \"Manage fields\" state, set by the card that owns it —\n * the panel is rendered by the host with no props and reads it from here,\n * as a table's panel reads `toolbar.customColumnsState`. */\n customColumnsState: CustomColumnsEntityPageState | null = null;\n\n readonly schemaSource?: SchemaSource<T>;\n\n /**\n * The container the page's field renderers are built with — the one the schema\n * carries, so a table on the same schema shares it. Initialized in `init()`\n * below, next to the schema load the fields also wait on; the schema-entry\n * EntityPage puts it in React context.\n */\n get fieldsContainer(): PatternsFieldsAppContainer | undefined {\n return fieldsContainerOf(this.schemaSource);\n }\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _routerState: WixPatternsRouterState | null = null;\n\n readonly formPage: FormPageState<V>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n\n this._routerState = params.routerState ?? null;\n\n if (this._routerState) {\n this._entity = this._routerState.currentState?._chosenEntity?.entity;\n }\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _entity: observable.ref,\n setEntity: action,\n _schema: observable.ref,\n setSchema: action,\n customColumnsState: observable.ref,\n isFormDirty: computed,\n _withinRouter: computed,\n });\n }\n\n init() {\n this._checkPageParams();\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n if (isMobileDevice()) {\n return;\n }\n\n const { form } = this;\n // Check both react-hook-form's state AND the explicitly set flag\n if (\n form.formState.isSubmitSuccessful ||\n this.formPage._isSubmitSuccessful ||\n !this.isFormDirty\n ) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n // The field renderers can't translate until this resolves, so the page\n // waits on it alongside the fetch. Idempotent.\n this.fieldsContainer?.init();\n\n const [data, loadedSchema] = await Promise.all([\n this.fetch(),\n this.schemaSource?.loadSchema(),\n container.initTask.status.promise,\n this.fieldsContainer?.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n // Don't overwrite a schema something already set. A fields card mirrors the\n // schema its field mutations merge into, and `loadSchema` is memoized — so\n // setting it here again would put the pre-mutation fields map back and drop\n // a field the server already has. Nothing is lost by keeping the newer one:\n // this only ever re-sets the very same object (e.g. on `retryFetch`).\n if (loadedSchema && !this.schema) {\n this.setSchema(loadedSchema.schema);\n }\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n setSchema(schema: Schema | null) {\n this._schema = schema;\n }\n\n get schema(): Schema | null {\n return this._schema;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this.formPage.isSubmitSuccessful = flag;\n }\n\n get isFormDirty() {\n return this.formPage.isDirty;\n }\n\n // backwards compatibility\n set _isFormDirty(val: boolean) {\n this.formPage._isFormDirty = val;\n }\n\n get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({\n ctaName: 'Cancel',\n additionalInfo: this.actionsBarConfig?.cancelCta?.biAdditionalInfo,\n });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n retry: () => this.handleSubmit(e),\n });\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n const action =\n typeof errorToast === 'string' ? undefined : errorToast?.action;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action:\n action || showTryAgain\n ? {\n uiType: 'LINK',\n text:\n action?.text ?? this.container.translate('cairo.toast.retry'),\n onClick: () => {\n if (action?.onClick) {\n action.onClick();\n } else {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n }\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: widgetsFormData } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n return;\n }\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n let submitSuccessful = false;\n\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: true,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n try {\n if (!this.isFetching) {\n const onSaveResult = await this.onSave({\n widgetsFormData,\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n submitSuccessful = true; // Mark as successful locally\n // Explicitly set isSubmitSuccessful to prevent onBeforeUnload from triggering\n this.isSubmitSuccessful = true;\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n }, // can be used to report validation errors\n )(e);\n\n if (!submitSuccessful) {\n return;\n }\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.formPage.submitTask.status.promise;\n }\n\n get initTask() {\n return this.formPage.initTask;\n }\n\n get submitTask() {\n return this.formPage.submitTask;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_schemaFieldsContainer","_EntityPageStateBIReporter","_events","EntityPageState","fieldsContainer","fieldsContainerOf","schemaSource","constructor","params","_defineProperty2","default","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","_parentReferrer","parentReferrer","container","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","entity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","observable","ref","setEntity","_schema","setSchema","customColumnsState","isFormDirty","computed","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","isMobileDevice","formState","isSubmitSuccessful","_isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$fieldsContainer","_this$schemaSource","_this$fieldsContainer2","_this$bi$appLoaded","_this$bi","data","loadedSchema","Promise","all","loadSchema","status","promise","schema","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","_this$actionsBarConfi","reportButtonClick","ctaName","additionalInfo","actionsBarConfig","cancelCta","biAdditionalInfo","navigateToParent","updatedEntity","entityStringKey","entityObject","navigate","state","navigateTo","pageId","undefined","referrer","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","isLoading","events","emit","isValid","widgetsFormData","validate","_this$actionsBarConfi2","saveCta","run","savedEntity","submitSuccessful","_this$actionsBarConfi3","onSaveResult","errorMonitor","captureException","setError","_this$actionsBarConfi4","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n WixPatternsContainer,\n ActionsBarConfig,\n isMobileDevice,\n SchemaSource,\n Schema,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport type { PatternsFieldsAppContainer } from '@wix/patterns-fields/providers';\nimport { fieldsContainerOf } from '../../model/schemaFieldsContainer';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\nimport type { SidePanelsState } from '../SidePanelsState';\nimport type { CustomColumnsEntityPageState } from '../CustomColumnsEntityPageState';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\ninterface EntityPageStateParamsBase<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns An object with a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.\n * The previous return types are still supported but are now deprecated.\n */\n saveErrorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) =>\n | {\n message?: string;\n /**\n * @deprecated use `action` instead\n */\n tryAgain?: boolean;\n action?: { text: string; onClick: () => void };\n }\n | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n form: UseFormReturn<V>;\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n\n /**\n * Referrer forwarded to the parent page on back, cancel and save, so callers\n * can carry navigation context across the transition.\n *\n * Only used for parentPageId navigations; Patterns Router keeps its context\n * in router state.\n *\n * Forwarded by the BM and Giza providers. Dropped by the dashboard provider,\n * whose SDK Destination has no referrer field.\n */\n parentReferrer?: string;\n\n /**\n * An object representing the router state\n */\n routerState?: WixPatternsRouterState | null;\n\n /**\n * An optional object to override the actions bar.\n */\n actionsBarConfig?: ActionsBarConfig;\n\n /**\n * An optional schema source describing how to load the schema and access\n * the entity's data. When present, the page can read fields from the source\n * instead of relying only on hand-wired fetch/onSave callbacks.\n */\n schemaSource?: SchemaSource<T>;\n}\n\nexport type EntityPageStateParams<\n T,\n V extends FieldValues = FieldValues,\n> = EntityPageStateParamsBase<T, V>;\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n _schema: Schema | null = null;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n private readonly _parentReferrer?: string;\n\n actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];\n\n /**\n * The page's side-panel host, the way a table's lives on its toolbar.\n * Attached by the first feature that needs one, through\n * `SidePanelsState.setOnPage` — so a page with no panels neither builds nor\n * bundles the side-panel code. Everything on the page shares this host, which\n * is what keeps one panel open at a time.\n */\n panels: SidePanelsState | null = null;\n\n /** The fields card's \"Manage fields\" state, set by the card that owns it —\n * the panel is rendered by the host with no props and reads it from here,\n * as a table's panel reads `toolbar.customColumnsState`. */\n customColumnsState: CustomColumnsEntityPageState | null = null;\n\n readonly schemaSource?: SchemaSource<T>;\n\n /**\n * The container the page's field renderers are built with — the one the schema\n * carries, so a table on the same schema shares it. Initialized in `init()`\n * below, next to the schema load the fields also wait on; the schema-entry\n * EntityPage puts it in React context.\n */\n get fieldsContainer(): PatternsFieldsAppContainer | undefined {\n return fieldsContainerOf(this.schemaSource);\n }\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _routerState: WixPatternsRouterState | null = null;\n\n readonly formPage: FormPageState<V>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n this._parentReferrer = params.parentReferrer;\n this.schemaSource = params.schemaSource;\n\n this.container = params.container;\n\n this._routerState = params.routerState ?? null;\n\n if (this._routerState) {\n this._entity = this._routerState.currentState?._chosenEntity?.entity;\n }\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _entity: observable.ref,\n setEntity: action,\n _schema: observable.ref,\n setSchema: action,\n customColumnsState: observable.ref,\n isFormDirty: computed,\n _withinRouter: computed,\n });\n }\n\n init() {\n this._checkPageParams();\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n if (isMobileDevice()) {\n return;\n }\n\n const { form } = this;\n // Check both react-hook-form's state AND the explicitly set flag\n if (\n form.formState.isSubmitSuccessful ||\n this.formPage._isSubmitSuccessful ||\n !this.isFormDirty\n ) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n // The field renderers can't translate until this resolves, so the page\n // waits on it alongside the fetch. Idempotent.\n this.fieldsContainer?.init();\n\n const [data, loadedSchema] = await Promise.all([\n this.fetch(),\n this.schemaSource?.loadSchema(),\n container.initTask.status.promise,\n this.fieldsContainer?.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n // Don't overwrite a schema something already set. A fields card mirrors the\n // schema its field mutations merge into, and `loadSchema` is memoized — so\n // setting it here again would put the pre-mutation fields map back and drop\n // a field the server already has. Nothing is lost by keeping the newer one:\n // this only ever re-sets the very same object (e.g. on `retryFetch`).\n if (loadedSchema && !this.schema) {\n this.setSchema(loadedSchema.schema);\n }\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n setSchema(schema: Schema | null) {\n this._schema = schema;\n }\n\n get schema(): Schema | null {\n return this._schema;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this.formPage.isSubmitSuccessful = flag;\n }\n\n get isFormDirty() {\n return this.formPage.isDirty;\n }\n\n // backwards compatibility\n set _isFormDirty(val: boolean) {\n this.formPage._isFormDirty = val;\n }\n\n get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({\n ctaName: 'Cancel',\n additionalInfo: this.actionsBarConfig?.cancelCta?.biAdditionalInfo,\n });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n ...(this._parentReferrer !== undefined && {\n referrer: this._parentReferrer,\n }),\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n retry: () => this.handleSubmit(e),\n });\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n const action =\n typeof errorToast === 'string' ? undefined : errorToast?.action;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action:\n action || showTryAgain\n ? {\n uiType: 'LINK',\n text:\n action?.text ?? this.container.translate('cairo.toast.retry'),\n onClick: () => {\n if (action?.onClick) {\n action.onClick();\n } else {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n }\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: widgetsFormData } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n return;\n }\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n let submitSuccessful = false;\n\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: true,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n try {\n if (!this.isFetching) {\n const onSaveResult = await this.onSave({\n widgetsFormData,\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n submitSuccessful = true; // Mark as successful locally\n // Explicitly set isSubmitSuccessful to prevent onBeforeUnload from triggering\n this.isSubmitSuccessful = true;\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({\n ctaName: 'Save',\n isValid: false,\n additionalInfo: this.actionsBarConfig?.saveCta?.biAdditionalInfo,\n });\n }, // can be used to report validation errors\n )(e);\n\n if (!submitSuccessful) {\n return;\n }\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.formPage.submitTask.status.promise;\n }\n\n get initTask() {\n return this.formPage.initTask;\n }\n\n get submitTask() {\n return this.formPage.submitTask;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "FormPageHeader2458184861";
|
|
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": "FormPageHeader2458184861__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_ = \"FormPageHeader2458184861\";\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\":\"FormPageHeader2458184861__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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_TagsModalState","_bexCore","_TagsAssignButton","_react","_interopRequireDefault","_TagsColumn","_tagsFilterBuilder","_TagsBulkAssignPopoverState","_CollectionToolbarFilters","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TagsCollectionState","featuredPageActions","Tags","manageTagsPageAction","constructor","entityTypeName","bulkUpdateTags","asyncBulkUpdateTags","toolbar","columnConfig","getTags","assignButtonConfig","bulkUpdateTagsShowUndoToast","props","_defineProperty2","TaskState","tagsManagementState","TagsManagementState","fqdn","collection","container","tagsModalState","TagsModalState","tagsBulkAssignPopoverState","TagsBulkAssignPopoverState","collectionState","_columnConfig","_getTags","components","AssignButton","TagsAssignButton","ManageModal","React","lazy","Promise","resolve","then","m","CollectionManageTagsModal","CollectionToolbarFilters","makeObservable","init","action","openManageTagsModal","disposers","query","addFilterIfNeeded","idNameArrayFilter","name","initTask","runOnce","all","status","promise","addTagsColumn","forEach","d","buildTagsFilterWrapper","buildTagsFilterElement","_this$toolbar","tagsColumn","buildTagsColumn","userTagsColumn","_userColumns","find","column","id","addFeatureColumn","origin","exports"],"sources":["../../../src/state/TagsCollectionState.ts"],"sourcesContent":["import { action, makeObservable } from 'mobx';\nimport { TagsModalState } from './TagsModalState';\nimport {\n FiltersMap,\n idNameArrayFilter,\n Tags,\n TagsManagementState,\n TaskState,\n} from '@wix/bex-core';\nimport { TagsAssignButton } from '../components/TagsAssignButton';\nimport React from 'react';\nimport { TagsColumnConfig } from '../components/Tags/types';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { buildTagsColumn } from '../components/TagsColumn/TagsColumn';\nimport { buildTagsFilterElement } from '../components/TagsFilter/tagsFilterBuilder';\nimport { TagsBulkAssignPopoverState } from './TagsBulkAssignPopoverState';\nimport { CollectionToolbarFilters } from '../components/CollectionToolbarFilters';\nimport { Tags as TagsComponent, TagsProps } from '../components/Tags';\nimport { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';\n\ninterface TagsCollectionStateParams<T, F extends FiltersMap>\n extends TagsProps<T, F> {\n toolbar: ToolbarCollectionState<T, F>;\n props?: TagsProps<T, F>;\n Tags: typeof TagsComponent;\n}\n\nexport class TagsCollectionState<T, F extends FiltersMap> {\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly tagsManagementState: TagsManagementState;\n readonly tagsModalState: TagsModalState;\n readonly tagsBulkAssignPopoverState: TagsBulkAssignPopoverState<T, F>;\n readonly initTask = new TaskState();\n readonly props;\n readonly Tags;\n\n readonly components;\n readonly _columnConfig?: TagsColumnConfig<T>;\n readonly _getTags?: (item: T) => Tags;\n\n get featuredPageActions(): MoreActionItemFactory[] {\n return [this.Tags.manageTagsPageAction];\n }\n\n constructor({\n entityTypeName,\n bulkUpdateTags,\n asyncBulkUpdateTags,\n toolbar,\n columnConfig,\n getTags,\n assignButtonConfig,\n bulkUpdateTagsShowUndoToast,\n props,\n Tags,\n }: TagsCollectionStateParams<T, F>) {\n this.toolbar = toolbar;\n this.props = props;\n this.Tags = Tags;\n this.tagsManagementState = new TagsManagementState({\n fqdn: { ...toolbar.collection.fqdn },\n container: toolbar.container,\n });\n\n this.tagsModalState = new TagsModalState({\n tagsManagementState: this.tagsManagementState,\n entityTypeName,\n });\n\n this.tagsBulkAssignPopoverState = new TagsBulkAssignPopoverState({\n tagsManagementState: this.tagsManagementState,\n collectionState: toolbar.collection,\n tagsModalState: this.tagsModalState,\n bulkUpdateTags,\n asyncBulkUpdateTags,\n getTags,\n assignButtonConfig,\n bulkUpdateTagsShowUndoToast,\n });\n\n this._columnConfig = columnConfig;\n this._getTags = getTags;\n\n this.components = {\n AssignButton: TagsAssignButton,\n ManageModal: React.lazy(() =>\n import(
|
|
1
|
+
{"version":3,"names":["_mobx","require","_TagsModalState","_bexCore","_TagsAssignButton","_react","_interopRequireDefault","_TagsColumn","_tagsFilterBuilder","_TagsBulkAssignPopoverState","_CollectionToolbarFilters","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TagsCollectionState","featuredPageActions","Tags","manageTagsPageAction","constructor","entityTypeName","bulkUpdateTags","asyncBulkUpdateTags","toolbar","columnConfig","getTags","assignButtonConfig","bulkUpdateTagsShowUndoToast","props","_defineProperty2","TaskState","tagsManagementState","TagsManagementState","fqdn","collection","container","tagsModalState","TagsModalState","tagsBulkAssignPopoverState","TagsBulkAssignPopoverState","collectionState","_columnConfig","_getTags","components","AssignButton","TagsAssignButton","ManageModal","React","lazy","Promise","resolve","then","m","CollectionManageTagsModal","CollectionToolbarFilters","makeObservable","init","action","openManageTagsModal","disposers","query","addFilterIfNeeded","idNameArrayFilter","name","initTask","runOnce","all","status","promise","addTagsColumn","forEach","d","buildTagsFilterWrapper","buildTagsFilterElement","_this$toolbar","tagsColumn","buildTagsColumn","userTagsColumn","_userColumns","find","column","id","addFeatureColumn","origin","exports"],"sources":["../../../src/state/TagsCollectionState.ts"],"sourcesContent":["import { action, makeObservable } from 'mobx';\nimport { TagsModalState } from './TagsModalState';\nimport {\n FiltersMap,\n idNameArrayFilter,\n Tags,\n TagsManagementState,\n TaskState,\n} from '@wix/bex-core';\nimport { TagsAssignButton } from '../components/TagsAssignButton';\nimport React from 'react';\nimport { TagsColumnConfig } from '../components/Tags/types';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { buildTagsColumn } from '../components/TagsColumn/TagsColumn';\nimport { buildTagsFilterElement } from '../components/TagsFilter/tagsFilterBuilder';\nimport { TagsBulkAssignPopoverState } from './TagsBulkAssignPopoverState';\nimport { CollectionToolbarFilters } from '../components/CollectionToolbarFilters';\nimport { Tags as TagsComponent, TagsProps } from '../components/Tags';\nimport { MoreActionItemFactory } from '../components/MoreActions/MoreActionsBase';\n\ninterface TagsCollectionStateParams<T, F extends FiltersMap>\n extends TagsProps<T, F> {\n toolbar: ToolbarCollectionState<T, F>;\n props?: TagsProps<T, F>;\n Tags: typeof TagsComponent;\n}\n\nexport class TagsCollectionState<T, F extends FiltersMap> {\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly tagsManagementState: TagsManagementState;\n readonly tagsModalState: TagsModalState;\n readonly tagsBulkAssignPopoverState: TagsBulkAssignPopoverState<T, F>;\n readonly initTask = new TaskState();\n readonly props;\n readonly Tags;\n\n readonly components;\n readonly _columnConfig?: TagsColumnConfig<T>;\n readonly _getTags?: (item: T) => Tags;\n\n get featuredPageActions(): MoreActionItemFactory[] {\n return [this.Tags.manageTagsPageAction];\n }\n\n constructor({\n entityTypeName,\n bulkUpdateTags,\n asyncBulkUpdateTags,\n toolbar,\n columnConfig,\n getTags,\n assignButtonConfig,\n bulkUpdateTagsShowUndoToast,\n props,\n Tags,\n }: TagsCollectionStateParams<T, F>) {\n this.toolbar = toolbar;\n this.props = props;\n this.Tags = Tags;\n this.tagsManagementState = new TagsManagementState({\n fqdn: { ...toolbar.collection.fqdn },\n container: toolbar.container,\n });\n\n this.tagsModalState = new TagsModalState({\n tagsManagementState: this.tagsManagementState,\n entityTypeName,\n });\n\n this.tagsBulkAssignPopoverState = new TagsBulkAssignPopoverState({\n tagsManagementState: this.tagsManagementState,\n collectionState: toolbar.collection,\n tagsModalState: this.tagsModalState,\n bulkUpdateTags,\n asyncBulkUpdateTags,\n getTags,\n assignButtonConfig,\n bulkUpdateTagsShowUndoToast,\n });\n\n this._columnConfig = columnConfig;\n this._getTags = getTags;\n\n this.components = {\n AssignButton: TagsAssignButton,\n ManageModal: React.lazy(() =>\n import('../components/Tags/ManageTags/CollectionManageTagsModal').then(\n (m) => ({ default: m.CollectionManageTagsModal }),\n ),\n ),\n CollectionToolbarFilters,\n };\n\n makeObservable(this, {\n init: action,\n openManageTagsModal: action,\n });\n }\n\n init() {\n const disposers = [\n this.tagsManagementState.init(),\n this.tagsBulkAssignPopoverState.init(),\n this.tagsModalState.init(),\n this.toolbar.collection.query.addFilterIfNeeded(\n 'tags' as any,\n idNameArrayFilter({\n name: 'tags',\n }),\n ),\n ];\n\n this.initTask.runOnce(async () => {\n await Promise.all([\n this.tagsManagementState.initTask.status.promise,\n this.toolbar.container.initTask.status.promise,\n ]);\n\n this.addTagsColumn();\n });\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n buildTagsFilterWrapper() {\n return buildTagsFilterElement(this.toolbar);\n }\n\n addTagsColumn() {\n const tagsColumn = buildTagsColumn(\n this.toolbar?.container,\n this._columnConfig,\n );\n\n const userTagsColumn = this.toolbar._userColumns.find(\n (column) => column.id === tagsColumn.id,\n );\n\n if (!userTagsColumn) {\n this.toolbar.addFeatureColumn(tagsColumn);\n }\n }\n\n openManageTagsModal() {\n this.tagsModalState.openManageTagsModal({ origin: 'external' });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -773,9 +773,16 @@ class ToolbarCollectionState {
|
|
|
773
773
|
}
|
|
774
774
|
} = this;
|
|
775
775
|
const tableColumnsIds = new Set(tableColumns.map(column => column.id));
|
|
776
|
-
query.sort.value.filter(({
|
|
776
|
+
const staleSortEntries = query.sort.value.filter(({
|
|
777
777
|
field
|
|
778
|
-
}) => !tableColumnsIds.has(field))
|
|
778
|
+
}) => !tableColumnsIds.has(field));
|
|
779
|
+
|
|
780
|
+
// Runs on every column add/duplicate, where the sort is still valid.
|
|
781
|
+
// re-sorting there clears the loaded rows and refetches from page 1.
|
|
782
|
+
if (staleSortEntries.length === 0) {
|
|
783
|
+
return;
|
|
784
|
+
}
|
|
785
|
+
staleSortEntries.forEach(s => {
|
|
779
786
|
query.sort.value.remove(s);
|
|
780
787
|
});
|
|
781
788
|
query.sort.events.emit('change');
|