urlbar.ts (1465B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 // These types are commonly passed as parameters with the Urlbar code. We 6 // define them here to avoid having to `@import` them into each module. 7 // TypeScript will still warn about attempting to call `new UrlbarController()` 8 // and similar actions because these are only defined as types and not values. 9 10 type UrlbarController = import("../UrlbarController.sys.mjs").UrlbarController; 11 type UrlbarInput = import("../content/UrlbarInput.mjs").UrlbarInput; 12 type UrlbarQueryContext = import("../UrlbarUtils.sys.mjs").UrlbarQueryContext; 13 type UrlbarResult = import("../UrlbarResult.sys.mjs").UrlbarResult; 14 15 type Values<T> = T[keyof T]; 16 17 /** 18 * A structure that holds the details of commands for results. 19 */ 20 type UrlbarResultCommand = { 21 /** 22 * The name of the command. Must be specified unless `children` is present. 23 * When a command is picked, its name will be passed as `details.selType` to 24 * `onEngagement()`. The special name "separator" will create a menu separator. 25 */ 26 name?: string; 27 /** 28 * An l10n object for the command's label. Must be specified unless `name` 29 * is "separator". 30 */ 31 l10n?: L10nIdArgs; 32 /** 33 * If specified, a submenu will be created with the given child commands. 34 */ 35 children?: UrlbarResultCommand[]; 36 };