@umbraco-cms/backoffice 17.4.0-rc → 17.4.0-rc2

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.
Files changed (84) hide show
  1. package/custom-elements.json +1 -1
  2. package/dist-cms/apps/app/app.element.js +120 -7
  3. package/dist-cms/apps/backoffice/backoffice.context.js +1 -9
  4. package/dist-cms/apps/backoffice/backoffice.element.d.ts +0 -2
  5. package/dist-cms/apps/backoffice/backoffice.element.js +0 -58
  6. package/dist-cms/apps/backoffice/components/backoffice-main.element.d.ts +2 -2
  7. package/dist-cms/apps/backoffice/components/backoffice-main.element.js +16 -3
  8. package/dist-cms/libs/extension-api/controller/base-extension-initializer.controller.d.ts +1 -1
  9. package/dist-cms/libs/extension-api/controller/base-extension-initializer.controller.js +61 -19
  10. package/dist-cms/libs/extension-api/controller/extension-api-initializer.controller.d.ts +1 -1
  11. package/dist-cms/libs/extension-api/controller/extension-api-initializer.controller.js +10 -3
  12. package/dist-cms/libs/extension-api/controller/extension-element-and-api-initializer.controller.d.ts +1 -1
  13. package/dist-cms/libs/extension-api/controller/extension-element-and-api-initializer.controller.js +12 -3
  14. package/dist-cms/libs/extension-api/controller/extension-element-initializer.controller.d.ts +1 -1
  15. package/dist-cms/libs/extension-api/controller/extension-element-initializer.controller.js +11 -3
  16. package/dist-cms/libs/extension-api/controller/extension-manifest-initializer.controller.d.ts +1 -1
  17. package/dist-cms/libs/extension-api/controller/extension-manifest-initializer.controller.js +1 -1
  18. package/dist-cms/libs/extension-api/initializers/extension-initializer-base.d.ts +2 -2
  19. package/dist-cms/libs/extension-api/initializers/extension-initializer-base.js +7 -3
  20. package/dist-cms/libs/extension-api/registry/extension.registry.js +22 -2
  21. package/dist-cms/packages/block/block/conditions/block-workspace-is-readonly.condition.js +4 -2
  22. package/dist-cms/packages/block/block/context/block-entry.context.js +1 -4
  23. package/dist-cms/packages/block/block/workspace/block-element-manager.js +2 -2
  24. package/dist-cms/packages/block/block/workspace/block-workspace-editor.element.d.ts +1 -0
  25. package/dist-cms/packages/block/block/workspace/block-workspace-editor.element.js +31 -9
  26. package/dist-cms/packages/block/block/workspace/block-workspace-language-access.controller.d.ts +16 -0
  27. package/dist-cms/packages/block/block/workspace/block-workspace-language-access.controller.js +126 -0
  28. package/dist-cms/packages/block/block/workspace/block-workspace.context.js +23 -19
  29. package/dist-cms/packages/block/block/workspace/manifests.js +3 -0
  30. package/dist-cms/packages/block/block-custom-view/types.d.ts +1 -0
  31. package/dist-cms/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.js +4 -5
  32. package/dist-cms/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.js +2 -5
  33. package/dist-cms/packages/block/block-list/components/block-list-entry/block-list-entry.element.js +11 -6
  34. package/dist-cms/packages/block/block-rte/components/block-rte-entry/block-rte-entry.element.js +4 -5
  35. package/dist-cms/packages/block/block-single/components/block-single-entry/block-single-entry.element.js +4 -5
  36. package/dist-cms/packages/code-editor/umbraco-package.d.ts +1 -0
  37. package/dist-cms/packages/code-editor/umbraco-package.js +1 -0
  38. package/dist-cms/packages/content/content/global-components/content-workspace-property.element.js +1 -1
  39. package/dist-cms/packages/core/components/body-layout/body-layout.element.js +3 -1
  40. package/dist-cms/packages/core/extension-registry/conditions/condition-base.controller.js +3 -2
  41. package/dist-cms/packages/core/extension-registry/conditions/delay.condition.js +5 -1
  42. package/dist-cms/packages/core/extension-registry/conditions/switch.condition.d.ts +0 -2
  43. package/dist-cms/packages/core/extension-registry/conditions/switch.condition.js +13 -7
  44. package/dist-cms/packages/core/property/property-guard-manager/property-guard.manager.d.ts +1 -1
  45. package/dist-cms/packages/core/property/property-guard-manager/property-guard.manager.js +6 -3
  46. package/dist-cms/packages/core/property/property-guard-manager/variant-property-guard.manager.d.ts +1 -1
  47. package/dist-cms/packages/core/property/property-guard-manager/variant-property-guard.manager.js +7 -3
  48. package/dist-cms/packages/core/recycle-bin/conditions/is-trashed/entity-is-trashed.condition.js +2 -1
  49. package/dist-cms/packages/core/repository/data-mapper/mapping/data-mapping-resolver.js +1 -0
  50. package/dist-cms/packages/core/utils/guard-manager/guard.manager.base.d.ts +4 -2
  51. package/dist-cms/packages/core/utils/guard-manager/guard.manager.base.js +10 -5
  52. package/dist-cms/packages/core/utils/guard-manager/readonly-guard.manager.js +9 -5
  53. package/dist-cms/packages/core/utils/guard-manager/readonly-variant-guard.manager.d.ts +12 -2
  54. package/dist-cms/packages/core/utils/guard-manager/readonly-variant-guard.manager.js +26 -11
  55. package/dist-cms/packages/core/variant/variant-id.class.d.ts +4 -0
  56. package/dist-cms/packages/core/variant/variant-id.class.js +5 -1
  57. package/dist-cms/packages/core/workspace/components/workspace-action/common/submit/submit.action.d.ts +2 -2
  58. package/dist-cms/packages/core/workspace/components/workspace-action/common/submit/submit.action.js +8 -2
  59. package/dist-cms/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.js +7 -10
  60. package/dist-cms/packages/core/workspace/namable/name-write-guard.manager.js +5 -2
  61. package/dist-cms/packages/core/workspace/workspace.element.d.ts +0 -2
  62. package/dist-cms/packages/core/workspace/workspace.element.js +1 -4
  63. package/dist-cms/packages/documents/document-types/property-type/manifests.js +2 -1
  64. package/dist-cms/packages/documents/documents/reference/repository/manifests.js +2 -1
  65. package/dist-cms/packages/documents/documents/user-permissions/document-property-value/conditions/document-property-value-user-permission.condition.js +2 -0
  66. package/dist-cms/packages/documents/documents/user-permissions/document-property-value/data/manifests.js +4 -2
  67. package/dist-cms/packages/documents/documents/user-permissions/document-property-value/workspace-context/document-block-property-value-user-permission.workspace-context.js +3 -5
  68. package/dist-cms/packages/documents/documents/workspace/actions/save.action.js +2 -0
  69. package/dist-cms/packages/documents/documents/workspace/document-workspace.context.js +6 -1
  70. package/dist-cms/packages/documents/umbraco-package.d.ts +1 -6
  71. package/dist-cms/packages/documents/umbraco-package.js +2 -8
  72. package/dist-cms/packages/media/media/reference/repository/manifests.js +2 -1
  73. package/dist-cms/packages/media/media-types/property-type/manifests.js +2 -1
  74. package/dist-cms/packages/members/member/reference/repository/manifests.js +2 -1
  75. package/dist-cms/packages/members/member-type/property-type/manifests.js +2 -1
  76. package/dist-cms/packages/rte/components/rte-base.element.d.ts +2 -1
  77. package/dist-cms/packages/rte/components/rte-base.element.js +19 -6
  78. package/dist-cms/packages/ufm/umbraco-package.d.ts +1 -0
  79. package/dist-cms/packages/ufm/umbraco-package.js +1 -0
  80. package/dist-cms/packages/user/current-user/current-user.context.d.ts +3 -1
  81. package/dist-cms/packages/user/current-user/current-user.context.js +11 -17
  82. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  83. package/package.json +1 -1
  84. package/vscode-html-custom-data.json +3 -3
