UNPKG

@kui-shell/core

Version:

An Electron-based shell for cloud-native development

34 lines (33 loc) 1.31 kB
import { Tab } from '../../tab'; import { MetadataBearing } from '../../../models/entity'; import { ModeOrButton as SidecarMode } from '../../../models/mmr/types'; export type SidecarModeFilter<Resource extends MetadataBearing> = (resource: Resource) => boolean; export type ModeDeclaration<Resource extends MetadataBearing> = SidecarMode; /** * Interpretation: if the resource passes the given "when" filter, * then add the given sidecar mode * */ export interface ModeRegistration<Resource extends MetadataBearing> { when: SidecarModeFilter<Resource>; mode: ModeDeclaration<Resource>; } /** * Register a new mode * */ export declare function registerSidecarMode<Resource extends MetadataBearing>(registration: ModeRegistration<Resource>): void; export default registerSidecarMode; export declare const registerModeWhen: <Resource extends MetadataBearing<void>>(when: SidecarModeFilter<Resource>) => (mode: ModeDeclaration<Resource>) => void; /** * Apply all registered modes that are relevant to the given resource * to the given modes model * */ export declare function apply<Resource extends MetadataBearing>(tab: Tab, modes: SidecarMode[], command: string, resource: { resource: Resource; }): void; /** * @return the relevant modes for the given command on the given resource * */