@umbraco-cms/backoffice 14.0.0--preview004-15c86b15 → 14.0.0--preview004-df50b4ac

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 (90) hide show
  1. package/dist-cms/packages/core/data-type/tree/data-type-tree.repository.d.ts +3 -17
  2. package/dist-cms/packages/core/data-type/tree/data-type-tree.repository.js +4 -34
  3. package/dist-cms/packages/core/data-type/tree/data-type.tree.server.data.d.ts +3 -2
  4. package/dist-cms/packages/core/data-type/tree/data-type.tree.store.d.ts +1 -1
  5. package/dist-cms/packages/core/data-type/tree/data-type.tree.store.js +1 -1
  6. package/dist-cms/packages/core/data-type/tree/types.d.ts +4 -0
  7. package/dist-cms/packages/core/extension-registry/models/store.model.d.ts +3 -2
  8. package/dist-cms/packages/core/repository/data-source/index.d.ts +0 -1
  9. package/dist-cms/packages/core/repository/data-source/index.js +0 -1
  10. package/dist-cms/packages/core/repository/index.d.ts +0 -1
  11. package/dist-cms/packages/core/repository/index.js +0 -1
  12. package/dist-cms/packages/core/repository/repository-base.d.ts +1 -1
  13. package/dist-cms/packages/core/repository/repository-base.js +1 -1
  14. package/dist-cms/packages/core/store/index.d.ts +0 -3
  15. package/dist-cms/packages/core/store/index.js +0 -3
  16. package/dist-cms/packages/core/{store → tree}/entity-tree-store.d.ts +2 -2
  17. package/dist-cms/packages/core/{store → tree}/entity-tree-store.js +1 -1
  18. package/dist-cms/packages/core/tree/entity-tree.repository.d.ts +54 -0
  19. package/dist-cms/packages/core/tree/entity-tree.repository.js +72 -0
  20. package/dist-cms/packages/core/{store → tree}/file-system-tree.store.d.ts +2 -2
  21. package/dist-cms/packages/core/{store → tree}/file-system-tree.store.js +1 -1
  22. package/dist-cms/packages/core/tree/index.d.ts +8 -13
  23. package/dist-cms/packages/core/tree/index.js +8 -1
  24. package/dist-cms/packages/core/tree/tree-data-source.interface.d.ts +11 -0
  25. package/dist-cms/packages/core/{repository → tree}/tree-repository.interface.d.ts +4 -4
  26. package/dist-cms/packages/core/{store → tree}/tree-store.interface.d.ts +1 -1
  27. package/dist-cms/packages/core/tree/tree-store.interface.js +1 -0
  28. package/dist-cms/packages/core/tree/tree.context.d.ts +7 -5
  29. package/dist-cms/packages/core/tree/tree.context.js +1 -1
  30. package/dist-cms/packages/core/tree/types.d.ts +21 -0
  31. package/dist-cms/packages/core/tree/types.js +1 -0
  32. package/dist-cms/packages/dictionary/dictionary/repository/dictionary.repository.d.ts +2 -1
  33. package/dist-cms/packages/dictionary/dictionary/repository/dictionary.tree.store.d.ts +1 -1
  34. package/dist-cms/packages/dictionary/dictionary/repository/dictionary.tree.store.js +1 -1
  35. package/dist-cms/packages/dictionary/dictionary/repository/sources/dictionary.tree.server.data.d.ts +1 -1
  36. package/dist-cms/packages/documents/document-blueprints/document-blueprint.tree.store.d.ts +1 -1
  37. package/dist-cms/packages/documents/document-blueprints/document-blueprint.tree.store.js +1 -1
  38. package/dist-cms/packages/documents/document-types/repository/document-type.repository.d.ts +2 -1
  39. package/dist-cms/packages/documents/document-types/repository/document-type.tree.store.d.ts +1 -1
  40. package/dist-cms/packages/documents/document-types/repository/document-type.tree.store.js +1 -1
  41. package/dist-cms/packages/documents/document-types/repository/sources/document-type.tree.server.data.d.ts +1 -1
  42. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle-bin.repository.d.ts +1 -1
  43. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle.bin.tree.store.d.ts +1 -1
  44. package/dist-cms/packages/documents/documents/recycle-bin/repository/document-recycle.bin.tree.store.js +1 -1
  45. package/dist-cms/packages/documents/documents/recycle-bin/repository/sources/document-recycle-bin.tree.server.data.d.ts +2 -2
  46. package/dist-cms/packages/documents/documents/repository/document.repository.d.ts +2 -1
  47. package/dist-cms/packages/documents/documents/repository/document.tree.store.d.ts +1 -1
  48. package/dist-cms/packages/documents/documents/repository/document.tree.store.js +1 -1
  49. package/dist-cms/packages/documents/documents/repository/sources/document.tree.server.data.d.ts +2 -2
  50. package/dist-cms/packages/media/media/repository/media.repository.d.ts +1 -1
  51. package/dist-cms/packages/media/media/repository/media.tree.store.d.ts +1 -1
  52. package/dist-cms/packages/media/media/repository/media.tree.store.js +1 -1
  53. package/dist-cms/packages/media/media/repository/sources/media.tree.server.data.d.ts +2 -2
  54. package/dist-cms/packages/media/media-types/repository/media-type.repository.d.ts +2 -1
  55. package/dist-cms/packages/media/media-types/repository/media-type.tree.store.d.ts +1 -1
  56. package/dist-cms/packages/media/media-types/repository/media-type.tree.store.js +1 -1
  57. package/dist-cms/packages/media/media-types/repository/sources/media-type.tree.server.data.d.ts +2 -2
  58. package/dist-cms/packages/members/member-groups/repository/member-group.repository.d.ts +2 -1
  59. package/dist-cms/packages/members/member-groups/repository/member-group.tree.store.d.ts +1 -1
  60. package/dist-cms/packages/members/member-groups/repository/member-group.tree.store.js +1 -1
  61. package/dist-cms/packages/members/member-groups/repository/sources/member-group.tree.server.data.d.ts +2 -2
  62. package/dist-cms/packages/members/member-types/repository/member-type.repository.d.ts +2 -1
  63. package/dist-cms/packages/members/member-types/repository/member-type.tree.store.d.ts +1 -1
  64. package/dist-cms/packages/members/member-types/repository/member-type.tree.store.js +1 -1
  65. package/dist-cms/packages/members/member-types/repository/sources/member-type.tree.server.data.d.ts +1 -1
  66. package/dist-cms/packages/members/members/repository/member.repository.d.ts +1 -1
  67. package/dist-cms/packages/members/members/repository/member.tree.store.d.ts +1 -1
  68. package/dist-cms/packages/members/members/repository/member.tree.store.js +1 -1
  69. package/dist-cms/packages/settings/relation-types/repository/relation-type.repository.d.ts +2 -1
  70. package/dist-cms/packages/settings/relation-types/repository/relation-type.tree.store.d.ts +1 -1
  71. package/dist-cms/packages/settings/relation-types/repository/relation-type.tree.store.js +1 -1
  72. package/dist-cms/packages/templating/partial-views/repository/partial-views.repository.d.ts +2 -1
  73. package/dist-cms/packages/templating/partial-views/repository/partial-views.tree.store.d.ts +1 -1
  74. package/dist-cms/packages/templating/partial-views/repository/partial-views.tree.store.js +1 -1
  75. package/dist-cms/packages/templating/scripts/repository/scripts.repository.d.ts +2 -1
  76. package/dist-cms/packages/templating/scripts/repository/scripts.tree.store.d.ts +1 -1
  77. package/dist-cms/packages/templating/scripts/repository/scripts.tree.store.js +1 -1
  78. package/dist-cms/packages/templating/stylesheets/repository/sources/stylesheet.tree.server.data.d.ts +1 -1
  79. package/dist-cms/packages/templating/stylesheets/repository/stylesheet.repository.d.ts +4 -3
  80. package/dist-cms/packages/templating/stylesheets/repository/stylesheet.tree.store.d.ts +1 -1
  81. package/dist-cms/packages/templating/stylesheets/repository/stylesheet.tree.store.js +1 -1
  82. package/dist-cms/packages/templating/templates/repository/template.repository.d.ts +2 -1
  83. package/dist-cms/packages/templating/templates/repository/template.tree.store.d.ts +1 -1
  84. package/dist-cms/packages/templating/templates/repository/template.tree.store.js +1 -1
  85. package/dist-cms/tsconfig.build.tsbuildinfo +1 -1
  86. package/package.json +1 -1
  87. package/dist-cms/packages/core/repository/data-source/tree-data-source.interface.d.ts +0 -7
  88. /package/dist-cms/packages/core/{repository/data-source/tree-data-source.interface.js → data-type/tree/types.js} +0 -0
  89. /package/dist-cms/packages/core/{repository/tree-repository.interface.js → tree/tree-data-source.interface.js} +0 -0
  90. /package/dist-cms/packages/core/{store/tree-store.interface.js → tree/tree-repository.interface.js} +0 -0
