@umbraco-cms/backoffice 14.0.0-631d8769 → 14.0.0-709b3cbf

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 (161) hide show
  1. package/dist-cms/assets/lang/en-us.js +18 -18
  2. package/dist-cms/assets/lang/en-us.ts +18 -18
  3. package/dist-cms/custom-elements.json +11 -11
  4. package/dist-cms/external/backend-api/index.js +1 -1
  5. package/dist-cms/external/backend-api/src/index.d.ts +17 -1
  6. package/dist-cms/external/backend-api/src/models/CreateContentRequestModelBaseDocumentValueModelDocumentVariantRequestModel.d.ts +1 -0
  7. package/dist-cms/external/backend-api/src/models/CreateContentRequestModelBaseMediaValueModelMediaVariantRequestModel.d.ts +1 -0
  8. package/dist-cms/external/backend-api/src/models/CreateContentTypeRequestModelBaseCreateDocumentTypePropertyTypeRequestModelCreateDocumentTypePropertyTypeContainerRequestModel.d.ts +2 -0
  9. package/dist-cms/external/backend-api/src/models/CreateContentTypeRequestModelBaseCreateMediaTypePropertyTypeRequestModelCreateMediaTypePropertyTypeContainerRequestModel.d.ts +20 -0
  10. package/dist-cms/external/backend-api/src/models/CreateMediaTypePropertyTypeContainerRequestModel.d.ts +2 -0
  11. package/dist-cms/external/backend-api/src/models/CreateMediaTypePropertyTypeRequestModel.d.ts +2 -0
  12. package/dist-cms/external/backend-api/src/models/CreateMediaTypeRequestModel.d.ts +2 -0
  13. package/dist-cms/external/backend-api/src/models/DeleteUserGroupsRequestModel.d.ts +3 -0
  14. package/dist-cms/external/backend-api/src/models/DeleteUsersRequestModel.d.ts +3 -0
  15. package/dist-cms/external/backend-api/src/models/ItemSortingRequestModel.d.ts +4 -0
  16. package/dist-cms/external/backend-api/src/models/ProblemDetailsBuilderModel.d.ts +1 -0
  17. package/dist-cms/external/backend-api/src/models/RelationResponseModel.d.ts +2 -2
  18. package/dist-cms/external/backend-api/src/models/ResetPasswordRequestModel.d.ts +3 -0
  19. package/dist-cms/external/backend-api/src/models/ResetPasswordTokenRequestModel.d.ts +4 -0
  20. package/dist-cms/external/backend-api/src/models/SortingRequestModel.d.ts +5 -0
  21. package/dist-cms/external/backend-api/src/models/UpdateContentTypeRequestModelBaseUpdateMediaTypePropertyTypeRequestModelUpdateMediaTypePropertyTypeContainerRequestModel.d.ts +18 -0
  22. package/dist-cms/external/backend-api/src/models/{UpdateFolderReponseModel.d.ts → UpdateFolderResponseModel.d.ts} +1 -1
  23. package/dist-cms/external/backend-api/src/models/UpdateMediaTypePropertyTypeContainerRequestModel.d.ts +2 -0
  24. package/dist-cms/external/backend-api/src/models/UpdateMediaTypePropertyTypeRequestModel.d.ts +2 -0
  25. package/dist-cms/external/backend-api/src/models/UpdateMediaTypeRequestModel.d.ts +2 -0
  26. package/dist-cms/external/backend-api/src/models/VerifyResetPasswordTokenRequestModel.d.ts +4 -0
  27. package/dist-cms/external/backend-api/src/services/DataTypeResource.d.ts +2 -2
  28. package/dist-cms/external/backend-api/src/services/DocumentResource.d.ts +21 -21
  29. package/dist-cms/external/backend-api/src/services/DocumentTypeResource.d.ts +35 -3
  30. package/dist-cms/external/backend-api/src/services/MediaResource.d.ts +13 -5
  31. package/dist-cms/external/backend-api/src/services/MediaTypeResource.d.ts +56 -0
  32. package/dist-cms/external/backend-api/src/services/RelationResource.d.ts +1 -9
  33. package/dist-cms/external/backend-api/src/services/SecurityResource.d.ts +24 -0
  34. package/dist-cms/external/backend-api/src/services/UserGroupResource.d.ts +8 -0
  35. package/dist-cms/external/backend-api/src/services/UserResource.d.ts +8 -0
  36. package/dist-cms/external/router-slot/config.d.ts +8 -0
  37. package/dist-cms/external/router-slot/index.d.ts +4 -3
  38. package/dist-cms/external/router-slot/index.js +1 -1
  39. package/dist-cms/external/router-slot/model.d.ts +123 -0
  40. package/dist-cms/external/router-slot/router-slot.d.ts +111 -0
  41. package/dist-cms/external/router-slot/util/anchor.d.ts +5 -0
  42. package/dist-cms/external/router-slot/util/events.d.ts +26 -0
  43. package/dist-cms/external/router-slot/util/history.d.ts +32 -0
  44. package/dist-cms/external/router-slot/util/index.d.ts +6 -0
  45. package/dist-cms/external/router-slot/util/router.d.ts +72 -0
  46. package/dist-cms/external/router-slot/util/shadow.d.ts +15 -0
  47. package/dist-cms/external/router-slot/util/url.d.ts +78 -0
  48. package/dist-cms/external/router-slot/util.d.ts +1 -0
  49. package/dist-cms/libs/observable-api/observer.js +2 -1
  50. package/dist-cms/mocks/browser-handlers.js +1 -1
  51. package/dist-cms/mocks/data/document.data.d.ts +6 -2
  52. package/dist-cms/mocks/data/document.data.js +54 -4
  53. package/dist-cms/mocks/data/entity.data.js +0 -2
  54. package/dist-cms/mocks/handlers/{document.handlers.js → document/document.handlers.js} +28 -40
  55. package/dist-cms/mocks/handlers/document/index.d.ts +1 -0
  56. package/dist-cms/mocks/handlers/document/index.js +5 -0
  57. package/dist-cms/mocks/handlers/document/item.handlers.d.ts +1 -0
  58. package/dist-cms/mocks/handlers/document/item.handlers.js +13 -0
  59. package/dist-cms/mocks/handlers/document/recycle-bin.handlers.d.ts +1 -0
  60. package/dist-cms/mocks/handlers/document/recycle-bin.handlers.js +16 -0
  61. package/dist-cms/mocks/handlers/document/slug.d.ts +1 -0
  62. package/dist-cms/mocks/handlers/document/slug.js +1 -0
  63. package/dist-cms/mocks/handlers/document/tree.handlers.d.ts +1 -0
  64. package/dist-cms/mocks/handlers/document/tree.handlers.js +16 -0
  65. package/dist-cms/packages/core/components/input-list-base/input-list-base.js +1 -1
  66. package/dist-cms/packages/core/content-type/content-type-container-structure-helper.class.js +2 -2
  67. package/dist-cms/packages/core/content-type/content-type-property-structure-helper.class.js +1 -1
  68. package/dist-cms/packages/core/content-type/content-type-structure-manager.class.d.ts +15 -15
  69. package/dist-cms/packages/core/content-type/content-type-structure-manager.class.js +79 -103
  70. package/dist-cms/packages/core/entity-action/common/trash/trash.action.d.ts +1 -1
  71. package/dist-cms/packages/core/entity-action/common/trash/trash.action.js +1 -1
  72. package/dist-cms/packages/core/modal/token/create-document-modal.token.d.ts +8 -0
  73. package/dist-cms/packages/core/modal/token/create-document-modal.token.js +5 -0
  74. package/dist-cms/packages/core/modal/token/index.d.ts +1 -1
  75. package/dist-cms/packages/core/modal/token/index.js +1 -1
  76. package/dist-cms/packages/core/store/store-base.d.ts +18 -6
  77. package/dist-cms/packages/core/store/store-base.js +22 -6
  78. package/dist-cms/packages/documents/document-types/manifests.js +0 -2
  79. package/dist-cms/packages/documents/document-types/repository/document-type.repository.d.ts +0 -21
  80. package/dist-cms/packages/documents/document-types/repository/document-type.repository.js +6 -18
  81. package/dist-cms/packages/documents/document-types/repository/sources/document-type.server.data.d.ts +1 -1
  82. package/dist-cms/packages/documents/document-types/repository/sources/document-type.server.data.js +1 -12
  83. package/dist-cms/packages/documents/document-types/workspace/document-type-workspace.context.js +27 -27
  84. package/dist-cms/packages/documents/document-types/workspace/views/design/document-type-workspace-view-edit.element.js +8 -4
  85. package/dist-cms/packages/documents/documents/entity-actions/create/create-document-modal.element.d.ts +17 -0
  86. package/dist-cms/packages/documents/{document-types/modals/allowed-document-types/allowed-document-types-modal.element.js → documents/entity-actions/create/create-document-modal.element.js} +29 -38
  87. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.d.ts +0 -2
  88. package/dist-cms/packages/documents/documents/entity-actions/create/create.action.js +7 -23
  89. package/dist-cms/packages/documents/documents/entity-actions/create/manifests.d.ts +2 -0
  90. package/dist-cms/packages/documents/documents/entity-actions/create/manifests.js +27 -0
  91. package/dist-cms/packages/documents/documents/entity-actions/manifests.d.ts +2 -2
  92. package/dist-cms/packages/documents/documents/entity-actions/manifests.js +15 -48
  93. package/dist-cms/packages/documents/documents/index.d.ts +1 -0
  94. package/dist-cms/packages/documents/documents/index.js +1 -0
  95. package/dist-cms/packages/documents/documents/manifests.d.ts +13 -1
  96. package/dist-cms/packages/documents/documents/manifests.js +2 -0
  97. package/dist-cms/packages/documents/documents/menu-item/manifests.js +1 -1
  98. package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.d.ts +14 -0
  99. package/dist-cms/packages/documents/documents/recycle-bin/entity-action/manifests.js +18 -0
  100. package/dist-cms/packages/documents/documents/recycle-bin/index.d.ts +1 -0
  101. package/dist-cms/packages/documents/documents/recycle-bin/index.js +1 -0
  102. package/dist-cms/packages/documents/documents/recycle-bin/manifests.d.ts +13 -0
  103. package/dist-cms/packages/documents/documents/recycle-bin/manifests.js +5 -0
  104. package/dist-cms/packages/documents/documents/recycle-bin/menu-item/manifests.d.ts +1 -0
  105. package/dist-cms/packages/documents/documents/recycle-bin/menu-item/manifests.js +14 -0
  106. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.d.ts +28 -0
  107. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.js +56 -0
  108. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle.bin.tree.store.d.ts +18 -0
  109. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle.bin.tree.store.js +19 -0
  110. package/dist-cms/packages/documents/documents/recycle-bin/repository/index.d.ts +1 -0
  111. package/dist-cms/packages/documents/documents/recycle-bin/repository/index.js +1 -0
  112. package/dist-cms/packages/documents/documents/recycle-bin/repository/manifests.d.ts +4 -0
  113. package/dist-cms/packages/documents/documents/recycle-bin/repository/manifests.js +17 -0
  114. package/dist-cms/packages/documents/documents/recycle-bin/repository/sources/document-recycle-bin.tree.server.data.d.ts +29 -0
  115. package/dist-cms/packages/documents/documents/recycle-bin/repository/sources/document-recycle-bin.tree.server.data.js +49 -0
  116. package/dist-cms/packages/documents/documents/recycle-bin/tree/manifests.d.ts +2 -0
  117. package/dist-cms/packages/documents/documents/recycle-bin/tree/manifests.js +19 -0
  118. package/dist-cms/packages/documents/documents/repository/document-item.store.d.ts +20 -0
  119. package/dist-cms/packages/documents/documents/repository/document-item.store.js +23 -0
  120. package/dist-cms/packages/documents/documents/repository/document.repository.d.ts +10 -9
  121. package/dist-cms/packages/documents/documents/repository/document.repository.js +47 -25
  122. package/dist-cms/packages/documents/documents/repository/document.store.d.ts +0 -12
  123. package/dist-cms/packages/documents/documents/repository/document.store.js +0 -16
  124. package/dist-cms/packages/documents/documents/repository/sources/document-item.server.data.d.ts +24 -0
  125. package/dist-cms/packages/documents/documents/repository/sources/document-item.server.data.js +31 -0
  126. package/dist-cms/packages/documents/documents/repository/sources/document.server.data.d.ts +9 -21
  127. package/dist-cms/packages/documents/documents/repository/sources/document.server.data.js +33 -62
  128. package/dist-cms/packages/documents/documents/workspace/manifests.js +6 -4
  129. package/dist-cms/packages/documents/manifests.d.ts +13 -1
  130. package/dist-cms/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.d.ts +3 -1
  131. package/dist-cms/packages/settings/dashboards/performance-profiling/dashboard-performance-profiling.element.js +26 -40
  132. package/dist-cms/packages/settings/relation-types/workspace/views/relation/workspace-view-relation-type-relation.element.js +17 -17
  133. package/dist-cms/packages/templating/templates/modals/query-builder/query-builder.element.d.ts +1 -1
  134. package/dist-cms/packages/templating/templates/modals/query-builder/query-builder.element.js +1 -1
  135. package/dist-cms/packages/users/user-groups/collection/user-group-collection-header.element.js +2 -2
  136. package/dist-cms/packages/users/user-groups/collection/user-group-collection-view.element.js +6 -6
  137. package/dist-cms/packages/users/user-groups/workspace/user-group-workspace-editor.element.js +15 -12
  138. package/dist-cms/packages/users/users/collection/user-collection-header.element.js +18 -11
  139. package/dist-cms/packages/users/users/collection/views/grid/user-collection-grid-view.element.js +6 -6
  140. package/dist-cms/packages/users/users/collection/views/table/column-layouts/status/user-table-status-column-layout.element.js +3 -3
  141. package/dist-cms/packages/users/users/index.d.ts +1 -0
  142. package/dist-cms/packages/users/users/index.js +1 -0
  143. package/dist-cms/packages/users/users/repository/index.d.ts +1 -0
  144. package/dist-cms/packages/users/users/repository/index.js +1 -0
  145. package/dist-cms/packages/users/users/workspace/user-workspace-editor.element.js +36 -35
  146. package/dist-cms/packages/users/utils.d.ts +5 -2
  147. package/dist-cms/packages/users/utils.js +14 -14
  148. package/dist-cms/shared/repository/data-source/folder-data-source.interface.d.ts +2 -2
  149. package/dist-cms/shared/repository/folder-repository.interface.d.ts +2 -2
  150. package/dist-cms/shared/router/index.d.ts +1 -1
  151. package/dist-cms/shared/router/index.js +1 -1
  152. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  153. package/dist-cms/vscode-html-custom-data.json +7 -7
  154. package/package.json +2 -3
  155. package/dist-cms/packages/core/modal/token/allowed-document-types-modal.token.d.ts +0 -9
  156. package/dist-cms/packages/core/modal/token/allowed-document-types-modal.token.js +0 -5
  157. package/dist-cms/packages/documents/document-types/modals/allowed-document-types/allowed-document-types-modal.element.d.ts +0 -19
  158. package/dist-cms/packages/documents/document-types/modals/manifests.d.ts +0 -2
  159. package/dist-cms/packages/documents/document-types/modals/manifests.js +0 -9
  160. package/router-slot-2.3.0.tgz +0 -0
  161. /package/dist-cms/mocks/handlers/{document.handlers.d.ts → document/document.handlers.d.ts} +0 -0
