1 line
61 KiB
JSON
1 line
61 KiB
JSON
{"ast":null,"code":"import _objectSpread from\"/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";import React,{useState}from'react';import{Grid,Paper,Typography,Box,Card,CardContent,Button,Chip,IconButton,Switch,FormControlLabel,Dialog,DialogTitle,DialogContent,DialogActions,TextField,FormControl,InputLabel,Select,MenuItem,List,ListItem,ListItemText,Alert,Tabs,Tab,Avatar,LinearProgress}from'@mui/material';import{Chat,Storage,Security,CheckCircle,Error,Warning,Add,Edit,Delete,Sync,Api,Storage as Database,Monitor}from'@mui/icons-material';import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";const integrations=[{id:1,name:'Microsoft Teams',type:'Communication',status:'connected',description:'Send notifications and updates to Teams channels',icon:/*#__PURE__*/_jsx(Chat,{}),color:'#1976d2',lastSync:'2024-01-15 10:30',health:'healthy',features:['Notifications','Incident Updates','Status Changes']},{id:2,name:'ServiceNow',type:'CMDB',status:'connected',description:'Synchronize configuration items and incidents',icon:/*#__PURE__*/_jsx(Database,{}),color:'#4caf50',lastSync:'2024-01-15 10:25',health:'healthy',features:['CMDB Sync','Incident Sync','Asset Management']},{id:3,name:'Nagios',type:'Monitoring',status:'connected',description:'Automatically create incidents from monitoring alerts',icon:/*#__PURE__*/_jsx(Monitor,{}),color:'#ff9800',lastSync:'2024-01-15 10:20',health:'warning',features:['Auto Incident Creation','Alert Correlation','Status Monitoring']},{id:4,name:'Slack',type:'Communication',status:'disconnected',description:'Team communication and incident notifications',icon:/*#__PURE__*/_jsx(Chat,{}),color:'#e91e63',lastSync:'2024-01-14 16:45',health:'error',features:['Notifications','Team Chat','Incident Updates']},{id:5,name:'Active Directory',type:'Identity',status:'connected',description:'User authentication and role synchronization',icon:/*#__PURE__*/_jsx(Security,{}),color:'#9c27b0',lastSync:'2024-01-15 10:15',health:'healthy',features:['User Sync','Authentication','Role Management']},{id:6,name:'Jira',type:'Project Management',status:'connected',description:'Create and sync issues with project management',icon:/*#__PURE__*/_jsx(Api,{}),color:'#00bcd4',lastSync:'2024-01-15 10:10',health:'healthy',features:['Issue Creation','Status Sync','Project Tracking']}];const integrationTemplates=[{name:'Email Integration',description:'Configure SMTP settings for email notifications',category:'Communication',setupSteps:['Configure SMTP server settings','Set up authentication credentials','Test email delivery','Configure notification templates']},{name:'Webhook Integration',description:'Set up webhooks for real-time data exchange',category:'API',setupSteps:['Define webhook endpoints','Configure authentication','Set up data mapping','Test webhook delivery']},{name:'Database Integration',description:'Connect to external databases for data synchronization',category:'Data',setupSteps:['Configure database connection','Set up data mapping','Configure sync schedule','Test data synchronization']}];const integrationTypes=[{value:'Communication',label:'Communication',icon:/*#__PURE__*/_jsx(Chat,{})},{value:'Monitoring',label:'Monitoring',icon:/*#__PURE__*/_jsx(Monitor,{})},{value:'CMDB',label:'CMDB',icon:/*#__PURE__*/_jsx(Database,{})},{value:'Identity',label:'Identity',icon:/*#__PURE__*/_jsx(Security,{})},{value:'API',label:'API',icon:/*#__PURE__*/_jsx(Api,{})},{value:'Data',label:'Data',icon:/*#__PURE__*/_jsx(Storage,{})}];const IntegrationManager=()=>{const[integrationsList,setIntegrationsList]=useState(integrations);const[selectedIntegration,setSelectedIntegration]=useState(null);const[integrationDialogOpen,setIntegrationDialogOpen]=useState(false);const[templateDialogOpen,setTemplateDialogOpen]=useState(false);const[tabValue,setTabValue]=useState(0);const[newIntegration,setNewIntegration]=useState({name:'',type:'',description:'',endpoint:'',apiKey:'',status:'disconnected'});const handleToggleIntegration=integrationId=>{setIntegrationsList(prev=>prev.map(integration=>integration.id===integrationId?_objectSpread(_objectSpread({},integration),{},{status:integration.status==='connected'?'disconnected':'connected',lastSync:new Date().toLocaleString()}):integration));};const handleEditIntegration=integration=>{setSelectedIntegration(integration);setNewIntegration(integration);setIntegrationDialogOpen(true);};const handleCreateIntegration=()=>{setSelectedIntegration(null);setNewIntegration({name:'',type:'',description:'',endpoint:'',apiKey:'',status:'disconnected'});setIntegrationDialogOpen(true);};const handleSaveIntegration=()=>{if(selectedIntegration){setIntegrationsList(prev=>prev.map(integration=>integration.id===selectedIntegration.id?_objectSpread(_objectSpread(_objectSpread({},integration),newIntegration),{},{id:selectedIntegration.id}):integration));}else{const newId=Math.max(...integrationsList.map(i=>i.id))+1;setIntegrationsList(prev=>[...prev,_objectSpread(_objectSpread({},newIntegration),{},{id:newId,icon:/*#__PURE__*/_jsx(Api,{}),color:'#1976d2',lastSync:new Date().toLocaleString(),health:'healthy',features:['Basic Integration']})]);}setIntegrationDialogOpen(false);};const handleDeleteIntegration=integrationId=>{if(window.confirm('Are you sure you want to delete this integration?')){setIntegrationsList(prev=>prev.filter(i=>i.id!==integrationId));}};const handleSyncIntegration=integrationId=>{setIntegrationsList(prev=>prev.map(integration=>integration.id===integrationId?_objectSpread(_objectSpread({},integration),{},{lastSync:new Date().toLocaleString()}):integration));};const getHealthColor=health=>{const colors={healthy:'success',warning:'warning',error:'error'};return colors[health]||'default';};const getHealthIcon=health=>{const icons={healthy:/*#__PURE__*/_jsx(CheckCircle,{color:\"success\"}),warning:/*#__PURE__*/_jsx(Warning,{color:\"warning\"}),error:/*#__PURE__*/_jsx(Error,{color:\"error\"})};return icons[health]||/*#__PURE__*/_jsx(Error,{});};const getStatusColor=status=>{return status==='connected'?'success':'error';};const connectedCount=integrationsList.filter(i=>i.status==='connected').length;const totalCount=integrationsList.length;return/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',justifyContent:'space-between',alignItems:'center',mb:3},children:[/*#__PURE__*/_jsx(Typography,{variant:\"h4\",gutterBottom:true,children:\"Integration Manager\"}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",startIcon:/*#__PURE__*/_jsx(Add,{}),onClick:handleCreateIntegration,children:\"Add Integration\"})]}),/*#__PURE__*/_jsx(Paper,{sx:{p:2,mb:3},children:/*#__PURE__*/_jsxs(Tabs,{value:tabValue,onChange:(e,newValue)=>setTabValue(newValue),children:[/*#__PURE__*/_jsx(Tab,{label:\"Active Integrations\"}),/*#__PURE__*/_jsx(Tab,{label:\"Integration Templates\"}),/*#__PURE__*/_jsx(Tab,{label:\"API Documentation\"})]})}),tabValue===0&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(Grid,{container:true,spacing:3,sx:{mb:3},children:[/*#__PURE__*/_jsx(Grid,{item:true,xs:12,sm:6,md:3,children:/*#__PURE__*/_jsx(Card,{children:/*#__PURE__*/_jsxs(CardContent,{children:[/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',alignItems:'center',mb:2},children:[/*#__PURE__*/_jsx(Avatar,{sx:{bgcolor:'success.main',mr:2},children:/*#__PURE__*/_jsx(CheckCircle,{})}),/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsx(Typography,{variant:\"h4\",children:connectedCount}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",children:\"Connected\"})]})]}),/*#__PURE__*/_jsx(LinearProgress,{variant:\"determinate\",value:connectedCount/totalCount*100,color:\"success\",sx:{height:8,borderRadius:4}})]})})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,sm:6,md:3,children:/*#__PURE__*/_jsx(Card,{children:/*#__PURE__*/_jsx(CardContent,{children:/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',alignItems:'center',mb:2},children:[/*#__PURE__*/_jsx(Avatar,{sx:{bgcolor:'error.main',mr:2},children:/*#__PURE__*/_jsx(Error,{})}),/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsx(Typography,{variant:\"h4\",children:totalCount-connectedCount}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",children:\"Disconnected\"})]})]})})})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,sm:6,md:3,children:/*#__PURE__*/_jsx(Card,{children:/*#__PURE__*/_jsx(CardContent,{children:/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',alignItems:'center',mb:2},children:[/*#__PURE__*/_jsx(Avatar,{sx:{bgcolor:'warning.main',mr:2},children:/*#__PURE__*/_jsx(Warning,{})}),/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsx(Typography,{variant:\"h4\",children:\"2\"}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",children:\"Warnings\"})]})]})})})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,sm:6,md:3,children:/*#__PURE__*/_jsx(Card,{children:/*#__PURE__*/_jsx(CardContent,{children:/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',alignItems:'center',mb:2},children:[/*#__PURE__*/_jsx(Avatar,{sx:{bgcolor:'info.main',mr:2},children:/*#__PURE__*/_jsx(Sync,{})}),/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsx(Typography,{variant:\"h4\",children:\"15\"}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",children:\"Syncs Today\"})]})]})})})})]}),/*#__PURE__*/_jsx(Grid,{container:true,spacing:3,children:integrationsList.map(integration=>/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,lg:4,children:/*#__PURE__*/_jsx(Card,{children:/*#__PURE__*/_jsxs(CardContent,{children:[/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',justifyContent:'space-between',alignItems:'center',mb:2},children:[/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',alignItems:'center'},children:[/*#__PURE__*/_jsx(Avatar,{sx:{bgcolor:integration.color,mr:2},children:integration.icon}),/*#__PURE__*/_jsxs(Box,{children:[/*#__PURE__*/_jsx(Typography,{variant:\"h6\",children:integration.name}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",children:integration.type})]})]}),/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',gap:1},children:[/*#__PURE__*/_jsx(IconButton,{size:\"small\",onClick:()=>handleEditIntegration(integration),children:/*#__PURE__*/_jsx(Edit,{})}),/*#__PURE__*/_jsx(IconButton,{size:\"small\",onClick:()=>handleDeleteIntegration(integration.id),children:/*#__PURE__*/_jsx(Delete,{})})]})]}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",sx:{mb:2},children:integration.description}),/*#__PURE__*/_jsx(Box,{sx:{display:'flex',gap:1,flexWrap:'wrap',mb:2},children:integration.features.map((feature,index)=>/*#__PURE__*/_jsx(Chip,{label:feature,size:\"small\",variant:\"outlined\"},index))}),/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',justifyContent:'space-between',alignItems:'center',mb:2},children:[/*#__PURE__*/_jsx(Chip,{label:integration.status,size:\"small\",color:getStatusColor(integration.status)}),/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',alignItems:'center',gap:1},children:[getHealthIcon(integration.health),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",children:integration.health})]})]}),/*#__PURE__*/_jsxs(Typography,{variant:\"body2\",color:\"text.secondary\",sx:{mb:2},children:[\"Last Sync: \",integration.lastSync]}),/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',gap:1},children:[/*#__PURE__*/_jsx(FormControlLabel,{control:/*#__PURE__*/_jsx(Switch,{checked:integration.status==='connected',onChange:()=>handleToggleIntegration(integration.id),color:\"primary\"}),label:\"Enabled\"}),/*#__PURE__*/_jsx(Button,{size:\"small\",startIcon:/*#__PURE__*/_jsx(Sync,{}),onClick:()=>handleSyncIntegration(integration.id),disabled:integration.status==='disconnected',children:\"Sync\"})]})]})})},integration.id))})]}),tabValue===1&&/*#__PURE__*/_jsx(Grid,{container:true,spacing:3,children:integrationTemplates.map((template,index)=>/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsx(Card,{children:/*#__PURE__*/_jsxs(CardContent,{children:[/*#__PURE__*/_jsx(Typography,{variant:\"h6\",gutterBottom:true,children:template.name}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",color:\"text.secondary\",sx:{mb:2},children:template.description}),/*#__PURE__*/_jsx(Chip,{label:template.category,size:\"small\",sx:{mb:2}}),/*#__PURE__*/_jsx(Typography,{variant:\"subtitle2\",gutterBottom:true,children:\"Setup Steps:\"}),/*#__PURE__*/_jsx(List,{dense:true,children:template.setupSteps.map((step,stepIndex)=>/*#__PURE__*/_jsx(ListItem,{children:/*#__PURE__*/_jsx(ListItemText,{primary:\"\".concat(stepIndex+1,\". \").concat(step)})},stepIndex))}),/*#__PURE__*/_jsx(Button,{variant:\"outlined\",fullWidth:true,sx:{mt:2},onClick:()=>{setNewIntegration(prev=>_objectSpread(_objectSpread({},prev),{},{name:template.name}));setIntegrationDialogOpen(true);},children:\"Use Template\"})]})})},index))}),tabValue===2&&/*#__PURE__*/_jsxs(Paper,{sx:{p:3},children:[/*#__PURE__*/_jsx(Typography,{variant:\"h6\",gutterBottom:true,children:\"API Documentation\"}),/*#__PURE__*/_jsxs(Alert,{severity:\"info\",sx:{mb:3},children:[/*#__PURE__*/_jsx(Typography,{variant:\"subtitle2\",children:\"Integration API\"}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",children:\"Use our REST API to integrate with external systems. All endpoints require authentication.\"})]}),/*#__PURE__*/_jsx(Typography,{variant:\"subtitle1\",gutterBottom:true,children:\"Base URL: https://api.etb-enterprise.com/v1\"}),/*#__PURE__*/_jsx(Typography,{variant:\"subtitle1\",gutterBottom:true,sx:{mt:3},children:\"Authentication\"}),/*#__PURE__*/_jsx(Typography,{variant:\"body2\",sx:{mb:2},children:\"Include your API key in the Authorization header:\"}),/*#__PURE__*/_jsx(Paper,{sx:{p:2,bgcolor:'grey.100',mb:3},children:/*#__PURE__*/_jsx(Typography,{variant:\"body2\",component:\"pre\",children:\"Authorization: Bearer YOUR_API_KEY\"})}),/*#__PURE__*/_jsx(Typography,{variant:\"subtitle1\",gutterBottom:true,children:\"Common Endpoints\"}),/*#__PURE__*/_jsxs(List,{children:[/*#__PURE__*/_jsx(ListItem,{children:/*#__PURE__*/_jsx(ListItemText,{primary:\"POST /incidents\",secondary:\"Create a new incident\"})}),/*#__PURE__*/_jsx(ListItem,{children:/*#__PURE__*/_jsx(ListItemText,{primary:\"GET /incidents\",secondary:\"Retrieve incidents with filtering\"})}),/*#__PURE__*/_jsx(ListItem,{children:/*#__PURE__*/_jsx(ListItemText,{primary:\"PUT /incidents/{id}\",secondary:\"Update an existing incident\"})}),/*#__PURE__*/_jsx(ListItem,{children:/*#__PURE__*/_jsx(ListItemText,{primary:\"GET /users\",secondary:\"Retrieve user information\"})})]})]}),/*#__PURE__*/_jsxs(Dialog,{open:integrationDialogOpen,onClose:()=>setIntegrationDialogOpen(false),maxWidth:\"md\",fullWidth:true,children:[/*#__PURE__*/_jsx(DialogTitle,{children:selectedIntegration?'Edit Integration':'Create New Integration'}),/*#__PURE__*/_jsx(DialogContent,{children:/*#__PURE__*/_jsxs(Grid,{container:true,spacing:2,sx:{mt:1},children:[/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,label:\"Integration Name\",value:newIntegration.name,onChange:e=>setNewIntegration(prev=>_objectSpread(_objectSpread({},prev),{},{name:e.target.value})),required:true})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsxs(FormControl,{fullWidth:true,required:true,children:[/*#__PURE__*/_jsx(InputLabel,{children:\"Type\"}),/*#__PURE__*/_jsx(Select,{value:newIntegration.type,label:\"Type\",onChange:e=>setNewIntegration(prev=>_objectSpread(_objectSpread({},prev),{},{type:e.target.value})),children:integrationTypes.map(type=>/*#__PURE__*/_jsx(MenuItem,{value:type.value,children:/*#__PURE__*/_jsxs(Box,{sx:{display:'flex',alignItems:'center'},children:[type.icon,/*#__PURE__*/_jsx(Typography,{sx:{ml:1},children:type.label})]})},type.value))})]})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,label:\"Description\",value:newIntegration.description,onChange:e=>setNewIntegration(prev=>_objectSpread(_objectSpread({},prev),{},{description:e.target.value})),multiline:true,rows:2})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,label:\"Endpoint URL\",value:newIntegration.endpoint,onChange:e=>setNewIntegration(prev=>_objectSpread(_objectSpread({},prev),{},{endpoint:e.target.value})),placeholder:\"https://api.example.com\"})}),/*#__PURE__*/_jsx(Grid,{item:true,xs:12,md:6,children:/*#__PURE__*/_jsx(TextField,{fullWidth:true,label:\"API Key\",type:\"password\",value:newIntegration.apiKey,onChange:e=>setNewIntegration(prev=>_objectSpread(_objectSpread({},prev),{},{apiKey:e.target.value})),placeholder:\"Enter API key or token\"})})]})}),/*#__PURE__*/_jsxs(DialogActions,{children:[/*#__PURE__*/_jsx(Button,{onClick:()=>setIntegrationDialogOpen(false),children:\"Cancel\"}),/*#__PURE__*/_jsx(Button,{variant:\"contained\",onClick:handleSaveIntegration,children:selectedIntegration?'Update':'Create'})]})]})]});};export default IntegrationManager;","map":{"version":3,"names":["React","useState","Grid","Paper","Typography","Box","Card","CardContent","Button","Chip","IconButton","Switch","FormControlLabel","Dialog","DialogTitle","DialogContent","DialogActions","TextField","FormControl","InputLabel","Select","MenuItem","List","ListItem","ListItemText","Alert","Tabs","Tab","Avatar","LinearProgress","Chat","Storage","Security","CheckCircle","Error","Warning","Add","Edit","Delete","Sync","Api","Database","Monitor","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","integrations","id","name","type","status","description","icon","color","lastSync","health","features","integrationTemplates","category","setupSteps","integrationTypes","value","label","IntegrationManager","integrationsList","setIntegrationsList","selectedIntegration","setSelectedIntegration","integrationDialogOpen","setIntegrationDialogOpen","templateDialogOpen","setTemplateDialogOpen","tabValue","setTabValue","newIntegration","setNewIntegration","endpoint","apiKey","handleToggleIntegration","integrationId","prev","map","integration","_objectSpread","Date","toLocaleString","handleEditIntegration","handleCreateIntegration","handleSaveIntegration","newId","Math","max","i","handleDeleteIntegration","window","confirm","filter","handleSyncIntegration","getHealthColor","colors","healthy","warning","error","getHealthIcon","icons","getStatusColor","connectedCount","length","totalCount","children","sx","display","justifyContent","alignItems","mb","variant","gutterBottom","startIcon","onClick","p","onChange","e","newValue","container","spacing","item","xs","sm","md","bgcolor","mr","height","borderRadius","lg","gap","size","flexWrap","feature","index","control","checked","disabled","template","dense","step","stepIndex","primary","concat","fullWidth","mt","severity","component","secondary","open","onClose","maxWidth","target","required","ml","multiline","rows","placeholder"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/src/pages/Admin/IntegrationManager.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n Grid,\n Paper,\n Typography,\n Box,\n Card,\n CardContent,\n Button,\n Chip,\n IconButton,\n Switch,\n FormControlLabel,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n TextField,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n List,\n ListItem,\n ListItemText,\n ListItemIcon,\n ListItemSecondaryAction,\n Divider,\n Alert,\n Tabs,\n Tab,\n Avatar,\n LinearProgress,\n} from '@mui/material';\nimport {\n Settings,\n Cloud,\n Email,\n Chat,\n Storage,\n Security,\n CheckCircle,\n Error,\n Warning,\n Refresh,\n Add,\n Edit,\n Delete,\n Visibility,\n Sync,\n Webhook,\n Api,\n Storage as Database,\n Monitor,\n} from '@mui/icons-material';\n\nconst integrations = [\n {\n id: 1,\n name: 'Microsoft Teams',\n type: 'Communication',\n status: 'connected',\n description: 'Send notifications and updates to Teams channels',\n icon: <Chat />,\n color: '#1976d2',\n lastSync: '2024-01-15 10:30',\n health: 'healthy',\n features: ['Notifications', 'Incident Updates', 'Status Changes']\n },\n {\n id: 2,\n name: 'ServiceNow',\n type: 'CMDB',\n status: 'connected',\n description: 'Synchronize configuration items and incidents',\n icon: <Database />,\n color: '#4caf50',\n lastSync: '2024-01-15 10:25',\n health: 'healthy',\n features: ['CMDB Sync', 'Incident Sync', 'Asset Management']\n },\n {\n id: 3,\n name: 'Nagios',\n type: 'Monitoring',\n status: 'connected',\n description: 'Automatically create incidents from monitoring alerts',\n icon: <Monitor />,\n color: '#ff9800',\n lastSync: '2024-01-15 10:20',\n health: 'warning',\n features: ['Auto Incident Creation', 'Alert Correlation', 'Status Monitoring']\n },\n {\n id: 4,\n name: 'Slack',\n type: 'Communication',\n status: 'disconnected',\n description: 'Team communication and incident notifications',\n icon: <Chat />,\n color: '#e91e63',\n lastSync: '2024-01-14 16:45',\n health: 'error',\n features: ['Notifications', 'Team Chat', 'Incident Updates']\n },\n {\n id: 5,\n name: 'Active Directory',\n type: 'Identity',\n status: 'connected',\n description: 'User authentication and role synchronization',\n icon: <Security />,\n color: '#9c27b0',\n lastSync: '2024-01-15 10:15',\n health: 'healthy',\n features: ['User Sync', 'Authentication', 'Role Management']\n },\n {\n id: 6,\n name: 'Jira',\n type: 'Project Management',\n status: 'connected',\n description: 'Create and sync issues with project management',\n icon: <Api />,\n color: '#00bcd4',\n lastSync: '2024-01-15 10:10',\n health: 'healthy',\n features: ['Issue Creation', 'Status Sync', 'Project Tracking']\n }\n];\n\nconst integrationTemplates = [\n {\n name: 'Email Integration',\n description: 'Configure SMTP settings for email notifications',\n category: 'Communication',\n setupSteps: [\n 'Configure SMTP server settings',\n 'Set up authentication credentials',\n 'Test email delivery',\n 'Configure notification templates'\n ]\n },\n {\n name: 'Webhook Integration',\n description: 'Set up webhooks for real-time data exchange',\n category: 'API',\n setupSteps: [\n 'Define webhook endpoints',\n 'Configure authentication',\n 'Set up data mapping',\n 'Test webhook delivery'\n ]\n },\n {\n name: 'Database Integration',\n description: 'Connect to external databases for data synchronization',\n category: 'Data',\n setupSteps: [\n 'Configure database connection',\n 'Set up data mapping',\n 'Configure sync schedule',\n 'Test data synchronization'\n ]\n }\n];\n\nconst integrationTypes = [\n { value: 'Communication', label: 'Communication', icon: <Chat /> },\n { value: 'Monitoring', label: 'Monitoring', icon: <Monitor /> },\n { value: 'CMDB', label: 'CMDB', icon: <Database /> },\n { value: 'Identity', label: 'Identity', icon: <Security /> },\n { value: 'API', label: 'API', icon: <Api /> },\n { value: 'Data', label: 'Data', icon: <Storage /> },\n];\n\nconst IntegrationManager: React.FC = () => {\n const [integrationsList, setIntegrationsList] = useState(integrations);\n const [selectedIntegration, setSelectedIntegration] = useState<any>(null);\n const [integrationDialogOpen, setIntegrationDialogOpen] = useState<boolean>(false);\n const [templateDialogOpen, setTemplateDialogOpen] = useState<boolean>(false);\n const [tabValue, setTabValue] = useState<number>(0);\n const [newIntegration, setNewIntegration] = useState({\n name: '',\n type: '',\n description: '',\n endpoint: '',\n apiKey: '',\n status: 'disconnected'\n });\n\n const handleToggleIntegration = (integrationId: any) => {\n setIntegrationsList(prev => prev.map(integration => \n integration.id === integrationId \n ? { \n ...integration, \n status: integration.status === 'connected' ? 'disconnected' : 'connected',\n lastSync: new Date().toLocaleString()\n }\n : integration\n ));\n };\n\n const handleEditIntegration = (integration: any) => {\n setSelectedIntegration(integration);\n setNewIntegration(integration);\n setIntegrationDialogOpen(true);\n };\n\n const handleCreateIntegration = () => {\n setSelectedIntegration(null);\n setNewIntegration({\n name: '',\n type: '',\n description: '',\n endpoint: '',\n apiKey: '',\n status: 'disconnected'\n });\n setIntegrationDialogOpen(true);\n };\n\n const handleSaveIntegration = () => {\n if (selectedIntegration) {\n setIntegrationsList(prev => prev.map(integration => \n integration.id === selectedIntegration.id ? { \n ...integration,\n ...newIntegration, \n id: selectedIntegration.id \n } : integration\n ));\n } else {\n const newId = Math.max(...integrationsList.map(i => i.id)) + 1;\n setIntegrationsList(prev => [...prev, { \n ...newIntegration, \n id: newId,\n icon: <Api />,\n color: '#1976d2',\n lastSync: new Date().toLocaleString(),\n health: 'healthy',\n features: ['Basic Integration']\n }]);\n }\n setIntegrationDialogOpen(false);\n };\n\n const handleDeleteIntegration = (integrationId: any) => {\n if (window.confirm('Are you sure you want to delete this integration?')) {\n setIntegrationsList(prev => prev.filter(i => i.id !== integrationId));\n }\n };\n\n const handleSyncIntegration = (integrationId: any) => {\n setIntegrationsList(prev => prev.map(integration => \n integration.id === integrationId \n ? { ...integration, lastSync: new Date().toLocaleString() }\n : integration\n ));\n };\n\n const getHealthColor = (health: string) => {\n const colors: { [key: string]: string } = {\n healthy: 'success',\n warning: 'warning',\n error: 'error'\n };\n return colors[health] || 'default';\n };\n\n const getHealthIcon = (health: string) => {\n const icons: { [key: string]: JSX.Element } = {\n healthy: <CheckCircle color=\"success\" />,\n warning: <Warning color=\"warning\" />,\n error: <Error color=\"error\" />\n };\n return icons[health] || <Error />;\n };\n\n const getStatusColor = (status: string) => {\n return status === 'connected' ? 'success' : 'error';\n };\n\n const connectedCount = integrationsList.filter(i => i.status === 'connected').length;\n const totalCount = integrationsList.length;\n\n return (\n <Box>\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 3 }}>\n <Typography variant=\"h4\" gutterBottom>\n Integration Manager\n </Typography>\n <Button\n variant=\"contained\"\n startIcon={<Add />}\n onClick={handleCreateIntegration}\n >\n Add Integration\n </Button>\n </Box>\n\n <Paper sx={{ p: 2, mb: 3 }}>\n <Tabs value={tabValue} onChange={(e, newValue) => setTabValue(newValue)}>\n <Tab label=\"Active Integrations\" />\n <Tab label=\"Integration Templates\" />\n <Tab label=\"API Documentation\" />\n </Tabs>\n </Paper>\n\n {tabValue === 0 && (\n <>\n {/* Integration Status Overview */}\n <Grid container spacing={3} sx={{ mb: 3 }}>\n <Grid item xs={12} sm={6} md={3}>\n <Card>\n <CardContent>\n <Box sx={{ display: 'flex', alignItems: 'center', mb: 2 }}>\n <Avatar sx={{ bgcolor: 'success.main', mr: 2 }}>\n <CheckCircle />\n </Avatar>\n <Box>\n <Typography variant=\"h4\">{connectedCount}</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Connected\n </Typography>\n </Box>\n </Box>\n <LinearProgress\n variant=\"determinate\"\n value={(connectedCount / totalCount) * 100}\n color=\"success\"\n sx={{ height: 8, borderRadius: 4 }}\n />\n </CardContent>\n </Card>\n </Grid>\n <Grid item xs={12} sm={6} md={3}>\n <Card>\n <CardContent>\n <Box sx={{ display: 'flex', alignItems: 'center', mb: 2 }}>\n <Avatar sx={{ bgcolor: 'error.main', mr: 2 }}>\n <Error />\n </Avatar>\n <Box>\n <Typography variant=\"h4\">{totalCount - connectedCount}</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Disconnected\n </Typography>\n </Box>\n </Box>\n </CardContent>\n </Card>\n </Grid>\n <Grid item xs={12} sm={6} md={3}>\n <Card>\n <CardContent>\n <Box sx={{ display: 'flex', alignItems: 'center', mb: 2 }}>\n <Avatar sx={{ bgcolor: 'warning.main', mr: 2 }}>\n <Warning />\n </Avatar>\n <Box>\n <Typography variant=\"h4\">2</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Warnings\n </Typography>\n </Box>\n </Box>\n </CardContent>\n </Card>\n </Grid>\n <Grid item xs={12} sm={6} md={3}>\n <Card>\n <CardContent>\n <Box sx={{ display: 'flex', alignItems: 'center', mb: 2 }}>\n <Avatar sx={{ bgcolor: 'info.main', mr: 2 }}>\n <Sync />\n </Avatar>\n <Box>\n <Typography variant=\"h4\">15</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Syncs Today\n </Typography>\n </Box>\n </Box>\n </CardContent>\n </Card>\n </Grid>\n </Grid>\n\n {/* Integrations List */}\n <Grid container spacing={3}>\n {integrationsList.map((integration: any) => (\n <Grid item xs={12} md={6} lg={4} key={integration.id}>\n <Card>\n <CardContent>\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Avatar sx={{ bgcolor: integration.color, mr: 2 }}>\n {integration.icon}\n </Avatar>\n <Box>\n <Typography variant=\"h6\">{integration.name}</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {integration.type}\n </Typography>\n </Box>\n </Box>\n <Box sx={{ display: 'flex', gap: 1 }}>\n <IconButton size=\"small\" onClick={() => handleEditIntegration(integration)}>\n <Edit />\n </IconButton>\n <IconButton size=\"small\" onClick={() => handleDeleteIntegration(integration.id)}>\n <Delete />\n </IconButton>\n </Box>\n </Box>\n \n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 2 }}>\n {integration.description}\n </Typography>\n \n <Box sx={{ display: 'flex', gap: 1, flexWrap: 'wrap', mb: 2 }}>\n {integration.features.map((feature: string, index: number) => (\n <Chip key={index} label={feature} size=\"small\" variant=\"outlined\" />\n ))}\n </Box>\n \n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>\n <Chip\n label={integration.status}\n size=\"small\"\n color={getStatusColor(integration.status)}\n />\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n {getHealthIcon(integration.health)}\n <Typography variant=\"body2\" color=\"text.secondary\">\n {integration.health}\n </Typography>\n </Box>\n </Box>\n \n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 2 }}>\n Last Sync: {integration.lastSync}\n </Typography>\n \n <Box sx={{ display: 'flex', gap: 1 }}>\n <FormControlLabel\n control={\n <Switch\n checked={integration.status === 'connected'}\n onChange={() => handleToggleIntegration(integration.id)}\n color=\"primary\"\n />\n }\n label=\"Enabled\"\n />\n <Button\n size=\"small\"\n startIcon={<Sync />}\n onClick={() => handleSyncIntegration(integration.id)}\n disabled={integration.status === 'disconnected'}\n >\n Sync\n </Button>\n </Box>\n </CardContent>\n </Card>\n </Grid>\n ))}\n </Grid>\n </>\n )}\n\n {tabValue === 1 && (\n <Grid container spacing={3}>\n {integrationTemplates.map((template, index) => (\n <Grid item xs={12} md={6} key={index}>\n <Card>\n <CardContent>\n <Typography variant=\"h6\" gutterBottom>\n {template.name}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mb: 2 }}>\n {template.description}\n </Typography>\n <Chip label={template.category} size=\"small\" sx={{ mb: 2 }} />\n <Typography variant=\"subtitle2\" gutterBottom>\n Setup Steps:\n </Typography>\n <List dense>\n {template.setupSteps.map((step, stepIndex) => (\n <ListItem key={stepIndex}>\n <ListItemText primary={`${stepIndex + 1}. ${step}`} />\n </ListItem>\n ))}\n </List>\n <Button\n variant=\"outlined\"\n fullWidth\n sx={{ mt: 2 }}\n onClick={() => {\n setNewIntegration(prev => ({ ...prev, name: template.name }));\n setIntegrationDialogOpen(true);\n }}\n >\n Use Template\n </Button>\n </CardContent>\n </Card>\n </Grid>\n ))}\n </Grid>\n )}\n\n {tabValue === 2 && (\n <Paper sx={{ p: 3 }}>\n <Typography variant=\"h6\" gutterBottom>\n API Documentation\n </Typography>\n <Alert severity=\"info\" sx={{ mb: 3 }}>\n <Typography variant=\"subtitle2\">Integration API</Typography>\n <Typography variant=\"body2\">\n Use our REST API to integrate with external systems. All endpoints require authentication.\n </Typography>\n </Alert>\n \n <Typography variant=\"subtitle1\" gutterBottom>\n Base URL: https://api.etb-enterprise.com/v1\n </Typography>\n \n <Typography variant=\"subtitle1\" gutterBottom sx={{ mt: 3 }}>\n Authentication\n </Typography>\n <Typography variant=\"body2\" sx={{ mb: 2 }}>\n Include your API key in the Authorization header:\n </Typography>\n <Paper sx={{ p: 2, bgcolor: 'grey.100', mb: 3 }}>\n <Typography variant=\"body2\" component=\"pre\">\n {`Authorization: Bearer YOUR_API_KEY`}\n </Typography>\n </Paper>\n \n <Typography variant=\"subtitle1\" gutterBottom>\n Common Endpoints\n </Typography>\n <List>\n <ListItem>\n <ListItemText\n primary=\"POST /incidents\"\n secondary=\"Create a new incident\"\n />\n </ListItem>\n <ListItem>\n <ListItemText\n primary=\"GET /incidents\"\n secondary=\"Retrieve incidents with filtering\"\n />\n </ListItem>\n <ListItem>\n <ListItemText\n primary=\"PUT /incidents/{id}\"\n secondary=\"Update an existing incident\"\n />\n </ListItem>\n <ListItem>\n <ListItemText\n primary=\"GET /users\"\n secondary=\"Retrieve user information\"\n />\n </ListItem>\n </List>\n </Paper>\n )}\n\n {/* Integration Dialog */}\n <Dialog open={integrationDialogOpen} onClose={() => setIntegrationDialogOpen(false)} maxWidth=\"md\" fullWidth>\n <DialogTitle>\n {selectedIntegration ? 'Edit Integration' : 'Create New Integration'}\n </DialogTitle>\n <DialogContent>\n <Grid container spacing={2} sx={{ mt: 1 }}>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Integration Name\"\n value={newIntegration.name}\n onChange={(e) => setNewIntegration(prev => ({ ...prev, name: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <FormControl fullWidth required>\n <InputLabel>Type</InputLabel>\n <Select\n value={newIntegration.type}\n label=\"Type\"\n onChange={(e) => setNewIntegration(prev => ({ ...prev, type: e.target.value }))}\n >\n {integrationTypes.map((type: any) => (\n <MenuItem key={type.value} value={type.value}>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n {type.icon}\n <Typography sx={{ ml: 1 }}>{type.label}</Typography>\n </Box>\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12}>\n <TextField\n fullWidth\n label=\"Description\"\n value={newIntegration.description}\n onChange={(e) => setNewIntegration(prev => ({ ...prev, description: e.target.value }))}\n multiline\n rows={2}\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Endpoint URL\"\n value={newIntegration.endpoint}\n onChange={(e) => setNewIntegration(prev => ({ ...prev, endpoint: e.target.value }))}\n placeholder=\"https://api.example.com\"\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"API Key\"\n type=\"password\"\n value={newIntegration.apiKey}\n onChange={(e) => setNewIntegration(prev => ({ ...prev, apiKey: e.target.value }))}\n placeholder=\"Enter API key or token\"\n />\n </Grid>\n </Grid>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setIntegrationDialogOpen(false)}>Cancel</Button>\n <Button variant=\"contained\" onClick={handleSaveIntegration}>\n {selectedIntegration ? 'Update' : 'Create'}\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n );\n}\n\nexport default IntegrationManager;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |