UNPKG

fox-block-builder

Version:

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

31 lines (30 loc) 1.4 kB
import { DividerBlockRdo, HeaderBlockRdo, InputBlockRdo, SectionBlockRdo } from './modal-block.rdo'; import { FetchValuesParams, FoxModalView, PlainTextObject, Prop, TPluginModalMap } from '../../internal'; import { LoopPluginModalType } from '../../internal/enum'; export type TFoxUsedBlock = InputBlockRdo | SectionBlockRdo | DividerBlockRdo | HeaderBlockRdo; export type TFindBlockParams = Pick<InputBlockRdo, Prop.ForTeams | Prop.CustomField | Prop.Access | Prop.NoSubmit>; export declare class ModalViewRdo implements FoxModalView { modalName: string; type: 'modal'; callback_id?: string; private_metadata?: string; title: PlainTextObject; submit?: PlainTextObject; close?: PlainTextObject; blocks: TFoxUsedBlock[]; /** * @description Запрос изначальных данных для блоков */ fetchValues?: FetchValuesParams; filterBlocks(filterFn?: (b: TFoxUsedBlock) => boolean): this; /** Получение блока по айди */ getBlock(blockId: string, params?: TFindBlockParams): TFoxUsedBlock | undefined; /** Убираем блоки по (части) ID и параметрам */ removeBlocksById(blockIdOrPart: string, params?: TFindBlockParams): this; } export declare class ModalRdo { name: string; type: LoopPluginModalType; map: TPluginModalMap | null; view: ModalViewRdo; }