import { render, html } from '@mantou/gem'; import { MenuItem, GemPanelElement, Layout, Panel, Window } from '../../'; const getMenu = async (window: Window, _panel: Panel, defaultMenus: MenuItem[]) => { const menus: MenuItem[] = [...defaultMenus]; const gemPanelEle = document.querySelector('gem-panel'); if (gemPanelEle) { gemPanelEle.hiddenPanels.forEach((panel) => { menus.unshift({ text: `open "${panel.title}"`, handle: () => gemPanelEle.openPanelInWindow(panel, window), }); }); } return menus; }; const panel1 = new Panel('p1', { title: 'p1 title', getMenu, content: html`
p1 content
`, }); const panel2 = new Panel('p2', { title: 'p2 title', getMenu, async getContent() { await new Promise((res) => setTimeout(res, 1000)); return html` `; }, }); const panel3 = new Panel('p3', { title: 'p3 title', getMenu, content: html`p3 content` }); const panel4 = new Panel('p4', { title: 'p4 title', getMenu, content: html`p4 content` }); const panel5 = new Panel('p5', { title: 'p5 title', getMenu, content: html`p5 content` }); const panel6 = new Panel('p6', { title: 'p6 title', getMenu, content: html`p6 content` }); const panel7 = new Panel('p7', { title: 'p7 title', getMenu, content: html`
p7 content
`, }); const panel8 = new Panel('p8', { title: 'p8 title', getMenu, content: html`p8 content` }); const panel9 = new Panel('p9', { title: 'p9 title', getMenu, content: html`p9 content` }); const window1 = new Window([panel1, panel4, panel5]); const window2 = new Window([panel2]); const window3 = new Window([panel6]); const window4 = new Window([panel7], { position: [100, 100] }); const window5 = new Window([panel8]); const window6 = new Window([panel9]); const panels = [panel1, panel2, panel3, panel4, panel5, panel6, panel7, panel8, panel9]; const layout = new Layout([window4, window1, window2, window3, window5, window6]); render( html` `, document.body, );