@umbraco-cms/backoffice 16.0.0-rc → 16.0.0-rc3
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-cms/apps/preview/apps/manifests.js +7 -0
- package/dist-cms/apps/preview/apps/preview-segment.element.d.ts +16 -0
- package/dist-cms/apps/preview/apps/preview-segment.element.js +96 -0
- package/dist-cms/apps/preview/preview.context.d.ts +9 -6
- package/dist-cms/apps/preview/preview.context.js +61 -24
- package/dist-cms/assets/lang/{da-dk.js → da.js} +3 -2
- package/dist-cms/assets/lang/{da-dk.ts → da.ts} +3 -2
- package/dist-cms/assets/lang/en-us.js +19 -2354
- package/dist-cms/assets/lang/en-us.ts +22 -2548
- package/dist-cms/assets/lang/en.js +244 -198
- package/dist-cms/assets/lang/en.ts +250 -216
- package/dist-cms/assets/lang/pt-br.d.ts +2 -2
- package/dist-cms/assets/lang/pt-br.ts +2 -2
- package/dist-cms/assets/lang/pt.d.ts +13 -0
- package/dist-cms/assets/lang/pt.js +1 -0
- package/dist-cms/assets/lang/pt.ts +12 -0
- package/dist-cms/custom-elements.json +116 -16
- package/dist-cms/libs/observable-api/states/array-state.d.ts +6 -6
- package/dist-cms/libs/observable-api/states/array-state.js +3 -3
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.d.ts +1 -1
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-properties.element.js +7 -7
- package/dist-cms/packages/block/block/workspace/views/edit/block-workspace-view-edit-property.element.js +1 -1
- package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +6 -0
- package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.d.ts +2 -3
- package/dist-cms/packages/block/block-grid/property-editors/block-grid-area-type-permission/block-grid-area-type-permission.element.js +8 -3
- package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +6 -0
- package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.js +7 -0
- package/dist-cms/packages/block/block-type/components/input-block-type/input-block-type.element.js +7 -2
- package/dist-cms/packages/clipboard/clipboard-entry/picker/clipboard-entry-picker.element.js +1 -1
- package/dist-cms/packages/clipboard/property/value-translator/copy/clipboard-copy-translator-value-resolver.js +6 -1
- package/dist-cms/packages/content/content/controller/merge-content-variant-data.controller.js +1 -0
- package/dist-cms/packages/content/content/property-dataset-context/element-property-dataset.context.js +4 -1
- package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.d.ts +8 -2
- package/dist-cms/packages/content/content/workspace/content-detail-workspace-base.js +20 -13
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.d.ts +1 -1
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.js +7 -7
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.js +1 -1
- package/dist-cms/packages/content/content-type/global-components/content-type-workspace-editor-header.element.js +4 -1
- package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.d.ts +1 -0
- package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.js +18 -2
- package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.token.d.ts +1 -0
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +21 -3
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js +62 -43
- package/dist-cms/packages/content/content-type/workspace/content-type-workspace-context-base.js +1 -1
- package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-properties.element.js +36 -3
- package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor-tab.element.js +25 -1
- package/dist-cms/packages/content/content-type/workspace/views/design/content-type-design-editor.element.js +17 -6
- package/dist-cms/packages/core/auth/auth.context.js +1 -1
- package/dist-cms/packages/core/auth/modals/umb-app-auth-modal.element.js +5 -5
- package/dist-cms/packages/core/backend-api/types.gen.d.ts +2 -0
- package/dist-cms/packages/core/collection/default/collection-default.context.d.ts +2 -0
- package/dist-cms/packages/core/collection/default/collection-default.context.js +22 -1
- package/dist-cms/packages/core/collection/default/collection-default.element.d.ts +1 -0
- package/dist-cms/packages/core/collection/default/collection-default.element.js +9 -1
- package/dist-cms/packages/core/collection/extensions/collection.extension.d.ts +1 -0
- package/dist-cms/packages/core/collection/types.d.ts +1 -0
- package/dist-cms/packages/core/components/body-layout/body-layout.element.js +7 -8
- package/dist-cms/packages/core/components/dropdown/dropdown.element.d.ts +4 -2
- package/dist-cms/packages/core/components/dropdown/dropdown.element.js +19 -13
- package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.d.ts +1 -1
- package/dist-cms/packages/core/components/entity-actions-bundle/entity-actions-bundle.element.js +16 -12
- package/dist-cms/packages/core/culture/manifests.d.ts +1 -1
- package/dist-cms/packages/core/entity/constants.d.ts +1 -0
- package/dist-cms/packages/core/entity/constants.js +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/constants.d.ts +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/constants.js +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/index.d.ts +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/index.js +1 -0
- package/dist-cms/packages/core/entity/contexts/parent/parent.entity-context-token.d.ts +3 -0
- package/dist-cms/packages/core/entity/contexts/parent/parent.entity-context-token.js +2 -0
- package/dist-cms/packages/core/entity/contexts/parent/parent.entity-context.d.ts +26 -0
- package/dist-cms/packages/core/entity/contexts/parent/parent.entity-context.js +33 -0
- package/dist-cms/packages/core/entity/index.d.ts +1 -0
- package/dist-cms/packages/core/entity/index.js +1 -0
- package/dist-cms/packages/core/entity-action/common/create/create.action.js +1 -0
- package/dist-cms/packages/core/entity-action/default/entity-action.element.d.ts +2 -1
- package/dist-cms/packages/core/entity-action/default/entity-action.element.js +5 -4
- package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.d.ts +2 -2
- package/dist-cms/packages/core/entity-action/global-components/entity-actions-table-column-view/entity-actions-table-column-view.element.js +4 -1
- package/dist-cms/packages/core/entity-item/entity-item-ref/entity-item-ref.element.d.ts +9 -0
- package/dist-cms/packages/core/entity-item/entity-item-ref/entity-item-ref.element.js +80 -2
- package/dist-cms/packages/core/entity-item/index.d.ts +1 -0
- package/dist-cms/packages/core/entity-item/index.js +1 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/index.d.ts +1 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/index.js +1 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/item-data-api-get-request.controller.d.ts +12 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/item-data-api-get-request.controller.js +46 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/types.d.ts +7 -0
- package/dist-cms/packages/core/entity-item/item-data-api-get-request-controller/types.js +1 -0
- package/dist-cms/packages/core/entity-item/types.d.ts +1 -0
- package/dist-cms/packages/core/localization/components/ui-culture-input/ui-culture-input.element.d.ts +5 -6
- package/dist-cms/packages/core/localization/components/ui-culture-input/ui-culture-input.element.js +57 -39
- package/dist-cms/packages/core/localization/manifests.js +99 -119
- package/dist-cms/packages/core/menu/components/menu-item-layout/menu-item-layout.element.js +8 -3
- package/dist-cms/packages/core/menu/index.d.ts +2 -0
- package/dist-cms/packages/core/menu/index.js +2 -0
- package/dist-cms/packages/core/menu/menu-structure-workspace-context.context-token.d.ts +3 -0
- package/dist-cms/packages/core/menu/menu-structure-workspace-context.context-token.js +2 -0
- package/dist-cms/packages/core/menu/menu-tree-structure-workspace-context-base.d.ts +3 -0
- package/dist-cms/packages/core/menu/menu-tree-structure-workspace-context-base.js +53 -10
- package/dist-cms/packages/core/menu/menu-variant-structure-workspace-context.context-token.d.ts +3 -0
- package/dist-cms/packages/core/menu/menu-variant-structure-workspace-context.context-token.js +2 -0
- package/dist-cms/packages/core/menu/menu-variant-structure-workspace-context.interface.d.ts +6 -0
- package/dist-cms/packages/core/menu/menu-variant-structure-workspace-context.interface.js +1 -0
- package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.d.ts +4 -0
- package/dist-cms/packages/core/menu/menu-variant-tree-structure-workspace-context-base.js +55 -21
- package/dist-cms/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.d.ts +5 -0
- package/dist-cms/packages/core/menu/section-sidebar-menu-with-entity-actions/section-sidebar-menu-with-entity-actions.element.js +22 -3
- package/dist-cms/packages/core/picker/search/picker-search-result.element.d.ts +3 -0
- package/dist-cms/packages/core/picker/search/picker-search-result.element.js +13 -6
- package/dist-cms/packages/core/picker/search/result-item/default/default-picker-search-result-item.element.js +2 -1
- package/dist-cms/packages/core/picker/search/result-item/picker-search-result-item-element-base.d.ts +1 -0
- package/dist-cms/packages/core/picker/search/result-item/picker-search-result-item-element-base.js +5 -1
- package/dist-cms/packages/core/property/manifests.d.ts +1 -1
- package/dist-cms/packages/core/property/property-dataset/property-dataset-base-context.js +7 -2
- package/dist-cms/packages/core/property/property-guard-manager/variant-property-guard.manager.d.ts +15 -2
- package/dist-cms/packages/core/property/property-guard-manager/variant-property-guard.manager.js +22 -15
- package/dist-cms/packages/core/property/property-value-cloner/property-value-clone.controller.js +2 -0
- package/dist-cms/packages/core/property/property-value-preset/property-value-preset-builder.controller.js +6 -1
- package/dist-cms/packages/core/property-action/components/property-action-menu/property-action-menu.element.js +6 -1
- package/dist-cms/packages/core/repository/item/item-server-data-source-base.d.ts +5 -6
- package/dist-cms/packages/core/repository/item/item-server-data-source-base.js +14 -9
- package/dist-cms/packages/core/repository/repository-details.manager.d.ts +1 -1
- package/dist-cms/packages/core/repository/repository-details.manager.js +6 -3
- package/dist-cms/packages/core/resources/api-interceptor.controller.d.ts +6 -0
- package/dist-cms/packages/core/resources/api-interceptor.controller.js +16 -0
- package/dist-cms/packages/core/resources/data-api/types.d.ts +7 -0
- package/dist-cms/packages/core/resources/data-api/types.js +1 -0
- package/dist-cms/packages/core/resources/index.d.ts +4 -7
- package/dist-cms/packages/core/resources/index.js +4 -7
- package/dist-cms/packages/core/resources/try-execute/batch-try-execute.function.d.ts +9 -0
- package/dist-cms/packages/core/resources/try-execute/batch-try-execute.function.js +11 -0
- package/dist-cms/packages/core/resources/try-execute/index.d.ts +5 -0
- package/dist-cms/packages/core/resources/try-execute/index.js +5 -0
- package/dist-cms/packages/core/resources/{try-execute.controller.d.ts → try-execute/try-execute.controller.d.ts} +2 -2
- package/dist-cms/packages/core/resources/{try-execute.controller.js → try-execute/try-execute.controller.js} +3 -3
- package/dist-cms/packages/core/resources/{tryExecute.function.d.ts → try-execute/tryExecute.function.d.ts} +1 -1
- package/dist-cms/packages/core/resources/{tryExecuteAndNotify.function.d.ts → try-execute/tryExecuteAndNotify.function.d.ts} +1 -1
- package/dist-cms/packages/core/resources/{tryXhrRequest.function.d.ts → try-execute/tryXhrRequest.function.d.ts} +1 -1
- package/dist-cms/packages/core/resources/{tryXhrRequest.function.js → try-execute/tryXhrRequest.function.js} +3 -3
- package/dist-cms/packages/core/resources/types.d.ts +1 -0
- package/dist-cms/packages/core/section/section-default.element.js +3 -0
- package/dist-cms/packages/core/sorter/sorter.controller.d.ts +23 -6
- package/dist-cms/packages/core/sorter/sorter.controller.js +224 -81
- package/dist-cms/packages/core/temporary-file/config/config.repository.d.ts +1 -0
- package/dist-cms/packages/core/temporary-file/config/config.repository.js +7 -3
- package/dist-cms/packages/core/temporary-file/config/config.server.data-source.js +1 -1
- package/dist-cms/packages/core/temporary-file/manifests.d.ts +1 -1
- package/dist-cms/packages/core/temporary-file/temporary-file-manager.class.js +15 -4
- package/dist-cms/packages/core/themes/manifests.d.ts +1 -1
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.d.ts +1 -1
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-context-base.js +17 -3
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +1 -0
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +7 -4
- package/dist-cms/packages/core/tree/tree-picker-modal/tree-picker-modal.element.js +1 -1
- package/dist-cms/packages/core/utils/array/batch-array.d.ts +7 -0
- package/dist-cms/packages/core/utils/array/batch-array.js +13 -0
- package/dist-cms/packages/core/utils/array/index.d.ts +1 -0
- package/dist-cms/packages/core/utils/array/index.js +1 -0
- package/dist-cms/packages/core/utils/index.d.ts +1 -0
- package/dist-cms/packages/core/utils/index.js +1 -0
- package/dist-cms/packages/core/utils/media/image-size.function.d.ts +5 -3
- package/dist-cms/packages/core/utils/media/image-size.function.js +9 -11
- package/dist-cms/packages/core/validation/controllers/bind-server-validation-to-form-control.controller.js +1 -1
- package/dist-cms/packages/core/validation/controllers/form-control-validator.controller.js +4 -4
- package/dist-cms/packages/core/validation/controllers/validation-path-translation/validation-property-path-translation.controller.js +1 -0
- package/dist-cms/packages/core/validation/controllers/validation.controller.js +4 -4
- package/dist-cms/packages/core/variant/constants.d.ts +1 -0
- package/dist-cms/packages/core/variant/constants.js +1 -0
- package/dist-cms/packages/core/variant/context/constants.d.ts +1 -0
- package/dist-cms/packages/core/variant/context/constants.js +1 -0
- package/dist-cms/packages/core/variant/context/index.d.ts +1 -0
- package/dist-cms/packages/core/variant/context/index.js +1 -0
- package/dist-cms/packages/core/variant/context/variant.context.d.ts +91 -0
- package/dist-cms/packages/core/variant/context/variant.context.js +141 -0
- package/dist-cms/packages/core/variant/context/variant.context.token.d.ts +3 -0
- package/dist-cms/packages/core/variant/context/variant.context.token.js +2 -0
- package/dist-cms/packages/core/variant/index.d.ts +2 -0
- package/dist-cms/packages/core/variant/index.js +2 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/index.d.ts +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/index.js +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/index.d.ts +2 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/index.js +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/save.action.d.ts +13 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/save.action.js +31 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/types.d.ts +6 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/save/types.js +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/common/submit/submit.action.d.ts +0 -1
- package/dist-cms/packages/core/workspace/components/workspace-action/common/submit/submit.action.js +0 -4
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.d.ts +1 -1
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-menu-breadcrumb/workspace-menu-breadcrumb.element.js +3 -6
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.d.ts +1 -1
- package/dist-cms/packages/core/workspace/components/workspace-breadcrumb/workspace-variant-menu-breadcrumb/workspace-variant-menu-breadcrumb.element.js +3 -5
- package/dist-cms/packages/core/workspace/components/workspace-editor/workspace-editor.element.js +1 -2
- package/dist-cms/packages/core/workspace/components/workspace-entity-action-menu/workspace-entity-action-menu.element.js +3 -3
- package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +1 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/index.d.ts +5 -1
- package/dist-cms/packages/core/workspace/contexts/tokens/index.js +2 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/saveable-workspace-context.interface.d.ts +4 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/saveable-workspace-context.interface.js +1 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/saveable-workspace.context-token.d.ts +4 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/saveable-workspace.context-token.js +2 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace-context.interface.d.ts +36 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace-context.interface.js +1 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace.context-token.d.ts +4 -0
- package/dist-cms/packages/core/workspace/contexts/tokens/submittable-tree-entity-workspace.context-token.js +2 -0
- package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.d.ts +33 -1
- package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +46 -9
- package/dist-cms/packages/core/workspace/info-app/global-components/workspace-info-app-layout.element.js +0 -4
- package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.d.ts +1 -0
- package/dist-cms/packages/core/workspace/submittable/submittable-workspace-context-base.js +8 -3
- package/dist-cms/packages/core/workspace/workspace-property-dataset/invariant-workspace-property-dataset-context.js +4 -1
- package/dist-cms/packages/data-type/constants.d.ts +1 -0
- package/dist-cms/packages/data-type/constants.js +1 -0
- package/dist-cms/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.js +1 -1
- package/dist-cms/packages/data-type/repository/item/data-type-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/data-type/repository/item/data-type-item.server.data-source.js +12 -3
- package/dist-cms/packages/data-type/search/constants.d.ts +2 -0
- package/dist-cms/packages/data-type/search/constants.js +2 -0
- package/dist-cms/packages/data-type/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/data-type/search/global-search/constants.js +1 -0
- package/dist-cms/packages/data-type/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/data-type/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/data-type/search/manifests.js +2 -0
- package/dist-cms/packages/data-type/tree/tree-item-children/collection/views/data-type-tree-item-table-collection-view.element.js +1 -0
- package/dist-cms/packages/dictionary/repository/item/dictionary-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/dictionary/repository/item/dictionary-item.server.data-source.js +12 -3
- package/dist-cms/packages/dictionary/search/constants.d.ts +1 -0
- package/dist-cms/packages/dictionary/search/constants.js +1 -0
- package/dist-cms/packages/dictionary/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/dictionary/search/global-search/constants.js +1 -0
- package/dist-cms/packages/dictionary/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/dictionary/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/dictionary/search/manifests.js +2 -0
- package/dist-cms/packages/documents/document-blueprints/entity-actions/create/manifests.js +1 -1
- package/dist-cms/packages/documents/document-blueprints/repository/item/document-blueprint-item.server.data-source.d.ts +4 -1
- package/dist-cms/packages/documents/document-blueprints/repository/item/document-blueprint-item.server.data-source.js +13 -6
- package/dist-cms/packages/documents/document-types/components/input-document-type/input-document-type.element.js +4 -1
- package/dist-cms/packages/documents/document-types/picker/document-type-picker-search-result-item.element.js +2 -1
- package/dist-cms/packages/documents/document-types/repository/item/document-type-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/documents/document-types/repository/item/document-type-item.server.data-source.js +13 -3
- package/dist-cms/packages/documents/document-types/search/constants.d.ts +1 -0
- package/dist-cms/packages/documents/document-types/search/constants.js +1 -0
- package/dist-cms/packages/documents/document-types/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/documents/document-types/search/global-search/constants.js +1 -0
- package/dist-cms/packages/documents/document-types/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/documents/document-types/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/documents/document-types/search/manifests.js +2 -0
- package/dist-cms/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.js +1 -0
- package/dist-cms/packages/documents/documents/collection/document-collection.context.d.ts +2 -0
- package/dist-cms/packages/documents/documents/collection/document-collection.context.js +23 -0
- package/dist-cms/packages/documents/documents/collection/views/table/column-layouts/document-entity-actions-table-column-view.element.js +1 -0
- package/dist-cms/packages/documents/documents/components/input-document/input-document.context.js +4 -0
- package/dist-cms/packages/documents/documents/entity-actions/duplicate/repository/document-duplicate.server.data-source.js +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/move-to/repository/document-move.server.data-source.js +1 -1
- package/dist-cms/packages/documents/documents/item/document-item-data-resolver.d.ts +2 -2
- package/dist-cms/packages/documents/documents/item/document-item-data-resolver.js +55 -68
- package/dist-cms/packages/documents/documents/item/document-item-ref.element.d.ts +4 -0
- package/dist-cms/packages/documents/documents/item/document-item-ref.element.js +33 -2
- package/dist-cms/packages/documents/documents/item/repository/document-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/documents/documents/item/repository/document-item.server.data-source.js +12 -3
- package/dist-cms/packages/documents/documents/modals/save-modal/document-save-modal.element.js +1 -5
- package/dist-cms/packages/documents/documents/picker/document-picker-search-result-item.element.d.ts +1 -0
- package/dist-cms/packages/documents/documents/picker/document-picker-search-result-item.element.js +16 -9
- package/dist-cms/packages/documents/documents/property-dataset-context/document-property-dataset.context.d.ts +4 -1
- package/dist-cms/packages/documents/documents/property-dataset-context/document-property-dataset.context.js +3 -0
- package/dist-cms/packages/documents/documents/publishing/publish/modal/document-publish-modal.element.js +9 -13
- package/dist-cms/packages/documents/documents/publishing/publish/modal/document-publish-modal.token.d.ts +1 -0
- package/dist-cms/packages/documents/documents/publishing/schedule-publish/modal/document-schedule-modal.element.js +0 -10
- package/dist-cms/packages/documents/documents/publishing/unpublish/entity-action/unpublish.action.js +5 -19
- package/dist-cms/packages/documents/documents/publishing/unpublish/modal/document-unpublish-modal.element.js +3 -12
- package/dist-cms/packages/documents/documents/publishing/workspace-context/document-publishing.workspace-context.js +3 -7
- package/dist-cms/packages/documents/documents/search/constants.d.ts +1 -0
- package/dist-cms/packages/documents/documents/search/constants.js +1 -0
- package/dist-cms/packages/documents/documents/search/document-search.server.data-source.js +3 -2
- package/dist-cms/packages/documents/documents/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/documents/documents/search/global-search/constants.js +1 -0
- package/dist-cms/packages/documents/documents/search/global-search/document-global-search.d.ts +6 -0
- package/dist-cms/packages/documents/documents/search/global-search/document-global-search.js +15 -0
- package/dist-cms/packages/documents/documents/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/documents/documents/search/global-search/manifests.js +23 -0
- package/dist-cms/packages/documents/documents/search/manifests.js +2 -0
- package/dist-cms/packages/documents/documents/search/types.d.ts +1 -0
- package/dist-cms/packages/documents/documents/url/document-urls-data-resolver.d.ts +37 -0
- package/dist-cms/packages/documents/documents/url/document-urls-data-resolver.js +78 -0
- package/dist-cms/packages/documents/documents/url/index.d.ts +1 -0
- package/dist-cms/packages/documents/documents/url/index.js +1 -0
- package/dist-cms/packages/documents/documents/url/info-app/document-links-workspace-info-app.element.d.ts +0 -1
- package/dist-cms/packages/documents/documents/url/info-app/document-links-workspace-info-app.element.js +29 -24
- package/dist-cms/packages/documents/documents/url/repository/document-url.server.data-source.d.ts +4 -0
- package/dist-cms/packages/documents/documents/url/repository/document-url.server.data-source.js +13 -3
- package/dist-cms/packages/documents/documents/url/repository/types.d.ts +1 -1
- package/dist-cms/packages/documents/documents/workspace/actions/save.action.d.ts +3 -3
- package/dist-cms/packages/documents/documents/workspace/actions/save.action.js +2 -2
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context-token.d.ts +2 -2
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +1 -5
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +45 -59
- package/dist-cms/packages/extension-insights/collection/views/table/extension-table-collection-view.element.js +1 -0
- package/dist-cms/packages/language/app-language-select/app-language-select.element.js +7 -2
- package/dist-cms/packages/language/collection/views/table/language-table-collection-view.element.js +1 -0
- package/dist-cms/packages/language/global-contexts/app-language.context.js +14 -12
- package/dist-cms/packages/language/menu/language-menu-structure.context.d.ts +1 -1
- package/dist-cms/packages/language/menu/language-menu-structure.context.js +4 -2
- package/dist-cms/packages/language/repository/item/language-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/language/repository/item/language-item.server.data-source.js +12 -3
- package/dist-cms/packages/markdown-editor/components/input-markdown-editor/input-markdown.element.js +3 -0
- package/dist-cms/packages/media/media/collection/media-collection.element.js +1 -0
- package/dist-cms/packages/media/media/collection/views/table/media-table-collection-view.element.js +1 -0
- package/dist-cms/packages/media/media/components/input-media/input-media.context.js +4 -0
- package/dist-cms/packages/media/media/constants.d.ts +1 -1
- package/dist-cms/packages/media/media/constants.js +1 -1
- package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +8 -0
- package/dist-cms/packages/media/media/repository/item/media-item.server.data-source.d.ts +4 -1
- package/dist-cms/packages/media/media/repository/item/media-item.server.data-source.js +13 -6
- package/dist-cms/packages/media/media/search/constants.d.ts +1 -0
- package/dist-cms/packages/media/media/search/constants.js +1 -0
- package/dist-cms/packages/media/media/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/media/media/search/global-search/constants.js +1 -0
- package/dist-cms/packages/media/media/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/media/media/search/global-search/manifests.js +23 -0
- package/dist-cms/packages/media/media/search/global-search/media-global-search.d.ts +15 -0
- package/dist-cms/packages/media/media/search/global-search/media-global-search.js +15 -0
- package/dist-cms/packages/media/media/search/manifests.js +2 -0
- package/dist-cms/packages/media/media/search/media-search.server.data-source.js +3 -2
- package/dist-cms/packages/media/media/search/types.d.ts +1 -0
- package/dist-cms/packages/media/media/url/repository/media-url.server.data-source.d.ts +4 -0
- package/dist-cms/packages/media/media/url/repository/media-url.server.data-source.js +12 -3
- package/dist-cms/packages/media/media-types/constants.d.ts +1 -0
- package/dist-cms/packages/media/media-types/constants.js +1 -0
- package/dist-cms/packages/media/media-types/repository/item/media-type-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/media/media-types/repository/item/media-type-item.server.data-source.js +12 -3
- package/dist-cms/packages/media/media-types/search/constants.d.ts +2 -0
- package/dist-cms/packages/media/media-types/search/constants.js +2 -0
- package/dist-cms/packages/media/media-types/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/media/media-types/search/global-search/constants.js +1 -0
- package/dist-cms/packages/media/media-types/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/media/media-types/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/media/media-types/search/manifests.js +4 -1
- package/dist-cms/packages/media/media-types/tree/tree-item-children/collection/views/media-type-tree-item-table-collection-view.element.js +1 -0
- package/dist-cms/packages/members/member/collection/views/table/member-table-collection-view.element.js +1 -0
- package/dist-cms/packages/members/member/item/repository/member-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/members/member/item/repository/member-item.server.data-source.js +12 -3
- package/dist-cms/packages/members/member/picker/member-picker-search-result-item.element.js +2 -1
- package/dist-cms/packages/members/member/search/constants.d.ts +1 -0
- package/dist-cms/packages/members/member/search/constants.js +1 -0
- package/dist-cms/packages/members/member/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/members/member/search/global-search/constants.js +1 -0
- package/dist-cms/packages/members/member/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/members/member/search/manifests.js +2 -0
- package/dist-cms/packages/members/member-group/collection/views/table/member-group-table-collection-view.element.js +1 -0
- package/dist-cms/packages/members/member-group/repository/item/member-group-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/members/member-group/repository/item/member-group-item.server.data-source.js +12 -3
- package/dist-cms/packages/members/member-type/constants.d.ts +1 -0
- package/dist-cms/packages/members/member-type/constants.js +1 -0
- package/dist-cms/packages/members/member-type/repository/item/member-type-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/members/member-type/repository/item/member-type-item.server.data-source.js +12 -3
- package/dist-cms/packages/members/member-type/search/constants.d.ts +2 -0
- package/dist-cms/packages/members/member-type/search/constants.js +2 -0
- package/dist-cms/packages/members/member-type/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/members/member-type/search/global-search/constants.js +1 -0
- package/dist-cms/packages/members/member-type/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/members/member-type/search/manifests.js +4 -1
- package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.d.ts +4 -0
- package/dist-cms/packages/multi-url-picker/components/input-multi-url/input-multi-url.element.js +48 -1
- package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.d.ts +3 -2
- package/dist-cms/packages/multi-url-picker/link-picker-modal/link-picker-modal.element.js +129 -39
- package/dist-cms/packages/packages/package-section/views/installed/installed-packages-section-view-item.element.js +1 -1
- package/dist-cms/packages/relations/relations/reference/workspace-info-app/entity-references-workspace-view-info.element.js +6 -1
- package/dist-cms/packages/search/global-search/global-search-base.d.ts +11 -0
- package/dist-cms/packages/search/global-search/global-search-base.js +49 -0
- package/dist-cms/packages/search/global-search/global-search.extension.d.ts +15 -0
- package/dist-cms/packages/search/global-search/global-search.extension.js +1 -0
- package/dist-cms/packages/search/global-search/index.d.ts +1 -0
- package/dist-cms/packages/search/global-search/index.js +1 -0
- package/dist-cms/packages/search/global-search/types.d.ts +4 -0
- package/dist-cms/packages/search/global-search/types.js +1 -0
- package/dist-cms/packages/search/index.d.ts +1 -0
- package/dist-cms/packages/search/index.js +1 -0
- package/dist-cms/packages/search/search-modal/search-modal.element.d.ts +4 -4
- package/dist-cms/packages/search/search-modal/search-modal.element.js +40 -29
- package/dist-cms/packages/search/types.d.ts +1 -0
- package/dist-cms/packages/static-file/repository/item/static-file-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/static-file/repository/item/static-file-item.server.data-source.js +14 -7
- package/dist-cms/packages/sysinfo/components/sysinfo.element.js +49 -9
- package/dist-cms/packages/sysinfo/repository/sysinfo.repository.d.ts +3 -0
- package/dist-cms/packages/sysinfo/repository/sysinfo.repository.js +8 -0
- package/dist-cms/packages/templating/templates/constants.d.ts +1 -0
- package/dist-cms/packages/templating/templates/constants.js +1 -0
- package/dist-cms/packages/templating/templates/repository/item/template-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/templating/templates/repository/item/template-item.server.data-source.js +12 -3
- package/dist-cms/packages/templating/templates/search/constants.d.ts +2 -0
- package/dist-cms/packages/templating/templates/search/constants.js +2 -0
- package/dist-cms/packages/templating/templates/search/global-search/constants.d.ts +1 -0
- package/dist-cms/packages/templating/templates/search/global-search/constants.js +1 -0
- package/dist-cms/packages/templating/templates/search/global-search/manifests.d.ts +1 -0
- package/dist-cms/packages/templating/templates/search/global-search/manifests.js +22 -0
- package/dist-cms/packages/templating/templates/search/manifests.js +4 -1
- package/dist-cms/packages/tiptap/extensions/core/media-upload.tiptap-api.d.ts +6 -1
- package/dist-cms/packages/tiptap/extensions/core/media-upload.tiptap-api.js +16 -6
- package/dist-cms/packages/tiptap/extensions/toolbar/media-picker.tiptap-toolbar-api.d.ts +6 -1
- package/dist-cms/packages/tiptap/extensions/toolbar/media-picker.tiptap-toolbar-api.js +27 -6
- package/dist-cms/packages/user/current-user/action/current-user-app-button.element.d.ts +1 -1
- package/dist-cms/packages/user/current-user/action/current-user-app-button.element.js +4 -8
- package/dist-cms/packages/user/current-user/current-user-action.extension.d.ts +0 -11
- package/dist-cms/packages/user/current-user/external-login/manifests.js +0 -1
- package/dist-cms/packages/user/current-user/mfa-login/manifests.js +0 -1
- package/dist-cms/packages/user/user/collection/views/table/user-table-collection-view.element.js +1 -0
- package/dist-cms/packages/user/user/repository/item/user-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/user/user/repository/item/user-item.server.data-source.js +12 -3
- package/dist-cms/packages/user/user/workspace/user/components/user-workspace-profile-settings/user-workspace-profile-settings.element.js +25 -22
- package/dist-cms/packages/user/user-group/collection/views/user-group-table-collection-view.element.js +1 -0
- package/dist-cms/packages/user/user-group/repository/item/user-group-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/user/user-group/repository/item/user-group-item.server.data-source.js +12 -3
- package/dist-cms/packages/webhook/webhook/collection/views/table/webhook-table-collection-view.element.js +1 -0
- package/dist-cms/packages/webhook/webhook/repository/item/webhook-item.server.data-source.d.ts +4 -0
- package/dist-cms/packages/webhook/webhook/repository/item/webhook-item.server.data-source.js +12 -3
- package/dist-cms/packages/webhook/webhook/workspace/webhook-workspace-editor.element.js +2 -0
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package-schema.json +298 -0
- package/dist-cms/umbraco-package.json +1 -1
- package/dist-cms/vscode-html-custom-data.json +71 -20
- package/examples/block-custom-view/block-custom-view.ts +8 -0
- package/package.json +1 -1
- package/dist-cms/assets/lang/de-ch.d.ts +0 -3
- package/dist-cms/assets/lang/de-ch.js +0 -15
- package/dist-cms/assets/lang/de-ch.ts +0 -17
- package/dist-cms/assets/lang/fr-ch.d.ts +0 -3
- package/dist-cms/assets/lang/fr-ch.js +0 -15
- package/dist-cms/assets/lang/fr-ch.ts +0 -17
- package/dist-cms/assets/lang/it-ch.d.ts +0 -3
- package/dist-cms/assets/lang/it-ch.js +0 -15
- package/dist-cms/assets/lang/it-ch.ts +0 -17
- /package/dist-cms/assets/lang/{cs-cz.d.ts → cs.d.ts} +0 -0
- /package/dist-cms/assets/lang/{cs-cz.js → cs.js} +0 -0
- /package/dist-cms/assets/lang/{cs-cz.ts → cs.ts} +0 -0
- /package/dist-cms/assets/lang/{cy-gb.d.ts → cy.d.ts} +0 -0
- /package/dist-cms/assets/lang/{cy-gb.js → cy.js} +0 -0
- /package/dist-cms/assets/lang/{cy-gb.ts → cy.ts} +0 -0
- /package/dist-cms/assets/lang/{da-dk.d.ts → da.d.ts} +0 -0
- /package/dist-cms/assets/lang/{de-de.d.ts → de.d.ts} +0 -0
- /package/dist-cms/assets/lang/{de-de.js → de.js} +0 -0
- /package/dist-cms/assets/lang/{de-de.ts → de.ts} +0 -0
- /package/dist-cms/assets/lang/{es-es.d.ts → es.d.ts} +0 -0
- /package/dist-cms/assets/lang/{es-es.js → es.js} +0 -0
- /package/dist-cms/assets/lang/{es-es.ts → es.ts} +0 -0
- /package/dist-cms/assets/lang/{fr-fr.d.ts → fr.d.ts} +0 -0
- /package/dist-cms/assets/lang/{fr-fr.js → fr.js} +0 -0
- /package/dist-cms/assets/lang/{fr-fr.ts → fr.ts} +0 -0
- /package/dist-cms/assets/lang/{he-il.d.ts → he.d.ts} +0 -0
- /package/dist-cms/assets/lang/{he-il.js → he.js} +0 -0
- /package/dist-cms/assets/lang/{he-il.ts → he.ts} +0 -0
- /package/dist-cms/assets/lang/{hr-hr.d.ts → hr.d.ts} +0 -0
- /package/dist-cms/assets/lang/{hr-hr.js → hr.js} +0 -0
- /package/dist-cms/assets/lang/{hr-hr.ts → hr.ts} +0 -0
- /package/dist-cms/assets/lang/{it-it.d.ts → it.d.ts} +0 -0
- /package/dist-cms/assets/lang/{it-it.js → it.js} +0 -0
- /package/dist-cms/assets/lang/{it-it.ts → it.ts} +0 -0
- /package/dist-cms/assets/lang/{ja-jp.d.ts → ja.d.ts} +0 -0
- /package/dist-cms/assets/lang/{ja-jp.js → ja.js} +0 -0
- /package/dist-cms/assets/lang/{ja-jp.ts → ja.ts} +0 -0
- /package/dist-cms/assets/lang/{ko-kr.d.ts → ko.d.ts} +0 -0
- /package/dist-cms/assets/lang/{ko-kr.js → ko.js} +0 -0
- /package/dist-cms/assets/lang/{ko-kr.ts → ko.ts} +0 -0
- /package/dist-cms/assets/lang/{nb-no.d.ts → nb.d.ts} +0 -0
- /package/dist-cms/assets/lang/{nb-no.js → nb.js} +0 -0
- /package/dist-cms/assets/lang/{nb-no.ts → nb.ts} +0 -0
- /package/dist-cms/assets/lang/{nl-nl.d.ts → nl.d.ts} +0 -0
- /package/dist-cms/assets/lang/{nl-nl.js → nl.js} +0 -0
- /package/dist-cms/assets/lang/{nl-nl.ts → nl.ts} +0 -0
- /package/dist-cms/assets/lang/{pl-pl.d.ts → pl.d.ts} +0 -0
- /package/dist-cms/assets/lang/{pl-pl.js → pl.js} +0 -0
- /package/dist-cms/assets/lang/{pl-pl.ts → pl.ts} +0 -0
- /package/dist-cms/assets/lang/{ro-ro.d.ts → ro.d.ts} +0 -0
- /package/dist-cms/assets/lang/{ro-ro.js → ro.js} +0 -0
- /package/dist-cms/assets/lang/{ro-ro.ts → ro.ts} +0 -0
- /package/dist-cms/assets/lang/{ru-ru.d.ts → ru.d.ts} +0 -0
- /package/dist-cms/assets/lang/{ru-ru.js → ru.js} +0 -0
- /package/dist-cms/assets/lang/{ru-ru.ts → ru.ts} +0 -0
- /package/dist-cms/assets/lang/{sv-se.d.ts → sv.d.ts} +0 -0
- /package/dist-cms/assets/lang/{sv-se.js → sv.js} +0 -0
- /package/dist-cms/assets/lang/{sv-se.ts → sv.ts} +0 -0
- /package/dist-cms/assets/lang/{tr-tr.d.ts → tr.d.ts} +0 -0
- /package/dist-cms/assets/lang/{tr-tr.js → tr.js} +0 -0
- /package/dist-cms/assets/lang/{tr-tr.ts → tr.ts} +0 -0
- /package/dist-cms/assets/lang/{uk-ua.d.ts → uk.d.ts} +0 -0
- /package/dist-cms/assets/lang/{uk-ua.js → uk.js} +0 -0
- /package/dist-cms/assets/lang/{uk-ua.ts → uk.ts} +0 -0
- /package/dist-cms/assets/lang/{zh-cn.d.ts → zh.d.ts} +0 -0
- /package/dist-cms/assets/lang/{zh-cn.js → zh.js} +0 -0
- /package/dist-cms/assets/lang/{zh-cn.ts → zh.ts} +0 -0
- /package/dist-cms/packages/core/resources/{tryExecute.function.js → try-execute/tryExecute.function.js} +0 -0
- /package/dist-cms/packages/core/resources/{tryExecuteAndNotify.function.js → try-execute/tryExecuteAndNotify.function.js} +0 -0
|
@@ -6,7 +6,7 @@ import type { UmbContentValidationRepository } from '../repository/content-valid
|
|
|
6
6
|
import type { UmbContentWorkspaceContext } from './content-workspace-context.interface.js';
|
|
7
7
|
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
|
8
8
|
import type { UmbDetailRepository, UmbDetailRepositoryConstructor } from '@umbraco-cms/backoffice/repository';
|
|
9
|
-
import { UmbEntityDetailWorkspaceContextBase, UmbWorkspaceSplitViewManager, type UmbEntityDetailWorkspaceContextArgs, type UmbEntityDetailWorkspaceContextCreateArgs } from '@umbraco-cms/backoffice/workspace';
|
|
9
|
+
import { UmbEntityDetailWorkspaceContextBase, UmbWorkspaceSplitViewManager, type UmbEntityDetailWorkspaceContextArgs, type UmbEntityDetailWorkspaceContextCreateArgs, type UmbSaveableWorkspaceContext } from '@umbraco-cms/backoffice/workspace';
|
|
10
10
|
import { UmbContentTypeStructureManager, type UmbContentTypeModel, type UmbPropertyTypeModel } from '@umbraco-cms/backoffice/content-type';
|
|
11
11
|
import { UmbVariantId, type UmbEntityVariantModel, type UmbEntityVariantOptionModel } from '@umbraco-cms/backoffice/variant';
|
|
12
12
|
import { UmbReadOnlyVariantGuardManager } from '@umbraco-cms/backoffice/utils';
|
|
@@ -44,7 +44,7 @@ export interface UmbContentDetailWorkspaceContextArgs<DetailModelType extends Um
|
|
|
44
44
|
*/
|
|
45
45
|
export declare abstract class UmbContentDetailWorkspaceContextBase<DetailModelType extends UmbContentDetailModel<VariantModelType>, DetailRepositoryType extends UmbDetailRepository<DetailModelType> = UmbDetailRepository<DetailModelType>, ContentTypeDetailModelType extends UmbContentTypeModel = UmbContentTypeModel, VariantModelType extends UmbEntityVariantModel = DetailModelType extends {
|
|
46
46
|
variants: UmbEntityVariantModel[];
|
|
47
|
-
} ? DetailModelType['variants'][0] : never, VariantOptionModelType extends UmbEntityVariantOptionModel = UmbEntityVariantOptionModel<VariantModelType>, CreateArgsType extends UmbEntityDetailWorkspaceContextCreateArgs<DetailModelType> = UmbEntityDetailWorkspaceContextCreateArgs<DetailModelType>> extends UmbEntityDetailWorkspaceContextBase<DetailModelType, DetailRepositoryType, CreateArgsType> implements UmbContentWorkspaceContext<DetailModelType, ContentTypeDetailModelType, VariantModelType
|
|
47
|
+
} ? DetailModelType['variants'][0] : never, VariantOptionModelType extends UmbEntityVariantOptionModel = UmbEntityVariantOptionModel<VariantModelType>, CreateArgsType extends UmbEntityDetailWorkspaceContextCreateArgs<DetailModelType> = UmbEntityDetailWorkspaceContextCreateArgs<DetailModelType>> extends UmbEntityDetailWorkspaceContextBase<DetailModelType, DetailRepositoryType, CreateArgsType> implements UmbContentWorkspaceContext<DetailModelType, ContentTypeDetailModelType, VariantModelType>, UmbSaveableWorkspaceContext {
|
|
48
48
|
#private;
|
|
49
49
|
readonly IS_CONTENT_WORKSPACE_CONTEXT: true;
|
|
50
50
|
readonly readOnlyGuard: UmbReadOnlyVariantGuardManager;
|
|
@@ -205,6 +205,11 @@ export declare abstract class UmbContentDetailWorkspaceContextBase<DetailModelTy
|
|
|
205
205
|
*/
|
|
206
206
|
requestSubmit(): Promise<void>;
|
|
207
207
|
submit(): Promise<void>;
|
|
208
|
+
/**
|
|
209
|
+
* Request a save of the workspace, in the case of Document Workspaces the validation does not need to be valid for this to be saved.
|
|
210
|
+
* @returns {Promise<void>} a promise which resolves once it has been completed.
|
|
211
|
+
*/
|
|
212
|
+
requestSave(): Promise<void>;
|
|
208
213
|
/**
|
|
209
214
|
* Get the data to save
|
|
210
215
|
* @param {Array<UmbVariantId>} variantIds - The variant ids to save
|
|
@@ -213,6 +218,7 @@ export declare abstract class UmbContentDetailWorkspaceContextBase<DetailModelTy
|
|
|
213
218
|
*/
|
|
214
219
|
constructSaveData(variantIds: Array<UmbVariantId>): Promise<DetailModelType>;
|
|
215
220
|
protected _handleSubmit(): Promise<void>;
|
|
221
|
+
protected _handleSave(): Promise<void>;
|
|
216
222
|
/**
|
|
217
223
|
* Perform the create or update of the content
|
|
218
224
|
* @deprecated Use the public performCreateOrUpdate instead. Will be removed in v. 17.
|
|
@@ -512,6 +512,10 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
512
512
|
*/
|
|
513
513
|
async runMandatoryValidationForSaveData(saveData, variantIds = []) {
|
|
514
514
|
// Check that the data is valid before we save it.
|
|
515
|
+
// If we vary by culture then we do not want to validate the invariant variant.
|
|
516
|
+
if (this.getVariesByCulture()) {
|
|
517
|
+
variantIds = variantIds.filter((variant) => !variant.isCultureInvariant());
|
|
518
|
+
}
|
|
515
519
|
const missingVariants = variantIds.filter((variant) => {
|
|
516
520
|
return !saveData.variants.some((y) => variant.compare(y));
|
|
517
521
|
});
|
|
@@ -544,7 +548,7 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
544
548
|
this.#validationRepository ??= new this.#validationRepositoryClass(this);
|
|
545
549
|
// We ask the server first to get a concatenated set of validation messages. So we see both front-end and back-end validation messages [NL]
|
|
546
550
|
if (this.getIsNew()) {
|
|
547
|
-
const parent = this.
|
|
551
|
+
const parent = this._internal_getCreateUnderParent();
|
|
548
552
|
if (!parent)
|
|
549
553
|
throw new Error('Parent is not set');
|
|
550
554
|
await this.#serverValidation.askServerForValidation(saveData, this.#validationRepository.validateCreate(saveData, parent.unique));
|
|
@@ -564,6 +568,13 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
564
568
|
submit() {
|
|
565
569
|
return this._handleSubmit();
|
|
566
570
|
}
|
|
571
|
+
/**
|
|
572
|
+
* Request a save of the workspace, in the case of Document Workspaces the validation does not need to be valid for this to be saved.
|
|
573
|
+
* @returns {Promise<void>} a promise which resolves once it has been completed.
|
|
574
|
+
*/
|
|
575
|
+
requestSave() {
|
|
576
|
+
return this._handleSave();
|
|
577
|
+
}
|
|
567
578
|
/**
|
|
568
579
|
* Get the data to save
|
|
569
580
|
* @param {Array<UmbVariantId>} variantIds - The variant ids to save
|
|
@@ -574,6 +585,10 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
574
585
|
return this._data.constructData(variantIds);
|
|
575
586
|
}
|
|
576
587
|
async _handleSubmit() {
|
|
588
|
+
await this._handleSave();
|
|
589
|
+
this._closeModal();
|
|
590
|
+
}
|
|
591
|
+
async _handleSave() {
|
|
577
592
|
const data = this.getData();
|
|
578
593
|
if (!data) {
|
|
579
594
|
throw new Error('Data is missing');
|
|
@@ -611,16 +626,10 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
611
626
|
await this.runMandatoryValidationForSaveData(saveData, variantIds);
|
|
612
627
|
if (this.#validateOnSubmit) {
|
|
613
628
|
await this.askServerToValidate(saveData, variantIds);
|
|
614
|
-
|
|
629
|
+
const valid = await this._validateAndLog().then(() => true, () => false);
|
|
630
|
+
if (valid || this.#ignoreValidationResultOnSubmit) {
|
|
615
631
|
return this.performCreateOrUpdate(variantIds, saveData);
|
|
616
|
-
}
|
|
617
|
-
if (this.#ignoreValidationResultOnSubmit) {
|
|
618
|
-
return this.performCreateOrUpdate(variantIds, saveData);
|
|
619
|
-
}
|
|
620
|
-
else {
|
|
621
|
-
return this.invalidSubmit(reason);
|
|
622
|
-
}
|
|
623
|
-
});
|
|
632
|
+
}
|
|
624
633
|
}
|
|
625
634
|
else {
|
|
626
635
|
await this.performCreateOrUpdate(variantIds, saveData);
|
|
@@ -654,7 +663,7 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
654
663
|
async #create(variantIds, saveData) {
|
|
655
664
|
if (!this._detailRepository)
|
|
656
665
|
throw new Error('Detail repository is not set');
|
|
657
|
-
const parent = this.
|
|
666
|
+
const parent = this._internal_getCreateUnderParent();
|
|
658
667
|
if (!parent)
|
|
659
668
|
throw new Error('Parent is not set');
|
|
660
669
|
const { data, error } = await this._detailRepository.create(saveData, parent.unique);
|
|
@@ -680,7 +689,6 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
680
689
|
});
|
|
681
690
|
eventContext.dispatchEvent(event);
|
|
682
691
|
this.setIsNew(false);
|
|
683
|
-
this._closeModal();
|
|
684
692
|
}
|
|
685
693
|
async #update(variantIds, saveData) {
|
|
686
694
|
if (!this._detailRepository)
|
|
@@ -712,7 +720,6 @@ export class UmbContentDetailWorkspaceContextBase extends UmbEntityDetailWorkspa
|
|
|
712
720
|
eventUnique: this._workspaceEventUnique,
|
|
713
721
|
});
|
|
714
722
|
eventContext.dispatchEvent(updatedEvent);
|
|
715
|
-
this._closeModal();
|
|
716
723
|
}
|
|
717
724
|
resetState() {
|
|
718
725
|
super.resetState();
|
|
@@ -6,7 +6,7 @@ export declare class UmbContentWorkspaceViewEditPropertiesElement extends UmbLit
|
|
|
6
6
|
#private;
|
|
7
7
|
get containerId(): string | null | undefined;
|
|
8
8
|
set containerId(value: string | null | undefined);
|
|
9
|
-
|
|
9
|
+
_datasetVariantId?: UmbVariantId;
|
|
10
10
|
_visibleProperties?: Array<UmbPropertyTypeModel>;
|
|
11
11
|
constructor();
|
|
12
12
|
render(): unknown;
|
package/dist-cms/packages/content/content/workspace/views/edit/content-editor-properties.element.js
CHANGED
|
@@ -26,7 +26,7 @@ let UmbContentWorkspaceViewEditPropertiesElement = class UmbContentWorkspaceView
|
|
|
26
26
|
constructor() {
|
|
27
27
|
super();
|
|
28
28
|
this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (datasetContext) => {
|
|
29
|
-
this.
|
|
29
|
+
this._datasetVariantId = datasetContext?.getVariantId();
|
|
30
30
|
this.#processPropertyStructure();
|
|
31
31
|
});
|
|
32
32
|
this.consumeContext(UMB_CONTENT_WORKSPACE_CONTEXT, (workspaceContext) => {
|
|
@@ -41,13 +41,13 @@ let UmbContentWorkspaceViewEditPropertiesElement = class UmbContentWorkspaceView
|
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
#processPropertyStructure() {
|
|
44
|
-
if (!this.#workspaceContext || !this.#properties || !this.#propertyStructureHelper) {
|
|
44
|
+
if (!this.#workspaceContext || !this.#properties || !this.#propertyStructureHelper || !this._datasetVariantId) {
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
const propertyViewGuard = this.#workspaceContext.propertyViewGuard;
|
|
48
48
|
this.#properties.forEach((property) => {
|
|
49
|
-
const propertyVariantId = new UmbVariantId(this.
|
|
50
|
-
this.observe(propertyViewGuard.isPermittedForVariantAndProperty(propertyVariantId, property), (permitted) => {
|
|
49
|
+
const propertyVariantId = new UmbVariantId(property.variesByCulture ? this._datasetVariantId?.culture : null, property.variesBySegment ? this._datasetVariantId?.segment : null);
|
|
50
|
+
this.observe(propertyViewGuard.isPermittedForVariantAndProperty(propertyVariantId, property, this._datasetVariantId), (permitted) => {
|
|
51
51
|
if (permitted) {
|
|
52
52
|
this.#visiblePropertiesUniques.push(property.unique);
|
|
53
53
|
this.#calculateVisibleProperties();
|
|
@@ -66,10 +66,10 @@ let UmbContentWorkspaceViewEditPropertiesElement = class UmbContentWorkspaceView
|
|
|
66
66
|
this._visibleProperties = this.#properties.filter((property) => this.#visiblePropertiesUniques.includes(property.unique));
|
|
67
67
|
}
|
|
68
68
|
render() {
|
|
69
|
-
return this.
|
|
69
|
+
return this._datasetVariantId && this._visibleProperties
|
|
70
70
|
? repeat(this._visibleProperties, (property) => property.alias, (property) => html `<umb-content-workspace-view-edit-property
|
|
71
71
|
class="property"
|
|
72
|
-
.variantId=${this.
|
|
72
|
+
.variantId=${this._datasetVariantId}
|
|
73
73
|
.property=${property}></umb-content-workspace-view-edit-property>`)
|
|
74
74
|
: nothing;
|
|
75
75
|
}
|
|
@@ -90,7 +90,7 @@ __decorate([
|
|
|
90
90
|
], UmbContentWorkspaceViewEditPropertiesElement.prototype, "containerId", null);
|
|
91
91
|
__decorate([
|
|
92
92
|
state()
|
|
93
|
-
], UmbContentWorkspaceViewEditPropertiesElement.prototype, "
|
|
93
|
+
], UmbContentWorkspaceViewEditPropertiesElement.prototype, "_datasetVariantId", void 0);
|
|
94
94
|
__decorate([
|
|
95
95
|
state()
|
|
96
96
|
], UmbContentWorkspaceViewEditPropertiesElement.prototype, "_visibleProperties", void 0);
|
package/dist-cms/packages/content/content/workspace/views/edit/content-editor-property.element.js
CHANGED
|
@@ -26,7 +26,7 @@ let UmbContentWorkspaceViewEditPropertyElement = class UmbContentWorkspaceViewEd
|
|
|
26
26
|
culture: propertyVariantId.culture,
|
|
27
27
|
segment: propertyVariantId.segment,
|
|
28
28
|
})}].value`;
|
|
29
|
-
this.observe(this._context.propertyWriteGuard.isPermittedForVariantAndProperty(propertyVariantId, this.property), (write) => {
|
|
29
|
+
this.observe(this._context.propertyWriteGuard.isPermittedForVariantAndProperty(propertyVariantId, this.property, this.variantId), (write) => {
|
|
30
30
|
this._writeable = write;
|
|
31
31
|
}, 'observeView');
|
|
32
32
|
}
|
|
@@ -102,15 +102,16 @@ let UmbContentTypeWorkspaceEditorHeaderElement = class UmbContentTypeWorkspaceEd
|
|
|
102
102
|
display: flex;
|
|
103
103
|
flex: 1 1 auto;
|
|
104
104
|
flex-direction: column;
|
|
105
|
-
gap: var(--uui-size-space-1);
|
|
106
105
|
}
|
|
107
106
|
|
|
108
107
|
#name {
|
|
109
108
|
width: 100%;
|
|
109
|
+
z-index: 1;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
#description {
|
|
113
113
|
width: 100%;
|
|
114
|
+
margin-top: 1px;
|
|
114
115
|
--uui-input-height: var(--uui-size-8);
|
|
115
116
|
--uui-input-border-color: transparent;
|
|
116
117
|
}
|
|
@@ -123,6 +124,8 @@ let UmbContentTypeWorkspaceEditorHeaderElement = class UmbContentTypeWorkspaceEd
|
|
|
123
124
|
font-size: var(--uui-size-8);
|
|
124
125
|
height: 60px;
|
|
125
126
|
width: 60px;
|
|
127
|
+
--uui-button-border-color: transparent;
|
|
128
|
+
--uui-button-border-color-hover: var(--uui-color-border);
|
|
126
129
|
}
|
|
127
130
|
`,
|
|
128
131
|
]; }
|
|
@@ -6,6 +6,7 @@ export declare class UmbCompositionPickerModalElement extends UmbModalBaseElemen
|
|
|
6
6
|
private _compatibleCompositions?;
|
|
7
7
|
private _selection;
|
|
8
8
|
private _usedForInheritance;
|
|
9
|
+
private _usedForComposition;
|
|
9
10
|
connectedCallback(): void;
|
|
10
11
|
protected _submitModal(): Promise<void>;
|
|
11
12
|
render(): import("lit-html").TemplateResult<1>;
|
|
@@ -15,6 +15,7 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
|
|
|
15
15
|
this._references = [];
|
|
16
16
|
this._selection = [];
|
|
17
17
|
this._usedForInheritance = [];
|
|
18
|
+
this._usedForComposition = [];
|
|
18
19
|
}
|
|
19
20
|
// TODO: Loosen this from begin specific to Document Types, so we can have a general interface for composition repositories. [NL]
|
|
20
21
|
#compositionRepository;
|
|
@@ -33,6 +34,7 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
|
|
|
33
34
|
}
|
|
34
35
|
this._selection = this.data?.selection ?? [];
|
|
35
36
|
this._usedForInheritance = this.data?.usedForInheritance ?? [];
|
|
37
|
+
this._usedForComposition = this.data?.usedForComposition ?? [];
|
|
36
38
|
this.modalContext?.setValue({ selection: this._selection });
|
|
37
39
|
const isNew = this.data.isNew;
|
|
38
40
|
this.#unique = !isNew ? this.data.unique : null;
|
|
@@ -98,7 +100,9 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
|
|
|
98
100
|
render() {
|
|
99
101
|
return html `
|
|
100
102
|
<umb-body-layout headline="${this.localize.term('contentTypeEditor_compositions')}">
|
|
101
|
-
|
|
103
|
+
<uui-box>
|
|
104
|
+
${this._references.length ? this.#renderHasReference() : this.#renderAvailableCompositions()}
|
|
105
|
+
</uui-box>
|
|
102
106
|
<div slot="actions">
|
|
103
107
|
<uui-button label=${this.localize.term('general_close')} @click=${this._rejectModal}></uui-button>
|
|
104
108
|
${!this._references.length
|
|
@@ -166,11 +170,16 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
|
|
|
166
170
|
#renderCompositionsItems(compositionsList) {
|
|
167
171
|
return repeat(compositionsList, (compositions) => compositions.unique, (compositions) => {
|
|
168
172
|
const usedForInheritance = this._usedForInheritance.includes(compositions.unique);
|
|
173
|
+
const usedForComposition = this._usedForComposition.includes(compositions.unique);
|
|
174
|
+
/* The server will return isCompatible as false if the Doc Type is currently being used in a composition.
|
|
175
|
+
Therefore, we need to account for this in the "isDisabled" check to ensure it remains enabled.
|
|
176
|
+
Otherwise, it would become disabled and couldn't be deselected by the user. */
|
|
177
|
+
const isDisabled = usedForInheritance || (compositions.isCompatible === false && !usedForComposition);
|
|
169
178
|
return html `
|
|
170
179
|
<uui-menu-item
|
|
171
180
|
label=${this.localize.string(compositions.name)}
|
|
172
181
|
?selectable=${!usedForInheritance}
|
|
173
|
-
?disabled=${
|
|
182
|
+
?disabled=${isDisabled}
|
|
174
183
|
@selected=${() => this.#onSelectionAdd(compositions.unique)}
|
|
175
184
|
@deselected=${() => this.#onSelectionRemove(compositions.unique)}
|
|
176
185
|
?selected=${this._selection.find((unique) => unique === compositions.unique)}>
|
|
@@ -202,6 +211,10 @@ let UmbCompositionPickerModalElement = class UmbCompositionPickerModalElement ex
|
|
|
202
211
|
align-items: center;
|
|
203
212
|
gap: var(--uui-size-3);
|
|
204
213
|
}
|
|
214
|
+
|
|
215
|
+
.compositions-list {
|
|
216
|
+
margin-block: var(--uui-size-3);
|
|
217
|
+
}
|
|
205
218
|
`,
|
|
206
219
|
]; }
|
|
207
220
|
};
|
|
@@ -217,6 +230,9 @@ __decorate([
|
|
|
217
230
|
__decorate([
|
|
218
231
|
state()
|
|
219
232
|
], UmbCompositionPickerModalElement.prototype, "_usedForInheritance", void 0);
|
|
233
|
+
__decorate([
|
|
234
|
+
state()
|
|
235
|
+
], UmbCompositionPickerModalElement.prototype, "_usedForComposition", void 0);
|
|
220
236
|
UmbCompositionPickerModalElement = __decorate([
|
|
221
237
|
customElement('umb-composition-picker-modal')
|
|
222
238
|
], UmbCompositionPickerModalElement);
|
|
@@ -3,6 +3,7 @@ export interface UmbCompositionPickerModalData {
|
|
|
3
3
|
compositionRepositoryAlias: string;
|
|
4
4
|
selection: Array<string>;
|
|
5
5
|
usedForInheritance: Array<string>;
|
|
6
|
+
usedForComposition: Array<string>;
|
|
6
7
|
unique: string | null;
|
|
7
8
|
isElement: boolean;
|
|
8
9
|
currentPropertyAliases: Array<string>;
|
package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts
CHANGED
|
@@ -83,31 +83,49 @@ export declare class UmbContentTypeStructureManager<T extends UmbContentTypeMode
|
|
|
83
83
|
cloneContainerTo(containerId: string, toContentTypeUnique?: string): Promise<UmbPropertyTypeContainerModel | undefined>;
|
|
84
84
|
ensureContainerNames(contentTypeUnique: string | null, type: UmbPropertyContainerTypes, parentId?: string | null): void;
|
|
85
85
|
createContainer(contentTypeUnique: string | null, parentId?: string | null, type?: UmbPropertyContainerTypes, sortOrder?: number): Promise<UmbPropertyTypeContainerModel>;
|
|
86
|
+
insertContainer(contentTypeUnique: string | null, container: UmbPropertyTypeContainerModel): Promise<{
|
|
87
|
+
id: string;
|
|
88
|
+
parent: {
|
|
89
|
+
id: string;
|
|
90
|
+
} | null;
|
|
91
|
+
name: string;
|
|
92
|
+
type: UmbPropertyContainerTypes;
|
|
93
|
+
sortOrder: number;
|
|
94
|
+
}>;
|
|
86
95
|
makeEmptyContainerName(containerId: string, containerType: UmbPropertyContainerTypes, parentId?: string | null): string;
|
|
87
96
|
makeContainerNameUniqueForOwnerContentType(containerId: string, newName: string, containerType: UmbPropertyContainerTypes, parentId?: string | null): string | null;
|
|
88
97
|
updateContainer(contentTypeUnique: string | null, containerId: string, partialUpdate: Partial<UmbPropertyTypeContainerModel>): Promise<void>;
|
|
89
|
-
removeContainer(contentTypeUnique: string | null, containerId?: string | null
|
|
98
|
+
removeContainer(contentTypeUnique: string | null, containerId?: string | null, args?: {
|
|
99
|
+
preventRemovingProperties?: boolean;
|
|
100
|
+
}): Promise<void>;
|
|
90
101
|
insertProperty(contentTypeUnique: string | null, property: UmbPropertyTypeModel): Promise<void>;
|
|
91
102
|
removeProperty(contentTypeUnique: string | null, propertyUnique: string): Promise<void>;
|
|
92
103
|
updateProperty(contentTypeUnique: string | null, propertyUnique: string, partialUpdate: Partial<UmbPropertyTypeModel>): Promise<void>;
|
|
93
104
|
propertyStructureById(propertyUnique: string): Promise<import("rxjs").Observable<UmbPropertyTypeModel | undefined>>;
|
|
94
105
|
propertyStructureByAlias(propertyAlias: string): Promise<import("rxjs").Observable<UmbPropertyTypeModel | undefined>>;
|
|
95
106
|
getPropertyStructureById(propertyUnique: string): Promise<UmbPropertyTypeModel | undefined>;
|
|
107
|
+
getOwnerPropertyById(propertyUnique: string | null): Promise<UmbPropertyTypeModel | undefined>;
|
|
96
108
|
getPropertyStructureByAlias(propertyAlias: string): Promise<UmbPropertyTypeModel | undefined>;
|
|
97
109
|
hasPropertyStructuresOf(containerId: string | null): import("rxjs").Observable<boolean>;
|
|
98
110
|
rootPropertyStructures(): import("rxjs").Observable<UmbPropertyTypeModel[]>;
|
|
99
111
|
propertyStructuresOf(containerId: string | null): import("rxjs").Observable<UmbPropertyTypeModel[]>;
|
|
100
112
|
rootContainers(containerType: UmbPropertyContainerTypes): import("rxjs").Observable<UmbPropertyTypeContainerModel[]>;
|
|
101
|
-
getRootContainers(containerType: UmbPropertyContainerTypes): UmbPropertyTypeContainerModel[]
|
|
113
|
+
getRootContainers(containerType: UmbPropertyContainerTypes): Promise<UmbPropertyTypeContainerModel[]>;
|
|
102
114
|
hasRootContainers(containerType: UmbPropertyContainerTypes): Promise<import("rxjs").Observable<boolean>>;
|
|
103
115
|
ownerContainersOf(containerType: UmbPropertyContainerTypes, parentId: string | null): import("rxjs").Observable<UmbPropertyTypeContainerModel[]>;
|
|
104
|
-
|
|
116
|
+
getOwnerContainerById(id: string | null): UmbPropertyTypeContainerModel | undefined;
|
|
117
|
+
getOwnerContainers(containerType: UmbPropertyContainerTypes, parentId: string | null): Array<UmbPropertyTypeContainerModel> | undefined;
|
|
105
118
|
isOwnerContainer(containerId: string): UmbPropertyTypeContainerModel[] | undefined;
|
|
106
119
|
containersOfParentId(parentId: string, containerType: UmbPropertyContainerTypes): import("rxjs").Observable<UmbPropertyTypeContainerModel[]>;
|
|
107
120
|
containersByNameAndType(name: string, containerType: UmbPropertyContainerTypes): import("rxjs").Observable<UmbPropertyTypeContainerModel[]>;
|
|
108
121
|
containersByNameAndTypeAndParent(name: string, containerType: UmbPropertyContainerTypes, parentName: string | null, parentType?: UmbPropertyContainerTypes): import("rxjs").Observable<UmbPropertyTypeContainerModel[]>;
|
|
109
122
|
getContentTypeOfContainer(containerId: string): T | undefined;
|
|
110
123
|
contentTypeOfProperty(propertyId: UmbPropertyTypeUnique): import("rxjs").Observable<T | undefined>;
|
|
124
|
+
/**
|
|
125
|
+
* Get all property aliases for the content type including inherited and composed content types.
|
|
126
|
+
* @returns {Promise<Array<string>>} - A promise that will be resolved with the list of all content type property aliases.
|
|
127
|
+
*/
|
|
128
|
+
getContentTypePropertyAliases(): Promise<string[]>;
|
|
111
129
|
destroy(): void;
|
|
112
130
|
}
|
|
113
131
|
export {};
|
package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.js
CHANGED
|
@@ -5,6 +5,7 @@ import { incrementString } from '@umbraco-cms/backoffice/utils';
|
|
|
5
5
|
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
|
6
6
|
import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api';
|
|
7
7
|
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
|
8
|
+
import { firstValueFrom } from '@umbraco-cms/backoffice/external/rxjs';
|
|
8
9
|
const UmbFilterDuplicateStrings = (value, index, array) => array.indexOf(value) === index;
|
|
9
10
|
/**
|
|
10
11
|
* Manages a structure of a Content Type and its properties and containers.
|
|
@@ -39,9 +40,8 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
39
40
|
async getContentTypeProperties() {
|
|
40
41
|
return await this.observe(this.contentTypeProperties).asPromise();
|
|
41
42
|
}
|
|
42
|
-
#containers;
|
|
43
43
|
containerById(id) {
|
|
44
|
-
return this.#
|
|
44
|
+
return createObservablePart(this.#contentTypeContainers, (x) => x.find((y) => y.id === id));
|
|
45
45
|
}
|
|
46
46
|
constructor(host, typeRepository) {
|
|
47
47
|
super(host);
|
|
@@ -87,7 +87,6 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
87
87
|
this.contentTypeAliases = this.#contentTypes.asObservablePart((x) => x.map((y) => y.alias));
|
|
88
88
|
this.variesByCulture = createObservablePart(this.ownerContentType, (x) => x?.variesByCulture);
|
|
89
89
|
this.variesBySegment = createObservablePart(this.ownerContentType, (x) => x?.variesBySegment);
|
|
90
|
-
this.#containers = new UmbArrayState([], (x) => x.id);
|
|
91
90
|
if (typeof typeRepository === 'string') {
|
|
92
91
|
this.#observeRepository(typeRepository);
|
|
93
92
|
}
|
|
@@ -102,17 +101,22 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
102
101
|
this.#repoManager = new UmbRepositoryDetailsManager(this, typeRepository);
|
|
103
102
|
this.observe(this.#repoManager.entries, (entries) => {
|
|
104
103
|
// Prevent updating once that are have edited here.
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
const entriesToBeUpdated = entries.filter((x) => !(this.#editedTypes.getHasOne(x.unique) && this.#contentTypes.getHasOne(x.unique)));
|
|
105
|
+
// Remove entries based on no-longer existing uniques:
|
|
106
|
+
const entriesToBeRemoved = this.#contentTypes
|
|
107
|
+
.getValue()
|
|
108
|
+
.filter((entry) => !entries.some((x) => x.unique === entry.unique))
|
|
109
|
+
.map((x) => x.unique);
|
|
110
|
+
this.#contentTypes.mute();
|
|
111
|
+
this.#contentTypes.remove(entriesToBeRemoved);
|
|
112
|
+
this.#contentTypes.append(entriesToBeUpdated);
|
|
113
|
+
this.#contentTypes.unmute();
|
|
107
114
|
}, null);
|
|
108
115
|
});
|
|
109
116
|
// Observe all Content Types compositions: [NL]
|
|
110
117
|
this.observe(this.contentTypeCompositions, (contentTypeCompositions) => {
|
|
111
118
|
this.#loadContentTypeCompositions(contentTypeCompositions);
|
|
112
119
|
}, null);
|
|
113
|
-
this.observe(this.#contentTypeContainers, (contentTypeContainers) => {
|
|
114
|
-
this.#containers.setValue(contentTypeContainers);
|
|
115
|
-
}, null);
|
|
116
120
|
}
|
|
117
121
|
/**
|
|
118
122
|
* loadType will load the ContentType and all inherited and composed ContentTypes.
|
|
@@ -197,6 +201,8 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
197
201
|
return data;
|
|
198
202
|
}
|
|
199
203
|
async #loadContentTypeCompositions(contentTypeCompositions) {
|
|
204
|
+
// Important to wait a JS-cycle, cause this is called by an observation of a state and this results in setting the value for the state(potentially in the same JS-cycle) then we need to make sure we don't trigger a new update before the old subscription chain is completed. [NL]
|
|
205
|
+
await Promise.resolve();
|
|
200
206
|
const ownerUnique = this.getOwnerContentTypeUnique();
|
|
201
207
|
if (!ownerUnique)
|
|
202
208
|
return;
|
|
@@ -273,7 +279,7 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
273
279
|
toContentTypeUnique = toContentTypeUnique ?? this.#ownerContentTypeUnique;
|
|
274
280
|
this.#editedTypes.appendOne(toContentTypeUnique);
|
|
275
281
|
// Find container.
|
|
276
|
-
const container = this.#
|
|
282
|
+
const container = (await firstValueFrom(this.#contentTypeContainers)).find((x) => x.id === containerId);
|
|
277
283
|
if (!container)
|
|
278
284
|
throw new Error('Container to clone was not found');
|
|
279
285
|
const clonedContainer = {
|
|
@@ -329,34 +335,29 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
329
335
|
type: type,
|
|
330
336
|
sortOrder: sortOrder ?? 0,
|
|
331
337
|
};
|
|
332
|
-
|
|
333
|
-
this.ensureContainerNames(contentTypeUnique, type, parentId);
|
|
334
|
-
const contentTypes = this.#contentTypes.getValue();
|
|
335
|
-
const containers = [...(contentTypes.find((x) => x.unique === contentTypeUnique)?.containers ?? [])];
|
|
336
|
-
containers.push(container);
|
|
337
|
-
this.#contentTypes.updateOne(contentTypeUnique, { containers });
|
|
338
|
-
return container;
|
|
338
|
+
return this.insertContainer(contentTypeUnique, container);
|
|
339
339
|
}
|
|
340
|
-
|
|
340
|
+
async insertContainer(contentTypeUnique, container) {
|
|
341
341
|
await this.#init;
|
|
342
|
-
contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique
|
|
343
|
-
|
|
342
|
+
contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique;
|
|
343
|
+
const newContainer = { ...container };
|
|
344
|
+
const type = newContainer.type;
|
|
345
|
+
const parentId = newContainer.parent?.id ?? null;
|
|
344
346
|
// If we have a parent, we need to ensure it exists, and then update the parent property with the new container id.
|
|
345
|
-
if (
|
|
346
|
-
const parentContainer = await this.ensureContainerOf(
|
|
347
|
+
if (newContainer.parent) {
|
|
348
|
+
const parentContainer = await this.ensureContainerOf(newContainer.parent.id, contentTypeUnique);
|
|
347
349
|
if (!parentContainer) {
|
|
348
350
|
throw new Error('Container for inserting property could not be found or created');
|
|
349
351
|
}
|
|
350
|
-
|
|
352
|
+
newContainer.parent.id = parentContainer.id;
|
|
351
353
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
}*/
|
|
354
|
+
// Ensure
|
|
355
|
+
this.ensureContainerNames(contentTypeUnique, type, parentId);
|
|
356
|
+
const frozenContainers = this.#contentTypes.getValue().find((x) => x.unique === contentTypeUnique)?.containers ?? [];
|
|
357
|
+
const containers = appendToFrozenArray(frozenContainers, newContainer, (x) => x.id === newContainer.id);
|
|
358
|
+
this.#contentTypes.updateOne(contentTypeUnique, { containers });
|
|
359
|
+
return newContainer;
|
|
360
|
+
}
|
|
360
361
|
makeEmptyContainerName(containerId, containerType, parentId = null) {
|
|
361
362
|
return (this.makeContainerNameUniqueForOwnerContentType(containerId, 'Unnamed', containerType, parentId) ?? 'Unnamed');
|
|
362
363
|
}
|
|
@@ -397,7 +398,7 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
397
398
|
// TODO: fix TS partial complaint
|
|
398
399
|
this.#contentTypes.updateOne(contentTypeUnique, { containers });
|
|
399
400
|
}
|
|
400
|
-
async removeContainer(contentTypeUnique, containerId = null) {
|
|
401
|
+
async removeContainer(contentTypeUnique, containerId = null, args) {
|
|
401
402
|
await this.#init;
|
|
402
403
|
contentTypeUnique = contentTypeUnique ?? this.#ownerContentTypeUnique;
|
|
403
404
|
this.#editedTypes.appendOne(contentTypeUnique);
|
|
@@ -410,9 +411,11 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
410
411
|
.filter((x) => x.id === containerId || x.parent?.id === containerId)
|
|
411
412
|
.map((x) => x.id);
|
|
412
413
|
const containers = frozenContainers.filter((x) => x.id !== containerId && x.parent?.id !== containerId);
|
|
413
|
-
const
|
|
414
|
-
|
|
415
|
-
|
|
414
|
+
const updates = { containers };
|
|
415
|
+
if (args?.preventRemovingProperties !== true) {
|
|
416
|
+
updates.properties = contentType.properties.filter((x) => x.container ? !removedContainerIds.some((ids) => ids === x.container?.id) : true);
|
|
417
|
+
}
|
|
418
|
+
this.#contentTypes.updateOne(contentTypeUnique, updates);
|
|
416
419
|
}
|
|
417
420
|
async insertProperty(contentTypeUnique, property) {
|
|
418
421
|
await this.#init;
|
|
@@ -487,6 +490,10 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
487
490
|
}
|
|
488
491
|
return undefined;
|
|
489
492
|
}
|
|
493
|
+
async getOwnerPropertyById(propertyUnique) {
|
|
494
|
+
await this.#init;
|
|
495
|
+
return this.getOwnerContentType()?.properties?.find((property) => property.unique === propertyUnique);
|
|
496
|
+
}
|
|
490
497
|
async getPropertyStructureByAlias(propertyAlias) {
|
|
491
498
|
await this.#init;
|
|
492
499
|
for (const docType of this.#contentTypes.getValue()) {
|
|
@@ -521,21 +528,24 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
521
528
|
});
|
|
522
529
|
}
|
|
523
530
|
rootContainers(containerType) {
|
|
524
|
-
return this.#
|
|
531
|
+
return createObservablePart(this.#contentTypeContainers, (data) => {
|
|
525
532
|
return data.filter((x) => x.parent === null && x.type === containerType);
|
|
526
533
|
});
|
|
527
534
|
}
|
|
528
|
-
getRootContainers(containerType) {
|
|
529
|
-
return this.#
|
|
535
|
+
async getRootContainers(containerType) {
|
|
536
|
+
return (await firstValueFrom(this.#contentTypeContainers)).filter((x) => x.parent === null && x.type === containerType);
|
|
530
537
|
}
|
|
531
538
|
async hasRootContainers(containerType) {
|
|
532
|
-
return this.#
|
|
539
|
+
return createObservablePart(this.#contentTypeContainers, (data) => {
|
|
533
540
|
return data.filter((x) => x.parent === null && x.type === containerType).length > 0;
|
|
534
541
|
});
|
|
535
542
|
}
|
|
536
543
|
ownerContainersOf(containerType, parentId) {
|
|
537
544
|
return this.ownerContentTypeObservablePart((x) => x?.containers?.filter((x) => (parentId ? x.parent?.id === parentId : x.parent === null) && x.type === containerType) ?? []);
|
|
538
545
|
}
|
|
546
|
+
getOwnerContainerById(id) {
|
|
547
|
+
return this.getOwnerContentType()?.containers?.find((x) => x.id === id);
|
|
548
|
+
}
|
|
539
549
|
getOwnerContainers(containerType, parentId) {
|
|
540
550
|
return this.getOwnerContentType()?.containers?.filter((x) => (parentId ? x.parent?.id === parentId : x.parent === null) && x.type === containerType);
|
|
541
551
|
}
|
|
@@ -543,18 +553,18 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
543
553
|
return this.getOwnerContentType()?.containers?.filter((x) => x.id === containerId);
|
|
544
554
|
}
|
|
545
555
|
containersOfParentId(parentId, containerType) {
|
|
546
|
-
return this.#
|
|
556
|
+
return createObservablePart(this.#contentTypeContainers, (data) => {
|
|
547
557
|
return data.filter((x) => x.parent?.id === parentId && x.type === containerType);
|
|
548
558
|
});
|
|
549
559
|
}
|
|
550
560
|
// In future this might need to take parentName(parentId lookup) into account as well? otherwise containers that share same name and type will always be merged, but their position might be different and they should not be merged. [NL]
|
|
551
561
|
containersByNameAndType(name, containerType) {
|
|
552
|
-
return this.#
|
|
562
|
+
return createObservablePart(this.#contentTypeContainers, (data) => {
|
|
553
563
|
return data.filter((x) => x.name === name && x.type === containerType);
|
|
554
564
|
});
|
|
555
565
|
}
|
|
556
566
|
containersByNameAndTypeAndParent(name, containerType, parentName, parentType) {
|
|
557
|
-
return this.#
|
|
567
|
+
return createObservablePart(this.#contentTypeContainers, (data) => {
|
|
558
568
|
return data.filter((x) =>
|
|
559
569
|
// Match name and type:
|
|
560
570
|
x.name === name &&
|
|
@@ -587,16 +597,25 @@ export class UmbContentTypeStructureManager extends UmbControllerBase {
|
|
|
587
597
|
}
|
|
588
598
|
});
|
|
589
599
|
}
|
|
600
|
+
/**
|
|
601
|
+
* Get all property aliases for the content type including inherited and composed content types.
|
|
602
|
+
* @returns {Promise<Array<string>>} - A promise that will be resolved with the list of all content type property aliases.
|
|
603
|
+
*/
|
|
604
|
+
async getContentTypePropertyAliases() {
|
|
605
|
+
return this.#contentTypes
|
|
606
|
+
.getValue()
|
|
607
|
+
.flatMap((x) => x.properties?.map((y) => y.alias) ?? [])
|
|
608
|
+
.filter(UmbFilterDuplicateStrings);
|
|
609
|
+
}
|
|
590
610
|
#clear() {
|
|
591
611
|
this.#contentTypeObservers.forEach((observer) => observer.destroy());
|
|
592
612
|
this.#contentTypeObservers = [];
|
|
593
|
-
this.#containers.setValue([]);
|
|
594
613
|
this.#repoManager?.clear();
|
|
595
614
|
this.#contentTypes.setValue([]);
|
|
615
|
+
this.#ownerContentTypeUnique = undefined;
|
|
596
616
|
}
|
|
597
617
|
destroy() {
|
|
598
618
|
this.#contentTypes.destroy();
|
|
599
|
-
this.#containers.destroy();
|
|
600
619
|
super.destroy();
|
|
601
620
|
}
|
|
602
621
|
}
|
package/dist-cms/packages/content/content-type/workspace/content-type-workspace-context-base.js
CHANGED
|
@@ -30,7 +30,7 @@ export class UmbContentTypeWorkspaceContextBase extends UmbEntityDetailWorkspace
|
|
|
30
30
|
async createScaffold(args) {
|
|
31
31
|
this.resetState();
|
|
32
32
|
this.loading.addState({ unique: LOADING_STATE_UNIQUE, message: `Creating ${this.getEntityType()} scaffold` });
|
|
33
|
-
this.
|
|
33
|
+
this._internal_setCreateUnderParent(args.parent);
|
|
34
34
|
const request = this.structure.createScaffold(args.preset);
|
|
35
35
|
this._getDataPromise = request;
|
|
36
36
|
let { data } = await request;
|