@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
|
@@ -7,16 +7,15 @@ import { UMB_DOCUMENT_PUBLISHING_WORKSPACE_CONTEXT, UmbDocumentPublishingReposit
|
|
|
7
7
|
import { UmbDocumentValidationRepository } from '../repository/validation/index.js';
|
|
8
8
|
import { UMB_DOCUMENT_CONFIGURATION_CONTEXT } from '../index.js';
|
|
9
9
|
import { UMB_DOCUMENT_DETAIL_MODEL_VARIANT_SCAFFOLD, UMB_DOCUMENT_WORKSPACE_ALIAS } from './constants.js';
|
|
10
|
-
import {
|
|
10
|
+
import { UmbVariantId } from '@umbraco-cms/backoffice/variant';
|
|
11
11
|
import { UmbWorkspaceIsNewRedirectController, UmbWorkspaceIsNewRedirectControllerAlias, } from '@umbraco-cms/backoffice/workspace';
|
|
12
12
|
import { UmbDocumentBlueprintDetailRepository } from '@umbraco-cms/backoffice/document-blueprint';
|
|
13
13
|
import { UmbContentDetailWorkspaceContextBase, } from '@umbraco-cms/backoffice/content';
|
|
14
14
|
import { UmbIsTrashedEntityContext } from '@umbraco-cms/backoffice/recycle-bin';
|
|
15
15
|
import { ensurePathEndsWithSlash, UmbDeprecation } from '@umbraco-cms/backoffice/utils';
|
|
16
16
|
import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry';
|
|
17
|
-
import { observeMultiple } from '@umbraco-cms/backoffice/observable-api';
|
|
18
|
-
import { UMB_LANGUAGE_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/language';
|
|
19
17
|
import { UMB_SERVER_CONTEXT } from '@umbraco-cms/backoffice/server';
|
|
18
|
+
import { observeMultiple } from '@umbraco-cms/backoffice/observable-api';
|
|
20
19
|
export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContextBase {
|
|
21
20
|
#isTrashedContext;
|
|
22
21
|
#publishingContext;
|
|
@@ -51,6 +50,7 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
51
50
|
this.consumeContext(UMB_DOCUMENT_CONFIGURATION_CONTEXT, async (context) => {
|
|
52
51
|
const config = await context?.getDocumentConfiguration();
|
|
53
52
|
const allowSegmentCreation = config?.allowNonExistingSegmentsCreation ?? false;
|
|
53
|
+
const allowEditInvariantFromNonDefault = config?.allowEditInvariantFromNonDefault ?? true;
|
|
54
54
|
this._variantOptionsFilter = (variantOption) => {
|
|
55
55
|
const isNotCreatedSegmentVariant = variantOption.segment && !variantOption.variant;
|
|
56
56
|
// Do not allow creating a segment variant
|
|
@@ -59,10 +59,7 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
59
59
|
}
|
|
60
60
|
return true;
|
|
61
61
|
};
|
|
62
|
-
|
|
63
|
-
this.consumeContext(UMB_DOCUMENT_CONFIGURATION_CONTEXT, async (context) => {
|
|
64
|
-
const documentConfiguration = (await context?.getDocumentConfiguration()) ?? undefined;
|
|
65
|
-
if (documentConfiguration?.allowEditInvariantFromNonDefault !== true) {
|
|
62
|
+
if (allowEditInvariantFromNonDefault === false) {
|
|
66
63
|
this.#preventEditInvariantFromNonDefault();
|
|
67
64
|
}
|
|
68
65
|
});
|
|
@@ -140,40 +137,6 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
140
137
|
},
|
|
141
138
|
]);
|
|
142
139
|
}
|
|
143
|
-
#preventEditInvariantFromNonDefault() {
|
|
144
|
-
this.observe(observeMultiple([this.structure.contentTypeProperties, this.languages]), ([properties, languages]) => {
|
|
145
|
-
if (properties.length === 0)
|
|
146
|
-
return;
|
|
147
|
-
if (languages.length === 0)
|
|
148
|
-
return;
|
|
149
|
-
const defaultLanguageUnique = languages.find((x) => x.isDefault)?.unique;
|
|
150
|
-
const ruleUnique = 'UMB_preventEditInvariantFromNonDefault';
|
|
151
|
-
const rule = {
|
|
152
|
-
unique: ruleUnique,
|
|
153
|
-
permitted: false,
|
|
154
|
-
message: 'Shared properties can only be edited in the default language',
|
|
155
|
-
variantId: UmbVariantId.CreateInvariant(),
|
|
156
|
-
};
|
|
157
|
-
/* The permission is false by default, and the onChange callback will not be triggered if the permission hasn't changed.
|
|
158
|
-
Therefore, we add the rule to the readOnlyGuard here. */
|
|
159
|
-
this.propertyWriteGuard.addRule(rule);
|
|
160
|
-
createExtensionApiByAlias(this, UMB_LANGUAGE_USER_PERMISSION_CONDITION_ALIAS, [
|
|
161
|
-
{
|
|
162
|
-
config: {
|
|
163
|
-
allOf: [defaultLanguageUnique],
|
|
164
|
-
},
|
|
165
|
-
onChange: (permitted) => {
|
|
166
|
-
if (permitted) {
|
|
167
|
-
this.propertyWriteGuard.removeRule(ruleUnique);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
this.propertyWriteGuard.addRule(rule);
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
]);
|
|
175
|
-
}, 'observePreventEditInvariantFromNonDefault');
|
|
176
|
-
}
|
|
177
140
|
resetState() {
|
|
178
141
|
super.resetState();
|
|
179
142
|
this.#isTrashedContext.setIsTrashed(false);
|
|
@@ -238,31 +201,27 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
238
201
|
setTemplate(templateUnique) {
|
|
239
202
|
this._data.updateCurrent({ template: { unique: templateUnique } });
|
|
240
203
|
}
|
|
241
|
-
|
|
242
|
-
* Request a submit of the workspace, in the case of Document Workspaces the validation does not need to be valid for this to be submitted.
|
|
243
|
-
* @returns {Promise<void>} a promise which resolves once it has been completed.
|
|
244
|
-
*/
|
|
245
|
-
requestSubmit() {
|
|
204
|
+
async _handleSave() {
|
|
246
205
|
const elementStyle = this.getHostElement().style;
|
|
247
206
|
elementStyle.setProperty('--uui-color-invalid', 'var(--uui-color-warning)');
|
|
248
207
|
elementStyle.setProperty('--uui-color-invalid-emphasis', 'var(--uui-color-warning-emphasis)');
|
|
249
208
|
elementStyle.setProperty('--uui-color-invalid-standalone', 'var(--uui-color-warning-standalone)');
|
|
250
209
|
elementStyle.setProperty('--uui-color-invalid-contrast', 'var(--uui-color-warning-contrast)');
|
|
251
|
-
|
|
210
|
+
await super._handleSave();
|
|
252
211
|
}
|
|
253
212
|
async saveAndPreview() {
|
|
254
|
-
return this.#handleSaveAndPreview();
|
|
213
|
+
return await this.#handleSaveAndPreview();
|
|
255
214
|
}
|
|
256
215
|
async #handleSaveAndPreview() {
|
|
257
216
|
const unique = this.getUnique();
|
|
258
217
|
if (!unique)
|
|
259
218
|
throw new Error('Unique is missing');
|
|
260
|
-
let
|
|
219
|
+
let firstVariantId = UmbVariantId.CreateInvariant();
|
|
261
220
|
// Save document (the active variant) before previewing.
|
|
262
221
|
const { selected } = await this._determineVariantOptions();
|
|
263
222
|
if (selected.length > 0) {
|
|
264
|
-
|
|
265
|
-
const variantIds = [
|
|
223
|
+
firstVariantId = UmbVariantId.FromString(selected[0]);
|
|
224
|
+
const variantIds = [firstVariantId];
|
|
266
225
|
const saveData = await this._data.constructData(variantIds);
|
|
267
226
|
await this.runMandatoryValidationForSaveData(saveData);
|
|
268
227
|
await this.performCreateOrUpdate(variantIds, saveData);
|
|
@@ -274,10 +233,13 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
274
233
|
throw new Error('Server context is missing');
|
|
275
234
|
}
|
|
276
235
|
const backofficePath = serverContext.getBackofficePath();
|
|
277
|
-
const previewUrl = new URL(ensurePathEndsWithSlash(backofficePath) + 'preview',
|
|
236
|
+
const previewUrl = new URL(ensurePathEndsWithSlash(backofficePath) + 'preview', window.location.origin);
|
|
278
237
|
previewUrl.searchParams.set('id', unique);
|
|
279
|
-
if (culture
|
|
280
|
-
previewUrl.searchParams.set('culture', culture);
|
|
238
|
+
if (firstVariantId.culture) {
|
|
239
|
+
previewUrl.searchParams.set('culture', firstVariantId.culture);
|
|
240
|
+
}
|
|
241
|
+
if (firstVariantId.segment) {
|
|
242
|
+
previewUrl.searchParams.set('segment', firstVariantId.segment);
|
|
281
243
|
}
|
|
282
244
|
const previewWindow = window.open(previewUrl.toString(), `umbpreview-${unique}`);
|
|
283
245
|
previewWindow?.focus();
|
|
@@ -290,7 +252,7 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
290
252
|
}).warn();
|
|
291
253
|
if (!this.#publishingContext)
|
|
292
254
|
throw new Error('Publishing context is missing');
|
|
293
|
-
this.#publishingContext.publish();
|
|
255
|
+
await this.#publishingContext.publish();
|
|
294
256
|
}
|
|
295
257
|
/**
|
|
296
258
|
* Save the document and publish it.
|
|
@@ -304,7 +266,7 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
304
266
|
}).warn();
|
|
305
267
|
if (!this.#publishingContext)
|
|
306
268
|
throw new Error('Publishing context is missing');
|
|
307
|
-
this.#publishingContext.saveAndPublish();
|
|
269
|
+
await this.#publishingContext.saveAndPublish();
|
|
308
270
|
}
|
|
309
271
|
/**
|
|
310
272
|
* Schedule the document to be published at a later date.
|
|
@@ -318,7 +280,7 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
318
280
|
}).warn();
|
|
319
281
|
if (!this.#publishingContext)
|
|
320
282
|
throw new Error('Publishing context is missing');
|
|
321
|
-
this.#publishingContext.schedule();
|
|
283
|
+
await this.#publishingContext.schedule();
|
|
322
284
|
}
|
|
323
285
|
/**
|
|
324
286
|
* Unpublish the document.
|
|
@@ -332,7 +294,7 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
332
294
|
}).warn();
|
|
333
295
|
if (!this.#publishingContext)
|
|
334
296
|
throw new Error('Publishing context is missing');
|
|
335
|
-
this.#publishingContext.unpublish();
|
|
297
|
+
await this.#publishingContext.unpublish();
|
|
336
298
|
}
|
|
337
299
|
/**
|
|
338
300
|
* Publish the document and all its descendants.
|
|
@@ -346,7 +308,7 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
346
308
|
}).warn();
|
|
347
309
|
if (!this.#publishingContext)
|
|
348
310
|
throw new Error('Publishing context is missing');
|
|
349
|
-
this.#publishingContext.publishWithDescendants();
|
|
311
|
+
await this.#publishingContext.publishWithDescendants();
|
|
350
312
|
}
|
|
351
313
|
createPropertyDatasetContext(host, variantId) {
|
|
352
314
|
return new UmbDocumentPropertyDatasetContext(host, this, variantId);
|
|
@@ -361,5 +323,29 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
|
|
|
361
323
|
message,
|
|
362
324
|
});
|
|
363
325
|
}
|
|
326
|
+
#preventEditInvariantFromNonDefault() {
|
|
327
|
+
this.observe(observeMultiple([this.structure.contentTypeProperties, this.variantOptions]), ([properties, variantOptions]) => {
|
|
328
|
+
if (properties.length === 0)
|
|
329
|
+
return;
|
|
330
|
+
if (variantOptions.length === 0)
|
|
331
|
+
return;
|
|
332
|
+
variantOptions.forEach((variantOption) => {
|
|
333
|
+
// Do not add a rule for the default language. It is always permitted to edit.
|
|
334
|
+
if (variantOption.language.isDefault)
|
|
335
|
+
return;
|
|
336
|
+
const datasetVariantId = UmbVariantId.CreateFromPartial(variantOption);
|
|
337
|
+
const invariantVariantId = UmbVariantId.CreateInvariant();
|
|
338
|
+
const unique = `UMB_PREVENT_EDIT_INVARIANT_FROM_NON_DEFAULT_DATASET=${datasetVariantId.toString()}_PROPERTY_${invariantVariantId.toString()}`;
|
|
339
|
+
const rule = {
|
|
340
|
+
unique,
|
|
341
|
+
message: 'Shared properties can only be edited in the default language',
|
|
342
|
+
variantId: invariantVariantId,
|
|
343
|
+
datasetVariantId,
|
|
344
|
+
permitted: false,
|
|
345
|
+
};
|
|
346
|
+
this.propertyWriteGuard.addRule(rule);
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
}
|
|
364
350
|
}
|
|
365
351
|
export default UmbDocumentWorkspaceContext;
|
|
@@ -100,7 +100,8 @@ let UmbAppLanguageSelectElement = class UmbAppLanguageSelectElement extends UmbL
|
|
|
100
100
|
id="dropdown-popover"
|
|
101
101
|
data-mark="app-language-menu"
|
|
102
102
|
@beforetoggle=${this.#onPopoverToggle}>
|
|
103
|
-
|
|
103
|
+
<umb-popover-layout>
|
|
104
|
+
<uui-scroll-container style="max-height:calc(100vh - (var(--umb-header-layout-height) + 60px));">
|
|
104
105
|
${repeat(this._languages, (language) => language.unique, (language) => html `
|
|
105
106
|
<uui-menu-item
|
|
106
107
|
label=${ifDefined(language.name)}
|
|
@@ -110,7 +111,9 @@ let UmbAppLanguageSelectElement = class UmbAppLanguageSelectElement extends UmbL
|
|
|
110
111
|
${this.#isLanguageReadOnly(language.unique) ? this.#renderReadOnlyTag(language.unique) : nothing}
|
|
111
112
|
</uui-menu-item>
|
|
112
113
|
`)}
|
|
113
|
-
|
|
114
|
+
</uui-scroll-container>
|
|
115
|
+
</umb-popover-layout>
|
|
116
|
+
|
|
114
117
|
</uui-popover-container>`;
|
|
115
118
|
}
|
|
116
119
|
#isLanguageReadOnly(culture) {
|
|
@@ -154,6 +157,8 @@ let UmbAppLanguageSelectElement = class UmbAppLanguageSelectElement extends UmbL
|
|
|
154
157
|
|
|
155
158
|
uui-menu-item {
|
|
156
159
|
color: var(--uui-color-text);
|
|
160
|
+
|
|
161
|
+
width: auto;
|
|
157
162
|
}
|
|
158
163
|
`,
|
|
159
164
|
]; }
|
|
@@ -5,6 +5,7 @@ import { UmbContextBase } from '@umbraco-cms/backoffice/class-api';
|
|
|
5
5
|
import { UmbReadOnlyStateManager } from '@umbraco-cms/backoffice/utils';
|
|
6
6
|
import { UMB_CURRENT_USER_CONTEXT } from '@umbraco-cms/backoffice/current-user';
|
|
7
7
|
import { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth';
|
|
8
|
+
import { UmbVariantContext } from '@umbraco-cms/backoffice/variant';
|
|
8
9
|
// TODO: Make a store for the App Languages.
|
|
9
10
|
// TODO: Implement default language end-point, in progress at backend team, so we can avoid getting all languages.
|
|
10
11
|
export class UmbAppLanguageContext extends UmbContextBase {
|
|
@@ -24,6 +25,7 @@ export class UmbAppLanguageContext extends UmbContextBase {
|
|
|
24
25
|
#currentUserHasAccessToAllLanguages;
|
|
25
26
|
#readOnlyStateIdentifier;
|
|
26
27
|
#localStorageKey;
|
|
28
|
+
#variantContext;
|
|
27
29
|
constructor(host) {
|
|
28
30
|
super(host, UMB_APP_LANGUAGE_CONTEXT);
|
|
29
31
|
this.#languagesPromise = new Promise((resolve) => {
|
|
@@ -45,6 +47,7 @@ export class UmbAppLanguageContext extends UmbContextBase {
|
|
|
45
47
|
this.#currentUserHasAccessToAllLanguages = false;
|
|
46
48
|
this.#readOnlyStateIdentifier = 'UMB_LANGUAGE_PERMISSION_';
|
|
47
49
|
this.#localStorageKey = 'umb:appLanguage';
|
|
50
|
+
this.#variantContext = new UmbVariantContext(this);
|
|
48
51
|
// TODO: We need to ensure this request is called every time the user logs in, but this should be done somewhere across the app and not here [JOV]
|
|
49
52
|
this.consumeContext(UMB_AUTH_CONTEXT, (authContext) => {
|
|
50
53
|
this.observe(authContext?.isAuthorized, (isAuthorized) => {
|
|
@@ -80,6 +83,9 @@ export class UmbAppLanguageContext extends UmbContextBase {
|
|
|
80
83
|
}
|
|
81
84
|
// set the new language
|
|
82
85
|
this.#appLanguage.update(language);
|
|
86
|
+
// Update the variant context with the new language
|
|
87
|
+
this.#variantContext.setCulture(language.unique);
|
|
88
|
+
this.#variantContext.setAppCulture(language.unique);
|
|
83
89
|
// store the new language in local storage
|
|
84
90
|
localStorage.setItem(this.#localStorageKey, language?.unique);
|
|
85
91
|
// set the new read-only state
|
|
@@ -98,22 +104,18 @@ export class UmbAppLanguageContext extends UmbContextBase {
|
|
|
98
104
|
}
|
|
99
105
|
}
|
|
100
106
|
#initAppLanguage() {
|
|
101
|
-
|
|
102
|
-
const uniqueFromLocalStorage = localStorage.getItem(this.#localStorageKey);
|
|
103
|
-
if (uniqueFromLocalStorage) {
|
|
104
|
-
const language = this.#findLanguage(uniqueFromLocalStorage);
|
|
105
|
-
if (language) {
|
|
106
|
-
this.setLanguage(language.unique);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
const defaultLanguage = this.#languages.getValue().find((x) => x.isDefault);
|
|
107
|
+
const defaultLanguageUnique = this.#languages.getValue().find((x) => x.isDefault)?.unique;
|
|
111
108
|
// TODO: do we always have a default language?
|
|
112
109
|
// do we always get the default language on the first request, or could it be on page 2?
|
|
113
110
|
// in that case do we then need an endpoint to get the default language?
|
|
114
|
-
if (!
|
|
111
|
+
if (!defaultLanguageUnique)
|
|
115
112
|
return;
|
|
116
|
-
this.
|
|
113
|
+
this.#variantContext.setFallbackCulture(defaultLanguageUnique);
|
|
114
|
+
// get the selected language from local storage
|
|
115
|
+
const uniqueFromLocalStorage = localStorage.getItem(this.#localStorageKey);
|
|
116
|
+
const languageFromLocalStorage = this.#findLanguage(uniqueFromLocalStorage || '');
|
|
117
|
+
const languageUniqueToSet = languageFromLocalStorage ? languageFromLocalStorage.unique : defaultLanguageUnique;
|
|
118
|
+
this.setLanguage(languageUniqueToSet);
|
|
117
119
|
}
|
|
118
120
|
#findLanguage(unique) {
|
|
119
121
|
return this.#languages.getValue().find((x) => x.unique === unique);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UmbContextBase } from '@umbraco-cms/backoffice/class-api';
|
|
2
2
|
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
|
3
|
-
import type
|
|
3
|
+
import { type UmbStructureItemModel } from '@umbraco-cms/backoffice/menu';
|
|
4
4
|
export declare class UmbLanguageNavigationStructureWorkspaceContext extends UmbContextBase {
|
|
5
5
|
#private;
|
|
6
6
|
readonly structure: import("rxjs").Observable<UmbStructureItemModel[]>;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { UmbContextBase } from '@umbraco-cms/backoffice/class-api';
|
|
2
2
|
import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace';
|
|
3
3
|
import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api';
|
|
4
|
+
import { UMB_MENU_STRUCTURE_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/menu';
|
|
4
5
|
export class UmbLanguageNavigationStructureWorkspaceContext extends UmbContextBase {
|
|
5
6
|
// TODO: figure out the correct type where we have "data" available
|
|
6
7
|
#workspaceContext;
|
|
7
8
|
#structure;
|
|
8
9
|
constructor(host) {
|
|
9
|
-
|
|
10
|
-
super(host, 'UmbMenuStructureWorkspaceContext');
|
|
10
|
+
super(host, UMB_MENU_STRUCTURE_WORKSPACE_CONTEXT);
|
|
11
11
|
this.#structure = new UmbArrayState([], (x) => x.unique);
|
|
12
12
|
this.structure = this.#structure.asObservable();
|
|
13
|
+
// 'UmbMenuStructureWorkspaceContext' is Obsolete, will be removed in v.18
|
|
14
|
+
this.provideContext('UmbMenuStructureWorkspaceContext', this);
|
|
13
15
|
this.consumeContext(UMB_WORKSPACE_CONTEXT, (instance) => {
|
|
14
16
|
this.#workspaceContext = instance;
|
|
15
17
|
this.#requestStructure();
|
|
@@ -14,4 +14,8 @@ export declare class UmbLanguageItemServerDataSource extends UmbItemServerDataSo
|
|
|
14
14
|
* @memberof UmbLanguageItemServerDataSource
|
|
15
15
|
*/
|
|
16
16
|
constructor(host: UmbControllerHost);
|
|
17
|
+
getItems(uniques: Array<string>): Promise<{
|
|
18
|
+
data: UmbLanguageItemModel[] | undefined;
|
|
19
|
+
error: Error | import("@umbraco-cms/backoffice/resources").UmbError | import("@umbraco-cms/backoffice/resources").UmbApiError | import("@umbraco-cms/backoffice/resources").UmbCancelError | undefined;
|
|
20
|
+
}>;
|
|
17
21
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { UMB_LANGUAGE_ENTITY_TYPE } from '../../entity.js';
|
|
2
2
|
import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository';
|
|
3
3
|
import { LanguageService } from '@umbraco-cms/backoffice/external/backend-api';
|
|
4
|
+
import { UmbItemDataApiGetRequestController } from '@umbraco-cms/backoffice/entity-item';
|
|
4
5
|
/**
|
|
5
6
|
* A server data source for Language items
|
|
6
7
|
* @class UmbLanguageItemServerDataSource
|
|
@@ -14,13 +15,21 @@ export class UmbLanguageItemServerDataSource extends UmbItemServerDataSourceBase
|
|
|
14
15
|
*/
|
|
15
16
|
constructor(host) {
|
|
16
17
|
super(host, {
|
|
17
|
-
getItems,
|
|
18
18
|
mapper,
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
+
async getItems(uniques) {
|
|
22
|
+
if (!uniques)
|
|
23
|
+
throw new Error('Uniques are missing');
|
|
24
|
+
const itemRequestManager = new UmbItemDataApiGetRequestController(this, {
|
|
25
|
+
// eslint-disable-next-line local-rules/no-direct-api-import
|
|
26
|
+
api: (args) => LanguageService.getItemLanguage({ query: { isoCode: args.uniques } }),
|
|
27
|
+
uniques,
|
|
28
|
+
});
|
|
29
|
+
const { data, error } = await itemRequestManager.request();
|
|
30
|
+
return { data: this._getMappedItems(data), error };
|
|
31
|
+
}
|
|
21
32
|
}
|
|
22
|
-
/* eslint-disable local-rules/no-direct-api-import */
|
|
23
|
-
const getItems = (uniques) => LanguageService.getItemLanguage({ query: { isoCode: uniques } });
|
|
24
33
|
const mapper = (item) => {
|
|
25
34
|
return {
|
|
26
35
|
unique: item.isoCode,
|
package/dist-cms/packages/markdown-editor/components/input-markdown-editor/input-markdown.element.js
CHANGED
|
@@ -60,6 +60,9 @@ let UmbInputMarkdownElement = class UmbInputMarkdownElement extends UmbFormContr
|
|
|
60
60
|
this.observe(umbExtensionsRegistry.byType('monacoMarkdownEditorAction'), (manifests) => {
|
|
61
61
|
manifests.forEach(async (manifest) => {
|
|
62
62
|
const api = await createExtensionApi(this, manifest, [this]);
|
|
63
|
+
if (api) {
|
|
64
|
+
api.manifest = manifest;
|
|
65
|
+
}
|
|
63
66
|
const action = {
|
|
64
67
|
id: manifest.alias ?? api.getUnique(),
|
|
65
68
|
label: this.localize.string(manifest.meta?.label ?? api.getLabel()),
|
|
@@ -18,6 +18,7 @@ let UmbMediaCollectionElement = class UmbMediaCollectionElement extends UmbColle
|
|
|
18
18
|
this._progress = -1;
|
|
19
19
|
this._unique = null;
|
|
20
20
|
this.consumeContext(UMB_MEDIA_COLLECTION_CONTEXT, (context) => {
|
|
21
|
+
// TODO: stop consuming the context both in the default element and here. Instead make the default able to inform when the context is consumed. Or come up with a better system for the controllers to talk together. [NL]
|
|
21
22
|
this.#collectionContext = context;
|
|
22
23
|
});
|
|
23
24
|
this.consumeContext(UMB_MEDIA_WORKSPACE_CONTEXT, (instance) => {
|
|
@@ -2,6 +2,7 @@ import { UMB_MEDIA_ITEM_REPOSITORY_ALIAS } from '../../constants.js';
|
|
|
2
2
|
import { UMB_MEDIA_PICKER_MODAL } from '../../modals/index.js';
|
|
3
3
|
import { UMB_MEDIA_SEARCH_PROVIDER_ALIAS } from '../../search/constants.js';
|
|
4
4
|
import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
|
|
5
|
+
import { UMB_VARIANT_CONTEXT } from '@umbraco-cms/backoffice/variant';
|
|
5
6
|
export class UmbMediaPickerInputContext extends UmbPickerInputContext {
|
|
6
7
|
constructor(host) {
|
|
7
8
|
super(host, UMB_MEDIA_ITEM_REPOSITORY_ALIAS, UMB_MEDIA_PICKER_MODAL);
|
|
@@ -19,10 +20,13 @@ export class UmbMediaPickerInputContext extends UmbPickerInputContext {
|
|
|
19
20
|
...pickerData?.search,
|
|
20
21
|
};
|
|
21
22
|
}
|
|
23
|
+
const variantContext = await this.getContext(UMB_VARIANT_CONTEXT);
|
|
24
|
+
const culture = await variantContext?.getDisplayCulture();
|
|
22
25
|
// pass allowedContentTypes to the search request args
|
|
23
26
|
combinedPickerData.search.queryParams = {
|
|
24
27
|
allowedContentTypes: args?.allowedContentTypes,
|
|
25
28
|
includeTrashed: args?.includeTrashed,
|
|
29
|
+
culture,
|
|
26
30
|
...pickerData?.search?.queryParams,
|
|
27
31
|
};
|
|
28
32
|
await super.openPicker(combinedPickerData);
|
|
@@ -3,6 +3,7 @@ export * from './entity-actions/constants.js';
|
|
|
3
3
|
export * from './entity-bulk-actions/constants.js';
|
|
4
4
|
export * from './menu/constants.js';
|
|
5
5
|
export * from './modals/constants.js';
|
|
6
|
+
export * from './paths.js';
|
|
6
7
|
export * from './recycle-bin/constants.js';
|
|
7
8
|
export * from './reference/constants.js';
|
|
8
9
|
export * from './repository/constants.js';
|
|
@@ -10,6 +11,5 @@ export * from './search/constants.js';
|
|
|
10
11
|
export * from './tree/constants.js';
|
|
11
12
|
export * from './url/constants.js';
|
|
12
13
|
export * from './workspace/constants.js';
|
|
13
|
-
export * from './paths.js';
|
|
14
14
|
export { UMB_MEDIA_VARIANT_CONTEXT } from './property-dataset-context/media-property-dataset-context.token.js';
|
|
15
15
|
export { UMB_MEDIA_ENTITY_TYPE, UMB_MEDIA_ROOT_ENTITY_TYPE, UMB_MEDIA_PLACEHOLDER_ENTITY_TYPE, UMB_MEDIA_PROPERTY_VALUE_ENTITY_TYPE, } from './entity.js';
|
|
@@ -3,6 +3,7 @@ export * from './entity-actions/constants.js';
|
|
|
3
3
|
export * from './entity-bulk-actions/constants.js';
|
|
4
4
|
export * from './menu/constants.js';
|
|
5
5
|
export * from './modals/constants.js';
|
|
6
|
+
export * from './paths.js';
|
|
6
7
|
export * from './recycle-bin/constants.js';
|
|
7
8
|
export * from './reference/constants.js';
|
|
8
9
|
export * from './repository/constants.js';
|
|
@@ -10,6 +11,5 @@ export * from './search/constants.js';
|
|
|
10
11
|
export * from './tree/constants.js';
|
|
11
12
|
export * from './url/constants.js';
|
|
12
13
|
export * from './workspace/constants.js';
|
|
13
|
-
export * from './paths.js';
|
|
14
14
|
export { UMB_MEDIA_VARIANT_CONTEXT } from './property-dataset-context/media-property-dataset-context.token.js';
|
|
15
15
|
export { UMB_MEDIA_ENTITY_TYPE, UMB_MEDIA_ROOT_ENTITY_TYPE, UMB_MEDIA_PLACEHOLDER_ENTITY_TYPE, UMB_MEDIA_PROPERTY_VALUE_ENTITY_TYPE, } from './entity.js';
|
|
@@ -13,6 +13,7 @@ import { debounce, UmbPaginationManager } from '@umbraco-cms/backoffice/utils';
|
|
|
13
13
|
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
|
|
14
14
|
import { UMB_CONTENT_PROPERTY_CONTEXT } from '@umbraco-cms/backoffice/content';
|
|
15
15
|
import { isUmbracoFolder } from '@umbraco-cms/backoffice/media-type';
|
|
16
|
+
import { UMB_VARIANT_CONTEXT } from '@umbraco-cms/backoffice/variant';
|
|
16
17
|
import '@umbraco-cms/backoffice/imaging';
|
|
17
18
|
const root = { name: 'Media', unique: null, entityType: UMB_MEDIA_ROOT_ENTITY_TYPE };
|
|
18
19
|
// TODO: investigate how we can reuse the picker-search-field element, picker context etc.
|
|
@@ -22,6 +23,7 @@ let UmbMediaPickerModalElement = class UmbMediaPickerModalElement extends UmbMod
|
|
|
22
23
|
#mediaSearchProvider;
|
|
23
24
|
#dataType;
|
|
24
25
|
#pagingMap;
|
|
26
|
+
#contextCulture;
|
|
25
27
|
constructor() {
|
|
26
28
|
super();
|
|
27
29
|
this.#mediaTreeRepository = new UmbMediaTreeRepository(this);
|
|
@@ -45,6 +47,11 @@ let UmbMediaPickerModalElement = class UmbMediaPickerModalElement extends UmbMod
|
|
|
45
47
|
this.#dataType = dataType;
|
|
46
48
|
});
|
|
47
49
|
});
|
|
50
|
+
this.consumeContext(UMB_VARIANT_CONTEXT, (context) => {
|
|
51
|
+
this.observe(context?.culture, (culture) => {
|
|
52
|
+
this.#contextCulture = culture;
|
|
53
|
+
});
|
|
54
|
+
});
|
|
48
55
|
}
|
|
49
56
|
async connectedCallback() {
|
|
50
57
|
super.connectedCallback();
|
|
@@ -140,6 +147,7 @@ let UmbMediaPickerModalElement = class UmbMediaPickerModalElement extends UmbMod
|
|
|
140
147
|
const { data } = await this.#mediaSearchProvider.search({
|
|
141
148
|
query,
|
|
142
149
|
searchFrom: this._searchFrom,
|
|
150
|
+
culture: this.#contextCulture,
|
|
143
151
|
...this.data?.search?.queryParams,
|
|
144
152
|
});
|
|
145
153
|
if (!data) {
|
|
@@ -8,7 +8,6 @@ import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository'
|
|
|
8
8
|
* @implements {MediaTreeDataSource}
|
|
9
9
|
*/
|
|
10
10
|
export declare class UmbMediaItemServerDataSource extends UmbItemServerDataSourceBase<MediaItemResponseModel, UmbMediaItemModel> {
|
|
11
|
-
#private;
|
|
12
11
|
/**
|
|
13
12
|
* Creates an instance of UmbMediaItemServerDataSource.
|
|
14
13
|
* @param {UmbControllerHost} host - The controller host for this controller to be appended to
|
|
@@ -31,4 +30,8 @@ export declare class UmbMediaItemServerDataSource extends UmbItemServerDataSourc
|
|
|
31
30
|
data: UmbMediaItemModel[];
|
|
32
31
|
error: Error | import("@umbraco-cms/backoffice/resources").UmbError | import("@umbraco-cms/backoffice/resources").UmbApiError | import("@umbraco-cms/backoffice/resources").UmbCancelError | undefined;
|
|
33
32
|
}>;
|
|
33
|
+
getItems(uniques: Array<string>): Promise<{
|
|
34
|
+
data: UmbMediaItemModel[] | undefined;
|
|
35
|
+
error: Error | import("@umbraco-cms/backoffice/resources").UmbError | import("@umbraco-cms/backoffice/resources").UmbApiError | import("@umbraco-cms/backoffice/resources").UmbCancelError | undefined;
|
|
36
|
+
}>;
|
|
34
37
|
}
|
|
@@ -2,13 +2,13 @@ import { UMB_MEDIA_ENTITY_TYPE } from '../../entity.js';
|
|
|
2
2
|
import { MediaService } from '@umbraco-cms/backoffice/external/backend-api';
|
|
3
3
|
import { UmbItemServerDataSourceBase } from '@umbraco-cms/backoffice/repository';
|
|
4
4
|
import { tryExecute } from '@umbraco-cms/backoffice/resources';
|
|
5
|
+
import { UmbItemDataApiGetRequestController } from '@umbraco-cms/backoffice/entity-item';
|
|
5
6
|
/**
|
|
6
7
|
* A data source for Media items that fetches data from the server
|
|
7
8
|
* @class UmbMediaItemServerDataSource
|
|
8
9
|
* @implements {MediaTreeDataSource}
|
|
9
10
|
*/
|
|
10
11
|
export class UmbMediaItemServerDataSource extends UmbItemServerDataSourceBase {
|
|
11
|
-
#host;
|
|
12
12
|
/**
|
|
13
13
|
* Creates an instance of UmbMediaItemServerDataSource.
|
|
14
14
|
* @param {UmbControllerHost} host - The controller host for this controller to be appended to
|
|
@@ -16,10 +16,8 @@ export class UmbMediaItemServerDataSource extends UmbItemServerDataSourceBase {
|
|
|
16
16
|
*/
|
|
17
17
|
constructor(host) {
|
|
18
18
|
super(host, {
|
|
19
|
-
getItems,
|
|
20
19
|
mapper,
|
|
21
20
|
});
|
|
22
|
-
this.#host = host;
|
|
23
21
|
}
|
|
24
22
|
/**
|
|
25
23
|
* @deprecated - The search method will be removed in v17. Use the
|
|
@@ -30,13 +28,22 @@ export class UmbMediaItemServerDataSource extends UmbItemServerDataSourceBase {
|
|
|
30
28
|
* ```
|
|
31
29
|
*/
|
|
32
30
|
async search({ query, skip, take }) {
|
|
33
|
-
const { data, error } = await tryExecute(this
|
|
31
|
+
const { data, error } = await tryExecute(this, MediaService.getItemMediaSearch({ query: { query, skip, take } }));
|
|
34
32
|
const mapped = data?.items.map((item) => mapper(item));
|
|
35
33
|
return { data: mapped, error };
|
|
36
34
|
}
|
|
35
|
+
async getItems(uniques) {
|
|
36
|
+
if (!uniques)
|
|
37
|
+
throw new Error('Uniques are missing');
|
|
38
|
+
const itemRequestManager = new UmbItemDataApiGetRequestController(this, {
|
|
39
|
+
// eslint-disable-next-line local-rules/no-direct-api-import
|
|
40
|
+
api: (args) => MediaService.getItemMedia({ query: { id: args.uniques } }),
|
|
41
|
+
uniques,
|
|
42
|
+
});
|
|
43
|
+
const { data, error } = await itemRequestManager.request();
|
|
44
|
+
return { data: this._getMappedItems(data), error };
|
|
45
|
+
}
|
|
37
46
|
}
|
|
38
|
-
/* eslint-disable local-rules/no-direct-api-import */
|
|
39
|
-
const getItems = (uniques) => MediaService.getItemMedia({ query: { id: uniques } });
|
|
40
47
|
const mapper = (item) => {
|
|
41
48
|
return {
|
|
42
49
|
entityType: UMB_MEDIA_ENTITY_TYPE,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UMB_MEDIA_GLOBAL_SEARCH_ALIAS = "Umb.GlobalSearch.Media";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const UMB_MEDIA_GLOBAL_SEARCH_ALIAS = 'Umb.GlobalSearch.Media';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const manifests: Array<UmbExtensionManifest>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { UMB_MEDIA_SECTION_ALIAS } from '../../../media-section/constants.js';
|
|
2
|
+
import { UMB_MEDIA_SEARCH_PROVIDER_ALIAS } from '../constants.js';
|
|
3
|
+
import { UMB_MEDIA_GLOBAL_SEARCH_ALIAS } from './constants.js';
|
|
4
|
+
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
|
|
5
|
+
export const manifests = [
|
|
6
|
+
{
|
|
7
|
+
name: 'Media Global Search',
|
|
8
|
+
alias: UMB_MEDIA_GLOBAL_SEARCH_ALIAS,
|
|
9
|
+
type: 'globalSearch',
|
|
10
|
+
weight: 700,
|
|
11
|
+
api: () => import('./media-global-search.js'),
|
|
12
|
+
meta: {
|
|
13
|
+
label: 'Media',
|
|
14
|
+
searchProviderAlias: UMB_MEDIA_SEARCH_PROVIDER_ALIAS,
|
|
15
|
+
},
|
|
16
|
+
conditions: [
|
|
17
|
+
{
|
|
18
|
+
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
|
|
19
|
+
match: UMB_MEDIA_SECTION_ALIAS,
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { UmbMediaSearchProvider } from '../media.search-provider.js';
|
|
2
|
+
import { UmbGlobalSearchBase, type UmbGlobalSearchApi, type UmbSearchRequestArgs } from '@umbraco-cms/backoffice/search';
|
|
3
|
+
export declare class UmbMediaGlobalSearch extends UmbGlobalSearchBase<UmbMediaSearchProvider> implements UmbGlobalSearchApi {
|
|
4
|
+
search(args: UmbSearchRequestArgs): Promise<{
|
|
5
|
+
data: {
|
|
6
|
+
items: import("../types.js").UmbMediaSearchItemModel[];
|
|
7
|
+
total: number;
|
|
8
|
+
};
|
|
9
|
+
error?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
error: Error | import("@umbraco-cms/backoffice/resources").UmbError | import("@umbraco-cms/backoffice/resources").UmbApiError | import("@umbraco-cms/backoffice/resources").UmbCancelError | undefined;
|
|
12
|
+
data?: undefined;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export { UmbMediaGlobalSearch as api };
|