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