@umbraco-cms/backoffice 1.0.0-next.b82f3242 → 1.0.0-next.ba26bec7

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.
@@ -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>;
@@ -1,7 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
- import { ManifestTypes, ManifestKind, ManifestTypeMap, ManifestBase, SpecificManifestTypeOrManifestBase, ManifestElement, ManifestElementWithElementName, ManifestClass } from '@umbraco-cms/backoffice/extensions-registry';
2
+ import { ManifestTypes, ManifestKind, ManifestTypeMap, ManifestBase, SpecificManifestTypeOrManifestBase, ManifestElement, ManifestElementWithElementName, ManifestWithLoader, ManifestClass } from '@umbraco-cms/backoffice/extensions-registry';
3
3
  import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
4
- import { PageComponent } from '@umbraco-cms/backoffice/router';
5
4
  import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
6
5
 
7
6
  declare class UmbExtensionRegistry {
@@ -11,6 +10,7 @@ declare class UmbExtensionRegistry {
11
10
  readonly kinds: Observable<ManifestKind[]>;
12
11
  defineKind(kind: ManifestKind): void;
13
12
  register(manifest: ManifestTypes | ManifestKind): void;
13
+ registerMany(manifests: Array<ManifestTypes>): void;
14
14
  unregister(alias: string): void;
15
15
  isRegistered(alias: string): boolean;
16
16
  private _kindsOfType;
@@ -23,7 +23,7 @@ declare class UmbExtensionRegistry {
23
23
  }
24
24
  declare const UMB_EXTENSION_REGISTRY_TOKEN: UmbContextToken<UmbExtensionRegistry>;
25
25
 
26
- declare function createExtensionElement(manifest: ManifestElement): Promise<PageComponent>;
26
+ declare function createExtensionElement<ElementType extends HTMLElement>(manifest: ManifestElement<ElementType>): Promise<ElementType | undefined>;
27
27
 
28
28
  declare function hasDefaultExport<ConstructorType>(object: unknown): object is {
29
29
  default: ConstructorType;
@@ -44,19 +44,19 @@ declare function hasInitExport(obj: unknown): obj is Pick<UmbEntrypointModule, '
44
44
 
45
45
  declare function isManifestElementNameType(manifest: unknown): manifest is ManifestElementWithElementName;
46
46
 
47
- declare function isManifestElementableType(manifest: ManifestBase): manifest is ManifestElement;
47
+ declare function isManifestElementableType<ElementType extends HTMLElement = HTMLElement>(manifest: ManifestBase): manifest is ManifestElement;
48
48
 
49
- type ManifestLoaderType = ManifestElement & {
50
- loader: () => Promise<object | HTMLElement>;
51
- };
52
- type ManifestJSType = ManifestElement & {
49
+ type ManifestJSType<T> = ManifestWithLoader<T> & {
53
50
  js: string;
54
51
  };
55
- declare function loadExtension(manifest: ManifestElement): Promise<object | HTMLElement | null>;
52
+ declare function isManifestJSType<T>(manifest: ManifestBase | unknown): manifest is ManifestJSType<T>;
56
53
 
57
- declare function isManifestJSType(manifest: ManifestBase | unknown): manifest is ManifestJSType;
54
+ type ManifestLoaderType<T> = ManifestWithLoader<T> & {
55
+ loader: () => Promise<T>;
56
+ };
57
+ declare function isManifestLoaderType<T>(manifest: ManifestBase): manifest is ManifestLoaderType<T>;
58
58
 
59
- declare function isManifestLoaderType(manifest: ManifestBase): manifest is ManifestLoaderType;
59
+ declare function loadExtension<T = unknown>(manifest: ManifestWithLoader<T>): Promise<T | null>;
60
60
 
61
61
  declare function createExtensionElementOrFallback(manifest: any, fallbackElementName: string): Promise<HTMLElement | undefined>;
62
62
 
@@ -1,6 +1,9 @@
1
+ import { DataTypePropertyPresentationModel, TreeItemPresentationModel } from '@umbraco-cms/backoffice/backend-api';
2
+ import { UmbStoreBase, UmbTreeStore, UmbItemStore } from '@umbraco-cms/backoffice/store';
1
3
  import { InterfaceLook, InterfaceColor } from '@umbraco-ui/uui-base/lib/types/index';
2
4
  import { ClassConstructor } from '@umbraco-cms/backoffice/models';
3
- import { UmbStoreBase, UmbTreeStore, UmbItemStore } from '@umbraco-cms/backoffice/store';
5
+ import { UmbWorkspaceAction } from '@umbraco-cms/backoffice/workspace';
6
+ import { UmbModalHandler } from '@umbraco-cms/backoffice/modal';
4
7
  import { UmbExtensionRegistry } from '@umbraco-cms/backoffice/extensions-api';
5
8
  import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
6
9
 
@@ -31,7 +34,7 @@ interface ConditionsCollectionView {
31
34
  entityType: string;
32
35
  }
33
36
 
34
- interface ManifestDashboard extends ManifestElement, ManifestWithConditions<ConditionsDashboard> {
37
+ interface ManifestDashboard extends ManifestElement<UmbDashboardExtensionElement>, ManifestWithConditions<ConditionsDashboard> {
35
38
  type: 'dashboard';
36
39
  meta: MetaDashboard;
37
40
  }
@@ -157,7 +160,11 @@ interface ConditionsEntityBulkAction {
157
160
  entityType: string;
158
161
  }
159
162
 
160
- interface ManifestExternalLoginProvider extends ManifestElement {
163
+ interface UmbExternalLoginProviderExtensionElement extends HTMLElement {
164
+ manifest?: ManifestExternalLoginProvider;
165
+ }
166
+
167
+ interface ManifestExternalLoginProvider extends ManifestElement<UmbExternalLoginProviderExtensionElement> {
161
168
  type: 'externalLoginProvider';
162
169
  meta: MetaExternalLoginProvider;
163
170
  }
@@ -203,6 +210,43 @@ interface HealthCheck {
203
210
  description: string;
204
211
  }
205
212
 
213
+ interface ManifestMenu extends ManifestElement {
214
+ type: 'menu';
215
+ }
216
+
217
+ interface UmbMenuItemExtensionElement extends HTMLElement {
218
+ manifest?: ManifestMenuItem;
219
+ }
220
+
221
+ interface ManifestMenuItem extends ManifestElement<UmbMenuItemExtensionElement> {
222
+ type: 'menuItem';
223
+ meta: MetaMenuItem;
224
+ conditions: ConditionsMenuItem;
225
+ }
226
+ interface MetaMenuItem {
227
+ label: string;
228
+ icon: string;
229
+ entityType?: string;
230
+ }
231
+ interface ConditionsMenuItem {
232
+ menus: Array<string>;
233
+ }
234
+ interface ManifestMenuItemTreeKind extends ManifestMenuItem {
235
+ type: 'menuItem';
236
+ kind: 'tree';
237
+ meta: MetaMenuItemTreeKind;
238
+ }
239
+ interface MetaMenuItemTreeKind {
240
+ treeAlias: string;
241
+ label: string;
242
+ icon: string;
243
+ entityType?: string;
244
+ }
245
+
246
+ interface ManifestModal extends ManifestElement {
247
+ type: 'modal';
248
+ }
249
+
206
250
  interface ManifestPackageView extends ManifestElement {
207
251
  type: 'packageView';
208
252
  meta: MetaPackageView;
@@ -218,7 +262,7 @@ interface ConditionsPropertyAction {
218
262
  propertyEditors: string[];
219
263
  }
220
264
 
221
- interface ManifestPropertyEditorUI extends ManifestElement {
265
+ interface ManifestPropertyEditorUI extends ManifestElement<UmbPropertyEditorExtensionElement> {
222
266
  type: 'propertyEditorUI';
223
267
  meta: MetaPropertyEditorUI;
224
268
  }
@@ -252,7 +296,11 @@ interface PropertyEditorConfigDefaultData {
252
296
  value: any;
253
297
  }
254
298
 
255
- interface ManifestSection extends ManifestElement {
299
+ interface ManifestRepository extends ManifestClass<unknown> {
300
+ type: 'repository';
301
+ }
302
+
303
+ interface ManifestSection extends ManifestElement<UmbSectionExtensionElement> {
256
304
  type: 'section';
257
305
  meta: MetaSection;
258
306
  }
@@ -261,20 +309,11 @@ interface MetaSection {
261
309
  pathname: string;
262
310
  }
263
311
 
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>;
312
+ interface UmbSectionSidebarAppExtensionElement extends HTMLElement {
313
+ manifest?: ManifestSectionSidebarApp;
275
314
  }
276
315
 
277
- interface ManifestSectionSidebarApp extends ManifestElement {
316
+ interface ManifestSectionSidebarApp extends ManifestElement<UmbSectionSidebarAppExtensionElement> {
278
317
  type: 'sectionSidebarApp';
279
318
  conditions: ConditionsSectionSidebarApp;
280
319
  }
@@ -291,33 +330,31 @@ interface MetaSectionSidebarAppMenuKind {
291
330
  menu: string;
292
331
  }
293
332
 
294
- interface ManifestMenu extends ManifestElement {
295
- type: 'menu';
333
+ interface UmbSectionViewExtensionElement extends HTMLElement {
334
+ manifest?: ManifestSectionView;
296
335
  }
297
336
 
298
- interface ManifestMenuItem extends ManifestElement {
299
- type: 'menuItem';
300
- meta: MetaMenuItem;
301
- conditions: ConditionsMenuItem;
337
+ interface ManifestSectionView extends ManifestElement<UmbSectionViewExtensionElement>, ManifestWithConditions<ConditionsSectionView> {
338
+ type: 'sectionView';
339
+ meta: MetaSectionView;
302
340
  }
303
- interface MetaMenuItem {
341
+ interface MetaSectionView {
304
342
  label: string;
343
+ pathname: string;
305
344
  icon: string;
306
- entityType?: string;
307
345
  }
308
- interface ConditionsMenuItem {
309
- menus: Array<string>;
346
+ interface ConditionsSectionView {
347
+ sections: Array<string>;
310
348
  }
311
- interface ManifestMenuItemTreeKind extends ManifestMenuItem {
312
- type: 'menuItem';
313
- kind: 'tree';
314
- meta: MetaMenuItemTreeKind;
349
+
350
+ interface ManifestStore extends ManifestClass<UmbStoreBase> {
351
+ type: 'store';
315
352
  }
316
- interface MetaMenuItemTreeKind {
317
- treeAlias: string;
318
- label: string;
319
- icon: string;
320
- entityType?: string;
353
+ interface ManifestTreeStore extends ManifestClass<UmbTreeStore> {
354
+ type: 'treeStore';
355
+ }
356
+ interface ManifestItemStore extends ManifestClass<UmbItemStore> {
357
+ type: 'itemStore';
321
358
  }
322
359
 
323
360
  /**
@@ -341,7 +378,7 @@ interface MetaTree {
341
378
  repositoryAlias: string;
342
379
  }
343
380
 
344
- interface ManifestTreeItem extends ManifestElement {
381
+ interface ManifestTreeItem extends ManifestElement<UmbTreeItemExtensionElement> {
345
382
  type: 'treeItem';
346
383
  conditions: ConditionsTreeItem;
347
384
  }
@@ -375,61 +412,37 @@ interface MetaWorkspaceAction {
375
412
  label?: string;
376
413
  look?: InterfaceLook;
377
414
  color?: InterfaceColor;
378
- api: ClassConstructor<any>;
415
+ api: ClassConstructor<UmbWorkspaceAction>;
379
416
  }
380
417
  interface ConditionsWorkspaceAction {
381
418
  workspaces: Array<string>;
382
419
  }
383
420
 
384
- interface ManifestWorkspaceView extends ManifestWithView {
385
- type: 'workspaceView';
386
- meta: MetaWorkspaceView;
387
- conditions: ConditionsWorkspaceView;
421
+ interface UmbWorkspaceEditorViewExtensionElement extends HTMLElement {
422
+ manifest?: ManifestWorkspaceEditorView;
388
423
  }
389
- interface MetaWorkspaceView {
390
- pathname: string;
391
- label: string;
392
- icon: string;
424
+
425
+ interface ManifestWorkspaceEditorView extends ManifestWithView<UmbWorkspaceEditorViewExtensionElement> {
426
+ type: 'workspaceEditorView';
427
+ conditions: ConditionsWorkspaceView;
393
428
  }
394
429
  interface ConditionsWorkspaceView {
395
430
  workspaces: string[];
396
431
  }
397
432
 
398
- interface ManifestWorkspaceViewCollection extends ManifestBase, ManifestWithConditions<ConditionsEditorViewCollection> {
433
+ interface ManifestWorkspaceViewCollection extends ManifestWithView, ManifestWithConditions<ConditionsEditorViewCollection> {
399
434
  type: 'workspaceViewCollection';
400
435
  meta: MetaEditorViewCollection;
401
436
  }
402
- interface MetaEditorViewCollection {
403
- pathname: string;
404
- label: string;
405
- icon: string;
437
+ interface MetaEditorViewCollection extends MetaManifestWithView {
406
438
  entityType: string;
407
- storeAlias?: string;
408
- repositoryAlias?: string;
439
+ repositoryAlias: string;
409
440
  }
410
441
  interface ConditionsEditorViewCollection {
411
442
  workspaces: string[];
412
443
  }
413
444
 
414
- interface ManifestRepository extends ManifestClass {
415
- type: 'repository';
416
- }
417
-
418
- interface ManifestModal extends ManifestElement {
419
- type: 'modal';
420
- }
421
-
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';
430
- }
431
-
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;
445
+ 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;
433
446
  type ManifestStandardTypes = ManifestTypes['type'];
434
447
  type ManifestTypeMap = {
435
448
  [Manifest in ManifestTypes as Manifest['type']]: Manifest;
@@ -481,7 +494,10 @@ interface ManifestWithLoader<LoaderReturnType> extends ManifestBase {
481
494
  /**
482
495
  * The type of extension such as dashboard etc...
483
496
  */
484
- interface ManifestClass<T = unknown> extends ManifestWithLoader<object> {
497
+ interface ManifestClass<ClassType = unknown> extends ManifestWithLoader<{
498
+ default: ClassConstructor<ClassType>;
499
+ }> {
500
+ readonly CLASS_TYPE?: ClassType;
485
501
  /**
486
502
  * The file location of the javascript file to load
487
503
  * @TJS-required
@@ -494,12 +510,15 @@ interface ManifestClass<T = unknown> extends ManifestWithLoader<object> {
494
510
  /**
495
511
  * @TJS-ignore
496
512
  */
497
- class?: ClassConstructor<T>;
513
+ class?: ClassConstructor<ClassType>;
498
514
  }
499
- interface ManifestClassWithClassConstructor extends ManifestClass {
500
- class: ClassConstructor<unknown>;
515
+ interface ManifestClassWithClassConstructor<T = unknown> extends ManifestClass<T> {
516
+ class: ClassConstructor<T>;
501
517
  }
502
- interface ManifestElement extends ManifestWithLoader<object | HTMLElement> {
518
+ interface ManifestElement<ElementType extends HTMLElement = HTMLElement> extends ManifestWithLoader<{
519
+ default: ClassConstructor<ElementType>;
520
+ } | Omit<object, 'default'>> {
521
+ readonly ELEMENT_TYPE?: ElementType;
503
522
  /**
504
523
  * The file location of the javascript file to load
505
524
  *
@@ -516,7 +535,7 @@ interface ManifestElement extends ManifestWithLoader<object | HTMLElement> {
516
535
  */
517
536
  meta?: unknown;
518
537
  }
519
- interface ManifestWithView extends ManifestElement {
538
+ interface ManifestWithView<ElementType extends HTMLElement = HTMLElement> extends ManifestElement<ElementType> {
520
539
  meta: MetaManifestWithView;
521
540
  }
522
541
  interface MetaManifestWithView {
@@ -542,17 +561,39 @@ interface ManifestWithMeta extends ManifestBase {
542
561
  * You could have custom logic to decide which extensions to load/register by using extensionRegistry
543
562
  */
544
563
  interface ManifestEntrypoint extends ManifestBase {
545
- type: 'entrypoint';
564
+ type: 'entryPoint';
546
565
  /**
547
566
  * The file location of the javascript file to load in the backoffice
548
567
  */
549
568
  js: string;
550
569
  }
551
570
 
571
+ interface UmbDashboardExtensionElement extends HTMLElement {
572
+ manifest?: ManifestDashboard;
573
+ }
574
+
575
+ interface UmbModalExtensionElement<UmbModalData extends object = object, UmbModalResult = unknown> extends HTMLElement {
576
+ modalHandler?: UmbModalHandler<UmbModalData, UmbModalResult>;
577
+ data?: UmbModalData;
578
+ }
579
+
580
+ interface UmbPropertyEditorExtensionElement extends HTMLElement {
581
+ value: unknown;
582
+ config: DataTypePropertyPresentationModel[];
583
+ }
584
+
585
+ interface UmbSectionExtensionElement extends HTMLElement {
586
+ manifest?: ManifestSection;
587
+ }
588
+
589
+ interface UmbTreeItemExtensionElement extends HTMLElement {
590
+ item?: TreeItemPresentationModel;
591
+ }
592
+
552
593
  declare class UmbEntryPointExtensionInitializer {
553
594
  #private;
554
- constructor(rootHost: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry);
555
- instantiateEntryPoint(manifest: ManifestEntrypoint): void;
595
+ constructor(host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry);
596
+ instantiateEntryPoint(manifest: ManifestEntrypoint): Promise<void>;
556
597
  }
557
598
 
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 };
599
+ 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, ManifestWorkspaceEditorView, ManifestWorkspaceViewCollection, MetaCollectionView, MetaDashboard, MetaDashboardCollection, MetaEditor, MetaEditorViewCollection, MetaEntityAction, MetaEntityBulkAction, MetaExternalLoginProvider, MetaHeaderApp, MetaHeaderAppButtonKind, MetaHealthCheck, MetaManifestWithView, MetaMenuItem, MetaMenuItemTreeKind, MetaPackageView, MetaPropertyEditorModel, MetaPropertyEditorUI, MetaSection, MetaSectionSidebarAppMenuKind, MetaSectionView, MetaTree, MetaUserProfileApp, MetaWorkspaceAction, PropertyEditorConfig, PropertyEditorConfigDefaultData, PropertyEditorConfigProperty, SpecificManifestTypeOrManifestBase, UmbDashboardExtensionElement, UmbEntryPointExtensionInitializer, UmbExternalLoginProviderExtensionElement, UmbMenuItemExtensionElement, UmbModalExtensionElement, UmbPropertyEditorExtensionElement, UmbSectionExtensionElement, UmbSectionSidebarAppExtensionElement, UmbSectionViewExtensionElement, UmbTreeItemExtensionElement, UmbWorkspaceEditorViewExtensionElement };
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 };
package/modal.d.ts CHANGED
@@ -1,24 +1,24 @@
1
1
  import * as rxjs from 'rxjs';
2
2
  import { Observable } from 'rxjs';
3
- import * as lit_html from 'lit-html';
4
3
  import * as lit from 'lit';
5
4
  import { LitElement, TemplateResult } from 'lit';
5
+ import * as lit_html from 'lit-html';
6
6
  import { UUIModalDialogElement, UUIModalSidebarElement, UUIModalSidebarSize } from '@umbraco-ui/uui';
7
7
  import { UmbControllerHostElement, UmbControllerInterface } from '@umbraco-cms/backoffice/controller';
8
8
  import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
9
9
  import { Params } from '@umbraco-cms/backoffice/router';
10
10
  import { UmbModalToken as UmbModalToken$1, UmbModalConfig as UmbModalConfig$1, UmbPickerModalData as UmbPickerModalData$1 } from '@umbraco-cms/backoffice/modal';
11
- import { LanguageResponseModel, FolderReponseModel } from '@umbraco-cms/backoffice/backend-api';
11
+ import { LanguageResponseModel, UserResponseModel, FolderReponseModel } from '@umbraco-cms/backoffice/backend-api';
12
12
  import { UserDetails } from '@umbraco-cms/backoffice/models';
13
13
 
14
14
  declare class UmbSearchModalElement extends LitElement {
15
15
  #private;
16
- static styles: lit.CSSResult[];
17
16
  private _input;
18
17
  private _search;
19
18
  private _groups;
20
19
  connectedCallback(): void;
21
20
  render(): lit_html.TemplateResult<1>;
21
+ static styles: lit.CSSResult[];
22
22
  }
23
23
 
24
24
  declare global {
@@ -267,8 +267,8 @@ interface UmbExportDictionaryModalResult {
267
267
  declare const UMB_EXPORT_DICTIONARY_MODAL: UmbModalToken$1<UmbExportDictionaryModalData, UmbExportDictionaryModalResult>;
268
268
 
269
269
  interface UmbIconPickerModalData {
270
- multiple: boolean;
271
- selection: string[];
270
+ color: string | undefined;
271
+ icon: string | undefined;
272
272
  }
273
273
  interface UmbIconPickerModalResult {
274
274
  color: string | undefined;
@@ -384,7 +384,11 @@ declare const UMB_TEMPLATE_PICKER_MODAL: UmbModalToken$1<UmbTemplatePickerModalD
384
384
 
385
385
  declare const UMB_USER_GROUP_PICKER_MODAL: UmbModalToken$1<UmbPickerModalData$1<UserDetails>, unknown>;
386
386
 
387
- declare const UMB_USER_PICKER_MODAL: UmbModalToken$1<UmbPickerModalData$1<UserDetails>, unknown>;
387
+ type UmbUserPickerModalData = UmbPickerModalData$1<UserResponseModel>;
388
+ interface UmbUserPickerModalResult {
389
+ selection: Array<string>;
390
+ }
391
+ declare const UMB_USER_PICKER_MODAL: UmbModalToken$1<UmbUserPickerModalData, UmbUserPickerModalResult>;
388
392
 
389
393
  interface UmbFolderModalData {
390
394
  repositoryAlias: string;
@@ -407,10 +411,10 @@ declare const UMB_DATA_TYPE_PICKER_MODAL: UmbModalToken$1<UmbDataTypePickerModal
407
411
  interface UmbPickerModalData<T> {
408
412
  multiple: boolean;
409
413
  selection: Array<string>;
410
- filter?: (language: T) => boolean;
414
+ filter?: (item: T) => boolean;
411
415
  }
412
- interface UmbPickerModalResult<T> {
416
+ interface UmbPickerModalResult {
413
417
  selection: Array<string>;
414
418
  }
415
419
 
416
- export { OEmbedResult, OEmbedStatus, UMB_ALLOWED_DOCUMENT_TYPES_MODAL, UMB_CHANGE_PASSWORD_MODAL, UMB_CONFIRM_MODAL, UMB_CONTEXT_DEBUGGER_MODAL, UMB_CREATE_DICTIONARY_MODAL, UMB_CREATE_USER_MODAL, UMB_CURRENT_USER_MODAL, UMB_DATA_TYPE_PICKER_MODAL, UMB_DOCUMENT_PICKER_MODAL, UMB_DOCUMENT_TYPE_PICKER_MODAL, UMB_EMBEDDED_MEDIA_MODAL, UMB_EXAMINE_FIELDS_SETTINGS_MODAL, UMB_EXPORT_DICTIONARY_MODAL, UMB_FOLDER_MODAL, UMB_ICON_PICKER_MODAL, UMB_IMPORT_DICTIONARY_MODAL, UMB_INVITE_USER_MODAL, UMB_LANGUAGE_PICKER_MODAL, UMB_LINK_PICKER_MODAL, UMB_MEDIA_PICKER_MODAL, UMB_MODAL_CONTEXT_TOKEN, UMB_PROPERTY_EDITOR_UI_PICKER_MODAL, UMB_PROPERTY_SETTINGS_MODAL, UMB_SEARCH_MODAL, UMB_SECTION_PICKER_MODAL, UMB_TEMPLATE_MODAL, UMB_TEMPLATE_PICKER_MODAL, UMB_USER_GROUP_PICKER_MODAL, UMB_USER_PICKER_MODAL, UmbAllowedDocumentTypesModalData, UmbAllowedDocumentTypesModalResult, UmbChangePasswordModalData, UmbConfirmModalData, UmbConfirmModalResult, UmbContextDebuggerModalData, UmbCreateDictionaryModalData, UmbCreateDictionaryModalResult, UmbCreateDocumentModalResultData, UmbDataTypePickerModalData, UmbDataTypePickerModalResult, UmbDocumentPickerModalData, UmbDocumentPickerModalResult, UmbDocumentTypePickerModalData, UmbDocumentTypePickerModalResult, UmbEmbeddedMediaModalData, UmbEmbeddedMediaModalResult, UmbExamineFieldsSettingsModalData, UmbExportDictionaryModalData, UmbExportDictionaryModalResult, UmbFolderModalData, UmbFolderModalResult, UmbIconPickerModalData, UmbIconPickerModalResult, UmbImportDictionaryModalData, UmbImportDictionaryModalResult, UmbLanguagePickerModalData, UmbLanguagePickerModalResult, UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData, UmbLinkPickerModalResult, UmbMediaPickerModalData, UmbMediaPickerModalResult, UmbModalConfig, UmbModalContext, UmbModalHandler, UmbModalHandlerClass, UmbModalRouteBuilder, UmbModalRouteRegistration, UmbModalRouteRegistrationController, UmbModalToken, UmbModalType, UmbPickerModalData, UmbPickerModalResult, UmbPropertyEditorUIPickerModalData, UmbPropertyEditorUIPickerModalResult, UmbPropertySettingsModalResult, UmbSectionPickerModalData, UmbTemplateModalData, UmbTemplateModalResult, UmbTemplatePickerModalData, UmbTemplatePickerModalResult };
420
+ export { OEmbedResult, OEmbedStatus, UMB_ALLOWED_DOCUMENT_TYPES_MODAL, UMB_CHANGE_PASSWORD_MODAL, UMB_CONFIRM_MODAL, UMB_CONTEXT_DEBUGGER_MODAL, UMB_CREATE_DICTIONARY_MODAL, UMB_CREATE_USER_MODAL, UMB_CURRENT_USER_MODAL, UMB_DATA_TYPE_PICKER_MODAL, UMB_DOCUMENT_PICKER_MODAL, UMB_DOCUMENT_TYPE_PICKER_MODAL, UMB_EMBEDDED_MEDIA_MODAL, UMB_EXAMINE_FIELDS_SETTINGS_MODAL, UMB_EXPORT_DICTIONARY_MODAL, UMB_FOLDER_MODAL, UMB_ICON_PICKER_MODAL, UMB_IMPORT_DICTIONARY_MODAL, UMB_INVITE_USER_MODAL, UMB_LANGUAGE_PICKER_MODAL, UMB_LINK_PICKER_MODAL, UMB_MEDIA_PICKER_MODAL, UMB_MODAL_CONTEXT_TOKEN, UMB_PROPERTY_EDITOR_UI_PICKER_MODAL, UMB_PROPERTY_SETTINGS_MODAL, UMB_SEARCH_MODAL, UMB_SECTION_PICKER_MODAL, UMB_TEMPLATE_MODAL, UMB_TEMPLATE_PICKER_MODAL, UMB_USER_GROUP_PICKER_MODAL, UMB_USER_PICKER_MODAL, UmbAllowedDocumentTypesModalData, UmbAllowedDocumentTypesModalResult, UmbChangePasswordModalData, UmbConfirmModalData, UmbConfirmModalResult, UmbContextDebuggerModalData, UmbCreateDictionaryModalData, UmbCreateDictionaryModalResult, UmbCreateDocumentModalResultData, UmbDataTypePickerModalData, UmbDataTypePickerModalResult, UmbDocumentPickerModalData, UmbDocumentPickerModalResult, UmbDocumentTypePickerModalData, UmbDocumentTypePickerModalResult, UmbEmbeddedMediaModalData, UmbEmbeddedMediaModalResult, UmbExamineFieldsSettingsModalData, UmbExportDictionaryModalData, UmbExportDictionaryModalResult, UmbFolderModalData, UmbFolderModalResult, UmbIconPickerModalData, UmbIconPickerModalResult, UmbImportDictionaryModalData, UmbImportDictionaryModalResult, UmbLanguagePickerModalData, UmbLanguagePickerModalResult, UmbLinkPickerConfig, UmbLinkPickerLink, UmbLinkPickerModalData, UmbLinkPickerModalResult, UmbMediaPickerModalData, UmbMediaPickerModalResult, UmbModalConfig, UmbModalContext, UmbModalHandler, UmbModalHandlerClass, UmbModalRouteBuilder, UmbModalRouteRegistration, UmbModalRouteRegistrationController, UmbModalToken, UmbModalType, UmbPickerModalData, UmbPickerModalResult, UmbPropertyEditorUIPickerModalData, UmbPropertyEditorUIPickerModalResult, UmbPropertySettingsModalResult, UmbSectionPickerModalData, UmbTemplateModalData, UmbTemplateModalResult, UmbTemplatePickerModalData, UmbTemplatePickerModalResult, UmbUserPickerModalData, UmbUserPickerModalResult };
package/models.d.ts CHANGED
@@ -76,5 +76,10 @@ type PackageManifestResponse = UmbPackage[];
76
76
  type UmbPackageWithMigrationStatus = UmbPackage & {
77
77
  hasPendingMigrations: boolean;
78
78
  };
79
+ interface UmbFilterModel {
80
+ skip?: number;
81
+ take?: number;
82
+ filter?: string;
83
+ }
79
84
 
80
- export { BaseEntity, ClassConstructor, DocumentBlueprintDetails, Entity, HTMLElementConstructor, MediaTypeDetails, MemberDetails, MemberGroupDetails, MemberTypeDetails, PackageManifestResponse, SwatchDetails, UmbPackage, UmbPackageWithMigrationStatus, UserDetails, UserEntity, UserGroupDetails, UserGroupEntity, UserStatus };
85
+ export { BaseEntity, ClassConstructor, DocumentBlueprintDetails, Entity, HTMLElementConstructor, MediaTypeDetails, MemberDetails, MemberGroupDetails, MemberTypeDetails, PackageManifestResponse, SwatchDetails, UmbFilterModel, UmbPackage, UmbPackageWithMigrationStatus, UserDetails, UserEntity, UserGroupDetails, UserGroupEntity, UserStatus };
@@ -261,6 +261,18 @@ declare function createObservablePart<R, T>(source$: Observable<T>, mappingFunct
261
261
  */
262
262
  declare function appendToFrozenArray<T>(data: T[], entry: T, getUniqueMethod?: (entry: T) => unknown): T[];
263
263
 
264
+ /**
265
+ * @export
266
+ * @method filterFrozenArray
267
+ * @param {Array<T>} data - RxJS Subject to use for this Observable.
268
+ * @param {(entry: T) => boolean} filterMethod - Method to filter the array.
269
+ * @description - Creates a RxJS Observable from RxJS Subject.
270
+ * @example <caption>Example remove an entry of 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>
271
+ * const newDataSet = filterFrozenArray(mySubject.getValue(), x => x.id !== "myKey");
272
+ * mySubject.next(newDataSet);
273
+ */
274
+ declare function filterFrozenArray<T>(data: T[], filterMethod: (entry: T) => boolean): T[];
275
+
264
276
  /**
265
277
  * @export
266
278
  * @method partialUpdateFrozenArray
@@ -275,4 +287,4 @@ declare function appendToFrozenArray<T>(data: T[], entry: T, getUniqueMethod?: (
275
287
  */
276
288
  declare function partialUpdateFrozenArray<T>(data: T[], partialEntry: Partial<T>, findMethod: (entry: T) => boolean): T[];
277
289
 
278
- export { MappingFunction, UmbArrayState, UmbBasicState, UmbBooleanState, UmbClassState, UmbDeepState, UmbNumberState, UmbObjectState, UmbObserver, UmbObserverController, UmbStringState, appendToFrozenArray, createObservablePart, partialUpdateFrozenArray };
290
+ export { MappingFunction, UmbArrayState, UmbBasicState, UmbBooleanState, UmbClassState, UmbDeepState, UmbNumberState, UmbObjectState, UmbObserver, UmbObserverController, UmbStringState, appendToFrozenArray, createObservablePart, filterFrozenArray, partialUpdateFrozenArray };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umbraco-cms/backoffice",
3
- "version": "1.0.0-next.b82f3242",
3
+ "version": "1.0.0-next.ba26bec7",
4
4
  "license": "MIT",
5
5
  "keywords": [
6
6
  "umbraco",
package/repository.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ProblemDetailsModel, FolderReponseModel, CreateFolderRequestModel, UpdateFolderReponseModel, FolderModelBaseModel, ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api';
1
+ import { ApiError, CancelError, FolderReponseModel, CreateFolderRequestModel, UpdateFolderReponseModel, ProblemDetailsModel, FolderModelBaseModel, ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api';
2
2
  import { DataSourceResponse as DataSourceResponse$1, UmbDataSourceErrorResponse as UmbDataSourceErrorResponse$1 } from '@umbraco-cms/backoffice/repository';
3
3
  import { Observable } from 'rxjs';
4
4
 
@@ -6,13 +6,13 @@ interface DataSourceResponse<T = undefined> extends UmbDataSourceErrorResponse {
6
6
  data?: T;
7
7
  }
8
8
  interface UmbDataSourceErrorResponse {
9
- error?: ProblemDetailsModel;
9
+ error?: ApiError | CancelError;
10
10
  }
11
11
 
12
- interface UmbDataSource<CreateRequestType, UpdateRequestType, ResponseType> {
12
+ interface UmbDataSource<CreateRequestType, CreateResponseType, UpdateRequestType, ResponseType> {
13
13
  createScaffold(parentId: string | null): Promise<DataSourceResponse$1<CreateRequestType>>;
14
14
  get(unique: string): Promise<DataSourceResponse$1<ResponseType>>;
15
- insert(data: CreateRequestType): Promise<any>;
15
+ insert(data: CreateRequestType): Promise<DataSourceResponse$1<CreateResponseType>>;
16
16
  update(unique: string, data: UpdateRequestType): Promise<DataSourceResponse$1<ResponseType>>;
17
17
  delete(unique: string): Promise<DataSourceResponse$1>;
18
18
  }
@@ -43,20 +43,6 @@ interface UmbCopyDataSource {
43
43
  copy(unique: string, targetUnique: string): Promise<DataSourceResponse$1<string>>;
44
44
  }
45
45
 
46
- interface UmbRepositoryErrorResponse {
47
- error?: ProblemDetailsModel;
48
- }
49
- interface UmbRepositoryResponse<T> extends UmbRepositoryErrorResponse {
50
- data?: T;
51
- }
52
- interface UmbDetailRepository<CreateRequestType = any, UpdateRequestType = any, ResponseType = any> {
53
- createScaffold(parentId: string | null): Promise<UmbRepositoryResponse<CreateRequestType>>;
54
- requestById(id: string): Promise<UmbRepositoryResponse<ResponseType>>;
55
- create(data: CreateRequestType): Promise<UmbRepositoryErrorResponse>;
56
- save(id: string, data: UpdateRequestType): Promise<UmbRepositoryErrorResponse>;
57
- delete(id: string): Promise<UmbRepositoryErrorResponse>;
58
- }
59
-
60
46
  interface UmbPagedData<T> {
61
47
  total: number;
62
48
  items: Array<T>;
@@ -82,6 +68,26 @@ interface UmbTreeRepository<ItemType = any, PagedItemType = UmbPagedData<ItemTyp
82
68
  itemsLegacy?: (uniques: string[]) => Promise<Observable<ItemType[]>>;
83
69
  }
84
70
 
71
+ interface UmbCollectionDataSource<ItemType = any, PagedItemType = UmbPagedData<ItemType>> {
72
+ getCollection(): Promise<DataSourceResponse<PagedItemType>>;
73
+ filterCollection(filter: any): Promise<DataSourceResponse<PagedItemType>>;
74
+ }
75
+
76
+ interface UmbRepositoryErrorResponse {
77
+ error?: ProblemDetailsModel;
78
+ }
79
+ interface UmbRepositoryResponse<T> extends UmbRepositoryErrorResponse {
80
+ data?: T;
81
+ }
82
+ interface UmbDetailRepository<CreateRequestType = any, CreateResponseType = any, UpdateRequestType = any, ResponseType = any> {
83
+ createScaffold(parentId: string | null): Promise<UmbRepositoryResponse<CreateRequestType>>;
84
+ requestById(id: string): Promise<UmbRepositoryResponse<ResponseType>>;
85
+ byId(id: string): Promise<Observable<ResponseType>>;
86
+ create(data: CreateRequestType): Promise<UmbRepositoryResponse<CreateResponseType>>;
87
+ save(id: string, data: UpdateRequestType): Promise<UmbRepositoryErrorResponse>;
88
+ delete(id: string): Promise<UmbRepositoryErrorResponse>;
89
+ }
90
+
85
91
  interface UmbFolderRepository {
86
92
  createFolderScaffold(parentId: string | null): Promise<{
87
93
  data?: FolderReponseModel;
@@ -104,6 +110,10 @@ interface UmbFolderRepository {
104
110
  }>;
105
111
  }
106
112
 
113
+ interface UmbCollectionRepository {
114
+ requestCollection(filter?: any): Promise<any>;
115
+ }
116
+
107
117
  interface UmbItemRepository<ItemType extends ItemResponseModelBaseModel> {
108
118
  requestItems: (uniques: string[]) => Promise<{
109
119
  data?: Array<ItemType> | undefined;
@@ -121,4 +131,4 @@ interface UmbCopyRepository {
121
131
  copy(unique: string, targetUnique: string): Promise<UmbRepositoryResponse<string>>;
122
132
  }
123
133
 
124
- export { DataSourceResponse, UmbCopyDataSource, UmbCopyRepository, UmbDataSource, UmbDataSourceErrorResponse, UmbDetailRepository, UmbFolderDataSource, UmbFolderRepository, UmbItemDataSource, UmbItemRepository, UmbMoveDataSource, UmbMoveRepository, UmbPagedData, UmbRepositoryErrorResponse, UmbRepositoryResponse, UmbTreeDataSource, UmbTreeRepository };
134
+ export { DataSourceResponse, UmbCollectionDataSource, UmbCollectionRepository, UmbCopyDataSource, UmbCopyRepository, UmbDataSource, UmbDataSourceErrorResponse, UmbDetailRepository, UmbFolderDataSource, UmbFolderRepository, UmbItemDataSource, UmbItemRepository, UmbMoveDataSource, UmbMoveRepository, UmbPagedData, UmbRepositoryErrorResponse, UmbRepositoryResponse, UmbTreeDataSource, UmbTreeRepository };