@umbraco-cms/backoffice 16.0.0 → 16.1.0-rc
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/app/app-auth.controller.js +1 -0
- package/dist-cms/apps/backoffice/backoffice.element.d.ts +2 -0
- package/dist-cms/apps/backoffice/backoffice.element.js +12 -10
- package/dist-cms/assets/lang/da.js +21 -0
- package/dist-cms/assets/lang/da.ts +22 -0
- package/dist-cms/assets/lang/de.js +24 -0
- package/dist-cms/assets/lang/de.ts +26 -0
- package/dist-cms/assets/lang/en.js +11 -0
- package/dist-cms/assets/lang/en.ts +12 -0
- package/dist-cms/assets/lang/pt-br.js +2 -256
- package/dist-cms/assets/lang/pt-br.ts +2 -258
- package/dist-cms/assets/lang/pt.js +2605 -1
- package/dist-cms/assets/lang/pt.ts +2822 -1
- package/dist-cms/custom-elements.json +201 -98
- package/dist-cms/external/rxjs/index.d.ts +1 -1
- package/dist-cms/external/rxjs/index.js +3 -3
- package/dist-cms/external/tiptap/extensions/tiptap-html-global-attributes.extension.d.ts +5 -0
- package/dist-cms/external/tiptap/extensions/tiptap-span.extension.d.ts +2 -0
- package/dist-cms/external/tiptap/index.js +19 -19
- package/dist-cms/external/uui/index.js +332 -318
- package/dist-cms/libs/extension-api/controller/server-extension-registrator.controller.js +1 -1
- package/dist-cms/libs/extension-api/types/manifest-base.interface.d.ts +1 -1
- package/dist-cms/packages/block/block/context/block-entry.context.d.ts +3 -0
- package/dist-cms/packages/block/block/context/block-entry.context.js +9 -0
- package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.d.ts +1 -0
- package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +14 -6
- package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.d.ts +1 -0
- package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +16 -5
- package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.d.ts +1 -0
- package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.js +12 -1
- package/dist-cms/packages/block/modals/manifest-viewer/manifest-viewer-modal.element.js +6 -0
- package/dist-cms/packages/content/content/workspace/views/edit/content-editor.element.js +12 -10
- package/dist-cms/packages/content/content-type/modals/composition-picker/composition-picker-modal.element.js +6 -5
- package/dist-cms/packages/content/content-type/repository/structure/content-type-structure-server-data-source-base.d.ts +1 -1
- package/dist-cms/packages/content/content-type/structure/content-type-structure-manager.class.d.ts +1 -1
- package/dist-cms/packages/core/auth/auth-flow.d.ts +2 -2
- package/dist-cms/packages/core/auth/auth-flow.js +7 -9
- package/dist-cms/packages/core/auth/auth.context.d.ts +9 -7
- package/dist-cms/packages/core/auth/auth.context.js +14 -7
- package/dist-cms/packages/core/backend-api/sdk.gen.d.ts +406 -406
- package/dist-cms/packages/core/backend-api/sdk.gen.js +57 -57
- package/dist-cms/packages/core/backend-api/types.gen.d.ts +6 -2
- package/dist-cms/packages/core/collection/action/create/collection-create-action.element.d.ts +1 -2
- package/dist-cms/packages/core/collection/action/create/collection-create-action.element.js +17 -13
- package/dist-cms/packages/core/collection/components/pagination/collection-pagination.element.js +4 -0
- package/dist-cms/packages/core/components/dropdown/dropdown.element.d.ts +2 -3
- package/dist-cms/packages/core/components/dropdown/dropdown.element.js +30 -18
- 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 +33 -23
- package/dist-cms/packages/core/components/input-toggle/input-toggle.element.d.ts +0 -1
- package/dist-cms/packages/core/components/input-toggle/input-toggle.element.js +1 -8
- package/dist-cms/packages/core/components/table/table.element.js +14 -12
- package/dist-cms/packages/core/entity/constants.d.ts +2 -0
- package/dist-cms/packages/core/entity/constants.js +2 -0
- package/dist-cms/packages/core/entity/entity-type/constants.d.ts +1 -0
- package/dist-cms/packages/core/entity/entity-type/constants.js +1 -0
- package/dist-cms/packages/core/entity/entity-type/entity-type.condition.d.ts +9 -0
- package/dist-cms/packages/core/entity/entity-type/entity-type.condition.js +23 -0
- package/dist-cms/packages/core/entity/entity-type/manifests.js +9 -0
- package/dist-cms/packages/core/entity/entity-type/types.d.ts +11 -0
- package/dist-cms/packages/core/entity/entity-type/types.js +1 -0
- package/dist-cms/packages/core/entity/entity-unique/constants.d.ts +1 -0
- package/dist-cms/packages/core/entity/entity-unique/constants.js +1 -0
- package/dist-cms/packages/core/entity/entity-unique/entity-unique.condition.d.ts +9 -0
- package/dist-cms/packages/core/entity/entity-unique/entity-unique.condition.js +23 -0
- package/dist-cms/packages/core/entity/entity-unique/manifests.d.ts +1 -0
- package/dist-cms/packages/core/entity/entity-unique/manifests.js +9 -0
- package/dist-cms/packages/core/entity/entity-unique/types.d.ts +12 -0
- package/dist-cms/packages/core/entity/entity-unique/types.js +1 -0
- package/dist-cms/packages/core/entity/manifests.d.ts +1 -0
- package/dist-cms/packages/core/entity/manifests.js +3 -0
- package/dist-cms/packages/core/entity/types.d.ts +3 -1
- package/dist-cms/packages/core/entity-action/global-components/entity-actions-dropdown/entity-actions-dropdown.element.d.ts +15 -0
- package/dist-cms/packages/core/entity-action/global-components/entity-actions-dropdown/entity-actions-dropdown.element.js +87 -0
- package/dist-cms/packages/core/entity-action/global-components/index.d.ts +1 -0
- package/dist-cms/packages/core/entity-action/global-components/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 +1 -1
- package/dist-cms/packages/core/event/closed.event.d.ts +4 -0
- package/dist-cms/packages/core/event/closed.event.js +7 -0
- package/dist-cms/packages/core/event/index.d.ts +2 -0
- package/dist-cms/packages/core/event/index.js +2 -0
- package/dist-cms/packages/core/event/opened.event.d.ts +4 -0
- package/dist-cms/packages/core/event/opened.event.js +7 -0
- package/dist-cms/packages/core/extension-registry/components/extension-slot/extension-slot.element.d.ts +3 -3
- package/dist-cms/packages/core/extension-registry/components/extension-slot/extension-slot.element.js +9 -9
- package/dist-cms/packages/core/http-client/index.d.ts +1 -0
- package/dist-cms/packages/core/icon-registry/icon-dictionary.json +1 -2
- package/dist-cms/packages/core/icon-registry/icons/icon-next.d.ts +1 -1
- package/dist-cms/packages/core/icon-registry/icons/icon-next.js +1 -1
- package/dist-cms/packages/core/icon-registry/icons.d.ts +2 -2
- package/dist-cms/packages/core/icon-registry/icons.js +3098 -2394
- package/dist-cms/packages/core/manifests.js +2 -0
- package/dist-cms/packages/core/menu/section-sidebar-menu/section-sidebar-menu.element.js +5 -1
- package/dist-cms/packages/core/object-type/object-type.repository.d.ts +1 -1
- package/dist-cms/packages/core/openapi-ts.config.js +3 -1
- package/dist-cms/packages/core/package.json +2 -2
- package/dist-cms/packages/core/property/components/unsupported-property/utils.js +1 -1
- package/dist-cms/packages/core/recycle-bin/recycle-bin-repository-base.d.ts +2 -4
- package/dist-cms/packages/core/recycle-bin/recycle-bin-repository-base.js +2 -13
- package/dist-cms/packages/core/repository/detail/detail-data-source.interface.d.ts +2 -1
- package/dist-cms/packages/core/repository/detail/detail-repository-base.d.ts +6 -5
- package/dist-cms/packages/core/repository/detail/detail-repository-base.js +2 -2
- package/dist-cms/packages/core/repository/detail/read/read-detail-repository.interface.d.ts +1 -1
- package/dist-cms/packages/core/repository/item/item-repository-base.d.ts +3 -3
- package/dist-cms/packages/core/repository/item/item-repository-base.js +5 -8
- package/dist-cms/packages/core/repository/item/item-repository.interface.d.ts +2 -6
- package/dist-cms/packages/core/repository/item/item-server-data-source-base.d.ts +1 -1
- package/dist-cms/packages/core/repository/repository-items.manager.js +2 -0
- package/dist-cms/packages/core/repository/types.d.ts +7 -2
- package/dist-cms/packages/core/resources/api-interceptor.controller.d.ts +7 -0
- package/dist-cms/packages/core/resources/api-interceptor.controller.js +180 -54
- package/dist-cms/packages/core/resources/resource.controller.d.ts +2 -2
- package/dist-cms/packages/core/resources/resource.controller.js +11 -6
- package/dist-cms/packages/core/resources/try-execute/try-execute.controller.js +27 -13
- package/dist-cms/packages/core/resources/types.d.ts +2 -2
- package/dist-cms/packages/core/router/route/forbidden/route-forbidden.element.d.ts +17 -0
- package/dist-cms/packages/core/router/route/forbidden/route-forbidden.element.js +59 -0
- package/dist-cms/packages/core/router/route/index.d.ts +1 -0
- package/dist-cms/packages/core/router/route/index.js +1 -0
- package/dist-cms/packages/core/section/conditions/constants.d.ts +2 -1
- package/dist-cms/packages/core/section/conditions/constants.js +2 -1
- package/dist-cms/packages/core/section/conditions/manifests.js +3 -17
- package/dist-cms/packages/core/section/conditions/section-alias/constants.d.ts +1 -0
- package/dist-cms/packages/core/section/conditions/section-alias/constants.js +1 -0
- package/dist-cms/packages/core/section/conditions/section-alias/manifests.d.ts +1 -0
- package/dist-cms/packages/core/section/conditions/section-alias/manifests.js +10 -0
- package/dist-cms/packages/core/section/conditions/{section-alias.condition.d.ts → section-alias/section-alias.condition.d.ts} +2 -2
- package/dist-cms/packages/core/section/conditions/{section-alias.condition.js → section-alias/section-alias.condition.js} +2 -2
- package/dist-cms/packages/core/section/conditions/section-alias/types.d.ts +20 -0
- package/dist-cms/packages/core/section/conditions/section-alias/types.js +1 -0
- package/dist-cms/packages/core/section/conditions/section-user-permission/constants.d.ts +1 -0
- package/dist-cms/packages/core/section/conditions/section-user-permission/constants.js +1 -0
- package/dist-cms/packages/core/section/conditions/section-user-permission/manifests.d.ts +1 -0
- package/dist-cms/packages/core/section/conditions/section-user-permission/manifests.js +10 -0
- package/dist-cms/packages/core/section/conditions/{section-user-permission.condition.d.ts → section-user-permission/section-user-permission.condition.d.ts} +1 -1
- package/dist-cms/packages/core/section/conditions/section-user-permission/types.d.ts +16 -0
- package/dist-cms/packages/core/section/conditions/section-user-permission/types.js +1 -0
- package/dist-cms/packages/core/section/conditions/types.d.ts +2 -30
- package/dist-cms/packages/core/server-file-system/rename/rename-server-file-repository-base.d.ts +1 -1
- package/dist-cms/packages/core/temporary-file/config/config.repository.d.ts +2 -0
- package/dist-cms/packages/core/temporary-file/config/config.repository.js +2 -0
- package/dist-cms/packages/core/tree/components/index.d.ts +1 -0
- package/dist-cms/packages/core/tree/components/index.js +1 -0
- package/dist-cms/packages/core/tree/components/tree-load-more-button.element.d.ts +10 -0
- package/dist-cms/packages/core/tree/components/tree-load-more-button.element.js +36 -0
- package/dist-cms/packages/core/tree/data/tree-repository-base.d.ts +8 -12
- package/dist-cms/packages/core/tree/data/tree-repository-base.js +10 -16
- package/dist-cms/packages/core/tree/data/tree-repository.interface.d.ts +5 -21
- package/dist-cms/packages/core/tree/data/tree-server-data-source-base.d.ts +3 -3
- package/dist-cms/packages/core/tree/default/default-tree.element.js +1 -1
- package/dist-cms/packages/core/tree/folder/index.d.ts +2 -1
- package/dist-cms/packages/core/tree/folder/index.js +2 -1
- package/dist-cms/packages/core/tree/folder/workspace/folder-workspace-editor.element.d.ts +10 -0
- package/dist-cms/packages/core/tree/folder/workspace/folder-workspace-editor.element.js +31 -0
- package/dist-cms/packages/core/tree/folder/workspace/index.d.ts +2 -0
- package/dist-cms/packages/core/tree/folder/workspace/index.js +2 -0
- package/dist-cms/packages/core/tree/index.d.ts +1 -0
- package/dist-cms/packages/core/tree/index.js +1 -0
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.d.ts +2 -1
- package/dist-cms/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.js +7 -4
- package/dist-cms/packages/core/workspace/components/workspace-action/default/workspace-action-default-kind.element.d.ts +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-action/default/workspace-action-default-kind.element.js +24 -6
- package/dist-cms/packages/core/workspace/components/workspace-action-menu/workspace-action-menu.element.js +6 -1
- 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 +5 -4
- 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 +20 -11
- package/dist-cms/packages/core/workspace/components/workspace-editor/workspace-editor.element.js +6 -4
- package/dist-cms/packages/core/workspace/components/workspace-entity-action-menu/workspace-entity-action-menu.element.d.ts +0 -3
- package/dist-cms/packages/core/workspace/components/workspace-entity-action-menu/workspace-entity-action-menu.element.js +14 -48
- package/dist-cms/packages/core/workspace/components/workspace-header-name-editable/workspace-header-name-editable.element.d.ts +1 -0
- package/dist-cms/packages/core/workspace/components/workspace-header-name-editable/workspace-header-name-editable.element.js +11 -1
- package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +4 -0
- package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view.element.js +7 -0
- package/dist-cms/packages/core/workspace/controllers/workspace-split-view-manager.controller.d.ts +1 -0
- package/dist-cms/packages/core/workspace/controllers/workspace-split-view-manager.controller.js +1 -0
- package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.d.ts +1 -0
- package/dist-cms/packages/core/workspace/entity-detail/entity-detail-workspace-base.js +16 -4
- package/dist-cms/packages/core/workspace/entity-detail/entity-named-detail-workspace-base.d.ts +5 -1
- package/dist-cms/packages/core/workspace/entity-detail/entity-named-detail-workspace-base.js +5 -2
- package/dist-cms/packages/core/workspace/entity-detail/global-components/entity-detail-forbidden.element.d.ts +11 -0
- package/dist-cms/packages/core/workspace/entity-detail/global-components/entity-detail-forbidden.element.js +55 -0
- package/dist-cms/packages/core/workspace/entity-detail/global-components/entity-detail-workspace-editor.element.d.ts +1 -0
- package/dist-cms/packages/core/workspace/entity-detail/global-components/entity-detail-workspace-editor.element.js +20 -3
- package/dist-cms/packages/core/workspace/entity-detail/global-components/index.d.ts +1 -2
- package/dist-cms/packages/core/workspace/entity-detail/global-components/index.js +1 -2
- package/dist-cms/packages/core/workspace/entity-detail/types.d.ts +2 -1
- package/dist-cms/packages/core/workspace/namable/index.d.ts +1 -0
- package/dist-cms/packages/core/workspace/namable/index.js +1 -0
- package/dist-cms/packages/core/workspace/namable/namable-workspace-context.interface.d.ts +2 -0
- package/dist-cms/packages/core/workspace/namable/name-write-guard.manager.d.ts +6 -0
- package/dist-cms/packages/core/workspace/namable/name-write-guard.manager.js +15 -0
- package/dist-cms/packages/data-type/collection/repository/data-type-collection.repository.d.ts +1 -1
- package/dist-cms/packages/data-type/collection/repository/data-type-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/data-type/entity-actions/duplicate/repository/data-type-duplicate.repository.d.ts +1 -1
- package/dist-cms/packages/data-type/entity-actions/move-to/repository/data-type-move.repository.d.ts +1 -1
- package/dist-cms/packages/data-type/repository/detail/data-type-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/data-type/repository/item/data-type-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/data-type/search/data-type-search.repository.d.ts +1 -1
- package/dist-cms/packages/data-type/search/data-type-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/data-type/search/data-type.search-provider.d.ts +1 -1
- package/dist-cms/packages/data-type/tree/folder/repository/data-type-folder.server.data-source.d.ts +3 -3
- package/dist-cms/packages/data-type/tree/folder/workspace/data-type-folder-editor.element.d.ts +1 -3
- package/dist-cms/packages/data-type/tree/folder/workspace/data-type-folder-editor.element.js +2 -7
- package/dist-cms/packages/data-type/tree/tree-item-children/collection/repository/data-type-tree-item-children-collection.repository.d.ts +3 -3
- package/dist-cms/packages/dictionary/collection/repository/dictionary-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/dictionary/dashboard/manifests.js +2 -1
- package/dist-cms/packages/dictionary/entity-action/move-to/repository/dictionary-move.repository.d.ts +1 -1
- package/dist-cms/packages/dictionary/repository/detail/dictionary-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/dictionary/repository/import/dictionary-import.repository.d.ts +2 -2
- package/dist-cms/packages/dictionary/repository/item/dictionary-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/dictionary/search/dictionary-search.repository.d.ts +1 -1
- package/dist-cms/packages/dictionary/search/dictionary-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/dictionary/search/dictionary.search-provider.d.ts +1 -1
- package/dist-cms/packages/documents/document-blueprints/entity-actions/move-to/repository/document-blueprint-move.repository.d.ts +1 -1
- package/dist-cms/packages/documents/document-blueprints/repository/item/document-blueprint-item.repository.d.ts +1 -1
- package/dist-cms/packages/documents/document-blueprints/repository/item/document-blueprint-item.server.data-source.d.ts +2 -2
- package/dist-cms/packages/documents/document-blueprints/tree/folder/repository/document-blueprint-folder.server.data-source.d.ts +3 -3
- package/dist-cms/packages/documents/document-blueprints/tree/folder/workspace/document-blueprint-folder-editor.element.d.ts +1 -3
- package/dist-cms/packages/documents/document-blueprints/tree/folder/workspace/document-blueprint-folder-editor.element.js +2 -7
- package/dist-cms/packages/documents/document-blueprints/workspace/document-blueprint-workspace-editor.element.js +27 -13
- package/dist-cms/packages/documents/document-redirect-management/dashboard-redirect-management.element.js +7 -1
- package/dist-cms/packages/documents/document-redirect-management/manifests.js +2 -1
- package/dist-cms/packages/documents/document-types/entity-actions/duplicate/repository/document-type-duplicate.repository.d.ts +1 -1
- package/dist-cms/packages/documents/document-types/entity-actions/import/repository/document-type-import.repository.d.ts +1 -1
- package/dist-cms/packages/documents/document-types/entity-actions/move-to/repository/document-type-move.repository.d.ts +1 -1
- package/dist-cms/packages/documents/document-types/repository/composition/document-type-composition.repository.d.ts +2 -2
- package/dist-cms/packages/documents/document-types/repository/composition/document-type-composition.server.data-source.d.ts +2 -2
- package/dist-cms/packages/documents/document-types/repository/detail/document-type-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/documents/document-types/repository/detail/index.d.ts +1 -0
- package/dist-cms/packages/documents/document-types/repository/detail/index.js +1 -0
- package/dist-cms/packages/documents/document-types/repository/item/document-type-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/document-types/search/document-type-search.repository.d.ts +1 -1
- package/dist-cms/packages/documents/document-types/search/document-type-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/document-types/search/document-type.search-provider.d.ts +1 -1
- package/dist-cms/packages/documents/document-types/tree/folder/repository/document-type-folder.server.data-source.d.ts +3 -3
- package/dist-cms/packages/documents/document-types/tree/folder/workspace/document-type-folder-editor.element.d.ts +1 -3
- package/dist-cms/packages/documents/document-types/tree/folder/workspace/document-type-folder-editor.element.js +2 -7
- package/dist-cms/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.d.ts +3 -3
- package/dist-cms/packages/documents/documents/audit-log/info-app/document-history-workspace-info-app.element.js +4 -0
- package/dist-cms/packages/documents/documents/audit-log/repository/document-audit-log.repository.d.ts +1 -1
- package/dist-cms/packages/documents/documents/audit-log/repository/document-audit-log.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/documents/collection/repository/document-collection.repository.d.ts +1 -1
- package/dist-cms/packages/documents/documents/collection/repository/document-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/documents/collection/views/table/column-layouts/document-table-column-name.element.js +5 -1
- package/dist-cms/packages/documents/documents/entity-actions/create-blueprint/modal/create-blueprint-modal.element.js +13 -12
- package/dist-cms/packages/documents/documents/entity-actions/create-blueprint/repository/document-create-blueprint.repository.d.ts +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/duplicate/repository/document-duplicate.repository.d.ts +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/move-to/repository/document-move.repository.d.ts +1 -1
- package/dist-cms/packages/documents/documents/entity-actions/notifications/repository/document-notifications.repository.d.ts +2 -2
- package/dist-cms/packages/documents/documents/item/repository/document-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.repository.d.ts +1 -1
- package/dist-cms/packages/documents/documents/publishing/repository/document-publishing.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle-bin.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/documents/repository/detail/document-detail.server.data-source.d.ts +7 -17
- package/dist-cms/packages/documents/documents/repository/detail/document-detail.server.data-source.js +23 -38
- package/dist-cms/packages/documents/documents/search/document-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/documents/tree/tree-item/document-tree-item.element.js +2 -3
- package/dist-cms/packages/documents/documents/url/document-urls-data-resolver.js +5 -7
- package/dist-cms/packages/documents/documents/url/repository/document-url.server.data-source.d.ts +1 -1
- package/dist-cms/packages/documents/documents/workspace/actions/save.action.js +16 -7
- package/dist-cms/packages/documents/documents/workspace/document-workspace-editor.element.js +13 -4
- package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.d.ts +2 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace-split-view.element.js +14 -6
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.d.ts +2 -1
- package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +28 -35
- package/dist-cms/packages/documents/section/manifests.js +2 -2
- package/dist-cms/packages/embedded-media/repository/oembed.repository.d.ts +1 -1
- package/dist-cms/packages/health-check/manifests.js +2 -1
- package/dist-cms/packages/language/app-language-select/manifests.js +2 -1
- package/dist-cms/packages/language/collection/repository/language-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/language/repository/detail/language-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/language/repository/item/language-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/language/workspace/language/language-workspace-editor.element.d.ts +0 -1
- package/dist-cms/packages/language/workspace/language/language-workspace-editor.element.js +1 -3
- package/dist-cms/packages/log-viewer/workspace/views/overview/components/log-viewer-message-templates-overview.element.js +4 -0
- package/dist-cms/packages/log-viewer/workspace/views/overview/components/log-viewer-saved-searches-overview.element.js +4 -0
- package/dist-cms/packages/log-viewer/workspace/views/search/components/log-viewer-messages-list.element.js +7 -1
- package/dist-cms/packages/media/imaging/components/imaging-thumbnail.element.js +1 -6
- package/dist-cms/packages/media/imaging/imaging.server.data.d.ts +1 -1
- package/dist-cms/packages/media/media/audit-log/info-app/media-history-workspace-info-app.element.js +4 -0
- package/dist-cms/packages/media/media/audit-log/repository/media-audit-log.repository.d.ts +1 -1
- package/dist-cms/packages/media/media/audit-log/repository/media-audit-log.server.data-source.d.ts +1 -1
- package/dist-cms/packages/media/media/collection/media-collection.context.d.ts +1 -1
- package/dist-cms/packages/media/media/collection/media-collection.context.js +1 -1
- package/dist-cms/packages/media/media/collection/repository/media-collection.repository.d.ts +1 -1
- package/dist-cms/packages/media/media/collection/repository/media-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-field.element.d.ts +1 -1
- package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-field.element.js +66 -42
- package/dist-cms/packages/media/media/components/input-image-cropper/image-cropper-focus-setter.element.js +2 -11
- package/dist-cms/packages/media/media/components/input-image-cropper/input-image-cropper.element.js +15 -8
- package/dist-cms/packages/media/media/components/input-upload-field/file-upload-preview.element.d.ts +18 -0
- package/dist-cms/packages/media/media/components/input-upload-field/file-upload-preview.element.js +123 -0
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.d.ts +2 -2
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-audio.element.js +3 -4
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.d.ts +2 -7
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-file.element.js +3 -20
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.d.ts +2 -2
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-image.element.js +3 -13
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.d.ts +2 -2
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-svg.element.js +3 -14
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.d.ts +2 -2
- package/dist-cms/packages/media/media/components/input-upload-field/preview/input-upload-field-video.element.js +4 -7
- package/dist-cms/packages/media/media/components/input-upload-field/preview/manifest.js +2 -2
- package/dist-cms/packages/media/media/dashboard/manifests.js +2 -1
- package/dist-cms/packages/media/media/dropzone/dropzone-media.element.js +1 -0
- package/dist-cms/packages/media/media/entity-actions/move-to/repository/media-move.repository.d.ts +1 -1
- package/dist-cms/packages/media/media/index.d.ts +4 -1
- package/dist-cms/packages/media/media/index.js +4 -1
- package/dist-cms/packages/media/media/modals/image-cropper-editor/components/image-cropper-editor-field.element.d.ts +1 -2
- package/dist-cms/packages/media/media/modals/image-cropper-editor/components/image-cropper-editor-field.element.js +21 -79
- package/dist-cms/packages/media/media/modals/image-cropper-editor/image-cropper-editor-modal.element.d.ts +3 -2
- package/dist-cms/packages/media/media/modals/image-cropper-editor/image-cropper-editor-modal.element.js +89 -37
- package/dist-cms/packages/media/media/modals/media-picker/media-picker-modal.element.js +4 -5
- package/dist-cms/packages/media/media/property-editors/image-cropper/Umbraco.ImageCropper.js +1 -1
- package/dist-cms/packages/media/media/property-editors/image-crops/property-editor-ui-image-crops.element.d.ts +1 -3
- package/dist-cms/packages/media/media/property-editors/image-crops/property-editor-ui-image-crops.element.js +102 -93
- package/dist-cms/packages/media/media/property-editors/upload-field/property-editor-ui-upload-field.element.js +7 -4
- package/dist-cms/packages/media/media/recycle-bin/repository/media-recycle-bin.server.data-source.d.ts +1 -1
- package/dist-cms/packages/media/media/repository/detail/media-detail.server.data-source.d.ts +8 -14
- package/dist-cms/packages/media/media/repository/detail/media-detail.server.data-source.js +24 -21
- package/dist-cms/packages/media/media/repository/item/media-item.repository.d.ts +1 -1
- package/dist-cms/packages/media/media/repository/item/media-item.server.data-source.d.ts +2 -2
- package/dist-cms/packages/media/media/search/global-search/media-global-search.d.ts +1 -1
- package/dist-cms/packages/media/media/search/media-search.repository.d.ts +1 -1
- package/dist-cms/packages/media/media/search/media-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/media/media/search/media.search-provider.d.ts +1 -1
- package/dist-cms/packages/media/media/tree/tree-item/media-tree-item.element.js +2 -3
- package/dist-cms/packages/media/media/url/info-app/media-links-workspace-info-app.element.js +2 -2
- package/dist-cms/packages/media/media/url/repository/media-url.server.data-source.d.ts +1 -1
- package/dist-cms/packages/media/media/workspace/media-workspace-editor.element.js +24 -12
- package/dist-cms/packages/media/media/workspace/media-workspace-split-view.element.d.ts +2 -1
- package/dist-cms/packages/media/media/workspace/media-workspace-split-view.element.js +17 -4
- package/dist-cms/packages/media/media/workspace/media-workspace.context.d.ts +2 -1
- package/dist-cms/packages/media/media/workspace/media-workspace.context.js +4 -4
- package/dist-cms/packages/media/media-section/manifests.js +2 -2
- package/dist-cms/packages/media/media-types/entity-actions/duplicate/repository/media-type-duplicate.repository.d.ts +1 -1
- package/dist-cms/packages/media/media-types/entity-actions/export/repository/media-type-export.repository.d.ts +1 -1
- package/dist-cms/packages/media/media-types/entity-actions/import/repository/media-type-import.repository.d.ts +1 -1
- package/dist-cms/packages/media/media-types/entity-actions/move-to/repository/media-type-move.repository.d.ts +1 -1
- package/dist-cms/packages/media/media-types/repository/composition/media-type-composition.repository.d.ts +2 -2
- package/dist-cms/packages/media/media-types/repository/composition/media-type-composition.server.data-source.d.ts +2 -2
- package/dist-cms/packages/media/media-types/repository/detail/index.d.ts +1 -0
- package/dist-cms/packages/media/media-types/repository/detail/index.js +1 -0
- package/dist-cms/packages/media/media-types/repository/detail/media-type-detail.repository.js +2 -2
- package/dist-cms/packages/media/media-types/repository/detail/media-type-detail.server.data-source.d.ts +12 -12
- package/dist-cms/packages/media/media-types/repository/detail/media-type-detail.server.data-source.js +9 -9
- package/dist-cms/packages/media/media-types/repository/item/media-type-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/media/media-types/search/media-type-search.repository.d.ts +1 -1
- package/dist-cms/packages/media/media-types/search/media-type-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/media/media-types/search/media-type.search-provider.d.ts +1 -1
- package/dist-cms/packages/media/media-types/tree/folder/repository/media-type-folder.server.data-source.d.ts +3 -3
- package/dist-cms/packages/media/media-types/tree/folder/workspace/media-type-folder-editor.element.d.ts +1 -3
- package/dist-cms/packages/media/media-types/tree/folder/workspace/media-type-folder-editor.element.js +2 -7
- package/dist-cms/packages/media/media-types/tree/tree-item-children/collection/repository/media-type-tree-item-children-collection.repository.d.ts +3 -3
- package/dist-cms/packages/members/member/collection/repository/member-collection.repository.d.ts +1 -1
- package/dist-cms/packages/members/member/collection/repository/member-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/members/member/item/repository/member-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/members/member/repository/detail/member-detail.server.data-source.d.ts +7 -13
- package/dist-cms/packages/members/member/repository/detail/member-detail.server.data-source.js +20 -19
- package/dist-cms/packages/members/member/search/member-search.repository.d.ts +1 -1
- package/dist-cms/packages/members/member/search/member-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/members/member/search/member.search-provider.d.ts +1 -1
- package/dist-cms/packages/members/member/workspace/member/member-workspace-editor.element.d.ts +2 -2
- package/dist-cms/packages/members/member/workspace/member/member-workspace-editor.element.js +18 -11
- package/dist-cms/packages/members/member/workspace/member/member-workspace-split-view.element.d.ts +2 -1
- package/dist-cms/packages/members/member/workspace/member/member-workspace-split-view.element.js +15 -3
- package/dist-cms/packages/members/member/workspace/member/member-workspace.context.d.ts +1 -0
- package/dist-cms/packages/members/member/workspace/member/member-workspace.context.js +1 -0
- package/dist-cms/packages/members/member-group/collection/repository/member-group-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/members/member-group/repository/detail/member-group-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/members/member-group/repository/item/member-group-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/members/member-public-access/repository/public-access.repository.d.ts +4 -4
- 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/entity-actions/duplicate/repository/member-type-duplicate.repository.d.ts +1 -1
- package/dist-cms/packages/members/member-type/entity-actions/manifests.js +1 -1
- package/dist-cms/packages/members/member-type/entity.d.ts +1 -1
- package/dist-cms/packages/members/member-type/entity.js +1 -1
- package/dist-cms/packages/members/member-type/index.d.ts +1 -0
- package/dist-cms/packages/members/member-type/index.js +1 -0
- package/dist-cms/packages/members/member-type/manifests.js +2 -0
- package/dist-cms/packages/members/member-type/member-type-root/constants.d.ts +1 -0
- package/dist-cms/packages/members/member-type/member-type-root/constants.js +1 -0
- package/dist-cms/packages/members/member-type/member-type-root/index.d.ts +1 -0
- package/dist-cms/packages/members/member-type/member-type-root/index.js +1 -0
- package/dist-cms/packages/members/member-type/member-type-root/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/member-type-root/manifests.js +13 -0
- package/dist-cms/packages/members/member-type/repository/composition/member-type-composition.repository.d.ts +2 -2
- package/dist-cms/packages/members/member-type/repository/composition/member-type-composition.server.data-source.d.ts +2 -2
- package/dist-cms/packages/members/member-type/repository/detail/index.d.ts +1 -0
- package/dist-cms/packages/members/member-type/repository/detail/index.js +1 -0
- package/dist-cms/packages/members/member-type/repository/detail/member-type-detail.repository.js +2 -2
- package/dist-cms/packages/members/member-type/repository/detail/member-type-detail.server.data-source.d.ts +18 -19
- package/dist-cms/packages/members/member-type/repository/detail/member-type-detail.server.data-source.js +15 -16
- package/dist-cms/packages/members/member-type/repository/index.d.ts +1 -1
- package/dist-cms/packages/members/member-type/repository/index.js +1 -1
- package/dist-cms/packages/members/member-type/repository/item/member-type-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/members/member-type/search/member-type-search.repository.d.ts +1 -1
- package/dist-cms/packages/members/member-type/search/member-type-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/members/member-type/search/member-type.search-provider.d.ts +1 -1
- package/dist-cms/packages/members/member-type/tree/constants.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/constants.js +1 -0
- package/dist-cms/packages/members/member-type/tree/manifests.js +18 -9
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/action/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/action/manifests.js +16 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/constants.d.ts +2 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/constants.js +2 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/index.d.ts +2 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/index.js +2 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/manifests.js +19 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/repository/constants.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/repository/constants.js +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/repository/index.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/repository/index.js +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/repository/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/repository/manifests.js +9 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/repository/member-type-tree-item-children-collection.repository.d.ts +15 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/repository/member-type-tree-item-children-collection.repository.js +26 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/types.d.ts +5 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/types.js +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/views/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/views/manifests.js +22 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/views/member-type-tree-item-table-collection-view.element.d.ts +16 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/collection/views/member-type-tree-item-table-collection-view.element.js +112 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/constants.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/constants.js +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/manifests.js +3 -0
- package/dist-cms/packages/members/member-type/tree/tree-item-children/reload-entity-action/manifests.d.ts +1 -0
- package/dist-cms/packages/members/member-type/tree/{reload-tree-item-children → tree-item-children/reload-entity-action}/manifests.js +1 -1
- package/dist-cms/packages/members/member-type/workspace/index.d.ts +2 -0
- package/dist-cms/packages/members/member-type/workspace/index.js +2 -0
- package/dist-cms/packages/members/section/sidebar-app/manifests.js +2 -1
- package/dist-cms/packages/models-builder/manifests.js +2 -1
- package/dist-cms/packages/packages/package-section/manifests.js +4 -4
- package/dist-cms/packages/packages/package-section/views/created/packages-created-overview.element.js +7 -1
- package/dist-cms/packages/performance-profiling/manifests.js +2 -1
- package/dist-cms/packages/property-editors/label/manifests.js +10 -0
- package/dist-cms/packages/property-editors/label/property-editor-ui-label.element.d.ts +3 -4
- package/dist-cms/packages/property-editors/label/property-editor-ui-label.element.js +9 -9
- package/dist-cms/packages/property-editors/number-range/property-editor-ui-number-range.element.js +2 -3
- package/dist-cms/packages/property-editors/overlay-size/property-editor-ui-overlay-size.element.js +7 -1
- package/dist-cms/packages/publish-cache/manifests.js +2 -1
- package/dist-cms/packages/relations/relation-types/collection/repository/relation-type-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/relations/relation-types/repository/detail/relation-type-detail.repository.d.ts +1 -1
- package/dist-cms/packages/relations/relation-types/repository/detail/relation-type-detail.server.data-source.d.ts +1 -1
- package/dist-cms/packages/relations/relation-types/workspace/relation-type/views/relation-type-detail-workspace-view.element.js +4 -0
- package/dist-cms/packages/relations/relations/collection/repository/relation-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/relations/relations/reference/workspace-info-app/entity-references-workspace-view-info.element.js +7 -1
- package/dist-cms/packages/search/manifests.js +2 -1
- package/dist-cms/packages/segment/collection/repository/segment-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/settings/advanced/manifests.js +2 -1
- package/dist-cms/packages/settings/structure/manifests.js +2 -1
- package/dist-cms/packages/settings/welcome/manifests.js +2 -1
- package/dist-cms/packages/static-file/repository/item/static-file-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/tags/repository/tag.repository.d.ts +2 -2
- package/dist-cms/packages/telemetry/manifests.js +2 -1
- package/dist-cms/packages/templating/menu/manifests.js +2 -1
- package/dist-cms/packages/templating/partial-views/entity-actions/rename/rename-partial-view.server.data-source.d.ts +1 -1
- package/dist-cms/packages/templating/partial-views/repository/item/partial-view-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/templating/partial-views/repository/partial-view-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/templating/partial-views/tree/folder/repository/partial-view-folder.server.data-source.d.ts +2 -2
- package/dist-cms/packages/templating/partial-views/tree/folder/workspace/partial-view-folder-workspace-editor.element.d.ts +1 -5
- package/dist-cms/packages/templating/partial-views/tree/folder/workspace/partial-view-folder-workspace-editor.element.js +8 -22
- package/dist-cms/packages/templating/scripts/entity-actions/rename/rename-script.server.data-source.d.ts +1 -1
- package/dist-cms/packages/templating/scripts/repository/item/script-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/templating/scripts/repository/script-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/templating/scripts/tree/folder/repository/script-folder.server.data-source.d.ts +2 -2
- package/dist-cms/packages/templating/scripts/tree/folder/workspace/script-folder-workspace-editor.element.d.ts +1 -5
- package/dist-cms/packages/templating/scripts/tree/folder/workspace/script-folder-workspace-editor.element.js +8 -22
- package/dist-cms/packages/templating/stylesheets/entity-actions/rename/rename-stylesheet.server.data-source.d.ts +1 -1
- package/dist-cms/packages/templating/stylesheets/repository/item/stylesheet-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/templating/stylesheets/repository/stylesheet-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/templating/stylesheets/tree/folder/repository/stylesheet-folder.server.data-source.d.ts +2 -2
- package/dist-cms/packages/templating/stylesheets/tree/folder/workspace/stylesheet-folder-workspace-editor.element.d.ts +1 -5
- package/dist-cms/packages/templating/stylesheets/tree/folder/workspace/stylesheet-folder-workspace-editor.element.js +8 -22
- package/dist-cms/packages/templating/templates/repository/detail/template-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/templating/templates/repository/item/template-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/templating/templates/search/template-search.repository.d.ts +1 -1
- package/dist-cms/packages/templating/templates/search/template-search.server.data-source.d.ts +1 -1
- package/dist-cms/packages/templating/templates/search/template.search-provider.d.ts +1 -1
- package/dist-cms/packages/templating/templates/workspace/template-workspace.context.d.ts +1 -1
- package/dist-cms/packages/tiptap/components/cascading-menu-popover/cascading-menu-popover.element.d.ts +1 -0
- package/dist-cms/packages/tiptap/components/cascading-menu-popover/cascading-menu-popover.element.js +23 -9
- package/dist-cms/packages/tiptap/components/toolbar/style-menu.tiptap-toolbar-api.d.ts +1 -0
- package/dist-cms/packages/tiptap/components/toolbar/style-menu.tiptap-toolbar-api.js +29 -11
- package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar-button.element.js +2 -2
- package/dist-cms/packages/tiptap/components/toolbar/tiptap-toolbar-menu.element.js +12 -4
- package/dist-cms/packages/tiptap/extensions/manifests.js +9 -9
- package/dist-cms/packages/tiptap/extensions/table/components/table-toolbar-menu.element.js +1 -1
- package/dist-cms/packages/tiptap/extensions/table/table.tiptap-toolbar-api.d.ts +1 -0
- package/dist-cms/packages/tiptap/extensions/table/table.tiptap-toolbar-api.js +5 -0
- package/dist-cms/packages/tiptap/extensions/toolbar/clear-formatting.tiptap-toolbar-api.js +1 -1
- package/dist-cms/packages/tiptap/extensions/toolbar/font-family.tiptap-toolbar-api.d.ts +1 -0
- package/dist-cms/packages/tiptap/extensions/toolbar/font-family.tiptap-toolbar-api.js +5 -1
- package/dist-cms/packages/tiptap/extensions/toolbar/font-size.tiptap-toolbar-api.d.ts +1 -0
- package/dist-cms/packages/tiptap/extensions/toolbar/font-size.tiptap-toolbar-api.js +5 -1
- package/dist-cms/packages/tiptap/extensions/toolbar/text-color-background.tiptap-toolbar-api.js +1 -1
- package/dist-cms/packages/tiptap/extensions/toolbar/text-color-foreground.tiptap-toolbar-api.js +1 -1
- package/dist-cms/packages/tiptap/extensions/types.d.ts +1 -1
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-statusbar-configuration.element.js +18 -10
- package/dist-cms/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.js +21 -12
- package/dist-cms/packages/tiptap/property-editors/tiptap/constants.d.ts +1 -0
- package/dist-cms/packages/tiptap/property-editors/tiptap/constants.js +1 -0
- package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-statusbar-configuration.context-token.d.ts +3 -0
- package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-statusbar-configuration.context-token.js +2 -0
- package/dist-cms/packages/tiptap/property-editors/tiptap/contexts/tiptap-statusbar-configuration.context.js +2 -1
- package/dist-cms/packages/translation/menu/manifests.js +2 -1
- package/dist-cms/packages/ufm/filters/bytes.filter.d.ts +5 -0
- package/dist-cms/packages/ufm/filters/bytes.filter.js +10 -0
- package/dist-cms/packages/ufm/filters/manifests.js +7 -0
- package/dist-cms/packages/umbraco-news/manifests.js +2 -1
- package/dist-cms/packages/user/current-user/current-user.context.d.ts +1 -1
- package/dist-cms/packages/user/current-user/current-user.context.js +1 -1
- package/dist-cms/packages/user/current-user/repository/current-user.repository.d.ts +6 -6
- package/dist-cms/packages/user/current-user/repository/current-user.server.data-source.d.ts +4 -4
- package/dist-cms/packages/user/section/sidebar-app/manifests.js +2 -1
- package/dist-cms/packages/user/user/client-credential/repository/data-source/user-client-credential.server.data-source.d.ts +2 -2
- package/dist-cms/packages/user/user/collection/repository/user-collection.repository.d.ts +1 -1
- package/dist-cms/packages/user/user/collection/repository/user-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/user/user/invite/repository/invite-user-server.data-source.d.ts +1 -1
- package/dist-cms/packages/user/user/invite/repository/invite-user.repository.d.ts +2 -2
- package/dist-cms/packages/user/user/repository/avatar/user-avatar.repository.d.ts +2 -2
- package/dist-cms/packages/user/user/repository/change-password/change-user-password.repository.d.ts +1 -1
- package/dist-cms/packages/user/user/repository/detail/user-detail.server.data-source.d.ts +4 -4
- package/dist-cms/packages/user/user/repository/disable/disable-user.repository.d.ts +1 -1
- package/dist-cms/packages/user/user/repository/enable/enable-user.repository.d.ts +1 -1
- package/dist-cms/packages/user/user/repository/item/user-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/user/user/repository/unlock/unlock-user.repository.d.ts +1 -1
- package/dist-cms/packages/user/user/repository/user.repository.d.ts +3 -3
- package/dist-cms/packages/user/user/workspace/user/user-workspace-editor.element.js +7 -12
- package/dist-cms/packages/user/user/workspace/user/user-workspace.context.d.ts +3 -3
- package/dist-cms/packages/user/user/workspace/user/user-workspace.context.js +5 -0
- package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.repository.d.ts +1 -1
- package/dist-cms/packages/user/user-group/collection/repository/user-group-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/user/user-group/repository/detail/user-group-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/user/user-group/repository/item/user-group-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/webhook/webhook/collection/repository/webhook-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/webhook/webhook/repository/detail/webhook-detail.server.data-source.d.ts +3 -3
- package/dist-cms/packages/webhook/webhook/repository/item/webhook-item.server.data-source.d.ts +1 -1
- package/dist-cms/packages/webhook/webhook-delivery/collection/repository/webhook-delivery-collection.server.data-source.d.ts +1 -1
- package/dist-cms/packages/webhook/webhook-event/repository/webhook-event.repository.d.ts +1 -1
- package/dist-cms/packages/webhook/webhook-event/repository/webhook-event.server.data-source.d.ts +1 -1
- package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
- package/dist-cms/umbraco-package-schema.json +584 -194
- package/dist-cms/umbraco-package.json +1 -1
- package/dist-cms/vscode-html-custom-data.json +100 -35
- package/examples/collection/README.md +20 -0
- package/examples/collection/collection/card-view/collection-view.element.ts +82 -0
- package/examples/collection/collection/card-view/manifests.ts +23 -0
- package/examples/collection/collection/constants.ts +1 -0
- package/examples/collection/collection/manifests.ts +20 -0
- package/examples/collection/collection/repository/collection.repository.ts +64 -0
- package/examples/collection/collection/repository/constants.ts +1 -0
- package/examples/collection/collection/repository/manifests.ts +10 -0
- package/examples/collection/collection/repository/types.ts +9 -0
- package/examples/collection/collection/table-view/collection-view.element.ts +89 -0
- package/examples/collection/collection/table-view/manifests.ts +23 -0
- package/examples/collection/dashboard-with-collection/dashboard-with-collection.element.ts +23 -0
- package/examples/collection/dashboard-with-collection/manifests.ts +14 -0
- package/examples/collection/index.ts +9 -0
- package/examples/collection/workspace-view-with-collection/manifests.ts +25 -0
- package/examples/validation-context/index.ts +2 -1
- package/package.json +4 -4
- /package/dist-cms/packages/{members/member-type/tree/reload-tree-item-children → core/entity/entity-type}/manifests.d.ts +0 -0
- /package/dist-cms/packages/core/section/conditions/{section-user-permission.condition.js → section-user-permission/section-user-permission.condition.js} +0 -0
|
@@ -4,6 +4,7 @@ import { manifests as cultureManifests } from './culture/manifests.js';
|
|
|
4
4
|
import { manifests as debugManifests } from './debug/manifests.js';
|
|
5
5
|
import { manifests as entityActionManifests } from './entity-action/manifests.js';
|
|
6
6
|
import { manifests as entityBulkActionManifests } from './entity-bulk-action/manifests.js';
|
|
7
|
+
import { manifests as entityManifests } from './entity/manifests.js';
|
|
7
8
|
import { manifests as extensionManifests } from './extension-registry/manifests.js';
|
|
8
9
|
import { manifests as iconRegistryManifests } from './icon-registry/manifests.js';
|
|
9
10
|
import { manifests as localizationManifests } from './localization/manifests.js';
|
|
@@ -27,6 +28,7 @@ export const manifests = [
|
|
|
27
28
|
...debugManifests,
|
|
28
29
|
...entityActionManifests,
|
|
29
30
|
...entityBulkActionManifests,
|
|
31
|
+
...entityManifests,
|
|
30
32
|
...extensionManifests,
|
|
31
33
|
...iconRegistryManifests,
|
|
32
34
|
...localizationManifests,
|
|
@@ -41,8 +41,12 @@ let UmbSectionSidebarMenuElement = class UmbSectionSidebarMenuElement extends Um
|
|
|
41
41
|
UmbTextStyles,
|
|
42
42
|
css `
|
|
43
43
|
h3 {
|
|
44
|
-
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
height: var(--umb-header-layout-height);
|
|
47
|
+
margin: 0;
|
|
45
48
|
padding: var(--uui-size-4) var(--uui-size-8);
|
|
49
|
+
box-sizing: border-box;
|
|
46
50
|
font-size: 14px;
|
|
47
51
|
}
|
|
48
52
|
`,
|
|
@@ -6,6 +6,6 @@ export declare class UmbObjectTypeRepository extends UmbControllerBase implement
|
|
|
6
6
|
constructor(host: UmbControllerHost);
|
|
7
7
|
read(): Promise<{
|
|
8
8
|
data: import("@umbraco-cms/backoffice/external/backend-api").PagedObjectTypeResponseModel;
|
|
9
|
-
error:
|
|
9
|
+
error: import("@umbraco-cms/backoffice/resources").UmbApiError | import("@umbraco-cms/backoffice/resources").UmbCancelError | undefined;
|
|
10
10
|
}>;
|
|
11
11
|
}
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"@types/diff": "^7.0.2",
|
|
11
11
|
"diff": "^7.0.0",
|
|
12
12
|
"uuid": "^11.1.0",
|
|
13
|
-
"@hey-api/client-fetch": "^0.
|
|
13
|
+
"@hey-api/client-fetch": "^0.12.0"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@hey-api/openapi-ts": "^0.
|
|
16
|
+
"@hey-api/openapi-ts": "^0.71.0"
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -25,9 +25,7 @@ export declare abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryB
|
|
|
25
25
|
* @returns {*}
|
|
26
26
|
* @memberof UmbRecycleBinRepositoryBase
|
|
27
27
|
*/
|
|
28
|
-
requestTrash(args: UmbRecycleBinTrashRequestArgs): Promise<
|
|
29
|
-
error: Error | import("../resources/umb-error.js").UmbError | import("../resources/umb-error.js").UmbApiError | import("../resources/umb-error.js").UmbCancelError | undefined;
|
|
30
|
-
}>;
|
|
28
|
+
requestTrash(args: UmbRecycleBinTrashRequestArgs): Promise<import("@umbraco-cms/backoffice/repository").UmbDataSourceResponse<unknown>>;
|
|
31
29
|
/**
|
|
32
30
|
* Requests to restore an item.
|
|
33
31
|
* @param {UmbRecycleBinRestoreRequestArgs} args
|
|
@@ -35,7 +33,7 @@ export declare abstract class UmbRecycleBinRepositoryBase extends UmbRepositoryB
|
|
|
35
33
|
* @memberof UmbRecycleBinRepositoryBase
|
|
36
34
|
*/
|
|
37
35
|
requestRestore(args: UmbRecycleBinRestoreRequestArgs): Promise<{
|
|
38
|
-
error: Error | import("../resources/umb-error.js").
|
|
36
|
+
error: Error | import("../resources/umb-error.js").UmbApiError | import("../resources/umb-error.js").UmbCancelError | import("../resources/umb-error.js").UmbError | undefined;
|
|
39
37
|
}>;
|
|
40
38
|
/**
|
|
41
39
|
* Requests to empty the recycle bin.
|
|
@@ -10,7 +10,6 @@ import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository';
|
|
|
10
10
|
export class UmbRecycleBinRepositoryBase extends UmbRepositoryBase {
|
|
11
11
|
#recycleBinSource;
|
|
12
12
|
#notificationContext;
|
|
13
|
-
#requestTrashSuccessNotification;
|
|
14
13
|
#requestRestoreSuccessNotification;
|
|
15
14
|
/**
|
|
16
15
|
* Creates an instance of UmbRecycleBinRepositoryBase.
|
|
@@ -32,13 +31,7 @@ export class UmbRecycleBinRepositoryBase extends UmbRepositoryBase {
|
|
|
32
31
|
* @memberof UmbRecycleBinRepositoryBase
|
|
33
32
|
*/
|
|
34
33
|
async requestTrash(args) {
|
|
35
|
-
|
|
36
|
-
if (!error) {
|
|
37
|
-
this.#requestTrashSuccessNotification?.close();
|
|
38
|
-
const notification = { data: { message: `Trashed` } };
|
|
39
|
-
this.#requestTrashSuccessNotification = this.#notificationContext?.peek('positive', notification);
|
|
40
|
-
}
|
|
41
|
-
return { error };
|
|
34
|
+
return this.#recycleBinSource.trash(args);
|
|
42
35
|
}
|
|
43
36
|
/**
|
|
44
37
|
* Requests to restore an item.
|
|
@@ -49,6 +42,7 @@ export class UmbRecycleBinRepositoryBase extends UmbRepositoryBase {
|
|
|
49
42
|
async requestRestore(args) {
|
|
50
43
|
const { error } = await this.#recycleBinSource.restore(args);
|
|
51
44
|
if (!error) {
|
|
45
|
+
// TODO: keep this notification until we refresh the tree/structure correctly after the action
|
|
52
46
|
this.#requestRestoreSuccessNotification?.close();
|
|
53
47
|
const notification = { data: { message: `Restored` } };
|
|
54
48
|
this.#requestRestoreSuccessNotification = this.#notificationContext?.peek('positive', notification);
|
|
@@ -61,11 +55,6 @@ export class UmbRecycleBinRepositoryBase extends UmbRepositoryBase {
|
|
|
61
55
|
* @memberof UmbRecycleBinRepositoryBase
|
|
62
56
|
*/
|
|
63
57
|
async requestEmpty() {
|
|
64
|
-
const { error } = await this.#recycleBinSource.empty();
|
|
65
|
-
if (!error) {
|
|
66
|
-
const notification = { data: { message: `Recycle Bin Emptied` } };
|
|
67
|
-
this.#notificationContext?.peek('positive', notification);
|
|
68
|
-
}
|
|
69
58
|
return this.#recycleBinSource.empty();
|
|
70
59
|
}
|
|
71
60
|
/**
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { UmbDataSourceResponse } from '../data-source-response.interface.js';
|
|
2
2
|
import type { UmbReadDetailDataSource } from './read/index.js';
|
|
3
|
+
import type { UmbDeepPartialObject } from '@umbraco-cms/backoffice/utils';
|
|
3
4
|
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
|
4
5
|
export interface UmbDetailDataSourceConstructor<DetailType = any, UmbDetailDataSourceType extends UmbDetailDataSource<DetailType> = UmbDetailDataSource<DetailType>> {
|
|
5
6
|
new (host: UmbControllerHost): UmbDetailDataSourceType;
|
|
6
7
|
}
|
|
7
8
|
export interface UmbDetailDataSource<DetailType> extends UmbReadDetailDataSource<DetailType> {
|
|
8
|
-
createScaffold(preset?:
|
|
9
|
+
createScaffold(preset?: UmbDeepPartialObject<DetailType>): Promise<UmbDataSourceResponse<DetailType>>;
|
|
9
10
|
create(data: DetailType, parentUnique: string | null): Promise<UmbDataSourceResponse<DetailType>>;
|
|
10
11
|
update(data: DetailType): Promise<UmbDataSourceResponse<DetailType>>;
|
|
11
12
|
delete(unique: string): Promise<UmbDataSourceResponse<unknown>>;
|
|
@@ -6,24 +6,25 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
|
|
6
6
|
import type { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
|
|
7
7
|
import type { UmbApi } from '@umbraco-cms/backoffice/extension-api';
|
|
8
8
|
import type { UmbEntityModel } from '@umbraco-cms/backoffice/entity';
|
|
9
|
+
import type { UmbDeepPartialObject } from '@umbraco-cms/backoffice/utils';
|
|
9
10
|
export declare abstract class UmbDetailRepositoryBase<DetailModelType extends UmbEntityModel, UmbDetailDataSourceType extends UmbDetailDataSource<DetailModelType> = UmbDetailDataSource<DetailModelType>> extends UmbRepositoryBase implements UmbDetailRepository<DetailModelType>, UmbApi {
|
|
10
11
|
#private;
|
|
11
12
|
protected detailDataSource: UmbDetailDataSourceType;
|
|
12
13
|
constructor(host: UmbControllerHost, detailSource: UmbDetailDataSourceConstructor<DetailModelType>, detailStoreContextAlias: string | UmbContextToken<any, any>);
|
|
13
14
|
/**
|
|
14
15
|
* Creates a scaffold
|
|
15
|
-
* @param {
|
|
16
|
+
* @param {UmbDeepPartialObject<DetailModelType>} [preset]
|
|
16
17
|
* @returns {*}
|
|
17
18
|
* @memberof UmbDetailRepositoryBase
|
|
18
19
|
*/
|
|
19
|
-
createScaffold(preset?:
|
|
20
|
+
createScaffold(preset?: UmbDeepPartialObject<DetailModelType>): Promise<UmbRepositoryResponse<DetailModelType>>;
|
|
20
21
|
/**
|
|
21
22
|
* Requests the detail for the given unique
|
|
22
23
|
* @param {string} unique
|
|
23
24
|
* @returns {*}
|
|
24
25
|
* @memberof UmbDetailRepositoryBase
|
|
25
26
|
*/
|
|
26
|
-
requestByUnique(unique: string): Promise<UmbRepositoryResponseWithAsObservable<DetailModelType>>;
|
|
27
|
+
requestByUnique(unique: string): Promise<UmbRepositoryResponseWithAsObservable<DetailModelType | undefined>>;
|
|
27
28
|
/**
|
|
28
29
|
* Returns a promise with an observable of the detail for the given unique
|
|
29
30
|
* @param {DetailModelType} model
|
|
@@ -40,7 +41,7 @@ export declare abstract class UmbDetailRepositoryBase<DetailModelType extends Um
|
|
|
40
41
|
*/
|
|
41
42
|
save(model: DetailModelType): Promise<{
|
|
42
43
|
data: DetailModelType | undefined;
|
|
43
|
-
error: Error | import("../../resources/umb-error.js").
|
|
44
|
+
error: Error | import("../../resources/umb-error.js").UmbApiError | import("../../resources/umb-error.js").UmbCancelError | import("../../resources/umb-error.js").UmbError | undefined;
|
|
44
45
|
}>;
|
|
45
46
|
/**
|
|
46
47
|
* Deletes the detail for the given unique
|
|
@@ -49,7 +50,7 @@ export declare abstract class UmbDetailRepositoryBase<DetailModelType extends Um
|
|
|
49
50
|
* @memberof UmbDetailRepositoryBase
|
|
50
51
|
*/
|
|
51
52
|
delete(unique: string): Promise<{
|
|
52
|
-
error: Error | import("../../resources/umb-error.js").
|
|
53
|
+
error: Error | import("../../resources/umb-error.js").UmbApiError | import("../../resources/umb-error.js").UmbCancelError | import("../../resources/umb-error.js").UmbError | undefined;
|
|
53
54
|
}>;
|
|
54
55
|
/**
|
|
55
56
|
* Returns a promise with an observable of the detail for the given unique
|
|
@@ -19,7 +19,7 @@ export class UmbDetailRepositoryBase extends UmbRepositoryBase {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Creates a scaffold
|
|
22
|
-
* @param {
|
|
22
|
+
* @param {UmbDeepPartialObject<DetailModelType>} [preset]
|
|
23
23
|
* @returns {*}
|
|
24
24
|
* @memberof UmbDetailRepositoryBase
|
|
25
25
|
*/
|
|
@@ -43,7 +43,7 @@ export class UmbDetailRepositoryBase extends UmbRepositoryBase {
|
|
|
43
43
|
return {
|
|
44
44
|
data,
|
|
45
45
|
error,
|
|
46
|
-
asObservable: () => this.#detailStore
|
|
46
|
+
asObservable: () => this.#detailStore?.byUnique(unique),
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
@@ -2,6 +2,6 @@ import type { UmbRepositoryResponseWithAsObservable } from '../../types.js';
|
|
|
2
2
|
import type { UmbApi } from '@umbraco-cms/backoffice/extension-api';
|
|
3
3
|
import type { Observable } from '@umbraco-cms/backoffice/external/rxjs';
|
|
4
4
|
export interface UmbReadDetailRepository<DetailModelType> extends UmbApi {
|
|
5
|
-
requestByUnique(unique: string): Promise<UmbRepositoryResponseWithAsObservable<DetailModelType>>;
|
|
5
|
+
requestByUnique(unique: string): Promise<UmbRepositoryResponseWithAsObservable<DetailModelType | undefined>>;
|
|
6
6
|
byUnique(unique: string): Promise<Observable<DetailModelType | undefined>>;
|
|
7
7
|
}
|
|
@@ -18,13 +18,13 @@ export declare class UmbItemRepositoryBase<ItemType extends {
|
|
|
18
18
|
* @memberof UmbItemRepositoryBase
|
|
19
19
|
*/
|
|
20
20
|
requestItems(uniques: Array<string>): Promise<{
|
|
21
|
+
asObservable: () => undefined;
|
|
21
22
|
data?: undefined;
|
|
22
23
|
error?: undefined;
|
|
23
|
-
asObservable?: undefined;
|
|
24
24
|
} | {
|
|
25
25
|
data: ItemType[] | undefined;
|
|
26
|
-
error:
|
|
27
|
-
asObservable: () => import("rxjs").Observable<ItemType[]
|
|
26
|
+
error: Error | import("../../resources/umb-error.js").UmbApiError | import("../../resources/umb-error.js").UmbCancelError | import("../../resources/umb-error.js").UmbError | undefined;
|
|
27
|
+
asObservable: () => import("rxjs").Observable<ItemType[]> | undefined;
|
|
28
28
|
}>;
|
|
29
29
|
/**
|
|
30
30
|
* Returns a promise with an observable of the items for the given uniques
|
|
@@ -25,18 +25,15 @@ export class UmbItemRepositoryBase extends UmbRepositoryBase {
|
|
|
25
25
|
await this._init;
|
|
26
26
|
}
|
|
27
27
|
catch {
|
|
28
|
-
return {
|
|
28
|
+
return {
|
|
29
|
+
asObservable: () => undefined,
|
|
30
|
+
};
|
|
29
31
|
}
|
|
30
32
|
const { data, error } = await this.#itemSource.getItems(uniques);
|
|
31
|
-
if (!this._itemStore) {
|
|
32
|
-
// If store is gone, then we are most likely in a disassembled state.
|
|
33
|
-
return {};
|
|
34
|
-
}
|
|
35
33
|
if (data) {
|
|
36
|
-
this._itemStore
|
|
34
|
+
this._itemStore?.appendItems(data);
|
|
37
35
|
}
|
|
38
|
-
|
|
39
|
-
return { data, error: error, asObservable: () => this._itemStore.items(uniques) };
|
|
36
|
+
return { data, error, asObservable: () => this._itemStore?.items(uniques) };
|
|
40
37
|
}
|
|
41
38
|
/**
|
|
42
39
|
* Returns a promise with an observable of the items for the given uniques
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
+
import type { UmbRepositoryResponseWithAsObservable } from '../types.js';
|
|
1
2
|
import type { Observable } from '@umbraco-cms/backoffice/external/rxjs';
|
|
2
3
|
import type { UmbApi } from '@umbraco-cms/backoffice/extension-api';
|
|
3
|
-
import type { UmbProblemDetails } from '@umbraco-cms/backoffice/resources';
|
|
4
4
|
export interface UmbItemRepository<ItemType> extends UmbApi {
|
|
5
|
-
requestItems: (uniques: string[]) => Promise<
|
|
6
|
-
data?: Array<ItemType> | undefined;
|
|
7
|
-
error?: UmbProblemDetails | undefined;
|
|
8
|
-
asObservable?: () => Observable<Array<ItemType>>;
|
|
9
|
-
}>;
|
|
5
|
+
requestItems: (uniques: string[]) => Promise<UmbRepositoryResponseWithAsObservable<ItemType[] | undefined>>;
|
|
10
6
|
items: (uniques: string[]) => Promise<Observable<Array<ItemType>> | undefined>;
|
|
11
7
|
}
|
|
@@ -32,7 +32,7 @@ export declare abstract class UmbItemServerDataSourceBase<ServerItemType, Client
|
|
|
32
32
|
*/
|
|
33
33
|
getItems(uniques: Array<string>): Promise<{
|
|
34
34
|
data: ClientItemType[] | undefined;
|
|
35
|
-
error: Error | import("@umbraco-cms/backoffice/resources").
|
|
35
|
+
error: ((Error | import("@umbraco-cms/backoffice/resources").UmbApiError | import("@umbraco-cms/backoffice/resources").UmbCancelError | import("@umbraco-cms/backoffice/resources").UmbError) & (import("@umbraco-cms/backoffice/resources").UmbApiError | import("@umbraco-cms/backoffice/resources").UmbCancelError)) | undefined;
|
|
36
36
|
}>;
|
|
37
37
|
protected _getMappedItems(items: Array<ServerItemType> | undefined): Array<ClientItemType> | undefined;
|
|
38
38
|
}
|
|
@@ -184,6 +184,8 @@ export class UmbRepositoryItemsManager extends UmbControllerBase {
|
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
#sortByUniques(data) {
|
|
187
|
+
if (!data)
|
|
188
|
+
return [];
|
|
187
189
|
const uniques = this.getUniques();
|
|
188
190
|
return [...data].sort((a, b) => {
|
|
189
191
|
const aIndex = uniques.indexOf(this.#getUnique(a) ?? '');
|
|
@@ -8,7 +8,12 @@ export interface UmbRepositoryResponse<T> extends UmbDataSourceResponse<T> {
|
|
|
8
8
|
}
|
|
9
9
|
export interface UmbRepositoryErrorResponse extends UmbDataSourceErrorResponse {
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Interface for a repository that can return a paged model.
|
|
13
|
+
* @template T - The type of items in the paged model.
|
|
14
|
+
* @template T$ - The type of items returned by the asObservable method, defaults to T. You should only use this if you want to return a different type from the asObservable method.
|
|
15
|
+
*/
|
|
16
|
+
export interface UmbRepositoryResponseWithAsObservable<T, T$ = T> extends UmbRepositoryResponse<T> {
|
|
17
|
+
asObservable: () => Observable<T$> | undefined;
|
|
13
18
|
}
|
|
14
19
|
export type * from './data-mapper/mapping/types.js';
|
|
@@ -38,4 +38,11 @@ export declare class UmbApiInterceptorController extends UmbControllerBase {
|
|
|
38
38
|
* @internal
|
|
39
39
|
*/
|
|
40
40
|
addUmbNotificationsInterceptor(client: typeof umbHttpClient): void;
|
|
41
|
+
/**
|
|
42
|
+
* Listen for authorization signal to retry GET-requests that received a 401 Unauthorized response.
|
|
43
|
+
* This will retry all pending requests that received a 401 Unauthorized response after re-authentication.
|
|
44
|
+
* It will also notify the user about non-GET requests that received a 401 Unauthorized response.
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
handleUnauthorizedAuthRetry(): void;
|
|
41
48
|
}
|
|
@@ -3,17 +3,33 @@ import { isUmbNotifications, UMB_NOTIFICATION_HEADER } from './isUmbNotification
|
|
|
3
3
|
import { isProblemDetailsLike } from './apiTypeValidators.function.js';
|
|
4
4
|
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
|
5
5
|
import { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth';
|
|
6
|
+
const MAX_RETRIES = 3;
|
|
6
7
|
export class UmbApiInterceptorController extends UmbControllerBase {
|
|
8
|
+
/**
|
|
9
|
+
* Store pending requests that received a 401 response and are waiting for re-authentication.
|
|
10
|
+
* This is used to retry the requests after re-authentication.
|
|
11
|
+
*/
|
|
12
|
+
#pending401Requests = [];
|
|
13
|
+
/**
|
|
14
|
+
* Store non-GET requests that received a 401 response.
|
|
15
|
+
* This is used to notify the user about actions that could not be completed due to session expiration.
|
|
16
|
+
* These requests will not be retried, as they are not idempotent.
|
|
17
|
+
* Instead, we will notify the user about these requests after re-authentication.
|
|
18
|
+
*/
|
|
19
|
+
#nonGet401Requests = [];
|
|
7
20
|
/**
|
|
8
21
|
* Binds the default interceptors to the client.
|
|
9
22
|
* This includes the auth response interceptor, the error interceptor and the umb-notifications interceptor.
|
|
10
23
|
* @param {umbHttpClient} client The OpenAPI client to add the interceptor to. It can be any client supporting Response and Request interceptors.
|
|
11
24
|
*/
|
|
12
25
|
bindDefaultInterceptors(client) {
|
|
26
|
+
// Add the default observables to the instance
|
|
27
|
+
this.handleUnauthorizedAuthRetry();
|
|
28
|
+
// Add the default interceptors to the client
|
|
13
29
|
this.addAuthResponseInterceptor(client);
|
|
30
|
+
this.addForbiddenResponseInterceptor(client);
|
|
14
31
|
this.addUmbGeneratedResourceInterceptor(client);
|
|
15
32
|
this.addUmbNotificationsInterceptor(client);
|
|
16
|
-
this.addForbiddenResponseInterceptor(client);
|
|
17
33
|
this.addErrorInterceptor(client);
|
|
18
34
|
}
|
|
19
35
|
/**
|
|
@@ -22,16 +38,57 @@ export class UmbApiInterceptorController extends UmbControllerBase {
|
|
|
22
38
|
* @internal
|
|
23
39
|
*/
|
|
24
40
|
addAuthResponseInterceptor(client) {
|
|
25
|
-
client.interceptors.response.use(async (response) => {
|
|
26
|
-
if (response.status
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
41
|
+
client.interceptors.response.use(async (response, request, requestConfig) => {
|
|
42
|
+
if (response.status !== 401)
|
|
43
|
+
return response;
|
|
44
|
+
// Build a plain ProblemDetails object for the response body
|
|
45
|
+
const problemDetails = {
|
|
46
|
+
status: response.status,
|
|
47
|
+
title: response.statusText || 'Unauthorized request, waiting for re-authentication.',
|
|
48
|
+
detail: undefined,
|
|
49
|
+
errors: undefined,
|
|
50
|
+
type: 'Unauthorized',
|
|
51
|
+
stack: undefined,
|
|
52
|
+
};
|
|
53
|
+
const newResponse = this.#createResponse(problemDetails, response);
|
|
54
|
+
const authContext = await this.getContext(UMB_AUTH_CONTEXT, { preventTimeout: true });
|
|
55
|
+
if (!authContext)
|
|
56
|
+
throw new Error('Could not get the auth context');
|
|
57
|
+
// Only retry for GET requests
|
|
58
|
+
if (request.method !== 'GET') {
|
|
59
|
+
// Collect info for later notification
|
|
60
|
+
this.#nonGet401Requests.push({ request, requestConfig });
|
|
61
|
+
// Show login overlay (only once per burst, as before)
|
|
32
62
|
authContext.timeOut();
|
|
63
|
+
return newResponse;
|
|
33
64
|
}
|
|
34
|
-
|
|
65
|
+
// Find if this request is already in the queue and increment retries
|
|
66
|
+
let retries = 1;
|
|
67
|
+
const existing = this.#pending401Requests.find((req) => req.request === request && req.requestConfig === requestConfig);
|
|
68
|
+
if (existing) {
|
|
69
|
+
retries = existing.retries + 1;
|
|
70
|
+
if (retries > MAX_RETRIES) {
|
|
71
|
+
return newResponse;
|
|
72
|
+
}
|
|
73
|
+
existing.retries = retries;
|
|
74
|
+
}
|
|
75
|
+
// Return a promise that will resolve when re-auth completes
|
|
76
|
+
return new Promise((resolve, reject) => {
|
|
77
|
+
this.#pending401Requests.push({
|
|
78
|
+
request,
|
|
79
|
+
requestConfig,
|
|
80
|
+
retry: async () => {
|
|
81
|
+
const { data, response: retryResponse } = await client.request(requestConfig);
|
|
82
|
+
return this.#createResponse(data, retryResponse);
|
|
83
|
+
},
|
|
84
|
+
resolve,
|
|
85
|
+
reject,
|
|
86
|
+
retries,
|
|
87
|
+
});
|
|
88
|
+
// Show login overlay
|
|
89
|
+
authContext.timeOut();
|
|
90
|
+
console.log('[Interceptor] 401 Unauthorized - queuing request for re-authentication and have tried', retries - 1, 'times before', requestConfig);
|
|
91
|
+
});
|
|
35
92
|
});
|
|
36
93
|
}
|
|
37
94
|
/**
|
|
@@ -40,13 +97,20 @@ export class UmbApiInterceptorController extends UmbControllerBase {
|
|
|
40
97
|
* @internal
|
|
41
98
|
*/
|
|
42
99
|
addForbiddenResponseInterceptor(client) {
|
|
43
|
-
client.interceptors.response.use(
|
|
44
|
-
if (response.status
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
100
|
+
client.interceptors.response.use((response) => {
|
|
101
|
+
if (response.status !== 403)
|
|
102
|
+
return response;
|
|
103
|
+
// Build a plain ProblemDetails object for the response body
|
|
104
|
+
const problemDetails = {
|
|
105
|
+
status: response.status,
|
|
106
|
+
title: response.statusText ||
|
|
107
|
+
'You do not have the necessary permissions to complete the requested action. If you believe this is in error, please reach out to your administrator.',
|
|
108
|
+
detail: undefined,
|
|
109
|
+
errors: undefined,
|
|
110
|
+
type: 'Unauthorized',
|
|
111
|
+
stack: undefined,
|
|
112
|
+
};
|
|
113
|
+
return this.#createResponse(problemDetails, response);
|
|
50
114
|
});
|
|
51
115
|
}
|
|
52
116
|
/**
|
|
@@ -55,19 +119,15 @@ export class UmbApiInterceptorController extends UmbControllerBase {
|
|
|
55
119
|
* @internal
|
|
56
120
|
*/
|
|
57
121
|
addUmbGeneratedResourceInterceptor(client) {
|
|
58
|
-
client.interceptors.response.use(
|
|
59
|
-
if (!response.headers.has('Umb-Generated-Resource'))
|
|
122
|
+
client.interceptors.response.use((response) => {
|
|
123
|
+
if (!response.headers.has('Umb-Generated-Resource'))
|
|
60
124
|
return response;
|
|
61
|
-
}
|
|
62
125
|
const generatedResource = response.headers.get('Umb-Generated-Resource');
|
|
63
126
|
if (generatedResource === null) {
|
|
64
127
|
return response;
|
|
65
128
|
}
|
|
66
|
-
//
|
|
67
|
-
|
|
68
|
-
...response,
|
|
69
|
-
});
|
|
70
|
-
return newResponse;
|
|
129
|
+
// Return a new response with the generated resource in the body (plain text)
|
|
130
|
+
return this.#createResponse(generatedResource, response);
|
|
71
131
|
});
|
|
72
132
|
}
|
|
73
133
|
/**
|
|
@@ -77,40 +137,49 @@ export class UmbApiInterceptorController extends UmbControllerBase {
|
|
|
77
137
|
*/
|
|
78
138
|
addErrorInterceptor(client) {
|
|
79
139
|
client.interceptors.response.use(async (response) => {
|
|
140
|
+
// If the response is ok, we just return the response
|
|
80
141
|
if (response.ok)
|
|
81
142
|
return response;
|
|
82
|
-
//
|
|
83
|
-
if (response.status ===
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
143
|
+
// We will check if it is not a 401 or 403 error, as that is handled by other interceptors
|
|
144
|
+
if (response.status === 401 || response.status === 403)
|
|
145
|
+
return response;
|
|
146
|
+
// Special handling for 404 Not Found
|
|
147
|
+
if (response.status === 404) {
|
|
148
|
+
const notFoundProblemDetails = {
|
|
149
|
+
status: response.status,
|
|
150
|
+
title: response.statusText || 'The requested resource was not found.',
|
|
151
|
+
detail: undefined,
|
|
152
|
+
errors: undefined,
|
|
153
|
+
type: 'NotFound',
|
|
154
|
+
stack: undefined,
|
|
155
|
+
};
|
|
156
|
+
return this.#createResponse(notFoundProblemDetails, response);
|
|
157
|
+
}
|
|
158
|
+
// For all other errors, we will build a ProblemDetails object
|
|
159
|
+
let problemDetails = {
|
|
160
|
+
status: response.status,
|
|
161
|
+
title: response.statusText ||
|
|
162
|
+
'A fatal server error occurred. If this continues, please reach out to your administrator.',
|
|
163
|
+
detail: undefined,
|
|
164
|
+
errors: undefined,
|
|
165
|
+
type: 'ServerError',
|
|
166
|
+
stack: undefined,
|
|
167
|
+
};
|
|
168
|
+
try {
|
|
169
|
+
// Clones the response to read the body
|
|
170
|
+
const origResponse = response.clone();
|
|
171
|
+
const errorBody = await origResponse.json();
|
|
172
|
+
// If there is JSON in the error, we will try to parse it as a ProblemDetails object
|
|
173
|
+
if (errorBody && isProblemDetailsLike(errorBody)) {
|
|
174
|
+
// Merge the parsed problem details into our default
|
|
175
|
+
problemDetails = errorBody;
|
|
110
176
|
}
|
|
111
177
|
}
|
|
112
|
-
|
|
113
|
-
|
|
178
|
+
catch (e) {
|
|
179
|
+
// Ignore JSON parse error
|
|
180
|
+
console.error('[Interceptor] Caught a server error, but failed parsing error body (expected JSON)', e);
|
|
181
|
+
}
|
|
182
|
+
return this.#createResponse(problemDetails, response);
|
|
114
183
|
});
|
|
115
184
|
}
|
|
116
185
|
/**
|
|
@@ -141,6 +210,63 @@ export class UmbApiInterceptorController extends UmbControllerBase {
|
|
|
141
210
|
return response;
|
|
142
211
|
});
|
|
143
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Listen for authorization signal to retry GET-requests that received a 401 Unauthorized response.
|
|
215
|
+
* This will retry all pending requests that received a 401 Unauthorized response after re-authentication.
|
|
216
|
+
* It will also notify the user about non-GET requests that received a 401 Unauthorized response.
|
|
217
|
+
* @internal
|
|
218
|
+
*/
|
|
219
|
+
handleUnauthorizedAuthRetry() {
|
|
220
|
+
this.consumeContext(UMB_AUTH_CONTEXT, (context) => {
|
|
221
|
+
this.observe(context?.authorizationSignal, () => {
|
|
222
|
+
console.log('[Interceptor] 401 Unauthorized - re-authentication completed');
|
|
223
|
+
// On auth, retry all pending requests
|
|
224
|
+
const requests = this.#pending401Requests.splice(0, this.#pending401Requests.length);
|
|
225
|
+
requests.forEach((req) => {
|
|
226
|
+
console.log('[Interceptor] 401 Unauthorized - retrying request after re-authentication', req.requestConfig);
|
|
227
|
+
req.retry().then(req.resolve).catch(req.reject);
|
|
228
|
+
});
|
|
229
|
+
// Notify about non-GET 401s after successful re-auth
|
|
230
|
+
if (this.#nonGet401Requests.length > 0) {
|
|
231
|
+
const errors = {};
|
|
232
|
+
this.#nonGet401Requests.forEach((req) => {
|
|
233
|
+
errors[`${req.request.method} ${req.request.url}`] = `Request failed with 401 Unauthorized.`;
|
|
234
|
+
});
|
|
235
|
+
this.#peekError('Some actions were not completed', 'Some actions could not be completed because your session expired. Please try again.', errors, 'warning');
|
|
236
|
+
this.#nonGet401Requests.length = 0; // Clear after notifying
|
|
237
|
+
}
|
|
238
|
+
}, '_authClearNonGet401Requests');
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Helper to create a new Response with correct Content-Type.
|
|
243
|
+
* @param {unknown} body The body of the response, can be a string or an object.
|
|
244
|
+
* @param {Response} originalResponse The original response to copy status and headers from.
|
|
245
|
+
* @returns {Response} The new Response object with the correct Content-Type and body.
|
|
246
|
+
*/
|
|
247
|
+
#createResponse(body, originalResponse) {
|
|
248
|
+
const isString = typeof body === 'string';
|
|
249
|
+
const contentType = isString ? 'text/plain' : 'application/json';
|
|
250
|
+
const responseBody = isString ? body : JSON.stringify(body);
|
|
251
|
+
// Construct new headers but preserve "X-" headers from the original response
|
|
252
|
+
const headersOverride = {};
|
|
253
|
+
originalResponse.headers.forEach((value, key) => {
|
|
254
|
+
if (key.toLowerCase().startsWith('x-')) {
|
|
255
|
+
headersOverride[key] = value;
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
return new Response(responseBody, {
|
|
259
|
+
status: originalResponse.status,
|
|
260
|
+
statusText: originalResponse.statusText,
|
|
261
|
+
headers: {
|
|
262
|
+
...headersOverride,
|
|
263
|
+
'Content-Type': contentType,
|
|
264
|
+
},
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Helper to show a notification error.
|
|
269
|
+
*/
|
|
144
270
|
async #peekError(headline, message, details, color) {
|
|
145
271
|
// Store the host for usage in the following async context
|
|
146
272
|
const host = this._host;
|