@umbraco-cms/backoffice 1.0.0-next.48e903f7 → 1.0.0-next.4e56c5c5

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.
package/models.d.ts CHANGED
@@ -3,13 +3,18 @@ import { EntityTreeItemResponseModel, FolderTreeItemResponseModel, PackageManife
3
3
  type HTMLElementConstructor<T = HTMLElement> = new (...args: any[]) => T;
4
4
  type ClassConstructor<T> = new (...args: any[]) => T;
5
5
  interface Entity {
6
- key: string;
6
+ id: string;
7
7
  name: string;
8
8
  icon: string;
9
9
  type: string;
10
10
  hasChildren: boolean;
11
- parentKey: string | null;
11
+ parentId: string | null;
12
12
  }
13
+ /** Tried to find a common base of our entities — used by Entity Workspace Context */
14
+ type BaseEntity = {
15
+ id?: string;
16
+ name?: string;
17
+ };
13
18
  interface UserEntity extends Entity {
14
19
  type: 'user';
15
20
  }
@@ -38,23 +43,23 @@ interface UserGroupDetails extends UserGroupEntity {
38
43
  permissions: Array<string>;
39
44
  }
40
45
  interface MemberTypeDetails extends EntityTreeItemResponseModel {
41
- key: string;
46
+ id: string;
42
47
  alias: string;
43
48
  properties: [];
44
49
  }
45
50
  interface MediaTypeDetails extends FolderTreeItemResponseModel {
46
- key: string;
51
+ id: string;
47
52
  alias: string;
48
53
  properties: [];
49
54
  }
50
55
  interface MemberGroupDetails extends EntityTreeItemResponseModel {
51
- key: string;
56
+ id: string;
52
57
  }
53
58
  interface MemberDetails extends EntityTreeItemResponseModel {
54
- key: string;
59
+ id: string;
55
60
  }
56
61
  interface DocumentBlueprintDetails {
57
- key: string;
62
+ id: string;
58
63
  name: string;
59
64
  type: 'document-blueprint';
60
65
  properties: Array<any>;
@@ -72,4 +77,4 @@ type UmbPackageWithMigrationStatus = UmbPackage & {
72
77
  hasPendingMigrations: boolean;
73
78
  };
74
79
 
75
- export { ClassConstructor, DocumentBlueprintDetails, Entity, HTMLElementConstructor, MediaTypeDetails, MemberDetails, MemberGroupDetails, MemberTypeDetails, PackageManifestResponse, SwatchDetails, UmbPackage, UmbPackageWithMigrationStatus, UserDetails, UserEntity, UserGroupDetails, UserGroupEntity, UserStatus };
80
+ export { BaseEntity, ClassConstructor, DocumentBlueprintDetails, Entity, HTMLElementConstructor, MediaTypeDetails, MemberDetails, MemberGroupDetails, MemberTypeDetails, PackageManifestResponse, SwatchDetails, UmbPackage, UmbPackageWithMigrationStatus, UserDetails, UserEntity, UserGroupDetails, UserGroupEntity, UserStatus };
@@ -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
  /**
@@ -98,19 +98,33 @@ declare class DeepState<T> extends BehaviorSubject<T> {
98
98
  * The ArrayState provides methods to append data when the data is an Object.
99
99
  */
100
100
  declare class ArrayState<T> extends DeepState<T[]> {
101
- private _getUnique?;
102
- constructor(initialData: T[], _getUnique?: ((entry: T) => unknown) | undefined);
101
+ #private;
102
+ constructor(initialData: T[], getUniqueMethod?: (entry: T) => unknown);
103
+ /**
104
+ * @method sortBy
105
+ * @param {(a: T, b: T) => number} sortMethod - A method to be used for sorting everytime data is set.
106
+ * @description - A sort method to this Subject.
107
+ * @example <caption>Example add sort method</caption>
108
+ * const data = [
109
+ * { key: 1, value: 'foo'},
110
+ * { key: 2, value: 'bar'}
111
+ * ];
112
+ * const myState = new ArrayState(data, (x) => x.key);
113
+ * myState.sortBy((a, b) => (a.sortOrder || 0) - (b.sortOrder || 0));
114
+ */
115
+ sortBy(sortMethod?: (a: T, b: T) => number): this;
116
+ next(value: T[]): void;
103
117
  /**
104
118
  * @method remove
105
119
  * @param {unknown[]} uniques - The unique values to remove.
106
120
  * @return {ArrayState<T>} Reference to it self.
107
121
  * @description - Remove some new data of this Subject.
108
- * @example <caption>Example remove entry with key '1' and '2'</caption>
122
+ * @example <caption>Example remove entry with id '1' and '2'</caption>
109
123
  * const data = [
110
- * { key: 1, value: 'foo'},
111
- * { key: 2, value: 'bar'}
124
+ * { id: 1, value: 'foo'},
125
+ * { id: 2, value: 'bar'}
112
126
  * ];
113
- * const myState = new ArrayState(data, (x) => x.key);
127
+ * const myState = new ArrayState(data, (x) => x.id);
114
128
  * myState.remove([1, 2]);
115
129
  */
116
130
  remove(uniques: unknown[]): this;
@@ -119,12 +133,12 @@ declare class ArrayState<T> extends DeepState<T[]> {
119
133
  * @param {unknown} unique - The unique value to remove.
120
134
  * @return {ArrayState<T>} Reference to it self.
121
135
  * @description - Remove some new data of this Subject.
122
- * @example <caption>Example remove entry with key '1'</caption>
136
+ * @example <caption>Example remove entry with id '1'</caption>
123
137
  * const data = [
124
- * { key: 1, value: 'foo'},
125
- * { key: 2, value: 'bar'}
138
+ * { id: 1, value: 'foo'},
139
+ * { id: 2, value: 'bar'}
126
140
  * ];
127
- * const myState = new ArrayState(data, (x) => x.key);
141
+ * const myState = new ArrayState(data, (x) => x.id);
128
142
  * myState.removeOne(1);
129
143
  */
130
144
  removeOne(unique: unknown): this;
@@ -181,6 +195,21 @@ declare class ArrayState<T> extends DeepState<T[]> {
181
195
  * ]);
182
196
  */
183
197
  append(entries: T[]): this;
198
+ /**
199
+ * @method updateOne
200
+ * @param {unknown} unique - Unique value to find entry to update.
201
+ * @param {Partial<T>} entry - new data to be added in this Subject.
202
+ * @return {ArrayState<T>} Reference to it self.
203
+ * @description - Update a item with some new data, requires the ArrayState to be constructed with a getUnique method.
204
+ * @example <caption>Example append some data.</caption>
205
+ * const data = [
206
+ * { key: 1, value: 'foo'},
207
+ * { key: 2, value: 'bar'}
208
+ * ];
209
+ * const myState = new ArrayState(data, (x) => x.key);
210
+ * myState.updateOne(2, {value: 'updated-bar'});
211
+ */
212
+ updateOne(unique: unknown, entry: Partial<T>): this;
184
213
  }
185
214
 
186
215
  /**
@@ -226,8 +255,8 @@ declare function createObservablePart<R, T>(source$: Observable<T>, mappingFunct
226
255
  * @param {(previousResult: R, currentResult: R) => boolean} [memoizationFunction] - Method to Compare if the data has changed. Should return true when data is different.
227
256
  * @description - Creates a RxJS Observable from RxJS Subject.
228
257
  * @example <caption>Example append new entry for a ArrayState or a part of DeepState/ObjectState it which is an array. Where the key is unique and the item will be updated if matched with existing.</caption>
229
- * const entry = {key: 'myKey', value: 'myValue'};
230
- * const newDataSet = appendToFrozenArray(mySubject.getValue(), entry, x => x.key === key);
258
+ * const entry = {id: 'myKey', value: 'myValue'};
259
+ * const newDataSet = appendToFrozenArray(mySubject.getValue(), entry, x => x.id === id);
231
260
  * mySubject.next(newDataSet);
232
261
  */
233
262
  declare function appendToFrozenArray<T>(data: T[], entry: T, getUniqueMethod?: (entry: T) => unknown): T[];
@@ -246,4 +275,4 @@ declare function appendToFrozenArray<T>(data: T[], entry: T, getUniqueMethod?: (
246
275
  */
247
276
  declare function partialUpdateFrozenArray<T>(data: T[], partialEntry: Partial<T>, findMethod: (entry: T) => boolean): T[];
248
277
 
249
- export { ArrayState, BooleanState, ClassState, DeepState, NumberState, ObjectState, StringState, UmbObserver, UmbObserverController, appendToFrozenArray, createObservablePart, partialUpdateFrozenArray };
278
+ 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.48e903f7",
3
+ "version": "1.0.0-next.4e56c5c5",
4
4
  "license": "MIT",
5
5
  "keywords": [
6
6
  "umbraco",
@@ -20,7 +20,9 @@
20
20
  },
21
21
  "type": "module",
22
22
  "files": [
23
- "*.d.ts"
23
+ "*.d.ts",
24
+ "*.json",
25
+ "*.md"
24
26
  ],
25
27
  "peerDependencies": {
26
28
  "@types/uuid": "^9.0.1",
package/repository.d.ts CHANGED
@@ -1,18 +1,40 @@
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(parentId: 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(parentId: 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
- createScaffold(parentKey: string | null): Promise<{
33
+ createScaffold(parentId: string | null): Promise<{
12
34
  data?: DetailType;
13
35
  error?: ProblemDetailsModel;
14
36
  }>;
15
- requestByKey(key: string): Promise<{
37
+ requestById(id: string): Promise<{
16
38
  data?: DetailType;
17
39
  error?: ProblemDetailsModel;
18
40
  }>;
@@ -22,44 +44,56 @@ interface UmbDetailRepository<DetailType> {
22
44
  save(data: DetailType): Promise<{
23
45
  error?: ProblemDetailsModel;
24
46
  }>;
25
- delete(key: string): Promise<{
47
+ delete(id: string): Promise<{
26
48
  error?: ProblemDetailsModel;
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(parentId: 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(id: 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.
@@ -36,7 +18,7 @@ interface UmbEntityDetailStore<T> extends UmbDataStore {
36
18
  * @return {*} {T}
37
19
  * @memberof UmbEntityDetailStore
38
20
  */
39
- getScaffold: (entityType: string, parentKey: string | null) => T;
21
+ getScaffold: (entityType: string, parentId: string | null) => T;
40
22
  /**
41
23
  * @description - Request data by key. The data is added to the store and is returned as an Observable.
42
24
  * @param {string} key
@@ -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
- * @param {string} key
82
- * @param {Partial<EntityTreeItemModel>} data
83
- * @memberof UmbTreeStoreBase
63
+ * @param {string} id
64
+ * @param {Partial<EntityTreeItemResponseModel>} data
65
+ * @memberof UmbEntityTreeStore
84
66
  */
85
- updateItem(key: string, data: Partial<EntityTreeItemResponseModel>): void;
67
+ updateItem(id: string, data: Partial<EntityTreeItemResponseModel>): void;
86
68
  /**
87
69
  * Removes an item from the store
88
- * @param {string} key
89
- * @memberof UmbTreeStoreBase
70
+ * @param {string} id
71
+ * @memberof UmbEntityTreeStore
90
72
  */
91
- removeItem(key: string): void;
73
+ removeItem(id: 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
- * @param {(string | null)} parentKey
81
+ * @param {(string | null)} parentId
100
82
  * @return {*}
101
- * @memberof UmbTreeStoreBase
83
+ * @memberof UmbEntityTreeStore
102
84
  */
103
- childrenOf(parentKey: string | null): rxjs.Observable<EntityTreeItemResponseModel[]>;
85
+ childrenOf(parentId: string | null): rxjs.Observable<EntityTreeItemResponseModel[]>;
104
86
  /**
105
- * Returns an observable to observe the items with the given keys
106
- * @param {Array<string>} keys
87
+ * Returns an observable to observe the items with the given ids
88
+ * @param {Array<string>} ids
107
89
  * @return {*}
108
- * @memberof UmbTreeStoreBase
90
+ * @memberof UmbEntityTreeStore
91
+ */
92
+ items(ids: Array<string>): rxjs.Observable<EntityTreeItemResponseModel[]>;
93
+ }
94
+
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
109
107
  */
110
- items(keys: Array<string>): rxjs.Observable<EntityTreeItemResponseModel[]>;
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 ids
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>>;
111
157
  }
112
158
 
113
- export { UmbContentStore, UmbDataStore, UmbDataStoreIdentifiers, UmbEntityDetailStore, UmbStoreBase, UmbTreeStore, UmbTreeStoreBase };
159
+ export { UmbContentStore, UmbDataStore, UmbDataStoreIdentifiers, UmbEntityDetailStore, UmbEntityTreeStore, UmbFileSystemTreeStore, UmbStoreBase, UmbTreeStore };
package/utils.d.ts CHANGED
@@ -11,4 +11,6 @@ declare function umbracoPath(path: string): string;
11
11
  declare function buildUdi(entityType: string, guid: string): string;
12
12
  declare function getKeyFromUdi(udi: string): string;
13
13
 
14
- export { buildUdi, getKeyFromUdi, getLookAndColorFromUserStatus, umbracoPath };
14
+ declare function generateGuid(): string;
15
+
16
+ export { buildUdi, generateGuid, getKeyFromUdi, getLookAndColorFromUserStatus, umbracoPath };