minor refactor
This commit is contained in:
@@ -7,6 +7,7 @@ import type {
|
||||
} from '@umbraco-cms/backoffice/extension-api';
|
||||
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
import { createObservablePart } from '@umbraco-cms/backoffice/observable-api';
|
||||
|
||||
export type PermittedControllerType<ControllerType extends { manifest: any }> = ControllerType & {
|
||||
manifest: Required<Pick<ControllerType, 'manifest'>>;
|
||||
@@ -62,7 +63,7 @@ export abstract class UmbBaseExtensionsInitializer<
|
||||
? this.#extensionRegistry.byTypes<ManifestType>(this.#type as string[])
|
||||
: this.#extensionRegistry.byType<ManifestTypeName, ManifestType>(this.#type as ManifestTypeName);
|
||||
if (this.#filter) {
|
||||
source = source.pipe(map((extensions: Array<ManifestType>) => extensions.filter(this.#filter!)));
|
||||
source = createObservablePart(source, (extensions: Array<ManifestType>) => extensions.filter(this.#filter!));
|
||||
}
|
||||
this.observe(source, this.#gotManifests, '_observeManifests') as any;
|
||||
}
|
||||
@@ -89,10 +90,6 @@ export abstract class UmbBaseExtensionsInitializer<
|
||||
return true;
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// May change this into a Extensions Manager Controller???
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
manifests.forEach((manifest) => {
|
||||
const existing = this._extensions.find((x) => x.alias === manifest.alias);
|
||||
if (!existing) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { createExtensionElement } from '../functions/create-extension-element.function.js';
|
||||
import type { UmbExtensionRegistry } from '../registry/extension.registry.js';
|
||||
import type { ManifestCondition, ManifestWithDynamicConditions } from '../types/index.js';
|
||||
import type { ManifestCondition, ManifestElement, ManifestWithDynamicConditions } from '../types/index.js';
|
||||
import { UmbBaseExtensionInitializer } from './base-extension-initializer.controller.js';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
|
||||
@@ -18,9 +18,11 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
export class UmbExtensionElementInitializer<
|
||||
ManifestType extends ManifestWithDynamicConditions = ManifestWithDynamicConditions,
|
||||
ControllerType extends UmbExtensionElementInitializer<ManifestType, any> = any,
|
||||
ExtensionInterface extends ManifestElement = ManifestType extends ManifestElement ? ManifestType : never,
|
||||
ExtensionElementInterface extends HTMLElement | undefined = ExtensionInterface['ELEMENT_TYPE'],
|
||||
> extends UmbBaseExtensionInitializer<ManifestType, ControllerType> {
|
||||
#defaultElement?: string;
|
||||
#component?: HTMLElement;
|
||||
#component?: ExtensionElementInterface;
|
||||
|
||||
/**
|
||||
* The component that is created for this extension.
|
||||
@@ -84,7 +86,7 @@ export class UmbExtensionElementInitializer<
|
||||
// We are not positive anymore, so we will back out of this creation.
|
||||
return false;
|
||||
}
|
||||
this.#component = newComponent;
|
||||
this.#component = newComponent as ExtensionElementInterface;
|
||||
if (this.#component) {
|
||||
this.#assignProperties();
|
||||
(this.#component as any).manifest = manifest;
|
||||
|
||||
Reference in New Issue
Block a user