Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const launchButtonSchema = ValueSchema.objOf(baseToolbarButtonFields.concat([
FieldSchema.defaulted('type', 'contextformbutton')
]));
const launchToggleButtonSchema = ValueSchema.objOf(baseToolbarToggleButtonFields.concat([
FieldSchema.defaulted('type', 'contextformtogglebutton')
]));
const toggleOrNormal = ValueSchema.choose('type', {
contextformbutton: contextButtonSchema,
contextformtogglebutton: contextToggleButtonSchema
});
const contextFormSchema = ValueSchema.objOf([
FieldSchema.defaulted('type', 'contextform'),
FieldSchema.defaultedFunction('initValue', () => ''),
FieldSchema.optionString('label'),
FieldSchema.strictArrayOf('commands', toggleOrNormal),
FieldSchema.optionOf('launch', ValueSchema.choose('type', {
contextformbutton: launchButtonSchema,
contextformtogglebutton: launchToggleButtonSchema
}))
].concat(contextBarFields));
const contextToolbarSchema = ValueSchema.objOf([
FieldSchema.defaulted('type', 'contexttoolbar'),
FieldSchema.strictString('items')
].concat(contextBarFields));
export const createContextToolbar = (spec: ContextToolbarApi): Result> => {
return ValueSchema.asRaw('ContextToolbar', contextToolbarSchema, spec);
};
storage: Cell;
}
export interface BaseDialogMenuButtonInstanceApi {
isDisabled: () => boolean;
setDisabled: (state: boolean) => void;
isActive: () => boolean;
setActive: (state: boolean) => void;
}
export const baseDialogMenuButtonFields = [
FieldSchema.optionString('text'),
FieldSchema.optionString('tooltip'),
FieldSchema.optionString('icon'),
FieldSchema.strictArrayOf('items', dialogToggleMenuItemSchema),
FieldSchema.defaultedFunction('onSetup', () => Fun.noop),
FieldSchema.defaulted('storage', Cell(false))
];
initValue?: () => string;
label?: string;
launch?: ContextFormLaunchButtonApi | ContextFormLaunchToggleButtonApi;
commands: Array;
}
export interface ContextForm extends ContextBar {
type: 'contextform';
initValue: () => string;
label: Option;
launch: Option;
commands: Array;
}
const contextBarFields = [
FieldSchema.defaultedFunction('predicate', () => false),
FieldSchema.defaultedStringEnum('scope', 'node', ['node', 'editor']),
FieldSchema.defaultedStringEnum('position', 'selection', ['node', 'selection', 'line']),
];
const contextButtonSchema = ValueSchema.objOf(baseToolbarButtonFields.concat([
FieldSchema.defaulted('type', 'contextformbutton'),
FieldSchema.defaulted('primary', false),
FieldSchema.strictFunction('onAction'),
FieldSchema.state('original', Fun.identity)
]));
const contextToggleButtonSchema = ValueSchema.objOf(baseToolbarToggleButtonFields.concat([
FieldSchema.defaulted('type', 'contextformbutton'),
FieldSchema.defaulted('primary', false),
FieldSchema.strictFunction('onAction'),
FieldSchema.state('original', Fun.identity)
...baseButtonFields,
FieldSchema.strictString('text')
];
const normalButtonFields = [
FieldSchema.strictStringEnum('type', ['submit', 'cancel', 'custom']),
...dialogButtonFields
];
const menuButtonFields = [
FieldSchema.strictStringEnum('type', ['menu']),
FieldSchema.optionString('text'),
FieldSchema.optionString('tooltip'),
FieldSchema.optionString('icon'),
FieldSchema.strictArrayOf('items', dialogToggleMenuItemSchema),
FieldSchema.defaultedFunction('onSetup', () => Fun.noop),
...baseButtonFields
];
export const dialogButtonSchema = ValueSchema.choose(
'type',
{
submit: normalButtonFields,
cancel: normalButtonFields,
custom: normalButtonFields,
menu: menuButtonFields
}
);