import { html, css, LitElement } from "lit"; import { customElement, property } from "lit/decorators.js"; import { CounterModuleController, counterModuleStyles, counterModuleTemplate, } from "./counter"; import { headerModuleStyles, headerModuleTemplate } from "./header"; export const appModuleStyles = [ css` main { display: flex; flex-direction: column; } `, headerModuleStyles, counterModuleStyles, ]; export interface AppModuleProps { name: string; counter: CounterModuleController; } export function appModuleTemplate(props: AppModuleProps) { return html`
${headerModuleTemplate({ title: window.document.title, })} ${counterModuleTemplate({ counter: props.counter, })}
`; } @customElement("app-module") export class AppModule extends LitElement implements AppModuleProps { static styles = appModuleStyles; @property({ type: String }) name = "World"; counter = new CounterModuleController(this); render() { return appModuleTemplate(this); } }