{"version":3,"sources":["webpack:///./app/containers/PermissionChecker/RedirectWithoutPermission.js","webpack:///./app/containers/BotDetails/constants.js","webpack:///./app/containers/BotDetails/reducer.js","webpack:///./app/containers/BotDetails/actions.js","webpack:///./app/containers/BotDetails/sagas.js","webpack:///./app/containers/BotDetails/selectors.js","webpack:///./app/containers/BotDetails/BotProperties.js","webpack:///./app/containers/BotDetails/BotAssignmentsTab.js","webpack:///./app/containers/BotDetails/ActivityTab.js","webpack:///./app/containers/BotDetails/ManifestDetails.js","webpack:///./app/containers/BotDetails/index.js"],"names":["RedirectWithoutPermission","props","permissions","get","multiPermissions","hasAny","forEach","permission","userHasPermission","permissionName","resourceId","swimlanes","push","to","this","redirectWithoutPermission","Component","defaultProps","withConnect","connect","dispatch","bindActionCreators","compose","permissionChecker","GET_BOT_DETAILS","GET_BOT_ASSIGNMENTS","GET_BOT_ACTIONS","VALIDATE_SOURCE_URL","HANDLE_REFRESH_BOT","initialState","fromJS","error","botData","data","isLoading","botAssignments","botActions","sourceUrlValidation","isValid","undefined","isValidating","botManagementReducer","handleActions","state","setIn","payload","set","getBotDetails","createAction","setBotDetails","getBotAssignments","setBotAssignments","getBotActions","setBotActions","validateSourceUrl","validateSourceUrlSuccess","clearSourceUrlValidation","updateBotSuccess","setBotError","handleRefreshBot","handleRefreshBotSuccess","updateBot","refreshBot","explorerSaga","action","srn","client","getClient","query","gql","variables","result","bot","_","first","Bots","items","Error","put","console","message","assignments","BotAssignments","actions","Actions","url","mutate","mutation","UpdateBot","errors","SyncBot","call","isEmpty","all","takeLatest","selectBotDetailsDomain","Map","selectBot","createSelector","selectBotAssignments","selectBotActions","selectSourceUrlValidation","selectBotError","Label","for","Icon","fa","name","spin","BotProperties","status","theme","red","success","setState","sourceUrl","editSource","isNotValid","style","margin","display","alignItems","justifyContent","Input","type","onChange","e","target","value","styles","canUpdate","width","padding","renderSourceUrlInput","TextLink","color","primary","marginRight","onClick","Button","disabled","handleUpdateSourceUrl","container","label","fontSize","fontWeight","neutralMedium","paddingBottom","property","input","refresh","marginLeft","cursor","prevProps","prevState","handleClose","isCustom","lastSync","title","window","open","WithPermission","Popover","isOpen","position","getPopoverBody","getStatusColor","moment","format","fromNow","BorderlessButton","handleRefresh","themeable","SquareLoadingAnimation","BotAssignmentsTab","swimlane","find","toJS","filter","item","content","map","getSwimlane","swimlaneName","swimlaneDescription","description","lastModified","botAssignmentSrn","pathname","search","qs","stringify","getIn","CenterContent","height","gridTemplateRows","SectionHeader","DataTable","noTableActions","getAssignments","hiddenColumns","onClickNodeView","handleSwimlaneNav","mapStateToProps","createStructuredSelector","selectSwimlanes","ActivityTab","date","createdDate","succeeded","getActions","customColumnConfig","cellRendererFramework","ManifestDetails","gridTemplateColumns","gridGap","operation","cloud","json","remediationType","detailsColumn","overflow","startCase","toLower","CloudBadge","JSONDisplay","LoadingAnim","Breadcrumb","BotDetails","parse","botId","tabContainer","backgroundColor","light","borderTop","borderBottom","borderLeft","borderRight","header","flexDirection","headerExt","breadcrumbs","button","botError","BorderedCard","Scrollable","horizontalScrollOnly","NodeView","minHeight","Helmet","getNameForHelmet","withReducer","injectReducer","key","reducer","withSaga","injectSaga","saga"],"mappings":"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","file":"41.b17823a78d28bf3d8d87.chunk.js","sourcesContent":["import { Component } from 'react'\nimport ImmutablePropTypes from 'react-immutable-proptypes'\nimport PropTypes from 'prop-types'\nimport { compose, bindActionCreators } from 'redux'\nimport { connect } from 'react-redux'\nimport { push } from 'connected-react-router'\nimport permissionChecker from './index'\n\nexport class RedirectWithoutPermission extends Component {\n componentDidMount() {\n this.redirectWithoutPermission()\n }\n\n componentDidUpdate() {\n this.redirectWithoutPermission()\n }\n\n redirectWithoutPermission = () => {\n if (!this.props.permissions.get('loading')) {\n if (this.props.multiPermissions) {\n let hasAny = false\n this.props.multiPermissions.forEach(permission => {\n if (\n this.props.userHasPermission({\n permissionName: permission.permissionName,\n resourceId: permission.resourceId,\n swimlanes: permission.swimlanes,\n })\n ) {\n hasAny = true\n }\n })\n if (!hasAny) {\n this.props.push(this.props.to)\n }\n } else {\n const hasPermission = this.props.userHasPermission({\n permissionName: this.props.permissionName,\n resourceId: this.props.resourceId,\n swimlanes: this.props.swimlanes,\n })\n if (!hasPermission) {\n this.props.push(this.props.to)\n }\n }\n }\n }\n\n render() {\n return null\n }\n}\n\nRedirectWithoutPermission.defaultProps = {\n to: '/App/SolutionCenter',\n}\n\nRedirectWithoutPermission.propTypes = {\n permissions: ImmutablePropTypes.contains({\n loading: PropTypes.bool,\n }).isRequired,\n permissionName: PropTypes.string,\n resourceId: PropTypes.string,\n swimlanes: PropTypes.arrayOf(PropTypes.string),\n\n // if you have multiple permissions, passs it this bad boy\n multiPermissions: PropTypes.arrayOf(\n PropTypes.shape({\n permissionName: PropTypes.string,\n resourceId: PropTypes.string,\n swimlanes: PropTypes.arrayOf(PropTypes.string),\n })\n ),\n // path to redirect to\n to: PropTypes.string,\n\n // userHasPermission populated from permissionChecker hoc\n userHasPermission: PropTypes.func.isRequired,\n\n // ~ bound action creator ~\n push: PropTypes.func.isRequired,\n}\n\nconst withConnect = connect(null, dispatch =>\n bindActionCreators({ push }, dispatch)\n)\n\nexport default compose(\n permissionChecker,\n withConnect\n)(RedirectWithoutPermission)\n","export const GET_BOT_DETAILS = 'app/BotDetails/GET_BOT_DETAILS'\nexport const SET_BOT_DETAILS = 'app/BotDetails/SET_BOT_DETAILS'\n\nexport const GET_BOT_ASSIGNMENTS = 'app/BotDetails/GET_BOT_ASSIGNMENTS'\nexport const SET_BOT_ASSIGNMENTS = 'app/BotDetails/SET_BOT_ASSIGNMENTS'\n\nexport const GET_BOT_ACTIONS = 'app/BotDetails/GET_BOT_ACTIONS'\nexport const SET_BOT_ACTIONS = 'app/BotDetails/SET_BOT_ACTIONS'\n\nexport const VALIDATE_SOURCE_URL = 'app/BotDetails/VALIDATE_SOURCE_URL'\nexport const VALIDATE_SOURCE_URL_SUCCESS =\n 'app/BotDetails/VALIDATE_SOURCE_URL_SUCCESS'\nexport const CLEAR_SOURCE_URL_VALIDATION =\n 'app/BotDetails/CLEAR_SOURCE_URL_VALIDATION'\n\nexport const UPDATE_BOT = 'app/BotDetails/UPDATE_BOT'\nexport const UPDATE_BOT_SUCCESS = 'app/BotDetails/UPDATE_BOT_SUCCESS'\n\nexport const SET_BOT_ERROR = 'app/BotDetails/SET_BOT_ERROR'\n\nexport const HANDLE_REFRESH_BOT = 'app/BotDetails/HANDLE_REFRESH_BOT'\nexport const HANDLE_REFRESH_BOT_SUCCESS =\n 'app/BotDetails/HANDLE_REFRESH_BOT_SUCCESS'\n","/*\n *\n * Bot Details reducer\n *\n */\n\nimport { fromJS } from 'immutable'\nimport { handleActions } from 'redux-actions'\n\nimport {\n GET_BOT_DETAILS,\n SET_BOT_DETAILS,\n GET_BOT_ASSIGNMENTS,\n SET_BOT_ASSIGNMENTS,\n GET_BOT_ACTIONS,\n SET_BOT_ACTIONS,\n VALIDATE_SOURCE_URL,\n VALIDATE_SOURCE_URL_SUCCESS,\n CLEAR_SOURCE_URL_VALIDATION,\n UPDATE_BOT_SUCCESS,\n SET_BOT_ERROR,\n HANDLE_REFRESH_BOT,\n HANDLE_REFRESH_BOT_SUCCESS,\n} from './constants'\n\nconst initialState = fromJS({\n error: null,\n botData: { data: {}, isLoading: false },\n botAssignments: { data: [], isLoading: false },\n botActions: { data: [], isLoading: false },\n sourceUrlValidation: { isValid: undefined, isValidating: false },\n})\n\nconst botManagementReducer = handleActions(\n {\n [GET_BOT_DETAILS]: state => state.setIn(['botData', 'isLoading'], true),\n [SET_BOT_DETAILS]: (state, { payload }) =>\n state\n .setIn(['botData', 'data'], fromJS(payload))\n .setIn(['botData', 'isLoading'], false),\n [GET_BOT_ASSIGNMENTS]: state =>\n state.setIn(['botAssignments', 'isLoading'], true),\n [SET_BOT_ASSIGNMENTS]: (state, { payload }) =>\n state\n .setIn(['botAssignments', 'data'], fromJS(payload))\n .setIn(['botAssignments', 'isLoading'], false),\n [GET_BOT_ACTIONS]: state => state.setIn(['botActions', 'isLoading'], true),\n [SET_BOT_ACTIONS]: (state, { payload }) =>\n state\n .setIn(['botActions', 'data'], fromJS(payload))\n .setIn(['botActions', 'isLoading'], false),\n [VALIDATE_SOURCE_URL]: state =>\n state.setIn(['sourceUrlValidation', 'isValidating'], true),\n [VALIDATE_SOURCE_URL_SUCCESS]: (state, { payload }) =>\n state\n .setIn(['sourceUrlValidation', 'isValid'], payload)\n .setIn(['sourceUrlValidation', 'isValidating'], false),\n [CLEAR_SOURCE_URL_VALIDATION]: state =>\n state.setIn(['sourceUrlValidation', 'isValid'], undefined),\n [UPDATE_BOT_SUCCESS]: (state, { payload }) =>\n state.setIn(['botData', 'data'], fromJS(payload)),\n\n [SET_BOT_ERROR]: (state, { payload }) => state.set('error', payload),\n [HANDLE_REFRESH_BOT]: state => {\n return state.setIn(['botData', 'isLoading'], true)\n },\n [HANDLE_REFRESH_BOT_SUCCESS]: (state, { payload }) =>\n state\n .setIn(['botData', 'data'], fromJS(payload))\n .setIn(['botData', 'isLoading'], false),\n },\n initialState\n)\n\nexport default botManagementReducer\n","import {\n GET_BOT_DETAILS,\n SET_BOT_DETAILS,\n GET_BOT_ASSIGNMENTS,\n SET_BOT_ASSIGNMENTS,\n GET_BOT_ACTIONS,\n SET_BOT_ACTIONS,\n VALIDATE_SOURCE_URL,\n VALIDATE_SOURCE_URL_SUCCESS,\n CLEAR_SOURCE_URL_VALIDATION,\n UPDATE_BOT,\n UPDATE_BOT_SUCCESS,\n SET_BOT_ERROR,\n HANDLE_REFRESH_BOT,\n HANDLE_REFRESH_BOT_SUCCESS,\n} from './constants'\nimport { createAction } from 'redux-actions'\n\nexport const getBotDetails = createAction(GET_BOT_DETAILS)\nexport const setBotDetails = createAction(SET_BOT_DETAILS)\nexport const getBotAssignments = createAction(GET_BOT_ASSIGNMENTS)\nexport const setBotAssignments = createAction(SET_BOT_ASSIGNMENTS)\nexport const getBotActions = createAction(GET_BOT_ACTIONS)\nexport const setBotActions = createAction(SET_BOT_ACTIONS)\n\nexport const validateSourceUrl = createAction(VALIDATE_SOURCE_URL)\nexport const validateSourceUrlSuccess = createAction(\n VALIDATE_SOURCE_URL_SUCCESS\n)\n\nexport const clearSourceUrlValidation = createAction(\n CLEAR_SOURCE_URL_VALIDATION\n)\n\nexport const updateBot = createAction(UPDATE_BOT)\nexport const updateBotSuccess = createAction(UPDATE_BOT_SUCCESS)\n\nexport const setBotError = createAction(SET_BOT_ERROR)\n\nexport const handleRefreshBot = createAction(HANDLE_REFRESH_BOT)\nexport const handleRefreshBotSuccess = createAction(HANDLE_REFRESH_BOT_SUCCESS)\n","import { all, put, takeLatest, call } from 'redux-saga/effects'\nimport { getClient } from 'apolloClient'\nimport gql from 'graphql-tag'\nimport {\n GET_BOT_DETAILS,\n GET_BOT_ASSIGNMENTS,\n GET_BOT_ACTIONS,\n VALIDATE_SOURCE_URL,\n HANDLE_REFRESH_BOT,\n} from './constants'\nimport {\n setBotDetails,\n setBotAssignments,\n setBotActions,\n validateSourceUrlSuccess,\n updateBotSuccess,\n setBotError,\n handleRefreshBotSuccess,\n} from './actions'\nimport _ from 'lodash'\n\nfunction* getBotDetails(action) {\n const {\n payload: { srn },\n } = action\n try {\n const client = getClient()\n const query = gql`\n query getABotBySrn($srn: String) {\n Bots(where: { srn: { value: $srn } }) {\n items {\n title\n description\n type\n isCustom\n url\n status\n cloud\n operation\n lastSync\n version\n srn\n resourceId\n blob\n remediationType\n }\n }\n }\n `\n const result = yield client.query({\n query,\n variables: {\n srn,\n },\n })\n const bot = _.first(result.data.Bots.items)\n\n if (!bot) {\n throw new Error('No bot returned')\n }\n\n yield put(setBotDetails(bot))\n } catch (e) {\n //eslint-disable-next-line no-console\n console.error(`Error getting bot details ${e}`)\n yield put(setBotError(e.message))\n }\n}\nfunction* getBotAssignments(action) {\n const { payload } = action\n try {\n const client = getClient()\n const query = gql`\n query getBotAssignemnts($srn: String) {\n BotAssignments(where: { botSrn: { value: $srn } }) {\n items {\n srn\n content {\n srn\n name\n }\n }\n }\n }\n `\n const result = yield client.query({\n query,\n variables: {\n srn: payload,\n },\n })\n const assignments = result.data.BotAssignments.items\n yield put(setBotAssignments(assignments))\n } catch (e) {\n //eslint-disable-next-line no-console\n console.error(`Error getting bot assignments ${e}`)\n yield put(setBotError(e.message))\n }\n}\n\nfunction* getBotActions(action) {\n const { payload } = action\n try {\n const client = getClient()\n const query = gql`\n query getBotActions($srn: String!) {\n Actions(where: { botSrns: { op: CONTAINS, value: $srn } }) {\n items(limit: 25) {\n srn\n name\n createdDate\n succeeded\n }\n }\n }\n `\n const result = yield client.query({\n query,\n variables: {\n srn: payload,\n },\n })\n const actions = result.data.Actions.items\n yield put(setBotActions(actions))\n } catch (e) {\n //eslint-disable-next-line no-console\n console.error(`Error getting bot actions ${e}`)\n yield put(setBotError(e.message))\n }\n}\n\nfunction* updateBot(srn, url) {\n try {\n const client = getClient()\n const result = yield client.mutate({\n mutation: gql`\n mutation updateBot($url: String!, $srn: String!) {\n UpdateBot(input: { srn: $srn, url: $url }) {\n title\n description\n type\n isCustom\n url\n status\n cloud\n operation\n lastSync\n version\n srn\n blob\n }\n }\n `,\n variables: { url, srn },\n })\n if (result.data.UpdateBot) {\n return result.data.UpdateBot\n } else {\n return {}\n }\n } catch (e) {\n return {}\n }\n}\n\nfunction* refreshBot(action) {\n const { srn } = action.payload\n try {\n const client = getClient()\n const result = yield client.mutate({\n mutation: gql`\n mutation syncBot($srn: String!) {\n SyncBot(input: { srn: $srn }) {\n title\n description\n type\n isCustom\n url\n status\n cloud\n operation\n lastSync\n version\n srn\n resourceId\n blob\n }\n }\n `,\n variables: { srn },\n })\n\n if (!result || !result.data || result.errors) {\n throw new Error(\n _.get(result, ['errors', 0, 'message']) || 'Could not sync bot'\n )\n }\n\n const bot = result.data.SyncBot\n yield put(handleRefreshBotSuccess(bot))\n } catch (e) {\n //eslint-disable-next-line no-console\n console.error(`Error refreshing bot ${e}`)\n yield put(setBotError(e.message))\n }\n}\n\nfunction* validateSourceUrl(action) {\n const { url, srn } = action.payload\n const bot = yield call(updateBot, srn, url)\n const isValid = !_.isEmpty(bot)\n yield put(validateSourceUrlSuccess(isValid))\n if (isValid) {\n yield put(updateBotSuccess(bot))\n }\n}\n\nfunction* explorerSaga() {\n yield all([\n takeLatest(GET_BOT_DETAILS, getBotDetails),\n takeLatest(GET_BOT_ASSIGNMENTS, getBotAssignments),\n takeLatest(GET_BOT_ACTIONS, getBotActions),\n takeLatest(VALIDATE_SOURCE_URL, validateSourceUrl),\n takeLatest(HANDLE_REFRESH_BOT, refreshBot),\n ])\n}\n\nexport default explorerSaga\n","import { createSelector } from 'reselect'\nimport { Map } from 'immutable'\n\nconst selectBotDetailsDomain = state => state.get('botDetails') || Map()\n\nexport const selectBot = createSelector(\n selectBotDetailsDomain,\n state => state.get('botData')\n)\n\nexport const selectBotAssignments = createSelector(\n selectBotDetailsDomain,\n state => state.get('botAssignments')\n)\n\nexport const selectBotActions = createSelector(\n selectBotDetailsDomain,\n state => state.get('botActions')\n)\n\nexport const selectSourceUrlValidation = createSelector(\n selectBotDetailsDomain,\n state => state.get('sourceUrlValidation')\n)\n\nexport const selectBotError = createSelector(\n selectBotDetailsDomain,\n state => state.get('error')\n)\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport Icon from 'components/Icon'\nimport themeable, { themeShape } from 'containers/ThemeManager/Themeable'\nimport moment from 'moment'\nimport Popover, { PopoverBody, PopoverAnchor } from 'components/Popover'\nimport { Input, Label } from 'reactstrap'\nimport WithPermission from 'containers/PermissionChecker/WithPermission'\nimport Button from 'components/Button'\nimport BorderlessButton from 'components/BorderlessButton'\nimport TextLink from 'components/TextLink'\n\nclass BotProperties extends Component {\n constructor(props) {\n super(props)\n\n this.styles = {\n container: {\n display: 'flex',\n },\n label: {\n fontSize: '1rem',\n fontWeight: '400',\n color: this.props.theme.neutralMedium,\n paddingBottom: '0.25rem',\n },\n property: {\n padding: '0.5rem 1rem',\n },\n input: {\n margin: '0.25rem 0rem 0.75rem 0rem',\n },\n error: {\n fontSize: '0.8rem',\n fontWeight: '400',\n margin: '0.25rem 0rem 0.5rem 0.25rem',\n color: this.props.theme.red,\n },\n success: {\n fontSize: '0.8rem',\n fontWeight: '400',\n margin: '0.25rem 0rem 0.5rem 0.25rem',\n },\n refresh: {\n marginLeft: '0.5rem',\n fontSize: '0.75rem',\n color: this.props.theme.neutralMedium,\n cursor: 'pointer',\n },\n }\n\n this.state = {\n editSource: false,\n sourceUrl: props.botData.sourceUrl || '',\n }\n }\n\n getStatusColor = status => {\n if (status == 'FAILED_TO_SYNC') {\n return this.props.theme.red\n } else {\n return this.props.theme.success\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.props.isValid !== undefined) {\n if (prevState.sourceUrl !== this.state.sourceUrl) {\n this.props.clearSourceUrlValidation()\n }\n if (prevProps.isValid !== this.props.isValid && this.props.isValid) {\n this.handleClose()\n }\n }\n if (prevState.editSource === true && this.state.editSource === false) {\n this.handleClose()\n }\n }\n\n handleClose = () => {\n this.setState({\n sourceUrl: this.props.botData.sourceUrl,\n editSource: false,\n })\n this.props.clearSourceUrlValidation()\n }\n\n handleUpdateSourceUrl = () => {\n this.props.validateSourceUrl({\n url: this.state.sourceUrl,\n srn: this.props.botData.srn,\n })\n }\n\n renderSourceUrlInput = () => {\n const { isValid } = this.props\n const isNotValid = isValid !== undefined && isValid === false\n return (\n