UNPKG

@openinc/parse-server-opendash

Version:
83 lines (82 loc) 2.12 kB
export type TicketMeta = { fields: TicketTypedMetaField[]; }; export type TicketMetaFormField = { [key: string]: MetaFieldData["value"]; }; export type TicketTypedMetaField = { [T in MetaFieldData["type"]]: Extract<TicketMetaField, { type: T; }> & Extract<MetaFieldData, { type: T; }>; }[MetaFieldData["type"]]; export type TicketMetaFieldType = (typeof TicketMetaFieldTypes)[number]; export declare const TicketMetaFieldTypes: readonly ["string", "number", "boolean", "date", "select", "select_parse"]; type MetaFieldValueString = { type: "string"; value: string; }; type MetaFieldValueNumber = { type: "number"; value: number; }; type MetaFieldValueBoolean = { type: "boolean"; value: boolean; }; type MetaFieldValueDate = { type: "date"; value: Date; }; type MetaFieldValueSelect = { type: "select"; value: string; multiple: false; }; type MetaFieldValueSelectMultiple = { type: "select"; value: string[]; multiple: true; }; type MetaFieldValueParseSelect = { type: "select_parse"; value: string; multiple: false; }; type MetaFieldValueParseSelectMultiple = { type: "select_parse"; value: string[]; multiple: true; }; type MetaFieldData = MetaFieldValueString | MetaFieldValueNumber | MetaFieldValueBoolean | MetaFieldValueDate | MetaFieldValueSelect | MetaFieldValueSelectMultiple | MetaFieldValueParseSelect | MetaFieldValueParseSelectMultiple; export type TicketMetaFieldConfig = { fields?: TicketMetaField[]; }; export type TicketMetaField = WithDefaults<{ type: "string"; }> | WithDefaults<{ type: "number"; min?: number; max?: number; }> | WithDefaults<{ type: "boolean"; }> | WithDefaults<{ type: "date"; }> | WithDefaults<{ type: "select"; options?: string[]; multiple?: boolean; }> | WithDefaults<{ type: "select_parse"; className?: string; multiple?: boolean; display?: string; }>; type MetaFieldDefault = { label?: string; description?: string; name?: string; }; type WithDefaults<T> = T & MetaFieldDefault; export {};