slack-block-builder
Version:
Maintainable code for interactive Slack messages, modals, home tabs, and workflow steps. A must-have for the Slack Block Kit framework.
42 lines (41 loc) • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModalBuilder = void 0;
const base_1 = require("../internal/base");
const constants_1 = require("../internal/constants");
const dto_1 = require("../internal/dto");
const helpers_1 = require("../internal/helpers");
const methods_1 = require("../internal/methods");
/**
* @@link https://api.slack.com/reference/surfaces/views
* @@displayName Modal
*/
class ModalBuilder extends base_1.SurfaceBuilderBase {
/** @internal */
build() {
return this.getResult(dto_1.SlackModalDto, {
type: constants_1.SurfaceType.Modal,
title: helpers_1.getPlainTextObject(this.props.title),
blocks: helpers_1.getBuilderResults(this.props.blocks),
close: helpers_1.getPlainTextObject(this.props.close),
submit: helpers_1.getPlainTextObject(this.props.submit),
});
}
}
exports.ModalBuilder = ModalBuilder;
helpers_1.applyMixins(ModalBuilder, [
methods_1.Blocks,
methods_1.CallbackId,
methods_1.ClearOnClose,
methods_1.Close,
methods_1.ExternalId,
methods_1.NotifyOnClose,
methods_1.PrivateMetaData,
methods_1.Submit,
methods_1.Title,
methods_1.BuildToJSON,
methods_1.BuildToObject,
methods_1.GetBlocks,
methods_1.GetPreviewUrl,
methods_1.PrintPreviewUrl,
]);