import { html, LitElement } from "lit"; import appState, { use } from "./state"; import { APIController } from "@/controllers/api"; import { NavigateController } from "@/controllers/navigate"; import { NotifyController } from "@/controllers/notify"; export { html }; export default class LiteElement extends LitElement { @use() appState = appState; private readonly apiController = new APIController(this); private readonly notifyController = new NotifyController(this); private readonly navigateController = new NavigateController(this); protected get orgBasePath() { return this.navigateController.orgBasePath; } createRenderRoot() { return this; } /** * @deprecated New components should use NavigateController directly */ navTo = (...args: Parameters) => this.navigateController.to(...args); /** * @deprecated New components should use NavigateController directly */ navLink = (...args: Parameters) => this.navigateController.link(...args); /** * @deprecated New components should use NotifyController directly */ notify = (...args: Parameters) => this.notifyController.toast(...args); /** * @deprecated New components should use APIController directly */ apiFetch = async (...args: Parameters) => this.apiController.fetch(...args); }