@@ -0,0 +1,28 @@
1
+ import type { UmbTreeRepository } from '../../../../../shared/repository/index.js';
2
+ import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
3
+ import { DocumentTreeItemResponseModel } from '../../../../../external/backend-api/index.js';
4
+ export declare class UmbDocumentRecycleBinRepository implements UmbTreeRepository<DocumentTreeItemResponseModel> {
5
+ #private;
6
+ constructor(host: UmbControllerHostElement);
7
+ requestTreeRoot(): Promise<{
8
+ data: {
9
+ id: null;
10
+ type: string;
11
+ name: string;
12
+ icon: string;
13
+ hasChildren: boolean;
14
+ };
15
+ }>;
16
+ requestRootTreeItems(): Promise<{
17
+ data: import("../../../../../shared/repository/index.js").UmbPagedData<any> | undefined;
18
+ error: import("../../../../../external/backend-api/index.js").ApiError | import("../../../../../external/backend-api/index.js").CancelError | undefined;
19
+ asObservable: () => import("rxjs").Observable<import("../../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>;
20
+ }>;
21
+ requestTreeItemsOf(parentId: string | null): Promise<{
22
+ data: import("../../../../../shared/repository/index.js").UmbPagedData<any> | undefined;
23
+ error: import("../../../../../external/backend-api/index.js").ApiError | import("../../../../../external/backend-api/index.js").CancelError | undefined;
24
+ asObservable: () => import("rxjs").Observable<import("../../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>;
25
+ }>;
26
+ rootTreeItems(): Promise<import("rxjs").Observable<import("../../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>>;
27
+ treeItemsOf(parentId: string | null): Promise<import("rxjs").Observable<import("../../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>>;
28
+ }
@@ -0,0 +1,56 @@
1
+ import { UmbDocumentRecycleBinTreeServerDataSource } from './sources/document-recycle-bin.tree.server.data.js';
2
+ import { UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT, } from './document-recycle.bin.tree.store.js';
3
+ import { UmbContextConsumerController } from '../../../../../libs/context-api/index.js';
4
+ export class UmbDocumentRecycleBinRepository {
5
+ #init;
6
+ #host;
7
+ #treeSource;
8
+ #treeStore;
9
+ constructor(host) {
10
+ this.#host = host;
11
+ // TODO: figure out how spin up get the correct data source
12
+ this.#treeSource = new UmbDocumentRecycleBinTreeServerDataSource(this.#host);
13
+ this.#init = Promise.all([
14
+ new UmbContextConsumerController(this.#host, UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT, (instance) => {
15
+ this.#treeStore = instance;
16
+ }),
17
+ ]);
18
+ }
19
+ async requestTreeRoot() {
20
+ await this.#init;
21
+ const data = {
22
+ id: null,
23
+ type: 'document-recycle-bin-root',
24
+ name: 'Recycle Bin',
25
+ icon: 'umb:trash',
26
+ hasChildren: true,
27
+ };
28
+ return { data };
29
+ }
30
+ async requestRootTreeItems() {
31
+ await this.#init;
32
+ const { data, error } = await this.#treeSource.getRootItems();
33
+ if (data) {
34
+ this.#treeStore?.appendItems(data.items);
35
+ }
36
+ return { data, error, asObservable: () => this.#treeStore.rootItems };
37
+ }
38
+ async requestTreeItemsOf(parentId) {
39
+ await this.#init;
40
+ if (parentId === undefined)
41
+ throw new Error('Parent id is missing');
42
+ const { data, error } = await this.#treeSource.getChildrenOf(parentId);
43
+ if (data) {
44
+ this.#treeStore?.appendItems(data.items);
45
+ }
46
+ return { data, error, asObservable: () => this.#treeStore.childrenOf(parentId) };
47
+ }
48
+ async rootTreeItems() {
49
+ await this.#init;
50
+ return this.#treeStore.rootItems;
51
+ }
52
+ async treeItemsOf(parentId) {
53
+ await this.#init;
54
+ return this.#treeStore.childrenOf(parentId);
55
+ }
56
+ }
@@ -0,0 +1,18 @@
1
+ import { UmbContextToken } from '../../../../../libs/context-api/index.js';
2
+ import { UmbEntityTreeStore } from '../../../../core/store/index.js';
3
+ import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
4
+ /**
5
+ * @export
6
+ * @class UmbDocumentRecycleBinTreeStore
7
+ * @extends {UmbEntityTreeStore}
8
+ * @description - Tree Data Store for the Document Recycle Bin
9
+ */
10
+ export declare class UmbDocumentRecycleBinTreeStore extends UmbEntityTreeStore {
11
+ /**
12
+ * Creates an instance of UmbDocumentRecycleBinTreeStore.
13
+ * @param {UmbControllerHostElement} host
14
+ * @memberof UmbDocumentRecycleBinTreeStore
15
+ */
16
+ constructor(host: UmbControllerHostElement);
17
+ }
18
+ export declare const UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT: UmbContextToken<UmbDocumentRecycleBinTreeStore, UmbDocumentRecycleBinTreeStore>;
@@ -0,0 +1,19 @@
1
+ import { UmbContextToken } from '../../../../../libs/context-api/index.js';
2
+ import { UmbEntityTreeStore } from '../../../../core/store/index.js';
3
+ /**
4
+ * @export
5
+ * @class UmbDocumentRecycleBinTreeStore
6
+ * @extends {UmbEntityTreeStore}
7
+ * @description - Tree Data Store for the Document Recycle Bin
8
+ */
9
+ export class UmbDocumentRecycleBinTreeStore extends UmbEntityTreeStore {
10
+ /**
11
+ * Creates an instance of UmbDocumentRecycleBinTreeStore.
12
+ * @param {UmbControllerHostElement} host
13
+ * @memberof UmbDocumentRecycleBinTreeStore
14
+ */
15
+ constructor(host) {
16
+ super(host, UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT.toString());
17
+ }
18
+ }
19
+ export const UMB_DOCUMENT_RECYCLE_BIN_TREE_STORE_CONTEXT = new UmbContextToken('UmbDocumentRecycleBinTreeStore');
@@ -0,0 +1 @@
1
+ export { UmbDocumentRecycleBinRepository } from './document-recycle-bin.repository.js';
@@ -0,0 +1 @@
1
+ export { UmbDocumentRecycleBinRepository } from './document-recycle-bin.repository.js';
@@ -0,0 +1,4 @@
1
+ import type { ManifestRepository, ManifestTreeStore } from '../../../../core/extension-registry/index.js';
2
+ export declare const DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS = "Umb.Repository.DocumentRecycleBin";
3
+ export declare const DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS = "Umb.Store.DocumentRecycleBinTree";
4
+ export declare const manifests: (ManifestRepository | ManifestTreeStore)[];
@@ -0,0 +1,17 @@
1
+ import { UmbDocumentRecycleBinRepository } from './document-recycle-bin.repository.js';
2
+ import { UmbDocumentRecycleBinTreeStore } from './document-recycle.bin.tree.store.js';
3
+ export const DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS = 'Umb.Repository.DocumentRecycleBin';
4
+ const repository = {
5
+ type: 'repository',
6
+ alias: DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS,
7
+ name: 'Document Recycle Bin Repository',
8
+ class: UmbDocumentRecycleBinRepository,
9
+ };
10
+ export const DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS = 'Umb.Store.DocumentRecycleBinTree';
11
+ const treeStore = {
12
+ type: 'treeStore',
13
+ alias: DOCUMENT_RECYCLE_BIN_TREE_STORE_ALIAS,
14
+ name: 'Document Recycle Bin Tree Store',
15
+ class: UmbDocumentRecycleBinTreeStore,
16
+ };
17
+ export const manifests = [repository, treeStore];
@@ -0,0 +1,29 @@
1
+ import type { UmbTreeDataSource } from '../../../../../../shared/repository/index.js';
2
+ import type { UmbControllerHostElement } from '../../../../../../libs/controller-api/index.js';
3
+ /**
4
+ * A data source for the Document Recycle Bin tree that fetches data from the server
5
+ * @export
6
+ * @class UmbDocumentRecycleBinTreeServerDataSource
7
+ * @implements {UmbTreeDataSource}
8
+ */
9
+ export declare class UmbDocumentRecycleBinTreeServerDataSource implements UmbTreeDataSource {
10
+ #private;
11
+ /**
12
+ * Creates an instance of UmbDocumentRecycleBinTreeServerDataSource.
13
+ * @param {UmbControllerHostElement} host
14
+ * @memberof UmbDocumentTreeServerDataSource
15
+ */
16
+ constructor(host: UmbControllerHostElement);
17
+ /**
18
+ * Fetches the root items for the tree from the server
19
+ * @memberof UmbDocumentRecycleBinTreeServerDataSource
20
+ */
21
+ getRootItems(): Promise<import("../../../../../../shared/repository/index.js").DataSourceResponse<import("../../../../../../external/backend-api/index.js").PagedRecycleBinItemResponseModel>>;
22
+ /**
23
+ * Fetches the children of a given parent id from the server
24
+ * @param {(string | null)} parentId
25
+ * @memberof UmbDocumentTreeServerDataSource
26
+ */
27
+ getChildrenOf(parentId: string | null): Promise<import("../../../../../../shared/repository/index.js").DataSourceResponse<import("../../../../../../external/backend-api/index.js").PagedRecycleBinItemResponseModel>>;
28
+ getItems(unique: Array<string>): Promise<any>;
29
+ }
@@ -0,0 +1,49 @@
1
+ import { DocumentResource } from '../../../../../../external/backend-api/index.js';
2
+ import { tryExecuteAndNotify } from '../../../../../../shared/resources/index.js';
3
+ /**
4
+ * A data source for the Document Recycle Bin tree that fetches data from the server
5
+ * @export
6
+ * @class UmbDocumentRecycleBinTreeServerDataSource
7
+ * @implements {UmbTreeDataSource}
8
+ */
9
+ export class UmbDocumentRecycleBinTreeServerDataSource {
10
+ #host;
11
+ /**
12
+ * Creates an instance of UmbDocumentRecycleBinTreeServerDataSource.
13
+ * @param {UmbControllerHostElement} host
14
+ * @memberof UmbDocumentTreeServerDataSource
15
+ */
16
+ constructor(host) {
17
+ this.#host = host;
18
+ }
19
+ /**
20
+ * Fetches the root items for the tree from the server
21
+ * @memberof UmbDocumentRecycleBinTreeServerDataSource
22
+ */
23
+ async getRootItems() {
24
+ return tryExecuteAndNotify(this.#host, DocumentResource.getRecycleBinDocumentRoot({}));
25
+ }
26
+ /**
27
+ * Fetches the children of a given parent id from the server
28
+ * @param {(string | null)} parentId
29
+ * @memberof UmbDocumentTreeServerDataSource
30
+ */
31
+ async getChildrenOf(parentId) {
32
+ if (parentId === undefined)
33
+ throw new Error('Parent id is missing');
34
+ /* TODO: should we make getRootItems() internal
35
+ so it only is a server concern that there are two endpoints? */
36
+ if (parentId === null) {
37
+ return this.getRootItems();
38
+ }
39
+ else {
40
+ return tryExecuteAndNotify(this.#host, DocumentResource.getRecycleBinDocumentChildren({
41
+ parentId,
42
+ }));
43
+ }
44
+ }
45
+ // TODO: remove when interface is cleaned up
46
+ async getItems(unique) {
47
+ throw new Error('Dot not use this method. Use the item source instead');
48
+ }
49
+ }
@@ -0,0 +1,2 @@
1
+ import type { ManifestTree, ManifestTreeItem } from '../../../../core/extension-registry/index.js';
2
+ export declare const manifests: (ManifestTree | ManifestTreeItem)[];
@@ -0,0 +1,19 @@
1
+ import { DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS } from '../repository/manifests.js';
2
+ const tree = {
3
+ type: 'tree',
4
+ alias: 'Umb.Tree.DocumentRecycleBin',
5
+ name: 'Document Recycle Bin Tree',
6
+ meta: {
7
+ repositoryAlias: DOCUMENT_RECYCLE_BIN_REPOSITORY_ALIAS,
8
+ },
9
+ };
10
+ const treeItem = {
11
+ type: 'treeItem',
12
+ kind: 'entity',
13
+ alias: 'Umb.TreeItem.DocumentRecycleBin',
14
+ name: 'Document Recycle Bin Tree Item',
15
+ meta: {
16
+ entityTypes: ['document-recycle-bin-root'],
17
+ },
18
+ };
19
+ export const manifests = [tree, treeItem];
@@ -0,0 +1,20 @@
1
+ import { DocumentItemResponseModel } from '../../../../external/backend-api/index.js';
2
+ import { UmbContextToken } from '../../../../libs/context-api/index.js';
3
+ import { UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
4
+ import { UmbItemStore, UmbStoreBase } from '../../../core/store/index.js';
5
+ /**
6
+ * @export
7
+ * @class UmbDocumentItemStore
8
+ * @extends {UmbStoreBase}
9
+ * @description - Data Store for Document items
10
+ */
11
+ export declare class UmbDocumentItemStore extends UmbStoreBase<DocumentItemResponseModel> implements UmbItemStore<DocumentItemResponseModel> {
12
+ /**
13
+ * Creates an instance of UmbDocumentItemStore.
14
+ * @param {UmbControllerHostElement} host
15
+ * @memberof UmbDocumentItemStore
16
+ */
17
+ constructor(host: UmbControllerHostElement);
18
+ items(ids: Array<string>): import("rxjs").Observable<DocumentItemResponseModel[]>;
19
+ }
20
+ export declare const UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN: UmbContextToken<UmbDocumentItemStore, UmbDocumentItemStore>;
@@ -0,0 +1,23 @@
1
+ import { UmbContextToken } from '../../../../libs/context-api/index.js';
2
+ import { UmbStoreBase } from '../../../core/store/index.js';
3
+ import { UmbArrayState } from '../../../../libs/observable-api/index.js';
4
+ /**
5
+ * @export
6
+ * @class UmbDocumentItemStore
7
+ * @extends {UmbStoreBase}
8
+ * @description - Data Store for Document items
9
+ */
10
+ export class UmbDocumentItemStore extends UmbStoreBase {
11
+ /**
12
+ * Creates an instance of UmbDocumentItemStore.
13
+ * @param {UmbControllerHostElement} host
14
+ * @memberof UmbDocumentItemStore
15
+ */
16
+ constructor(host) {
17
+ super(host, UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id));
18
+ }
19
+ items(ids) {
20
+ return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? '')));
21
+ }
22
+ }
23
+ export const UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbDocumentItemStore');
@@ -23,16 +23,15 @@ export declare class UmbDocumentRepository implements UmbTreeRepository<Document
23
23
  error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
