import { tag, WeElement, h, extractClass, classNames } from 'omi' import * as css from './index.scss' import { MDCMenu } from '@material/menu'; // @ts-ignore import { extract, htmlToVdom } from '../util.ts' //@ts-ignore import '../theme.ts' interface Props { show?: boolean, list: object, anchor: boolean } interface Data { } @tag('m-menu') export default class Menu extends WeElement{ static css = css static defaultProps = { } static propTypes = { list: Object, show: Boolean, anchor: Boolean } menu: MDCMenu = null installed() { const menu = new MDCMenu(this.shadowRoot.querySelector('.mdc-menu')) menu.open = this.props.show menu.listen('MDCMenu:selected', (evt: CustomEvent) => { this.fire('selected', evt.detail) }); this.menu = menu } toggle() { console.log(11) this.menu.open = !this.menu.open } open() { this.menu.open = true } close() { this.menu.open = false } install() { } receiveProps() { this.menu.open = this.props.show } render(props) { if (props.anchor) { return (
) } return (
) } }