@umbraco-cms/backoffice 1.0.0-next.99fe12c7 → 1.0.0-next.bc7aa666

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.
@@ -1,6 +1,6 @@
1
1
  import * as rxjs from 'rxjs';
2
2
  import { Observable, BehaviorSubject } from 'rxjs';
3
- import { UmbControllerInterface, UmbControllerHostInterface } from './controller';
3
+ import { UmbControllerInterface, UmbControllerHostElement } from './controller';
4
4
 
5
5
  declare class UmbObserver<T> {
6
6
  #private;
@@ -13,7 +13,7 @@ declare class UmbObserver<T> {
13
13
  declare class UmbObserverController<T = unknown> extends UmbObserver<T> implements UmbControllerInterface {
14
14
  _alias?: string;
15
15
  get unique(): string | undefined;
16
- constructor(host: UmbControllerHostInterface, source: Observable<T>, callback: (_value: T) => void, alias?: string);
16
+ constructor(host: UmbControllerHostElement, source: Observable<T>, callback: (_value: T) => void, alias?: string);
17
17
  }
18
18
 
19
19
  /**
@@ -99,7 +99,7 @@ declare class DeepState<T> extends BehaviorSubject<T> {
99
99
  */
100
100
  declare class ArrayState<T> extends DeepState<T[]> {
101
101
  private _getUnique?;
102
- constructor(initialData: T[], _getUnique?: ((entry: T) => unknown) | undefined);
102
+ constructor(initialData: T[], getUniqueMethod?: (entry: T) => unknown);
103
103
  /**
104
104
  * @method remove
105
105
  * @param {unknown[]} uniques - The unique values to remove.
@@ -181,6 +181,21 @@ declare class ArrayState<T> extends DeepState<T[]> {
181
181
  * ]);
182
182
  */
183
183
  append(entries: T[]): this;
184
+ /**
185
+ * @method updateOne
186
+ * @param {unknown} unique - Unique value to find entry to update.
187
+ * @param {Partial<T>} entry - new data to be added in this Subject.
188
+ * @return {ArrayState<T>} Reference to it self.
189
+ * @description - Update a item with some new data, requires the ArrayState to be constructed with a getUnique method.
190
+ * @example <caption>Example append some data.</caption>
191
+ * const data = [
192
+ * { key: 1, value: 'foo'},
193
+ * { key: 2, value: 'bar'}
194
+ * ];
195
+ * const myState = new ArrayState(data, (x) => x.key);
196
+ * myState.updateOne(2, {value: 'updated-bar'});
197
+ */
198
+ updateOne(unique: unknown, entry: Partial<T>): this;
184
199
  }
185
200
 
186
201
  /**
@@ -246,4 +261,4 @@ declare function appendToFrozenArray<T>(data: T[], entry: T, getUniqueMethod?: (
246
261
  */
247
262
  declare function partialUpdateFrozenArray<T>(data: T[], partialEntry: Partial<T>, findMethod: (entry: T) => boolean): T[];
248
263
 
249
- export { ArrayState, BooleanState, ClassState, DeepState, NumberState, ObjectState, StringState, UmbObserver, UmbObserverController, appendToFrozenArray, createObservablePart, partialUpdateFrozenArray };
264
+ export { ArrayState, BasicState, BooleanState, ClassState, DeepState, MappingFunction, NumberState, ObjectState, StringState, UmbObserver, UmbObserverController, appendToFrozenArray, createObservablePart, partialUpdateFrozenArray };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umbraco-cms/backoffice",
3
- "version": "1.0.0-next.99fe12c7",
3
+ "version": "1.0.0-next.bc7aa666",
4
4
  "license": "MIT",
5
5
  "keywords": [
6
6
  "umbraco",
package/repository.d.ts CHANGED
@@ -1,12 +1,34 @@
1
- import { ProblemDetailsModel, PagedEntityTreeItemResponseModel, EntityTreeItemResponseModel } from './backend-api';
2
- import { Observable } from 'rxjs';
1
+ import { ProblemDetailsModel, FolderReponseModel, CreateFolderRequestModel, UpdateFolderReponseModel, FolderModelBaseModel } from './backend-api';
3
2
  import { DataSourceResponse as DataSourceResponse$1 } from './repository';
3
+ import { Observable } from 'rxjs';
4
4
 
5
5
  interface DataSourceResponse<T = undefined> {
6
6
  data?: T;
7
7
  error?: ProblemDetailsModel;
8
8
  }
9
9
 
10
+ interface UmbDataSource<CreateRequestType, UpdateRequestType, ResponseType> {
11
+ createScaffold(parentKey: string | null): Promise<DataSourceResponse$1<ResponseType>>;
12
+ get(unique: string): Promise<DataSourceResponse$1<ResponseType>>;
13
+ insert(data: CreateRequestType): Promise<any>;
14
+ update(unique: string, data: UpdateRequestType): Promise<DataSourceResponse$1<ResponseType>>;
15
+ delete(unique: string): Promise<DataSourceResponse$1>;
16
+ }
17
+
18
+ interface UmbFolderDataSource {
19
+ createScaffold(parentKey: string | null): Promise<DataSourceResponse<FolderReponseModel>>;
20
+ get(unique: string): Promise<DataSourceResponse<FolderReponseModel>>;
21
+ insert(data: CreateFolderRequestModel): Promise<DataSourceResponse<string>>;
22
+ update(unique: string, data: CreateFolderRequestModel): Promise<DataSourceResponse<UpdateFolderReponseModel>>;
23
+ delete(unique: string): Promise<DataSourceResponse>;
24
+ }
25
+
26
+ interface UmbTreeDataSource<PagedItemsType = any, ItemsType = any> {
27
+ getRootItems(): Promise<DataSourceResponse$1<PagedItemsType>>;
28
+ getChildrenOf(parentUnique: string): Promise<DataSourceResponse$1<PagedItemsType>>;
29
+ getItems(unique: Array<string>): Promise<DataSourceResponse$1<Array<ItemsType>>>;
30
+ }
31
+
10
32
  interface UmbDetailRepository<DetailType> {
11
33
  createScaffold(parentKey: string | null): Promise<{
12
34
  data?: DetailType;
@@ -27,39 +49,51 @@ interface UmbDetailRepository<DetailType> {
27
49
  }>;
28
50
  }
29
51
 
30
- interface UmbTreeRepository {
52
+ interface UmbPagedData<T> {
53
+ total: number;
54
+ items: Array<T>;
55
+ }
56
+ interface UmbTreeRepository<ItemType = any, PagedItemType = UmbPagedData<ItemType>> {
31
57
  requestRootTreeItems: () => Promise<{
32
- data: PagedEntityTreeItemResponseModel | undefined;
58
+ data: PagedItemType | undefined;
33
59
  error: ProblemDetailsModel | undefined;
34
- asObservable?: () => Observable<EntityTreeItemResponseModel[]>;
60
+ asObservable?: () => Observable<ItemType[]>;
35
61
  }>;
36
- requestTreeItemsOf: (parentKey: string | null) => Promise<{
37
- data: PagedEntityTreeItemResponseModel | undefined;
62
+ requestTreeItemsOf: (parentUnique: string | null) => Promise<{
63
+ data: PagedItemType | undefined;
38
64
  error: ProblemDetailsModel | undefined;
39
- asObservable?: () => Observable<EntityTreeItemResponseModel[]>;
65
+ asObservable?: () => Observable<ItemType[]>;
40
66
  }>;
41
- requestTreeItems: (keys: string[]) => Promise<{
42
- data: Array<EntityTreeItemResponseModel> | undefined;
67
+ requestTreeItems: (uniques: string[]) => Promise<{
68
+ data: Array<ItemType> | undefined;
43
69
  error: ProblemDetailsModel | undefined;
44
- asObservable?: () => Observable<EntityTreeItemResponseModel[]>;
70
+ asObservable?: () => Observable<ItemType[]>;
45
71
  }>;
46
- rootTreeItems: () => Promise<Observable<EntityTreeItemResponseModel[]>>;
47
- treeItemsOf: (parentKey: string | null) => Promise<Observable<EntityTreeItemResponseModel[]>>;
48
- treeItems: (keys: string[]) => Promise<Observable<EntityTreeItemResponseModel[]>>;
49
- }
50
-
51
- interface RepositoryTreeDataSource {
52
- getRootItems(): Promise<DataSourceResponse$1<PagedEntityTreeItemResponseModel>>;
53
- getChildrenOf(parentKey: string): Promise<DataSourceResponse$1<PagedEntityTreeItemResponseModel>>;
54
- getItems(key: Array<string>): Promise<DataSourceResponse$1<EntityTreeItemResponseModel[]>>;
72
+ rootTreeItems: () => Promise<Observable<ItemType[]>>;
73
+ treeItemsOf: (parentUnique: string | null) => Promise<Observable<ItemType[]>>;
74
+ treeItems: (uniques: string[]) => Promise<Observable<ItemType[]>>;
55
75
  }
56
76
 
57
- interface RepositoryDetailDataSource<DetailType> {
58
- createScaffold(parentKey: string | null): Promise<DataSourceResponse$1<DetailType>>;
59
- get(key: string): Promise<DataSourceResponse$1<DetailType>>;
60
- insert(data: DetailType): Promise<DataSourceResponse$1<DetailType>>;
61
- update(data: DetailType): Promise<DataSourceResponse$1<DetailType>>;
62
- delete(key: string): Promise<DataSourceResponse$1<DetailType>>;
77
+ interface UmbFolderRepository {
78
+ createFolderScaffold(parentKey: string | null): Promise<{
79
+ data?: FolderReponseModel;
80
+ error?: ProblemDetailsModel;
81
+ }>;
82
+ createFolder(folderRequest: CreateFolderRequestModel): Promise<{
83
+ data?: string;
84
+ error?: ProblemDetailsModel;
85
+ }>;
86
+ requestFolder(unique: string): Promise<{
87
+ data?: FolderReponseModel;
88
+ error?: ProblemDetailsModel;
89
+ }>;
90
+ updateFolder(unique: string, folder: FolderModelBaseModel): Promise<{
91
+ data?: UpdateFolderReponseModel;
92
+ error?: ProblemDetailsModel;
93
+ }>;
94
+ deleteFolder(key: string): Promise<{
95
+ error?: ProblemDetailsModel;
96
+ }>;
63
97
  }
64
98
 
65
- export { DataSourceResponse, RepositoryDetailDataSource, RepositoryTreeDataSource, UmbDetailRepository, UmbTreeRepository };
99
+ export { DataSourceResponse, UmbDataSource, UmbDetailRepository, UmbFolderDataSource, UmbFolderRepository, UmbPagedData, UmbTreeDataSource, UmbTreeRepository };
package/resources.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { UmbNotificationOptions } from './notification';
2
2
  import { ProblemDetailsModel } from './backend-api';
3
- import { UmbController, UmbControllerHostInterface } from './controller';
3
+ import { UmbController, UmbControllerHostElement } from './controller';
4
4
  import { DataSourceResponse as DataSourceResponse$1 } from './repository';
5
5
 
6
6
  declare class UmbResourceController extends UmbController {
7
7
  #private;
8
- constructor(host: UmbControllerHostInterface, promise: Promise<any>, alias?: string);
8
+ constructor(host: UmbControllerHostElement, promise: Promise<any>, alias?: string);
9
9
  hostConnected(): void;
10
10
  hostDisconnected(): void;
11
11
  /**
@@ -45,6 +45,6 @@ interface DataSourceResponse<T = undefined> {
45
45
 
46
46
  declare function tryExecute<T>(promise: Promise<T>): Promise<DataSourceResponse<T>>;
47
47
 
48
- declare function tryExecuteAndNotify<T>(host: UmbControllerHostInterface, resource: Promise<T>, options?: UmbNotificationOptions<any>): Promise<DataSourceResponse<T>>;
48
+ declare function tryExecuteAndNotify<T>(host: UmbControllerHostElement, resource: Promise<T>, options?: UmbNotificationOptions<any>): Promise<DataSourceResponse<T>>;
49
49
 
50
50
  export { UmbResourceController, tryExecute, tryExecuteAndNotify };
package/router.d.ts ADDED
@@ -0,0 +1,130 @@
1
+ import { UmbContextToken } from './context-api';
2
+ import { UmbControllerHostElement } from './controller';
3
+ import { UmbModalRouteRegistration } from './modal';
4
+
5
+ interface UmbRouteLocation {
6
+ name?: string;
7
+ params: {
8
+ [key: string]: string;
9
+ };
10
+ }
11
+
12
+ declare class UmbRouteContext {
13
+ #private;
14
+ private _onGotModals;
15
+ constructor(host: UmbControllerHostElement, _onGotModals: (contextRoutes: any) => void);
16
+ registerModal(registration: UmbModalRouteRegistration): UmbModalRouteRegistration<object, any>;
17
+ unregisterModal(registrationToken: ReturnType<typeof this$1.registerModal>): void;
18
+ _internal_routerGotBasePath(routerBasePath: string): void;
19
+ _internal_modalRouterChanged(activeModalPath: string | undefined): void;
20
+ }
21
+ declare const UMB_ROUTE_CONTEXT_TOKEN: UmbContextToken<UmbRouteContext>;
22
+
23
+ interface IRouterSlot<D = any, P = any> extends HTMLElement {
24
+ readonly route: IRoute<D> | null;
25
+ readonly isRoot: boolean;
26
+ readonly fragments: IPathFragments | null;
27
+ readonly params: Params | null;
28
+ readonly match: IRouteMatch<D> | null;
29
+ routes: IRoute<D>[];
30
+ add: ((routes: IRoute<D>[], navigate?: boolean) => void);
31
+ clear: (() => void);
32
+ render: (() => Promise<void>);
33
+ constructAbsolutePath: ((path: PathFragment) => string);
34
+ parent: IRouterSlot<P> | null | undefined;
35
+ queryParentRouterSlot: (() => IRouterSlot<P> | null);
36
+ }
37
+ type IRoutingInfo<D = any, P = any> = {
38
+ slot: IRouterSlot<D, P>;
39
+ match: IRouteMatch<D>;
40
+ };
41
+ type CustomResolver<D = any, P = any> = ((info: IRoutingInfo<D>) => boolean | void | Promise<boolean> | Promise<void>);
42
+ type Guard<D = any, P = any> = ((info: IRoutingInfo<D, P>) => boolean | Promise<boolean>);
43
+ type PageComponent = HTMLElement;
44
+ type ModuleResolver = Promise<{
45
+ default: any;
46
+ }>;
47
+ type Class<T extends PageComponent = PageComponent> = {
48
+ new (...args: any[]): T;
49
+ };
50
+ type Setup<D = any> = ((component: PageComponent, info: IRoutingInfo<D>) => void);
51
+ type PathMatch = "prefix" | "suffix" | "full" | "fuzzy";
52
+ /**
53
+ * The base route interface.
54
+ * D = the data type of the data
55
+ */
56
+ interface IRouteBase<D = any> {
57
+ path: PathFragment;
58
+ data?: D;
59
+ guards?: Guard[];
60
+ pathMatch?: PathMatch;
61
+ }
62
+ /**
63
+ * Route type used for redirection.
64
+ */
65
+ interface IRedirectRoute<D = any> extends IRouteBase<D> {
66
+ redirectTo: string;
67
+ preserveQuery?: boolean;
68
+ }
69
+ /**
70
+ * Route type used to resolve and stamp components.
71
+ */
72
+ interface IComponentRoute<D = any> extends IRouteBase<D> {
73
+ component: Class | ModuleResolver | PageComponent | (() => Class) | (() => PageComponent) | (() => ModuleResolver);
74
+ setup?: Setup;
75
+ }
76
+ /**
77
+ * Route type used to take control of how the route should resolve.
78
+ */
79
+ interface IResolverRoute<D = any> extends IRouteBase<D> {
80
+ resolve: CustomResolver;
81
+ }
82
+ type IRoute<D = any> = IRedirectRoute<D> | IComponentRoute<D> | IResolverRoute<D>;
83
+ type PathFragment = string;
84
+ type IPathFragments = {
85
+ consumed: PathFragment;
86
+ rest: PathFragment;
87
+ };
88
+ interface IRouteMatch<D = any> {
89
+ route: IRoute<D>;
90
+ params: Params;
91
+ fragments: IPathFragments;
92
+ match: RegExpMatchArray;
93
+ }
94
+ type PushStateEvent = CustomEvent<null>;
95
+ type ReplaceStateEvent = CustomEvent<null>;
96
+ type ChangeStateEvent = CustomEvent<null>;
97
+ type WillChangeStateEvent = CustomEvent<{
98
+ url?: string | null;
99
+ eventName: GlobalRouterEvent;
100
+ }>;
101
+ type NavigationStartEvent<D = any> = CustomEvent<IRoutingInfo<D>>;
102
+ type NavigationSuccessEvent<D = any> = CustomEvent<IRoutingInfo<D>>;
103
+ type NavigationCancelEvent<D = any> = CustomEvent<IRoutingInfo<D>>;
104
+ type NavigationErrorEvent<D = any> = CustomEvent<IRoutingInfo<D>>;
105
+ type NavigationEndEvent<D = any> = CustomEvent<IRoutingInfo<D>>;
106
+ type Params = {
107
+ [key: string]: string;
108
+ };
109
+ /**
110
+ * History related events.
111
+ */
112
+ type GlobalRouterEvent = "pushstate" | "replacestate" | "popstate" | "changestate" | "willchangestate" | "navigationstart" | "navigationcancel" | "navigationerror" | "navigationsuccess" | "navigationend";
113
+ declare global {
114
+ interface GlobalEventHandlersEventMap {
115
+ "pushstate": PushStateEvent;
116
+ "replacestate": ReplaceStateEvent;
117
+ "popstate": PopStateEvent;
118
+ "changestate": ChangeStateEvent;
119
+ "navigationstart": NavigationStartEvent;
120
+ "navigationend": NavigationEndEvent;
121
+ "navigationsuccess": NavigationSuccessEvent;
122
+ "navigationcancel": NavigationCancelEvent;
123
+ "navigationerror": NavigationErrorEvent;
124
+ "willchangestate": WillChangeStateEvent;
125
+ }
126
+ }
127
+
128
+ type UmbRoute = IRoute;
129
+
130
+ export { UMB_ROUTE_CONTEXT_TOKEN, UmbRoute, UmbRouteContext, UmbRouteLocation };
package/store.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as rxjs from 'rxjs';
2
2
  import { Observable } from 'rxjs';
3
- import { UmbControllerHostInterface } from './controller';
4
- import { EntityTreeItemResponseModel } from './backend-api';
5
- import { UmbStoreBase as UmbStoreBase$1 } from './store';
3
+ import { UmbControllerHostElement } from './controller';
4
+ import { EntityTreeItemResponseModel, FileSystemTreeItemPresentationModel } from './backend-api';
5
+ import { UmbStoreBase as UmbStoreBase$1, UmbTreeStore as UmbTreeStore$1 } from './store';
6
6
 
7
7
  interface UmbDataStoreIdentifiers {
8
8
  key?: string;
@@ -11,24 +11,6 @@ interface UmbDataStoreIdentifiers {
11
11
  interface UmbDataStore {
12
12
  readonly storeAlias: string;
13
13
  }
14
- interface UmbTreeStore<T> extends UmbDataStore {
15
- getTreeRoot(): Observable<Array<T>>;
16
- getTreeItemChildren(key: string): Observable<Array<T>>;
17
- /**
18
- * @description - Trash data.
19
- * @param {string[]} keys
20
- * @return {*} {(Promise<void>)}
21
- * @memberof UmbTreeStore
22
- */
23
- trash(keys: string[]): Promise<void>;
24
- /**
25
- * @description - Move data.
26
- * @param {string[]} keys
27
- * @return {*} {(Promise<void>)}
28
- * @memberof UmbTreeStore
29
- */
30
- move(keys: string[], destination: string): Promise<void>;
31
- }
32
14
  interface UmbEntityDetailStore<T> extends UmbDataStore {
33
15
  /**
34
16
  * @description - Request scaffold data by entityType and . The data is added to the store and is returned as an Observable.
@@ -57,57 +39,121 @@ interface UmbContentStore<T> extends UmbEntityDetailStore<T> {
57
39
  }
58
40
 
59
41
  declare class UmbStoreBase {
60
- protected _host: UmbControllerHostInterface;
42
+ protected _host: UmbControllerHostElement;
61
43
  readonly storeAlias: string;
62
- constructor(_host: UmbControllerHostInterface, storeAlias: string);
44
+ constructor(_host: UmbControllerHostElement, storeAlias: string);
63
45
  }
64
46
 
65
47
  /**
66
48
  * @export
67
- * @class UmbTreeStoreBase
49
+ * @class UmbEntityTreeStore
68
50
  * @extends {UmbStoreBase}
69
51
  * @description - General Tree Data Store
70
52
  */
71
- declare class UmbTreeStoreBase extends UmbStoreBase$1 {
53
+ declare class UmbEntityTreeStore extends UmbStoreBase$1 implements UmbTreeStore$1<EntityTreeItemResponseModel> {
72
54
  #private;
73
55
  /**
74
56
  * Appends items to the store
75
- * @param {Array<EntityTreeItemModel>} items
76
- * @memberof UmbTreeStoreBase
57
+ * @param {Array<EntityTreeItemResponseModel>} items
58
+ * @memberof UmbEntityTreeStore
77
59
  */
78
60
  appendItems(items: Array<EntityTreeItemResponseModel>): void;
79
61
  /**
80
62
  * Updates an item in the store
81
63
  * @param {string} key
82
- * @param {Partial<EntityTreeItemModel>} data
83
- * @memberof UmbTreeStoreBase
64
+ * @param {Partial<EntityTreeItemResponseModel>} data
65
+ * @memberof UmbEntityTreeStore
84
66
  */
85
67
  updateItem(key: string, data: Partial<EntityTreeItemResponseModel>): void;
86
68
  /**
87
69
  * Removes an item from the store
88
70
  * @param {string} key
89
- * @memberof UmbTreeStoreBase
71
+ * @memberof UmbEntityTreeStore
90
72
  */
91
73
  removeItem(key: string): void;
92
74
  /**
93
75
  * An observable to observe the root items
94
- * @memberof UmbTreeStoreBase
76
+ * @memberof UmbEntityTreeStore
95
77
  */
96
78
  rootItems: rxjs.Observable<EntityTreeItemResponseModel[]>;
97
79
  /**
98
80
  * Returns an observable to observe the children of a given parent
99
81
  * @param {(string | null)} parentKey
100
82
  * @return {*}
101
- * @memberof UmbTreeStoreBase
83
+ * @memberof UmbEntityTreeStore
102
84
  */
103
85
  childrenOf(parentKey: string | null): rxjs.Observable<EntityTreeItemResponseModel[]>;
104
86
  /**
105
87
  * Returns an observable to observe the items with the given keys
106
88
  * @param {Array<string>} keys
107
89
  * @return {*}
108
- * @memberof UmbTreeStoreBase
90
+ * @memberof UmbEntityTreeStore
109
91
  */
110
92
  items(keys: Array<string>): rxjs.Observable<EntityTreeItemResponseModel[]>;
111
93
  }
112
94
 
113
- export { UmbContentStore, UmbDataStore, UmbDataStoreIdentifiers, UmbEntityDetailStore, UmbStoreBase, UmbTreeStore, UmbTreeStoreBase };
95
+ /**
96
+ * @export
97
+ * @class UmbFileSystemTreeStore
98
+ * @extends {UmbStoreBase}
99
+ * @description - General Tree Data Store
100
+ */
101
+ declare class UmbFileSystemTreeStore extends UmbStoreBase$1 implements UmbTreeStore$1<FileSystemTreeItemPresentationModel> {
102
+ #private;
103
+ /**
104
+ * Appends items to the store
105
+ * @param {Array<FileSystemTreeItemPresentationModel>} items
106
+ * @memberof UmbFileSystemTreeStore
107
+ */
108
+ appendItems(items: Array<FileSystemTreeItemPresentationModel>): void;
109
+ /**
110
+ * Updates an item in the store
111
+ * @param {string} path
112
+ * @param {Partial<FileSystemTreeItemPresentationModel>} data
113
+ * @memberof UmbFileSystemTreeStore
114
+ */
115
+ updateItem(path: string, data: Partial<FileSystemTreeItemPresentationModel>): void;
116
+ /**
117
+ * Removes an item from the store
118
+ * @param {string} path
119
+ * @memberof UmbFileSystemTreeStore
120
+ */
121
+ removeItem(path: string): void;
122
+ /**
123
+ * An observable to observe the root items
124
+ * @memberof UmbFileSystemTreeStore
125
+ */
126
+ rootItems: rxjs.Observable<FileSystemTreeItemPresentationModel[]>;
127
+ /**
128
+ * Returns an observable to observe the children of a given parent
129
+ * @param {(string | null)} parentPath
130
+ * @return {*}
131
+ * @memberof UmbFileSystemTreeStore
132
+ */
133
+ childrenOf(parentPath: string | null): rxjs.Observable<FileSystemTreeItemPresentationModel[]>;
134
+ /**
135
+ * Returns an observable to observe the items with the given keys
136
+ * @param {Array<string>} paths
137
+ * @return {*}
138
+ * @memberof UmbFileSystemTreeStore
139
+ */
140
+ items(paths: Array<string>): rxjs.Observable<FileSystemTreeItemPresentationModel[]>;
141
+ }
142
+
143
+ type TreeItemPresentationModel = {
144
+ name?: string;
145
+ type?: string;
146
+ icon?: string;
147
+ hasChildren?: boolean;
148
+ };
149
+
150
+ interface UmbTreeStore<T extends TreeItemPresentationModel = any> {
151
+ appendItems: (items: Array<T>) => void;
152
+ updateItem: (unique: string, item: Partial<T>) => void;
153
+ removeItem: (unique: string) => void;
154
+ rootItems: Observable<Array<T>>;
155
+ childrenOf: (parentUnique: string | null) => Observable<Array<T>>;
156
+ items: (uniques: Array<string>) => Observable<Array<T>>;
157
+ }
158
+
159
+ export { UmbContentStore, UmbDataStore, UmbDataStoreIdentifiers, UmbEntityDetailStore, UmbEntityTreeStore, UmbFileSystemTreeStore, UmbStoreBase, UmbTreeStore };