fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
131 lines (130 loc) • 3.88 kB
TypeScript
type TMetaCustomValue = {
id: number;
value: any;
};
export interface IPluginModalMeta {
/** Номер шаблона планфикса */
template?: number;
/** Заголовок */
title?: string;
/** Кастомные поля для шаблонов */
customValue?: TMetaCustomValue[];
/** ID проекта планфикса */
projectId?: number;
/** Статус задачи */
statusSet?: number;
/** Ответственные */
workers?: {
users?: {
id: number[];
};
groups?: {
id: number[];
};
};
/** Нужно ли установить ответственных */
setWorkers?: boolean;
/** Статус задачи */
status?: string | number;
/** General задачи */
general?: number;
/** Родительская задача */
parentTask?: number;
parentFieldId?: number;
emailNameInBody?: boolean;
tag?: string;
subject?: string;
isOwner?: boolean;
stage?: string;
/** Канал сообщения */
channelId?: string;
/** ID сообщения */
postId?: string;
/** Действия с описанием задачи, если оно уже есть */
descAction?: 'keep' | 'add' | 'set';
/** Отправка сообщений при сабмите формы */
postMessage?: string;
/** Дата начала */
beginDateTime?: string;
/** ФИО в названии задачи */
userInTitle?: boolean;
/** Добавление полей в описание */
fields?: {
label: string;
value: string;
}[];
/** Отправить ответ к сообщению с ID */
responsePostId?: string;
/** Отправить ответ к сообщению в канал */
responseChannelId?: string;
/** Задать параметры на основании значений блока */
setParams?: {
blockId: string;
values: (string | number)[];
params: Partial<Record<string, any>>;
}[];
/** Параметры ОС */
feedback?: {
authorPostId?: string;
authorChannelId?: string;
targetPostId?: string;
targetChannelId?: string;
};
[metaKey: string]: any;
}
/** Конструктор обьекта метаданных модалки */
export declare class PluginModalMetaBuilder implements IPluginModalMeta {
template?: number;
title?: string;
customValue?: TMetaCustomValue[];
projectId?: number;
statusSet?: number;
workers?: {
users?: {
id: number[];
};
groups?: {
id: number[];
};
};
setWorkers?: boolean;
status?: string | number;
general?: number;
parentTask?: number;
parentFieldId?: number;
emailNameInBody?: boolean;
tag?: string;
subject?: string;
isOwner?: boolean;
stage?: string;
channelId?: string;
postId?: string;
descAction?: 'keep' | 'add' | 'set';
postMessage?: string;
beginDateTime?: string;
userInTitle?: boolean;
fields?: {
label: string;
value: string;
}[];
responsePostId?: string;
responseChannelId?: string;
setParams?: {
blockId: string;
values: (string | number)[];
params: Partial<Record<string, any>>;
}[];
feedback?: {
authorPostId?: string;
authorChannelId?: string;
targetPostId?: string;
targetChannelId?: string;
};
[metaKey: string]: any;
constructor(params?: IPluginModalMeta | string);
addCustomValues(...values: TMetaCustomValue[]): this;
addMeta(params: IPluginModalMeta): this;
addString(metaString?: string): this;
buildToJSON(): string;
}
export {};