summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nlopes/slack/block_element.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2020-03-01 20:59:19 +0100
committerGitHub <noreply@github.com>2020-03-01 20:59:19 +0100
commit250b3bb5795240d5ebdab5416ab99dbc41be734b (patch)
tree11e44ec2e7e37cd7eb0deaf0a7843fe6bf3c0e40 /vendor/github.com/nlopes/slack/block_element.go
parente9edbfc051afc643d91fc04bc7fb3fe70039c213 (diff)
downloadmatterbridge-msglm-250b3bb5795240d5ebdab5416ab99dbc41be734b.tar.gz
matterbridge-msglm-250b3bb5795240d5ebdab5416ab99dbc41be734b.tar.bz2
matterbridge-msglm-250b3bb5795240d5ebdab5416ab99dbc41be734b.zip
Use upstream slack-go/slack again (#1018)
Diffstat (limited to 'vendor/github.com/nlopes/slack/block_element.go')
-rw-r--r--vendor/github.com/nlopes/slack/block_element.go252
1 files changed, 0 insertions, 252 deletions
diff --git a/vendor/github.com/nlopes/slack/block_element.go b/vendor/github.com/nlopes/slack/block_element.go
deleted file mode 100644
index 5b1b4b01..00000000
--- a/vendor/github.com/nlopes/slack/block_element.go
+++ /dev/null
@@ -1,252 +0,0 @@
-package slack
-
-// https://api.slack.com/reference/messaging/block-elements
-
-const (
- METImage MessageElementType = "image"
- METButton MessageElementType = "button"
- METOverflow MessageElementType = "overflow"
- METDatepicker MessageElementType = "datepicker"
-
- MixedElementImage MixedElementType = "mixed_image"
- MixedElementText MixedElementType = "mixed_text"
-
- OptTypeStatic string = "static_select"
- OptTypeExternal string = "external_select"
- OptTypeUser string = "users_select"
- OptTypeConversations string = "conversations_select"
- OptTypeChannels string = "channels_select"
-)
-
-type MessageElementType string
-type MixedElementType string
-
-// BlockElement defines an interface that all block element types should implement.
-type BlockElement interface {
- ElementType() MessageElementType
-}
-
-type MixedElement interface {
- MixedElementType() MixedElementType
-}
-
-type Accessory struct {
- ImageElement *ImageBlockElement
- ButtonElement *ButtonBlockElement
- OverflowElement *OverflowBlockElement
- DatePickerElement *DatePickerBlockElement
- SelectElement *SelectBlockElement
-}
-
-// NewAccessory returns a new Accessory for a given block element
-func NewAccessory(element BlockElement) *Accessory {
- switch element.(type) {
- case *ImageBlockElement:
- return &Accessory{ImageElement: element.(*ImageBlockElement)}
- case *ButtonBlockElement:
- return &Accessory{ButtonElement: element.(*ButtonBlockElement)}
- case *OverflowBlockElement:
- return &Accessory{OverflowElement: element.(*OverflowBlockElement)}
- case *DatePickerBlockElement:
- return &Accessory{DatePickerElement: element.(*DatePickerBlockElement)}
- case *SelectBlockElement:
- return &Accessory{SelectElement: element.(*SelectBlockElement)}
- }
-
- return nil
-}
-
-// BlockElements is a convenience struct defined to allow dynamic unmarshalling of
-// the "elements" value in Slack's JSON response, which varies depending on BlockElement type
-type BlockElements struct {
- ElementSet []BlockElement `json:"elements,omitempty"`
-}
-
-// UnknownBlockElement any block element that this library does not directly support.
-// See the "Rich Elements" section at the following URL:
-// https://api.slack.com/changelog/2019-09-what-they-see-is-what-you-get-and-more-and-less
-// New block element types may be introduced by Slack at any time; this is a catch-all for any such block elements.
-type UnknownBlockElement struct {
- Type MessageElementType `json:"type"`
- Elements BlockElements
-}
-
-// ElementType returns the type of the Element
-func (s UnknownBlockElement) ElementType() MessageElementType {
- return s.Type
-}
-
-// ImageBlockElement An element to insert an image - this element can be used
-// in section and context blocks only. If you want a block with only an image
-// in it, you're looking for the image block.
-//
-// More Information: https://api.slack.com/reference/messaging/block-elements#image
-type ImageBlockElement struct {
- Type MessageElementType `json:"type"`
- ImageURL string `json:"image_url"`
- AltText string `json:"alt_text"`
-}
-
-// ElementType returns the type of the Element
-func (s ImageBlockElement) ElementType() MessageElementType {
- return s.Type
-}
-
-func (s ImageBlockElement) MixedElementType() MixedElementType {
- return MixedElementImage
-}
-
-// NewImageBlockElement returns a new instance of an image block element
-func NewImageBlockElement(imageURL, altText string) *ImageBlockElement {
- return &ImageBlockElement{
- Type: METImage,
- ImageURL: imageURL,
- AltText: altText,
- }
-}
-
-type Style string
-
-const (
- StyleDefault Style = "default"
- StylePrimary Style = "primary"
- StyleDanger Style = "danger"
-)
-
-// ButtonBlockElement defines an interactive element that inserts a button. The
-// button can be a trigger for anything from opening a simple link to starting
-// a complex workflow.
-//
-// More Information: https://api.slack.com/reference/messaging/block-elements#button
-type ButtonBlockElement struct {
- Type MessageElementType `json:"type,omitempty"`
- Text *TextBlockObject `json:"text"`
- ActionID string `json:"action_id,omitempty"`
- URL string `json:"url,omitempty"`
- Value string `json:"value,omitempty"`
- Confirm *ConfirmationBlockObject `json:"confirm,omitempty"`
- Style Style `json:"style,omitempty"`
-}
-
-// ElementType returns the type of the element
-func (s ButtonBlockElement) ElementType() MessageElementType {
- return s.Type
-}
-
-// add styling to button object
-func (s *ButtonBlockElement) WithStyle(style Style) {
- s.Style = style
-}
-
-// NewButtonBlockElement returns an instance of a new button element to be used within a block
-func NewButtonBlockElement(actionID, value string, text *TextBlockObject) *ButtonBlockElement {
- return &ButtonBlockElement{
- Type: METButton,
- ActionID: actionID,
- Text: text,
- Value: value,
- }
-}
-
-// SelectBlockElement defines the simplest form of select menu, with a static list
-// of options passed in when defining the element.
-//
-// More Information: https://api.slack.com/reference/messaging/block-elements#select
-type SelectBlockElement struct {
- Type string `json:"type,omitempty"`
- Placeholder *TextBlockObject `json:"placeholder,omitempty"`
- ActionID string `json:"action_id,omitempty"`
- Options []*OptionBlockObject `json:"options,omitempty"`
- OptionGroups []*OptionGroupBlockObject `json:"option_groups,omitempty"`
- InitialOption *OptionBlockObject `json:"initial_option,omitempty"`
- InitialUser string `json:"initial_user,omitempty"`
- InitialConversation string `json:"initial_conversation,omitempty"`
- InitialChannel string `json:"initial_channel,omitempty"`
- MinQueryLength int `json:"min_query_length,omitempty"`
- Confirm *ConfirmationBlockObject `json:"confirm,omitempty"`
-}
-
-// ElementType returns the type of the Element
-func (s SelectBlockElement) ElementType() MessageElementType {
- return MessageElementType(s.Type)
-}
-
-// NewOptionsSelectBlockElement returns a new instance of SelectBlockElement for use with
-// the Options object only.
-func NewOptionsSelectBlockElement(optType string, placeholder *TextBlockObject, actionID string, options ...*OptionBlockObject) *SelectBlockElement {
- return &SelectBlockElement{
- Type: optType,
- Placeholder: placeholder,
- ActionID: actionID,
- Options: options,
- }
-}
-
-// NewOptionsGroupSelectBlockElement returns a new instance of SelectBlockElement for use with
-// the Options object only.
-func NewOptionsGroupSelectBlockElement(
- optType string,
- placeholder *TextBlockObject,
- actionID string,
- optGroups ...*OptionGroupBlockObject,
-) *SelectBlockElement {
- return &SelectBlockElement{
- Type: optType,
- Placeholder: placeholder,
- ActionID: actionID,
- OptionGroups: optGroups,
- }
-}
-
-// OverflowBlockElement defines the fields needed to use an overflow element.
-// And Overflow Element is like a cross between a button and a select menu -
-// when a user clicks on this overflow button, they will be presented with a
-// list of options to choose from.
-//
-// More Information: https://api.slack.com/reference/messaging/block-elements#overflow
-type OverflowBlockElement struct {
- Type MessageElementType `json:"type"`
- ActionID string `json:"action_id,omitempty"`
- Options []*OptionBlockObject `json:"options"`
- Confirm *ConfirmationBlockObject `json:"confirm,omitempty"`
-}
-
-// ElementType returns the type of the Element
-func (s OverflowBlockElement) ElementType() MessageElementType {
- return s.Type
-}
-
-// NewOverflowBlockElement returns an instance of a new Overflow Block Element
-func NewOverflowBlockElement(actionID string, options ...*OptionBlockObject) *OverflowBlockElement {
- return &OverflowBlockElement{
- Type: METOverflow,
- ActionID: actionID,
- Options: options,
- }
-}
-
-// DatePickerBlockElement defines an element which lets users easily select a
-// date from a calendar style UI. Date picker elements can be used inside of
-// section and actions blocks.
-//
-// More Information: https://api.slack.com/reference/messaging/block-elements#datepicker
-type DatePickerBlockElement struct {
- Type MessageElementType `json:"type"`
- ActionID string `json:"action_id"`
- Placeholder *TextBlockObject `json:"placeholder,omitempty"`
- InitialDate string `json:"initial_date,omitempty"`
- Confirm *ConfirmationBlockObject `json:"confirm,omitempty"`
-}
-
-// ElementType returns the type of the Element
-func (s DatePickerBlockElement) ElementType() MessageElementType {
- return s.Type
-}
-
-// NewDatePickerBlockElement returns an instance of a date picker element
-func NewDatePickerBlockElement(actionID string) *DatePickerBlockElement {
- return &DatePickerBlockElement{
- Type: METDatepicker,
- ActionID: actionID,
- }
-}