UNPKG

@finos/legend-application

Version:
54 lines 2.08 kB
/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import type { GenericLegendApplicationStore } from './ApplicationStore.js'; export interface CommandRegistrar { registerCommands(): void; deregisterCommands(): void; } export type CommandConfigEntry = { title?: string; /** * NOTE: only support keyboard code instead of key * See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key * See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code */ defaultKeyboardShortcut?: string; additionalKeyboardShortcuts?: string[]; when?: string; }; export type KeyedCommandConfigEntry = { key: string; content: CommandConfigEntry; }; export type CommandConfigData = Record<string, CommandConfigEntry>; export declare const collectKeyedCommandConfigEntriesFromConfig: (rawEntries: Record<string, CommandConfigEntry>) => KeyedCommandConfigEntry[]; export type CommandArguments = { event?: Event; }; export type Command = { key: string; trigger?: () => boolean; action?: (args?: CommandArguments) => void; }; export declare class CommandService { readonly applicationStore: GenericLegendApplicationStore; readonly commandRegistry: Map<string, Command>; constructor(applicationStore: GenericLegendApplicationStore); registerCommand(command: Command): void; deregisterCommand(commandKey: string): void; runCommand(commandKey: string, args?: CommandArguments): boolean; } //# sourceMappingURL=CommandService.d.ts.map