UNPKG

fox-block-builder

Version:

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

58 lines (57 loc) 2.42 kB
import { SlackBlockDto } from '../../internal/dto'; import { BlockType, Prop } from '../../internal/constants'; import { PlainTextObject } from '../../internal/objects'; import { FoxBlock, FoxDividerBlock, FoxHeaderBlock, FoxInputBlock, FoxSectionBlock } from '../../internal/interfaces/blocks.interfaces'; import { PlainTextElement } from '@slack/web-api'; import { AnalyticsParams } from '../../internal/types'; import { FoxInputBlockElement } from '../../internal/interfaces/input-elements.interfaces'; import { FoxButton } from '../../internal/interfaces/section-elements.interfaces'; import { BlockVisibleIfRef } from '../../internal/types/visible-if.types'; export declare class ModalBlockRdo implements SlackBlockDto, FoxBlock { type: BlockType; block_id: string; /** Видимость по командам */ [Prop.ForTeams]?: string[]; /** Видимость по внутренним группам */ [Prop.Access]?: string | undefined; /** Отключение отправки при видимом блоке */ [Prop.NoSubmit]?: boolean; [Prop.VisibleIf]?: BlockVisibleIfRef[]; } export declare class IInputBlockFoxFields { [Prop.GetValue]?: boolean; [Prop.Exclude]?: boolean; [Prop.Analytics]?: AnalyticsParams; [Prop.AsTitle]?: boolean; } export declare class InputBlockFoxFields extends ModalBlockRdo implements IInputBlockFoxFields { /** Custom поле планфикса */ customField?: number | false; /** Флаг получения значений вместо текста */ getValue?: boolean; exclude?: boolean; analytics?: AnalyticsParams; asTitle?: boolean; } export declare class InputBlockRdo extends InputBlockFoxFields implements FoxInputBlock { type: BlockType.Input; block_id: string; label: PlainTextObject; hint?: PlainTextObject; optional?: boolean; element: FoxInputBlockElement; } export declare class SectionBlockRdo extends ModalBlockRdo implements FoxSectionBlock { type: BlockType.Section; block_id: string; text?: PlainTextObject; fields?: PlainTextObject[]; accessory?: FoxButton; } export declare class DividerBlockRdo extends ModalBlockRdo implements FoxDividerBlock { type: BlockType.Divider; } export declare class HeaderBlockRdo extends ModalBlockRdo implements FoxHeaderBlock { type: BlockType.Header; text: PlainTextElement; }