UNPKG

chrome-devtools-frontend

Version:
67 lines (58 loc) 1.44 kB
// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as Menus from '../../../../ui/components/menus/menus.js'; const menuItems = [ { name: 'Opt 1', value: '1', selected: true, group: '', }, { name: 'Opt 2', value: '2', group: '', }, { name: 'Opt 3', value: '3', group: '', }, { name: 'Opt 4', value: '4', group: '', }, ]; const root = document.getElementById('root'); const button = document.createElement('button'); button.innerText = 'Toggle menu'; const menu = new Menus.Menu.Menu(); menu.origin = button; menu.open = false; menu.showDivider = true; menuItems.forEach(item => { const menuItem = new Menus.Menu.MenuItem(); menuItem.value = item.value; menuItem.selected = Boolean(item.selected); const itemContent = document.createElement('div'); itemContent.textContent = item.name; menuItem.appendChild(itemContent); menu.appendChild(menuItem); }); menu.addEventListener('menuitemselected', evt => { menu.querySelectorAll('devtools-menu-item').forEach(item => { item.selected = item.value === evt.itemValue; }); }); menu.addEventListener('menucloserequest', _evt => { menu.open = false; }); button.addEventListener('click', _menuEvent => { menu.open = !menu.open; }); if (root) { root.appendChild(menu); root.appendChild(button); }