fix lib imports

This commit is contained in:
Niels Lyngsø
2023-08-03 10:03:49 +02:00
parent 9e7b0d91a9
commit 1d6a470bb6
8 changed files with 49 additions and 24 deletions

View File

@@ -2,7 +2,7 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
import { UmbBasicState, UmbStringState } from '@umbraco-cms/backoffice/observable-api';
import { UmbExtensionManifestController, UmbExtensionsManifestController } from '@umbraco-cms/backoffice/extension-api';
import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { ManifestSection } from '@umbraco-cms/backoffice/extension-registry';
import { ManifestSection, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
export class UmbBackofficeContext {
#activeSectionAlias = new UmbStringState(undefined);
@@ -13,7 +13,7 @@ export class UmbBackofficeContext {
public readonly allowedSections = this.#allowedSections.asObservable();
constructor(host: UmbControllerHost) {
new UmbExtensionsManifestController(host, 'section', null, (sections) => {
new UmbExtensionsManifestController(host, umbExtensionsRegistry, 'section', null, (sections) => {
this.#allowedSections.next([...sections]);
});
}

View File

@@ -24,13 +24,15 @@ class UmbTestExtensionController extends UmbBaseExtensionController {
}
}
const testExtensionRegistry = new UmbExtensionRegistry<ManifestWithDynamicConditions | ManifestCondition>();
type myTestManifests = ManifestWithDynamicConditions | ManifestCondition;
const testExtensionRegistry = new UmbExtensionRegistry<myTestManifests>();
type PermittedControllerType = UmbTestExtensionController & {
manifest: Required<Pick<UmbTestExtensionController, 'manifest'>>;
};
class UmbTestExtensionsController extends UmbBaseExtensionsController<
myTestManifests,
'extension-type',
ManifestWithDynamicConditions,
UmbTestExtensionController,

View File

@@ -1,12 +1,11 @@
import { map } from '@umbraco-cms/backoffice/external/rxjs';
import {
import type {
ManifestBase,
ManifestTypeMap,
SpecificManifestTypeOrManifestBase,
UmbBaseExtensionController,
UmbExtensionRegistry,
} from '@umbraco-cms/backoffice/extension-api';
import { ManifestTypes } from '@umbraco-cms/backoffice/extension-registry';
import { UmbBaseController, UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export type PermittedControllerType<ControllerType extends { manifest: any }> = ControllerType & {
@@ -16,6 +15,7 @@ export type PermittedControllerType<ControllerType extends { manifest: any }> =
/**
*/
export abstract class UmbBaseExtensionsController<
ManifestTypes extends ManifestBase,
ManifestTypeName extends keyof ManifestTypeMap<ManifestTypes> | string,
ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ManifestTypeName>,
ControllerType extends UmbBaseExtensionController<ManifestType> = UmbBaseExtensionController<ManifestType>,

View File

@@ -4,19 +4,27 @@ import {
type ManifestTypeMap,
type SpecificManifestTypeOrManifestBase,
UmbExtensionElementController,
type UmbExtensionRegistry,
} from '@umbraco-cms/backoffice/extension-api';
import { type ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
/**
*/
export class UmbExtensionsElementController<
ManifestTypes extends ManifestBase,
ManifestTypeName extends keyof ManifestTypeMap<ManifestTypes> | string = string,
ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ManifestTypeName>,
ControllerType extends UmbExtensionElementController<ManifestType> = UmbExtensionElementController<ManifestType>,
MyPermittedControllerType extends ControllerType = PermittedControllerType<ControllerType>
> extends UmbBaseExtensionsController<ManifestTypeName, ManifestType, ControllerType, MyPermittedControllerType> {
> extends UmbBaseExtensionsController<
ManifestTypes,
ManifestTypeName,
ManifestType,
ControllerType,
MyPermittedControllerType
> {
//
#extensionRegistry;
private _defaultElement?: string;
#props?: Record<string, unknown>;
@@ -32,12 +40,14 @@ export class UmbExtensionsElementController<
constructor(
host: UmbControllerHost,
extensionRegistry: UmbExtensionRegistry<ManifestTypes>,
type: ManifestTypeName,
filter: undefined | null | ((manifest: ManifestType) => boolean),
onChange: (permittedManifests: Array<MyPermittedControllerType>, controller: MyPermittedControllerType) => void,
defaultElement?: string
) {
super(host, umbExtensionsRegistry, type, filter, onChange);
super(host, extensionRegistry, type, filter, onChange);
this.#extensionRegistry = extensionRegistry;
this._defaultElement = defaultElement;
this._init();
}
@@ -45,7 +55,7 @@ export class UmbExtensionsElementController<
protected _createController(manifest: ManifestType) {
const extController = new UmbExtensionElementController<ManifestType>(
this,
umbExtensionsRegistry,
this.#extensionRegistry,
manifest.alias,
this._extensionChanged,
this._defaultElement

View File

@@ -4,32 +4,44 @@ import {
ManifestBase,
ManifestTypeMap,
SpecificManifestTypeOrManifestBase,
UmbExtensionRegistry,
} from '@umbraco-cms/backoffice/extension-api';
import { ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
/**
*/
export class UmbExtensionsManifestController<
ManifestTypes extends ManifestBase,
ManifestTypeName extends keyof ManifestTypeMap<ManifestTypes> | string,
ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase<ManifestTypes, ManifestTypeName>,
ControllerType extends UmbExtensionManifestController<ManifestType> = UmbExtensionManifestController<ManifestType>,
MyPermittedControllerType extends ControllerType = PermittedControllerType<ControllerType>
> extends UmbBaseExtensionsController<ManifestTypeName, ManifestType, ControllerType, MyPermittedControllerType> {
> extends UmbBaseExtensionsController<
ManifestTypes,
ManifestTypeName,
ManifestType,
ControllerType,
MyPermittedControllerType
> {
//
#extensionRegistry: UmbExtensionRegistry<ManifestTypes>;
constructor(
host: UmbControllerHost,
extensionRegistry: UmbExtensionRegistry<ManifestTypes>,
type: ManifestTypeName,
filter: null | ((manifest: ManifestType) => boolean),
onChange: (permittedManifests: Array<MyPermittedControllerType>, controller: MyPermittedControllerType) => void
) {
super(host, umbExtensionsRegistry, type, filter, onChange);
super(host, extensionRegistry, type, filter, onChange);
this.#extensionRegistry = extensionRegistry;
this._init();
}
protected _createController(manifest: ManifestType) {
return new UmbExtensionManifestController<ManifestType>(
this,
umbExtensionsRegistry,
this.#extensionRegistry,
manifest.alias,
this._extensionChanged
) as ControllerType;

View File

@@ -1,5 +1,9 @@
import { type ManifestTypes, umbExtensionsRegistry } from '../../extension-registry/index.js';
import { css, repeat, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
import { UmbExtensionElementController, UmbExtensionsElementController } from '@umbraco-cms/backoffice/extension-api';
import {
type UmbExtensionElementController,
UmbExtensionsElementController,
} from '@umbraco-cms/backoffice/extension-api';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
export type InitializedExtension = { alias: string; weight: number; component: HTMLElement | null };
@@ -17,7 +21,7 @@ export type InitializedExtension = { alias: string; weight: number; component: H
// TODO: Make property that reveals the amount of displayed/permitted extensions.
@customElement('umb-extension-slot')
export class UmbExtensionSlotElement extends UmbLitElement {
#extensionsController?: UmbExtensionsElementController;
#extensionsController?: UmbExtensionsElementController<ManifestTypes>;
@state()
private _permittedExts: Array<UmbExtensionElementController> = [];
@@ -51,17 +55,12 @@ export class UmbExtensionSlotElement extends UmbLitElement {
private _observeExtensions() {
this.#extensionsController?.destroy();
if (this.type === 'treeItem') {
console.log('observe', this.type, this.defaultElement);
}
this.#extensionsController = new UmbExtensionsElementController(
this,
umbExtensionsRegistry,
this.type,
this.filter,
(extensionControllers) => {
if (extensionControllers[0].manifest?.type === 'treeItem') {
console.log('extensionControllers', extensionControllers);
}
this._permittedExts = extensionControllers;
},
this.defaultElement

View File

@@ -7,6 +7,7 @@ import {
ManifestSectionSidebarApp,
ManifestSectionSidebarAppMenuKind,
UmbSectionExtensionElement,
umbExtensionsRegistry,
} from '@umbraco-cms/backoffice/extension-registry';
import type { UmbRoute } from '@umbraco-cms/backoffice/router';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
@@ -44,7 +45,7 @@ export class UmbSectionDefaultElement extends UmbLitElement implements UmbSectio
constructor() {
super();
new UmbExtensionsElementController(this, 'sectionSidebarApp', null, (sidebarApps) => {
new UmbExtensionsElementController(this, umbExtensionsRegistry, 'sectionSidebarApp', null, (sidebarApps) => {
const oldValue = this._sidebarApps;
this._sidebarApps = sidebarApps;
this.requestUpdate('_sidebarApps', oldValue);

View File

@@ -6,6 +6,7 @@ import {
ManifestSectionView,
UmbDashboardExtensionElement,
UmbSectionViewExtensionElement,
umbExtensionsRegistry,
} from '@umbraco-cms/backoffice/extension-registry';
import { UmbExtensionsManifestController, createExtensionElement } from '@umbraco-cms/backoffice/extension-api';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
@@ -35,12 +36,12 @@ export class UmbSectionMainViewElement extends UmbLitElement {
constructor() {
super();
new UmbExtensionsManifestController(this, 'dashboard', null, (dashboards) => {
new UmbExtensionsManifestController(this, umbExtensionsRegistry, 'dashboard', null, (dashboards) => {
this._dashboards = dashboards.map((dashboard) => dashboard.manifest);
this.#createRoutes();
});
new UmbExtensionsManifestController(this, 'sectionView', null, (views) => {
new UmbExtensionsManifestController(this, umbExtensionsRegistry, 'sectionView', null, (views) => {
this._views = views.map((view) => view.manifest);
this.#createRoutes();
});