UNPKG

fox-block-builder

Version:

Maintainable code for loop slack-block-kit-like modal builder

53 lines (52 loc) 3.02 kB
import { TPluginFormBlock, PluginFormBlockDto, PluginFormMultiBlock, PluginFormSingleBlock } from './plugin-form-block.dto'; export declare class PluginFormBase { blocks: (PluginFormSingleBlock | PluginFormMultiBlock)[]; private_metadata?: string; setBlocks(blocks: TPluginFormBlock[]): this; setBlockById(block: TPluginFormBlock): this; addBlocks(index?: number, del?: number, ...blocks: TPluginFormBlock[]): this; /** Получение блока по ID */ getBlockById(blockId: string): PluginFormMultiBlock | PluginFormSingleBlock | undefined; /** Получение custom value блока */ getCustomBlock(id: number): PluginFormMultiBlock | PluginFormSingleBlock | undefined; setBlockParam<T extends keyof TPluginFormBlock>(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 | string[]; text?: string; }[]; /** Получение названия задачи из значения блока */ getTitleFromBlocks(title?: string): string; /** Получение значения блока "другое" из соотв. блока */ getBlockOtherText(blockId: string): PluginFormMultiBlock | PluginFormSingleBlock | undefined; /** Получение обычных блоков */ getRegularBlocks(): (PluginFormMultiBlock | PluginFormSingleBlock)[]; /** Получение custom value блоков */ getCustomBlocks(): (PluginFormMultiBlock | PluginFormSingleBlock)[]; /** Получение custom value блоков с файлами */ getCustomFileBlocks(): (PluginFormMultiBlock | PluginFormSingleBlock)[]; /** Получение обычных блоков с файлами */ getFileBlocks(): (PluginFormMultiBlock | PluginFormSingleBlock)[]; /** Удаление блоков 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; }