24
24
  asObservable: () => import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>;
25
25
  }>;
26
- requestAllowedDocumentTypesAtRoot(): Promise<import("../../../../shared/repository/index.js").DataSourceResponse<import("../../../../external/backend-api/index.js").PagedDocumentTypeResponseModel>>;
27
- requestAllowedDocumentTypesOf(id: string): Promise<import("../../../../shared/repository/index.js").DataSourceResponse<import("../../../../external/backend-api/index.js").PagedDocumentTypeResponseModel>>;
28
- requestItemsLegacy(ids: Array<string>): Promise<{
29
- data: any[] | undefined;
30
- error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
31
- asObservable: () => import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>;
32
- }>;
26
+ requestAllowedDocumentTypesOf(id: string | null): Promise<import("../../../../shared/repository/index.js").DataSourceResponse<import("../../../../external/backend-api/index.js").PagedDocumentTypeResponseModel>>;
33
27
  rootTreeItems(): Promise<import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>>;
34
28
  treeItemsOf(parentId: string | null): Promise<import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>>;
35
- itemsLegacy(ids: Array<string>): Promise<import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>>;
29
+ requestItems(ids: Array<string>): Promise<{
30
+ data: import("../../../../external/backend-api/index.js").DocumentItemResponseModel[] | undefined;
31
+ error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
32
+ asObservable: () => import("rxjs").Observable<import("../../../../external/backend-api/index.js").DocumentItemResponseModel[]>;
33
+ }>;
34
+ items(ids: Array<string>): Promise<import("rxjs").Observable<import("../../../../external/backend-api/index.js").DocumentItemResponseModel[]>>;
36
35
  createScaffold(documentTypeKey: string, preset?: Partial<CreateDocumentRequestModel>): Promise<{
37
36
  data: DocumentResponseModel;
38
37
  }>;
