@kui-shell/core
Version:
An Electron-based shell for cloud-native development
34 lines (33 loc) • 1.31 kB
TypeScript
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
*
*/