import { LitElement, css, html, unsafeCSS } from "lit"; import { property, state } from "lit/decorators.js"; import { PrimariaNavItemConfig, PrimariaNavTreeMenuConfig } from "../typings"; import styles from "./styles.css?inline"; import { template } from "./template"; export class PrimariaNavTreeMenu extends LitElement { static styles = css` ${unsafeCSS(styles)} `; @property({ type: Object }) config: PrimariaNavTreeMenuConfig; @state() showActionMenu = false; constructor(config: PrimariaNavTreeMenuConfig) { super(); this.config = config; } get primariaNavItemConfig(): PrimariaNavItemConfig { return { icon: this.config.icon, label: this.config.label, showArrow: true, callbackFn: this.handleItemClick, }; } handleItemClick = () => { this.showActionMenu = true; }; handleCloseMenu = () => { this.showActionMenu = false; }; render() { return html`${template(this)}`; } }