@umbraco-cms/backoffice 1.0.0-next.93a8a0e4 → 1.0.0-next.93ffdc6a

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/data-type.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { DataTypePropertyPresentationModel } from '@umbraco-cms/backoffice/backend-api';
2
+
3
+ /**
4
+ * Extends Array to add utility functions for accessing data type properties
5
+ * by alias, returning either the value or the complete DataTypePropertyPresentationModel object
6
+ */
7
+ declare class UmbDataTypePropertyCollection extends Array<DataTypePropertyPresentationModel> {
8
+ constructor(args?: Array<DataTypePropertyPresentationModel>);
9
+ getValueByAlias<T>(alias: string): T | undefined;
10
+ getByAlias(alias: string): DataTypePropertyPresentationModel | undefined;
11
+ }
12
+
13
+ export { UmbDataTypePropertyCollection };
@@ -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
 
@@ -8,7 +8,9 @@ interface ResolvedContexts {
8
8
  [key: string]: any;
9
9
  }
10
10
  declare class UmbElementMixinInterface extends UmbControllerHostElement {
11
- observe<T>(source: Observable<T>, callback: (_value: T) => void, unique?: string): UmbObserverController<T>;
11
+ observe<T>(source: Observable<T> | {
12
+ asObservable: () => Observable<T>;
13
+ }, callback: (_value: T) => void, unique?: string): UmbObserverController<T>;
12
14
  provideContext<R = unknown>(alias: string | UmbContextToken<R>, instance: R): UmbContextProviderController<R>;
13
15
  consumeContext<R = unknown>(alias: string | UmbContextToken<R>, callback: UmbContextCallback<R>): UmbContextConsumerController<R>;
14
16
  consumeAllContexts(contextAliases: string[], callback: (_instances: ResolvedContexts) => void): void;
@@ -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
 
@@ -0,0 +1,657 @@
1
+ import { Observable } from 'rxjs';
2
+ import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
3
+ import { ManifestElement as ManifestElement$1, ManifestWithConditions as ManifestWithConditions$1, ManifestBase as ManifestBase$1, ManifestClass as ManifestClass$1, ManifestWithLoader as ManifestWithLoader$1, ClassConstructor as ClassConstructor$1, ManifestWithView as ManifestWithView$1, MetaManifestWithView as MetaManifestWithView$1, ManifestEntryPoint as ManifestEntryPoint$1 } from '@umbraco-cms/backoffice/extension-api';
4
+ import { UmbDataTypePropertyCollection } from '@umbraco-cms/backoffice/data-type';
5
+ import { UmbStoreBase, UmbTreeStore, UmbItemStore } from '@umbraco-cms/backoffice/store';
6
+ import { TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api';
7
+ import { InterfaceLook, InterfaceColor } from '@umbraco-ui/uui-base/lib/types/index';
8
+ import { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace';
9
+
10
+ type HTMLElementConstructor<T = HTMLElement> = new (...args: any[]) => T;
11
+ type ClassConstructor<T> = new (...args: any[]) => T;
12
+ type ManifestTypeMap<ManifestTypes extends ManifestBase> = {
13
+ [Manifest in ManifestTypes as Manifest['type']]: Manifest;
14
+ } & {
15
+ [key: string]: ManifestBase;
16
+ };
17
+ type SpecificManifestTypeOrManifestBase<ManifestTypes extends ManifestBase, T extends keyof ManifestTypeMap<ManifestTypes> | string> = T extends keyof ManifestTypeMap<ManifestTypes> ? ManifestTypeMap<ManifestTypes>[T] : ManifestBase;
18
+ interface ManifestBase {
19
+ /**
20
+ * The type of extension such as dashboard etc...
21
+ */
22
+ type: string;
23
+ /**
24
+ * The alias of the extension, ensure it is unique
25
+ */
26
+ alias: string;
27
+ /**
28
+ * The kind of the extension, used to group extensions together
29
+ *
30
+ * @examples ["button"]
31
+ */
32
+ kind?: unknown;
33
+ /**
34
+ * The friendly name of the extension
35
+ */
36
+ name: string;
37
+ /**
38
+ * Extensions such as dashboards are ordered by weight with lower numbers being first in the list
39
+ */
40
+ weight?: number;
41
+ }
42
+ interface ManifestKind<ManifestTypes> {
43
+ type: 'kind';
44
+ alias: string;
45
+ matchType: string;
46
+ matchKind: string;
47
+ manifest: Partial<ManifestTypes>;
48
+ }
49
+ interface ManifestWithConditions<ConditionsType> {
50
+ /**
51
+ * Set the conditions for when the extension should be loaded
52
+ */
53
+ conditions: ConditionsType;
54
+ }
55
+ interface ManifestWithLoader<LoaderReturnType> extends ManifestBase {
56
+ /**
57
+ * @TJS-ignore
58
+ */
59
+ loader?: () => Promise<LoaderReturnType>;
60
+ }
61
+ /**
62
+ * The type of extension such as dashboard etc...
63
+ */
64
+ interface ManifestClass<ClassType = unknown> extends ManifestWithLoader<{
65
+ default: ClassConstructor<ClassType>;
66
+ }> {
67
+ readonly CLASS_TYPE?: ClassType;
68
+ /**
69
+ * The file location of the javascript file to load
70
+ * @TJS-required
71
+ */
72
+ js?: string;
73
+ /**
74
+ * @TJS-ignore
75
+ */
76
+ className?: string;
77
+ /**
78
+ * @TJS-ignore
79
+ */
80
+ class?: ClassConstructor<ClassType>;
81
+ }
82
+ interface ManifestClassWithClassConstructor<T = unknown> extends ManifestClass<T> {
83
+ class: ClassConstructor<T>;
84
+ }
85
+ interface ManifestElement<ElementType extends HTMLElement = HTMLElement> extends ManifestWithLoader<{
86
+ default: ClassConstructor<ElementType>;
87
+ } | Omit<object, 'default'>> {
88
+ readonly ELEMENT_TYPE?: ElementType;
89
+ /**
90
+ * The file location of the javascript file to load
91
+ *
92
+ * @TJS-require
93
+ */
94
+ js?: string;
95
+ /**
96
+ * The HTML web component name to use such as 'my-dashboard'
97
+ * Note it is NOT <my-dashboard></my-dashboard> but just the name
98
+ */
99
+ elementName?: string;
100
+ /**
101
+ * This contains properties specific to the type of extension
102
+ */
103
+ meta?: unknown;
104
+ }
105
+ interface ManifestWithView<ElementType extends HTMLElement = HTMLElement> extends ManifestElement<ElementType> {
106
+ meta: MetaManifestWithView;
107
+ }
108
+ interface MetaManifestWithView {
109
+ pathname: string;
110
+ label: string;
111
+ icon: string;
112
+ }
113
+ interface ManifestElementWithElementName extends ManifestElement {
114
+ /**
115
+ * The HTML web component name to use such as 'my-dashboard'
116
+ * Note it is NOT <my-dashboard></my-dashboard> but just the name
117
+ */
118
+ elementName: string;
119
+ }
120
+ interface ManifestWithMeta extends ManifestBase {
121
+ /**
122
+ * This contains properties specific to the type of extension
123
+ */
124
+ meta: unknown;
125
+ }
126
+ /**
127
+ * This type of extension gives full control and will simply load the specified JS file
128
+ * You could have custom logic to decide which extensions to load/register by using extensionRegistry
129
+ */
130
+ interface ManifestEntryPoint extends ManifestBase {
131
+ type: 'entryPoint';
132
+ /**
133
+ * The file location of the javascript file to load in the backoffice
134
+ */
135
+ js: string;
136
+ }
137
+
138
+ declare class UmbExtensionRegistry<IncomingManifestTypes extends ManifestBase, ManifestTypes extends ManifestBase = IncomingManifestTypes | ManifestBase> {
139
+ readonly MANIFEST_TYPES: ManifestTypes;
140
+ private _extensions;
141
+ readonly extensions: Observable<ManifestTypes[]>;
142
+ private _kinds;
143
+ readonly kinds: Observable<ManifestKind<ManifestTypes>[]>;
144
+ defineKind(kind: ManifestKind<ManifestTypes>): void;
145
+ register(manifest: ManifestTypes | ManifestKind<ManifestTypes>): void;
146
+ registerMany(manifests: Array<ManifestTypes | ManifestKind<ManifestTypes>>): void;
147
+ unregister(alias: string): void;
148
+ isRegistered(alias: string): boolean;
149
+ private _kindsOfType;
150
+ private _extensionsOfType;
151
+ private _kindsOfTypes;
152
+ private _extensionsOfTypes;
153
+ getByTypeAndAlias<Key extends keyof ManifestTypeMap<ManifestTypes> | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, Key>>(type: Key, alias: string): Observable<T | undefined>;
154
+ extensionsOfType<Key extends keyof ManifestTypeMap<ManifestTypes> | string, T extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, Key>>(type: Key): Observable<T[]>;
155
+ extensionsOfTypes<ExtensionTypes extends ManifestBase = ManifestBase>(types: string[]): Observable<Array<ExtensionTypes>>;
156
+ }
157
+
158
+ declare function isManifestClassConstructorType(manifest: unknown): manifest is ManifestClassWithClassConstructor;
159
+
160
+ declare function isManifestClassableType(manifest: ManifestBase): manifest is ManifestClass;
161
+
162
+ declare function isManifestElementNameType(manifest: unknown): manifest is ManifestElementWithElementName;
163
+
164
+ declare function isManifestElementableType<ElementType extends HTMLElement = HTMLElement>(manifest: ManifestBase): manifest is ManifestElement;
165
+
166
+ type ManifestJSType<T> = ManifestWithLoader<T> & {
167
+ js: string;
168
+ };
169
+ declare function isManifestJSType<T>(manifest: ManifestBase | unknown): manifest is ManifestJSType<T>;
170
+
171
+ type ManifestLoaderType<T> = ManifestWithLoader<T> & {
172
+ loader: () => Promise<T>;
173
+ };
174
+ declare function isManifestLoaderType<T>(manifest: ManifestBase): manifest is ManifestLoaderType<T>;
175
+
176
+ declare function createExtensionElement<ElementType extends HTMLElement>(manifest: ManifestElement<ElementType>): Promise<ElementType | undefined>;
177
+
178
+ declare function hasDefaultExport<ConstructorType>(object: unknown): object is {
179
+ default: ConstructorType;
180
+ };
181
+
182
+ type UmbEntryPointOnInit = (host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry<ManifestBase>) => void;
183
+ /**
184
+ * Interface containing supported life-cycle functions for ESModule entry points
185
+ */
186
+ interface UmbEntryPointModule {
187
+ onInit: UmbEntryPointOnInit;
188
+ }
189
+
190
+ /**
191
+ * Validate if an ESModule exports a known init function called 'onInit'
192
+ */
193
+ declare function hasInitExport(obj: unknown): obj is Pick<UmbEntryPointModule, 'onInit'>;
194
+
195
+ declare function loadExtension<T = unknown>(manifest: ManifestWithLoader<T>): Promise<T | null>;
196
+
197
+ declare function createExtensionElementOrFallback(manifest: any, fallbackElementName: string): Promise<HTMLElement | undefined>;
198
+
199
+ declare function createExtensionClass<T = unknown>(manifest: ManifestClass, constructorArguments: unknown[]): Promise<T | undefined>;
200
+
201
+ declare class UmbEntryPointExtensionInitializer {
202
+ #private;
203
+ constructor(host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry<ManifestEntryPoint>);
204
+ instantiateEntryPoint(manifest: ManifestEntryPoint): Promise<void>;
205
+ }
206
+
207
+ interface ManifestCollectionView extends ManifestElement$1, ManifestWithConditions$1<ConditionsCollectionView> {
208
+ type: 'collectionView';
209
+ meta: MetaCollectionView;
210
+ }
211
+ interface MetaCollectionView {
212
+ /**
213
+ * The friendly name of the collection view
214
+ */
215
+ label: string;
216
+ /**
217
+ * An icon to represent the collection view
218
+ *
219
+ * @examples [
220
+ * "umb:box",
221
+ * "umb:grid"
222
+ * ]
223
+ */
224
+ icon: string;
225
+ /**
226
+ * The URL pathname for this collection view that can be deep linked to by sharing the url
227
+ */
228
+ pathName: string;
229
+ }
230
+ interface ConditionsCollectionView {
231
+ entityType: string;
232
+ }
233
+
234
+ interface ManifestDashboard extends ManifestElement$1<UmbDashboardExtensionElement>, ManifestWithConditions$1<ConditionsDashboard> {
235
+ type: 'dashboard';
236
+ meta: MetaDashboard;
237
+ }
238
+ interface MetaDashboard {
239
+ /**
240
+ * This is the URL path for the dashboard which is used for navigating or deep linking directly to the dashboard
241
+ * https://yoursite.com/section/settings/dashboard/my-dashboard-path
242
+ *
243
+ * @example my-dashboard-path
244
+ * @examples [
245
+ * "my-dashboard-path"
246
+ * ]
247
+ */
248
+ pathname: string;
249
+ /**
250
+ * The displayed name (label) for the tab of the dashboard
251
+ */
252
+ label?: string;
253
+ }
254
+ interface ConditionsDashboard {
255
+ /**
256
+ * An array of section aliases that the dashboard should be available in
257
+ *
258
+ * @uniqueItems true
259
+ * @minItems 1
260
+ * @items.examples [
261
+ * "Umb.Section.Content",
262
+ * "Umb.Section.Settings"
263
+ * ]
264
+ *
265
+ */
266
+ sections: string[];
267
+ }
268
+
269
+ interface ManifestDashboardCollection extends ManifestBase$1 {
270
+ type: 'dashboardCollection';
271
+ meta: MetaDashboardCollection;
272
+ conditions: ConditionsDashboardCollection;
273
+ }
274
+ interface MetaDashboardCollection {
275
+ pathname: string;
276
+ label?: string;
277
+ repositoryAlias: string;
278
+ }
279
+ interface ConditionsDashboardCollection {
280
+ sections: string[];
281
+ entityType: string;
282
+ }
283
+
284
+ /**
285
+ * An action to perform on an entity
286
+ * For example for content you may wish to create a new document etc
287
+ */
288
+ interface ManifestEntityAction extends ManifestElement$1 {
289
+ type: 'entityAction';
290
+ meta: MetaEntityAction;
291
+ conditions: ConditionsEntityAction;
292
+ }
293
+ interface MetaEntityAction {
294
+ /**
295
+ * An icon to represent the action to be performed
296
+ *
297
+ * @examples [
298
+ * "umb:box",
299
+ * "umb:grid"
300
+ * ]
301
+ */
302
+ icon?: string;
303
+ /**
304
+ * The friendly name of the action to perform
305
+ *
306
+ * @examples [
307
+ * "Create",
308
+ * "Create Content Template"
309
+ * ]
310
+ */
311
+ label: string;
312
+ /**
313
+ * @TJS-ignore
314
+ */
315
+ api: any;
316
+ /**
317
+ * The alias for the repsoitory of the entity type this action is for
318
+ * such as 'Umb.Repository.Documents'
319
+ * @examples [
320
+ * "Umb.Repository.Documents"
321
+ * ]
322
+ */
323
+ repositoryAlias: string;
324
+ }
325
+ interface ConditionsEntityAction {
326
+ entityTypes: Array<string>;
327
+ }
328
+
329
+ /**
330
+ * An action to perform on multiple entities
331
+ * For example for content you may wish to move one or more documents in bulk
332
+ */
333
+ interface ManifestEntityBulkAction extends ManifestElement$1, ManifestWithConditions$1<ConditionsEntityBulkAction> {
334
+ type: 'entityBulkAction';
335
+ meta: MetaEntityBulkAction;
336
+ }
337
+ interface MetaEntityBulkAction {
338
+ /**
339
+ * A friendly label for the action
340
+ */
341
+ label: string;
342
+ /**
343
+ * @TJS-ignore
344
+ */
345
+ api: any;
346
+ /**
347
+ * The alias for the repsoitory of the entity type this action is for
348
+ * such as 'Umb.Repository.Documents'
349
+ *
350
+ * @examples [
351
+ * "Umb.Repository.Documents"
352
+ * ]
353
+ */
354
+ repositoryAlias: string;
355
+ }
356
+ interface ConditionsEntityBulkAction {
357
+ entityType: string;
358
+ }
359
+
360
+ interface UmbExternalLoginProviderExtensionElement extends HTMLElement {
361
+ manifest?: ManifestExternalLoginProvider;
362
+ }
363
+
364
+ interface ManifestExternalLoginProvider extends ManifestElement$1<UmbExternalLoginProviderExtensionElement> {
365
+ type: 'externalLoginProvider';
366
+ meta: MetaExternalLoginProvider;
367
+ }
368
+ interface MetaExternalLoginProvider {
369
+ label: string;
370
+ pathname: string;
371
+ }
372
+
373
+ /**
374
+ * Header apps are displayed in the top right corner of the backoffice
375
+ * The two provided header apps are the search and the user menu
376
+ */
377
+ interface ManifestHeaderApp extends ManifestElement$1 {
378
+ type: 'headerApp';
379
+ }
380
+ interface ManifestHeaderAppButtonKind extends ManifestHeaderApp {
381
+ type: 'headerApp';
382
+ kind: 'button';
383
+ meta: MetaHeaderAppButtonKind;
384
+ }
385
+ interface MetaHeaderAppButtonKind {
386
+ href: string;
387
+ label: string;
388
+ icon: string;
389
+ }
390
+
391
+ interface ManifestHealthCheck extends ManifestElement$1 {
392
+ type: 'healthCheck';
393
+ meta: MetaHealthCheck;
394
+ }
395
+ interface MetaHealthCheck {
396
+ label: string;
397
+ api: any;
398
+ }
399
+
400
+ interface ManifestMenu extends ManifestElement$1 {
401
+ type: 'menu';
402
+ }
403
+
404
+ interface UmbMenuItemExtensionElement extends HTMLElement {
405
+ manifest?: ManifestMenuItem;
406
+ }
407
+
408
+ interface ManifestMenuItem extends ManifestElement$1<UmbMenuItemExtensionElement> {
409
+ type: 'menuItem';
410
+ meta: MetaMenuItem;
411
+ conditions: ConditionsMenuItem;
412
+ }
413
+ interface MetaMenuItem {
414
+ label: string;
415
+ icon: string;
416
+ entityType?: string;
417
+ }
418
+ interface ConditionsMenuItem {
419
+ menus: Array<string>;
420
+ }
421
+ interface ManifestMenuItemTreeKind extends ManifestMenuItem {
422
+ type: 'menuItem';
423
+ kind: 'tree';
424
+ meta: MetaMenuItemTreeKind;
425
+ }
426
+ interface MetaMenuItemTreeKind {
427
+ treeAlias: string;
428
+ label: string;
429
+ icon: string;
430
+ entityType?: string;
431
+ }
432
+
433
+ interface ManifestModal extends ManifestElement$1 {
434
+ type: 'modal';
435
+ }
436
+
437
+ interface ManifestPackageView extends ManifestElement$1 {
438
+ type: 'packageView';
439
+ meta: MetaPackageView;
440
+ }
441
+ interface MetaPackageView {
442
+ packageName: string;
443
+ }
444
+
445
+ interface ManifestPropertyAction extends ManifestElement$1, ManifestWithConditions$1<ConditionsPropertyAction> {
446
+ type: 'propertyAction';
447
+ }
448
+ interface ConditionsPropertyAction {
449
+ propertyEditors: string[];
450
+ }
451
+
452
+ interface ManifestPropertyEditorUI extends ManifestElement$1<UmbPropertyEditorExtensionElement> {
453
+ type: 'propertyEditorUI';
454
+ meta: MetaPropertyEditorUI;
455
+ }
456
+ interface MetaPropertyEditorUI {
457
+ label: string;
458
+ propertyEditorModel: string;
459
+ icon: string;
460
+ group: string;
461
+ config?: PropertyEditorConfig;
462
+ supportsReadOnly?: boolean;
463
+ }
464
+ interface ManifestPropertyEditorModel extends ManifestBase$1 {
465
+ type: 'propertyEditorModel';
466
+ meta: MetaPropertyEditorModel;
467
+ }
468
+ interface MetaPropertyEditorModel {
469
+ config?: PropertyEditorConfig;
470
+ }
471
+ interface PropertyEditorConfig {
472
+ properties: PropertyEditorConfigProperty[];
473
+ defaultData?: PropertyEditorConfigDefaultData[];
474
+ }
475
+ interface PropertyEditorConfigProperty {
476
+ label: string;
477
+ description?: string;
478
+ alias: string;
479
+ propertyEditorUI: string;
480
+ }
481
+ interface PropertyEditorConfigDefaultData {
482
+ alias: string;
483
+ value: any;
484
+ }
485
+
486
+ interface ManifestRepository extends ManifestClass$1<unknown> {
487
+ type: 'repository';
488
+ }
489
+
490
+ interface ManifestSection extends ManifestElement$1<UmbSectionExtensionElement> {
491
+ type: 'section';
492
+ meta: MetaSection;
493
+ }
494
+ interface MetaSection {
495
+ label: string;
496
+ pathname: string;
497
+ }
498
+
499
+ interface UmbSectionSidebarAppExtensionElement extends HTMLElement {
500
+ manifest?: ManifestSectionSidebarApp;
501
+ }
502
+
503
+ interface ManifestSectionSidebarApp extends ManifestElement$1<UmbSectionSidebarAppExtensionElement> {
504
+ type: 'sectionSidebarApp';
505
+ conditions: ConditionsSectionSidebarApp;
506
+ }
507
+ interface ConditionsSectionSidebarApp {
508
+ sections: Array<string>;
509
+ }
510
+ interface ManifestSectionSidebarAppMenuKind extends ManifestSectionSidebarApp {
511
+ type: 'sectionSidebarApp';
512
+ kind: 'menu';
513
+ meta: MetaSectionSidebarAppMenuKind;
514
+ }
515
+ interface MetaSectionSidebarAppMenuKind {
516
+ label: string;
517
+ menu: string;
518
+ }
519
+
520
+ interface UmbSectionViewExtensionElement extends HTMLElement {
521
+ manifest?: ManifestSectionView;
522
+ }
523
+
524
+ interface ManifestSectionView extends ManifestElement$1<UmbSectionViewExtensionElement>, ManifestWithConditions$1<ConditionsSectionView> {
525
+ type: 'sectionView';
526
+ meta: MetaSectionView;
527
+ }
528
+ interface MetaSectionView {
529
+ label: string;
530
+ pathname: string;
531
+ icon: string;
532
+ }
533
+ interface ConditionsSectionView {
534
+ sections: Array<string>;
535
+ }
536
+
537
+ interface ManifestStore extends ManifestClass$1<UmbStoreBase> {
538
+ type: 'store';
539
+ }
540
+ interface ManifestTreeStore extends ManifestClass$1<UmbTreeStore> {
541
+ type: 'treeStore';
542
+ }
543
+ interface ManifestItemStore extends ManifestClass$1<UmbItemStore> {
544
+ type: 'itemStore';
545
+ }
546
+
547
+ /**
548
+ * Theme manifest for styling the backoffice of Umbraco such as dark, high contrast etc
549
+ */
550
+ interface ManifestTheme extends ManifestWithLoader$1<string> {
551
+ type: 'theme';
552
+ /**
553
+ * File location of the CSS file of the theme
554
+ *
555
+ * @examples ["themes/dark.theme.css"]
556
+ */
557
+ css?: string;
558
+ }
559
+
560
+ interface ManifestTree extends ManifestBase$1 {
561
+ type: 'tree';
562
+ meta: MetaTree;
563
+ }
564
+ interface MetaTree {
565
+ repositoryAlias: string;
566
+ }
567
+
568
+ interface ManifestTreeItem extends ManifestElement$1<UmbTreeItemExtensionElement> {
569
+ type: 'treeItem';
570
+ conditions: ConditionsTreeItem;
571
+ }
572
+ interface ConditionsTreeItem {
573
+ entityTypes: Array<string>;
574
+ }
575
+
576
+ interface ManifestUserProfileApp extends ManifestElement$1 {
577
+ type: 'userProfileApp';
578
+ meta: MetaUserProfileApp;
579
+ }
580
+ interface MetaUserProfileApp {
581
+ label: string;
582
+ pathname: string;
583
+ }
584
+
585
+ interface ManifestWorkspace extends ManifestElement$1 {
586
+ type: 'workspace';
587
+ meta: MetaEditor;
588
+ }
589
+ interface MetaEditor {
590
+ entityType: string;
591
+ }
592
+
593
+ interface ManifestWorkspaceAction extends ManifestElement$1 {
594
+ type: 'workspaceAction';
595
+ meta: MetaWorkspaceAction;
596
+ conditions: ConditionsWorkspaceAction;
597
+ }
598
+ interface MetaWorkspaceAction {
599
+ label?: string;
600
+ look?: InterfaceLook;
601
+ color?: InterfaceColor;
602
+ api: ClassConstructor$1<UmbWorkspaceAction>;
603
+ }
604
+ interface ConditionsWorkspaceAction {
605
+ workspaces: Array<string>;
606
+ }
607
+
608
+ interface UmbWorkspaceEditorViewExtensionElement extends HTMLElement {
609
+ manifest?: ManifestWorkspaceEditorView;
610
+ }
611
+
612
+ interface ManifestWorkspaceEditorView extends ManifestWithView$1<UmbWorkspaceEditorViewExtensionElement> {
613
+ type: 'workspaceEditorView';
614
+ conditions: ConditionsWorkspaceView;
615
+ }
616
+ interface ConditionsWorkspaceView {
617
+ workspaces: string[];
618
+ }
619
+
620
+ interface ManifestWorkspaceViewCollection extends ManifestWithView$1, ManifestWithConditions$1<ConditionsEditorViewCollection> {
621
+ type: 'workspaceViewCollection';
622
+ meta: MetaEditorViewCollection;
623
+ }
624
+ interface MetaEditorViewCollection extends MetaManifestWithView$1 {
625
+ entityType: string;
626
+ repositoryAlias: string;
627
+ }
628
+ interface ConditionsEditorViewCollection {
629
+ workspaces: string[];
630
+ }
631
+
632
+ type ManifestTypes = ManifestCollectionView | ManifestDashboard | ManifestDashboardCollection | ManifestEntityAction | ManifestEntityBulkAction | ManifestEntryPoint$1 | 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$1;
633
+
634
+ interface UmbDashboardExtensionElement extends HTMLElement {
635
+ manifest?: ManifestDashboard;
636
+ }
637
+
638
+ interface UmbPropertyEditorExtensionElement extends HTMLElement {
639
+ value: unknown;
640
+ config?: UmbDataTypePropertyCollection;
641
+ }
642
+
643
+ interface UmbSectionExtensionElement extends HTMLElement {
644
+ manifest?: ManifestSection;
645
+ }
646
+
647
+ interface UmbTreeItemExtensionElement extends HTMLElement {
648
+ item?: TreeItemPresentationModel;
649
+ }
650
+
651
+ declare class UmbExtensionClassInitializer<ExtensionType extends string = string, ExtensionManifest extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ExtensionType>, ExtensionClassInterface = ExtensionManifest extends ManifestClass ? ExtensionManifest['CLASS_TYPE'] : unknown> {
652
+ #private;
653
+ constructor(host: UmbControllerHostElement, extensionType: ExtensionType, extensionAlias: string, callback: (extensionClass: ExtensionClassInterface | undefined) => void);
654
+ asPromise(): Promise<ExtensionClassInterface | undefined>;
655
+ }
656
+
657
+ export { ClassConstructor, HTMLElementConstructor, ManifestBase, ManifestClass, ManifestClassWithClassConstructor, ManifestElement, ManifestElementWithElementName, ManifestEntryPoint, ManifestJSType, ManifestKind, ManifestLoaderType, ManifestTypeMap, ManifestWithConditions, ManifestWithLoader, ManifestWithMeta, ManifestWithView, MetaManifestWithView, SpecificManifestTypeOrManifestBase, UmbEntryPointExtensionInitializer, UmbEntryPointModule, UmbEntryPointOnInit, UmbExtensionClassInitializer, UmbExtensionRegistry, createExtensionClass, createExtensionElement, createExtensionElementOrFallback, hasDefaultExport, hasInitExport, isManifestClassConstructorType, isManifestClassableType, isManifestElementNameType, isManifestElementableType, isManifestJSType, isManifestLoaderType, loadExtension };