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.
137 lines (136 loc) • 5.18 kB
JavaScript
;
/* eslint-disable max-classes-per-file */
/* eslint-disable @typescript-eslint/ban-ts-comment */
Object.defineProperty(exports, "__esModule", { value: true });
exports.SlackElementDto = exports.SlackBlockDto = exports.SlackWorkflowStepDto = exports.SlackModalDto = exports.SlackHomeTabDto = exports.SlackMessageDto = exports.SlackDto = exports.Param = void 0;
const constants_1 = require("../constants");
var Param;
(function (Param) {
Param["actionId"] = "action_id";
Param["blocks"] = "blocks";
Param["blockId"] = "block_id";
Param["maxSelectedItems"] = "max_selected_items";
Param["title"] = "title";
Param["text"] = "text";
Param["confirm"] = "confirm";
Param["deny"] = "deny";
Param["style"] = "style";
Param["danger"] = "danger";
Param["label"] = "label";
Param["options"] = "options";
Param["value"] = "value";
Param["description"] = "description";
Param["url"] = "url";
Param["elements"] = "elements";
Param["externalId"] = "external_id";
Param["imageUrl"] = "image_url";
Param["altText"] = "alt_text";
Param["element"] = "element";
Param["hint"] = "hint";
Param["optional"] = "optional";
Param["fields"] = "fields";
Param["accessory"] = "accessory";
Param["initialChannels"] = "initial_channels";
Param["initialChannel"] = "initial_channel";
Param["responseUrlEnabled"] = "response_url_enabled";
Param["initialOptions"] = "initial_options";
Param["initialConversations"] = "initial_conversations";
Param["defaultToCurrentConversation"] = "default_to_current_conversation";
Param["filter"] = "filter";
Param["initialConversation"] = "initial_conversation";
Param["initialDate"] = "initial_date";
Param["initialDateTime"] = "initial_date_time";
Param["isDecimalAllowed"] = "is_decimal_allowed";
Param["minQueryLength"] = "min_query_length";
Param["initialOption"] = "initial_option";
Param["optionGroups"] = "option_groups";
Param["placeholder"] = "placeholder";
Param["initialValue"] = "initial_value";
Param["multiline"] = "multiline";
Param["minLength"] = "min_length";
Param["maxLength"] = "max_length";
Param["initialUsers"] = "initial_users";
Param["initialUser"] = "initial_user";
Param["channel"] = "channel";
Param["close"] = "close";
Param["submit"] = "submit";
Param["clearOnClose"] = "clear_on_close";
Param["notifyOnClose"] = "notify_on_close";
Param["privateMetaData"] = "private_metadata";
Param["callbackId"] = "callback_id";
Param["asUser"] = "as_user";
Param["ts"] = "ts";
Param["threadTs"] = "thread_ts";
Param["replaceOriginal"] = "replace_original";
Param["deleteOriginal"] = "delete_original";
Param["responseType"] = "response_type";
Param["postAt"] = "post_at";
Param["color"] = "color";
Param["fallback"] = "fallback";
Param["attachments"] = "attachments";
Param["dispatchAction"] = "dispatch_action";
Param["dispatchActionConfig"] = "dispatch_action_config";
Param["initialTime"] = "initial_time";
Param["mrkdwn"] = "mrkdwn";
Param["submitDisabled"] = "submit_disabled";
Param["type"] = "type";
Param["focusOnLoad"] = "focus_on_load";
Param["accessibilityLabel"] = "accessibility_label";
Param["authorName"] = "author_name";
Param["providerIconUrl"] = "provider_icon_url";
Param["providerName"] = "provider_name";
Param["titleUrl"] = "title_url";
Param["thumbnailUrl"] = "thumbnail_url";
Param["videoUrl"] = "video_url";
Param["minValue"] = "min_value";
Param["maxValue"] = "max_value";
Param["maxFiles"] = "max_files";
Param["filetypes"] = "filetypes";
Param["source"] = "source";
})(Param = exports.Param || (exports.Param = {}));
class SlackDto {
constructor(params) {
Object.keys(params).forEach((paramName) => {
const mappedParam = SlackDto.mapParam(paramName);
if (params[paramName] !== undefined && mappedParam !== undefined) {
// @ts-ignore -- Dynamically created class
this[mappedParam] = params[paramName];
}
});
}
static mapParam(param) {
// @ts-ignore -- Dynamically created class
return Param[param];
}
}
exports.SlackDto = SlackDto;
class SlackMessageDto extends SlackDto {
}
exports.SlackMessageDto = SlackMessageDto;
class SlackHomeTabDto extends SlackDto {
constructor() {
super(...arguments);
this.type = constants_1.SurfaceType.HomeTab;
}
}
exports.SlackHomeTabDto = SlackHomeTabDto;
class SlackModalDto extends SlackDto {
constructor() {
super(...arguments);
this.type = constants_1.SurfaceType.Modal;
}
}
exports.SlackModalDto = SlackModalDto;
class SlackWorkflowStepDto extends SlackDto {
constructor() {
super(...arguments);
this.type = constants_1.SurfaceType.WorkflowStep;
}
}
exports.SlackWorkflowStepDto = SlackWorkflowStepDto;
class SlackBlockDto extends SlackDto {
}
exports.SlackBlockDto = SlackBlockDto;
class SlackElementDto extends SlackDto {
}
exports.SlackElementDto = SlackElementDto;