fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
31 lines (30 loc) • 1.4 kB
TypeScript
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;
}