@@ -62,7 +61,9 @@ export declare class UmbDocumentRepository implements UmbTreeRepository<Document
62
61
  delete(id: string): Promise<{
63
62
  error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
64
63
  }>;
65
- trash(ids: Array<string>): Promise<void>;
64
+ trash(id: string): Promise<{
65
+ error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
66
+ }>;
66
67
  saveAndPublish(): Promise<void>;
67
68
  saveAndPreview(): Promise<void>;
68
69
  saveAndSchedule(): Promise<void>;
@@ -2,6 +2,8 @@ import { UmbDocumentServerDataSource } from './sources/document.server.data.js';
2
2
  import { UMB_DOCUMENT_STORE_CONTEXT_TOKEN } from './document.store.js';
3
3
  import { UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN } from './document.tree.store.js';
4
4
  import { UmbDocumentTreeServerDataSource } from './sources/document.tree.server.data.js';
5
+ import { UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN } from './document-item.store.js';
6
+ import { UmbDocumentItemServerDataSource } from './sources/document-item.server.data.js';
5
7
  import { UmbContextConsumerController } from '../../../../libs/context-api/index.js';
6
8
  import { UMB_NOTIFICATION_CONTEXT_TOKEN } from '../../../core/notification/index.js';
7
9
  export class UmbDocumentRepository {
@@ -11,12 +13,15 @@ export class UmbDocumentRepository {
11
13
  #treeStore;
12
14
  #detailDataSource;
13
15
  #store;
16
+ #itemSource;
17
+ #itemStore;
14
18
  #notificationContext;
15
19
  constructor(host) {
16
20
  this.#host = host;
17
21
  // TODO: figure out how spin up get the correct data source
18
22
  this.#treeSource = new UmbDocumentTreeServerDataSource(this.#host);
19
23
  this.#detailDataSource = new UmbDocumentServerDataSource(this.#host);
24
+ this.#itemSource = new UmbDocumentItemServerDataSource(this.#host);
20
25
  this.#init = Promise.all([
21
26
  new UmbContextConsumerController(this.#host, UMB_DOCUMENT_TREE_STORE_CONTEXT_TOKEN, (instance) => {
22
27
  this.#treeStore = instance;
@@ -24,12 +29,14 @@ export class UmbDocumentRepository {
24
29
  new UmbContextConsumerController(this.#host, UMB_DOCUMENT_STORE_CONTEXT_TOKEN, (instance) => {
25
30
  this.#store = instance;
26
31
  }),
32
+ new UmbContextConsumerController(this.#host, UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN, (instance) => {
33
+ this.#itemStore = instance;
34
+ }),
27
35
  new UmbContextConsumerController(this.#host, UMB_NOTIFICATION_CONTEXT_TOKEN, (instance) => {
28
36
  this.#notificationContext = instance;
29
37
  }),
30
38
  ]);