@@ -1,11 +1,13 @@
1
1
  import { UMB_DOCUMENT_PROPERTY_VALUE_USER_PERMISSION_TYPE } from '../user-permission.js';
2
2
  import { UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS } from '../../../../../core/repository/index.js';
3
+ import { UmbDocumentPropertyValueUserPermissionFromManagementApiDataMapping } from './from-server.management-api.mapping.js';
4
+ import { UmbDocumentPropertyValueUserPermissionToManagementApiDataMapping } from './to-server.management-api.mapping.js';
3
5
  export const manifests = [
4
6
  {
5
7
  type: 'dataSourceDataMapping',
6
8
  alias: 'Umb.DataSourceDataMapping.ManagementApi.To.DocumentPropertyValuePermissionPresentationModel',
7
9
  name: 'Document Property Value Permission To Management Api Data Mapping',
8
- api: () => import('./to-server.management-api.mapping.js'),
10
+ api: UmbDocumentPropertyValueUserPermissionToManagementApiDataMapping,
9
11
  forDataSource: UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS,
10
12
  forDataModel: UMB_DOCUMENT_PROPERTY_VALUE_USER_PERMISSION_TYPE,
11
13
  },
@@ -13,7 +15,7 @@ export const manifests = [
13
15
  type: 'dataSourceDataMapping',
14
16
  alias: 'Umb.DataSourceDataMapping.ManagementApi.From.DocumentPropertyValuePermissionPresentationModel',
15
17
  name: 'Document Property Value Permission From Management Api Data Mapping',
16
- api: () => import('./from-server.management-api.mapping.js'),
18
+ api: UmbDocumentPropertyValueUserPermissionFromManagementApiDataMapping,
17
19
  forDataSource: UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS,
18
20
  forDataModel: 'DocumentPropertyValuePermissionPresentationModel',
19
21
  },
@@ -9,11 +9,9 @@ export class UmbDocumentBlockPropertyValueUserPermissionWorkspaceContext extends
9
9
  this.consumeContext(UMB_BLOCK_WORKSPACE_CONTEXT, async (context) => {
10
10
  this.#blockWorkspaceContext = context;
11
11
  // We only want to apply the permission logic if the block is in a document
12
- // TODO: revisit this when getContext supports passContextAliasMatches
13
- const contentWorkspaceContext = await this.consumeContext(UMB_CONTENT_WORKSPACE_CONTEXT, () => { })
14
- .passContextAliasMatches()
15
- .asPromise()
16
- .catch(() => undefined);
12
+ const contentWorkspaceContext = await this.getContext(UMB_CONTENT_WORKSPACE_CONTEXT, {
13
+ passContextAliasMatches: true,
14
+ }).catch(() => undefined);
17
15
  if (contentWorkspaceContext?.getEntityType() === UMB_DOCUMENT_ENTITY_TYPE) {
18
16
  this.#observeDocumentBlockProperties();
19
17
  }
@@ -8,6 +8,8 @@ export class UmbDocumentSaveWorkspaceAction extends UmbSaveWorkspaceAction {
8
8
  }
9
9
  async hasAdditionalOptions() {
10
10
  await this._retrieveWorkspaceContext;
11
+ if (!this._workspaceContext)
12
+ return false;
11
13
  const variantOptions = await this.observe(this._workspaceContext.variantOptions)
12
14
  .asPromise()
13
15
  .catch(() => undefined);
@@ -170,10 +170,15 @@ export class UmbDocumentWorkspaceContext extends UmbContentDetailWorkspaceContex
170
170
  }
171
171
  async create(parent, documentTypeUnique, blueprintUnique) {
172
172
  if (blueprintUnique) {
173
+ this.resetState();
174
+ this.loading.addState({ unique: 'blueprint-fetch' });
173
175
  const blueprintRepository = new UmbDocumentBlueprintDetailRepository(this);
174
176
  const { data } = await blueprintRepository.scaffoldByUnique(blueprintUnique);
175
- if (!data)
177
+ if (!data) {
178
+ this.loading.removeState('blueprint-fetch');
176
179
  throw new Error('Blueprint data is missing');
180
+ }
181
+ this.loading.removeState('blueprint-fetch');
177
182
  return this.createScaffold({
178
183
  parent,
179
184
  preset: {
@@ -1,7 +1,2 @@
1
1
  export declare const name = "Umbraco.Core.DocumentManagement";
2
- export declare const extensions: {
3
- name: string;
4
- alias: string;
5
- type: string;
6
- js: () => Promise<typeof import("./manifests.js")>;
7
- }[];
2
+ export declare const extensions: (import("../tiptap/index.js").ManifestTiptapToolbarExtensionButtonKind<import("../tiptap/index.js").MetaTiptapToolbarExtension> | import("../core/modal/index.js").ManifestModal | import("../core/tree/index.js").ManifestTreeItem | import("../core/collection/index.js").ManifestCollection | import("../core/collection/index.js").ManifestCollectionMenu | import("src/packages/core/collection/menu/menu-item/extension/collection-menu-item.extension.js").ManifestCollectionMenuItem | import("../core/tree/index.js").ManifestTree | import("../tiptap/index.js").ManifestTiptapToolbarExtensionActionButtonKind<import("../tiptap/index.js").MetaTiptapToolbarExtension> | import("../tiptap/index.js").ManifestTiptapToolbarExtensionColorPickerButtonKind<import("../tiptap/index.js").MetaTiptapToolbarExtension> | import("../core/extension-registry/index.js").ManifestAppEntryPoint | import("../core/extension-registry/index.js").ManifestBackofficeEntryPoint | import("../core/extension-registry/index.js").ManifestEntryPoint | (import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | import("../../libs/extension-api/index.js").ManifestBundle<import("../../libs/extension-api/index.js").ManifestBase | import("../../libs/extension-api/index.js").ManifestCondition | /*elided*/ any>>>>>>>>>>>) | import("../core/repository/index.js").ManifestDataSourceDataMapping<import("../core/repository/index.js").MetaDataSourceDataMapping> | import("../core/entity-bulk-action/index.js").ManifestEntityBulkActionDeleteKind | import("../core/workspace/index.js").ManifestWorkspaceActionMenuItem<import("../core/workspace/index.js").MetaWorkspaceActionMenuItem> | import("../core/workspace/index.js").ManifestWorkspaceActionMenuItemDefaultKind<import("../core/workspace/index.js").MetaWorkspaceActionMenuItemDefaultKind> | import("../core/workspace/index.js").ManifestWorkspaceInfoApp<import("../core/workspace/index.js").MetaWorkspaceInfoApp> | import("../core/workspace/index.js").ManifestWorkspaceDefaultKind | import("../core/workspace/index.js").ManifestWorkspaceAction<import("../core/workspace/index.js").MetaWorkspaceAction, import("../core/workspace/index.js").UmbWorkspaceAction<import("../core/workspace/index.js").MetaWorkspaceAction>> | import("../core/workspace/index.js").ManifestWorkspaceActionDefaultKind | import("../core/workspace/index.js").ManifestWorkspaceFooterApp | import("../core/workspace/index.js").ManifestWorkspaceFooterAppMenuBreadcrumbKind | import("../core/workspace/index.js").ManifestWorkspaceFooterAppVariantMenuBreadcrumbKind | import("../core/workspace/index.js").ManifestWorkspaceView<import("../core/workspace/index.js").MetaWorkspaceView> | import("../core/workspace/index.js").ManifestWorkspaceViewContentTypeDesignEditorKind | import("../core/workspace/index.js").ManifestWorkspace<import("../core/workspace/index.js").MetaWorkspace, import("../../libs/controller-api/index.js").UmbControllerHostElement, import("../core/workspace/index.js").UmbWorkspaceContext> | import("../core/workspace/index.js").ManifestWorkspaceRoutableKind | import("../core/workspace/index.js").ManifestWorkspaceContext | import("../core/property/index.js").ManifestPropertyContext<import("../core/property/index.js").MetaPropertyContext> | import("../core/property/index.js").ManifestPropertyValueCloner | (import("../core/property-editor/index.js").ManifestPropertyEditorSchema | import("../core/property-editor/index.js").ManifestPropertyEditorUi) | import("../core/property/index.js").ManifestPropertyValuePreset | import("../core/property/index.js").ManifestPropertyValueResolver | import("../ufm/index.js").ManifestUfmFilter | import("../ufm/index.js").ManifestUfmComponent | import("../ufm/index.js").ManifestMarkedExtension | import("../core/entity-action/index.js").ManifestEntityActionDeleteKind | import("../core/entity-action/index.js").ManifestEntityAction<import("../core/entity-action/index.js").MetaEntityAction> | import("../core/entity-action/index.js").ManifestEntityActionDefaultKind | import("src/packages/core/entity-action/common/create/types.js").ManifestEntityActionCreateKind | import("../core/entity-create-option-action/index.js").ManifestEntityCreateOptionAction<import("../core/entity-create-option-action/index.js").MetaEntityCreateOptionAction> | import("../core/tree/index.js").ManifestEntityActionDuplicateToKind | import("../core/tree/index.js").ManifestEntityActionMoveToKind | import("../core/tree/index.js").ManifestEntityActionReloadTreeItemChildrenKind | import("../core/tree/index.js").ManifestEntityActionSortChildrenOfKind | import("../core/section/index.js").ManifestSectionContext<import("../core/section/index.js").MetaSectionContext> | (import("../core/section/index.js").ManifestSectionSidebarApp | import("../core/section/index.js").ManifestSection | import("../core/section/index.js").ManifestSectionRoute | import("../core/section/index.js").ManifestSectionView) | import("../core/dashboard/index.js").ManifestDashboard | import("../core/tree/index.js").ManifestEntityActionCreateFolderKind | import("../core/tree/index.js").ManifestEntityActionDeleteFolderKind | import("../core/tree/index.js").ManifestEntityActionUpdateFolderKind | import("../core/menu/index.js").ManifestMenu | import("../core/menu/index.js").ManifestMenuItem | import("../core/menu/index.js").ManifestMenuItemActionKind | import("../core/menu/index.js").ManifestMenuItemLinkKind | import("../core/menu/index.js").ManifestWorkspaceContextMenuStructureKind | import("../core/tree/index.js").ManifestMenuItemTreeKind | import("../core/collection/index.js").ManifestCollectionAction | import("../core/collection/index.js").ManifestEntityCollectionItemCard<import("../core/collection/index.js").MetaEntityCollectionItemCard> | import("../core/collection/index.js").ManifestEntityCollectionItemRef<import("../core/collection/index.js").MetaEntityCollectionItemRef> | import("../core/collection/index.js").ManifestCollectionActionCreateKind | import("../core/collection/index.js").ManifestCollectionTextFilter | import("../core/collection/index.js").ManifestCollectionView | import("../core/collection/index.js").ManifestWorkspaceViewCollectionKind | import("../content/content/index.js").ManifestAuditLogAction<import("../content/content/index.js").MetaAuditLogAction> | import("../content/content/index.js").ManifestAuditLogActionDefaultKind | import("../content/content/index.js").ManifestEntityActionContentRollbackKind | import("../content/content/index.js").ManifestWorkspaceInfoAppAuditLogKind | import("../content/content/index.js").ManifestWorkspaceViewContentCollectionKind | import("../content/content/index.js").ManifestEntityActionSortChildrenOfContentKind | import("../user/current-user/index.js").ManifestUserProfileApp | import("../user/current-user/index.js").ManifestCurrentUserAction<import("../user/current-user/index.js").MetaCurrentUserAction> | import("../core/icon-registry/index.js").ManifestIcons | import("../user/user-permission/index.js").ManifestEntityUserPermission | import("../user/user-permission/index.js").ManifestGranularUserPermission | import("../core/localization/index.js").ManifestLocalization | import("../core/picker/index.js").ManifestPickerSearchResultItem | import("../core/property-editor-data-source/index.js").ManifestPropertyEditorDataSource | import("../core/validation/index.js").ManifestPropertyValidationPathTranslator<any> | import("src/packages/core/entity-item/entity-item-ref/entity-item-ref.extension.js").ManifestEntityItemRef<import("src/packages/core/entity-item/entity-item-ref/entity-item-ref.extension.js").MetaEntityItemRef> | import("../core/search/index.js").ManifestSearchProvider | import("../core/search/index.js").ManifestSearchResultItem | import("../core/search/index.js").ManifestGlobalSearch | import("../core/extension-registry/index.js").UmbEntityBulkActionExtensions | import("../core/extension-registry/index.js").ManifestExternalLoginProvider | import("../core/extension-registry/index.js").ManifestGlobalContext | import("../core/extension-registry/index.js").ManifestHeaderApp | import("../core/extension-registry/index.js").ManifestHeaderAppButtonKind | import("../core/extension-registry/index.js").ManifestMfaLoginProvider | import("../core/extension-registry/index.js").ManifestPreviewAppProvider | import("../core/extension-registry/index.js").ManifestRepository<import("../../libs/extension-api/index.js").UmbApi> | import("../core/extension-registry/index.js").UmbStoreExtensions | import("../core/auth/index.js").ManifestAuthProvider | import("../core/themes/index.js").ManifestTheme | import("../core/entity-sign/index.js").ManifestEntitySign<import("../core/entity-sign/index.js").MetaEntitySign> | import("src/packages/core/entity-sign/kinds/types.js").ManifestEntitySignIconKind | import("../core/property-action/index.js").UmbPropertyActionExtensions | import("../core/property-sort-mode/index.js").ManifestPropertyActionSortModeKind<import("../core/property-action/index.js").MetaPropertyActionDefaultKind> | import("../core/recycle-bin/index.js").ManifestEntityActionTrashKind | import("../core/recycle-bin/index.js").ManifestEntityActionRestoreFromRecycleBinKind | import("../core/recycle-bin/index.js").ManifestEntityActionEmptyRecycleBinKind | import("../core/recycle-bin/index.js").ManifestEntityBulkActionTrashKind | import("../core/recycle-bin/index.js").ManifestCollectionActionEmptyRecycleBinKind | import("src/packages/core/recycle-bin/tree/tree-item/types.js").ManifestTreeItemRecycleBinKind | import("../core/server-file-system/index.js").ManifestEntityActionRenameServerFileKind | import("src/packages/core/tree/folder/entity-create-option-action/types.js").ManifestEntityCreateOptionActionFolderKind | import("../core/property-sort-mode/index.js").ManifestPropertyContextSortModeKind | import("../block/block-custom-view/index.js").ManifestBlockEditorCustomView | import("../clipboard/index.js").ManifestClipboardCopyPropertyValueTranslator | import("../clipboard/index.js").ManifestClipboardPastePropertyValueTranslator | import("../clipboard/index.js").ManifestPropertyActionPasteFromClipboardKind | import("../clipboard/index.js").ManifestPropertyActionCopyToClipboardKind | import("src/packages/relations/relations/entity-actions/bulk-delete/types.js").ManifestEntityBulkActionDeleteWithRelationKind | import("../relations/relations/index.js").ManifestEntityBulkActionTrashWithRelationKind | import("../relations/relations/index.js").ManifestEntityActionTrashWithRelationKind | import("./documents/types.js").ManifestWorkspaceActionMenuItemPreviewOptionKind | import("../media/media/index.js").ManifestFileUploadPreview | import("../health-check/index.js").ManifestHealthCheck | import("../packages/package/index.js").ManifestPackageView | import("../property-editors/content-picker/index.js").ManifestDynamicRootOrigin | import("../property-editors/content-picker/index.js").ManifestDynamicRootQueryStep | import("src/packages/relations/relations/entity-actions/delete/types.js").ManifestEntityActionDeleteWithRelationKind | import("src/packages/relations/relations/reference/workspace-info-app/types.js").ManifestWorkspaceInfoAppEntityReferencesKind | import("../tiptap/index.js").ManifestTiptapExtension<import("../tiptap/index.js").MetaTiptapExtension> | import("../tiptap/index.js").ManifestTiptapStatusbarExtension<import("../tiptap/index.js").MetaTiptapStatusbarExtension> | import("../tiptap/index.js").ManifestTiptapToolbarExtension<import("../tiptap/index.js").MetaTiptapToolbarExtension> | import("../tiptap/index.js").ManifestTiptapToolbarExtensionMenuKind | import("../tiptap/index.js").ManifestTiptapToolbarExtensionStyleMenuKind | import("src/packages/clipboard/property/context/types.js").ManifestPropertyContextClipboardKind | import("src/packages/core/section/default/types.js").ManifestSectionDefaultKind | import("../markdown-editor/index.js").ManifestMonacoMarkdownEditorAction | import("../core/extension-registry/index.js").UmbExtensionManifestKind)[];
@@ -1,9 +1,3 @@
1
+ import { manifests } from './manifests.js';
1
2
  export const name = 'Umbraco.Core.DocumentManagement';
2
- export const extensions = [
3
- {
4
- name: 'Document Management Bundle',
5
- alias: 'Umb.Bundle.DocumentManagement',
6
- type: 'bundle',
7
- js: () => import('./manifests.js'),
8
- },
9
- ];
3
+ export const extensions = manifests;
@@ -1,4 +1,5 @@
1
1
  import { UMB_MEDIA_REFERENCE_REPOSITORY_ALIAS } from './constants.js';
2
+ import { UmbMediaReferenceResponseManagementApiDataMapping } from './media-reference-response.management-api.mapping.js';
2
3
  import { UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS } from '../../../../core/repository/index.js';
3
4
  export const manifests = [
4
5
  {
@@ -11,7 +12,7 @@ export const manifests = [
11
12
  type: 'dataSourceDataMapping',
12
13
  alias: 'Umb.DataSourceDataMapping.ManagementApi.MediaReferenceResponse',
13
14
  name: 'Media Reference Response Management Api Data Mapping',
14
- api: () => import('./media-reference-response.management-api.mapping.js'),
15
+ api: UmbMediaReferenceResponseManagementApiDataMapping,
15
16
  forDataSource: UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS,
16
17
  forDataModel: 'MediaReferenceResponseModel',
17
18
  },
@@ -1,11 +1,12 @@
1
1
  import { UMB_MEDIA_TYPE_PROPERTY_TYPE_ENTITY_TYPE } from './entity.js';
2
+ import { UmbMediaTypePropertyTypeReferenceResponseManagementApiDataMapping } from './media-type-property-type-reference-response.management-api.mapping.js';
2
3
  import { UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS } from '../../../core/repository/index.js';
3
4
  export const manifests = [
4
5
  {
5
6
  type: 'dataSourceDataMapping',
6
7
  alias: 'Umb.DataSourceDataMapping.ManagementApi.MediaTypePropertyTypeReferenceResponse',
7
8
  name: 'Media Type Property Type Reference Response Management Api Data Mapping',
8
- api: () => import('./media-type-property-type-reference-response.management-api.mapping.js'),
9
+ api: UmbMediaTypePropertyTypeReferenceResponseManagementApiDataMapping,
9
10
  forDataSource: UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS,
10
11
  forDataModel: 'MediaTypePropertyTypeReferenceResponseModel',
11
12
  },
@@ -1,4 +1,5 @@
1
1
  import { UMB_MEMBER_REFERENCE_REPOSITORY_ALIAS } from './constants.js';
2
+ import { UmbMemberReferenceResponseManagementApiDataMapping } from './member-reference-response.management-api.mapping.js';
2
3
  import { UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS } from '../../../../core/repository/index.js';
3
4
  export const manifests = [
4
5
  {
@@ -11,7 +12,7 @@ export const manifests = [
11
12
  type: 'dataSourceDataMapping',
12
13
  alias: 'Umb.DataSourceDataMapping.ManagementApi.MemberReferenceResponse',
13
14
  name: 'Member Reference Response Management Api Data Mapping',
14
- api: () => import('./member-reference-response.management-api.mapping.js'),
15
+ api: UmbMemberReferenceResponseManagementApiDataMapping,
15
16
  forDataSource: UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS,
16
17
  forDataModel: 'MemberReferenceResponseModel',
17
18
  },
@@ -1,11 +1,12 @@
1
1
  import { UMB_MEMBER_TYPE_PROPERTY_TYPE_ENTITY_TYPE } from './entity.js';
2
+ import { UmbMemberTypePropertyTypeReferenceResponseManagementApiDataMapping } from './member-type-property-type-reference-response.management-api.mapping.js';
2
3
  import { UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS } from '../../../core/repository/index.js';
3
4
  export const manifests = [
4
5
  {
5
6
  type: 'dataSourceDataMapping',
6
7
  alias: 'Umb.DataSourceDataMapping.ManagementApi.MemberTypePropertyTypeReferenceResponse',
7
8
  name: 'Member Type Property Type Reference Response Management Api Data Mapping',
8
- api: () => import('./member-type-property-type-reference-response.management-api.mapping.js'),
9
+ api: UmbMemberTypePropertyTypeReferenceResponseManagementApiDataMapping,
9
10
  forDataSource: UMB_MANAGEMENT_API_DATA_SOURCE_ALIAS,
10
11
  forDataModel: 'MemberTypePropertyTypeReferenceResponseModel',
11
12
  },
@@ -22,7 +22,8 @@ export declare abstract class UmbPropertyEditorUiRteElementBase extends UmbPrope
22
22
  * Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.
23
23
  * @default false
24
24
  */
25
- readonly: boolean;
25
+ get readonly(): boolean;
26
+ set readonly(value: boolean);
26
27
  mandatory?: boolean;
27
28
  mandatoryMessage?: string | undefined;
28
29
  protected _config?: UmbPropertyEditorConfigCollection;
@@ -72,6 +72,23 @@ export class UmbPropertyEditorUiRteElementBase extends UmbFormControlMixin(UmbLi
72
72
  get value() {
73
73
  return super.value;
74
74
  }
75
+ /**
76
+ * Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.
77
+ * @default false
78
+ */
79
+ get readonly() {
80
+ return this.#readonly;
81
+ }
82
+ set readonly(value) {
83
+ this.#readonly = value;
84
+ if (this.#readonly) {
85
+ this.#managerContext.readOnlyState.fallbackToPermitted();
86
+ }
87
+ else {
88
+ this.#managerContext.readOnlyState.fallbackToNotPermitted();
89
+ }
90
+ }
91
+ #readonly;
75
92
  /**
76
93
  * @deprecated _value is depreacated, use `super.value` instead.
77
94
  * @returns {UmbPropertyEditorRteValueType | undefined} The value of the property editor.
@@ -90,11 +107,7 @@ export class UmbPropertyEditorUiRteElementBase extends UmbFormControlMixin(UmbLi
90
107
  #unusedSettingsLookup;
91
108
  constructor() {
92
109
  super();
93
- /**
94
- * Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.
95
- * @default false
96
- */
97
- this.readonly = false;
110
+ this.#readonly = false;
98
111
  this._css = {};
99
112
  /**
100
113
  * Separate state for markup, to avoid re-rendering/re-setting the value of the Tiptap editor when the value does not really change.
@@ -303,7 +316,7 @@ __decorate([
303
316
  ], UmbPropertyEditorUiRteElementBase.prototype, "value", null);
304
317
  __decorate([
305
318
  property({ type: Boolean, reflect: true })
306
- ], UmbPropertyEditorUiRteElementBase.prototype, "readonly", void 0);
319
+ ], UmbPropertyEditorUiRteElementBase.prototype, "readonly", null);
307
320
  __decorate([
308
321
  property({ type: Boolean })
309
322
  ], UmbPropertyEditorUiRteElementBase.prototype, "mandatory", void 0);
@@ -1,3 +1,4 @@
1
+ export declare const name = "Umbraco.FlavoredMarkdown";
1
2
  export declare const extensions: {
2
3
  name: string;
3
4
  alias: string;
@@ -1,3 +1,4 @@
1
+ export const name = 'Umbraco.FlavoredMarkdown';
1
2
  export const extensions = [
2
3
  {
3
4
  name: 'Umbraco Flavored Markdown Bundle',
@@ -24,7 +24,9 @@ export declare class UmbCurrentUserContext extends UmbContextBase {
24
24
  readonly userName: import("rxjs").Observable<string | undefined>;
25
25
  constructor(host: UmbControllerHost);
26
26
  /**
27
- * Loads the current user
27
+ * Loads the current user. Concurrent callers share the same in-flight promise,
28
+ * so awaiting `load()` always waits for `#currentUser` to be populated.
29
+ * @returns {Promise<void>} Resolves once the current user observable has emitted.
28
30
  */
29
31
  load(): Promise<void>;
30
32
  /**
@@ -2,12 +2,10 @@ import { UmbCurrentUserRepository } from './repository/current-user.repository.j
2
2
  import { UMB_CURRENT_USER_CONTEXT } from './current-user.context.token.js';
3
3
  import { UmbContextBase } from '../../../libs/class-api/index.js';
4
4
  import { filter, firstValueFrom } from '../../../external/rxjs/index.js';
5
- import { UMB_AUTH_CONTEXT } from '../../core/auth/index.js';
6
5
  import { UmbObjectState } from '../../../libs/observable-api/index.js';
7
6
  import { umbLocalizationRegistry } from '../../core/localization/index.js';
8
7
  export class UmbCurrentUserContext extends UmbContextBase {
9
8
  #currentUser;
10
- #authContext;
11
9
  #currentUserRepository;
12
10
  constructor(host) {
13
11
  super(host, UMB_CURRENT_USER_CONTEXT);
@@ -31,25 +29,30 @@ export class UmbCurrentUserContext extends UmbContextBase {
31
29
  this.unique = this.#currentUser.asObservablePart((user) => user?.unique);
32
30
  this.userName = this.#currentUser.asObservablePart((user) => user?.userName);
33
31
  this.#currentUserRepository = new UmbCurrentUserRepository(this);
34
- this.consumeContext(UMB_AUTH_CONTEXT, (instance) => {
35
- this.#authContext = instance;
36
- this.#observeIsAuthorized();
37
- });
38
32
  this.observe(this.languageIsoCode, (currentLanguageIsoCode) => {
39
33
  if (!currentLanguageIsoCode)
40
34
  return;
41
35
  umbLocalizationRegistry.loadLanguage(currentLanguageIsoCode);
42
36
  });
43
37
  }
38
+ #loadPromise;
44
39
  /**
45
- * Loads the current user
40
+ * Loads the current user. Concurrent callers share the same in-flight promise,
41
+ * so awaiting `load()` always waits for `#currentUser` to be populated.
42
+ * @returns {Promise<void>} Resolves once the current user observable has emitted.
46
43
  */
47
44
  async load() {
45
+ if (!this.#loadPromise) {
46
+ this.#loadPromise = this.#doLoad();
47
+ }
48
+ return this.#loadPromise;
49
+ }
50
+ async #doLoad() {
48
51
  const { asObservable } = await this.#currentUserRepository.requestCurrentUser();
49
52
  if (asObservable) {
50
53
  await this.observe(asObservable(), (currentUser) => {
51
54
  this.#currentUser?.setValue(currentUser);
52
- })
55
+ }, 'observeUser')
53
56
  .asPromise()
54
57
  // Ignore the error, we can assume that the flow was stopped (asPromise failed), but it does not mean that the consumption was not successful.
55
58
  .catch(() => undefined);
@@ -191,14 +194,5 @@ export class UmbCurrentUserContext extends UmbContextBase {
191
194
  getUserName() {
192
195
  return this.#currentUser.getValue()?.userName;
193
196
  }
194
- #observeIsAuthorized() {
195
- if (!this.#authContext)
196
- return;
197
- this.observe(this.#authContext.isAuthorized, (isAuthorized) => {
198
- if (isAuthorized) {
199
- this.load();
200
- }
201
- });
202
- }
203
197
  }
204
198
  export default UmbCurrentUserContext;