VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /opt/mattermost/client/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/mattermost/client/595.f7c88065f129463c3e17.js
"use strict";(self.webpackChunkmattermost_webapp=self.webpackChunkmattermost_webapp||[]).push([[595],{81806:(e,t,a)=>{a.d(t,{A:()=>d});var s=a(62688),n=a.n(s),o=a(97023),r=a.n(o),i=a(14778),l=a(81911);function c(){const{formatMessage:e}=(0,i.useIntl)();return r().createElement("i",{className:"fa fa-angle-left",title:e({id:"generic_icons.back",defaultMessage:"Back Icon"})})}const m=e=>{let{team:t,siteName:a}=e;const s=0===(null==t?void 0:t.delete_at);return r().createElement("div",{className:"backstage-navbar"},r().createElement(l.Link,{className:"backstage-navbar__back",to:"/".concat(s?null==t?void 0:t.name:"")},r().createElement(c,null),r().createElement("span",null,s?r().createElement(i.FormattedMessage,{id:"backstage_navbar.backToMattermost",defaultMessage:"Back to {siteName}",values:{siteName:null!=a?a:null==t?void 0:t.name}}):r().createElement(i.FormattedMessage,{id:"backstage_navbar.back",defaultMessage:"Back"}))))};m.propTypes={siteName:n().string};const d=m},34526:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Is}),a(17046);var s=a(23453),n=a(81911),o=a(57898),r=a(26614),i=a(80635),l=a(14776),c=a(7430),m=(a(29206),a(3188),a(6552),a(57406),a(55448),a(97023)),d=a.n(m),u=a(92387),g=a(52602),p=a(28676),h=a(77440),f=a(62688),b=a.n(f),E=a(14778),_=a(16983),v=a(52157),M=a(85873),k=a(29370),y=a(5935),N=(a(43813),a(76685),a(30973),a(4290),a(40693)),w=a(79751),A=a(865),C=a(87064);function O(e){const{confirmButtonText:t=d().createElement(E.FormattedMessage,{id:"integrations.delete.confirm.button",defaultMessage:"Yes, delete it"}),linkText:a=d().createElement(E.FormattedMessage,{id:"installed_integrations.delete",defaultMessage:"Delete"}),modalMessage:s,modalTitle:n=d().createElement(E.FormattedMessage,{id:"integrations.delete.confirm.title",defaultMessage:"Delete Integration"}),onDelete:o,openModal:r}=e,i=(0,m.useCallback)((()=>{r({modalId:"delete_integration_confirm",dialogProps:{confirmButtonText:t,confirmButtonClass:"btn btn-danger",modalClass:"integrations-backstage-modal",message:d().createElement(d().Fragment,null,e.subtitleText&&d().createElement("p",null,e.subtitleText),d().createElement("div",{className:"alert alert-danger"},d().createElement(C.A,{additionalClassName:"mr-1"}),d().createElement("strong",null,e.modalMessage))),onConfirm:o,title:n},dialogType:A.A})}),[t,s,n,o,r]);return d().createElement("button",{className:"color--link style--none",onClick:i},a)}O.propTypes={confirmButtonText:b().node,linkText:b().node,subtitleText:b().node,modalMessage:b().node,modalTitle:b().node,onDelete:b().func.isRequired,openModal:b().any.isRequired};const S={openModal:w.q},F=(0,s.connect)(null,S)(O);function T(e){return d().createElement(F,{confirmButtonText:d().createElement(E.FormattedMessage,{id:"emoji_list.delete.confirm.button",defaultMessage:"Delete"}),linkText:d().createElement(E.FormattedMessage,{id:"emoji_list.delete",defaultMessage:"Delete"}),modalMessage:d().createElement(E.FormattedMessage,{id:"emoji_list.delete.confirm.msg",defaultMessage:"This action permanently deletes the custom emoji. Are you sure you want to delete it?"}),modalTitle:d().createElement(E.FormattedMessage,{id:"emoji_list.delete.confirm.title",defaultMessage:"Delete Custom Emoji"}),onDelete:e.onDelete})}T.propTypes={onDelete:b().func.isRequired};const P=[_.A.DELETE_EMOJIS],I=[_.A.DELETE_OTHERS_EMOJIS],x=e=>{let{actions:{deleteCustomEmoji:t},onDelete:a,emoji:s={},creatorUsername:n,currentUserId:o="",creatorDisplayName:r=""}=e;const i=(0,m.useMemo)((()=>({backgroundImage:"url(".concat(N.mT.getCustomEmojiImageUrl(s.id),")")})),[s.id]),l=(0,m.useCallback)((()=>{s&&(a&&a(s.id),t(s.id))}),[t,s,a]);let c=r;n&&n!==c&&(c+=" (@"+n+")");let u=d().createElement(T,{onDelete:l});return u=s.creator_id===o?d().createElement(v.A,{permissions:P},u):d().createElement(v.A,{permissions:P},d().createElement(v.A,{permissions:I},u)),d().createElement("tr",{className:"backstage-list__item"},d().createElement("td",{className:"emoji-list__name"},":"+s.name+":"),d().createElement("td",{className:"emoji-list__image"},d().createElement("span",{className:"emoticon",style:i})),d().createElement("td",{className:"emoji-list__creator"},c),d().createElement("td",{className:"emoji-list-item_actions"},u))};x.propTypes={emojiId:b().string,currentUserId:b().string,creatorDisplayName:b().string,creatorUsername:b().string,onDelete:b().func,actions:b().shape({deleteCustomEmoji:b().func.isRequired}).isRequired};const R=d().memo(x),j=(0,s.connect)((function(e,t){const a=e.entities.emojis.customEmoji[t.emojiId],s=(0,c.wz)(e,a.creator_id);return{emoji:a,creatorDisplayName:(0,M.GZ)(e,s),creatorUsername:s?s.username:"",currentUserId:(0,c.WR)(e),currentTeam:(0,l.H7)(e)}}),(function(e){return{actions:(0,g.bindActionCreators)({deleteCustomEmoji:k.xU},e)}}))(R);var U=a(1396),D=a(30491),L=a(14309),q=a(5955),H=a(57891),W=a(12082);function B(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class G extends d().PureComponent{constructor(e){super(e),B(this,"nextPage",(e=>{e&&e.preventDefault();const t=this.state.page+1;this.setState({nextLoading:!0}),this.props.actions.getCustomEmojis(t,50,o.zT.SORT_BY_NAME,!0).then((e=>{let{data:a}=e;this.setState({page:t,nextLoading:!1}),a&&a.length<50&&this.setState({missingPages:!1}),this.props.scrollToTop()}))})),B(this,"previousPage",(e=>{e&&e.preventDefault(),this.setState({page:this.state.page-1,nextLoading:!1,missingPages:!0}),this.props.scrollToTop()})),B(this,"onSearchChange",(e=>{if(!e||!e.target)return;const t=e.target.value||"";clearTimeout(this.searchTimeout),this.searchTimeout=setTimeout((async()=>{if(""===t.trim())return void this.setState({searchEmojis:null,page:0});this.setState({loading:!0});const{data:e}=await this.props.actions.searchCustomEmojis(t,{},!0);e?this.setState({searchEmojis:e.map((e=>e.id)),loading:!1}):this.setState({searchEmojis:[],loading:!1})}),200)})),B(this,"deleteFromSearch",(e=>{if(!this.state.searchEmojis)return;const t=this.state.searchEmojis.indexOf(e);if(t<0)return;const a=[...this.state.searchEmojis];a.splice(t,1),this.setState({searchEmojis:a})})),this.searchTimeout=null,this.state={loading:!0,page:0,nextLoading:!1,searchEmojis:null,missingPages:!0}}async componentDidMount(){this.props.actions.getCustomEmojis(0,51,o.zT.SORT_BY_NAME,!0).then((e=>{let{data:t}=e;this.setState({loading:!1}),t&&t.length<50&&this.setState({missingPages:!1})}))}render(){const e=this.state.searchEmojis,t=[];let a,s;if(this.state.loading)t.push(d().createElement("tr",{key:"loading",className:"backstage-list__item backstage-list__empty"},d().createElement("td",{colSpan:4},d().createElement(U.A,{key:"loading"}))));else if(0===this.props.emojiIds.length||e&&0===e.length)t.push(d().createElement("tr",{key:"empty",className:"backstage-list__item backstage-list__empty"},d().createElement("td",{colSpan:4},d().createElement(E.FormattedMessage,{id:"emoji_list.empty",defaultMessage:"No custom emoji found"}))));else if(e)e.forEach((e=>{t.push(d().createElement(j,{key:"emoji_search_item"+e,emojiId:e,onDelete:this.deleteFromSearch,actions:{deleteCustomEmoji:k.xU}}))}));else{const e=50*this.state.page,n=e+50;if(this.props.emojiIds.slice(e,n).forEach((e=>{t.push(d().createElement(j,{key:"emoji_list_item"+e,emojiId:e,actions:{deleteCustomEmoji:k.xU}}))})),this.state.missingPages){const e=d().createElement("span",null,d().createElement(E.FormattedMessage,{id:"filtered_user_list.next",defaultMessage:"Next"}),d().createElement(q.A,{additionalClassName:"ml-2"}));a=d().createElement(L.A,{btnClass:"btn-tertiary",extraClasses:"pull-right",onClick:this.nextPage,saving:this.state.nextLoading,disabled:this.state.nextLoading,defaultMessage:e,savingMessage:e})}this.state.page>0&&(s=d().createElement("button",{className:"btn btn-tertiary",onClick:this.previousPage},d().createElement(H.A,{additionalClassName:"mr-2"}),d().createElement(E.FormattedMessage,{id:"filtered_user_list.prev",defaultMessage:"Previous"})))}return d().createElement("div",null,d().createElement("div",{className:"backstage-filters"},d().createElement("div",{className:"backstage-filter__search"},d().createElement(W.A,null),d().createElement(D.A,{type:"search",className:"form-control",placeholder:(0,E.defineMessage)({id:"emoji_list.search",defaultMessage:"Search Custom Emoji"}),onChange:this.onSearchChange,style:z.search}))),d().createElement("span",{className:"backstage-list__help"},d().createElement("p",null,d().createElement(E.FormattedMessage,{id:"emoji_list.help",defaultMessage:"Custom emoji are available to everyone on your server. Type ':' followed by two characters in a message box to bring up the emoji selection menu."})),d().createElement("p",null,d().createElement(E.FormattedMessage,{id:"emoji_list.help2",defaultMessage:"Tip: If you add #, ##, or ### as the first character on a new line containing emoji, you can use larger sized emoji. To try it out, send a message such as: '# :smile:'."}))),d().createElement("div",{className:"backstage-list"},d().createElement("table",{className:"emoji-list__table"},d().createElement("thead",null,d().createElement("tr",{className:"backstage-list__item emoji-list__table-header"},d().createElement("th",{className:"emoji-list__name"},d().createElement(E.FormattedMessage,{id:"emoji_list.name",defaultMessage:"Name"})),d().createElement("th",{className:"emoji-list__image"},d().createElement(E.FormattedMessage,{id:"emoji_list.image",defaultMessage:"Image"})),d().createElement("th",{className:"emoji-list__creator"},d().createElement(E.FormattedMessage,{id:"emoji_list.creator",defaultMessage:"Creator"})),d().createElement("th",{className:"emoji-list_actions"},d().createElement(E.FormattedMessage,{id:"emoji_list.actions",defaultMessage:"Actions"})))),d().createElement("tbody",null,t))),d().createElement("div",{className:"filter-controls pt-3"},s,a))}}const z={search:{flexGrow:0,flexShrink:0}},Y=(0,s.connect)((function(e){return{emojiIds:(0,y.Pi)(e)||[]}}),(function(e){return{actions:(0,g.bindActionCreators)({getCustomEmojis:k.J5,searchCustomEmojis:k.fJ},e)}}))(G),V=[_.A.CREATE_EMOJIS],J=["system_admin","team_admin","system_user","team_user"];function K(e){let{teamDisplayName:t="",teamName:a="",siteName:s="",scrollToTop:o,currentTheme:r,actions:i}=e;const l=(0,E.useIntl)();(0,m.useEffect)((()=>(c(),i.loadRolesIfNeeded(J),M.hm(),()=>{M.AZ(r)})),[]),(0,m.useEffect)((()=>{c()}),[s]);const c=()=>{document.title=l.formatMessage({id:"custom_emoji.header",defaultMessage:"Custom Emoji"})+" - "+t+" "+s};return d().createElement("div",{className:"backstage-content emoji-list"},d().createElement("div",{className:"backstage-header"},d().createElement("h1",null,d().createElement(E.FormattedMessage,{id:"emoji_list.header",defaultMessage:"Custom Emoji"})),d().createElement(v.A,{permissions:V},d().createElement(n.Link,{className:"add-link",to:"/"+a+"/emoji/add"},d().createElement("button",{type:"button",className:"btn btn-primary"},d().createElement(E.FormattedMessage,{id:"emoji_list.add",defaultMessage:"Add Custom Emoji"}))))),d().createElement(Y,{scrollToTop:o}))}K.propTypes={teamName:b().string,teamDisplayName:b().string,siteName:b().string,actions:b().shape({}).isRequired};const X=(0,s.connect)((function(e){const t=(0,l.H7)(e);return{teamName:null==t?void 0:t.name,teamDisplayName:null==t?void 0:t.display_name,siteName:e.entities.general.config.SiteName,currentTheme:(0,h.O4)(e)}}),(function(e){return{actions:(0,g.bindActionCreators)({loadRolesIfNeeded:p.cF},e)}}))(K);var Z=a(69410);a(12401),a(1112);const $=e=>{let{children:t}=e;const{formatMessage:a}=(0,E.useIntl)(),s=[];return d().Children.forEach(t,((e,t)=>{0!==t&&s.push(d().createElement("span",{key:"divider"+t,className:"backstage-header__divider"},d().createElement("i",{className:"fa fa-angle-right",title:a({id:"generic_icons.breadcrumb",defaultMessage:"Breadcrumb Icon"})}))),s.push(e)})),d().createElement("div",{className:"backstage-header"},d().createElement("h1",null,s))};var Q=a(85990),ee=a(57565),te=a(83007),ae=a(78451);function se(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class ne extends d().PureComponent{constructor(e){super(e),se(this,"handleFormSubmit",(async e=>this.handleSubmit(e))),se(this,"handleSaveButtonClick",(async e=>this.handleSubmit(e))),se(this,"handleSubmit",(async e=>{const{actions:t,emojiMap:a,user:s,team:n}=this.props,{image:o,name:r,saving:i}=this.state;if(e.preventDefault(),i)return;this.setState({saving:!0,error:null});const l={creator_id:s.id,name:r.trim().toLowerCase()};if(l.name.startsWith(":")&&l.name.endsWith(":")&&(l.name=l.name.substring(1,l.name.length-1)),!l.name)return void this.setState({saving:!1,error:d().createElement(E.FormattedMessage,{id:"add_emoji.nameRequired",defaultMessage:"A name is required for the emoji"})});if(/[^a-z0-9+_-]/.test(l.name))return void this.setState({saving:!1,error:d().createElement(E.FormattedMessage,{id:"add_emoji.nameInvalid",defaultMessage:"An emoji's name can only contain lowercase letters, numbers, and the symbols '-', '+' and '_'."})});if(a.hasSystemEmoji(l.name))return void this.setState({saving:!1,error:d().createElement(E.FormattedMessage,{id:"add_emoji.nameTaken",defaultMessage:"This name is already in use by a system emoji. Please choose another name."})});if(a.has(l.name))return void this.setState({saving:!1,error:d().createElement(E.FormattedMessage,{id:"add_emoji.customNameTaken",defaultMessage:"This name is already in use by a custom emoji. Please choose another name."})});if(!o)return void this.setState({saving:!1,error:d().createElement(E.FormattedMessage,{id:"add_emoji.imageRequired",defaultMessage:"An image is required for the emoji"})});if(o.size>1048576)return void this.setState({saving:!1,error:d().createElement(E.FormattedMessage,{id:"add_emoji.imageTooLarge",defaultMessage:"Unable to create emoji. Image must be less than 1 MB in size."})});const c=await t.createCustomEmoji(l,o);if("data"in c&&c&&c.data.name===l.name)return void(0,te.J)().push("/"+n.name+"/emoji");if("error"in c){const e=c;if(e)return void this.setState({saving:!1,error:e.error.message})}const m=d().createElement(E.FormattedMessage,{id:"add_emoji.failedToAdd",defaultMessage:"Something went wrong when adding the custom emoji."});this.setState({saving:!1,error:m})})),se(this,"updateName",(e=>{this.setState({name:e.target.value})})),se(this,"updateImage",(e=>{if(null==e.target.files||0===e.target.files.length)return void this.setState({image:null,imageUrl:""});const t=e.target.files[0],a=new FileReader;a.onload=()=>{this.setState({image:t,imageUrl:a.result})},a.readAsDataURL(t)})),this.state={name:"",image:null,imageUrl:"",saving:!1,error:null}}render(){let e=null;this.state.image&&(e=d().createElement("span",{className:"add-emoji__filename"},this.state.image.name));let t=null;return this.state.imageUrl&&(t=d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"preview"},d().createElement(E.FormattedMessage,{id:"add_emoji.preview",defaultMessage:"Preview"})),d().createElement("div",{className:"col-md-5 col-sm-8 add-emoji__preview"},d().createElement(E.FormattedMessage,{id:"add_emoji.preview.sentence",defaultMessage:"This is a sentence with {image} in it.",values:{image:d().createElement("span",{className:"emoticon",style:{backgroundImage:"url("+this.state.imageUrl+")"}})}})))),d().createElement("div",{className:"backstage-content row"},d().createElement($,null,d().createElement(n.Link,{to:"/"+this.props.team.name+"/emoji"},d().createElement(E.FormattedMessage,{id:"emoji_list.header",defaultMessage:"Custom Emoji"})),d().createElement(E.FormattedMessage,{id:"add_emoji.header",defaultMessage:"Add"})),d().createElement("div",{className:"backstage-form"},d().createElement("form",{className:"form-horizontal",onSubmit:this.handleFormSubmit},d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"name"},d().createElement(E.FormattedMessage,{id:"add_emoji.name",defaultMessage:"Name"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"name",type:"text",maxLength:64,className:"form-control",value:this.state.name,onChange:this.updateName}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_emoji.name.help",defaultMessage:"Name your emoji. The name can be up to 64 characters, and can contain lowercase letters, numbers, and the symbols '-' and '_'."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"image"},d().createElement(E.FormattedMessage,{id:"add_emoji.image",defaultMessage:"Image"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("div",null,d().createElement("div",{className:"add-emoji__upload"},d().createElement("button",{className:"btn btn-primary"},d().createElement(E.FormattedMessage,{id:"add_emoji.image.button",defaultMessage:"Select"})),d().createElement("input",{id:"select-emoji",type:"file",accept:ae.YM.ACCEPT_EMOJI_IMAGE,multiple:!1,onChange:this.updateImage})),e,d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_emoji.image.help",defaultMessage:"Specify a .gif, .png, or .jpg file of up to 64 KB for your emoji. The dimensions can be up to 128 pixels by 128 pixels."}))))),t,d().createElement("div",{className:"backstage-form__footer"},d().createElement(Q.A,{type:"backstage",error:this.state.error}),d().createElement(n.Link,{className:"btn btn-tertiary",to:"/"+this.props.team.name+"/emoji"},d().createElement(E.FormattedMessage,{id:"add_emoji.cancel",defaultMessage:"Cancel"})),d().createElement(ee.A,{"data-testid":"save-button",className:"btn btn-primary",type:"submit",spinning:this.state.saving,spinningText:(0,E.defineMessage)({id:"add_emoji.saving",defaultMessage:"Saving..."}),onClick:this.handleSaveButtonClick},d().createElement(E.FormattedMessage,{id:"add_emoji.save",defaultMessage:"Save"}))))))}}const oe=(0,s.connect)((function(e){return{emojiMap:(0,Z.v6)(e)}}),(function(e){return{actions:(0,g.bindActionCreators)({createCustomEmoji:k.uI},e)}}))(ne);var re=a(17518),ie=a(72208),le=a(26808),ce=a(78911);const me=a.p+"files/357ed0208b2f0eab27a2.jpg",de=a.p+"files/445dd2ab20befc4a78c9.png",ue=a.p+"files/7199acab0ef555a345ba.png",ge=a.p+"files/4651fd92bdc643485b9e.jpg",pe=a.p+"files/8a9816ae9c0cd846ae78.jpg",he=e=>{let{image:t,title:a,description:s,link:o}=e;return d().createElement(n.Link,{to:o,className:"integration-option"},d().createElement("img",{alt:"integration image",className:"integration-option__image",src:t}),d().createElement("div",{className:"integration-option__title"},a),d().createElement("div",{className:"integration-option__description"},s))};he.propTypes={image:b().string.isRequired,title:b().element.isRequired,description:b().element.isRequired,link:b().string.isRequired};const fe=d().memo(he);function be(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Ee extends d().PureComponent{constructor(){super(...arguments),be(this,"updateTitle",(()=>{const e=this.props.siteName||"";document.title=M.Vw({id:"admin.sidebar.integrations",defaultMessage:"Integrations"})+" - "+this.props.team.display_name+" "+e}))}componentDidMount(){this.updateTitle()}render(){const e=[];return this.props.enableIncomingWebhooks&&e.push(d().createElement(le.A,{teamId:this.props.team.id,permissions:[o.xB.MANAGE_INCOMING_WEBHOOKS],key:"incomingWebhookPermission"},d().createElement(fe,{key:"incomingWebhook",image:me,title:d().createElement(E.FormattedMessage,{id:"integrations.incomingWebhook.title",defaultMessage:"Incoming Webhooks"}),description:d().createElement(E.FormattedMessage,{id:"integrations.incomingWebhook.description",defaultMessage:"Incoming webhooks allow external integrations to send messages"}),link:"/"+this.props.team.name+"/integrations/incoming_webhooks"}))),this.props.enableOutgoingWebhooks&&e.push(d().createElement(le.A,{teamId:this.props.team.id,permissions:[o.xB.MANAGE_OUTGOING_WEBHOOKS],key:"outgoingWebhookPermission"},d().createElement(fe,{key:"outgoingWebhook",image:ge,title:d().createElement(E.FormattedMessage,{id:"integrations.outgoingWebhook.title",defaultMessage:"Outgoing Webhooks"}),description:d().createElement(E.FormattedMessage,{id:"integrations.outgoingWebhook.description",defaultMessage:"Outgoing webhooks allow external integrations to receive and respond to messages"}),link:"/"+this.props.team.name+"/integrations/outgoing_webhooks"}))),this.props.enableCommands&&e.push(d().createElement(le.A,{teamId:this.props.team.id,permissions:[o.xB.MANAGE_SLASH_COMMANDS],key:"commandPermission"},d().createElement(fe,{key:"command",image:pe,title:d().createElement(E.FormattedMessage,{id:"integrations.command.title",defaultMessage:"Slash Commands"}),description:d().createElement(E.FormattedMessage,{id:"integrations.command.description",defaultMessage:"Slash commands send events to an external integration"}),link:"/"+this.props.team.name+"/integrations/commands"}))),this.props.enableOAuthServiceProvider&&e.push(d().createElement(ie.A,{permissions:[o.xB.MANAGE_OAUTH],key:"oauth2AppsPermission"},d().createElement(fe,{key:"oauth2Apps",image:de,title:d().createElement(E.FormattedMessage,{id:"integrations.oauthApps.title",defaultMessage:"OAuth 2.0 Applications"}),description:d().createElement(E.FormattedMessage,{id:"integrations.oauthApps.description",defaultMessage:"Auth 2.0 allows external applications to make authorized requests to the Mattermost API"}),link:"/"+this.props.team.name+"/integrations/oauth2-apps"}))),this.props.enableOutgoingOAuthConnections&&e.push(d().createElement(le.A,{teamId:this.props.team.id,permissions:[o.xB.MANAGE_OUTGOING_OAUTH_CONNECTIONS],key:"outgoingOAuthConnectionsPermission"},d().createElement(fe,{key:"outgoingOAuthConnections",image:ue,title:d().createElement(E.FormattedMessage,{id:"integrations.outgoingOAuthConnections.title",defaultMessage:"Outgoing OAuth Connections"}),description:d().createElement(E.FormattedMessage,{id:"integrations.outgoingOAuthConnections.description",defaultMessage:"Outgoing OAuth Connections allow custom integrations to communicate to external systems"}),link:"/"+this.props.team.name+"/integrations/outgoing-oauth2-connections"}))),e.push(d().createElement(ie.A,{permissions:["manage_bots"],key:"botsPermissions"},d().createElement(fe,{image:ce,title:d().createElement(E.FormattedMessage,{id:"bots.manage.header",defaultMessage:"Bot Accounts"}),description:d().createElement(E.FormattedMessage,{id:"bots.manage.description",defaultMessage:"Use bot accounts to integrate with Mattermost through plugins or the API"}),link:"/"+this.props.team.name+"/integrations/bots"}))),d().createElement("div",{className:"backstage-content row"},d().createElement("div",{className:"backstage-header"},d().createElement("h1",null,d().createElement(E.FormattedMessage,{id:"integrations.header",defaultMessage:"Integrations"}))),d().createElement("div",{className:"backstage-list__help"},d().createElement(E.FormattedMessage,{id:"integrations.help",defaultMessage:"Visit the {appDirectory} to find self-hosted, third-party apps and integrations for Mattermost.",values:{appDirectory:d().createElement(re.A,{href:"https://mattermost.com/marketplace",location:"integrations"},d().createElement(E.FormattedMessage,{id:"integrations.help.appDirectory",defaultMessage:"App Directory"}))}})),d().createElement("div",{className:"integrations-list d-flex flex-wrap"},e))}}be(Ee,"propTypes",{enableIncomingWebhooks:b().bool.isRequired,enableOutgoingWebhooks:b().bool.isRequired,enableCommands:b().bool.isRequired,enableOAuthServiceProvider:b().bool.isRequired,enableOutgoingOAuthConnections:b().bool.isRequired});const _e=(0,s.connect)((function(e){const t=(0,r.zj)(e);return{siteName:t.SiteName,enableIncomingWebhooks:"true"===t.EnableIncomingWebhooks,enableOutgoingWebhooks:"true"===t.EnableOutgoingWebhooks,enableCommands:"true"===t.EnableCommands,enableOAuthServiceProvider:"true"===t.EnableOAuthServiceProvider,enableOutgoingOAuthConnections:"true"===t.EnableOutgoingOAuthConnections}}))(Ee);var ve=a(12966),Me=(a(74883),a(8361)),ke=a(65952),ye=a(84836),Ne=a(16230);const we=e=>{let{channels:t,selectOpen:a,selectPrivate:s,selectDm:n,value:o,onChange:r}=e;const i=(0,E.useIntl)(),l=[d().createElement("option",{key:"",value:""},i.formatMessage({id:"channel_select.placeholder",defaultMessage:"--- Select a channel ---"}))];return t.forEach((e=>{const t=e.display_name||e.name;(e.type===ae.Ay.OPEN_CHANNEL&&a||e.type===ae.Ay.PRIVATE_CHANNEL&&s||e.type===ae.Ay.DM_CHANNEL&&n)&&l.push(d().createElement("option",{key:e.id,value:e.id},t))})),d().createElement("select",{className:"form-control",value:o,onChange:r,id:"channelSelect"},l)},Ae=(0,m.memo)(we),Ce=(0,Me.Mz)("getMyChannelsSorted",ke.$3,ye.v,((e,t)=>[...e.filter((e=>0===e.delete_at))].sort(Ne.U8.bind(null,t)))),Oe=(0,s.connect)((function(e){return{channels:Ce(e)}}))(Ae);function Se(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Fe extends m.PureComponent{constructor(e){super(e),Se(this,"getStateFromHook",(e=>({displayName:(null==e?void 0:e.display_name)||"",description:(null==e?void 0:e.description)||"",channelId:(null==e?void 0:e.channel_id)||"",channelLocked:(null==e?void 0:e.channel_locked)||!1,username:(null==e?void 0:e.username)||"",iconURL:(null==e?void 0:e.icon_url)||"",saving:!1,serverError:"",clientError:null}))),Se(this,"handleSubmit",(e=>{var t,a,s,n,o,r;if(e.preventDefault(),this.state.saving)return;if(this.setState({saving:!0,serverError:"",clientError:null}),!this.state.channelId)return void this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.channelRequired",defaultMessage:"A valid channel is required"})});const i={channel_id:this.state.channelId,channel_locked:this.state.channelLocked,display_name:this.state.displayName,description:this.state.description,username:this.state.username,icon_url:this.state.iconURL,id:(null===(t=this.props.initialHook)||void 0===t?void 0:t.id)||"",create_at:(null===(a=this.props.initialHook)||void 0===a?void 0:a.create_at)||0,update_at:(null===(s=this.props.initialHook)||void 0===s?void 0:s.update_at)||0,delete_at:(null===(n=this.props.initialHook)||void 0===n?void 0:n.delete_at)||0,team_id:(null===(o=this.props.initialHook)||void 0===o?void 0:o.team_id)||"",user_id:(null===(r=this.props.initialHook)||void 0===r?void 0:r.user_id)||""};this.props.action(i).then((()=>this.setState({saving:!1})))})),Se(this,"updateDisplayName",(e=>{this.setState({displayName:e.target.value})})),Se(this,"updateDescription",(e=>{this.setState({description:e.target.value})})),Se(this,"updateChannelId",(e=>{this.setState({channelId:e.target.value})})),Se(this,"updateChannelLocked",(e=>{this.setState({channelLocked:e.target.checked})})),Se(this,"updateUsername",(e=>{this.setState({username:e.target.value})})),Se(this,"updateIconURL",(e=>{this.setState({iconURL:e.target.value})})),this.state=this.getStateFromHook(this.props.initialHook)}render(){const e=this.props.header,t=this.props.footer;return d().createElement("div",{className:"backstage-content"},d().createElement($,null,d().createElement(n.Link,{to:"/".concat(this.props.team.name,"/integrations/incoming_webhooks")},d().createElement(E.FormattedMessage,{id:"incoming_webhooks.header",defaultMessage:"Incoming Webhooks"})),d().createElement(E.FormattedMessage,{id:e.id,defaultMessage:e.defaultMessage})),d().createElement("div",{className:"backstage-form"},d().createElement("form",{className:"form-horizontal",onSubmit:e=>this.handleSubmit(e)},d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"displayName"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.displayName",defaultMessage:"Title"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"displayName",type:"text",maxLength:64,className:"form-control",value:this.state.displayName,onChange:this.updateDisplayName}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.displayName.help",defaultMessage:"Specify a title, of up to 64 characters, for the webhook settings page."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"description"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.description",defaultMessage:"Description"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"description",type:"text",maxLength:500,className:"form-control",value:this.state.description,onChange:this.updateDescription}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.description.help",defaultMessage:"Describe your incoming webhook."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"channelId"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.channel",defaultMessage:"Channel"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement(Oe,{value:this.state.channelId,onChange:this.updateChannelId,selectOpen:!0,selectPrivate:!0,selectDm:!1}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.channel.help",defaultMessage:"This is the default public or private channel that receives the webhook payloads. When setting up the webhook, you must belong to the private channel."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"channelLocked"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.channelLocked",defaultMessage:"Lock to this channel"})),d().createElement("div",{className:"col-md-5 col-sm-8 checkbox"},d().createElement("input",{id:"channelLocked",type:"checkbox",checked:this.state.channelLocked,onChange:this.updateChannelLocked}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.channelLocked.help",defaultMessage:"If set, the incoming webhook can post only to the selected channel."})))),this.props.enablePostUsernameOverride&&d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"username"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.username",defaultMessage:"Username"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"username",type:"text",maxLength:22,className:"form-control",value:this.state.username,onChange:this.updateUsername}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.username.help",defaultMessage:'Specify the username this integration will post as. Usernames can be up to 22 characters, and can contain lowercase letters, numbers and the symbols \\"-\\", \\"_\\", and \\".\\". If left blank, the name specified by the webhook creator is used.'})))),this.props.enablePostIconOverride&&d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"iconURL"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.icon_url",defaultMessage:"Profile Picture"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"iconURL",type:"text",maxLength:1024,className:"form-control",value:this.state.iconURL,onChange:this.updateIconURL}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.icon_url.help",defaultMessage:"Enter the URL of a .png or .jpg file for the profile picture of this integration when posting. The file should be at least 128 pixels by 128 pixels. If left blank, the profile picture specified by the webhook creator is used."})))),d().createElement("div",{className:"backstage-form__footer"},d().createElement(Q.A,{type:"backstage",errors:[this.props.serverError,this.state.clientError]}),d().createElement(n.Link,{className:"btn btn-tertiary",to:"/".concat(this.props.team.name,"/integrations/incoming_webhooks")},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.cancel",defaultMessage:"Cancel"})),d().createElement(ee.A,{className:"btn btn-primary",type:"submit",spinning:this.state.saving,spinningText:this.props.loading,onClick:e=>this.handleSubmit(e),id:"saveWebhook"},d().createElement(E.FormattedMessage,{id:t.id,defaultMessage:t.defaultMessage}))))))}}const Te=(0,E.defineMessages)({footer:{id:"add_incoming_webhook.save",defaultMessage:"Save"},header:{id:"integrations.add",defaultMessage:"Add"},loading:{id:"add_incoming_webhook.saving",defaultMessage:"Saving..."}}),Pe=e=>{let{team:t,enablePostUsernameOverride:a,enablePostIconOverride:s,actions:n}=e;const[o,r]=(0,m.useState)(""),i=(0,m.useCallback)((async e=>{r("");const{data:a,error:s}=await n.createIncomingHook(e);a?(0,te.J)().push("/".concat(t.name,"/integrations/confirm?type=incoming_webhooks&id=").concat(a.id)):s&&r(s.message)}),[n,t.name]);return d().createElement(Fe,{team:t,header:Te.header,footer:Te.footer,loading:Te.loading,enablePostUsernameOverride:a,enablePostIconOverride:s,action:i,serverError:o})};Pe.propTypes={enablePostUsernameOverride:b().bool.isRequired,enablePostIconOverride:b().bool.isRequired,actions:b().shape({createIncomingHook:b().func.isRequired}).isRequired};const Ie=(0,m.memo)(Pe),xe=(0,s.connect)((function(e){const t=(0,r.zj)(e);return{enablePostUsernameOverride:"true"===t.EnablePostUsernameOverride,enablePostIconOverride:"true"===t.EnablePostIconOverride}}),(function(e){return{actions:(0,g.bindActionCreators)({createIncomingHook:ve.Ii},e)}}))(Ie);function Re(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class je extends d().PureComponent{constructor(e){super(e),Re(this,"getStateFromApp",(e=>({name:e.name||"",description:e.description||"",homepage:e.homepage||"",icon_url:e.icon_url||"",callbackUrls:e.callback_urls?e.callback_urls.join("\n"):"",is_trusted:e.is_trusted||!1,has_icon:Boolean(e.icon_url),saving:!1,clientError:null}))),Re(this,"imageLoaded",(()=>{var e;null!==(e=this.icon_url.current)&&void 0!==e&&e.value&&this.setState({has_icon:!0,icon_url:this.icon_url.current.value})})),Re(this,"handleSubmit",(e=>{if(e.preventDefault(),this.state.saving)return;if(this.setState({saving:!0,clientError:""}),!this.state.name)return void this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_oauth_app.nameRequired",defaultMessage:"Name for the OAuth 2.0 application is required."})});if(!this.state.description)return void this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_oauth_app.descriptionRequired",defaultMessage:"Description for the OAuth 2.0 application is required."})});if(!this.state.homepage)return void this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_oauth_app.homepageRequired",defaultMessage:"Homepage for the OAuth 2.0 application is required."})});const t=[];for(let e of this.state.callbackUrls.split("\n"))e=e.trim(),e.length>0&&t.push(e);if(0===t.length)return void this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_oauth_app.callbackUrlsRequired",defaultMessage:"One or more callback URLs are required."})});const a={name:this.state.name,callback_urls:t,homepage:this.state.homepage,description:this.state.description,is_trusted:this.state.is_trusted,icon_url:this.state.icon_url};this.props.action(a).then((()=>this.setState({saving:!1})))})),Re(this,"updateName",(e=>{this.setState({name:e.target.value})})),Re(this,"updateTrusted",(e=>{this.setState({is_trusted:"true"===e.target.value})})),Re(this,"updateDescription",(e=>{this.setState({description:e.target.value})})),Re(this,"updateHomepage",(e=>{this.setState({homepage:e.target.value})})),Re(this,"updateIconUrl",(e=>{this.setState({has_icon:!1,icon_url:e.target.value}),this.image.src=e.target.value})),Re(this,"updateCallbackUrls",(e=>{this.setState({callbackUrls:e.target.value})})),this.image=new Image,this.image.onload=this.imageLoaded,this.icon_url=d().createRef(),this.state=this.getStateFromApp(this.props.initialApp||{})}render(){const e=this.props.header,t=this.props.footer,a=this.props.renderExtra;let s;this.state.has_icon&&(s=d().createElement("div",{className:"integration__icon"},d().createElement("img",{alt:"integration icon",src:this.state.icon_url})));const r=d().createElement(ie.A,{permissions:[o.xB.MANAGE_SYSTEM]},d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"is_trusted"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.trusted",defaultMessage:"Is Trusted"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("label",{className:"radio-inline"},d().createElement("input",{type:"radio",value:"true",name:"is_trusted",checked:this.state.is_trusted,onChange:this.updateTrusted}),d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.trusted.yes",defaultMessage:"Yes"})),d().createElement("label",{className:"radio-inline"},d().createElement("input",{type:"radio",value:"false",name:"is_trusted",checked:!this.state.is_trusted,onChange:this.updateTrusted}),d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.trusted.no",defaultMessage:"No"})),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.trusted.help",defaultMessage:"If true, the OAuth 2.0 application is considered trusted by the Mattermost server and does not require the user to accept authorization. If false, a window opens to ask the user to accept or deny the authorization."})))));return d().createElement("div",{className:"backstage-content"},d().createElement($,null,d().createElement(n.Link,{to:"/".concat(this.props.team.name,"/integrations/oauth2-apps")},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.header",defaultMessage:"Installed OAuth2 Apps"})),d().createElement(E.FormattedMessage,{id:e.id,defaultMessage:e.defaultMessage})),d().createElement("div",{className:"backstage-form"},s,d().createElement("form",{className:"form-horizontal"},r,d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"name"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.name",defaultMessage:"Display Name"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"name",type:"text",maxLength:64,className:"form-control",value:this.state.name,onChange:this.updateName}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.name.help",defaultMessage:"Specify the display name, of up to 64 characters, for your OAuth 2.0 application."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"description"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.description",defaultMessage:"Description"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"description",type:"text",maxLength:512,className:"form-control",value:this.state.description,onChange:this.updateDescription}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.description.help",defaultMessage:"Describe your OAuth 2.0 application."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"homepage"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.homepage",defaultMessage:"Homepage"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"homepage",type:"url",maxLength:256,className:"form-control",value:this.state.homepage,onChange:this.updateHomepage}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.homepage.help",defaultMessage:"This is the URL for the homepage of the OAuth 2.0 application. Depending on your server configuration, use HTTP or HTTPS in the URL."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"icon_url"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.iconUrl",defaultMessage:"Icon URL"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"icon_url",ref:this.icon_url,type:"url",maxLength:512,className:"form-control",value:this.state.icon_url,onChange:this.updateIconUrl}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.icon.help",defaultMessage:"(Optional) The URL of the image used for your OAuth 2.0 application. Make sure you use HTTP or HTTPS in your URL."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"callbackUrls"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.callbackUrls",defaultMessage:"Callback URLs (One Per Line)"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("textarea",{id:"callbackUrls",rows:3,maxLength:1024,className:"form-control",value:this.state.callbackUrls,onChange:this.updateCallbackUrls}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.callbackUrls.help",defaultMessage:"The redirect URIs to which the service will redirect users after accepting or denying authorization of your application, and which will handle authorization codes or access tokens. Must be a valid URL and start with http:// or https://."})))),d().createElement("div",{className:"backstage-form__footer"},d().createElement(Q.A,{type:"backstage",errors:[this.props.serverError,this.state.clientError]}),d().createElement(n.Link,{className:"btn btn-tertiary",to:"/".concat(this.props.team.name,"/integrations/oauth2-apps")},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.cancel",defaultMessage:"Cancel"})),d().createElement(ee.A,{className:"btn btn-primary",type:"submit",spinning:this.state.saving,spinningText:this.props.loading,onClick:this.handleSubmit,id:"saveOauthApp"},d().createElement(E.FormattedMessage,{id:t.id,defaultMessage:t.defaultMessage})),a))))}}Re(je,"propTypes",{renderExtra:b().element,serverError:b().string.isRequired,action:b().func.isRequired});const Ue=(0,E.defineMessages)({footer:{id:"installed_oauth_apps.save",defaultMessage:"Save"},header:{id:"add_oauth_app.header",defaultMessage:"Add"},loading:{id:"installed_oauth_apps.saving",defaultMessage:"Saving..."}}),De=e=>{let{team:t,actions:a}=e;const s=(0,n.useHistory)(),[o,r]=(0,m.useState)("");return d().createElement(je,{team:t,header:Ue.header,footer:Ue.footer,loading:Ue.loading,action:async e=>{r("");const{data:n,error:o}=await a.addOAuthApp(e);n?s.push("/".concat(t.name,"/integrations/confirm?type=oauth2-apps&id=").concat(n.id)):o&&r(o.message)},serverError:o})};De.propTypes={actions:b().shape({addOAuthApp:b().func.isRequired}).isRequired};const Le=De,qe=(0,s.connect)(null,(function(e){return{actions:(0,g.bindActionCreators)({addOAuthApp:ve.s8},e)}}))(Le);function He(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a(83931);class We extends d().PureComponent{constructor(e){super(e),He(this,"getStateFromHook",(e=>{let t="";if(null!=e&&e.trigger_words){let a=0;for(a=0;a<e.trigger_words.length;a++)t+=e.trigger_words[a]+"\n"}let a="";if(null!=e&&e.callback_urls){let t=0;for(t=0;t<e.callback_urls.length;t++)a+=e.callback_urls[t]+"\n"}return{displayName:(null==e?void 0:e.display_name)||"",description:(null==e?void 0:e.description)||"",contentType:(null==e?void 0:e.content_type)||"application/x-www-form-urlencoded",channelId:(null==e?void 0:e.channel_id)||"",triggerWords:t,triggerWhen:(null==e?void 0:e.trigger_when)||0,callbackUrls:a,saving:!1,clientError:null,username:(null==e?void 0:e.username)||"",iconURL:(null==e?void 0:e.icon_url)||""}})),He(this,"handleSubmit",(e=>{var t,a,s,n,o,r;if(e.preventDefault(),this.state.saving)return;this.setState({saving:!0,clientError:null});const i=[];if(this.state.triggerWords)for(let e of this.state.triggerWords.split("\n"))e=e.trim(),e.length>0&&i.push(e);if(!this.state.channelId&&0===i.length)return void this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.triggerWordsOrChannelRequired",defaultMessage:"A valid channel or a list of trigger words is required"})});const l=[];for(let e of this.state.callbackUrls.split("\n"))e=e.trim(),e.length>0&&l.push(e);if(0===l.length)return void this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.callbackUrlsRequired",defaultMessage:"One or more callback URLs are required"})});const c={team_id:this.props.team.id,channel_id:this.state.channelId,trigger_words:i,trigger_when:this.state.triggerWhen,callback_urls:l,display_name:this.state.displayName,content_type:this.state.contentType,description:this.state.description,username:this.state.username,icon_url:this.state.iconURL,id:(null===(t=this.props.initialHook)||void 0===t?void 0:t.id)||"",create_at:(null===(a=this.props.initialHook)||void 0===a?void 0:a.create_at)||0,update_at:(null===(s=this.props.initialHook)||void 0===s?void 0:s.update_at)||0,delete_at:(null===(n=this.props.initialHook)||void 0===n?void 0:n.delete_at)||0,creator_id:(null===(o=this.props.initialHook)||void 0===o?void 0:o.creator_id)||"",token:(null===(r=this.props.initialHook)||void 0===r?void 0:r.token)||""};this.props.action(c).then((()=>this.setState({saving:!1})))})),He(this,"updateDisplayName",(e=>{this.setState({displayName:e.target.value})})),He(this,"updateDescription",(e=>{this.setState({description:e.target.value})})),He(this,"updateContentType",(e=>{this.setState({contentType:e.target.value})})),He(this,"updateChannelId",(e=>{this.setState({channelId:e.target.value})})),He(this,"updateTriggerWords",(e=>{this.setState({triggerWords:e.target.value})})),He(this,"updateTriggerWhen",(e=>{this.setState({triggerWhen:parseInt(e.target.value,10)})})),He(this,"updateCallbackUrls",(e=>{this.setState({callbackUrls:e.target.value})})),He(this,"updateUsername",(e=>{this.setState({username:e.target.value})})),He(this,"updateIconURL",(e=>{this.setState({iconURL:e.target.value})})),this.state=this.getStateFromHook(this.props.initialHook)}render(){const e="application/x-www-form-urlencoded",t="application/json",a=this.props.header,s=this.props.footer,o=this.props.renderExtra;return d().createElement("div",{className:"backstage-content"},d().createElement($,null,d().createElement(n.Link,{to:"/".concat(this.props.team.name,"/integrations/outgoing_webhooks")},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.header",defaultMessage:"Outgoing Webhooks"})),d().createElement(E.FormattedMessage,{id:a.id,defaultMessage:a.defaultMessage})),d().createElement("div",{className:"backstage-form"},d().createElement("form",{className:"form-horizontal",onSubmit:this.handleSubmit},d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"displayName"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.displayName",defaultMessage:"Title"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"displayName",type:"text",maxLength:64,className:"form-control",value:this.state.displayName,onChange:this.updateDisplayName}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.displayName.help",defaultMessage:"Specify a title, of up to 64 characters, for the webhook settings page."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"description"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.description",defaultMessage:"Description"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"description",type:"text",maxLength:500,className:"form-control",value:this.state.description,onChange:this.updateDescription}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.description.help",defaultMessage:"Describe your outgoing webhook."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"contentType"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.content_Type",defaultMessage:"Content Type"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("select",{className:"form-control",value:this.state.contentType,onChange:this.updateContentType},d().createElement("option",{value:e},e),d().createElement("option",{value:t},t)),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.contentType.help1",defaultMessage:"Specify the content type by which to send the request."})),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.contentType.help2",defaultMessage:"For the server to encode the parameters in a URL format in the request body, select application/x-www-form-urlencoded."})),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.contentType.help3",defaultMessage:"For the server to format the request body as JSON, select application/json."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"channelId"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.channel",defaultMessage:"Channel"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement(Oe,{value:this.state.channelId,onChange:this.updateChannelId,selectOpen:!0,selectPrivate:!1,selectDm:!1}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.channel.help",defaultMessage:"This field is optional if you specify at least one trigger word. Specify the public channel that delivers the payload to the webhook."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"triggerWords"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.triggerWords",defaultMessage:"Trigger Words (One Per Line)"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("textarea",{id:"triggerWords",rows:3,maxLength:1e3,className:"form-control",value:this.state.triggerWords,onChange:this.updateTriggerWords}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.triggerWords.help",defaultMessage:"Specify the trigger words that send an HTTP POST request to your application. The trigger can be for the channel, the outgoing webhook, or both. If you select only Channel, trigger words are optional. If you select both, the message must match both values."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"triggerWords"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.triggerWordsTriggerWhen",defaultMessage:"Trigger When"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("select",{id:"triggerWhen",className:"form-control",value:this.state.triggerWhen,onChange:this.updateTriggerWhen},d().createElement("option",{value:"0"},(0,M.Vw)({id:"add_outgoing_webhook.triggerWordsTriggerWhenFullWord",defaultMessage:"First word matches a trigger word exactly"})),d().createElement("option",{value:"1"},(0,M.Vw)({id:"add_outgoing_webhook.triggerWordsTriggerWhenStartsWith",defaultMessage:"First word starts with a trigger word"}))),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.triggerWordsTriggerWhen.help",defaultMessage:"Specify when to trigger the outgoing webhook."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"callbackUrls"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.callbackUrls",defaultMessage:"Callback URLs (One Per Line)"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("textarea",{id:"callbackUrls",rows:3,maxLength:1e3,className:"form-control",value:this.state.callbackUrls,onChange:this.updateCallbackUrls}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.callbackUrls.help",defaultMessage:"Specify the URL that the messages will be sent to. If the URL is private, add it as a {link}.",values:{link:d().createElement(re.A,{href:ae.Uk.TRUSTED_CONNECTION,location:"abstract_outgoing_webhook"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.callbackUrls.helpLinkText",defaultMessage:"trusted internal connection"}))}})))),this.props.enablePostUsernameOverride&&d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"username"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.username",defaultMessage:"Username"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"username",type:"text",maxLength:22,className:"form-control",value:this.state.username,onChange:this.updateUsername}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.username.help",defaultMessage:'Specify the username this integration will post as. Usernames can be up to 22 characters, and contain lowercase letters, numbers and the symbols \\"-\\", \\"_\\", and \\".\\". If left blank, the name specified by the webhook creator is used.'})))),this.props.enablePostIconOverride&&d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"iconURL"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.icon_url",defaultMessage:"Profile Picture"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"iconURL",type:"text",maxLength:1024,className:"form-control",value:this.state.iconURL,onChange:this.updateIconURL}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.icon_url.help",defaultMessage:"Enter the URL of a .png or .jpg file for this integration to use as the profile picture when posting. The file should be at least 128 pixels by 128 pixels. If left blank, the profile picture specified by the webhook creator is used."})))),d().createElement("div",{className:"backstage-form__footer"},d().createElement(Q.A,{type:"backstage",errors:[this.props.serverError,this.state.clientError]}),d().createElement(n.Link,{className:"btn btn-tertiary",to:"/".concat(this.props.team.name,"/integrations/outgoing_webhooks")},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.cancel",defaultMessage:"Cancel"})),d().createElement(ee.A,{className:"btn btn-primary",type:"submit",spinning:this.state.saving,spinningText:this.props.loading,onClick:this.handleSubmit,id:"saveWebhook"},d().createElement(E.FormattedMessage,{id:s.id,defaultMessage:s.defaultMessage})),o))))}}const Be=(0,E.defineMessages)({footer:{id:"add_outgoing_webhook.save",defaultMessage:"Save"},header:{id:"integrations.add",defaultMessage:"Add"},loading:{id:"add_outgoing_webhook.saving",defaultMessage:"Saving..."}}),Ge=e=>{let{team:t,actions:a,enablePostUsernameOverride:s,enablePostIconOverride:o}=e;const r=(0,n.useHistory)(),[i,l]=(0,m.useState)("");return d().createElement(We,{team:t,header:Be.header,footer:Be.footer,loading:Be.loading,renderExtra:"",action:async e=>{l("");const{data:s,error:n}=await a.createOutgoingHook(e);s?r.push("/".concat(t.name,"/integrations/confirm?type=outgoing_webhooks&id=").concat(s.id)):n&&l(n.message)},serverError:i,enablePostUsernameOverride:s,enablePostIconOverride:o})};Ge.propTypes={actions:b().shape({createOutgoingHook:b().func.isRequired}).isRequired,enablePostUsernameOverride:b().bool.isRequired,enablePostIconOverride:b().bool.isRequired};const ze=Ge,Ye=(0,s.connect)((function(e){const t=(0,r.zj)(e);return{enablePostUsernameOverride:"true"===t.EnablePostUsernameOverride,enablePostIconOverride:"true"===t.EnablePostIconOverride}}),(function(e){return{actions:(0,g.bindActionCreators)({createOutgoingHook:ve.Cm},e)}}))(ze);a(76409);var Ve=a(23877),Je=a(87988);function Ke(e){return(0,Je.n4)({clientFunc:N.mT.createBot,onSuccess:Ve.vi.RECEIVED_BOT_ACCOUNT,params:[e]})}function Xe(e,t){return(0,Je.n4)({clientFunc:N.mT.patchBot,onSuccess:Ve.vi.RECEIVED_BOT_ACCOUNT,params:[e,t]})}function Ze(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20;return(0,Je.n4)({clientFunc:N.mT.getBotsIncludeDeleted,onSuccess:Ve.vi.RECEIVED_BOT_ACCOUNTS,params:[e,t]})}function $e(e){return(0,Je.n4)({clientFunc:N.mT.disableBot,onSuccess:Ve.vi.RECEIVED_BOT_ACCOUNT,params:[e]})}function Qe(e){return(0,Je.n4)({clientFunc:N.mT.enableBot,onSuccess:Ve.vi.RECEIVED_BOT_ACCOUNT,params:[e]})}var et=a(17085),tt=a(43595),at=a(74290);function st(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function nt(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?st(Object(a),!0).forEach((function(t){ot(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):st(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function ot(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function rt(e){return e.entities.integrations.incomingHooks}function it(e){return e.entities.integrations.outgoingHooks}function lt(e){return e.entities.integrations.commands}function ct(e){return e.entities.integrations.oauthApps}function mt(e){return e.entities.integrations.outgoingOAuthConnections}const dt=(0,Me.Mz)("getFilteredIncomingHooks",l.Sy,rt,((e,t)=>Object.keys(t).map((e=>t[e])).filter((t=>t.team_id===e)))),ut=(0,Me.Mz)("getAppsOAuthAppIDs",tt.cO,(e=>e.entities.integrations.appsOAuthAppIDs),((e,t)=>e?t:[])),gt=(0,Me.Mz)("getAppsBotIDs",tt.cO,(e=>e.entities.integrations.appsBotIDs),((e,t)=>e?t:[]));(0,Me.Mz)("getOutgoingHooksInCurrentTeam",l.Sy,it,((e,t)=>Object.values(t).filter((t=>t.team_id===e))));const pt=(0,Me.Mz)("getAllCommands",lt,(function(e){return e.entities.integrations.systemCommands}),((e,t)=>nt(nt({},e),t)));function ht(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function ft(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ht(Object(a),!0).forEach((function(t){bt(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ht(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function bt(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}(0,Me.Mz)("getAutocompleteCommandsList",pt,l.Sy,((e,t)=>Object.values(e).filter((e=>e&&(!e.team_id||e.team_id===t)&&e.auto_complete)).sort(((e,t)=>e.display_name.localeCompare(t.display_name)))));const Et=e=>{const{formatMessage:t}=(0,E.useIntl)(),[a,s]=(0,m.useState)(""),o=a.toLowerCase();let r;r=e.searchPlaceholder?e.searchPlaceholder:t({id:"backstage_list.search",defaultMessage:"Search"});let i=[],l=0;if(e.loading)i=[d().createElement(U.A,{key:"loading"})];else{let t=!0;"function"==typeof e.children?[i,t]=e.children(o):i=e.children,i=d().Children.map(i,(e=>d().cloneElement(e,{filterLowered:o}))),0!==i.length&&t?l=i.length:o?e.emptyTextSearch&&(i=[d().createElement("div",{className:"backstage-list__item backstage-list__empty",id:"emptySearchResultsMessage",key:"emptyTextSearch"},d().cloneElement(e.emptyTextSearch,{values:ft(ft({},e.emptyTextSearch.props.values),{},{searchTerm:o})}))]):e.emptyText&&(i=[d().createElement("div",{className:"backstage-list__item backstage-list__empty",key:"emptyText"},e.emptyText)])}let c=null;e.addLink&&e.addText&&(c=d().createElement(n.Link,{className:"add-link",to:e.addLink},d().createElement("button",{type:"button",className:"btn btn-primary",id:e.addButtonId},d().createElement("span",null,e.addText))));const u=a.length>0,{startCount:g,endCount:p,total:h,isFirstPage:f,isLastPage:b}=((e,t,a)=>{const s=a||!e.page?0:e.page,n=a||!e.pageSize?t:e.pageSize,o=a||!e.total?t:e.total;let r=s*n+1,i=(s+1)*n;return i=i>o?o:i,0===i&&(r=0),{startCount:r,endCount:i,total:o,isFirstPage:r<=1,isLastPage:i>=o}})(e,l,u),_=l>0?i.slice(g-1,p):i;let v=e.previousPage,M=e.nextPage;return f&&(v=()=>{}),b&&(M=()=>{}),d().createElement("div",{className:"backstage-content"},d().createElement("div",{className:"backstage-header"},d().createElement("h1",null,e.header),c),d().createElement("div",{className:"backstage-filters"},d().createElement("div",{className:"backstage-filter__search"},d().createElement(W.A,null),d().createElement("input",{type:"search",className:"form-control",placeholder:r,value:a,onChange:e=>s(e.target.value),id:"searchInput"}))),d().createElement("span",{className:"backstage-list__help"},e.helpText),d().createElement("div",{className:"backstage-list"},_),d().createElement("div",{className:"backstage-footer"},d().createElement("div",{className:"backstage-footer__cell"},d().createElement(E.FormattedMessage,{id:"backstage_list.paginatorCount",defaultMessage:"{startCount, number} - {endCount, number} of {total, number}",values:{startCount:g,endCount:p,total:h}}),d().createElement("button",{type:"button",className:"btn btn-quaternary btn-icon btn-sm ml-2 prev "+(f?"disabled":""),onClick:v,"aria-label":t({id:"backstage_list.previousButton.ariaLabel",defaultMessage:"Previous"})},d().createElement(H.A,null)),d().createElement("button",{type:"button",className:"btn btn-quaternary btn-icon btn-sm next "+(b?"disabled":""),onClick:M,"aria-label":t({id:"backstage_list.nextButton.ariaLabel",defaultMessage:"Next"})},d().createElement(q.A,null)))))};var _t=a(17461),vt=a(18515);function Mt(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function kt(e,t,a){if(!t)return!0;const s=e.username||"",n=e.description||"",o=e.display_name||"";let r="plugin";return a&&a.username&&(r=a.username),!(-1===s.toLowerCase().indexOf(t)&&-1===o.toLowerCase().indexOf(t)&&-1===n.toLowerCase().indexOf(t)&&-1===r.toLowerCase().indexOf(t))}class yt extends d().PureComponent{constructor(e){super(e),Mt(this,"enableBot",(()=>{this.props.actions.enableBot(this.props.bot.user_id)})),Mt(this,"disableBot",(()=>{this.props.actions.disableBot(this.props.bot.user_id)})),Mt(this,"enableUserAccessToken",(e=>{this.props.actions.enableUserAccessToken(e)})),Mt(this,"disableUserAccessToken",(e=>{this.props.actions.disableUserAccessToken(e)})),Mt(this,"confirmRevokeToken",(e=>{this.setState({confirmingId:e})})),Mt(this,"revokeTokenConfirmed",(()=>{this.props.actions.revokeUserAccessToken(this.state.confirmingId),this.closeConfirm()})),Mt(this,"closeConfirm",(()=>{this.setState({confirmingId:""})})),Mt(this,"openCreateToken",(()=>{this.setState({creatingTokenState:"OPEN",token:{description:""}})})),Mt(this,"closeCreateToken",(()=>{this.setState({creatingTokenState:"CLOSED",token:{description:""}})})),Mt(this,"handleUpdateDescription",(e=>{const t=e.target;this.setState({token:Object.assign({},this.state.token,{description:t.value})})})),Mt(this,"handleCreateToken",(async e=>{if(e.preventDefault(),""===this.state.token.description)return void this.setState({error:d().createElement(E.FormattedMessage,{id:"bot.token.error.description",defaultMessage:"Please enter a description."})});const{data:t,error:a}=await this.props.actions.createUserAccessToken(this.props.bot.user_id,this.state.token.description);t?this.setState({creatingTokenState:"CREATED",token:t}):a&&this.setState({error:a.message})})),this.state={confirmingId:"",creatingTokenState:"CLOSED",token:{},error:""}}render(){const e=this.props.bot.username||"",t=this.props.bot.description||"",a=this.props.bot.display_name||"";let s="plugin";this.props.fromApp?s="Apps Framework":this.props.owner&&this.props.owner.username&&(s=this.props.owner.username);const o=this.props.filter?this.props.filter.toLowerCase():"";if(!kt(this.props.bot,o,this.props.owner))return null;const r=[];let i;Object.values(this.props.accessTokens).forEach((e=>{let t,a,s="";e.is_active?t=d().createElement("a",{id:e.id+"_deactivate",href:"#",onClick:t=>{t.preventDefault(),this.disableUserAccessToken(e.id)}},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.deactivate",defaultMessage:"Disable"})):(s="light",a=d().createElement("span",{className:"mr-2 light"},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.deactivatedWarning",defaultMessage:"(Disabled)"})),t=d().createElement("a",{id:e.id+"_activate",href:"#",onClick:t=>{t.preventDefault(),this.enableUserAccessToken(e.id)}},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.activate",defaultMessage:"Enable"}))),r.push(d().createElement("div",{key:e.id,className:"bot-list__item"},d().createElement("div",{className:"item-details__row d-flex justify-content-between"},d().createElement("div",{className:s},d().createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},d().createElement("b",null,d().createElement(E.FormattedMessage,{id:"user.settings.tokens.tokenDesc",defaultMessage:"Token Description: "})),e.description),d().createElement("div",{className:"setting-box__token-id whitespace--nowrap overflow--ellipsis"},d().createElement("b",null,d().createElement(E.FormattedMessage,{id:"user.settings.tokens.tokenId",defaultMessage:"Token ID: "})),e.id)),d().createElement("div",null,a,t," - ",d().createElement("a",{id:e.id+"_delete",href:"#",onClick:t=>{t.preventDefault(),this.confirmRevokeToken(e.id)}},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.delete",defaultMessage:"Delete"}))))))})),"plugin"!==s&&(i=d().createElement("div",{className:"item-actions"},d().createElement("button",{id:"createToken",className:"style--none color--link",onClick:this.openCreateToken},d().createElement(E.FormattedMessage,{id:"bot.manage.create_token",defaultMessage:"Create New Token"}))," - ",d().createElement(n.Link,{to:"/".concat(this.props.team.name,"/integrations/bots/edit?id=").concat(this.props.bot.user_id)},d().createElement(E.FormattedMessage,{id:"bots.manage.edit",defaultMessage:"Edit"}))," - ",d().createElement("button",{className:"style--none color--link",onClick:this.disableBot},d().createElement(E.FormattedMessage,{id:"bot.manage.disable",defaultMessage:"Disable"})))),0!==this.props.bot.delete_at&&(i=d().createElement("div",{className:"item-actions"},d().createElement("button",{className:"style--none color--link",onClick:this.enableBot},d().createElement(E.FormattedMessage,{id:"bot.manage.enable",defaultMessage:"Enable"})))),"OPEN"===this.state.creatingTokenState?r.push(d().createElement("div",{key:"create",className:"bot-list__item"},d().createElement("div",{key:"create"},d().createElement("form",{className:"form-horizontal",onSubmit:this.handleCreateToken},d().createElement("div",{className:"row"},d().createElement("label",{className:"col-sm-auto control-label",htmlFor:"botToken"},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.name",defaultMessage:"Token Description: "})),d().createElement("div",{className:"col-sm-4"},d().createElement("input",{id:"botToken",autoFocus:!0,className:"form-control form-sm",type:"text",maxLength:64,value:this.state.token.description,onChange:this.handleUpdateDescription}))),d().createElement("div",null,d().createElement("div",{className:"pt-2 pb-2"},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.nameHelp",defaultMessage:"Enter a description for your token to remember what it does."})),d().createElement("label",{id:"clientError",className:"has-error is-empty"},this.state.error),d().createElement("div",{className:"mt-2"},d().createElement(L.A,{btnClass:"btn-sm btn-primary",savingMessage:d().createElement(E.FormattedMessage,{id:"user.settings.tokens.save",defaultMessage:"Save"}),saving:!1}),d().createElement("button",{className:"btn btn-sm btn-tertiary",onClick:this.closeCreateToken},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.cancel",defaultMessage:"Cancel"})))))))):"CREATED"===this.state.creatingTokenState&&r.push(d().createElement("div",{key:"created",className:"bot-list__item alert alert-warning"},d().createElement("div",{className:"mb-2"},d().createElement(C.A,{additionalClassName:"mr-2"}),d().createElement(E.FormattedMessage,{id:"user.settings.tokens.copy",defaultMessage:"Please copy the access token below. You won't be able to see it again!"})),d().createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.name",defaultMessage:"Token Description: "}),this.state.token.description),d().createElement("div",{className:"whitespace--nowrap overflow--ellipsis"},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.id",defaultMessage:"Token ID: "}),this.state.token.id),d().createElement("strong",{className:"word-break--all"},d().createElement(E.FormattedMessage,{id:"user.settings.tokens.token",defaultMessage:"Access Token: "}),this.state.token.token),d().createElement("div",{className:"mt-2"},d().createElement("button",{className:"btn btn-sm btn-primary",onClick:this.closeCreateToken},d().createElement(E.FormattedMessage,{id:"bot.create_token.close",defaultMessage:"Close"})))));const l=M.RG(this.props.user.id,this.props.user.last_picture_update);return d().createElement("div",{className:"backstage-list__item"},d().createElement("div",{className:"bot-list-img-container"},d().createElement("img",{className:"bot-list-img",alt:"bot image",src:l})),d().createElement("div",{className:"item-details"},d().createElement("div",{className:"item-details__row d-flex flex-column flex-md-row justify-content-between"},d().createElement("strong",{className:"item-details__name"},a+" (@"+e+")"),i),d().createElement("div",{className:"bot-details__description"},d().createElement(vt.A,{message:t})),d().createElement("div",{className:"light small"},d().createElement(E.FormattedMessage,{id:"bots.managed_by",defaultMessage:"Managed by "}),s),d().createElement("div",{className:"bot-list is-empty"},r)),d().createElement(_t.A,{title:d().createElement(E.FormattedMessage,{id:"bots.token.delete",defaultMessage:"Delete Token"}),message:d().createElement(E.FormattedMessage,{id:"bots.token.confirm_text",defaultMessage:"Are you sure you want to delete the token?"}),confirmButtonText:d().createElement(E.FormattedMessage,{id:"bots.token.confirm",defaultMessage:"Delete"}),modalClass:"integrations-backstage-modal",show:""!==this.state.confirmingId,onConfirm:this.revokeTokenConfirmed,onCancel:this.closeConfirm}))}}function Nt(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class wt extends d().PureComponent{constructor(e){super(e),Nt(this,"botToJSX",(e=>d().createElement(yt,{key:e.user_id,bot:e,owner:this.props.owners[e.user_id],user:this.props.users[e.user_id],accessTokens:this.props.accessTokens&&this.props.accessTokens[e.user_id]||{},actions:this.props.actions,team:this.props.team,fromApp:this.props.appsBotIDs.includes(e.user_id)}))),Nt(this,"bots",(e=>{const t=Object.values(this.props.bots).sort(((e,t)=>e.username.localeCompare(t.username))),a=t=>kt(t,e,this.props.owners[t.user_id]),s=t.filter((e=>0===e.delete_at)).filter(a).map(this.botToJSX),n=t.filter((e=>e.delete_at>0)).filter(a).map(this.botToJSX);return[[d().createElement("div",{key:"sections"},d().createElement(this.EnabledSection,{enabledBots:s}),d().createElement(this.DisabledSection,{hasDisabled:n.length>0,disabledBots:n}))],s.length>0||n.length>0]})),this.state={loading:!0}}componentDidMount(){this.props.actions.loadBots(ae.Ay.Integrations.START_PAGE_NUM,ae.Ay.Integrations.PAGE_SIZE).then((e=>{if(e.data){const t=[];for(const a of e.data)this.props.actions.getUser(a.owner_id),t.push(this.props.actions.getUser(a.user_id)),t.push(this.props.actions.getUserAccessTokensForUser(a.user_id));Promise.all(t).then((()=>{this.setState({loading:!1})}))}})),this.props.appsEnabled&&this.props.actions.fetchAppsBotIDs()}DisabledSection(e){if(!e.hasDisabled)return null;const t=d().Children.map(e.disabledBots,(t=>d().cloneElement(t,{filter:e.filter})));return d().createElement(d().Fragment,null,d().createElement("div",{className:"bot-disabled"},d().createElement(E.FormattedMessage,{id:"bots.disabled",defaultMessage:"Disabled"})),d().createElement("div",{className:"bot-list__disabled"},t))}EnabledSection(e){const t=d().Children.map(e.enabledBots,(t=>d().cloneElement(t,{filter:e.filter})));return d().createElement("div",null,t)}render(){return d().createElement(Et,{header:d().createElement(E.FormattedMessage,{id:"bots.manage.header",defaultMessage:"Bot Accounts"}),addText:this.props.createBots&&d().createElement(E.FormattedMessage,{id:"bots.manage.add",defaultMessage:"Add Bot Account"}),addLink:"/"+this.props.team.name+"/integrations/bots/add",addButtonId:"addBotAccount",emptyText:d().createElement(E.FormattedMessage,{id:"bots.manage.empty",defaultMessage:"No bot accounts found"}),emptyTextSearch:d().createElement(E.FormattedMessage,{id:"bots.emptySearch",defaultMessage:"No bot accounts match <b>{searchTerm}</b>",values:{b:e=>d().createElement("b",null,e)}}),helpText:d().createElement(d().Fragment,null,d().createElement(E.FormattedMessage,{id:"bots.manage.help1",defaultMessage:"Use {botAccounts} to integrate with Mattermost through plugins or the API. Bot accounts are available to everyone on your server. ",values:{botAccounts:d().createElement(re.A,{href:"https://mattermost.com/pl/default-bot-accounts",location:"bots"},d().createElement(E.FormattedMessage,{id:"bots.manage.bot_accounts",defaultMessage:"Bot Accounts"}))}}),d().createElement(E.FormattedMessage,{id:"bots.help2",defaultMessage:"Enable bot account creation in the <a>System Console</a>.",values:{a:e=>d().createElement(n.Link,{to:"/admin_console/integrations/bot_accounts"},e)}})),searchPlaceholder:M.Vw({id:"bots.manage.search",defaultMessage:"Search Bot Accounts"}),loading:this.state.loading},this.bots)}}Nt(wt,"propTypes",{appsBotIDs:b().arrayOf(b().string).isRequired,appsEnabled:b().bool.isRequired,createBots:b().bool,actions:b().shape({loadBots:b().func.isRequired,getUserAccessTokensForUser:b().func.isRequired,createUserAccessToken:b().func.isRequired,revokeUserAccessToken:b().func.isRequired,enableUserAccessToken:b().func.isRequired,disableUserAccessToken:b().func.isRequired,getUser:b().func.isRequired,disableBot:b().func.isRequired,enableBot:b().func.isRequired,fetchAppsBotIDs:b().func.isRequired}).isRequired});const At=(0,s.connect)((function(e){const t="true"===(0,r.zj)(e).EnableBotAccountCreation,a=(0,at.jd)(e),s=Object.values(a),n=s.reduce(((t,a)=>(t[a.user_id]=c.wz(e,a.owner_id),t)),{}),o=s.reduce(((t,a)=>(t[a.user_id]=c.wz(e,a.user_id),t)),{});return{createBots:t,bots:a,accessTokens:e.entities.admin.userAccessTokensByUser,owners:n,users:o,appsBotIDs:gt(e),appsEnabled:(0,tt.cO)(e)}}),(function(e){return{actions:(0,g.bindActionCreators)({fetchAppsBotIDs:ve.cA,loadBots:Ze,getUserAccessTokensForUser:et.GA,createUserAccessToken:et.NE,revokeUserAccessToken:et.XE,enableUserAccessToken:et.Yp,disableUserAccessToken:et.$q,getUser:et.wz,disableBot:$e,enableBot:Qe},e)}}))(wt);a(36169),a(60473);var Ct=a(79342),Ot=a(87131),St=a(68124);function Ft(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Tt="System Admin",Pt="Member";class It extends d().PureComponent{constructor(e){super(e),Ft(this,"previewBlob",null),Ft(this,"updateUsername",(e=>{this.setState({username:e.target.value})})),Ft(this,"updateDisplayName",(e=>{this.setState({displayName:e.target.value})})),Ft(this,"updateDescription",(e=>{this.setState({description:e.target.value})})),Ft(this,"updateRole",(e=>{this.setState({role:e.target.value})})),Ft(this,"updatePostAll",(e=>{this.setState({postAll:e.target.checked})})),Ft(this,"updatePostChannels",(e=>{this.setState({postChannels:e.target.checked})})),Ft(this,"updatePicture",(e=>{if(e.target.files&&e.target.files[0]){const t=e.target.files[0];this.previewBlob=URL.createObjectURL(t);const a=new FileReader;a.onload=e=>{var t;const a=St.hM(null===(t=e.target)||void 0===t?void 0:t.result),s=St.R6(a);this.setState({image:this.previewBlob||"",orientationStyles:s})},a.readAsArrayBuffer(t),e.target.value="",this.setState({pictureFile:t})}else this.setState({pictureFile:null,image:""})})),Ft(this,"setDefault",(()=>{this.setState({pictureFile:"default",image:ce})})),Ft(this,"updateRoles",(async e=>{let t=o.Bz.SYSTEM_USER_ROLE;this.state.role===Tt?t+=" "+o.Bz.SYSTEM_ADMIN_ROLE:this.state.postAll?t+=" "+o.Bz.SYSTEM_POST_ALL_ROLE:this.state.postChannels&&(t+=" "+o.Bz.SYSTEM_POST_ALL_PUBLIC_ROLE);const a=await this.props.actions.updateUserRoles(e.user_id,t);return a?a.error:null})),Ft(this,"handleSubmit",(async e=>{if(e.preventDefault(),this.state.adding)return;if(!this.state.username||this.state.username.length<3)return void this.setState({error:d().createElement(E.FormattedMessage,{id:"bots.manage.add.invalid_username",defaultMessage:"Usernames have to begin with a lowercase letter and be 3-22 characters long. You can use lowercase letters, numbers, periods, dashes, and underscores."})});if(this.state.pictureFile&&this.isFile(this.state.pictureFile)){if(!ae.je.includes(this.state.pictureFile.type))return void this.setState({error:d().createElement(E.FormattedMessage,{id:"user.settings.general.validImage",defaultMessage:"Only BMP, JPG or PNG images may be used for profile pictures"})});if(this.state.pictureFile.size>this.props.maxFileSize)return void this.setState({error:d().createElement(E.FormattedMessage,{id:"user.settings.general.imageTooLarge",defaultMessage:"Unable to upload profile image. File is too large."})})}this.setState({adding:!0,error:""});const t={username:this.state.username.toLowerCase().trim(),display_name:this.state.displayName,description:this.state.description};let a,s;if(this.props.bot){const e=await this.props.actions.patchBot(this.props.bot.user_id,t);if(e?(a=e.data,s=e.error):s=M.Vw({id:"bot.edit_failed",defaultMessage:"Failed to edit bot"}),!s&&a&&(this.state.pictureFile&&"default"!==this.state.pictureFile?s=(await this.props.actions.uploadProfileImage(a.user_id,this.state.pictureFile)).error:this.state.pictureFile&&"default"===this.state.pictureFile&&await this.props.actions.setDefaultProfileImage(a.user_id)),!s&&a&&(s=this.updateRoles(a)),a)return void(0,te.J)().push("/".concat(this.props.team.name,"/integrations/bots"))}else{const e=M.Am(t.username);if(e){let t;return t=e.id===ae.vJ.INVALID_LAST_CHARACTER?{adding:!1,error:d().createElement(E.FormattedMessage,{id:"bots.manage.add.invalid_last_char",defaultMessage:"Bot usernames cannot have a period as the last character"})}:{adding:!1,error:d().createElement(E.FormattedMessage,{id:"bots.manage.add.invalid_username",defaultMessage:"Usernames have to begin with a lowercase letter and be 3-22 characters long. You can use lowercase letters, numbers, periods, dashes, and underscores."})},void this.setState(t)}const n=await this.props.actions.createBot(t);n?(a=n.data,s=n.error):s=M.Vw({id:"bot.create_failed",defaultMessage:"Failed to create bot"});let o="";if(!s&&a){this.state.pictureFile&&"default"!==this.state.pictureFile?await this.props.actions.uploadProfileImage(a.user_id,this.state.pictureFile):await this.props.actions.setDefaultProfileImage(a.user_id);const e=await this.props.actions.createUserAccessToken(a.user_id,M.Vw({id:"bot.token.default.description",defaultMessage:"Default Token"}));if(!e||e.error)return void(0,te.J)().push("/".concat(this.props.team.name,"/integrations/bots"));o=e.data.token}if(!s&&a&&(s=this.updateRoles(a)),a)return void(0,te.J)().push("/".concat(this.props.team.name,"/integrations/confirm?type=bots&id=").concat(a.user_id,"&token=").concat(o))}this.setState({adding:!1}),s&&this.setState({error:s.message})})),this.state={error:"",username:this.props.bot?this.props.bot.username:"",displayName:this.props.bot?this.props.bot.display_name:"",description:this.props.bot?this.props.bot.description:"",adding:!1,image:ce,role:Ct.FV(this.props.roles||"")?Tt:Pt,postAll:!!this.props.bot&&Ct.QF(this.props.roles||""),postChannels:!!this.props.bot&&Ct.HF(this.props.roles||""),orientationStyles:{transform:"",transformOrigin:""},pictureFile:null}}isFile(e){return void 0!==e.size}render(){let e=d().createElement(E.FormattedMessage,{id:"bots.manage.add.add",defaultMessage:"Add"}),t=d().createElement(E.FormattedMessage,{id:"bots.manage.add.create",defaultMessage:"Create Bot Account"}),a=d().createElement(E.FormattedMessage,{id:"bots.manage.add.creating",defaultMessage:"Creating..."});this.props.bot&&(e=d().createElement(E.FormattedMessage,{id:"bots.manage.edit",defaultMessage:"Edit"}),t=d().createElement(E.FormattedMessage,{id:"bots.manage.edit.title",defaultMessage:"Update"}),a=d().createElement(E.FormattedMessage,{id:"bots.manage.edit.editing",defaultMessage:"Updating..."}));let s,o="",r=d().createElement(Ot.A,{title:d().createElement(E.FormattedMessage,{id:"bot.remove_profile_picture",defaultMessage:"Remove Bot Icon"})},d().createElement("a",{className:"bot-profile__remove",onClick:this.setDefault},d().createElement("span",null,"×")));return this.props.bot&&!this.state.pictureFile?o=this.props.user?M.RG(this.props.user.id,this.props.user.last_picture_update):M.RG(this.props.bot.user_id):(o=this.state.image,s=this.state.orientationStyles,this.state.image===ce&&(r=null)),d().createElement("div",{className:"backstage-content"},d().createElement($,null,d().createElement(n.Link,{to:"/".concat(this.props.team.name,"/integrations/bots")},d().createElement(E.FormattedMessage,{id:"bots.manage.header",defaultMessage:"Bot Accounts"})),e),d().createElement("div",{className:"backstage-form"},d().createElement("form",{className:"form-horizontal",onSubmit:this.handleSubmit},d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"username"},d().createElement(E.FormattedMessage,{id:"bots.add.username",defaultMessage:"Username"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"username",type:"text",maxLength:22,className:"form-control",value:this.state.username,onChange:this.updateUsername}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"bot.add.username.help",defaultMessage:"You can use lowercase letters, numbers, periods, dashes, and underscores."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"boticon"},d().createElement(E.FormattedMessage,{id:"bots.add.icon",defaultMessage:"Bot Icon"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("div",{className:"bot-img-container"},d().createElement("img",{className:"bot-img",alt:"bot image",src:o,style:s}),r),d().createElement("div",{className:"btn btn-primary btn-file"},d().createElement(E.FormattedMessage,{id:"bots.image.upload",defaultMessage:"Upload Image"}),d().createElement("input",{className:"btn-file__input",accept:ae.YM.ACCEPT_STATIC_IMAGE,type:"file",onChange:this.updatePicture})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"displayName"},d().createElement(E.FormattedMessage,{id:"bots.add.displayName",defaultMessage:"Display Name"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"displayName",type:"text",maxLength:64,className:"form-control",value:this.state.displayName,onChange:this.updateDisplayName}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"bot.add.display_name.help",defaultMessage:"(Optional) You can choose to display your bot's full name rather than its username."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"description"},d().createElement(E.FormattedMessage,{id:"bot.add.description",defaultMessage:"Description"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"description",type:"text",maxLength:1024,className:"form-control",value:this.state.description,onChange:this.updateDescription}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"bot.add.description.help",defaultMessage:"(Optional) Let others know what this bot does."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"role"},d().createElement(E.FormattedMessage,{id:"bot.add.role",defaultMessage:"Role"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("select",{className:"form-control",value:this.state.role,disabled:!this.props.editingUserHasManageSystem,onChange:this.updateRole},d().createElement("option",{value:Pt},M.Vw({id:"bot.add.role.member",defaultMessage:"Member"})),d().createElement("option",{value:Tt},M.Vw({id:"bot.add.role.admin",defaultMessage:"System Admin"}))),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"bot.add.role.help",defaultMessage:"Choose what role the bot should have."})))),d().createElement("div",{className:"row bot-profile__section"},d().createElement("div",{className:"col-md-5 col-sm-8 col-sm-offset-4"},d().createElement(E.FormattedMessage,{id:"admin.manage_roles.botAdditionalRoles",defaultMessage:"Select additional permissions for the account. <link>Read more about roles and permissions</link>.",values:{link:e=>d().createElement(re.A,{href:ae.i3.PERSONAL_ACCESS_TOKENS,location:"add_bot"},e)}}))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"postAll"},d().createElement(E.FormattedMessage,{id:"bot.add.post_all",defaultMessage:"post:all"})),d().createElement("div",{className:"col-md-5 col-sm-8 checkbox"},d().createElement("div",{className:"checkbox no-padding"},d().createElement("label",{htmlFor:"postAll"},d().createElement("input",{id:"postAll",type:"checkbox",checked:this.state.postAll||this.state.role===Tt,onChange:this.updatePostAll,disabled:!this.props.editingUserHasManageSystem||this.state.role===Tt}),d().createElement(E.FormattedMessage,{id:"bot.add.post_all.enabled",defaultMessage:"Enabled"}))),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"bot.add.post_all.help",defaultMessage:"Bot will have access to post to all Mattermost channels including direct messages."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"postChannels"},d().createElement(E.FormattedMessage,{id:"bot.add.post_channels",defaultMessage:"post:channels"})),d().createElement("div",{className:"col-md-5 col-sm-8 checkbox"},d().createElement("div",{className:"checkbox no-padding"},d().createElement("label",{htmlFor:"postChannels"},d().createElement("input",{id:"postChannels",type:"checkbox",checked:this.state.postChannels||this.state.role===Tt||this.state.postAll,onChange:this.updatePostChannels,disabled:!this.props.editingUserHasManageSystem||this.state.role===Tt||this.state.postAll}),d().createElement(E.FormattedMessage,{id:"bot.add.post_channels.enabled",defaultMessage:"Enabled"}))),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"bot.add.post_channels.help",defaultMessage:"Bot will have access to post to all Mattermost public channels."})))),d().createElement("div",{className:"backstage-form__footer"},d().createElement(Q.A,{type:"backstage",errors:[this.state.error]}),d().createElement(n.Link,{className:"btn btn-tertiary",to:"/".concat(this.props.team.name,"/integrations/bots")},d().createElement(E.FormattedMessage,{id:"bots.manage.add.cancel",defaultMessage:"Cancel"})),d().createElement(ee.A,{className:"btn btn-primary",type:"submit",spinning:this.state.adding,spinningText:a,onClick:this.handleSubmit,id:"saveBot"},t)))))}}const xt=(0,s.connect)((function(e,t){const a=(0,r.zj)(e),s=new URLSearchParams(t.location.search).get("id"),n=(0,at.s9)(e),l=n&&s?n[s]:void 0,m=l?(0,c.wz)(e,l.user_id):void 0,d=m?m.roles:void 0;return{maxFileSize:parseInt(a.MaxFileSize,10),bot:l,roles:d,editingUserHasManageSystem:(0,i.y4)(e,{permission:o.xB.MANAGE_SYSTEM}),user:m}}),(function(e){return{actions:(0,g.bindActionCreators)({createBot:Ke,patchBot:Xe,uploadProfileImage:et.OB,setDefaultProfileImage:et.Ae,createUserAccessToken:et.NE,updateUserRoles:et.eA},e)}}))(It),Rt=100;function jt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Rt,s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return async n=>{const{data:o}=await n(ve.Rm(e,t,a,s));var r;return o&&n((r=ve.UW(o)?o.incoming_webhooks:o,async(e,t)=>{const a=t(),s={};for(let e=0;e<r.length;e++){const t=r[e];(0,c.wz)(a,t.user_id)||(s[t.user_id]=!0)}const n=Object.keys(s);return 0===n.length||e((0,et.G1)(n)),{data:null}})),{data:o}}}function Ut(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Rt;return async s=>{const{data:n}=await s(ve.PY("",e,t,a));var o;return n&&s((o=n,async(e,t)=>{const a=t(),s={};for(let e=0;e<o.length;e++){const t=o[e];(0,c.wz)(a,t.creator_id)||(s[t.creator_id]=!0)}const n=Object.keys(s);return 0===n.length||e((0,et.G1)(n)),{data:null}})),{data:n}}}function Dt(e){return async t=>{const{data:a}=await t(ve.hB(e));var s;return a&&t((s=a,async(e,t)=>{const a=t(),n={};for(let e=0;e<s.length;e++){const t=s[e];(0,c.wz)(a,t.creator_id)||(n[t.creator_id]=!0)}const o=Object.keys(n);return 0===o.length||e((0,et.G1)(o)),{data:null}})),{data:a}}}function Lt(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Rt;return async(a,s)=>{(0,tt.cO)(s())&&a(ve.jX());const{data:n}=await a(ve.u$(e,t));return n&&a(function(e){return async(t,a)=>{const s=a(),n={};for(let t=0;t<e.length;t++){const a=e[t];(0,c.wz)(s,a.creator_id)||(n[a.creator_id]=!0)}const o=Object.keys(n);return 0===o.length||t((0,et.G1)(o)),{data:null}}}(n)),{data:null}}}var qt=a(46177),Ht=a.n(qt),Wt=a(85406),Bt=a(53654);const Gt=e=>{const t=(0,m.useRef)(!1),[a,n]=(0,m.useState)(null),[o,i]=(0,m.useState)(!1),c=(0,s.useSelector)(mt),u="true"===(0,s.useSelector)(r.zj).EnableOutgoingOAuthConnections,g=(0,s.useSelector)(l.Sy),p=(0,s.useDispatch)(),h=(0,m.useCallback)((async e=>{const t=await p((0,ve.oe)(g,e));i(!1),t.data&&t.data.length?n(t.data[0]):n(null)}),[p,g]),f=(0,m.useMemo)((()=>Ht()((e=>h(e)),1e3)),[h]);(0,m.useEffect)((()=>{t.current||(t.current=!0,u&&(p((0,ve.FA)(g)),e.value&&(i(!0),h(e.value))))}),[u,e.value,g,h,p,t]);const b=Object.values(c),_=d().createElement(D.A,{autoComplete:"off",id:"url",maxLength:1024,className:"form-control",value:e.value,onChange:t=>{e.onChange(t),u&&(i(!0),f(t.target.value))},placeholder:e.placeholder});if(!b.length)return _;let v;return v=o?d().createElement("span",null,d().createElement(Bt.A,null)):a?d().createElement(d().Fragment,null,d().createElement("span",null,d().createElement(Wt.OauthIcon,{size:20})),d().createElement("span",{className:"outgoing-oauth-audience-match-message"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.connected",defaultMessage:'Connected to "{connectionName}"',values:{connectionName:a.name}}))):d().createElement(d().Fragment,null,d().createElement("span",null,d().createElement(Wt.InformationOutlineIcon,{size:20})),d().createElement("span",{className:"outgoing-oauth-audience-match-message"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.not_connected",defaultMessage:"Not linked to an OAuth connection"}))),d().createElement(d().Fragment,null,_,d().createElement("div",{className:"outgoing-oauth-audience-match-message-container"},v))};Gt.propTypes={value:b().string.isRequired,onChange:b().func.isRequired};const zt=Gt;function Yt(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Vt extends d().PureComponent{constructor(e){super(e),Yt(this,"getStateFromCommand",(e=>{var t,a,s,n,o,r,i,l,c,m;return{displayName:null!==(t=null==e?void 0:e.display_name)&&void 0!==t?t:"",description:null!==(a=null==e?void 0:e.description)&&void 0!==a?a:"",trigger:null!==(s=null==e?void 0:e.trigger)&&void 0!==s?s:"",url:null!==(n=null==e?void 0:e.url)&&void 0!==n?n:"",method:null!==(o=null==e?void 0:e.method)&&void 0!==o?o:"P",username:null!==(r=null==e?void 0:e.username)&&void 0!==r?r:"",iconUrl:null!==(i=null==e?void 0:e.icon_url)&&void 0!==i?i:"",autocomplete:null!==(l=null==e?void 0:e.auto_complete)&&void 0!==l&&l,autocompleteHint:null!==(c=null==e?void 0:e.auto_complete_hint)&&void 0!==c?c:"",autocompleteDescription:null!==(m=null==e?void 0:e.auto_complete_desc)&&void 0!==m?m:"",saving:!1,clientError:null}})),Yt(this,"getBackstageHeader",(()=>"string"==typeof this.props.header?d().createElement("span",null,this.props.header):d().createElement(E.FormattedMessage,{id:this.props.header.id,defaultMessage:this.props.header.defaultMessage}))),Yt(this,"getBackstageFooter",(()=>"string"==typeof this.props.footer?d().createElement("span",null,this.props.footer):d().createElement(E.FormattedMessage,{id:this.props.footer.id,defaultMessage:this.props.footer.defaultMessage}))),Yt(this,"handleSubmit",(e=>{if(e.preventDefault(),this.state.saving)return;this.setState({saving:!0,clientError:""});let t=this.state.trigger.trim().toLowerCase();0===t.indexOf("/")&&(t=t.substr(1));const a={display_name:this.state.displayName,description:this.state.description,trigger:t,url:this.state.url.trim(),method:this.state.method,username:this.state.username,icon_url:this.state.iconUrl,auto_complete:this.state.autocomplete,team_id:this.props.team.id,auto_complete_desc:"",auto_complete_hint:"",token:"",create_at:0,update_at:0,delete_at:0,id:"",creator_id:""};var s,n;a.auto_complete&&(a.auto_complete_desc=null!==(s=this.state.autocompleteDescription)&&void 0!==s?s:"",a.auto_complete_hint=null!==(n=this.state.autocompleteHint)&&void 0!==n?n:""),a.trigger?0!==a.trigger.indexOf("/")?-1===a.trigger.indexOf(" ")?a.trigger.length<ae.YM.MIN_TRIGGER_LENGTH||a.trigger.length>ae.YM.MAX_TRIGGER_LENGTH?this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_command.triggerInvalidLength",defaultMessage:"A trigger word must contain between {min} and {max} characters",values:{min:ae.YM.MIN_TRIGGER_LENGTH,max:ae.YM.MAX_TRIGGER_LENGTH}})}):a.url?this.props.action(a).then((()=>this.setState({saving:!1}))):this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_command.urlRequired",defaultMessage:"A request URL is required"})}):this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_command.triggerInvalidSpace",defaultMessage:"A trigger word must not contain spaces"})}):this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_command.triggerInvalidSlash",defaultMessage:"A trigger word cannot begin with a /"})}):this.setState({saving:!1,clientError:d().createElement(E.FormattedMessage,{id:"add_command.triggerRequired",defaultMessage:"A trigger word is required"})})})),Yt(this,"updateDisplayName",(e=>{this.setState({displayName:e.target.value})})),Yt(this,"updateDescription",(e=>{this.setState({description:e.target.value})})),Yt(this,"updateTrigger",(e=>{this.setState({trigger:e.target.value})})),Yt(this,"updateUrl",(e=>{this.setState({url:e.target.value})})),Yt(this,"updateMethod",(e=>{const t=e.target.value;"P"!==t&&"G"!==t&&""!==t||this.setState({method:t})})),Yt(this,"updateUsername",(e=>{this.setState({username:e.target.value})})),Yt(this,"updateIconUrl",(e=>{this.setState({iconUrl:e.target.value})})),Yt(this,"updateAutocomplete",(e=>{this.setState({autocomplete:e.target.checked})})),Yt(this,"updateAutocompleteHint",(e=>{this.setState({autocompleteHint:e.target.value})})),Yt(this,"updateAutocompleteDescription",(e=>{this.setState({autocompleteDescription:e.target.value})})),this.state=this.getStateFromCommand(this.props.initialCommand||{})}render(){let e=null,t=null;return this.state.autocomplete&&(e=d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"autocompleteHint"},d().createElement(E.FormattedMessage,{id:"add_command.autocompleteHint",defaultMessage:"Autocomplete Hint"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement(D.A,{id:"autocompleteHint",type:"text",maxLength:1024,className:"form-control",value:this.state.autocompleteHint,onChange:this.updateAutocompleteHint,placeholder:(0,E.defineMessage)({id:"add_command.autocompleteHint.placeholder",defaultMessage:"Example: [Patient Name]"})}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.autocompleteHint.help",defaultMessage:"(Optional) Specify the arguments associated with your slash command. These are displayed as help on the autocomplete list."})))),t=d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"autocompleteDescription"},d().createElement(E.FormattedMessage,{id:"add_command.autocompleteDescription",defaultMessage:"Autocomplete Description"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement(D.A,{id:"description",type:"text",maxLength:128,className:"form-control",value:this.state.autocompleteDescription,onChange:this.updateAutocompleteDescription,placeholder:(0,E.defineMessage)({id:"add_command.autocompleteDescription.placeholder",defaultMessage:'Example: "Returns search results for patient records"'})}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.autocompleteDescription.help",defaultMessage:"(Optional) Describe your slash command for the autocomplete list."}))))),d().createElement("div",{className:"backstage-content row"},d().createElement($,null,d().createElement(n.Link,{to:"/"+this.props.team.name+"/integrations/commands"},d().createElement(E.FormattedMessage,{id:"installed_command.header",defaultMessage:"Slash Commands"})),this.getBackstageHeader()),d().createElement("div",{className:"backstage-form"},d().createElement("form",{className:"form-horizontal",onSubmit:this.handleSubmit},d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"displayName"},d().createElement(E.FormattedMessage,{id:"add_command.displayName",defaultMessage:"Title"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"displayName",type:"text",maxLength:64,className:"form-control",value:this.state.displayName,onChange:this.updateDisplayName}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.displayName.help",defaultMessage:"Specify a title, of up to 64 characters, for the slash command settings page."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"description"},d().createElement(E.FormattedMessage,{id:"add_command.description",defaultMessage:"Description"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"description",type:"text",maxLength:128,className:"form-control",value:this.state.description,onChange:this.updateDescription}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.description.help",defaultMessage:"Describe your slash command."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"trigger"},d().createElement(E.FormattedMessage,{id:"add_command.trigger",defaultMessage:"Command Trigger Word"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement(D.A,{id:"trigger",type:"text",maxLength:ae.YM.MAX_TRIGGER_LENGTH,className:"form-control",value:this.state.trigger,onChange:this.updateTrigger,placeholder:(0,E.defineMessage)({id:"add_command.trigger.placeholder",defaultMessage:'Command trigger e.g. "hello" not including the slash'})}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.trigger.help",defaultMessage:"Specify a trigger word that is not a built-in command, does not contain spaces, and does not begin with the slash character."})),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.trigger.helpExamples",defaultMessage:"Examples: client, employee, patient, weather"})),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.trigger.helpReserved",defaultMessage:"Reserved: {link}",values:{link:d().createElement(re.A,{href:ae.i3.CUSTOM_SLASH_COMMANDS,location:"abstract_command"},d().createElement(E.FormattedMessage,{id:"add_command.trigger.helpReservedLinkText",defaultMessage:"See built-in slash commands"}))}})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"url"},d().createElement(E.FormattedMessage,{id:"add_command.url",defaultMessage:"Request URL"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement(zt,{value:this.state.url,onChange:this.updateUrl,placeholder:(0,E.defineMessage)({id:"add_command.url.placeholder",defaultMessage:"Must start with http:// or https://"})}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.url.help",defaultMessage:"Specify the callback URL to receive the HTTP POST or GET event request when the slash command is run."})),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.outgoing_oauth_connections.help_text",defaultMessage:"You can connect commands to <link>outgoing OAuth connections</link>.",values:{link:e=>d().createElement("a",{href:"https://mattermost.com/pl/outgoing-oauth-connections"},e)}})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"method"},d().createElement(E.FormattedMessage,{id:"add_command.method",defaultMessage:"Request Method"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("select",{id:"method",className:"form-control",value:this.state.method,onChange:this.updateMethod},d().createElement("option",{value:"P"},M.Vw({id:"add_command.method.post",defaultMessage:"POST"})),d().createElement("option",{value:"G"},M.Vw({id:"add_command.method.get",defaultMessage:"GET"}))),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.method.help",defaultMessage:"Specify the type of request, either POST or GET, sent to the endpoint that Mattermost hits to reach your application."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"username"},d().createElement(E.FormattedMessage,{id:"add_command.username",defaultMessage:"Response Username"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement(D.A,{id:"username",type:"text",maxLength:64,className:"form-control",value:this.state.username,onChange:this.updateUsername,placeholder:(0,E.defineMessage)({id:"add_command.username.placeholder",defaultMessage:"Username"})}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.username.help",defaultMessage:'(Optional) Specify the name to use when posting responses for this slash command. Usernames can be up to 22 characters, and contain lowercase letters, numbers, and the symbols \\"-\\", \\"_\\", and \\".\\". If left blank, your Mattermost username is used.'})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"iconUrl"},d().createElement(E.FormattedMessage,{id:"add_command.iconUrl",defaultMessage:"Response Icon"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement(D.A,{id:"iconUrl",type:"text",maxLength:1024,className:"form-control",value:this.state.iconUrl,onChange:this.updateIconUrl,placeholder:(0,E.defineMessage)({id:"add_command.iconUrl.placeholder",defaultMessage:"https://www.example.com/myicon.png"})}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.iconUrl.help",defaultMessage:"(Optional) Enter the URL of a .png or .jpg file to use as the icon when posting responses to this slash command. The file must be at least 128 pixels by 128 pixels. If left blank, your profile picture is used."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"autocomplete"},d().createElement(E.FormattedMessage,{id:"add_command.autocomplete",defaultMessage:"Autocomplete"})),d().createElement("div",{className:"col-md-5 col-sm-8 checkbox"},d().createElement("input",{id:"autocomplete",type:"checkbox",checked:this.state.autocomplete,onChange:this.updateAutocomplete}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_command.autocomplete.help",defaultMessage:'(Optional) Show your slash command on the autocomplete list when someone types "/" in the input box.'})))),e,t,d().createElement("div",{className:"backstage-form__footer"},d().createElement(Q.A,{type:"backstage",errors:[this.props.serverError,this.state.clientError]}),d().createElement(n.Link,{className:"btn btn-tertiary",to:"/"+this.props.team.name+"/integrations/commands"},d().createElement(E.FormattedMessage,{id:"add_command.cancel",defaultMessage:"Cancel"})),d().createElement(ee.A,{className:"btn btn-primary",type:"submit",spinning:this.state.saving,spinningText:this.props.loading,onClick:this.handleSubmit,id:"saveCommand"},this.getBackstageFooter()),this.props.renderExtra))))}}const Jt=e=>{let{team:t,actions:a}=e;const s=(0,n.useHistory)(),{formatMessage:o}=(0,E.useIntl)(),r=o({id:"integrations.add",defaultMessage:"Add"}),i=o({id:"add_command.save",defaultMessage:"Save"}),l=o({id:"add_command.saving",defaultMessage:"Saving..."}),[c,u]=(0,m.useState)("");return d().createElement(Vt,{team:t,header:r,footer:i,loading:l,action:async e=>{u("");const{data:n,error:o}=await a.addCommand(e);n?s.push("/".concat(t.name,"/integrations/commands/confirm?type=commands&id=").concat(n.id)):o&&u(o.message)},serverError:c})};Jt.propTypes={actions:b().shape({addCommand:b().func.isRequired}).isRequired};const Kt=Jt,Xt=(0,s.connect)(null,(function(e){return{actions:(0,g.bindActionCreators)({addCommand:ve.np},e)}}))(Kt);a(59297);const Zt=e=>{let{label:t,value:a}=e;const s=(0,E.useIntl)(),n=(0,m.useCallback)((e=>{e.preventDefault(),(0,M.lW)(a)}),[a]);return document.queryCommandSupported("copy")?d().createElement(Ot.A,{title:t},d().createElement("button",{"data-testid":"copyText",className:"btn btn-link fa fa-copy ml-2","aria-label":s.formatMessage(t),onClick:n})):null};Zt.propTypes={value:b().string.isRequired};const $t=d().memo(Zt);var Qt=a(63155);const ea=e=>{let{team:t,location:a,commands:s,oauthApps:o,incomingHooks:r,outgoingHooks:i,bots:l,outgoingOAuthConnections:c}=e;const u=(0,n.useHistory)(),g=new URLSearchParams(a.search).get("type")||"",p=new URLSearchParams(a.search).get("id")||"";(0,m.useEffect)((()=>(window.addEventListener("keypress",h),()=>{window.removeEventListener("keypress",h)})));const h=e=>{"Enter"===e.key&&u.push("/"+t.name+"/integrations/"+g)};let f,b,_;const v=s[p],M=r[p],k=i[p],y=o[p],N=c[p],w=l[p];if(g===ae.YM.Integrations.COMMAND&&v){const e=v.token;f=d().createElement(E.FormattedMessage,{id:"slash_commands.header",defaultMessage:"Slash Commands"}),b=d().createElement("p",null,d().createElement(E.FormattedMessage,{id:"add_command.doneHelp",defaultMessage:"Your slash command is set up. The following token will be sent in the outgoing payload. Please use it to verify the request came from your Mattermost team (details at <link>Slash Commands</link>).",values:{link:e=>d().createElement(re.A,{href:ae.i3.SETUP_CUSTOM_SLASH_COMMANDS,location:"confirm_integration"},e)}})),_=d().createElement("p",{className:"word-break--all"},d().createElement(E.FormattedMessage,{id:"add_command.token",defaultMessage:"<b>Token</b>: {token}",values:{token:e,b:e=>d().createElement("b",null,e)}}),d().createElement($t,{label:ta.copyToken,value:e}))}else if(g===ae.YM.Integrations.INCOMING_WEBHOOK&&M){const e=(0,Qt.vV)()+"/hooks/"+M.id;f=d().createElement(E.FormattedMessage,{id:"incoming_webhooks.header",defaultMessage:"Incoming Webhooks"}),b=d().createElement("p",null,d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.doneHelp",defaultMessage:"Your incoming webhook is set up. Please send data to the following URL (details at <link>Incoming Webhooks</link>).",values:{link:e=>d().createElement(re.A,{href:ae.i3.SETUP_INCOMING_WEBHOOKS,location:"confirm_integration"},e)}})),_=d().createElement("p",{className:"word-break--all"},d().createElement(E.FormattedMessage,{id:"add_incoming_webhook.url",defaultMessage:"<b>URL</b>: {url}",values:{url:"`"+e+"`",b:e=>d().createElement("b",null,e)}}),d().createElement($t,{label:ta.copyToken,value:e}))}else if(g===ae.YM.Integrations.OUTGOING_WEBHOOK&&k){const e=k.token;f=d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.header",defaultMessage:"Outgoing Webhooks"}),b=d().createElement("p",null,d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.doneHelp",defaultMessage:"Your outgoing webhook is set up. The following token will be sent in the outgoing payload. Please use it to verify that the request came from your Mattermost team (details at <link>Outgoing Webhooks</link>).",values:{link:e=>d().createElement(re.A,{href:ae.i3.SETUP_OUTGOING_WEBHOOKS,location:"confirm_integration"},e)}})),_=d().createElement("p",{className:"word-break--all"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.token",defaultMessage:"<b>Token</b>: {token}",values:{token:e,b:e=>d().createElement("b",null,e)}}),d().createElement($t,{label:ta.copyToken,value:e}))}else if(g===ae.YM.Integrations.OAUTH_APP&&y){const e=y.id,t=y.client_secret;f=d().createElement(E.FormattedMessage,{id:"installed_oauth2_apps.header",defaultMessage:"OAuth 2.0 Applications"}),b=[],b.push(d().createElement("p",{key:"add_oauth_app.doneHelp"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.doneHelp",defaultMessage:"Your OAuth 2.0 application is set up. Please use the following Client ID and Client Secret when requesting authorization for your application (details at <link>oAuth 2 Applications</link>).",values:{link:e=>d().createElement(re.A,{href:ae.i3.SETUP_OAUTH2,location:"confirm_integration"},e)}}))),b.push(d().createElement("p",{key:"add_oauth_app.clientId"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.clientId",defaultMessage:"<b>Client ID</b>: {id}",values:{id:e,b:e=>d().createElement("b",null,e)}}),d().createElement($t,{label:ta.copyClientId,value:e}),d().createElement("br",null),d().createElement(E.FormattedMessage,{id:"add_oauth_app.clientSecret",defaultMessage:"<b>Client Secret</b>: {secret}",values:{secret:t,b:e=>d().createElement("b",null,e)}}),d().createElement($t,{label:ta.copyClientSecret,value:t}))),b.push(d().createElement("p",{key:"add_oauth_app.doneUrlHelp"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.doneUrlHelp",defaultMessage:"Here are your authorized redirect URLs."}))),_=d().createElement("p",{className:"word-break--all"},d().createElement(E.FormattedMessage,{id:"add_oauth_app.url",defaultMessage:"<b>URL(s)</b>: {url}",values:{url:y.callback_urls.join(", "),b:e=>d().createElement("b",null,e)}}))}else if(g===ae.YM.Integrations.OUTGOING_OAUTH_CONNECTIONS&&N){const e=N.client_id,t=N.client_secret,a=N.credentials_username,s=N.credentials_password;f=d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.header",defaultMessage:"Outgoing OAuth 2.0 Connections"}),b=[],b.push(d().createElement("p",{key:"add_outgoing_oauth_connection.doneHelp"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.doneHelp",defaultMessage:"Your Outgoing OAuth 2.0 Connection is set up. When a request is sent to one of the following Audience URLs, the Client ID and Client Secret will now be used to retrieve a token from the Token URL, before sending the integration request (details at <link>Outgoing OAuth 2.0 Connections</link>).",values:{link:e=>d().createElement(re.A,{href:ae.i3.SETUP_OAUTH2,location:"confirm_integration"},e)}}))),b.push(d().createElement("p",{key:"add_outgoing_oauth_connection.clientId"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.clientId",defaultMessage:"<b>Client ID</b>: {id}",values:{id:e,b:e=>d().createElement("b",null,e)}}),d().createElement("br",null),d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.clientSecret",defaultMessage:"<b>Client Secret</b>: \\*\\*\\*\\*\\*\\*\\*\\*",values:{secret:t,b:e=>d().createElement("b",null,e)}}))),"password"===N.grant_type&&b.push(d().createElement("p",{key:"add_outgoing_oauth_connection.username"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.username",defaultMessage:"<b>Username</b>: {username}",values:{username:a,b:e=>d().createElement("b",null,e)}}),d().createElement($t,{label:ta.copyUsername,value:a||""}),d().createElement("br",null),d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.password",defaultMessage:"<b>Password</b>: {password}",values:{password:s,b:e=>d().createElement("b",null,e)}}))),_=d().createElement(d().Fragment,null,d().createElement("p",{className:"word-break--all"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.token_url",defaultMessage:"<b>Token URL</b>: `{url}`",values:{url:N.oauth_token_url,b:e=>d().createElement("b",null,e)}})),d().createElement("p",{className:"word-break--all"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.audience_urls",defaultMessage:"<b>Audience URL(s)</b>: `{url}`",values:{url:N.audiences.join(", "),b:e=>d().createElement("b",null,e)}})))}else{if(g!==ae.YM.Integrations.BOT||!w)return u.replace("/error?type=".concat(ae.f2.PAGE_NOT_FOUND)),null;{const e=new URLSearchParams(a.search).get("token")||"";f=d().createElement(E.FormattedMessage,{id:"bots.manage.header",defaultMessage:"Bot Accounts"}),b=d().createElement("p",null,d().createElement(E.FormattedMessage,{id:"bots.manage.created.text",defaultMessage:"Your bot account **{botname}** has been created successfully. Please use the following access token to connect to the bot (see [documentation](https://mattermost.com/pl/default-bot-accounts) for further details).",values:{botname:w.display_name||w.username,b:e=>d().createElement("b",null,e),link:e=>d().createElement(re.A,{href:"https://mattermost.com/pl/default-bot-accounts",location:"confirm_integration"},e)}})),_=d().createElement("p",{className:"word-break--all"},d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.token",defaultMessage:"<b>Token</b>: {token}",values:{token:e,b:e=>d().createElement("b",null,e)}}),d().createElement($t,{label:ta.copyToken,value:e}),d().createElement("br",null),d().createElement("br",null),d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.token.message",defaultMessage:"Make sure to add this bot account to teams and channels you want it to interact in. See <link>documentation</link> to learn more.",values:{link:e=>d().createElement(re.A,{href:"https://mattermost.com/pl/default-bot-accounts",location:"confirm_integration"},e)}}))}}return d().createElement("div",{className:"backstage-content row"},d().createElement($,null,d().createElement(n.Link,{to:"/"+t.name+"/integrations/"+g},f),d().createElement(E.FormattedMessage,{id:"integrations.add",defaultMessage:"Add"})),d().createElement("div",{className:"backstage-form backstage-form__confirmation"},d().createElement("h4",{className:"backstage-form__title",id:"formTitle"},d().createElement(E.FormattedMessage,{id:"integrations.successful",defaultMessage:"Setup Successful"})),b,_,d().createElement("div",{className:"backstage-form__footer"},d().createElement(n.Link,{className:"btn btn-primary",type:"submit",to:"/"+t.name+"/integrations/"+g,id:"doneButton"},d().createElement(E.FormattedMessage,{id:"integrations.done",defaultMessage:"Done"})))))};ea.propTypes={location:b().shape({search:b().string.isRequired}).isRequired};const ta=(0,E.defineMessages)({copyClientId:{id:"integrations.copy_client_id",defaultMessage:"Copy Client Id"},copyClientSecret:{id:"integrations.copy_client_secret",defaultMessage:"Copy Client Secret"},copyToken:{id:"integrations.copy_token",defaultMessage:"Copy Token"},copyUsername:{id:"integrations.copy_username",defaultMessage:"Copy Username"}}),aa=ea,sa=(0,s.connect)((function(e){return{commands:lt(e),oauthApps:ct(e),incomingHooks:rt(e),outgoingHooks:it(e),bots:(0,at.s9)(e),outgoingOAuthConnections:mt(e)}}))(aa);function na(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const oa=(0,E.defineMessages)({footer:{id:"edit_command.update",defaultMessage:"Update"},header:{id:"integrations.edit",defaultMessage:"Edit"},loading:{id:"edit_command.updating",defaultMessage:"Updating..."}});class ra extends d().PureComponent{constructor(e){super(e),na(this,"editCommand",(async e=>{var t,a,s,n;this.newCommand=e,null!==(t=this.state.originalCommand)&&void 0!==t&&t.id&&(e.id=this.state.originalCommand.id),(null===(a=this.state.originalCommand)||void 0===a?void 0:a.url)!==this.newCommand.url||(null===(s=this.state.originalCommand)||void 0===s?void 0:s.trigger)!==this.newCommand.trigger||(null===(n=this.state.originalCommand)||void 0===n?void 0:n.method)!==this.newCommand.method?this.handleConfirmModal():await this.submitCommand()})),na(this,"handleConfirmModal",(()=>{this.setState({showConfirmModal:!0})})),na(this,"confirmModalDismissed",(()=>{this.setState({showConfirmModal:!1})})),na(this,"submitCommand",(async()=>{this.setState({serverError:""});const{data:e,error:t}=await this.props.actions.editCommand(this.newCommand);e?(0,te.J)().push("/".concat(this.props.team.name,"/integrations/commands")):(this.setState({showConfirmModal:!1}),t&&this.setState({serverError:t.message}))})),na(this,"renderExtra",(()=>{const e=d().createElement(E.FormattedMessage,{id:"update_command.update",defaultMessage:"Update"}),t=d().createElement(E.FormattedMessage,{id:"update_command.confirm",defaultMessage:"Edit Slash Command"}),a=d().createElement(E.FormattedMessage,{id:"update_command.question",defaultMessage:"Your changes may break the existing slash command. Are you sure you would like to update it?"});return d().createElement(_t.A,{title:t,message:a,confirmButtonText:e,modalClass:"integrations-backstage-modal",show:this.state.showConfirmModal,onConfirm:this.submitCommand,onCancel:this.confirmModalDismissed})})),this.newCommand=void 0,this.state={originalCommand:null,showConfirmModal:!1,serverError:""}}componentDidMount(){this.props.enableCommands&&this.props.actions.getCustomTeamCommands(this.props.team.id).then((()=>{this.setState({originalCommand:Object.values(this.props.commands).filter((e=>e.id===this.props.commandId))[0]})}))}render(){return this.state.originalCommand?d().createElement(Vt,{team:this.props.team,header:oa.header,footer:oa.footer,loading:oa.loading,renderExtra:this.renderExtra(),action:this.editCommand,serverError:this.state.serverError,initialCommand:this.state.originalCommand}):d().createElement(U.A,null)}}na(ra,"propTypes",{commandId:b().oneOfType([b().string,b().oneOf([null])]),actions:b().shape({getCustomTeamCommands:b().func.isRequired,editCommand:b().func.isRequired}).isRequired,enableCommands:b().bool.isRequired});const ia=(0,s.connect)((function(e,t){const a=(0,r.zj)(e),s=new URLSearchParams(t.location.search).get("id"),n="true"===a.EnableCommands;return{commandId:s,commands:lt(e),enableCommands:n}}),(function(e){return{actions:(0,g.bindActionCreators)({getCustomTeamCommands:ve.hB,editCommand:ve.UQ},e)}}))(ra);function la(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function ca(e,t){return!t||-1!==e.display_name.toLowerCase().indexOf(t)||-1!==e.description.toLowerCase().indexOf(t)||-1!==e.trigger.toLowerCase().indexOf(t)}class ma extends d().PureComponent{constructor(){super(...arguments),la(this,"handleRegenToken",(e=>{e.preventDefault(),this.props.onRegenToken(this.props.command)})),la(this,"handleDelete",(()=>{this.props.onDelete(this.props.command)}))}render(){const e=this.props.command;if(!ca(e,this.props.filter?this.props.filter.toLowerCase():""))return null;let t;t=e.display_name?e.display_name:d().createElement(E.FormattedMessage,{id:"installed_commands.unnamed_command",defaultMessage:"Unnamed Slash Command"});let a=null;e.description&&(a=d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__description"},e.description)));let s="- /"+e.trigger;e.auto_complete&&e.auto_complete_hint&&(s+=" "+e.auto_complete_hint);let o=null;this.props.canChange&&(o=d().createElement("div",{className:"item-actions"},d().createElement("button",{className:"style--none color--link",onClick:this.handleRegenToken},d().createElement(E.FormattedMessage,{id:"installed_integrations.regenToken",defaultMessage:"Regenerate Token"}))," - ",d().createElement(n.Link,{to:"/".concat(this.props.team.name,"/integrations/commands/edit?id=").concat(e.id)},d().createElement(E.FormattedMessage,{id:"installed_integrations.edit",defaultMessage:"Edit"}))," - ",d().createElement(F,{modalMessage:d().createElement(E.FormattedMessage,{id:"installed_commands.delete.confirm",defaultMessage:"This action permanently deletes the slash command and breaks any integrations using it. Are you sure you want to delete it?"}),onDelete:this.handleDelete})));const r=e.token;return d().createElement("div",{className:"backstage-list__item"},d().createElement("div",{className:"item-details"},d().createElement("div",{className:"item-details__row d-flex flex-column flex-md-row justify-content-between"},d().createElement("div",{className:"item-details__name"},d().createElement("strong",null,t)),d().createElement("span",{className:"item-details__trigger"},s),o),a,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_integrations.token",defaultMessage:"Token: {token}",values:{token:r}}),d().createElement($t,{label:(0,E.defineMessage)({id:"integrations.copy_token",defaultMessage:"Copy Token"}),value:r}))),d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__creation"},d().createElement(E.FormattedMessage,{id:"installed_integrations.creation",defaultMessage:"Created by {creator} on {createAt, date, full}",values:{creator:this.props.creator.username,createAt:e.create_at}})))))}}function da(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}la(ma,"propTypes",{onRegenToken:b().func.isRequired,onDelete:b().func.isRequired,filter:b().string,canChange:b().bool.isRequired});class ua extends d().PureComponent{constructor(){super(...arguments),da(this,"regenCommandToken",(e=>{this.props.actions.regenCommandToken(e.id)})),da(this,"deleteCommand",(e=>{this.props.actions.deleteCommand(e.id)}))}commandCompare(e,t){let a=e.display_name;a||(a=M.Vw({id:"installed_commands.unnamed_command",defaultMessage:"Unnamed Slash Command"}));let s=t.display_name;return s||(s=M.Vw({id:"installed_commands.unnamed_command",defaultMessage:"Unnamed Slash Command"})),a.localeCompare(s)}render(){const e=e=>this.props.commands.filter((e=>e.team_id===this.props.team.id)).filter((t=>ca(t,e))).sort(this.commandCompare).map((e=>{const t=this.props.canManageOthersSlashCommands||this.props.user.id===e.creator_id;return d().createElement(ma,{key:e.id,team:this.props.team,command:e,onRegenToken:this.regenCommandToken,onDelete:this.deleteCommand,creator:this.props.users[e.creator_id]||{},canChange:t})}));return d().createElement(Et,{header:d().createElement(E.FormattedMessage,{id:"installed_commands.header",defaultMessage:"Installed Slash Commands"}),addText:d().createElement(E.FormattedMessage,{id:"installed_commands.add",defaultMessage:"Add Slash Command"}),addLink:"/"+this.props.team.name+"/integrations/commands/add",addButtonId:"addSlashCommand",emptyText:d().createElement(E.FormattedMessage,{id:"installed_commands.empty",defaultMessage:"No slash commands found"}),emptyTextSearch:d().createElement(E.FormattedMessage,{id:"installed_commands.search.empty",defaultMessage:"No slash commands match <b>{searchTerm}</b>",values:{b:e=>d().createElement("b",null,e)}}),helpText:d().createElement(E.FormattedMessage,{id:"installed_commands.help",defaultMessage:"Use slash commands to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",values:{buildYourOwn:d().createElement(re.A,{href:ae.i3.SETUP_CUSTOM_SLASH_COMMANDS,location:"installed_commands"},d().createElement(E.FormattedMessage,{id:"installed_commands.help.buildYourOwn",defaultMessage:"Build Your Own"})),appDirectory:d().createElement(re.A,{href:"https://mattermost.com/marketplace",location:"installed_commands"},d().createElement(E.FormattedMessage,{id:"installed_commands.help.appDirectory",defaultMessage:"App Directory"}))}}),searchPlaceholder:M.Vw({id:"installed_commands.search",defaultMessage:"Search Slash Commands"}),loading:this.props.loading},(t=>{const a=e(t);return[a,a.length>0]}))}}da(ua,"propTypes",{commands:b().array.isRequired,loading:b().bool.isRequired,canManageOthersSlashCommands:b().bool.isRequired,actions:b().shape({regenCommandToken:b().func.isRequired,deleteCommand:b().func.isRequired}).isRequired});const ga=(0,s.connect)((function(e,t){return{canManageOthersSlashCommands:(0,i.mg)(e,t.team.id,o.xB.MANAGE_OTHERS_SLASH_COMMANDS)}}),(function(e){return{actions:(0,g.bindActionCreators)({regenCommandToken:ve.QT,deleteCommand:ve.x3},e)}}))(ua),pa=["component","extraProps"],ha=e=>{let{component:t,extraProps:a}=e,s=function(e,t){if(null==e)return{};var a,s,n=function(e,t){if(null==e)return{};var a={};for(var s in e)if({}.hasOwnProperty.call(e,s)){if(t.includes(s))continue;a[s]=e[s]}return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s<o.length;s++)a=o[s],t.includes(a)||{}.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}(e,pa);return d().createElement(n.Route,Object.assign({},s,{render:e=>d().createElement(t,Object.assign({},a,e))}))};ha.propTypes={component:b().any.isRequired,extraProps:b().shape({loading:b().bool.isRequired,commands:b().array.isRequired}).isRequired,path:b().string.isRequired};class fa extends d().PureComponent{constructor(e){super(e),this.state={loading:!0}}componentDidMount(){var e;this.props.enableCommands&&this.props.actions.loadCommandsAndProfilesForTeam((null===(e=this.props.team)||void 0===e?void 0:e.id)||"").then((()=>this.setState({loading:!1})))}render(){const e={loading:this.state.loading,commands:this.props.commands||[],users:this.props.users,team:this.props.team,user:this.props.user};return d().createElement("div",null,d().createElement(n.Switch,null,d().createElement(n.Route,{exact:!0,path:"".concat(this.props.match.url,"/"),render:()=>d().createElement(n.Redirect,{to:"".concat(this.props.match.url,"/installed")})}),d().createElement(ha,{extraProps:e,path:"".concat(this.props.match.url,"/installed"),component:ga}),d().createElement(ha,{extraProps:e,path:"".concat(this.props.match.url,"/add"),component:Xt}),d().createElement(ha,{extraProps:e,path:"".concat(this.props.match.url,"/edit"),component:ia}),d().createElement(ha,{extraProps:e,path:"".concat(this.props.match.url,"/confirm"),component:sa})))}}var ba,Ea,_a;ba=fa,Ea="propTypes",_a={commands:b().array.isRequired,match:b().shape({url:b().string.isRequired}).isRequired,actions:b().shape({loadCommandsAndProfilesForTeam:b().func.isRequired}).isRequired,enableCommands:b().bool},(Ea=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(Ea))in ba?Object.defineProperty(ba,Ea,{value:_a,enumerable:!0,configurable:!0,writable:!0}):ba[Ea]=_a;const va=(0,s.connect)((function(e){const t="true"===(0,r.zj)(e).EnableCommands;return{commands:Object.values(lt(e)),users:(0,c.lo)(e),enableCommands:t}}),(function(e){return{actions:(0,g.bindActionCreators)({loadCommandsAndProfilesForTeam:Dt},e)}}))(fa);function Ma(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const ka=(0,E.defineMessages)({footer:{id:"update_incoming_webhook.update",defaultMessage:"Update"},header:{id:"integrations.edit",defaultMessage:"Edit"},loading:{id:"update_incoming_webhook.updating",defaultMessage:"Updating..."}});class ya extends d().PureComponent{constructor(e){super(e),Ma(this,"editIncomingHook",(async e=>{var t;this.newHook=e,null!==(t=this.props.hook)&&void 0!==t&&t.id&&(e.id=this.props.hook.id),await this.submitHook()})),Ma(this,"submitHook",(async()=>{if(this.setState({serverError:""}),!this.newHook)return;const e=await this.props.actions.updateIncomingHook(this.newHook);if("data"in e)(0,te.J)().push("/".concat(this.props.team.name,"/integrations/incoming_webhooks"));else if("error"in e){const{error:t}=e;this.setState({serverError:t.message})}})),this.state={serverError:""}}componentDidMount(){this.props.enableIncomingWebhooks&&this.props.actions.getIncomingHook(this.props.hookId)}render(){return this.props.hook?d().createElement(Fe,{team:this.props.team,header:ka.header,footer:ka.footer,loading:ka.loading,enablePostUsernameOverride:this.props.enablePostUsernameOverride,enablePostIconOverride:this.props.enablePostIconOverride,action:this.editIncomingHook,serverError:this.state.serverError,initialHook:this.props.hook}):d().createElement(U.A,null)}}Ma(ya,"propTypes",{hookId:b().string.isRequired,enableIncomingWebhooks:b().bool.isRequired,enablePostUsernameOverride:b().bool.isRequired,enablePostIconOverride:b().bool.isRequired,actions:b().shape({updateIncomingHook:b().func.isRequired,getIncomingHook:b().func.isRequired}).isRequired});const Na=(0,s.connect)((function(e,t){const a=(0,r.zj)(e),s="true"===a.EnableIncomingWebhooks,n="true"===a.EnablePostUsernameOverride,o="true"===a.EnablePostIconOverride,i=new URLSearchParams(t.location.search).get("id")||"";return{hookId:i,hook:e.entities.integrations.incomingHooks[i],enableIncomingWebhooks:s,enablePostUsernameOverride:n,enablePostIconOverride:o}}),(function(e){return{actions:(0,g.bindActionCreators)({updateIncomingHook:ve.n4,getIncomingHook:ve.MB},e)}}))(ya);function wa(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Aa={id:"integrations.edit",defaultMessage:"Edit"},Ca={id:"update_incoming_webhook.update",defaultMessage:"Update"},Oa={id:"update_incoming_webhook.updating",defaultMessage:"Updating..."};class Sa extends d().PureComponent{constructor(e){super(e),wa(this,"editOAuthApp",(async e=>{this.newApp=e,this.props.oauthApp.id&&(e.id=this.props.oauthApp.id),!1===(this.props.oauthApp.callback_urls.length===e.callback_urls.length&&this.props.oauthApp.callback_urls.every(((t,a)=>t===e.callback_urls[a])))?this.handleConfirmModal():await this.submitOAuthApp()})),wa(this,"handleConfirmModal",(()=>{this.setState({showConfirmModal:!0})})),wa(this,"confirmModalDismissed",(()=>{this.setState({showConfirmModal:!1})})),wa(this,"submitOAuthApp",(async()=>{this.setState({serverError:""});const e=await this.props.actions.editOAuthApp(this.newApp);if("data"in e&&e.data)(0,te.J)().push("/".concat(this.props.team.name,"/integrations/oauth2-apps"));else if(this.setState({showConfirmModal:!1}),"error"in e){const{error:t}=e;this.setState({serverError:t.message})}})),wa(this,"renderExtra",(()=>{const e=d().createElement(E.FormattedMessage,{id:"update_command.update",defaultMessage:"Update"}),t=d().createElement(E.FormattedMessage,{id:"update_oauth_app.confirm",defaultMessage:"Edit OAuth 2.0 application"}),a=d().createElement(E.FormattedMessage,{id:"update_oauth_app.question",defaultMessage:"Your changes may break the existing OAuth 2.0 application. Are you sure you would like to update it?"});return d().createElement(_t.A,{title:t,message:a,confirmButtonText:e,modalClass:"integrations-backstage-modal",show:this.state.showConfirmModal,onConfirm:this.submitOAuthApp,onCancel:this.confirmModalDismissed})})),this.state={showConfirmModal:!1,serverError:""},this.newApp=this.props.oauthApp}componentDidMount(){this.props.enableOAuthServiceProvider&&this.props.actions.getOAuthApp(this.props.oauthAppId)}render(){return this.props.oauthApp?d().createElement(je,{team:this.props.team,header:Aa,footer:Ca,loading:Oa,renderExtra:this.renderExtra(),action:this.editOAuthApp,serverError:this.state.serverError,initialApp:this.props.oauthApp}):d().createElement(U.A,null)}}wa(Sa,"propTypes",{oauthAppId:b().string.isRequired,actions:b().shape({getOAuthApp:b().func.isRequired,editOAuthApp:b().func.isRequired}).isRequired,enableOAuthServiceProvider:b().bool.isRequired});const Fa=(0,s.connect)((function(e,t){const a=(0,r.zj)(e),s=new URLSearchParams(t.location.search).get("id")||"",n="true"===a.EnableOAuthServiceProvider;return{oauthAppId:s,oauthApp:e.entities.integrations.oauthApps[s],enableOAuthServiceProvider:n}}),(function(e){return{actions:(0,g.bindActionCreators)({getOAuthApp:ve.zv,editOAuthApp:ve.Bb},e)}}))(Sa);function Ta(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const Pa={id:"integrations.edit",defaultMessage:"Edit"},Ia={id:"update_outgoing_webhook.update",defaultMessage:"Update"},xa={id:"update_outgoing_webhook.updating",defaultMessage:"Updating..."};class Ra extends d().PureComponent{constructor(e){super(e),Ta(this,"editOutgoingHook",(async e=>{this.newHook=e,this.props.hook.id&&(e.id=this.props.hook.id),this.props.hook.token&&(e.token=this.props.hook.token);const t=this.props.hook.trigger_words.length===e.trigger_words.length&&this.props.hook.trigger_words.every(((t,a)=>t===e.trigger_words[a])),a=this.props.hook.callback_urls.length===e.callback_urls.length&&this.props.hook.callback_urls.every(((t,a)=>t===e.callback_urls[a]));this.props.hook.content_type===e.content_type&&t&&a?await this.submitHook():this.handleConfirmModal()})),Ta(this,"handleConfirmModal",(()=>{this.setState({showConfirmModal:!0})})),Ta(this,"confirmModalDismissed",(()=>{this.setState({showConfirmModal:!1})})),Ta(this,"submitHook",(async()=>{this.setState({serverError:""});const{data:e,error:t}=await this.props.actions.updateOutgoingHook(this.newHook);e?(0,te.J)().push("/".concat(this.props.team.name,"/integrations/outgoing_webhooks")):(this.setState({showConfirmModal:!1}),t&&this.setState({serverError:t.message}))})),Ta(this,"renderExtra",(()=>{const e=d().createElement(E.FormattedMessage,{id:"update_outgoing_webhook.update",defaultMessage:"Update"}),t=d().createElement(E.FormattedMessage,{id:"update_outgoing_webhook.confirm",defaultMessage:"Edit Outgoing Webhook"}),a=d().createElement(E.FormattedMessage,{id:"update_outgoing_webhook.question",defaultMessage:"Your changes may break the existing outgoing webhook. Are you sure you would like to update it?"});return d().createElement(_t.A,{title:t,message:a,confirmButtonText:e,modalClass:"integrations-backstage-modal",show:this.state.showConfirmModal,onConfirm:this.submitHook,onCancel:this.confirmModalDismissed})})),this.state={showConfirmModal:!1,serverError:""}}componentDidMount(){this.props.enableOutgoingWebhooks&&this.props.actions.getOutgoingHook(this.props.hookId)}render(){return this.props.hook?d().createElement(We,{team:this.props.team,header:Pa,footer:Ia,loading:xa,renderExtra:this.renderExtra(),action:this.editOutgoingHook,serverError:this.state.serverError,initialHook:this.props.hook,enablePostUsernameOverride:this.props.enablePostUsernameOverride,enablePostIconOverride:this.props.enablePostIconOverride}):d().createElement(U.A,null)}}Ta(Ra,"propTypes",{hookId:b().string.isRequired,actions:b().shape({updateOutgoingHook:b().func.isRequired,getOutgoingHook:b().func.isRequired}).isRequired,enableOutgoingWebhooks:b().bool,enablePostUsernameOverride:b().bool.isRequired,enablePostIconOverride:b().bool.isRequired});const ja=(0,s.connect)((function(e,t){const a=(0,r.zj)(e),s=new URLSearchParams(t.location.search).get("id"),n="true"===a.EnableOutgoingWebhooks,o="true"===a.EnablePostUsernameOverride,i="true"===a.EnablePostIconOverride;return{hookId:s,hook:e.entities.integrations.outgoingHooks[s],enableOutgoingWebhooks:n,enablePostUsernameOverride:o,enablePostIconOverride:i}}),(function(e){return{actions:(0,g.bindActionCreators)({updateOutgoingHook:ve.P5,getOutgoingHook:ve.Gx},e)}}))(Ra);function Ua(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function Da(e,t,a){return!a||-1!==e.display_name.toLowerCase().indexOf(a)||-1!==e.description.toLowerCase().indexOf(a)||!(!e.channel_id||!t||-1===t.name.toLowerCase().indexOf(a))}class La extends d().PureComponent{constructor(){super(...arguments),Ua(this,"handleDelete",(()=>{this.props.onDelete(this.props.incomingWebhook)}))}render(){const e=this.props.incomingWebhook,t=this.props.channel;if(!Da(e,t,this.props.filter?this.props.filter.toLowerCase():""))return null;let a;a=e.display_name?e.display_name:t?t.display_name:d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.unknown_channel",defaultMessage:"A Private Webhook"});let s=null;e.description&&(s=d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__description"},e.description)));let o=null;this.props.canChange&&(o=d().createElement("div",{className:"item-actions"},d().createElement(n.Link,{to:"/".concat(this.props.team.name,"/integrations/incoming_webhooks/edit?id=").concat(e.id)},d().createElement(E.FormattedMessage,{id:"installed_integrations.edit",defaultMessage:"Edit"}))," - ",d().createElement(F,{modalMessage:d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.delete.confirm",defaultMessage:"This action permanently deletes the incoming webhook and breaks any integrations using it. Are you sure you want to delete it?"}),onDelete:this.handleDelete})));const r=(0,Qt.vV)()+"/hooks/"+e.id;return d().createElement("div",{className:"backstage-list__item"},d().createElement("div",{className:"item-details"},d().createElement("div",{className:"item-details__row d-flex flex-column flex-md-row justify-content-between"},d().createElement("strong",{className:"item-details__name"},a),o),s,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__url word-break--all"},d().createElement(E.FormattedMessage,{id:"installed_integrations.url",defaultMessage:"URL: {url}",values:{url:r}}),d().createElement("span",null,d().createElement($t,{label:(0,E.defineMessage)({id:"integrations.copy_url",defaultMessage:"Copy URL"}),value:r})))),d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__creation"},d().createElement(E.FormattedMessage,{id:"installed_integrations.creation",defaultMessage:"Created by {creator} on {createAt, date, full}",values:{creator:this.props.creator.username,createAt:e.create_at}})))))}}function qa(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}Ua(La,"propTypes",{onDelete:b().func.isRequired,filter:b().string,creator:b().shape({username:b().string.isRequired}).isRequired,canChange:b().bool.isRequired});class Ha extends d().PureComponent{constructor(e){super(e),qa(this,"deleteIncomingWebhook",(e=>{this.props.actions.removeIncomingHook(e.id)})),qa(this,"loadPage",(async e=>{this.props.enableIncomingWebhooks&&this.setState({loading:!0},(async()=>{await this.props.actions.loadIncomingHooksAndProfilesForTeam(this.props.team.id,e,200,!0),this.setState({page:e,loading:!1})}))})),qa(this,"nextPage",(()=>{this.loadPage(this.state.page+1)})),qa(this,"previousPage",(()=>{this.loadPage(this.state.page-1)})),qa(this,"incomingWebhookCompare",((e,t)=>{let a=e.display_name;if(!a){const t=this.props.channels[e.channel_id];a=t?t.display_name:M.Vw({id:"installed_incoming_webhooks.unknown_channel",defaultMessage:"A Private Webhook"})}const s=t.display_name;return a.localeCompare(s)})),qa(this,"incomingWebhooks",(e=>this.props.incomingHooks.sort(this.incomingWebhookCompare).filter((t=>Da(t,this.props.channels[t.channel_id],e))).map((e=>{const t=this.props.canManageOthersWebhooks||this.props.user.id===e.user_id,a=this.props.channels[e.channel_id];return d().createElement(La,{key:e.id,incomingWebhook:e,onDelete:this.deleteIncomingWebhook,creator:this.props.users[e.user_id]||{},canChange:t,team:this.props.team,channel:a})})))),this.state={page:0,loading:!0}}componentDidMount(){this.loadPage(0)}render(){return d().createElement(Et,{header:d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.header",defaultMessage:"Installed Incoming Webhooks"}),addText:d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.add",defaultMessage:"Add Incoming Webhook"}),addLink:"/"+this.props.team.name+"/integrations/incoming_webhooks/add",addButtonId:"addIncomingWebhook",emptyText:d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.empty",defaultMessage:"No incoming webhooks found"}),emptyTextSearch:d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.emptySearch",defaultMessage:"No incoming webhooks match {searchTerm}"}),helpText:d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.help",defaultMessage:"Use incoming webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",values:{buildYourOwn:d().createElement(re.A,{location:"installed_incoming_webhooks",href:ae.i3.SETUP_INCOMING_WEBHOOKS},d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.help.buildYourOwn",defaultMessage:"Build Your Own"})),appDirectory:d().createElement(re.A,{href:"https://mattermost.com/marketplace",location:"installed_incoming_webhooks"},d().createElement(E.FormattedMessage,{id:"installed_incoming_webhooks.help.appDirectory",defaultMessage:"App Directory"}))}}),searchPlaceholder:M.Vw({id:"installed_incoming_webhooks.search",defaultMessage:"Search Incoming Webhooks"}),loading:this.state.loading,nextPage:this.nextPage,previousPage:this.previousPage,page:this.state.page,pageSize:200,total:this.props.incomingHooksTotalCount},(e=>{const t=this.incomingWebhooks(e);return[t,t.length>0]}))}}qa(Ha,"propTypes",{incomingHooks:b().array.isRequired,incomingHooksTotalCount:b().number.isRequired,canManageOthersWebhooks:b().bool.isRequired,enableIncomingWebhooks:b().bool.isRequired,actions:b().shape({removeIncomingHook:b().func.isRequired,loadIncomingHooksAndProfilesForTeam:b().func.isRequired}).isRequired});const Wa=(0,s.connect)((function(e){const t=(0,l.Sy)(e),a=dt(e),s=function(e){return e.entities.integrations.incomingHooksTotalCount}(e),n=(0,r.zj)(e),m=(0,i.mg)(e,t,o.xB.MANAGE_OTHERS_INCOMING_WEBHOOKS),d="true"===n.EnableIncomingWebhooks;return{incomingHooks:a,incomingHooksTotalCount:s,channels:(0,ke.ou)(e),users:(0,c.lo)(e),canManageOthersWebhooks:m,enableIncomingWebhooks:d}}),(function(e){return{actions:(0,g.bindActionCreators)({loadIncomingHooksAndProfilesForTeam:jt,removeIncomingHook:ve.Gl},e)}}))(Ha);function Ba(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a(10844);const Ga="***************";function za(e,t){return!t||e.name.toLowerCase().includes(t)}class Ya extends d().PureComponent{constructor(e){super(e),Ba(this,"handleShowClientSecret",(e=>{e&&e.preventDefault&&e.preventDefault(),this.setState({clientSecret:this.props.oauthApp.client_secret})})),Ba(this,"handleHideClientSecret",(e=>{e.preventDefault(),this.setState({clientSecret:Ga})})),Ba(this,"handleRegenerate",(e=>{e.preventDefault(),this.props.onRegenerateSecret(this.props.oauthApp.id).then((e=>{let{error:t}=e;t?this.setState({error:t.message}):(this.setState({error:null}),this.handleShowClientSecret())}))})),Ba(this,"handleDelete",(()=>{this.props.onDelete(this.props.oauthApp)})),this.state={clientSecret:Ga}}render(){const{oauthApp:e,creatorName:t}=this.props;let a,s,o;if(this.state.error&&(a=d().createElement(Q.A,{error:this.state.error})),!za(e,this.props.filter))return null;s=e.name?e.name:d().createElement(E.FormattedMessage,{id:"installed_integrations.unnamed_oauth_app",defaultMessage:"Unnamed OAuth 2.0 Application"}),e.description&&(o=d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__description"},e.description)));const r=d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__url word-break--all"},d().createElement(E.FormattedMessage,{id:"installed_integrations.callback_urls",defaultMessage:"Callback URLs: {urls}",values:{urls:e.callback_urls.join(", ")}})));let i,l,c;i=e.is_trusted?d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.trusted.yes",defaultMessage:"Yes"}):d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.trusted.no",defaultMessage:"No"}),this.state.clientSecret===Ga?(l=d().createElement("button",{id:"showSecretButton",className:"style--none color--link",onClick:this.handleShowClientSecret},d().createElement(E.FormattedMessage,{id:"installed_integrations.showSecret",defaultMessage:"Show Secret"})),c=d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_integrations.client_secret",defaultMessage:"Client Secret: "}),d().createElement("strong",null,this.state.clientSecret))):(l=d().createElement("button",{id:"hideSecretButton",className:"style--none color--link",onClick:this.handleHideClientSecret},d().createElement(E.FormattedMessage,{id:"installed_integrations.hideSecret",defaultMessage:"Hide Secret"})),c=d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_integrations.client_secret",defaultMessage:"Client Secret: "}),d().createElement("strong",null,this.state.clientSecret),d().createElement($t,{label:Va.copyClientSecret,value:this.state.clientSecret})));const m=d().createElement("button",{id:"regenerateSecretButton",className:"style--none color--link",onClick:this.handleRegenerate},d().createElement(E.FormattedMessage,{id:"installed_integrations.regenSecret",defaultMessage:"Regenerate Secret"}));let u,g;var p;e.icon_url&&(u=d().createElement("div",{className:"integration__icon integration-list__icon"},d().createElement("img",{alt:"get app screenshot",src:e.icon_url}))),this.props.fromApp||(g=d().createElement("div",{className:"item-actions"},l," - ",m," - ",d().createElement(n.Link,{to:"/".concat(null===(p=this.props.team)||void 0===p?void 0:p.name,"/integrations/oauth2-apps/edit?id=").concat(e.id)},d().createElement(E.FormattedMessage,{id:"installed_integrations.edit",defaultMessage:"Edit"}))," - ",d().createElement(F,{modalMessage:d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.delete.confirm",defaultMessage:"This action permanently deletes the OAuth 2.0 application and breaks any integrations using it. Are you sure you want to delete it?"}),onDelete:this.handleDelete})));let h=d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__creation"},d().createElement(E.FormattedMessage,{id:"installed_integrations.fromApp",defaultMessage:"Managed by Apps Framework"})));return this.props.fromApp||(h=d().createElement(d().Fragment,null,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__url word-break--all"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.is_trusted",defaultMessage:"Is Trusted: "}),d().createElement("strong",null,i))),d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_integrations.client_id",defaultMessage:"Client ID: "}),d().createElement("strong",null,e.id),d().createElement($t,{label:Va.copyClientId,value:e.id}))),d().createElement("div",{className:"item-details__row"},c),r,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__creation"},d().createElement(E.FormattedMessage,{id:"installed_integrations.creation",defaultMessage:"Created by {creator} on {createAt, date, full}",values:{creator:t,createAt:e.create_at}}))))),d().createElement("div",{className:"backstage-list__item"},u,d().createElement("div",{className:"item-details"},d().createElement("div",{className:"item-details__row d-flex flex-column flex-md-row justify-content-between"},d().createElement("strong",{className:"item-details__name"},s),g),a,o,h))}}Ba(Ya,"propTypes",{fromApp:b().bool.isRequired,creatorName:b().string.isRequired,onRegenerateSecret:b().func.isRequired,onDelete:b().func.isRequired,filter:b().oneOfType([b().string,b().oneOf([null])])});const Va=(0,E.defineMessages)({copyClientId:{id:"integrations.copy_client_id",defaultMessage:"Copy Client Id"},copyClientSecret:{id:"integrations.copy_client_secret",defaultMessage:"Copy Client Secret"}}),Ja=(0,s.connect)((function(e,t){const a=t.oauthApp||{};return{creatorName:(0,M.GZ)(e,(0,c.wz)(e,a.creator_id))}}))(Ya);function Ka(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class Xa extends d().PureComponent{constructor(e){super(e),Ka(this,"deleteOAuthApp",(e=>{e&&e.id&&this.props.actions.deleteOAuthApp(e.id)})),Ka(this,"oauthApps",(e=>Object.values(this.props.oauthApps).filter((t=>za(t,e))).sort(this.oauthAppCompare).map((e=>d().createElement(Ja,{key:e.id,oauthApp:e,onRegenerateSecret:this.props.actions.regenOAuthAppSecret,onDelete:this.deleteOAuthApp,team:this.props.team,creatorName:"",fromApp:this.props.appsOAuthAppIDs.includes(e.id)}))))),this.state={loading:!0}}componentDidMount(){this.props.enableOAuthServiceProvider&&this.props.actions.loadOAuthAppsAndProfiles().then((()=>this.setState({loading:!1})))}oauthAppCompare(e,t){let a=e.name.toString();a||(a=(0,M.Vw)({id:"installed_integrations.unnamed_oauth_app",defaultMessage:"Unnamed OAuth 2.0 Application"}));let s=t.name.toString();return s||(s=(0,M.Vw)({id:"installed_integrations.unnamed_oauth_app",defaultMessage:"Unnamed OAuth 2.0 Application"})),a.localeCompare(s)}render(){if(!this.props.team)return null;let e;return this.props.enableOAuthServiceProvider&&this.props.canManageOauth&&(e={addLink:"/"+this.props.team.name+"/integrations/oauth2-apps/add",addText:(0,M.Vw)({id:"installed_oauth_apps.add",defaultMessage:"Add OAuth 2.0 Application"}),addButtonId:"addOauthApp"}),d().createElement(Et,Object.assign({header:d().createElement(E.FormattedMessage,{id:"installed_oauth2_apps.header",defaultMessage:"OAuth 2.0 Applications"}),helpText:d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.help",defaultMessage:"Create {oauthApplications} to securely integrate bots and third-party apps with Mattermost. Visit the {appDirectory} to find available self-hosted apps.",values:{oauthApplications:d().createElement(re.A,{href:ae.i3.SETUP_OAUTH2,location:"installed_oauth_apps"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.help.oauthApplications",defaultMessage:"OAuth 2.0 applications"})),appDirectory:d().createElement(re.A,{href:"https://mattermost.com/marketplace/",location:"installed_oauth_apps"},d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.help.appDirectory",defaultMessage:"App Directory"}))}}),emptyText:d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.empty",defaultMessage:"No OAuth 2.0 Applications found"}),emptyTextSearch:d().createElement(E.FormattedMessage,{id:"installed_oauth_apps.emptySearch",defaultMessage:"No OAuth 2.0 Applications match {searchTerm}"}),searchPlaceholder:(0,M.Vw)({id:"installed_oauth_apps.search",defaultMessage:"Search OAuth 2.0 Applications"}),loading:this.state.loading},e),(e=>{const t=this.oauthApps(e);return[t,t.length>0]}))}}Ka(Xa,"propTypes",{appsOAuthAppIDs:b().arrayOf(b().string).isRequired,canManageOauth:b().bool.isRequired,enableOAuthServiceProvider:b().bool.isRequired,actions:b().shape({loadOAuthAppsAndProfiles:b().func.isRequired,regenOAuthAppSecret:b().func.isRequired,deleteOAuthApp:b().func.isRequired}).isRequired});const Za=(0,s.connect)((function(e){const t="true"===(0,r.zj)(e).EnableOAuthServiceProvider;return{canManageOauth:(0,i.y4)(e,{permission:o.xB.MANAGE_OAUTH}),oauthApps:ct(e),appsOAuthAppIDs:ut(e),enableOAuthServiceProvider:t,team:(0,l.H7)(e)}}),(function(e){return{actions:(0,g.bindActionCreators)({loadOAuthAppsAndProfiles:Lt,regenOAuthAppSecret:ve.Y$,deleteOAuthApp:ve.cP},e)}}))(Xa);function $a(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function Qa(e,t,a){if(!a)return!0;const{display_name:s,description:n,trigger_words:o}=e;if(s&&-1!==s.toLowerCase().indexOf(a)||n&&-1!==n.toLowerCase().indexOf(a))return!0;if(o)for(const e of o)if(-1!==e.toLowerCase().indexOf(a))return!0;return!(!t||!t.name||-1===t.name.toLowerCase().indexOf(a))}class es extends d().PureComponent{constructor(){super(...arguments),$a(this,"handleRegenToken",(e=>{e.preventDefault(),this.props.onRegenToken(this.props.outgoingWebhook)})),$a(this,"handleDelete",(()=>{this.props.onDelete(this.props.outgoingWebhook)}))}makeDisplayName(e,t){return e.display_name?e.display_name:t?t.display_name:d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.unknown_channel",defaultMessage:"A Private Webhook"})}render(){const e=this.props.outgoingWebhook,t=this.props.channel,a=this.props.filter?this.props.filter.toLowerCase():"";if(e&&!Qa(e,t,a))return null;const s=this.makeDisplayName(e,t);let o=null;e.description&&(o=d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__description"},e.description)));let r=null;e.trigger_words&&e.trigger_words.length>0&&(r=d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__trigger-words"},d().createElement(E.FormattedMessage,{id:"installed_integrations.triggerWords",defaultMessage:"Trigger Words: {triggerWords}",values:{triggerWords:e.trigger_words.join(", ")}}))));const i=d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__url word-break--all"},d().createElement(E.FormattedMessage,{id:"installed_integrations.callback_urls",defaultMessage:"Callback URLs: {urls}",values:{urls:e.callback_urls.join(", ")}})));let l;0===e.trigger_when?l=d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.triggerWordsTriggerWhenFullWord",defaultMessage:"First word matches a trigger word exactly"}):1===e.trigger_when&&(l=d().createElement(E.FormattedMessage,{id:"add_outgoing_webhook.triggerWordsTriggerWhenStartsWith",defaultMessage:"First word starts with a trigger word"}));let c=null;return this.props.canChange&&(c=d().createElement("div",{className:"item-actions"},d().createElement("button",{className:"style--none color--link",onClick:this.handleRegenToken},d().createElement(E.FormattedMessage,{id:"installed_integrations.regenToken",defaultMessage:"Regenerate Token"}))," - ",d().createElement(n.Link,{to:"/".concat(this.props.team.name,"/integrations/outgoing_webhooks/edit?id=").concat(e.id)},d().createElement(E.FormattedMessage,{id:"installed_integrations.edit",defaultMessage:"Edit"}))," - ",d().createElement(F,{modalMessage:d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.delete.confirm",defaultMessage:"This action permanently deletes the outgoing webhook and breaks any integrations using it. Are you sure you want to delete it?"}),onDelete:this.handleDelete}))),d().createElement("div",{className:"backstage-list__item"},d().createElement("div",{className:"item-details"},d().createElement("div",{className:"item-details__row d-flex flex-column flex-md-row justify-content-between"},d().createElement("strong",{className:"item-details__name"},s),c),o,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__content_type"},d().createElement(E.FormattedMessage,{id:"installed_integrations.content_type",defaultMessage:"Content-Type: {contentType}",values:{contentType:e.content_type||"application/x-www-form-urlencoded"}}))),r,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__trigger-when"},d().createElement(E.FormattedMessage,{id:"installed_integrations.triggerWhen",defaultMessage:"Trigger When: {triggerWhen}",values:{triggerWhen:l}}))),d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_integrations.token",defaultMessage:"Token: {token}",values:{token:e.token}}),d().createElement($t,{label:(0,E.defineMessage)({id:"integrations.copy_token",defaultMessage:"Copy Token"}),value:e.token}))),d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__creation"},d().createElement(E.FormattedMessage,{id:"installed_integrations.creation",defaultMessage:"Created by {creator} on {createAt, date, full}",values:{creator:this.props.creator.username,createAt:e.create_at}}))),i))}}function ts(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}$a(es,"propTypes",{onRegenToken:b().func.isRequired,onDelete:b().func.isRequired,canChange:b().bool.isRequired,filter:b().string});class as extends d().PureComponent{constructor(e){super(e),ts(this,"regenOutgoingWebhookToken",(e=>{this.props.actions.regenOutgoingHookToken(e.id)})),ts(this,"removeOutgoingHook",(e=>{this.props.actions.removeOutgoingHook(e.id)})),ts(this,"outgoingWebhookCompare",((e,t)=>{let a=e.display_name;if(!a){const t=this.props.channels[e.channel_id];a=t?t.display_name:(0,M.Vw)({id:"installed_outgoing_webhooks.unknown_channel",defaultMessage:"A Private Webhook"})}let s=t.display_name;if(!s){const e=this.props.channels[t.channel_id];s=e?e.display_name:(0,M.Vw)({id:"installed_outgoing_webhooks.unknown_channel",defaultMessage:"A Private Webhook"})}return a.localeCompare(s)})),ts(this,"outgoingWebhooks",(e=>this.props.outgoingWebhooks.sort(this.outgoingWebhookCompare).filter((t=>Qa(t,this.props.channels[t.channel_id],e))).map((e=>{const t=this.props.canManageOthersWebhooks||this.props.user.id===e.creator_id,a=this.props.channels[e.channel_id];return d().createElement(es,{key:e.id,outgoingWebhook:e,onRegenToken:this.regenOutgoingWebhookToken,onDelete:this.removeOutgoingHook,creator:this.props.users[e.creator_id]||{},canChange:t,team:this.props.team,channel:a})})))),this.state={loading:!0}}componentDidMount(){this.props.enableOutgoingWebhooks&&this.props.actions.loadOutgoingHooksAndProfilesForTeam(this.props.teamId,ae.YM.Integrations.START_PAGE_NUM,ae.YM.Integrations.PAGE_SIZE).then((()=>this.setState({loading:!1})))}render(){return d().createElement(Et,{header:d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.header",defaultMessage:"Installed Outgoing Webhooks"}),addText:d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.add",defaultMessage:"Add Outgoing Webhook"}),addLink:"/"+this.props.team.name+"/integrations/outgoing_webhooks/add",addButtonId:"addOutgoingWebhook",emptyText:d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.empty",defaultMessage:"No outgoing webhooks found"}),emptyTextSearch:d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.search.empty",defaultMessage:"No outgoing webhooks match <b>{searchTerm}</b>",values:{b:e=>d().createElement("b",null,e)}}),helpText:d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.help",defaultMessage:"Use outgoing webhooks to connect external tools to Mattermost. {buildYourOwn} or visit the {appDirectory} to find self-hosted, third-party apps and integrations.",values:{buildYourOwn:d().createElement(re.A,{href:ae.i3.SETUP_OUTGOING_WEBHOOKS,location:"installed_outgoing_webhooks"},d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.help.buildYourOwn",defaultMessage:"Build your own"})),appDirectory:d().createElement(re.A,{href:"https://mattermost.com/marketplace",location:"installed_outgoing_webhooks"},d().createElement(E.FormattedMessage,{id:"installed_outgoing_webhooks.help.appDirectory",defaultMessage:"App Directory"}))}}),searchPlaceholder:(0,M.Vw)({id:"installed_outgoing_webhooks.search",defaultMessage:"Search Outgoing Webhooks"}),loading:this.state.loading},(e=>{const t=this.outgoingWebhooks(e);return[t,t.length>0]}))}}ts(as,"propTypes",{canManageOthersWebhooks:b().bool.isRequired,outgoingWebhooks:b().array.isRequired,teamId:b().string.isRequired,actions:b().shape({removeOutgoingHook:b().func.isRequired,loadOutgoingHooksAndProfilesForTeam:b().func.isRequired,regenOutgoingHookToken:b().func.isRequired}).isRequired,enableOutgoingWebhooks:b().bool.isRequired});const ss=(0,s.connect)((function(e){const t=(0,r.zj)(e),a=(0,l.Sy)(e),s=(0,i.mg)(e,a,o.xB.MANAGE_OTHERS_OUTGOING_WEBHOOKS),n=it(e),m=Object.keys(n).map((e=>n[e])).filter((e=>e.team_id===a)),d="true"===t.EnableOutgoingWebhooks;return{outgoingWebhooks:m,channels:(0,ke.ou)(e),users:(0,c.lo)(e),teamId:a,canManageOthersWebhooks:s,enableOutgoingWebhooks:d}}),(function(e){return{actions:(0,g.bindActionCreators)({loadOutgoingHooksAndProfilesForTeam:Ut,removeOutgoingHook:ve.w1,regenOutgoingHookToken:ve.UN},e)}}))(as);function ns(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,s)}return a}function os(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ns(Object(a),!0).forEach((function(t){rs(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ns(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function rs(e,t,a){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var is=function(e){return e.INITIAL="initial",e.DIRTY="dirty",e.VALIDATING="validating",e.VALIDATED="validated",e.ERROR="error",e}(is||{});const ls={id:"",name:"",creator_id:"",create_at:0,update_at:0,client_id:"",client_secret:"",oauth_token_url:"",grant_type:"client_credentials",audiences:[]};function cs(e){const[t,a]=(e=>{const t={name:e.name||"",audienceUrls:e.audiences?e.audiences.join("\n"):"",oauthTokenUrl:e.oauth_token_url||"",clientId:e.client_id||"",clientSecret:e.client_secret||"",grantType:"client_credentials"},[a,s]=(0,m.useState)(t);return(0,m.useMemo)((()=>[a,e=>{s((t=>os(os({},t),e)))}]),[a])})(e.initialConnection||ls),[o,r]=(0,m.useState)(""),[i,l]=(0,m.useState)(""),[c,u]=(0,m.useState)(!1),[g,p]=(0,m.useState)(is.INITIAL),[h,f]=(0,m.useState)(!1),[b,_]=(0,m.useState)(!1),v=(0,E.useIntl)(),M=(0,s.useDispatch)(),k=!e.initialConnection,y=e=>{if(!t.name)return u(!1),void r(d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.name.required",defaultMessage:"Name for the OAuth connection is required."}));if(!t.clientId)return u(!1),void r(d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.client_id.required",defaultMessage:"Client Id for the OAuth connection is required."}));if((k||h)&&!t.clientSecret)return u(!1),void r(d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.client_secret.required",defaultMessage:"Client Secret for the OAuth connection is required."}));if(!t.grantType)return u(!1),void r(d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.grant_type.required",defaultMessage:"Grant Type for the OAuth connection is required."}));if(!t.oauthTokenUrl)return u(!1),void r(d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.oauth_token_url.required",defaultMessage:"OAuth Token URL for the OAuth connection is required."}));const a=[];for(let e of t.audienceUrls.split("\n"))e=e.trim(),e.length>0&&a.push(e);return e&&0===a.length?(u(!1),void r(d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.audienceUrls.required",defaultMessage:"One or more audience URLs are required."}))):{name:t.name,audiences:a,client_id:t.clientId,client_secret:t.clientSecret,grant_type:t.grantType,oauth_token_url:t.oauthTokenUrl}},N=()=>{_(!1)},w=()=>{if(c)return;const t=y(!0);t&&(r(""),g===is.VALIDATED||!k&&g===is.INITIAL||b?(u(!0),e.submitAction(t).then((()=>u(!1)))):_(!0))},A=e=>{null==e||e.preventDefault(),g!==is.DIRTY&&p(is.DIRTY),i&&l("")},C=e.header,O=e.footer;let S=d().createElement("input",{id:"client_secret",type:"text",autoComplete:"off",className:"form-control",value:t.clientSecret,onChange:e=>{A(),a({clientSecret:e.target.value})}});return k||h||(S=d().createElement(d().Fragment,null,d().createElement("input",{id:"client_secret",disabled:!0,autoComplete:"off",type:"text",className:"form-control disabled",value:"•".repeat(40)}),d().createElement("span",{onClick:()=>{f(!0)},className:"outgoing-oauth-connections-edit-secret"},d().createElement("i",{className:"icon icon-pencil-outline"})))),d().createElement("div",{className:"backstage-content"},d().createElement($,null,d().createElement(n.Link,{to:"/".concat(e.team.name,"/integrations/outgoing-oauth2-connections")},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.header",defaultMessage:"Outgoing OAuth Connections"})),d().createElement(E.FormattedMessage,{id:C.id,defaultMessage:C.defaultMessage})),d().createElement("div",{className:"backstage-form"},d().createElement("form",{className:"form-horizontal"},d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"name"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.name.label",defaultMessage:"Name"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"name",type:"text",className:"form-control",value:t.name,onChange:e=>{a({name:e.target.value})}}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.name.help",defaultMessage:"Specify the name for your OAuth connection."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"client_id"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.client_id.label",defaultMessage:"Client ID"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"client_id",type:"text",autoComplete:"off",className:"form-control",value:t.clientId,onChange:e=>{A(),a({clientId:e.target.value})}}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.client_id.help",defaultMessage:"Specify the Client ID for your OAuth connection."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"client_secret"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.client_secret.label",defaultMessage:"Client Secret"})),d().createElement("div",{className:"col-md-5 col-sm-8"},S,d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.client_secret.help",defaultMessage:"Specify the Client Secret for your OAuth connection."})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"oauth_token_url"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.oauth_token_url.label",defaultMessage:"OAuth Token URL"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("input",{id:"token_url",type:"text",className:"form-control",value:t.oauthTokenUrl,onChange:e=>{A(),a({oauthTokenUrl:e.target.value})}}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.oauth_token_url.help",defaultMessage:"Specify the OAuth Token URL for your OAuth connection."})),d().createElement("div",{className:"outgoing-oauth-connection-validate-button-container"},d().createElement(ms,{onClick:async t=>{var a;if(t.preventDefault(),g===is.VALIDATING)return;r(""),p(is.VALIDATING);const s=y(!1);if(!s)return void p(is.INITIAL);null!==(a=e.initialConnection)&&void 0!==a&&a.id&&(s.id=e.initialConnection.id);const{error:n}=await M((0,ve.sF)(e.team.id,s));n?(p(is.ERROR),l(n.message)):p(is.VALIDATED)},setUnvalidated:A,status:g})))),d().createElement("div",{className:"form-group"},d().createElement("label",{className:"control-label col-sm-4",htmlFor:"audienceUrls"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.audienceUrls.label",defaultMessage:"Audience URLs (One Per Line)"})),d().createElement("div",{className:"col-md-5 col-sm-8"},d().createElement("textarea",{id:"audienceUrls",rows:3,className:"form-control",value:t.audienceUrls,onChange:e=>{a({audienceUrls:e.target.value})}}),d().createElement("div",{className:"form__help"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.audienceUrls.help",defaultMessage:"The URLs which will receive requests with the OAuth token, e.g. your custom slash command handler endpoint. Must be a valid URL and start with http:// or https://."})))),d().createElement("div",{className:"backstage-form__footer"},d().createElement(Q.A,{type:"backstage",errors:[e.serverError,o]}),d().createElement(n.Link,{className:"btn btn-tertiary",to:"/".concat(e.team.name,"/integrations/outgoing-oauth2-connections")},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.cancel",defaultMessage:"Cancel"})),d().createElement(ee.A,{className:"btn btn-primary",type:"submit",spinning:c,spinningText:v.formatMessage(e.loading),onClick:e=>{e.preventDefault(),w()},id:"saveConnection"},d().createElement(E.FormattedMessage,{id:O.id,defaultMessage:O.defaultMessage})),e.renderExtra))),d().createElement("div",{className:"outgoing-oauth-connections-docs-link"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.documentation_link",defaultMessage:"Get help with <link>configuring outgoing OAuth connections</link>.",values:{link:e=>d().createElement("a",{href:"https://mattermost.com/pl/outgoing-oauth-connections"},e)}})),d().createElement(_t.A,{show:b,message:v.formatMessage({id:"add_outgoing_oauth_connection.save_without_validation_warning",defaultMessage:"This connection has not been validated, Do you want to save anyway?"}),title:v.formatMessage({id:"add_outgoing_oauth_connection.confirm_save",defaultMessage:"Save Outgoing OAuth Connection"}),confirmButtonText:v.formatMessage({id:"add_outgoing_oauth_connection.save_anyway",defaultMessage:"Save anyway"}),onExited:N,onCancel:N,onConfirm:w}))}cs.propTypes={renderExtra:b().element,serverError:b().string.isRequired,submitAction:b().func.isRequired};const ms=e=>{let{status:t,onClick:a,setUnvalidated:s}=e;return t===is.ERROR?d().createElement("span",{className:"outgoing-oauth-connection-validation-message validation-error"},d().createElement(Wt.AlertOutlineIcon,{size:20}),d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.validation_error",defaultMessage:"Connection not validated. Please check the server logs for details or <link>try again</link>.",values:{link:e=>d().createElement("a",{onClick:s},e)}})):t===is.VALIDATED?d().createElement("span",{className:"outgoing-oauth-connection-validation-message validation-success"},d().createElement(Wt.CheckCircleOutlineIcon,{size:20}),d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.validated_connection",defaultMessage:"Validated connection"})):t===is.VALIDATING?d().createElement("span",{className:"outgoing-oauth-connection-validation-message"},d().createElement(Bt.A,{text:d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.validating",defaultMessage:"Validating..."})})):d().createElement("button",{className:"btn btn-tertiary btn-sm",type:"button",onClick:a,id:"validateConnection"},d().createElement(E.FormattedMessage,{id:"add_outgoing_oauth_connection.validate",defaultMessage:"Validate Connection"}))};ms.propTypes={status:b().oneOf(["initial","dirty","validating","validated","error"]).isRequired,onClick:b().func.isRequired,setUnvalidated:b().func.isRequired};const ds=(0,E.defineMessage)({id:"add_outgoing_oauth_connection.add",defaultMessage:"Add"}),us=(0,E.defineMessage)({id:"add_outgoing_oauth_connection.save",defaultMessage:"Save"}),gs=(0,E.defineMessage)({id:"add_outgoing_oauth_connection.saving",defaultMessage:"Saving..."}),ps=e=>{let{team:t}=e;const a=(0,s.useDispatch)(),o=(0,n.useHistory)(),[r,i]=(0,m.useState)("");return d().createElement(cs,{team:t,header:ds,footer:us,loading:gs,submitAction:async e=>{i("");const{data:s,error:n}=await a((0,ve.Vy)(t.id,e));s?o.push("/".concat(t.name,"/integrations/confirm?type=outgoing-oauth2-connections&id=").concat(s.id)):n&&i(n.message)},serverError:r})},hs=(0,E.defineMessage)({id:"integrations.edit",defaultMessage:"Edit"}),fs=(0,E.defineMessage)({id:"edit_outgoing_oauth_connection.update",defaultMessage:"Update"}),bs=(0,E.defineMessage)({id:"edit_outgoing_oauth_connection.updating",defaultMessage:"Updating..."}),Es=e=>{const t=(a=e.location.search,new URLSearchParams(a).get("id")||"");var a;const n=(0,s.useSelector)(mt)[t],[o,i]=(0,m.useState)(n),[l,c]=(0,m.useState)(!1),[u,g]=(0,m.useState)(""),p=(0,s.useSelector)(r.zj).EnableOAuthServiceProvider,h=(0,s.useDispatch)();(0,m.useEffect)((()=>{p&&h((0,ve.WG)(e.team.id,t))}),[t,p,e.team,h]);const f=()=>{c(!1)},b=async t=>{g("");const a=await h((0,ve.WT)(e.team.id,t));if("data"in a&&a.data)(0,te.J)().push("/".concat(e.team.name,"/integrations/outgoing-oauth2-connections"));else if(f(),"error"in a){const{error:e}=a;g(e.message)}};return n?d().createElement(cs,{team:e.team,header:hs,footer:fs,loading:bs,renderExtra:(()=>{const e=d().createElement(E.FormattedMessage,{id:"update_command.update",defaultMessage:"Update"}),t=d().createElement(E.FormattedMessage,{id:"update_outgoing_oauth_connection.confirm",defaultMessage:"Edit Outgoing OAuth Connection"}),a=d().createElement(E.FormattedMessage,{id:"update_outgoing_oauth_connection.question",defaultMessage:"Your changes may break any existing integrations using this connection. Are you sure you would like to update it?"});return d().createElement(_t.A,{title:t,message:a,confirmButtonText:e,modalClass:"integrations-backstage-modal",show:l,onConfirm:()=>b(o),onCancel:f})})(),submitAction:async e=>{i(e),n.id&&(e.id=n.id),n.audiences.length===e.audiences.length&&n.audiences.every(((t,a)=>t===e.audiences[a]))?await b(e):c(!0)},serverError:u,initialConnection:n}):d().createElement(U.A,null)};function _s(e,t){return!t||e.name.toLowerCase().includes(t)}const vs=e=>{const{outgoingOAuthConnection:t,creatorName:a}=e;if(!_s(t,e.filter))return null;let s;s=t.name?t.name:d().createElement(E.FormattedMessage,{id:"installed_integrations.unnamed_outgoing_oauth_connection",defaultMessage:"Unnamed Outgoing OAuth Connection"});const o=d().createElement(d().Fragment,null,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__url word-break--all"},d().createElement(E.FormattedMessage,{id:"installed_integrations.audience_urls",defaultMessage:"Audience URLs: {urls}",values:{urls:t.audiences.join(", ")}}))),d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__url word-break--all"},d().createElement(E.FormattedMessage,{id:"installed_integrations.token_url",defaultMessage:"Token URL: {url}",values:{url:t.oauth_token_url}})))),r=d().createElement("div",{className:"item-actions"},d().createElement(n.Link,{to:"/".concat(e.team.name,"/integrations/outgoing-oauth2-connections/edit?id=").concat(t.id)},d().createElement(E.FormattedMessage,{id:"installed_integrations.edit",defaultMessage:"Edit"}))," - ",d().createElement(F,{subtitleText:d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.delete.confirm",defaultMessage:"Are you sure you want to delete {connectionName}?",values:{connectionName:d().createElement("strong",null,e.outgoingOAuthConnection.name)}}),modalMessage:d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.delete.wanring",defaultMessage:"Deleting this connection will break any integrations using it"}),onDelete:()=>{e.onDelete(e.outgoingOAuthConnection)}})),i=d().createElement(d().Fragment,null,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_integrations.client_id",defaultMessage:"Client ID: "}),d().createElement("strong",null,t.client_id))),d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.client_secret",defaultMessage:"Client Secret: ********"}))),"password"===t.grant_type&&d().createElement(d().Fragment,null,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.username",defaultMessage:"Username: "}),d().createElement("strong",null,t.credentials_username))),d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__token"},d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.password",defaultMessage:"Password: ********"})))),o,d().createElement("div",{className:"item-details__row"},d().createElement("span",{className:"item-details__creation"},d().createElement(E.FormattedMessage,{id:"installed_integrations.creation",defaultMessage:"Created by {creator} on {createAt, date, full}",values:{creator:a,createAt:t.create_at}}))));return d().createElement("div",{className:"backstage-list__item"},d().createElement("div",{className:"item-details"},d().createElement("div",{className:"item-details__row d-flex flex-column flex-md-row justify-content-between"},d().createElement("strong",{className:"item-details__name"},s),r),i))};vs.propTypes={creatorName:b().string.isRequired,filter:b().oneOfType([b().string,b().oneOf([null])]),onDelete:b().func.isRequired};const Ms=vs,ks=e=>{const[t,a]=(0,m.useState)(!0),n=(0,s.useSelector)((t=>(0,i.mg)(t,e.team.id,o.xB.MANAGE_OUTGOING_OAUTH_CONNECTIONS))),l="true"===(0,s.useSelector)(r.zj).EnableOutgoingOAuthConnections,u=(0,s.useSelector)(mt),g=(0,s.useDispatch)(),p=(0,E.useIntl)();(0,m.useEffect)((()=>{n&&g(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Rt;return async s=>{const{data:n}=await s(ve.FA(e,t,a));var o;return n&&s((o=n,async(e,t)=>{const a=t(),s={};for(let e=0;e<o.length;e++){const t=o[e];(0,c.wz)(a,t.creator_id)||(s[t.creator_id]=!0)}const n=Object.keys(s);return 0===n.length||e((0,et.G1)(n)),{data:null}})),{data:null}}}(e.team.id)).then((()=>a(!1)))}),[n,e.team,g]);const h=e=>{e&&e.id&&g((0,ve.NB)(e.id))},f=(e,t)=>{let a=e.name.toString();a||(a=p.formatMessage({id:"installed_integrations.unnamed_outgoing_oauth_connection",defaultMessage:"Unnamed Outgoing OAuth Connection"}));let s=t.name.toString();return s||(s=p.formatMessage({id:"installed_integrations.unnamed_outgoing_oauth_connection",defaultMessage:"Unnamed Outgoing OAuth Connection"})),a.localeCompare(s)};let b;return l&&n&&(b={addLink:"/"+e.team.name+"/integrations/outgoing-oauth2-connections/add",addText:p.formatMessage({id:"installed_outgoing_oauth_connections.add",defaultMessage:"Add Outgoing OAuth Connection"}),addButtonId:"addOutgoingOauthConnection"}),d().createElement(Et,Object.assign({header:d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.header",defaultMessage:"Outgoing OAuth Connections"}),helpText:d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.help",defaultMessage:"Create {outgoingOauthConnections} to securely integrate bots and third-party apps with Mattermost.",values:{outgoingOauthConnections:d().createElement(re.A,{href:ae.i3.SETUP_OAUTH2,location:"installed_outgoing_oauth_connections"},d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.help.outgoingOauthConnections",defaultMessage:"Outgoing OAuth Connections"}))}}),emptyText:d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.empty",defaultMessage:"No Outgoing OAuth Connections found"}),emptyTextSearch:d().createElement(E.FormattedMessage,{id:"installed_outgoing_oauth_connections.emptySearch",defaultMessage:"No Outgoing OAuth Connections match {searchTerm}"}),searchPlaceholder:p.formatMessage({id:"installed_outgoing_oauth_connections.search",defaultMessage:"Search Outgoing OAuth Connections"}),loading:t},b),(t=>{const a=(t=>Object.values(u).filter((e=>_s(e,t))).sort(f).map((t=>d().createElement(Ms,{key:t.id,outgoingOAuthConnection:t,onDelete:h,team:e.team,creatorName:""}))))(t);return[a,a.length>0]}))};var ys=a(694),Ns=a(81806),ws=a(71633),As=a.n(ws);const Cs=e=>{let{name:t,title:a,icon:s,parentLink:o,children:r=[]}=e;const i=o+"/"+t;return d().createElement("li",{className:"backstage-sidebar__category"},d().createElement(n.NavLink,{to:i,className:"category-title",activeClassName:"category-title--active"},d().createElement("i",{className:As()("fa ",s)}),d().createElement("span",{className:"category-title__text"},a)),r&&r.length>0&&d().createElement(n.Route,{path:i,render:()=>d().createElement("ul",{className:"sections"},d().Children.map(r,(e=>e?d().cloneElement(e,{parentLink:i}):e)))}))},Os=e=>{let{name:t,title:a,subsection:s=!1,parentLink:o="",children:r=[],id:i}=e;const l=o+"/"+t;let c=null;r.length>0&&(c=d().createElement("ul",{className:"subsections"},d().Children.map(r,(e=>d().cloneElement(e,{parentLink:l,subsection:!0})))));const m=s?"subsection":"section";return d().createElement("li",{className:m,id:i},d().createElement(n.NavLink,{className:"".concat(m,"-title"),activeClassName:"".concat(m,"-title--active"),to:l},d().createElement("span",{className:"".concat(m,"-title__text")},a)),c)};class Ss extends d().PureComponent{renderCustomEmoji(){return this.props.enableCustomEmoji&&this.props.canCreateOrDeleteCustomEmoji?d().createElement(Cs,{name:"emoji",parentLink:"/"+this.props.team.name,icon:"fa-smile-o",title:d().createElement(E.FormattedMessage,{id:"backstage_sidebar.emoji",defaultMessage:"Custom Emoji"})}):null}renderIntegrations(){if(!this.props.canManageIntegrations)return null;let e;this.props.enableIncomingWebhooks&&(e=d().createElement(le.A,{permissions:[o.xB.MANAGE_INCOMING_WEBHOOKS],teamId:this.props.team.id},d().createElement(Os,{name:"incoming_webhooks",parentLink:"/"+this.props.team.name+"/integrations",title:d().createElement(E.FormattedMessage,{id:"backstage_sidebar.integrations.incoming_webhooks",defaultMessage:"Incoming Webhooks"}),id:"incomingWebhooks"})));let t=null;this.props.enableOutgoingWebhooks&&(t=d().createElement(le.A,{permissions:[o.xB.MANAGE_OUTGOING_WEBHOOKS],teamId:this.props.team.id},d().createElement(Os,{name:"outgoing_webhooks",parentLink:"/"+this.props.team.name+"/integrations",title:d().createElement(E.FormattedMessage,{id:"backstage_sidebar.integrations.outgoing_webhooks",defaultMessage:"Outgoing Webhooks"}),id:"outgoingWebhooks"})));let a=null;this.props.enableCommands&&(a=d().createElement(le.A,{permissions:[o.xB.MANAGE_SLASH_COMMANDS],teamId:this.props.team.id},d().createElement(Os,{name:"commands",parentLink:"/"+this.props.team.name+"/integrations",title:d().createElement(E.FormattedMessage,{id:"backstage_sidebar.integrations.commands",defaultMessage:"Slash Commands"}),id:"slashCommands"})));let s=null;this.props.enableOAuthServiceProvider&&(s=d().createElement(ie.A,{permissions:[o.xB.MANAGE_OAUTH]},d().createElement(Os,{name:"oauth2-apps",parentLink:"/"+this.props.team.name+"/integrations",title:d().createElement(E.FormattedMessage,{id:"backstage_sidebar.integrations.oauthApps",defaultMessage:"OAuth 2.0 Applications"}),id:"oauthApps"})));const n=d().createElement(ie.A,{permissions:["manage_bots","manage_others_bots"]},d().createElement(Os,{name:"bots",parentLink:"/"+this.props.team.name+"/integrations",title:d().createElement(E.FormattedMessage,{id:"backstage_sidebar.bots",defaultMessage:"Bot Accounts"}),id:"botAccounts"}));let r=null;return this.props.enableOutgoingOAuthConnections&&(r=d().createElement(le.A,{permissions:[o.xB.MANAGE_OUTGOING_OAUTH_CONNECTIONS],teamId:this.props.team.id},d().createElement(Os,{name:"outgoing-oauth2-connections",parentLink:"/"+this.props.team.name+"/integrations",title:d().createElement(E.FormattedMessage,{id:"backstage_sidebar.integrations.outgoingOauthConnections",defaultMessage:"Outgoing OAuth 2.0 Connections"}),id:"outgoingOauthConnections"}))),d().createElement(Cs,{name:"integrations",icon:"fa-link",parentLink:"/"+this.props.team.name,title:d().createElement(E.FormattedMessage,{id:"backstage_sidebar.integrations",defaultMessage:"Integrations"})},e,t,a,s,n,r)}render(){return d().createElement("div",{className:"backstage-sidebar"},d().createElement("ul",null,this.renderCustomEmoji(),this.renderIntegrations()))}}!function(e,t,a){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a}(Ss,"propTypes",{enableCustomEmoji:b().bool.isRequired,enableIncomingWebhooks:b().bool.isRequired,enableOutgoingWebhooks:b().bool.isRequired,enableCommands:b().bool.isRequired,enableOAuthServiceProvider:b().bool.isRequired,enableOutgoingOAuthConnections:b().bool.isRequired,canCreateOrDeleteCustomEmoji:b().bool.isRequired,canManageIntegrations:b().bool.isRequired});const Fs=["component","extraProps"],Ts=e=>{let{component:t,extraProps:a}=e,s=function(e,t){if(null==e)return{};var a,s,n=function(e,t){if(null==e)return{};var a={};for(var s in e)if({}.hasOwnProperty.call(e,s)){if(t.includes(s))continue;a[s]=e[s]}return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s<o.length;s++)a=o[s],t.includes(a)||{}.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}(e,Fs);return d().createElement(n.Route,Object.assign({},s,{render:e=>d().createElement(t,Object.assign({},a,e))}))},Ps=(0,u.createGlobalStyle)(["#root{> #global-header,> .team-sidebar,> .main-wrapper .sidebar--right,> .app-bar{display:none;}}"]),Is=(0,n.withRouter)((0,s.connect)((function(e){const t=(0,c.HW)(e),a=(0,l.H7)(e),s=(0,r.zj)(e),n=s.SiteName,m="true"===s.EnableCustomEmoji,d="true"===s.EnableIncomingWebhooks,u="true"===s.EnableOutgoingWebhooks,g="true"===s.EnableCommands,p="true"===s.EnableOAuthServiceProvider,h="true"===s.EnableOutgoingOAuthConnections;let f=(0,i.y4)(e,{permission:o.xB.CREATE_EMOJIS})||(0,i.y4)(e,{permission:o.xB.DELETE_EMOJIS});if(!f)for(const t of(0,l.vt)(e))if((0,i.mg)(e,t.id,o.xB.CREATE_EMOJIS)||(0,i.mg)(e,t.id,o.xB.DELETE_EMOJIS)){f=!0;break}const b=(0,i.mg)(e,null==a?void 0:a.id,o.xB.MANAGE_SLASH_COMMANDS)||(0,i.mg)(e,null==a?void 0:a.id,o.xB.MANAGE_OAUTH)||(0,i.mg)(e,null==a?void 0:a.id,o.xB.MANAGE_INCOMING_WEBHOOKS)||(0,i.mg)(e,null==a?void 0:a.id,o.xB.MANAGE_OUTGOING_WEBHOOKS),E=(0,i.y4)(e,{permission:o.xB.MANAGE_BOTS})||(0,i.y4)(e,{permission:o.xB.MANAGE_OTHERS_BOTS});return{user:t,team:a,siteName:n,enableCustomEmoji:m,enableIncomingWebhooks:d,enableOutgoingWebhooks:u,enableCommands:g,enableOAuthServiceProvider:p,enableOutgoingOAuthConnections:h,canCreateOrDeleteCustomEmoji:f,canManageIntegrations:b||E}}))((e=>{const t=(0,m.useRef)(null);if(!e.team||!e.user)return null;const a={team:e.team,user:e.user,scrollToTop:()=>{t.current&&(t.current.scrollTop=0)}};return d().createElement(d().Fragment,null,d().createElement(Ns.A,{team:e.team,siteName:e.siteName}),d().createElement("div",{className:"backstage-body",ref:t},d().createElement(ys.default,{pluggableName:"Root"}),d().createElement(Ss,{team:e.team,enableCustomEmoji:e.enableCustomEmoji,enableIncomingWebhooks:e.enableIncomingWebhooks,enableOutgoingWebhooks:e.enableOutgoingWebhooks,enableCommands:e.enableCommands,enableOAuthServiceProvider:e.enableOAuthServiceProvider,enableOutgoingOAuthConnections:e.enableOutgoingOAuthConnections,canCreateOrDeleteCustomEmoji:e.canCreateOrDeleteCustomEmoji,canManageIntegrations:e.canManageIntegrations}),d().createElement(n.Switch,null,d().createElement(Ts,{extraProps:a,exact:!0,path:"/:team/integrations",component:_e}),d().createElement(Ts,{extraProps:a,exact:!0,path:"".concat(e.match.url,"/incoming_webhooks"),component:Wa}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/incoming_webhooks/add"),component:xe}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/incoming_webhooks/edit"),component:Na}),d().createElement(Ts,{extraProps:a,exact:!0,path:"".concat(e.match.url,"/outgoing_webhooks"),component:ss}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/outgoing_webhooks/add"),component:Ye}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/outgoing_webhooks/edit"),component:ja}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/commands"),component:va}),d().createElement(Ts,{extraProps:a,exact:!0,path:"".concat(e.match.url,"/oauth2-apps"),component:Za}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/oauth2-apps/add"),component:qe}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/oauth2-apps/edit"),component:Fa}),d().createElement(Ts,{extraProps:a,exact:!0,path:"".concat(e.match.url,"/outgoing-oauth2-connections"),component:ks}),d().createElement(Ts,{extraProps:a,exact:!0,path:"".concat(e.match.url,"/outgoing-oauth2-connections/add"),component:ps}),d().createElement(Ts,{extraProps:a,exact:!0,path:"".concat(e.match.url,"/outgoing-oauth2-connections/edit"),component:Es}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/confirm"),component:sa}),d().createElement(Ts,{extraProps:a,exact:!0,path:"/:team/emoji",component:X}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/add"),component:oe}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/bots/add"),component:xt}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/bots/edit"),component:xt}),d().createElement(Ts,{extraProps:a,path:"".concat(e.match.url,"/bots"),component:At}))),d().createElement(Ps,null))})))},85990:(e,t,a)=>{a.d(t,{A:()=>c});var s=a(62688),n=a.n(s),o=(a(17046),a(97023)),r=a.n(o);const i=[],l=e=>{let{error:t=null,errors:a=i,iconClassName:s,margin:n,textClassName:o,type:l}=e;if(!t&&0===a.length)return null;let c=t;if(!c)for(const e of a)e&&(c=e);return c?"modal"===l?r().createElement("div",{className:"form-group"},r().createElement("label",{className:"col-sm-12 has-error"},c)):"backstage"===l?r().createElement("div",{className:"pull-left has-error"},r().createElement("label",{className:"control-label"},c)):n?r().createElement("div",{className:"form-group has-error"},r().createElement("label",{className:"control-label"},c)):r().createElement("div",{className:"col-sm-12 ".concat(o||"has-error")},r().createElement("label",{className:"control-label"},r().createElement("i",{className:"fa ".concat(s||"fa-exclamation-circle")})," ",c)):null};l.propTypes={type:n().node,error:n().node,textClassName:n().string,iconClassName:n().string,margin:n().bool,errors:n().arrayOf(n().node)};const c=r().memo(l)},30491:(e,t,a)=>{a.d(t,{A:()=>l}),a(29206),a(57406),a(55448);var s=a(97023),n=a.n(s),o=a(14778);const r=["placeholder"],i=n().forwardRef(((e,t)=>{let{placeholder:a}=e,s=function(e,t){if(null==e)return{};var a,s,n=function(e,t){if(null==e)return{};var a={};for(var s in e)if({}.hasOwnProperty.call(e,s)){if(t.includes(s))continue;a[s]=e[s]}return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(s=0;s<o.length;s++)a=o[s],t.includes(a)||{}.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}(e,r);const i=(0,o.useIntl)();return n().createElement("input",Object.assign({ref:t,placeholder:i.formatMessage(a)},s))}));i.displayName="LocalizedPlaceholderInput";const l=i},5955:(e,t,a)=>{a.d(t,{A:()=>d});var s=a(62688),n=a.n(s),o=a(71633),r=a.n(o),i=a(97023),l=a.n(i),c=a(14778);const m=e=>{let{additionalClassName:t}=e;const{formatMessage:a}=(0,c.useIntl)();return l().createElement("i",{className:r()("icon icon-chevron-right",t),title:a({id:"generic_icons.next",defaultMessage:"Next Icon"})})};m.propTypes={additionalClassName:n().string};const d=l().memo(m)},57891:(e,t,a)=>{a.d(t,{A:()=>d});var s=a(62688),n=a.n(s),o=a(71633),r=a.n(o),i=a(97023),l=a.n(i),c=a(14778);const m=e=>{let{additionalClassName:t}=e;const{formatMessage:a}=(0,c.useIntl)();return l().createElement("i",{className:r()("icon icon-chevron-left",t),title:a({id:"generic_icons.previous",defaultMessage:"Previous Icon"})})};m.propTypes={additionalClassName:n().string};const d=l().memo(m)},12082:(e,t,a)=>{a.d(t,{A:()=>r});var s=a(97023),n=a.n(s),o=a(14778);function r(){const{formatMessage:e}=(0,o.useIntl)();return n().createElement("i",{className:"fa fa-search",title:e({id:"generic_icons.search",defaultMessage:"Search Icon"})})}},87064:(e,t,a)=>{a.d(t,{A:()=>d});var s=a(62688),n=a.n(s),o=a(71633),r=a.n(o),i=a(97023),l=a.n(i),c=a(14778);const m=e=>{let{additionalClassName:t}=e;const{formatMessage:a}=(0,c.useIntl)();return l().createElement("i",{className:r()("fa fa-warning",t),title:a({id:"generic_icons.warning",defaultMessage:"Warning Icon"})})};m.propTypes={additionalClassName:n().string};const d=l().memo(m)},74290:(e,t,a)=>{a.d(t,{jd:()=>i,s9:()=>r}),a(57406);var s=a(8361),n=a(3569);const o=["mattermost-advisor"];function r(e){return e.entities.bots.accounts}const i=(0,s.Mz)("getExternalBotAccounts",r,n.lo,((e,t)=>{const a={};return Object.values(e).forEach((e=>{const s=t[e.user_id];s&&!o.includes(s.username)&&(a[e.user_id]=e)})),a}))}}]);
//# sourceMappingURL=595.f7c88065f129463c3e17.js.map

VaKeR 2022