UNPKG

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.

134 lines (133 loc) 5.07 kB
"use strict"; /* 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 = 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;