render method on extension slot

This commit is contained in:
Niels Lyngsø
2023-01-11 20:07:16 +01:00
parent b249caf1ec
commit 2dea9896f7

View File

@@ -1,4 +1,4 @@
import { nothing } from 'lit';
import { nothing, TemplateResult } from 'lit';
import { customElement, property, state } from 'lit/decorators.js';
import { map } from 'rxjs';
import { repeat } from 'lit/directives/repeat.js';
@@ -31,6 +31,9 @@ export class UmbExtensionSlotElement extends UmbLitElement {
@property({ type: String, attribute: 'default-element' })
public defaultElement = '';
@property()
public renderMethod: (manifest: InitializedExtensionItem) => TemplateResult<1> | HTMLElement | null = (manifest) => manifest.component;
connectedCallback(): void {
super.connectedCallback();
this._observeExtensions();
@@ -87,7 +90,7 @@ export class UmbExtensionSlotElement extends UmbLitElement {
return repeat(
this._extensions,
(ext) => ext.alias,
(ext) => ext.component || nothing
(ext) => this.renderMethod(ext) || nothing
);
}
}