@@ -1,10 +1,8 @@
1
- import { UmbDataTypeRepositoryBase } from '../repository/data-type-repository-base.js';
2
- import type { UmbTreeRepository } from '../../repository/index.js';
1
+ import { UmbEntityTreeRepositoryBase } from '../../tree/entity-tree.repository.js';
2
+ import { UmbDataTypeTreeItemModel, UmbDataTypeTreeRootModel } from './types.js';
3
3
  import { type UmbControllerHost } from '../../../../libs/controller-api/index.js';
4
- import { FolderTreeItemResponseModel } from '../../../../external/backend-api/index.js';
5
4
  import { UmbApi } from '../../../../libs/extension-api/index.js';
6
- export declare class UmbDataTypeTreeRepository extends UmbDataTypeRepositoryBase implements UmbTreeRepository<FolderTreeItemResponseModel>, UmbApi {
7
- #private;
5
+ export declare class UmbDataTypeTreeRepository extends UmbEntityTreeRepositoryBase<UmbDataTypeTreeItemModel, UmbDataTypeTreeRootModel> implements UmbApi {
8
6
  constructor(host: UmbControllerHost);
9
7
  requestTreeRoot(): Promise<{
10
8
  data: {
@@ -15,16 +13,4 @@ export declare class UmbDataTypeTreeRepository extends UmbDataTypeRepositoryBase
15
13
  hasChildren: boolean;
16
14
  };
17
15
  }>;
18
- requestRootTreeItems(): Promise<{
19
- data: import("../../repository/index.js").UmbPagedData<FolderTreeItemResponseModel> | undefined;
20
- error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
21
- asObservable: () => import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>;
22
- }>;
23
- requestTreeItemsOf(parentId: string | null): Promise<{
24
- data: import("../../repository/index.js").UmbPagedData<FolderTreeItemResponseModel> | undefined;
25
- error: import("../../../../external/backend-api/index.js").ApiError | import("../../../../external/backend-api/index.js").CancelError | undefined;
26
- asObservable: () => import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>;
27
- }>;
28
- rootTreeItems(): Promise<import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>>;
29
- treeItemsOf(parentId: string | null): Promise<import("rxjs").Observable<import("../../../../external/backend-api/index.js").EntityTreeItemResponseModel[]>>;
30
16
  }
@@ -1,14 +1,12 @@
1
+ import { UmbEntityTreeRepositoryBase } from '../../tree/entity-tree.repository.js';
1
2
  import { DATA_TYPE_ROOT_ENTITY_TYPE } from '../entities.js';
2
- import { UmbDataTypeRepositoryBase } from '../repository/data-type-repository-base.js';
3
3
  import { UmbDataTypeTreeServerDataSource } from './data-type.tree.server.data.js';
4
- export class UmbDataTypeTreeRepository extends UmbDataTypeRepositoryBase {
5
- #treeSource;
4
+ import { UMB_DATA_TYPE_TREE_STORE_CONTEXT } from './data-type.tree.store.js';
5
+ export class UmbDataTypeTreeRepository extends UmbEntityTreeRepositoryBase {
6
6
  constructor(host) {
7
- super(host);
8
- this.#treeSource = new UmbDataTypeTreeServerDataSource(this);
7
+ super(host, UmbDataTypeTreeServerDataSource, UMB_DATA_TYPE_TREE_STORE_CONTEXT);
9
8
  }
10
9
  async requestTreeRoot() {
11
- await this._init;
12
10
  const data = {
13
11
  id: null,
14
12
  type: DATA_TYPE_ROOT_ENTITY_TYPE,
@@ -18,32 +16,4 @@ export class UmbDataTypeTreeRepository extends UmbDataTypeRepositoryBase {
18
16
  };
19
17
  return { data };
20
18
  }
21
- async requestRootTreeItems() {
22
- await this._init;
23
- const { data, error } = await this.#treeSource.getRootItems();
24
- if (data) {
25
- this._treeStore.appendItems(data.items);
26
- }
27
- return { data, error, asObservable: () => this._treeStore.rootItems };
28
- }
29
- async requestTreeItemsOf(parentId) {
30
- await this._init;
31
- if (parentId === undefined)
32
- throw new Error('Parent id is missing');
33
- const { data, error } = await this.#treeSource.getChildrenOf(parentId);
34
- if (data) {
35
- this._treeStore.appendItems(data.items);
36
- }
37
- return { data, error, asObservable: () => this._treeStore.childrenOf(parentId) };
38
- }
39
- async rootTreeItems() {
40
- await this._init;
41
- return this._treeStore.rootItems;
42
- }
43
- async treeItemsOf(parentId) {
44
- if (parentId === undefined)
45
- throw new Error('Parent id is missing');
46
- await this._init;
47
- return this._treeStore.childrenOf(parentId);
48
- }
49
19
  }
@@ -1,4 +1,5 @@
1
- import type { UmbTreeDataSource } from '../../repository/index.js';
1
+ import type { UmbTreeDataSource } from '../../tree/index.js';
2
+ import { DataTypeTreeItemResponseModel } from '../../../../external/backend-api/index.js';
2
3
  import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
3
4
  /**
4
5
  * A data source for the Document tree that fetches data from the server
@@ -6,7 +7,7 @@ import type { UmbControllerHost } from '../../../../libs/controller-api/index.js
6
7
  * @class UmbDataTypeTreeServerDataSource
7
8
  * @implements {DocumentTreeDataSource}
8
9
  */
9
- export declare class UmbDataTypeTreeServerDataSource implements UmbTreeDataSource {
10
+ export declare class UmbDataTypeTreeServerDataSource implements UmbTreeDataSource<DataTypeTreeItemResponseModel> {
10
11
  #private;
11
12
  /**
12
13
  * Creates an instance of UmbDataTypeTreeServerDataSource.
@@ -1,6 +1,6 @@
1
1
  import { UmbContextToken } from '../../../../libs/context-api/index.js';
2
2
  import { UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
3
- import { UmbEntityTreeStore } from '../../store/index.js';
3
+ import { UmbEntityTreeStore } from '../../tree/index.js';
4
4
  /**
5
5
  * @export
6
6
  * @class UmbDataTypeTreeStore
@@ -1,5 +1,5 @@
1
1
  import { UmbContextToken } from '../../../../libs/context-api/index.js';
2
- import { UmbEntityTreeStore } from '../../store/index.js';
2
+ import { UmbEntityTreeStore } from '../../tree/index.js';
3
3
  /**
4
4
  * @export
5
5
  * @class UmbDataTypeTreeStore
@@ -0,0 +1,4 @@
1
+ import { type DataTypeTreeItemResponseModel } from '../../../../external/backend-api/index.js';
2
+ import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from '../../tree/index.js';
3
+ export type UmbDataTypeTreeItemModel = DataTypeTreeItemResponseModel & UmbEntityTreeItemModel;
4
+ export type UmbDataTypeTreeRootModel = DataTypeTreeItemResponseModel & UmbEntityTreeRootModel;
@@ -1,5 +1,6 @@
1
- import type { ManifestApi } from '../../../../libs/extension-api/index.js';
2
- import { UmbItemStore, UmbStoreBase, UmbTreeStore } from '../../store/index.js';
1
+ import { type ManifestApi } from '../../../../libs/extension-api/index.js';
2
+ import { UmbItemStore, UmbStoreBase } from '../../store/index.js';
3
+ import { type UmbTreeStore } from '../../tree/index.js';
3
4
  export interface ManifestStore extends ManifestApi<UmbStoreBase> {
4
5
  type: 'store';
5
6
  }
@@ -7,5 +7,4 @@ export * from './extend-data-source-response-data.function.js';
7
7
  export * from './folder-data-source.interface.js';
8
8
  export * from './item-data-source.interface.js';
9
9
  export * from './move-data-source.interface.js';
10
- export * from './tree-data-source.interface.js';
11
10
  export * from './types.js';
@@ -7,5 +7,4 @@ export * from './extend-data-source-response-data.function.js';
7
7
  export * from './folder-data-source.interface.js';
8
8
  export * from './item-data-source.interface.js';
9
9
  export * from './move-data-source.interface.js';
10
- export * from './tree-data-source.interface.js';
11
10
  export * from './types.js';
@@ -1,6 +1,5 @@
1
1
  export * from './data-source/index.js';
2
2
  export * from './detail-repository.interface.js';
3
- export * from './tree-repository.interface.js';
4
3
  export * from './folder-repository.interface.js';
5
4
  export * from './collection-repository.interface.js';
6
5
  export * from './item-repository.interface.js';
@@ -1,6 +1,5 @@
1
1
  export * from './data-source/index.js';
2
2
  export * from './detail-repository.interface.js';
3
- export * from './tree-repository.interface.js';
4
3
  export * from './folder-repository.interface.js';
5
4
  export * from './collection-repository.interface.js';
6
5
  export * from './item-repository.interface.js';
@@ -1,4 +1,4 @@
1
- import { UmbBaseController, UmbControllerHost } from "../../../libs/controller-api/index.js";
1
+ import { UmbBaseController, UmbControllerHost } from '../../../libs/controller-api/index.js';
2
2
  export declare class UmbRepositoryBase extends UmbBaseController {
3
3
  constructor(host: UmbControllerHost);
4
4
  }
@@ -1,4 +1,4 @@
1
- import { UmbBaseController } from "../../../libs/controller-api/index.js";
1
+ import { UmbBaseController } from '../../../libs/controller-api/index.js';
2
2
  export class UmbRepositoryBase extends UmbBaseController {
3
3
  constructor(host) {
4
4
  super(host);
@@ -1,8 +1,5 @@
1
- export * from './entity-tree-store.js';
2
- export * from './file-system-tree.store.js';
3
1
  export * from './item-store.interface.js';
4
2
  export * from './store-base.js';
5
3
  export * from './store.interface.js';
6
4
  export * from './store.js';
7
- export * from './tree-store.interface.js';
8
5
  export * from './entity-item.store.js';
@@ -1,8 +1,5 @@
1
- export * from './entity-tree-store.js';
2
- export * from './file-system-tree.store.js';
3
1
  export * from './item-store.interface.js';
4
2
  export * from './store-base.js';
5
3
  export * from './store.interface.js';
6
4
  export * from './store.js';
7
- export * from './tree-store.interface.js';
8
5
  export * from './entity-item.store.js';
@@ -1,5 +1,5 @@
1
- import { UmbStoreBase } from './store-base.js';
2
- import type { UmbTreeStore } from './tree-store.interface.js';
1
+ import { type UmbTreeStore } from './tree-store.interface.js';
2
+ import { UmbStoreBase } from '../store/index.js';
3
3
  import { EntityTreeItemResponseModel } from '../../../external/backend-api/index.js';
4
4
  import { UmbControllerHostElement } from '../../../libs/controller-api/index.js';
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { UmbStoreBase } from './store-base.js';
1
+ import { UmbStoreBase } from '../store/index.js';
2
2
  import { UmbArrayState } from '../../../libs/observable-api/index.js';
3
3
  /**
4
4
  * @export
@@ -0,0 +1,54 @@
1
+ import { UmbTreeStore } from './tree-store.interface.js';
2
+ import type { UmbEntityTreeItemModel, UmbEntityTreeRootModel } from './types.js';
3
+ import { UmbTreeRepository } from './tree-repository.interface.js';
4
+ import type { UmbTreeDataSourceConstructor } from './tree-data-source.interface.js';
5
+ import { UmbRepositoryBase } from '../repository/index.js';
6
+ import { type UmbControllerHost } from '../../../libs/controller-api/index.js';
7
+ import { UmbApi } from '../../../libs/extension-api/index.js';
8
+ import { UmbContextToken } from '../../../libs/context-api/index.js';
9
+ export declare class UmbEntityTreeRepositoryBase<TreeItemType extends UmbEntityTreeItemModel, TreeRootType extends UmbEntityTreeRootModel> extends UmbRepositoryBase implements UmbTreeRepository<TreeItemType, TreeRootType>, UmbApi {
10
+ #private;
11
+ protected _init: Promise<unknown>;
12
+ protected _treeStore?: UmbTreeStore;
13
+ constructor(host: UmbControllerHost, treeSource: UmbTreeDataSourceConstructor, treeStoreContextAlias: string | UmbContextToken<any, any>);
14
+ /**
15
+ * Request the tree root item
16
+ * @return {*}
17
+ * @memberof UmbEntityTreeRepositoryBase
18
+ */
19
+ requestTreeRoot(): Promise<import("../repository/index.js").DataSourceResponse<any>>;
20
+ /**
21
+ * Requests root items of a tree
22
+ * @return {*}
23
+ * @memberof UmbEntityTreeRepositoryBase
24
+ */
25
+ requestRootTreeItems(): Promise<{
26
+ data: import("../repository/index.js").UmbPagedData<any> | undefined;
27
+ error: import("../../../external/backend-api/index.js").ApiError | import("../../../external/backend-api/index.js").CancelError | undefined;
28
+ asObservable: () => import("rxjs").Observable<any[]>;
29
+ }>;
30
+ /**
31
+ * Requests tree items of a given parent
32
+ * @param {(string | null)} parentId
33
+ * @return {*}
34
+ * @memberof UmbEntityTreeRepositoryBase
35
+ */
36
+ requestTreeItemsOf(parentId: string | null): Promise<{
37
+ data: import("../repository/index.js").UmbPagedData<any> | undefined;
38
+ error: import("../../../external/backend-api/index.js").ApiError | import("../../../external/backend-api/index.js").CancelError | undefined;
39
+ asObservable: () => import("rxjs").Observable<any[]>;
40
+ }>;
41
+ /**
42
+ * Returns a promise with an observable of tree root items
43
+ * @return {*}
44
+ * @memberof UmbEntityTreeRepositoryBase
45
+ */
46
+ rootTreeItems(): Promise<import("rxjs").Observable<any[]>>;
47
+ /**
48
+ * Returns a promise with an observable of children items of a given parent
49
+ * @param {(string | null)} parentId
50
+ * @return {*}
51
+ * @memberof UmbEntityTreeRepositoryBase
52
+ */
53
+ treeItemsOf(parentId: string | null): Promise<import("rxjs").Observable<any[]>>;
54
+ }
@@ -0,0 +1,72 @@
1
+ import { UmbRepositoryBase } from '../repository/index.js';
2
+ export class UmbEntityTreeRepositoryBase extends UmbRepositoryBase {
3
+ #treeSource;
4
+ constructor(host, treeSource, treeStoreContextAlias) {
5
+ super(host);
6
+ this.#treeSource = new treeSource(this);
7
+ this._init = this.consumeContext(treeStoreContextAlias, (instance) => {
8
+ this._treeStore = instance;
9
+ }).asPromise();
10
+ }
11
+ /**
12
+ * Request the tree root item
13
+ * @return {*}
14
+ * @memberof UmbEntityTreeRepositoryBase
15
+ */
16
+ async requestTreeRoot() {
17
+ if (!this.#treeSource.getTreeRoot?.()) {
18
+ return { data: undefined, error: undefined };
19
+ }
20
+ return this.#treeSource.getTreeRoot();
21
+ }
22
+ /**
23
+ * Requests root items of a tree
24
+ * @return {*}
25
+ * @memberof UmbEntityTreeRepositoryBase
26
+ */
27
+ async requestRootTreeItems() {
28
+ await this._init;
29
+ const { data, error } = await this.#treeSource.getRootItems();
30
+ if (data) {
31
+ this._treeStore.appendItems(data.items);
32
+ }
33
+ return { data, error, asObservable: () => this._treeStore.rootItems };
34
+ }
35
+ /**
36
+ * Requests tree items of a given parent
37
+ * @param {(string | null)} parentId
38
+ * @return {*}
39
+ * @memberof UmbEntityTreeRepositoryBase
40
+ */
41
+ async requestTreeItemsOf(parentId) {
42
+ if (parentId === undefined)
43
+ throw new Error('Parent id is missing');
44
+ await this._init;
45
+ const { data, error } = await this.#treeSource.getChildrenOf(parentId);
46
+ if (data) {
47
+ this._treeStore.appendItems(data.items);
48
+ }
49
+ return { data, error, asObservable: () => this._treeStore.childrenOf(parentId) };
50
+ }
51
+ /**
52
+ * Returns a promise with an observable of tree root items
53
+ * @return {*}
54
+ * @memberof UmbEntityTreeRepositoryBase
55
+ */
56
+ async rootTreeItems() {
57
+ await this._init;
58
+ return this._treeStore.rootItems;
59
+ }
60
+ /**
61
+ * Returns a promise with an observable of children items of a given parent
62
+ * @param {(string | null)} parentId
63
+ * @return {*}
64
+ * @memberof UmbEntityTreeRepositoryBase
65
+ */
66
+ async treeItemsOf(parentId) {
67
+ if (parentId === undefined)
68
+ throw new Error('Parent id is missing');
69
+ await this._init;
70
+ return this._treeStore.childrenOf(parentId);
71
+ }
72
+ }
@@ -1,5 +1,5 @@
1
- import { UmbStoreBase } from './store-base.js';
2
- import { UmbTreeStore } from './tree-store.interface.js';
1
+ import { type UmbTreeStore } from './tree-store.interface.js';
2
+ import { UmbStoreBase } from '../store/index.js';
3
3
  import { FileSystemTreeItemPresentationModel } from '../../../external/backend-api/index.js';
4
4
  import { UmbControllerHostElement } from '../../../libs/controller-api/index.js';
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { UmbStoreBase } from './store-base.js';
1
+ import { UmbStoreBase } from '../store/index.js';
2
2
  import { UmbArrayState } from '../../../libs/observable-api/index.js';
3
3
  /**
4
4
  * @export
@@ -1,3 +1,4 @@
1
+ export * from './components/index.js';
1
2
  export * from './entity-tree-item/index.js';
2
3
  export * from './file-system-tree-item/index.js';
3
4
  export * from './tree-item/index.js';
@@ -5,16 +6,10 @@ export * from './tree-item-base/index.js';
5
6
  export * from './tree-menu-item/index.js';
6
7
  export * from './tree.context.js';
7
8
  export * from './tree.element.js';
8
- export * from './components/index.js';
9
- export interface UmbTreeRootModel {
10
- type: string;
11
- name: string;
12
- hasChildren: boolean;
13
- icon?: string;
14
- }
15
- export interface UmbTreeRootEntityModel extends UmbTreeRootModel {
16
- id: string | null;
17
- }
18
- export interface UmbTreeRootFileSystemModel extends UmbTreeRootModel {
19
- path: string | null;
20
- }
9
+ export * from './types.js';
10
+ export * from './tree-repository.interface.js';
11
+ export * from './tree-data-source.interface.js';
12
+ export * from './tree-store.interface.js';
13
+ export * from './entity-tree-store.js';
14
+ export * from './file-system-tree.store.js';
15
+ export { UmbEntityTreeRepositoryBase } from './entity-tree.repository.js';
@@ -1,3 +1,4 @@
1
+ export * from './components/index.js';
1
2
  export * from './entity-tree-item/index.js';
2
3
  export * from './file-system-tree-item/index.js';
3
4
  export * from './tree-item/index.js';
@@ -5,4 +6,10 @@ export * from './tree-item-base/index.js';
5
6
  export * from './tree-menu-item/index.js';
6
7
  export * from './tree.context.js';
7
8
  export * from './tree.element.js';
8
- export * from './components/index.js';
9
+ export * from './types.js';
10
+ export * from './tree-repository.interface.js';
11
+ export * from './tree-data-source.interface.js';
12
+ export * from './tree-store.interface.js';
13
+ export * from './entity-tree-store.js';
14
+ export * from './file-system-tree.store.js';
15
+ export { UmbEntityTreeRepositoryBase } from './entity-tree.repository.js';
@@ -0,0 +1,11 @@
1
+ import type { UmbPagedData, DataSourceResponse } from '../repository/index.js';
2
+ import { UmbControllerHost } from '../../../libs/controller-api/index.js';
3
+ export interface UmbTreeDataSourceConstructor<TreeItemType = any, TreeRootType = any> {
4
+ new (host: UmbControllerHost): UmbTreeDataSource<TreeItemType, TreeRootType>;
5
+ }
6
+ export interface UmbTreeDataSource<TreeItemType = any, TreeRootType = any> {
7
+ getTreeRoot?(): Promise<DataSourceResponse<TreeRootType>>;
8
+ getRootItems(): Promise<DataSourceResponse<UmbPagedData<TreeItemType>>>;
9
+ getChildrenOf(parentUnique: string | null): Promise<DataSourceResponse<UmbPagedData<TreeItemType>>>;
10
+ getItems(unique: Array<string>): Promise<DataSourceResponse<Array<any>>>;
11
+ }
@@ -1,9 +1,9 @@
1
- import { type UmbPagedData } from './data-source/types.js';
1
+ import type { UmbTreeItemModelBase, UmbTreeItemModel, UmbEntityTreeRootModel } from './types.js';
2
+ import type { UmbPagedData } from '../repository/index.js';
2
3
  import { type Observable } from '../../../external/rxjs/index.js';
3
- import type { UmbTreeRootEntityModel, UmbTreeRootModel } from '../tree/index.js';
4
- import { ProblemDetails, EntityTreeItemResponseModel } from '../../../external/backend-api/index.js';
4
+ import { ProblemDetails } from '../../../external/backend-api/index.js';
5
5
  import { UmbApi } from '../../../libs/extension-api/index.js';
6
- export interface UmbTreeRepository<TreeItemType extends EntityTreeItemResponseModel, TreeRootType extends UmbTreeRootModel = UmbTreeRootEntityModel> extends UmbApi {
6
+ export interface UmbTreeRepository<TreeItemType extends UmbTreeItemModel = UmbTreeItemModel, TreeRootType extends UmbTreeItemModelBase = UmbEntityTreeRootModel> extends UmbApi {
7
7
  requestTreeRoot: () => Promise<{
8
8
  data?: TreeRootType;
9
9
  error?: ProblemDetails;
@@ -1,4 +1,4 @@
1
- import { UmbStore } from './store.interface.js';
1
+ import { UmbStore } from '../store/index.js';
2
2
  import type { Observable } from '../../../external/rxjs/index.js';
3
3
  import { TreeItemPresentationModel } from '../../../external/backend-api/index.js';
4
4
  import type { UmbApi } from '../../../libs/extension-api/index.js';
@@ -1,8 +1,10 @@
1
+ import { type UmbTreeItemModelBase } from './types.js';
2
+ import { type UmbTreeRepository } from './tree-repository.interface.js';
1
3
  import { Observable } from '../../../external/rxjs/index.js';
2
- import { UmbPagedData, UmbTreeRepository } from '../repository/index.js';
4
+ import { UmbPagedData } from '../repository/index.js';
3
5
  import { UmbBaseController, UmbControllerHostElement } from '../../../libs/controller-api/index.js';
4
- import { ProblemDetails, TreeItemPresentationModel } from '../../../external/backend-api/index.js';
5
- export interface UmbTreeContext<TreeItemType extends TreeItemPresentationModel> extends UmbBaseController {
6
+ import { ProblemDetails } from '../../../external/backend-api/index.js';
7
+ export interface UmbTreeContext<TreeItemType extends UmbTreeItemModelBase> extends UmbBaseController {
6
8
  readonly selectable: Observable<boolean>;
7
9
  readonly selection: Observable<Array<string | null>>;
8
10
  setSelectable(value: boolean): void;
@@ -19,7 +21,7 @@ export interface UmbTreeContext<TreeItemType extends TreeItemPresentationModel>
19
21
  asObservable?: () => Observable<TreeItemType[]>;
20
22
  }>;
21
23
  }
22
- export declare class UmbTreeContextBase<TreeItemType extends TreeItemPresentationModel> extends UmbBaseController implements UmbTreeContext<TreeItemType> {
24
+ export declare class UmbTreeContextBase<TreeItemType extends UmbTreeItemModelBase> extends UmbBaseController implements UmbTreeContext<TreeItemType> {
23
25
  #private;
24
26
  readonly selectable: Observable<boolean>;
25
27
  readonly multiple: Observable<boolean>;
@@ -38,7 +40,7 @@ export declare class UmbTreeContextBase<TreeItemType extends TreeItemPresentatio
38
40
  select(unique: string | null): void;
39
41
  deselect(unique: string | null): void;
40
42
  requestTreeRoot(): Promise<{
41
- data?: import("./index.js").UmbTreeRootEntityModel | undefined;
43
+ data?: import("./types.js").UmbEntityTreeRootModel | undefined;
42
44
  error?: ProblemDetails | undefined;
43
45
  }>;
44
46
  requestRootItems(): Promise<{
@@ -1,4 +1,4 @@
1
- import { umbExtensionsRegistry } from '../extension-registry/index.js';
1
+ import { umbExtensionsRegistry, } from '../extension-registry/index.js';
2
2
  import { UmbBooleanState } from '../../../libs/observable-api/index.js';
3
3
  import { UmbBaseController } from '../../../libs/controller-api/index.js';
4
4
  import { UmbExtensionApiInitializer } from '../../../libs/extension-api/index.js';
@@ -0,0 +1,21 @@
1
+ export interface UmbTreeItemModelBase {
2
+ type?: string;
3
+ name?: string;
4
+ hasChildren?: boolean;
5
+ icon?: string | null;
6
+ }
7
+ export interface UmbTreeItemModel extends UmbTreeItemModelBase {
8
+ parentId?: string | null;
9
+ }
10
+ export interface UmbEntityTreeItemModel extends UmbTreeItemModel {
11
+ id?: string;
12
+ }
13
+ export interface UmbFileSystemTreeItemModel extends UmbTreeItemModel {
14
+ path?: string;
15
+ }
16
+ export interface UmbEntityTreeRootModel extends UmbTreeItemModelBase {
17
+ id: null;
18
+ }
19
+ export interface UmbFileSystemTreeRootModel extends UmbTreeItemModelBase {
20
+ path: null;
21
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,6 @@
1
1
  import { UmbBaseController, UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
2
- import { UmbDetailRepository, UmbTreeRepository } from '../../../core/repository/index.js';
2
+ import { UmbDetailRepository } from '../../../core/repository/index.js';
3
+ import { UmbTreeRepository } from '../../../core/tree/index.js';
3
4
  import { CreateDictionaryItemRequestModel, DictionaryOverviewResponseModel, EntityTreeItemResponseModel, ImportDictionaryRequestModel, UpdateDictionaryItemRequestModel } from '../../../../external/backend-api/index.js';
4
5
  import type { UmbApi } from '../../../../libs/extension-api/index.js';
5
6
  export declare class UmbDictionaryRepository extends UmbBaseController implements UmbTreeRepository<EntityTreeItemResponseModel>, UmbDetailRepository<CreateDictionaryItemRequestModel, any, UpdateDictionaryItemRequestModel, DictionaryOverviewResponseModel>, UmbApi {
@@ -1,5 +1,5 @@
1
1
  import { UmbContextToken } from '../../../../libs/context-api/index.js';
2
- import { UmbEntityTreeStore } from '../../../core/store/index.js';
2
+ import { UmbEntityTreeStore } from '../../../core/tree/index.js';
3
3
  import { UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
4
4
  /**
5
5
  * @export
@@ -1,5 +1,5 @@
1
1
  import { UmbContextToken } from '../../../../libs/context-api/index.js';
2
- import { UmbEntityTreeStore } from '../../../core/store/index.js';
2
+ import { UmbEntityTreeStore } from '../../../core/tree/index.js';
3
3
  /**
4
4
  * @export
5
5
  * @class UmbDictionaryTreeStore
@@ -1,5 +1,5 @@
1
1
  import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
2
- import type { UmbTreeDataSource } from '../../../../core/repository/index.js';
2
+ import type { UmbTreeDataSource } from '../../../../core/tree/index.js';
3
3
  /**
4
4
  * A data source for the Dictionary tree that fetches data from the server
5
5
  * @export
@@ -1,5 +1,5 @@
1
1
  import { UmbContextToken } from '../../../libs/context-api/index.js';
2
- import { UmbEntityTreeStore } from '../../core/store/index.js';
2
+ import { UmbEntityTreeStore } from '../../core/tree/index.js';
3
3
  import type { UmbControllerHostElement } from '../../../libs/controller-api/index.js';
4
4
  export declare const UMB_DOCUMENT_BLUEPRINT_TREE_STORE_CONTEXT_TOKEN: UmbContextToken<UmbDocumentBlueprintTreeStore, UmbDocumentBlueprintTreeStore>;
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { UmbContextToken } from '../../../libs/context-api/index.js';
2
- import { UmbEntityTreeStore } from '../../core/store/index.js';
2
+ import { UmbEntityTreeStore } from '../../core/tree/index.js';
3
3
  export const UMB_DOCUMENT_BLUEPRINT_TREE_STORE_CONTEXT_TOKEN = new UmbContextToken('UmbDocumentBlueprintTreeStore');
4
4
  /**
5
5
  * @export
@@ -1,4 +1,5 @@
1
- import type { UmbTreeRepository, UmbDetailRepository } from '../../../core/repository/index.js';
1
+ import { type UmbDetailRepository } from '../../../core/repository/index.js';
2
+ import type { UmbTreeRepository } from '../../../core/tree/index.js';
2
3
  import { UmbBaseController, type UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
3
4
  import { CreateDocumentTypeRequestModel, DocumentTypeResponseModel, EntityTreeItemResponseModel, FolderTreeItemResponseModel, UpdateDocumentTypeRequestModel } from '../../../../external/backend-api/index.js';
4
5
  import { UmbApi } from '../../../../libs/extension-api/index.js';
@@ -1,5 +1,5 @@
1
1
  import { UmbContextToken } from '../../../../libs/context-api/index.js';
2
- import { UmbEntityTreeStore } from '../../../core/store/index.js';
2
+ import { UmbEntityTreeStore } from '../../../core/tree/index.js';
3
3
  import { UmbControllerHostElement } from '../../../../libs/controller-api/index.js';
4
4
  /**
5
5
  * @export
@@ -1,5 +1,5 @@
1
1
  import { UmbContextToken } from '../../../../libs/context-api/index.js';
2
- import { UmbEntityTreeStore } from '../../../core/store/index.js';
2
+ import { UmbEntityTreeStore } from '../../../core/tree/index.js';
3
3
  /**
4
4
  * @export
5
5
  * @class UmbDocumentTypeTreeStore
@@ -1,4 +1,4 @@
1
- import type { UmbTreeDataSource } from '../../../../core/repository/index.js';
1
+ import type { UmbTreeDataSource } from '../../../../core/tree/index.js';
2
2
  import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
3
3
  /**
4
4
  * A data source for the Document tree that fetches data from the server
@@ -1,4 +1,4 @@
1
- import type { UmbTreeRepository } from '../../../../core/repository/index.js';
1
+ import type { UmbTreeRepository } from '../../../../core/tree/index.js';
2
2
  import { UmbBaseController, type UmbControllerHost } from '../../../../../libs/controller-api/index.js';
3
3
  import { DocumentTreeItemResponseModel } from '../../../../../external/backend-api/index.js';
4
4
  export declare class UmbDocumentRecycleBinRepository extends UmbBaseController implements UmbTreeRepository<DocumentTreeItemResponseModel> {
@@ -1,5 +1,5 @@
1
1
  import { UmbContextToken } from '../../../../../libs/context-api/index.js';
2
- import { UmbEntityTreeStore } from '../../../../core/store/index.js';
2
+ import { UmbEntityTreeStore } from '../../../../core/tree/index.js';
3
3
  import { UmbControllerHostElement } from '../../../../../libs/controller-api/index.js';
4
4
  /**
5
5
  * @export