diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts index 1b2f0615eb..86d13d0188 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-repository.interface.ts @@ -4,27 +4,58 @@ import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +/** + * Interface for a tree repository. + * @export + * @interface UmbTreeRepository + * @extends {UmbApi} + * @template TreeItemType + * @template TreeRootType + */ export interface UmbTreeRepository< TreeItemType extends UmbTreeItemModelBase = UmbTreeItemModelBase, TreeRootType extends UmbTreeItemModelBase = UmbTreeItemModelBase, > extends UmbApi { + /** + * Requests the root of the tree. + * @memberof UmbTreeRepository + */ requestTreeRoot: () => Promise<{ data?: TreeRootType; error?: ProblemDetails; }>; + /** + * Requests the root items of the tree. + * @memberof UmbTreeRepository + */ requestRootTreeItems: () => Promise<{ data?: UmbPagedModel; error?: ProblemDetails; asObservable?: () => Observable; }>; + /** + * Requests the items of a item in the tree. + * @param {(string | null)} parentUnique + * @memberof UmbTreeRepository + */ requestTreeItemsOf: (parentUnique: string | null) => Promise<{ data?: UmbPagedModel; error?: ProblemDetails; asObservable?: () => Observable; }>; + /** + * Returns an observable of the root items of the tree. + * @memberof UmbTreeRepository + */ rootTreeItems: () => Promise>; + + /** + * Returns an observable of the children of the given parent item. + * @param {(string | null)} parentUnique + * @memberof UmbTreeRepository + */ treeItemsOf: (parentUnique: string | null) => Promise>; } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts index b573021677..dbeefe8ed6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-store.interface.ts @@ -3,7 +3,26 @@ import type { UmbStore } from '@umbraco-cms/backoffice/store'; import type { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import type { UmbApi } from '@umbraco-cms/backoffice/extension-api'; +/** + * Interface for a tree store. + * @export + * @interface UmbTreeStore + * @extends {UmbStore} + * @extends {UmbApi} + * @template TreeItemType + */ export interface UmbTreeStore extends UmbStore, UmbApi { + /** + * Returns an observable of the root items of the tree. + * @type {Observable>} + * @memberof UmbTreeStore + */ rootItems: Observable>; + + /** + * Returns an observable of the children of the given parent item. + * @param {(string | null)} parentUnique + * @memberof UmbTreeStore + */ childrenOf: (parentUnique: string | null) => Observable>; }