fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
53 lines (52 loc) • 2.74 kB
TypeScript
import { IPluginFormBlock, PluginFormBlockDto } from './plugin-form-block.dto';
export declare class PluginFormBase {
blocks: PluginFormBlockDto[];
private_metadata?: string;
setBlocks(blocks: IPluginFormBlock[]): this;
setBlockById(block: IPluginFormBlock): this;
addBlocks(index?: number, del?: number, ...blocks: IPluginFormBlock[]): this;
/** Получение блока по ID */
getBlockById(blockId: string): PluginFormBlockDto | undefined;
/** Получение custom value блока */
getCustomBlock(id: number): PluginFormBlockDto | undefined;
setBlockParam<T extends keyof IPluginFormBlock>(id: string, name: T, value: PluginFormBlockDto[T]): this;
/** Установка label */
setBlockLabel(blockId: string, label: string): this;
/** Установка value */
setBlockValue(blockId: string, value: string): this;
/** Установка text */
setBlockText(blockId: string, text: string): this;
/** Получение значений мультиселектов в виде массивов */
getMultiSelectBlock(blockId: string): {
value: string;
text?: string;
}[];
/** Получение названия задачи из значения блока */
getTitleFromBlocks(title?: string): string;
/** Получение значения блока "другое" из соотв. блока */
getBlockOtherText(blockId: string): PluginFormBlockDto | undefined;
/** Получение обычных блоков */
getRegularBlocks(): PluginFormBlockDto[];
/** Получение custom value блоков */
getCustomBlocks(): PluginFormBlockDto[];
/** Получение custom value блоков с файлами */
getCustomFileBlocks(): PluginFormBlockDto[];
/** Получение обычных блоков с файлами */
getFileBlocks(): PluginFormBlockDto[];
/** Удаление блоков custom value */
removeCustomBlocks(): void;
/** Удаление блоков с флагом exclude */
removeExcludedBlocks(): this;
/** Форматирование в Fields c опцональным выбором блоков */
toFields(...includeIds: string[]): {
title: string | null;
value: string | undefined;
}[];
/** Форматирование в строку markdown c опцональным выбором блоков */
asString({ includeIds, md, }: {
includeIds?: string[];
md: boolean;
}): string;
/** Форматирование в строку markdown c опцональным выбором блоков */
toMarkdown(...includeIds: string[]): string;
}