remove lit dependencies

This commit is contained in:
Mads Rasmussen
2023-05-12 17:15:29 +02:00
parent 9da9f4d272
commit a3ba1053cf
3 changed files with 35 additions and 24 deletions

View File

@@ -56,19 +56,27 @@ customElements.define('umb-storybook', UmbStoryBookElement);
const storybookProvider = (story) => html` <umb-storybook>${story()}</umb-storybook> `;
const dataTypeStoreProvider = (story) => html`
<umb-controller-host-test .create=${(host) => new UmbDataTypeStore(host)}>${story()}</umb-controller-host-test>
<umb-controller-host-initializer .create=${(host) => new UmbDataTypeStore(host)}
>${story()}</umb-controller-host-initializer
>
`;
const documentTypeStoreProvider = (story) => html`
<umb-controller-host-test .create=${(host) => new UmbDocumentTypeStore(host)}>${story()}</umb-controller-host-test>
<umb-controller-host-initializer .create=${(host) => new UmbDocumentTypeStore(host)}
>${story()}</umb-controller-host-initializer
>
`;
const documentStoreProvider = (story) => html`
<umb-controller-host-test .create=${(host) => new UmbDocumentStore(host)}>${story()}</umb-controller-host-test>
<umb-controller-host-initializer .create=${(host) => new UmbDocumentStore(host)}
>${story()}</umb-controller-host-initializer
>
`;
const documentTreeStoreProvider = (story) => html`
<umb-controller-host-test .create=${(host) => new UmbDocumentTreeStore(host)}>${story()}</umb-controller-host-test>
<umb-controller-host-initializer .create=${(host) => new UmbDocumentTreeStore(host)}
>${story()}</umb-controller-host-initializer
>
`;
// Initialize MSW

View File

@@ -1,31 +1,34 @@
import { html } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import { UmbControllerHostElement, UmbControllerHostMixin } from '@umbraco-cms/backoffice/controller';
@customElement('umb-controller-host-test')
export class UmbControllerHostTestElement extends UmbLitElement {
export class UmbControllerHostInitializerElement
extends UmbControllerHostMixin(HTMLElement)
implements UmbControllerHostElement
{
/**
* A way to initialize controllers.
* @required
*/
@property({ type: Object, attribute: false })
create?: (host: UmbControllerHostElement) => void;
constructor() {
super();
this.attachShadow({ mode: 'open' });
const slot = document.createElement('slot');
this.shadowRoot?.appendChild(slot);
}
connectedCallback() {
super.connectedCallback();
if (this.create) {
this.create(this);
}
}
render() {
return html`<slot></slot>`;
}
}
customElements.define('umb-controller-host-initializer', UmbControllerHostInitializerElement);
declare global {
interface HTMLElementTagNameMap {
'umb-controller-host-test': UmbControllerHostTestElement;
'umb-controller-host-initializer': UmbControllerHostInitializerElement;
}
}

View File

@@ -1,11 +1,11 @@
import { expect, fixture, html } from '@open-wc/testing';
import { customElement } from 'lit/decorators.js';
import { UmbControllerHostTestElement } from './controller-host-test.element';
import { UmbControllerHostInitializerElement } from './controller-host-test.element';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api';
import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
@customElement('umb-controller-host-test-consumer')
@customElement('umb-controller-host-initializer-consumer')
export class UmbControllerHostTestConsumerElement extends UmbLitElement {
public value: string | null = null;
constructor() {
@@ -17,25 +17,25 @@ export class UmbControllerHostTestConsumerElement extends UmbLitElement {
}
describe('UmbControllerHostTestElement', () => {
let element: UmbControllerHostTestElement;
let element: UmbControllerHostInitializerElement;
let consumer: UmbControllerHostTestConsumerElement;
const contextValue = 'test-value';
beforeEach(async () => {
element = await fixture(
html` <umb-controller-host-test
html` <umb-controller-host-initializer
.create=${(host: UmbControllerHostElement) =>
new UmbContextProviderController(host, 'my-test-context-alias', contextValue)}>
<umb-controller-host-test-consumer></umb-controller-host-test-consumer>
</umb-controller-host-test>`
<umb-controller-host-initializer-consumer></umb-controller-host-initializer-consumer>
</umb-controller-host-initializer>`
);
consumer = element.getElementsByTagName(
'umb-controller-host-test-consumer'
'umb-controller-host-initializer-consumer'
)[0] as UmbControllerHostTestConsumerElement;
});
it('element is defined with its own instance', () => {
expect(element).to.be.instanceOf(UmbControllerHostTestElement);
expect(element).to.be.instanceOf(UmbControllerHostInitializerElement);
});
it('provides the context', () => {