31
39
  }
32
- // TODO: Trash
33
40
  // TODO: Move
34
41
  // TREE:
35
42
  async requestTreeRoot() {
@@ -62,23 +69,12 @@ export class UmbDocumentRepository {
62
69
  return { data, error, asObservable: () => this.#treeStore.childrenOf(parentId) };
63
70
  }
64
71
  // Structure permissions;
65
- async requestAllowedDocumentTypesAtRoot() {
66
- return this.#detailDataSource.getAllowedDocumentTypesAtRoot();
67
- }
68
72
  async requestAllowedDocumentTypesOf(id) {
69
- if (!id)
73
+ if (id === undefined)
70
74
  throw new Error('Id is missing');
71
75
  await this.#init;
72
76
  return this.#detailDataSource.getAllowedDocumentTypesOf(id);
73
77
  }
74
- async requestItemsLegacy(ids) {
75
- await this.#init;
76
- if (!ids) {
77
- throw new Error('Ids are missing');
78
- }
79
- const { data, error } = await this.#treeSource.getItems(ids);
80
- return { data, error, asObservable: () => this.#treeStore.items(ids) };
81
- }
82
78
  async rootTreeItems() {
83
79
  await this.#init;
84
80
  return this.#treeStore.rootItems;
@@ -87,9 +83,20 @@ export class UmbDocumentRepository {
87
83
  await this.#init;
88
84
  return this.#treeStore.childrenOf(parentId);
89
85
  }
90
- async itemsLegacy(ids) {
86
+ // ITEMS:
87
+ async requestItems(ids) {
88
+ if (!ids)
89
+ throw new Error('Keys are missing');
90
+ await this.#init;
91
+ const { data, error } = await this.#itemSource.getItems(ids);
92
+ if (data) {
93
+ this.#itemStore?.appendItems(data);
94
+ }
95
+ return { data, error, asObservable: () => this.#itemStore.items(ids) };
96
+ }
97
+ async items(ids) {
91
98
  await this.#init;
92
- return this.#treeStore.items(ids);
99
+ return this.#itemStore.items(ids);
93
100
  }
94
101
  // DETAILS:
95
102
  async createScaffold(documentTypeKey, preset) {
@@ -129,10 +136,10 @@ export class UmbDocumentRepository {
129
136
  // Consider to look up the data before fetching from the server
130
137
  this.#store?.append(item);
131
138
  // TODO: Update tree store with the new item? or ask tree to request the new item?
132
- // TODO: Revisit this call, as we should be able to update tree on client.
133
- await this.requestRootTreeItems();
134
139
  const notification = { data: { message: `Document created` } };
135
140
  this.#notificationContext?.peek('positive', notification);
141
+ // TODO: Revisit this call, as we should be able to update tree on client.
142
+ await this.requestRootTreeItems();
136
143
  return { data: item };
137
144
  }
138
145
  return { error };
@@ -151,10 +158,10 @@ export class UmbDocumentRepository {
151
158
  this.#store?.append(item);
152
159
  //this.#treeStore?.updateItem(item.id, { name: item.name });// Port data to tree store.
153
160
  // TODO: would be nice to align the stores on methods/methodNames.
154
- // TODO: Revisit this call, as we should be able to update tree on client.
155
- await this.requestRootTreeItems();
156
161
  const notification = { data: { message: `Document saved` } };
157
162
  this.#notificationContext?.peek('positive', notification);
163
+ // TODO: Revisit this call, as we should be able to update tree on client.
164
+ await this.requestRootTreeItems();
158
165
  }
159
166
  return { error };
160
167
  }
@@ -168,21 +175,36 @@ export class UmbDocumentRepository {
168
175
  // TODO: we currently don't use the detail store for anything.
169
176
  // Consider to look up the data before fetching from the server.
170
177
  // Consider notify a workspace if a document is deleted from the store while someone is editing it.
171
- // TODO: would be nice to align the stores on methods/methodNames.
172
- this.#store?.remove([id]);
178
+ this.#store?.removeItem(id);
173
179
  this.#treeStore?.removeItem(id);
180
+ this.#itemStore?.removeItem(id);
174
181
  const notification = { data: { message: `Document deleted` } };
175
182
  this.#notificationContext?.peek('positive', notification);
176
183
  }
177
184
  return { error };
178
185
  }
186
+ async trash(id) {
187
+ if (!id)
188
+ throw new Error('Id is missing');
189
+ await this.#init;
190
+ const { error } = await this.#detailDataSource.trash(id);
191
+ if (!error) {
192
+ // TODO: we currently don't use the detail store for anything.
193
+ // Consider to look up the data before fetching from the server.
194
+ // Consider notify a workspace if a document is deleted from the store while someone is editing it.
195
+ // TODO: Temp hack: would should update a property isTrashed (maybe) on the item instead of removing them.
196
+ this.#store?.removeItem(id);
197
+ this.#treeStore?.removeItem(id);
198
+ this.#itemStore?.removeItem(id);
199
+ // TODO: append to recycle bin store
200
+ const notification = { data: { message: `Document moved to recycle bin` } };
201
+ this.#notificationContext?.peek('positive', notification);
202
+ }
203
+ return { error };
204
+ }
179
205
  // Listing all currently known methods we need to implement:
180
206
  // these currently only covers posting data
181
207
  // TODO: find a good way to split these
182
- async trash(ids) {
183
- console.log('document trash: ' + ids);
184
- alert('implement trash');
185
- }
186
208
  async saveAndPublish() {
187
209
  alert('save and publish');
188
210
  }
@@ -15,23 +15,11 @@ export declare class UmbDocumentStore extends UmbStoreBase {
15
15
  * @memberof UmbDocumentDetailStore
16
16
  */
17
17
  constructor(host: UmbControllerHostElement);
18
- /**
19
- * Append a document to the store
20
- * @param {DocumentDetails} document
21
- * @memberof UmbDocumentDetailStore
22
- */
23
- append(document: DocumentResponseModel): void;
24
18
  /**
25
19
  * Retrieve a document from the store
26
20
  * @param {string} id
27
21
  * @memberof UmbDocumentStore
28
22
  */
29
23
  byId(id: DocumentResponseModel['id']): import("rxjs").Observable<any>;
30
- /**
31
- * Removes documents in the store with the given uniques
32
- * @param {string[]} uniques
33
- * @memberof UmbDocumentDetailStore
34
- */
35
- remove(uniques: Array<DocumentResponseModel['id']>): void;
36
24
  }
37
25
  export declare const UMB_DOCUMENT_STORE_CONTEXT_TOKEN: UmbContextToken<UmbDocumentStore, UmbDocumentStore>;
@@ -16,14 +16,6 @@ export class UmbDocumentStore extends UmbStoreBase {
16
16
  constructor(host) {
17
17
  super(host, UMB_DOCUMENT_STORE_CONTEXT_TOKEN.toString(), new UmbArrayState([], (x) => x.id));
18
18
  }
19
- /**
20
- * Append a document to the store
21
- * @param {DocumentDetails} document
22
- * @memberof UmbDocumentDetailStore
23
- */
24
- append(document) {
25
- this._data.append([document]);
26
- }
27
19
  /**
28
20
  * Retrieve a document from the store
29
21
  * @param {string} id
@@ -32,13 +24,5 @@ export class UmbDocumentStore extends UmbStoreBase {
32
24
  byId(id) {
33
25
  return this._data.asObservablePart((x) => x.find((y) => y.id === id));
34
26
  }
35
- /**
36
- * Removes documents in the store with the given uniques
37
- * @param {string[]} uniques
38
- * @memberof UmbDocumentDetailStore
39
- */
40
- remove(uniques) {
41
- this._data.remove(uniques);
42
- }
43
27
  }
44
28
  export const UMB_DOCUMENT_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbDocumentStore');
@@ -0,0 +1,24 @@
1
+ import type { UmbItemDataSource } from '../../../../../shared/repository/index.js';
2
+ import { DocumentItemResponseModel } from '../../../../../external/backend-api/index.js';
3
+ import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
4
+ /**
5
+ * A data source for Document items that fetches data from the server
6
+ * @export
7
+ * @class UmbDocumentItemServerDataSource
8
+ * @implements {DocumentItemDataSource}
9
+ */
10
+ export declare class UmbDocumentItemServerDataSource implements UmbItemDataSource<DocumentItemResponseModel> {
11
+ #private;
12
+ /**
13
+ * Creates an instance of UmbDocumentItemServerDataSource.
14
+ * @param {UmbControllerHostElement} host
15
+ * @memberof UmbDocumentItemServerDataSource
16
+ */
17
+ constructor(host: UmbControllerHostElement);
18
+ /**
19
+ * Fetches the items for the given ids from the server
20
+ * @param {Array<string>} ids
21
+ * @memberof UmbDocumentItemServerDataSource
22
+ */
23
+ getItems(ids: Array<string>): Promise<import("../../../../../shared/repository/index.js").DataSourceResponse<DocumentItemResponseModel[]>>;
24
+ }
@@ -0,0 +1,31 @@
1
+ import { DocumentResource } from '../../../../../external/backend-api/index.js';
2
+ import { tryExecuteAndNotify } from '../../../../../shared/resources/index.js';
3
+ /**
4
+ * A data source for Document items that fetches data from the server
5
+ * @export
6
+ * @class UmbDocumentItemServerDataSource
7
+ * @implements {DocumentItemDataSource}
8
+ */
9
+ export class UmbDocumentItemServerDataSource {
10
+ #host;
11
+ /**
12
+ * Creates an instance of UmbDocumentItemServerDataSource.
13
+ * @param {UmbControllerHostElement} host
14
+ * @memberof UmbDocumentItemServerDataSource
15
+ */
16
+ constructor(host) {
17
+ this.#host = host;
18
+ }
19
+ /**
20
+ * Fetches the items for the given ids from the server
21
+ * @param {Array<string>} ids
22
+ * @memberof UmbDocumentItemServerDataSource
23
+ */
24
+ async getItems(ids) {
25
+ if (!ids)
26
+ throw new Error('Ids are missing');
27
+ return tryExecuteAndNotify(this.#host, DocumentResource.getDocumentItem({
28
+ id: ids,
29
+ }));
30
+ }
31
+ }