@umbraco-cms/backoffice 1.0.0-next.d2c0dcf1 → 1.0.0-next.d3d67db5

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 { Observable } from 'rxjs';
2
- import { HTMLElementConstructor } from '@umbraco-cms/backoffice/models';
3
- import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
2
+ import { HTMLElementConstructor } from '@umbraco-cms/backoffice/extension-api';
3
+ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
4
4
  import { UmbContextToken, UmbContextProviderController, UmbContextCallback, UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api';
5
5
  import { UmbObserverController } from '@umbraco-cms/backoffice/observable-api';
6
6
 
@@ -1,4 +1,4 @@
1
- import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
1
+ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
2
2
  import { UmbEntityActionBase as UmbEntityActionBase$1 } from '@umbraco-cms/backoffice/entity-action';
3
3
  import { UmbDetailRepository, UmbItemRepository, UmbFolderRepository } from '@umbraco-cms/backoffice/repository';
4
4
 
@@ -45,7 +45,7 @@ declare class UmbDeleteEntityAction<T extends UmbDetailRepository & UmbItemRepos
45
45
  execute(): Promise<void>;
46
46
  }
47
47
 
48
- declare class UmbDeleteFolderEntityAction<T extends UmbItemRepository<any> & UmbFolderRepository> extends UmbEntityActionBase$1<T> {
48
+ declare class UmbDeleteFolderEntityAction<T extends UmbFolderRepository> extends UmbEntityActionBase$1<T> {
49
49
  #private;
50
50
  constructor(host: UmbControllerHostElement, repositoryAlias: string, unique: string);
51
51
  execute(): Promise<void>;
@@ -0,0 +1,200 @@
1
+ import { Observable } from 'rxjs';
2
+ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
3
+
4
+ type HTMLElementConstructor<T = HTMLElement> = new (...args: any[]) => T;
5
+ type ClassConstructor<T> = new (...args: any[]) => T;
6
+ type ManifestTypeMap<ManifestTypes extends ManifestBase> = {
7
+ [Manifest in ManifestTypes as Manifest['type']]: Manifest;
8
+ } & {
9
+ [key: string]: ManifestBase;
10
+ };
11
+ type SpecificManifestTypeOrManifestBase<ManifestTypes extends ManifestBase, T extends keyof ManifestTypeMap<ManifestTypes> | string> = T extends keyof ManifestTypeMap<ManifestTypes> ? ManifestTypeMap<ManifestTypes>[T] : ManifestBase;
12
+ interface ManifestBase {
13
+ /**
14
+ * The type of extension such as dashboard etc...
15
+ */
16
+ type: string;
17
+ /**
18
+ * The alias of the extension, ensure it is unique
19
+ */
20
+ alias: string;
21
+ /**
22
+ * The kind of the extension, used to group extensions together
23
+ *
24
+ * @examples ["button"]
25
+ */
26
+ kind?: unknown;
27
+ /**
28
+ * The friendly name of the extension
29
+ */
30
+ name: string;
31
+ /**
32
+ * Extensions such as dashboards are ordered by weight with lower numbers being first in the list
33
+ */
34
+ weight?: number;
35
+ }
36
+ interface ManifestKind<ManifestTypes> {
37
+ type: 'kind';
38
+ alias: string;
39
+ matchType: string;
40
+ matchKind: string;
41
+ manifest: Partial<ManifestTypes>;
42
+ }
43
+ interface ManifestWithConditions<ConditionsType> {
44
+ /**
45
+ * Set the conditions for when the extension should be loaded
46
+ */
47
+ conditions: ConditionsType;
48
+ }
49
+ interface ManifestWithLoader<LoaderReturnType> extends ManifestBase {
50
+ /**
51
+ * @TJS-ignore
52
+ */
53
+ loader?: () => Promise<LoaderReturnType>;
54
+ }
55
+ /**
56
+ * The type of extension such as dashboard etc...
57
+ */
58
+ interface ManifestClass<ClassType = unknown> extends ManifestWithLoader<{
59
+ default: ClassConstructor<ClassType>;
60
+ }> {
61
+ readonly CLASS_TYPE?: ClassType;
62
+ /**
63
+ * The file location of the javascript file to load
64
+ * @TJS-required
65
+ */
66
+ js?: string;
67
+ /**
68
+ * @TJS-ignore
69
+ */
70
+ className?: string;
71
+ /**
72
+ * @TJS-ignore
73
+ */
74
+ class?: ClassConstructor<ClassType>;
75
+ }
76
+ interface ManifestClassWithClassConstructor<T = unknown> extends ManifestClass<T> {
77
+ class: ClassConstructor<T>;
78
+ }
79
+ interface ManifestElement<ElementType extends HTMLElement = HTMLElement> extends ManifestWithLoader<{
80
+ default: ClassConstructor<ElementType>;
81
+ } | Omit<object, 'default'>> {
82
+ readonly ELEMENT_TYPE?: ElementType;
83
+ /**
84
+ * The file location of the javascript file to load
85
+ *
86
+ * @TJS-require
87
+ */
88
+ js?: string;
89
+ /**
90
+ * The HTML web component name to use such as 'my-dashboard'
91
+ * Note it is NOT <my-dashboard></my-dashboard> but just the name
92
+ */
93
+ elementName?: string;
94
+ /**
95
+ * This contains properties specific to the type of extension
96
+ */
97
+ meta?: unknown;
98
+ }
99
+ interface ManifestWithView<ElementType extends HTMLElement = HTMLElement> extends ManifestElement<ElementType> {
100
+ meta: MetaManifestWithView;
101
+ }
102
+ interface MetaManifestWithView {
103
+ pathname: string;
104
+ label: string;
105
+ icon: string;
106
+ }
107
+ interface ManifestElementWithElementName extends ManifestElement {
108
+ /**
109
+ * The HTML web component name to use such as 'my-dashboard'
110
+ * Note it is NOT <my-dashboard></my-dashboard> but just the name
111
+ */
112
+ elementName: string;
113
+ }
114
+ interface ManifestWithMeta extends ManifestBase {
115
+ /**
116
+ * This contains properties specific to the type of extension
117
+ */
118
+ meta: unknown;
119
+ }
120
+ /**
121
+ * This type of extension gives full control and will simply load the specified JS file
122
+ * You could have custom logic to decide which extensions to load/register by using extensionRegistry
123
+ */
124
+ interface ManifestEntryPoint extends ManifestBase {
125
+ type: 'entryPoint';
126
+ /**
127
+ * The file location of the javascript file to load in the backoffice
128
+ */
129
+ js: string;
130
+ }
131
+
132
+ declare class UmbExtensionRegistry<IncomingManifestTypes extends ManifestBase, ManifestTypes extends ManifestBase = IncomingManifestTypes | ManifestBase> {
133
+ private _extensions;
134
+ readonly extensions: Observable<ManifestTypes[]>;
135
+ private _kinds;
136
+ readonly kinds: Observable<ManifestKind<ManifestTypes>[]>;
137
+ defineKind(kind: ManifestKind<ManifestTypes>): void;
138
+ register(manifest: ManifestTypes | ManifestKind<ManifestTypes>): void;
139
+ registerMany(manifests: Array<ManifestTypes | ManifestKind<ManifestTypes>>): void;
140
+ unregister(alias: string): void;
141
+ isRegistered(alias: string): boolean;
142
+ private _kindsOfType;
143
+ private _extensionsOfType;
144
+ private _kindsOfTypes;
145
+ private _extensionsOfTypes;
146
+ getByTypeAndAlias<Key extends keyof ManifestTypeMap<ManifestTypes> | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, Key>>(type: Key, alias: string): Observable<T | undefined>;
147
+ extensionsOfType<Key extends keyof ManifestTypeMap<ManifestTypes> | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, Key>>(type: Key): Observable<T[]>;
148
+ extensionsOfTypes<ExtensionTypes extends ManifestBase = ManifestBase>(types: string[]): Observable<Array<ExtensionTypes>>;
149
+ }
150
+
151
+ declare function isManifestClassConstructorType(manifest: unknown): manifest is ManifestClassWithClassConstructor;
152
+
153
+ declare function isManifestClassableType(manifest: ManifestBase): manifest is ManifestClass;
154
+
155
+ declare function isManifestElementNameType(manifest: unknown): manifest is ManifestElementWithElementName;
156
+
157
+ declare function isManifestElementableType<ElementType extends HTMLElement = HTMLElement>(manifest: ManifestBase): manifest is ManifestElement;
158
+
159
+ type ManifestJSType<T> = ManifestWithLoader<T> & {
160
+ js: string;
161
+ };
162
+ declare function isManifestJSType<T>(manifest: ManifestBase | unknown): manifest is ManifestJSType<T>;
163
+
164
+ type ManifestLoaderType<T> = ManifestWithLoader<T> & {
165
+ loader: () => Promise<T>;
166
+ };
167
+ declare function isManifestLoaderType<T>(manifest: ManifestBase): manifest is ManifestLoaderType<T>;
168
+
169
+ declare function createExtensionElement<ElementType extends HTMLElement>(manifest: ManifestElement<ElementType>): Promise<ElementType | undefined>;
170
+
171
+ declare function hasDefaultExport<ConstructorType>(object: unknown): object is {
172
+ default: ConstructorType;
173
+ };
174
+
175
+ type UmbEntryPointOnInit = (host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry<ManifestBase>) => void;
176
+ /**
177
+ * Interface containing supported life-cycle functions for ESModule entry points
178
+ */
179
+ interface UmbEntryPointModule {
180
+ onInit: UmbEntryPointOnInit;
181
+ }
182
+
183
+ /**
184
+ * Validate if an ESModule exports a known init function called 'onInit'
185
+ */
186
+ declare function hasInitExport(obj: unknown): obj is Pick<UmbEntryPointModule, 'onInit'>;
187
+
188
+ declare function loadExtension<T = unknown>(manifest: ManifestWithLoader<T>): Promise<T | null>;
189
+
190
+ declare function createExtensionElementOrFallback(manifest: any, fallbackElementName: string): Promise<HTMLElement | undefined>;
191
+
192
+ declare function createExtensionClass<T = unknown>(manifest: ManifestClass, constructorArguments: unknown[]): Promise<T | undefined>;
193
+
194
+ declare class UmbEntryPointExtensionInitializer {
195
+ #private;
196
+ constructor(host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry<ManifestEntryPoint>);
197
+ instantiateEntryPoint(manifest: ManifestEntryPoint): Promise<void>;
198
+ }
199
+
200
+ export { ClassConstructor, HTMLElementConstructor, ManifestBase, ManifestClass, ManifestClassWithClassConstructor, ManifestElement, ManifestElementWithElementName, ManifestEntryPoint, ManifestJSType, ManifestKind, ManifestLoaderType, ManifestTypeMap, ManifestWithConditions, ManifestWithLoader, ManifestWithMeta, ManifestWithView, MetaManifestWithView, SpecificManifestTypeOrManifestBase, UmbEntryPointExtensionInitializer, UmbEntryPointModule, UmbEntryPointOnInit, UmbExtensionRegistry, createExtensionClass, createExtensionElement, createExtensionElementOrFallback, hasDefaultExport, hasInitExport, isManifestClassConstructorType, isManifestClassableType, isManifestElementNameType, isManifestElementableType, isManifestJSType, isManifestLoaderType, loadExtension };
@@ -1,8 +1,9 @@
1
- import { InterfaceLook, InterfaceColor } from '@umbraco-ui/uui-base/lib/types/index';
2
- import { ClassConstructor } from '@umbraco-cms/backoffice/models';
1
+ import { ManifestElement, ManifestWithConditions, ManifestBase, ManifestClass, ManifestWithLoader, ClassConstructor, ManifestWithView, MetaManifestWithView, ManifestEntryPoint, ManifestKind, UmbExtensionRegistry } from '@umbraco-cms/backoffice/extension-api';
2
+ import { UmbModalHandler } from '@umbraco-cms/backoffice/modal';
3
+ import { DataTypePropertyPresentationModel, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api';
3
4
  import { UmbStoreBase, UmbTreeStore, UmbItemStore } from '@umbraco-cms/backoffice/store';
4
- import { UmbExtensionRegistry } from '@umbraco-cms/backoffice/extensions-api';
5
- import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
5
+ import { InterfaceLook, InterfaceColor } from '@umbraco-ui/uui-base/lib/types/index';
6
+ import { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace';
6
7
 
7
8
  interface ManifestCollectionView extends ManifestElement, ManifestWithConditions<ConditionsCollectionView> {
8
9
  type: 'collectionView';
@@ -31,7 +32,7 @@ interface ConditionsCollectionView {
31
32
  entityType: string;
32
33
  }
33
34
 
34
- interface ManifestDashboard extends ManifestElement, ManifestWithConditions<ConditionsDashboard> {
35
+ interface ManifestDashboard extends ManifestElement<UmbDashboardExtensionElement>, ManifestWithConditions<ConditionsDashboard> {
35
36
  type: 'dashboard';
36
37
  meta: MetaDashboard;
37
38
  }
@@ -123,7 +124,7 @@ interface MetaEntityAction {
123
124
  repositoryAlias: string;
124
125
  }
125
126
  interface ConditionsEntityAction {
126
- entityType: string;
127
+ entityTypes: Array<string>;
127
128
  }
128
129
 
129
130
  /**
@@ -157,7 +158,11 @@ interface ConditionsEntityBulkAction {
157
158
  entityType: string;
158
159
  }
159
160
 
160
- interface ManifestExternalLoginProvider extends ManifestElement {
161
+ interface UmbExternalLoginProviderExtensionElement extends HTMLElement {
162
+ manifest?: ManifestExternalLoginProvider;
163
+ }
164
+
165
+ interface ManifestExternalLoginProvider extends ManifestElement<UmbExternalLoginProviderExtensionElement> {
161
166
  type: 'externalLoginProvider';
162
167
  meta: MetaExternalLoginProvider;
163
168
  }
@@ -203,6 +208,43 @@ interface HealthCheck {
203
208
  description: string;
204
209
  }
205
210
 
211
+ interface ManifestMenu extends ManifestElement {
212
+ type: 'menu';
213
+ }
214
+
215
+ interface UmbMenuItemExtensionElement extends HTMLElement {
216
+ manifest?: ManifestMenuItem;
217
+ }
218
+
219
+ interface ManifestMenuItem extends ManifestElement<UmbMenuItemExtensionElement> {
220
+ type: 'menuItem';
221
+ meta: MetaMenuItem;
222
+ conditions: ConditionsMenuItem;
223
+ }
224
+ interface MetaMenuItem {
225
+ label: string;
226
+ icon: string;
227
+ entityType?: string;
228
+ }
229
+ interface ConditionsMenuItem {
230
+ menus: Array<string>;
231
+ }
232
+ interface ManifestMenuItemTreeKind extends ManifestMenuItem {
233
+ type: 'menuItem';
234
+ kind: 'tree';
235
+ meta: MetaMenuItemTreeKind;
236
+ }
237
+ interface MetaMenuItemTreeKind {
238
+ treeAlias: string;
239
+ label: string;
240
+ icon: string;
241
+ entityType?: string;
242
+ }
243
+
244
+ interface ManifestModal extends ManifestElement {
245
+ type: 'modal';
246
+ }
247
+
206
248
  interface ManifestPackageView extends ManifestElement {
207
249
  type: 'packageView';
208
250
  meta: MetaPackageView;
@@ -218,7 +260,7 @@ interface ConditionsPropertyAction {
218
260
  propertyEditors: string[];
219
261
  }
220
262
 
221
- interface ManifestPropertyEditorUI extends ManifestElement {
263
+ interface ManifestPropertyEditorUI extends ManifestElement<UmbPropertyEditorExtensionElement> {
222
264
  type: 'propertyEditorUI';
223
265
  meta: MetaPropertyEditorUI;
224
266
  }
@@ -252,7 +294,11 @@ interface PropertyEditorConfigDefaultData {
252
294
  value: any;
253
295
  }
254
296
 
255
- interface ManifestSection extends ManifestElement {
297
+ interface ManifestRepository extends ManifestClass<unknown> {
298
+ type: 'repository';
299
+ }
300
+
301
+ interface ManifestSection extends ManifestElement<UmbSectionExtensionElement> {
256
302
  type: 'section';
257
303
  meta: MetaSection;
258
304
  }
@@ -261,20 +307,11 @@ interface MetaSection {
261
307
  pathname: string;
262
308
  }
263
309
 
264
- interface ManifestSectionView extends ManifestElement, ManifestWithConditions<ConditionsSectionView> {
265
- type: 'sectionView';
266
- meta: MetaSectionView;
267
- }
268
- interface MetaSectionView {
269
- label: string;
270
- pathname: string;
271
- icon: string;
272
- }
273
- interface ConditionsSectionView {
274
- sections: Array<string>;
310
+ interface UmbSectionSidebarAppExtensionElement extends HTMLElement {
311
+ manifest?: ManifestSectionSidebarApp;
275
312
  }
276
313
 
277
- interface ManifestSectionSidebarApp extends ManifestElement {
314
+ interface ManifestSectionSidebarApp extends ManifestElement<UmbSectionSidebarAppExtensionElement> {
278
315
  type: 'sectionSidebarApp';
279
316
  conditions: ConditionsSectionSidebarApp;
280
317
  }
@@ -291,33 +328,31 @@ interface MetaSectionSidebarAppMenuKind {
291
328
  menu: string;
292
329
  }
293
330
 
294
- interface ManifestMenu extends ManifestElement {
295
- type: 'menu';
331
+ interface UmbSectionViewExtensionElement extends HTMLElement {
332
+ manifest?: ManifestSectionView;
296
333
  }
297
334
 
298
- interface ManifestMenuItem extends ManifestElement {
299
- type: 'menuItem';
300
- meta: MetaMenuItem;
301
- conditions: ConditionsMenuItem;
335
+ interface ManifestSectionView extends ManifestElement<UmbSectionViewExtensionElement>, ManifestWithConditions<ConditionsSectionView> {
336
+ type: 'sectionView';
337
+ meta: MetaSectionView;
302
338
  }
303
- interface MetaMenuItem {
339
+ interface MetaSectionView {
304
340
  label: string;
341
+ pathname: string;
305
342
  icon: string;
306
- entityType?: string;
307
343
  }
308
- interface ConditionsMenuItem {
309
- menus: Array<string>;
344
+ interface ConditionsSectionView {
345
+ sections: Array<string>;
310
346
  }
311
- interface ManifestMenuItemTreeKind extends ManifestMenuItem {
312
- type: 'menuItem';
313
- kind: 'tree';
314
- meta: MetaMenuItemTreeKind;
347
+
348
+ interface ManifestStore extends ManifestClass<UmbStoreBase> {
349
+ type: 'store';
315
350
  }
316
- interface MetaMenuItemTreeKind {
317
- treeAlias: string;
318
- label: string;
319
- icon: string;
320
- entityType?: string;
351
+ interface ManifestTreeStore extends ManifestClass<UmbTreeStore> {
352
+ type: 'treeStore';
353
+ }
354
+ interface ManifestItemStore extends ManifestClass<UmbItemStore> {
355
+ type: 'itemStore';
321
356
  }
322
357
 
323
358
  /**
@@ -341,12 +376,12 @@ interface MetaTree {
341
376
  repositoryAlias: string;
342
377
  }
343
378
 
344
- interface ManifestTreeItem extends ManifestElement {
379
+ interface ManifestTreeItem extends ManifestElement<UmbTreeItemExtensionElement> {
345
380
  type: 'treeItem';
346
381
  conditions: ConditionsTreeItem;
347
382
  }
348
383
  interface ConditionsTreeItem {
349
- entityType: string;
384
+ entityTypes: Array<string>;
350
385
  }
351
386
 
352
387
  interface ManifestUserProfileApp extends ManifestElement {
@@ -375,184 +410,63 @@ interface MetaWorkspaceAction {
375
410
  label?: string;
376
411
  look?: InterfaceLook;
377
412
  color?: InterfaceColor;
378
- api: ClassConstructor<any>;
413
+ api: ClassConstructor<UmbWorkspaceAction>;
379
414
  }
380
415
  interface ConditionsWorkspaceAction {
381
416
  workspaces: Array<string>;
382
417
  }
383
418
 
384
- interface ManifestWorkspaceView extends ManifestWithView {
385
- type: 'workspaceView';
386
- meta: MetaWorkspaceView;
387
- conditions: ConditionsWorkspaceView;
419
+ interface UmbWorkspaceEditorViewExtensionElement extends HTMLElement {
420
+ manifest?: ManifestWorkspaceEditorView;
388
421
  }
389
- interface MetaWorkspaceView {
390
- pathname: string;
391
- label: string;
392
- icon: string;
422
+
423
+ interface ManifestWorkspaceEditorView extends ManifestWithView<UmbWorkspaceEditorViewExtensionElement> {
424
+ type: 'workspaceEditorView';
425
+ conditions: ConditionsWorkspaceView;
393
426
  }
394
427
  interface ConditionsWorkspaceView {
395
428
  workspaces: string[];
396
429
  }
397
430
 
398
- interface ManifestWorkspaceViewCollection extends ManifestBase, ManifestWithConditions<ConditionsEditorViewCollection> {
431
+ interface ManifestWorkspaceViewCollection extends ManifestWithView, ManifestWithConditions<ConditionsEditorViewCollection> {
399
432
  type: 'workspaceViewCollection';
400
433
  meta: MetaEditorViewCollection;
401
434
  }
402
- interface MetaEditorViewCollection {
403
- pathname: string;
404
- label: string;
405
- icon: string;
435
+ interface MetaEditorViewCollection extends MetaManifestWithView {
406
436
  entityType: string;
407
- storeAlias?: string;
408
- repositoryAlias?: string;
437
+ repositoryAlias: string;
409
438
  }
410
439
  interface ConditionsEditorViewCollection {
411
440
  workspaces: string[];
412
441
  }
413
442
 
414
- interface ManifestRepository extends ManifestClass {
415
- type: 'repository';
416
- }
443
+ type ManifestTypes = ManifestCollectionView | ManifestDashboard | ManifestDashboardCollection | ManifestEntityAction | ManifestEntityBulkAction | ManifestEntryPoint | ManifestExternalLoginProvider | ManifestHeaderApp | ManifestHeaderAppButtonKind | ManifestHealthCheck | ManifestItemStore | ManifestMenu | ManifestMenuItem | ManifestMenuItemTreeKind | ManifestModal | ManifestPackageView | ManifestPropertyAction | ManifestPropertyEditorModel | ManifestPropertyEditorUI | ManifestRepository | ManifestSection | ManifestSectionSidebarApp | ManifestSectionSidebarAppMenuKind | ManifestSectionView | ManifestStore | ManifestTheme | ManifestTree | ManifestTreeItem | ManifestTreeStore | ManifestUserProfileApp | ManifestWorkspace | ManifestWorkspaceAction | ManifestWorkspaceEditorView | ManifestWorkspaceViewCollection | ManifestBase;
417
444
 
418
- interface ManifestModal extends ManifestElement {
419
- type: 'modal';
445
+ interface UmbDashboardExtensionElement extends HTMLElement {
446
+ manifest?: ManifestDashboard;
420
447
  }
421
448
 
422
- interface ManifestStore extends ManifestClass<UmbStoreBase> {
423
- type: 'store';
424
- }
425
- interface ManifestTreeStore extends ManifestClass<UmbTreeStore> {
426
- type: 'treeStore';
427
- }
428
- interface ManifestItemStore extends ManifestClass<UmbItemStore> {
429
- type: 'itemStore';
449
+ interface UmbModalExtensionElement<UmbModalData extends object = object, UmbModalResult = unknown, ModalManifestType extends ManifestModal = ManifestModal> extends HTMLElement {
450
+ manifest?: ModalManifestType;
451
+ modalHandler?: UmbModalHandler<UmbModalData, UmbModalResult>;
452
+ data?: UmbModalData;
430
453
  }
431
454
 
432
- type ManifestTypes = ManifestCollectionView | ManifestDashboard | ManifestDashboardCollection | ManifestEntityAction | ManifestEntityBulkAction | ManifestEntrypoint | ManifestExternalLoginProvider | ManifestHeaderApp | ManifestHeaderAppButtonKind | ManifestHealthCheck | ManifestPackageView | ManifestPropertyAction | ManifestPropertyEditorModel | ManifestPropertyEditorUI | ManifestRepository | ManifestSection | ManifestSectionSidebarApp | ManifestSectionSidebarAppMenuKind | ManifestSectionView | ManifestMenu | ManifestMenuItem | ManifestMenuItemTreeKind | ManifestTheme | ManifestTree | ManifestTreeItem | ManifestUserProfileApp | ManifestWorkspace | ManifestWorkspaceAction | ManifestWorkspaceView | ManifestWorkspaceViewCollection | ManifestModal | ManifestStore | ManifestTreeStore | ManifestItemStore | ManifestBase;
433
- type ManifestStandardTypes = ManifestTypes['type'];
434
- type ManifestTypeMap = {
435
- [Manifest in ManifestTypes as Manifest['type']]: Manifest;
436
- };
437
- type SpecificManifestTypeOrManifestBase<T extends keyof ManifestTypeMap | string> = T extends keyof ManifestTypeMap ? ManifestTypeMap[T] : ManifestBase;
438
- interface ManifestBase {
439
- /**
440
- * The type of extension such as dashboard etc...
441
- */
442
- type: string;
443
- /**
444
- * The alias of the extension, ensure it is unique
445
- */
446
- alias: string;
447
- /**
448
- * The kind of the extension, used to group extensions together
449
- *
450
- * @examples ["button"]
451
- */
452
- kind?: unknown;
453
- /**
454
- * The friendly name of the extension
455
- */
456
- name: string;
457
- /**
458
- * Extensions such as dashboards are ordered by weight with lower numbers being first in the list
459
- */
460
- weight?: number;
461
- }
462
- interface ManifestKind {
463
- type: 'kind';
464
- alias: string;
465
- matchType: string;
466
- matchKind: string;
467
- manifest: Partial<ManifestTypes>;
468
- }
469
- interface ManifestWithConditions<ConditionsType> {
470
- /**
471
- * Set the conditions for when the extension should be loaded
472
- */
473
- conditions: ConditionsType;
455
+ interface UmbPropertyEditorExtensionElement extends HTMLElement {
456
+ value: unknown;
457
+ config: DataTypePropertyPresentationModel[];
474
458
  }
475
- interface ManifestWithLoader<LoaderReturnType> extends ManifestBase {
476
- /**
477
- * @TJS-ignore
478
- */
479
- loader?: () => Promise<LoaderReturnType>;
480
- }
481
- /**
482
- * The type of extension such as dashboard etc...
483
- */
484
- interface ManifestClass<T = unknown> extends ManifestWithLoader<object> {
485
- /**
486
- * The file location of the javascript file to load
487
- * @TJS-required
488
- */
489
- js?: string;
490
- /**
491
- * @TJS-ignore
492
- */
493
- className?: string;
494
- /**
495
- * @TJS-ignore
496
- */
497
- class?: ClassConstructor<T>;
498
- }
499
- interface ManifestClassWithClassConstructor extends ManifestClass {
500
- class: ClassConstructor<unknown>;
501
- }
502
- interface ManifestElement extends ManifestWithLoader<object | HTMLElement> {
503
- /**
504
- * The file location of the javascript file to load
505
- *
506
- * @TJS-require
507
- */
508
- js?: string;
509
- /**
510
- * The HTML web component name to use such as 'my-dashboard'
511
- * Note it is NOT <my-dashboard></my-dashboard> but just the name
512
- */
513
- elementName?: string;
514
- /**
515
- * This contains properties specific to the type of extension
516
- */
517
- meta?: unknown;
518
- }
519
- interface ManifestWithView extends ManifestElement {
520
- meta: MetaManifestWithView;
521
- }
522
- interface MetaManifestWithView {
523
- pathname: string;
524
- label: string;
525
- icon: string;
526
- }
527
- interface ManifestElementWithElementName extends ManifestElement {
528
- /**
529
- * The HTML web component name to use such as 'my-dashboard'
530
- * Note it is NOT <my-dashboard></my-dashboard> but just the name
531
- */
532
- elementName: string;
533
- }
534
- interface ManifestWithMeta extends ManifestBase {
535
- /**
536
- * This contains properties specific to the type of extension
537
- */
538
- meta: unknown;
539
- }
540
- /**
541
- * This type of extension gives full control and will simply load the specified JS file
542
- * You could have custom logic to decide which extensions to load/register by using extensionRegistry
543
- */
544
- interface ManifestEntrypoint extends ManifestBase {
545
- type: 'entrypoint';
546
- /**
547
- * The file location of the javascript file to load in the backoffice
548
- */
549
- js: string;
459
+
460
+ interface UmbSectionExtensionElement extends HTMLElement {
461
+ manifest?: ManifestSection;
550
462
  }
551
463
 
552
- declare class UmbEntryPointExtensionInitializer {
553
- #private;
554
- constructor(rootHost: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry);
555
- instantiateEntryPoint(manifest: ManifestEntrypoint): void;
464
+ interface UmbTreeItemExtensionElement extends HTMLElement {
465
+ item?: TreeItemPresentationModel;
556
466
  }
557
467
 
558
- export { ConditionsCollectionView, ConditionsDashboard, ConditionsDashboardCollection, ConditionsEditorViewCollection, ConditionsEntityAction, ConditionsEntityBulkAction, ConditionsMenuItem, ConditionsPropertyAction, ConditionsSectionSidebarApp, ConditionsSectionView, ConditionsTreeItem, ConditionsWorkspaceAction, ConditionsWorkspaceView, HealthCheck, ManifestBase, ManifestClass, ManifestClassWithClassConstructor, ManifestCollectionView, ManifestDashboard, ManifestDashboardCollection, ManifestElement, ManifestElementWithElementName, ManifestEntityAction, ManifestEntityBulkAction, ManifestEntrypoint, ManifestExternalLoginProvider, ManifestHeaderApp, ManifestHeaderAppButtonKind, ManifestHealthCheck, ManifestItemStore, ManifestKind, ManifestMenu, ManifestMenuItem, ManifestMenuItemTreeKind, ManifestModal, ManifestPackageView, ManifestPropertyAction, ManifestPropertyEditorModel, ManifestPropertyEditorUI, ManifestRepository, ManifestSection, ManifestSectionSidebarApp, ManifestSectionSidebarAppMenuKind, ManifestSectionView, ManifestStandardTypes, ManifestStore, ManifestTheme, ManifestTree, ManifestTreeItem, ManifestTreeStore, ManifestTypeMap, ManifestTypes, ManifestUserProfileApp, ManifestWithConditions, ManifestWithLoader, ManifestWithMeta, ManifestWithView, ManifestWorkspace, ManifestWorkspaceAction, ManifestWorkspaceView, ManifestWorkspaceViewCollection, MetaCollectionView, MetaDashboard, MetaDashboardCollection, MetaEditor, MetaEditorViewCollection, MetaEntityAction, MetaEntityBulkAction, MetaExternalLoginProvider, MetaHeaderApp, MetaHeaderAppButtonKind, MetaHealthCheck, MetaManifestWithView, MetaMenuItem, MetaMenuItemTreeKind, MetaPackageView, MetaPropertyEditorModel, MetaPropertyEditorUI, MetaSection, MetaSectionSidebarAppMenuKind, MetaSectionView, MetaTree, MetaUserProfileApp, MetaWorkspaceAction, MetaWorkspaceView, PropertyEditorConfig, PropertyEditorConfigDefaultData, PropertyEditorConfigProperty, SpecificManifestTypeOrManifestBase, UmbEntryPointExtensionInitializer };
468
+ type UmbBackofficeManifestKind = ManifestKind<ManifestTypes>;
469
+ type UmbBackofficeExtensionRegistry = UmbExtensionRegistry<ManifestTypes>;
470
+ declare const umbExtensionsRegistry: UmbBackofficeExtensionRegistry;
471
+
472
+ export { ConditionsCollectionView, ConditionsDashboard, ConditionsDashboardCollection, ConditionsEditorViewCollection, ConditionsEntityAction, ConditionsEntityBulkAction, ConditionsMenuItem, ConditionsPropertyAction, ConditionsSectionSidebarApp, ConditionsSectionView, ConditionsTreeItem, ConditionsWorkspaceAction, ConditionsWorkspaceView, HealthCheck, ManifestCollectionView, ManifestDashboard, ManifestDashboardCollection, ManifestEntityAction, ManifestEntityBulkAction, ManifestExternalLoginProvider, ManifestHeaderApp, ManifestHeaderAppButtonKind, ManifestHealthCheck, ManifestItemStore, ManifestMenu, ManifestMenuItem, ManifestMenuItemTreeKind, ManifestModal, ManifestPackageView, ManifestPropertyAction, ManifestPropertyEditorModel, ManifestPropertyEditorUI, ManifestRepository, ManifestSection, ManifestSectionSidebarApp, ManifestSectionSidebarAppMenuKind, ManifestSectionView, ManifestStore, ManifestTheme, ManifestTree, ManifestTreeItem, ManifestTreeStore, ManifestTypes, ManifestUserProfileApp, ManifestWorkspace, ManifestWorkspaceAction, ManifestWorkspaceEditorView, ManifestWorkspaceViewCollection, MetaCollectionView, MetaDashboard, MetaDashboardCollection, MetaEditor, MetaEditorViewCollection, MetaEntityAction, MetaEntityBulkAction, MetaExternalLoginProvider, MetaHeaderApp, MetaHeaderAppButtonKind, MetaHealthCheck, MetaMenuItem, MetaMenuItemTreeKind, MetaPackageView, MetaPropertyEditorModel, MetaPropertyEditorUI, MetaSection, MetaSectionSidebarAppMenuKind, MetaSectionView, MetaTree, MetaUserProfileApp, MetaWorkspaceAction, PropertyEditorConfig, PropertyEditorConfigDefaultData, PropertyEditorConfigProperty, UmbBackofficeExtensionRegistry, UmbBackofficeManifestKind, UmbDashboardExtensionElement, UmbExternalLoginProviderExtensionElement, UmbMenuItemExtensionElement, UmbModalExtensionElement, UmbPropertyEditorExtensionElement, UmbSectionExtensionElement, UmbSectionSidebarAppExtensionElement, UmbSectionViewExtensionElement, UmbTreeItemExtensionElement, UmbWorkspaceEditorViewExtensionElement, umbExtensionsRegistry };
package/id.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ declare class UmbId {
2
+ static new(): string;
3
+ static validate(id: string): boolean;
4
+ }
5
+
6
+ export { UmbId };