Pop-up dictionary browser extension for language learning. Successor to Yomichan. (PERSONAL FORK)
at lambda-fork/main 44 lines 1.5 kB view raw
1/* 2 * Copyright (C) 2023-2025 Yomitan Authors 3 * 4 * This program is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 3 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <https://www.gnu.org/licenses/>. 16 */ 17 18import type {PopupMenu} from '../../ext/js/dom/popup-menu'; 19import type {EventNames, EventArgument as BaseEventArgument} from './core'; 20 21export type Events = { 22 close: { 23 menu: PopupMenu; 24 item: HTMLElement | null; 25 action: string | null; 26 cause: CloseReason; 27 altKey: boolean; 28 ctrlKey: boolean; 29 metaKey: boolean; 30 shiftKey: boolean; 31 }; 32}; 33 34export type EventArgument<TName extends EventNames<Events>> = BaseEventArgument<Events, TName>; 35 36export type CloseReason = 'close' | 'outside' | 'item' | 'resize'; 37 38export type MenuOpenEventDetails = { 39 menu: PopupMenu; 40}; 41 42export type MenuOpenEvent = CustomEvent<MenuOpenEventDetails>; 43 44export type MenuCloseEvent = CustomEvent<EventArgument<'close'>>;