@kui-shell/core
Version:
An Electron-based shell for cloud-native development
47 lines (46 loc) • 1.86 kB
TypeScript
import ExecOptions from './execOptions';
import { Entity, MarkdownResponse } from './entity';
/**
* If your controller wants to manipulate the tab layout, this is your
* response type!
*
*/
type TabLayoutModificationResponse<Request extends ModificationRequest = ModificationRequest> = {
apiVersion: 'kui-shell/v1';
kind: 'TabLayoutModificationResponse';
spec: Request & {
ok: MarkdownResponse;
};
};
export type NewSplitRequest = {
modification: 'NewSplit';
options?: Pick<ExecOptions, 'data' | 'masquerade'> & {
/** Splice the split at this index; default (and if out of range) is at-end */
index?: number;
/** Use an inverted color scheme for the new split? */
inverseColors?: boolean;
/** Is this split to be positioned specially, e.g. as a right strip? */
position?: 'default' | 'left-strip' | 'right-strip';
/** Execute this command line in the new split */
cmdline?: string;
/** Only perform the split if the given command returns true */
if?: string;
/** Only perform the split if the given command returns false */
ifnot?: string;
/** Swap the positions of the given two splits */
swap?: {
a: number;
b: number;
};
/**
* Force this new split to have (or not) an active input,
* independent of what the default behavior would otherwis
* say?
*/
hasActiveInput?: boolean;
};
};
type ModificationRequest = NewSplitRequest;
export declare function isNewSplitRequest(req: TabLayoutModificationResponse): req is TabLayoutModificationResponse<NewSplitRequest>;
export declare function isTabLayoutModificationResponse(entity: Entity): entity is TabLayoutModificationResponse;
export default TabLayoutModificationResponse;