{"version":3,"sources":["components/dialogs/InfoDialog.js","components/request_information/RequestInformation.js","components/core/Groupbox.js","components/eva_waiver/iput/src/helper.js","components/eva_waiver/iput/src/index.js","components/eva_waiver/iput/src/CidrInput.js","components/eva_waiver/iput/src/WildcardInput.js","components/eva_waiver/iput/src/UrlInput.js","components/eva_waiver/iput/src/ToInput.js","components/eva_waiver/HostsInput.js","components/eva_waiver/HostsTable2.js","components/eva_waiver/Validation.js","components/eva_waiver/HostsTab.js","components/eva_waiver/EvaWaiver.js","components/phish2/Bars.js","components/eva_waiver/WaiversToolbar.js","components/phish2/AlertDialog.js","components/eva_waiver/EvaWaiverDialog.js","components/eva_waiver/Waivers.js","components/phish2/PhishToolbar.js","components/core/dateHelper.js","components/core/FUNCS.js","components/phish2/ClientView.js","components/phish2/MyTargetsView.js","components/phish2/NewRseDialog.js","components/core/CgSelect.js","components/phish2/CampaignDialog.js","components/phish2/SendTemplateDialog.js","components/phish2/CONSTS.js","components/phish2/DropDownButton.js","components/phish2/TimelineDialog.js","components/phish2/Phish2.js","App.js","reportWebVitals.js","index.js"],"names":["Transition","props","Slide","direction","InfoDialog","handleClose","setState","open","handleOkay","state","message","title","isError","this","Dialog","TransitionComponent","keepMounted","onClose","DialogTitle","id","style","backgroundColor","marginBottom","DialogContent","DialogContentText","DialogActions","Button","onClick","color","React","Component","TextMaskCustom","inputRef","other","ref","inputElement","mask","placeholderChar","showMask","RequestInformation","handleContactChange","field","value","temp","Contact","handleNext","activeStep","handleBack","handleReset","handleSubmit","axios","get","then","response","data","file","FormData","append","name","post","headers","_boundary","JSON","parse","stringify","infoDialg","show","catch","showAxiosError","error","alert","Day","Time","Service","getContactValue","bind","handleValueChange","fileInputChanged","infoDialog","status","fileInput","files","str","item","items","split","index","indexOf","splice","join","push","exclusive","checked","vv","removeFromString","addToString","key","height","theme","modules","toolbar","formats","AdditionalInformation","onChange","label","marginRight","TextField","flex","e","target","step","noValidate","autoComplete","display","createTextField","Email","isValidateEmail","FormControl","InputLabel","htmlFor","Input","defaultValue","inputComponent","List","map","day","ListItem","dense","button","Checkbox","getValueState","ListItemText","primary","ListItemSecondaryAction","IconButton","time","serviceArray","service","fontWeight","createRichTextBox","type","email","test","steps","getSteps","Toolbar","boxShadow","borderRadius","Typography","variant","Stepper","orientation","Step","StepLabel","StepContent","getStepContent","disabled","length","Paper","square","elevation","Groupbox","className","header","children","ip","require","getRange","el","cuRange","tbRange","headRange","range","dupRange","ret","setSelectionRange","begin","selectionStart","end","selectionEnd","result","substring","document","selection","tagName","toLowerCase","createRange","createTextRange","collapse","select","setEndPoint","text","duplicate","moveToElementText","focus","isValidIPItemValue","val","parseInt","isNaN","calcCount","ipRange","ss","from","fa","to","toLong","isValid","isV4Format","getNotation","getFromAndTo","verify","format","verifyFromTo","verifySingle","url","verifyURL","IPut","Array","isArray","i","preventDefault","onPropsChange","String","domId","keyCode","clipboardData","getData","pasteData","v","every","oldValue","forEach","j","handleChange","onKeyDown","handleKeyDown","onPaste","handlePaste","defaultProps","Function","CidrInput","intValue","WildcardInput","UrlInput","ToInput","HostsInput","Format","my","component","role","hidden","Grid","container","justify","spacing","alignItems","width","Chip","margin","p","onFromChange","onCidrChange","onMaskChange","onWildcardChange","HostsTable2","selected","overflow","Table","size","TableHead","TableRow","TableCell","align","TableBody","row","hover","event","onSelect","scope","Validation","count","onValidate","removeFromArray","HostsTab","includeSelected","excludeSelected","checkOverlay","checkOverlayAll","toAdd","left","right","l","r","isOverlay","targetArray","overlayCheck","ribbonTitle","groupTitle","itemTitle","include","exclude","fontSize","hostsInput","validator","run","EvaWaiver","eva","AppBar","position","clientName","startAdornment","InputAdornment","contactName","signerName","telephone","signerEmail","signerTitle","marginTop","hostsTab","onEvent","marginLeft","validateResult","validateEva","redirectUrl","envelopId","window","ErrorBar","onClear","Box","sx","Collapse","in","Alert","severity","action","Close","mb","MessageBar","WaiversToolbar","newEvaWaiver","isAllowNewEvaWaiver","onClientFilter","Tooltip","AddBox","AlertDialog","onDock","useState","setOpen","setTitle","setMessage","onOk","setOnOk","useEffect","autoFocus","EvaWaiverDialog","evaWaiver","setEvaWaiver","onclose","fullWidth","maxWidth","Waivers","isAdmin","setIsAdmin","setError","docxClients","setDocxClients","clientFilter","setClientFilter","client","setClient","setShowAlertDialog","showEvaWaiverDialog","setShowEvaWaiverDialog","displayError","overflowY","overflowX","clients","filter","toUpperCase","startsWith","sort","a","b","filterClients","docxClient","PhishToolbar","sendTemplate","clearTargets","newRse","isAllowNewRse","newCampaign","isAllowNewCampaign","deleteRse","isAllowDeleteRse","isAllowClearTargets","isAllowEditCampaign","editCampaign","isAllowStart","startCampaign","isAllowStop","stopCampaign","isAllowDeleteCampaign","deleteCampaign","isAllowReport","reportCampaign","DeleteForeverRounded","ClearAllTwoTone","AddCircleOutlineOutlined","Adjust","PlayCircleFilledOutlined","StopRounded","months","date","years","Date","getFullYear","getMonth","getDate","days","getTime","hours","addDays","addYears","dateStr","toDate","toShortDate","addHours","dt","pad","getHours","getMinutes","StartStr","EndStr","startStr","endStr","number","getSeconds","getMilliseconds","toFixed","slice","obj","endsWith","start","dtStart","dtEnd","d","now","span","minutes","howManyMinutesToNow","Math","round","obj1","obj2","d1","d2","compare","SHOW_AXIOS_ERROR","COMPARE_BY_START","aDate","dateHelper","bDate","MountSensor","onMount","CampaignView","campaign","onCampaignSelected","TreeItem","nodeId","AlternateEmailRounded","sendingProfile","toShortDateRange","RseView","rse","onRseSelected","campaigns","setCampaigns","loadMyChildren","AccountTreeOutlined","isMount","camp","ClientView","onClientSelected","rses","setRses","AccountBalanceOutlined","MyTargetsTable","myTargets","onDoubleClick","compare2","lastScanDate","DropPanel","DropTarget","accepts","drop","monitor","onDrop","connect","connectDropTarget","dropTarget","isOver","canDrop","lastDroppedItem","selectable","paddingTop","paddingLeft","MyTargetsView","onUpload","NativeTypes","FILE","URL","getItem","RseDialog","setRse","clientTitle","locale","CgSelect","convertValue","isMulti","Select","multiple","renderValue","displayEmpty","options","MenuItem","CampaignDialog","goParameters","setFrom","setCampaign","tag2","tag3","find","profiles","SendTemplateDialog","sendingTemplate","setSendingTemplate","xs","templates","CONSTS","StyledMenu","styled","Menu","anchorOrigin","vertical","horizontal","transformOrigin","minWidth","palette","mode","grey","padding","secondary","alpha","main","selectedOpacity","DropDownButton","addBatchTargetToCampaign","clearAllTargetFromCampaign","anchorEl","setAnchorEl","Boolean","undefined","disableElevation","currentTarget","endIcon","MenuListProps","disableRipple","Divider","ClearAll","parseDetailsToGetUserAgent","Details","replace","json","browser","parseDetailsToGetIP","TimelineDialog","timelineItems","setTimelineItems","toShortDateTime","Message","excludeResultsFromMyTargets","results","some","pp","Phish2","expanded","setExpanded","setMyTargets","loadRses","setLoadRses","loadCampaigns","setLoadCampaigns","setResults","showRseDialog","setShowRseDialog","showCampaignDialog","setShowCampaignDialog","showSendTemplateDialog","setShowSendTemplateDialog","showAlertDialog","showTimelineDialog","setShowTimelineDialog","loadCampaign","interval","setInterval","clearInterval","clientId","saveAs","TreeView","defaultCollapseIcon","ExpandMore","defaultExpandIcon","ChevronRight","flexGrow","reponse","Avatar","emailsSent","emailsOpened","emailsClicked","tag","emailSentDate2","emailOpenedDate2","clickedLinkDate2","App","Container","DndProvider","backend","HTML5Backend","path","reportWebVitals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.b8b813b8.chunk.js","sourcesContent":["import React from 'react';\nimport Button from '@material-ui/core/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport Slide from '@material-ui/core/Slide';\n\nfunction Transition(props) {\n return ;\n }\n\nexport default class InfoDialog extends React.Component{\n constructor(props){\n super(props);\n this.state = {open:false,message:null,title:null,isError:false}\n }\n\n show(message,title,isError){\n this.setState({open:true,message:message,title:title,isError:isError});\n }\n\n handleClose = () => {\n this.setState({ open: false });\n };\n\n handleOkay = () => {\n this.setState({open:false});\n };\n\n render(){\n return(\n \n \n {this.state.title}\n \n \n \n {this.state.message}\n \n \n \n \n \n \n );\n }\n}","import React from 'react';\nimport axios from 'axios';\nimport {\n Toolbar,Typography,Stepper,Step,StepLabel,StepContent,\n Button,Paper,TextField,Input,InputLabel,List,ListItem,\n ListItemSecondaryAction,ListItemText,Checkbox,IconButton,\n FormControl\n} from '@material-ui/core';\nimport MaskedInput from 'react-text-mask';\n\nimport DayIcon from '@material-ui/icons/Phone';\nimport TimeIcon from '@material-ui/icons/Timer';\n\nimport InfoDialog from '../dialogs/InfoDialog';\n\nimport ReactQuill from 'react-quill'; // ES6\nimport 'react-quill/dist/quill.snow.css'; // ES6\n\n\n\nfunction TextMaskCustom(props) {\n const { inputRef, ...other } = props;\n \n return (\n {\n inputRef(ref ? ref.inputElement : null);\n }}\n mask={['(', /[1-9]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]}\n placeholderChar={'\\u2000'}\n showMask\n />\n );\n }\n\nexport class RequestInformation extends React.Component {\n constructor(props){\n super(props);\n this.state = {activeStep: 0,Contact:{},Day:'Any Day',Time:'Anytime',Service:'General Information'};\n\n this.getContactValue = this.getContactValue.bind(this);\n this.handleContactChange = this.handleContactChange.bind(this);\n\n this.handleValueChange = this.handleValueChange.bind(this);\n this.fileInputChanged = this.fileInputChanged.bind(this);\n\n this.showAxiosError = this.showAxiosError.bind(this);\n }\n showAxiosError(error){\n if(error.response && error.response.data){\n this.infoDialog.show(error.response.data,\"ERROR: \" +error.response.status,true);\n }else{\n this.infoDialog.show(JSON.stringify(error),\"ERROR\",true);\n }\n }\n getContactValue(field){\n return this.state.Contact[field];\n }\n handleContactChange = (field,value) => {\n const temp = this.state.Contact;\n temp[field] = value;\n this.setState({Contact:temp});\n }\n fileInputChanged(){\n this.file = this.fileInput.files[0];\n }\n removeFromString(str,item){\n if(!str){\n return str;\n }\n var items = str.split(';');\n var index = items.indexOf(item);\n if(index >= 0){\n items.splice(index,1);\n }\n return items.join(';')\n }\n addToString(str,item){\n if(!str){\n return item;\n }\n var items = str.split(';');\n var index = items.indexOf(item);\n if(index >= 0){\n return str;\n }else{\n items.push(item);\n return items.join(';');\n }\n }\n getValueState(exclusive,value,field){\n if(value === exclusive){\n return this.state[field] === value;\n }else{\n return (this.state[field] || '').indexOf(value) > -1;\n }\n }\n handleValueChange(exclusive,value,field,checked){\n if(checked){\n if(value === exclusive){\n const temp = {};\n temp[field] = value;\n this.setState(temp);\n }else{\n var vv = this.state[field];\n vv = this.removeFromString(vv,exclusive);\n vv = this.addToString(vv,value);\n const temp = {};\n temp[field] = vv;\n this.setState(temp);\n }\n }else{\n if(value === exclusive){\n const temp = {};\n temp[field] = value;\n this.setState(temp);\n }else{\n const vv = this.removeFromString(this.state[field],value);\n const temp = {};\n temp[field] = vv;\n this.setState(temp);\n }\n }\n }\n createRichTextBox(key){\n const modules = {\n toolbar: [[{ 'size': ['small', false, 'large', 'huge'] }], ['bold', 'italic', 'underline','strike', 'blockquote'],[{'list': 'ordered'}, {'list': 'bullet'}, {'indent': '-1'}, {'indent': '+1'}],['link'],[{'color':[]},{ 'background': [] }],['clean']],\n };\n const formats = ['size','bold', 'italic', 'underline', 'strike', 'blockquote','list', 'bullet', 'indent','link','color','background'];\n return(\n
\n this.setState({AdditionalInformation:value})}/>\n
\n );\n }\n createTextField(label,marginRight = '20em'){\n return ( this.handleContactChange(label,e.target.value)} label={label} value={this.getContactValue(label)}/>)\n }\n getSteps() {\n return ['Please provide contact information', 'Best time to call', 'CastleGarde Services','Additional Information'];\n }\n getStepContent(step) {\n switch (step) {\n case 0:\n return (\n
\n
\n {this.createTextField('First Name','5em')}\n {this.createTextField('Last Name')}\n
\n
\n {this.createTextField('Credit Union Name')} \n
\n
\n {this.createTextField('Street')} \n
\n
\n {this.createTextField('City','5em')}\n {this.createTextField('State')}\n {this.createTextField('Zip')}\n
\n
\n this.handleContactChange('Email',e.target.value)} label={'Email'} \n value={this.getContactValue('Email')}/>\n
\n
\n \n Telephone\n this.handleContactChange('Telephone',e.target.value)}\n />\n \n
\n
\n );\n case 1:\n return (\n
\n \n {['Any Day','Monday','Tuesday','Wednesday','Thursday','Friday'].map(day => (\n \n {this.handleValueChange('Any Day',day,'Day',e.target.checked)}}/>\n \n \n \n \n \n \n \n ))}\n \n \n {['Anytime','Early Morning','Mid Morning','Mid Day','Early Afternoon','Mid Afternoon','Late Afternoon'].map(time => (\n \n {this.handleValueChange('Anytime',time,'Time',e.target.checked)}}/>\n \n \n \n \n \n \n \n ))}\n \n
\n );\n case 2:\n return (\n
\n {[\n ['General Information','Information Security Programs','Risk Assessment Programs','Compliance'],\n ['Policy and Procedures','Penetration Testing','Bank Secrecy','Business Continuity'],\n ['Training','Red Flag Identity Theft','Something else','All the above']\n ].map(serviceArray => (\n \n {serviceArray.map(service => (\n \n {this.handleValueChange('All the above',service,'Service',e.target.checked)}}/>\n \n \n ))}\n \n ))}\n
\n );\n case 3:\n return (\n
\n \n {this.createRichTextBox()}\n
\n \n this.fileInput = ref} type='file' id='file'/>\n
\n
\n );\n default:\n return 'Unknown step';\n }\n }\n handleNext = () => {\n this.setState(state => ({\n activeStep: state.activeStep + 1,\n }));\n };\n \n handleBack = () => {\n this.setState(state => ({\n activeStep: state.activeStep - 1,\n }));\n };\n \n handleReset = () => {\n this.setState({\n activeStep: 0,\n });\n };\n \n handleSubmit = () => {\n axios.get('/api/ri/key')\n .then(response => {\n const id = response.data;\n\n if(this.file){\n let data = new FormData();\n data.append('file',this.file,this.file.name);\n axios.post('api/ri/upload/'+id,\n data,\n {\n headers: {\n 'accept': 'application/json',\n 'Accept-Language': 'en-US,en;q=0.8',\n 'Content-Type': `multipart/form-data; boundary=${data._boundary}`,\n }\n }\n ).then(response => {\n const data = JSON.parse(JSON.stringify(this.state));\n delete data.activeStep;\n \n axios.post('/api/ri/submitinformation/'+id,data)\n .then(response => {\n this.file = null;\n this.infoDialg.show(\"Your request information is sent to CastleGarde successfully, we will contact you soon\",\"SUCCESS\",false);\n this.setState({activeStep:0});\n })\n .catch(this.showAxiosError);\n })\n .catch(error => alert(error.message));\n }else{\n const data = JSON.parse(JSON.stringify(this.state));\n delete data.activeStep;\n \n axios.post('/api/ri/submitinformation/'+id,data)\n .then(response => {\n this.infoDialg.show(\"Your request information is sent to CastleGarde successfully, we will contact you soon\",\"SUCCESS\",false);\n this.setState({activeStep:0});\n })\n .catch(this.showAxiosError);\n }\n })\n .catch(this.showAxiosError);\n };\n isValidateEmail(email){\n const regex = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)/;\n return regex.test(email);\n }\n render(){\n const steps = this.getSteps();\n const { activeStep } = this.state;\n return (\n
\n \n \n Request Information\n \n \n\n \n \n \n \n {steps.map((label, index) => (\n \n {label}\n \n {this.getStepContent(index)}\n
\n
\n \n Back\n \n \n \n
\n
\n
\n
\n ))}\n
\n {activeStep === steps.length && (\n \n All steps completed - you're finished\n \n \n \n )}\n this.infoDialg = ref}/>\n
\n );\n }\n}","import React from 'react';\n\nimport './Groupbox.css';\n\nexport default class Groupbox extends React.Component{\n render(){\n return(\n \n
\n {this.props.header}\n {this.props.children}\n
\n \n );\n }\n}","/**\n * Function to get cursor position\n */\r\nvar ip = require('ip');\r\n\nexport function getRange(el) {\n var cuRange, tbRange, headRange, range, dupRange, ret = {};\n if (el.setSelectionRange) {\n // standard\n ret.begin = el.selectionStart;\n ret.end = el.selectionEnd;\n ret.result = el.value.substring(ret.begin, ret.end);\n } else if (document.selection) {\n // ie\n if (el.tagName.toLowerCase() === 'input') {\n cuRange = document.selection.createRange();\n tbRange = el.createTextRange();\n tbRange.collapse(true);\n tbRange.select();\n headRange = document.selection.createRange();\n headRange.setEndPoint('EndToEnd', cuRange);\n ret.begin = headRange.text.length - cuRange.text.length;\n ret.end = headRange.text.length;\n ret.result = cuRange.text;\n cuRange.select();\n } else if (el.tagName.toLowerCase() === 'textarea') {\n range = document.selection.createRange();\n dupRange = range.duplicate();\n dupRange.moveToElementText(el);\n dupRange.setEndPoint('EndToEnd', range);\n ret.begin = dupRange.text.length - range.text.length;\n ret.end = dupRange.text.length;\n ret.result = range.text;\n }\n }\n el.focus();\n return ret;\n}\n\nexport function isValidIPItemValue(val) {\n val = parseInt(val);\n return !isNaN(val) && val >= 0 && val <= 255;\n}\r\n\r\nexport function calcCount(ipRange) {\r\n if (!ipRange) {\r\n return null;\r\n }\r\n const ss = ipRange.split('-');\r\n if (ss.length > 1) {\r\n const from = ss[0];\r\n const fa = from.split('.');\r\n const to = `${fa[0]}.${fa[1]}.${fa[2]}.${ss[1]}`;\r\n return (ip.toLong(to) - ip.toLong(from)) + 1;\r\n } else if (ss.length === 1) {\r\n return 1;\r\n } else {\r\n alert(`Error: calcCount for : ${ipRange}`);\r\n }\r\n}\r\nfunction isValid(ipRange) {\r\n if (!ipRange) {\r\n return false;\r\n } else\r\n return ip.isV4Format(ipRange.split('-')[0]);\r\n}\r\nexport function getNotation(ipRange) {\r\n if (!ipRange) {\r\n return 'None';\r\n }\r\n const ss = ipRange.split('-');\r\n if (ss.length === 2) {\r\n return 'From To';\r\n } else {\r\n if (ip.isV4Format(ss[0])) {\r\n return 'Single';\r\n } else {\r\n return 'URL';\r\n }\r\n }\r\n}\r\nfunction getFromAndTo(ipRange) {\r\n const ss = ipRange.split('-');\r\n if (ss.length === 1) {\r\n return { from: ipRange, to: ipRange };\r\n } else if (ss.length === 2) {\r\n const from = ss[0];\r\n const fa = from.split('.');\r\n const to = `${fa[0]}.${fa[1]}.${fa[2]}.${ss[1]}`;\r\n return { from, to };\r\n } else {\r\n throw {};\r\n }\r\n}\r\nexport function isOverlay(left, right) {\r\n if (!isValid(left) || !isValid(right)) {\r\n return left === right;\r\n }\r\n const l = getFromAndTo(left);\r\n const r = getFromAndTo(right);\r\n \r\n return !(ip.toLong(l.to) < ip.toLong(r.from) || ip.toLong(l.from) > ip.toLong(r.to));\r\n}\r\n\r\nfunction verifySingle(value) {\n if (!ip.isV4Format(value)) {\n return ' IP is not valid';\n }\n}\nfunction verifyFromTo(value) {\r\n const temp = value.split('-');\r\n const from = temp[0];\r\n const to = temp[1];\r\n if (!ip.isV4Format(from)) {\r\n return { error: '\"FROM\" IP is not valid' };\r\n }\n if (!to || to < 1 || to > 255) {\n return { error: '\"To\" is not valid' };\n }\r\n const fromInt = parseInt(from.split('.')[3]);\r\n const toInt = parseInt(to);\n if (fromInt > toInt) {\n return { error: '\"From\" must be less than \"TO\"' };\n }\n}\nfunction verifyURL() {\n const { url } = this.props;\r\n if (url) {\r\n return { value: url };\r\n } else {\r\n return { error: 'URL is empty' };\r\n }\n}\nexport function verify(format, value) {\n if (format === 'From To') {\r\n return verifyFromTo(value);\r\n } else if (format === 'Single') {\r\n return verifySingle(value);\r\n } else if (format === 'URL') {\r\n return verifyURL(value);\r\n } else {\r\n return 'Not support format :' + format;\r\n }\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getRange, isValidIPItemValue } from './helper';\nimport './style.css';\n\nexport default class IPut extends React.Component {\n /**\n * set default props\n */\n static defaultProps = {\n className: '',\n defaultValue: '...',\n isError: () => false,\n onChange: new Function()\n }\n /**\n * set prop type\n */\n static propTypes = {\n className: PropTypes.string,\n defaultValue: PropTypes.string || PropTypes.array,\n isError: PropTypes.func,\n onChange: PropTypes.func\n }\n /**\n * default state value\n */\n state = {\n value: []\n }\n\n componentDidMount() {\n let { defaultValue: value } = this.props;\n if (!Array.isArray(value)) {\n value = value.split('.');\n }\n this.setState({ value });\n }\n\n /**\n * Change Event\n */\n handleChange(e, i) {\n let val = parseInt(e.target.value);\n if (isNaN(e.target.value)) {\n return e.preventDefault();\n }\n\n if (e.target.value !== '' && !isValidIPItemValue(val)) {\n val = 255;\n }\n\n let value = this.state.value;\n value[i] = val;\n this.setState({ value }, () => this.onPropsChange());\n\n if (!isNaN(val) && String(val).length === 3 && i < 3) {\n this[`_input-${i + 1}`].focus();\n }\n }\n\n /**\n * Keydown Event\n */\n handleKeyDown(e, i) {\n /* 37 = ←, 39 = →, 8 = backspace */\n //alert(e.keyCode);\n let domId = i;\n if ((e.keyCode === 37 || e.keyCode === 8) && getRange(e.target).end === 0 && i > 0) { domId = i - 1; }\n if ((e.keyCode === 39 || e.keyCode === 190) && getRange(e.target).end === e.target.value.length && i < 3) { domId = i + 1; }\n this[`_input-${domId}`].focus();\n }\n\n /**\n * Paste Event\n */\n handlePaste(e, i) {\n if (!e.clipboardData || !e.clipboardData.getData) {\n return;\n }\n\n const pasteData = e.clipboardData.getData('text/plain');\n if (!pasteData) {\n return;\n }\n\n const value = pasteData.split('.').map(v => parseInt(v));\n if (value.length !== 4 - i) {\n return;\n }\n\n if (!value.every(isValidIPItemValue)) {\n return;\n }\n\n const { value: oldValue } = this.state;\n value.forEach((val, j) => {\n oldValue[i + j] = val;\n });\n\n this.setState({ value: oldValue }, () => this.onPropsChange());\n return e.preventDefault();\n }\n\n /**\n * call change props\n */\n onPropsChange() {\n const { value } = this.state;\n const ip = value.map(val => isNaN(val) ? '' : val).join('.');\n return this.props.onChange(ip);\n }\n\n render() {\n const { value } = this.state;\n const ip = value.map(val => isNaN(val) ? '' : val).join('.');\n\n const className = [\n 'react-ip-input',\n this.props.className,\n this.props.isError(ip) ? 'has-error' : ''\n ].join(' ');\n\n return (\n
\n {value.map((val, i) =>\n
\n this[`_input-${i}`] = el}\n type=\"text\"\n value={isNaN(val) ? '' : val}\n onChange={e => this.handleChange(e, i)}\n onKeyDown={e => this.handleKeyDown(e, i)}\n onPaste={e => this.handlePaste(e, i)}\n />\n {i !== 3 ? . : false}\n
\n )}\n
\n );\n }\n}","import React from 'react';\n\nimport './style.css';\n\nexport default class CidrInput extends React.Component{\n constructor(props){\n super(props);\n\n this.state = {value:''};\n this.onChange = this.onChange.bind(this);\n }\n onChange(e){\n const intValue = parseInt(e.target.value);\n if(intValue > 0 && intValue <= 32){\n this.setState({value:intValue});\n \n if(this.props.onChange){\n this.props.onChange(intValue);\n }\n }else{\n this.setState({value:''});\n if(this.props.onChange){\n this.props.onChange(intValue);\n }\n }\n }\n render(){\n return (\n
\n \n
\n );\n }\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getRange, isValidIPItemValue } from './helper';\nimport './style.css';\n\nexport default class WildcardInput extends React.Component {\n /**\n * set default props\n */\n static defaultProps = {\n className: '',\n defaultValue: '...',\n isError: () => false,\n onChange: new Function()\n }\n /**\n * set prop type\n */\n static propTypes = {\n className: PropTypes.string,\n defaultValue: PropTypes.string || PropTypes.array,\n isError: PropTypes.func,\n onChange: PropTypes.func\n }\n /**\n * default state value\n */\n state = {\n value: []\n }\n\n componentDidMount() {\n let { defaultValue: value } = this.props;\n if (!Array.isArray(value)) {\n value = value.split('.');\n }\n this.setState({ value });\n }\n\n /**\n * Change Event\n */\n handleChange(e, i) {\n if(e.target.value === '*'){\n if(i === 3){\n let value = this.state.value;\n value[3] = '*';\n this.setState({ value }, () => this.onPropsChange());\n return;\n }\n else{\n return e.preventDefault();\n }\n }\n\n let val = parseInt(e.target.value);\n if (isNaN(e.target.value)) {\n return e.preventDefault();\n }\n\n if (e.target.value !== '' && !isValidIPItemValue(val)) {\n val = 255;\n }\n\n let value = this.state.value;\n value[i] = val;\n this.setState({ value }, () => this.onPropsChange());\n\n if (!isNaN(val) && String(val).length === 3 && i < 3) {\n this[`_input-${i + 1}`].focus();\n }\n }\n\n /**\n * Keydown Event\n */\n handleKeyDown(e, i) {\n /* 37 = ←, 39 = →, 8 = backspace */\n //190 = .\n //alert(e.keyCode);\n let domId = i;\n if ((e.keyCode === 37 || e.keyCode === 8) && getRange(e.target).end === 0 && i > 0) { domId = i - 1; }\n if ((e.keyCode === 39 || e.keyCode === 190) && getRange(e.target).end === e.target.value.length && i < 3) { domId = i + 1; }\n this[`_input-${domId}`].focus();\n }\n\n /**\n * Paste Event\n */\n handlePaste(e, i) {\n if (!e.clipboardData || !e.clipboardData.getData) {\n return;\n }\n\n const pasteData = e.clipboardData.getData('text/plain');\n if (!pasteData) {\n return;\n }\n\n const value = pasteData.split('.').map(v => parseInt(v));\n if (value.length !== 4 - i) {\n return;\n }\n\n if (!value.every(isValidIPItemValue)) {\n return;\n }\n\n const { value: oldValue } = this.state;\n value.forEach((val, j) => {\n oldValue[i + j] = val;\n });\n\n this.setState({ value: oldValue }, () => this.onPropsChange());\n return e.preventDefault();\n }\n\n /**\n * call change props\n */\n onPropsChange() {\n const { value } = this.state;\n const ip = value.map(val => isNaN(val) ? '' : val).join('.');\n return this.props.onChange(ip);\n }\n\n render() {\n const { value } = this.state;\n const ip = value.map(val => isNaN(val) ? '' : val).join('.');\n\n const className = [\n 'react-ip-input',\n this.props.className,\n this.props.isError(ip) ? 'has-error' : ''\n ].join(' ');\n\n return (\n
\n {value.map((val, i) =>\n
\n this[`_input-${i}`] = el}\n type=\"text\"\n value={(isNaN(val) && val !== '*' )? '' : val}\n onChange={e => this.handleChange(e, i)}\n onKeyDown={e => this.handleKeyDown(e, i)}\n onPaste={e => this.handlePaste(e, i)}\n />\n {i !== 3 ? . : false}\n
\n )}\n
\n );\n }\n}","import React from 'react';\n\nimport './style.css';\n\nexport default class UrlInput extends React.Component{\n constructor(props){\n super(props);\n\n this.state = {value:''};\n this.onChange = this.onChange.bind(this);\n }\n onChange(e){\n this.setState({ value: e.target.value });\r\n if (this.props.onChange) {\r\n this.props.onChange(e.target.value);\r\n }\n }\n render(){\n return (\n
\n \n
\n );\n }\n}","import React from 'react';\n\nimport './style.css';\n\nexport default class ToInput extends React.Component{\n constructor(props){\n super(props);\n\n this.state = {value:''};\n this.onChange = this.onChange.bind(this);\n }\n onChange(e){\n const intValue = parseInt(e.target.value);\n if(intValue > 0 && intValue <= 255){\n this.setState({value:intValue});\n \n if(this.props.onChange){\n this.props.onChange(intValue);\n }\n }else{\n this.setState({value:''});\n if(this.props.onChange){\n this.props.onChange(intValue);\n }\n }\n }\n render(){\n return (\n
\n \n
\n );\n }\n}","import React, {Component} from 'react';\n\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport Chip from '@material-ui/core/Chip';\n\nimport IPut from './iput/src/index';\nimport CidrInput from './iput/src/CidrInput';\nimport WildcardInut from './iput/src/WildcardInput';\nimport UrlInput from './iput/src/UrlInput';\nimport ToInput from './iput/src/ToInput';\n\n\nimport { getNotation } from './iput/src/helper';\n\n\n\nexport default class HostsInput extends React.Component{\n constructor(props){\n super(props);\n\n this.Format = this.Format.bind(this);\n }\n Format(props) {\n const {my, children, format, ...other } = props;\n \n return (\n \n );\n }\n render() {\n var {format, value,onChange } = this.props;\n var from, to;\n if (value) {\n format = format? format : getNotation(value);\n if (format === 'Single' || format === 'URL') {\n from = value;\n } else if (format === 'From To') {\n if (value) {\n const ss = value.split('-');\n from = ss[0];\n to = ss[1];\n }\n }\n } else if (!format) {\n format = 'Single';\n }\n\n return(\n
\n \n \n onChange(format,p)} />\n \n \n \n onChange(format,`${p}-${to}`)} />\n \n onChange(format,`${from}-${p}`)} />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n onChange(format, p)} />\n \n
\n );\n }\n}","import React from 'react';\n\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\n\nimport {calcCount} from './iput/src/helper';\n\nexport default class HostsTable2 extends React.Component {\n \n render() {\n const { selected } = this.props;\n return (\n
\n \n \n \n Value\n Count\n \n \n \n {this.props.data.map(row => (\n {\n if (this.props.onSelect) {\n this.props.onSelect(row);\n }\n }}>\n \n {row}\n \n {calcCount(row)}\n\n \n ))}\n \n \n
\n
\n );\n }\n}","import React from 'react';\n\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\n\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableRow from '@material-ui/core/TableRow';\r\n\r\nimport { calcCount, verify } from './iput/src/helper';\n\nvar ip = require('ip');\n\nexport default class Validation extends React.Component {\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {count:null,error:null}\r\n }\r\n run(format, value) {\r\n const error = verify(format, value);\r\n var count;\r\n if (!error) {\r\n count = calcCount(value);\r\n }\r\n this.setState({ count, error });\r\n if (this.props.onValidate) {\r\n this.props.onValidate(!error);\r\n }\r\n }\n render() {\r\n const { error, count } = this.state;\n return (\n \n \n \n\n \n );\n }\n}","import React from 'react';\r\n\r\nimport Groupbox from '../core/Groupbox';\r\nimport HostsInput from './HostsInput';\r\n//import HostsTable from './HostsTable';\r\nimport HostsTable2 from './HostsTable2';\r\nimport Validation from './Validation';\r\nimport { isOverlay, getNotation } from './iput/src/helper';\r\n\r\nfunction removeFromArray(items, item) {\r\n var index = items.indexOf(item);\r\n if (index >= 0) {\r\n items.splice(index, 1);\r\n }\r\n}\r\n\r\nexport default class HostsTab extends React.Component{\r\n constructor(props){\r\n super(props);\r\n\r\n this.state = {\r\n includeSelected: null, excludeSelected: null, format: null, value: null,\r\n isValid:false};\r\n\r\n this.checkOverlay = this.checkOverlay.bind(this);\r\n this.checkOverlayAll = this.checkOverlayAll.bind(this);\r\n }\r\n checkOverlay(toAdd, target) {\r\n if (isOverlay(toAdd, target)) {\r\n return `${toAdd} is overlay with ${target}`;\r\n } else {\r\n return null;\r\n }\r\n }\r\n checkOverlayAll(toAdd, targetArray) {\r\n for (let target of targetArray) {\r\n const overlayCheck = this.checkOverlay(toAdd, target);\r\n if (overlayCheck) {\r\n return overlayCheck;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n onEvent(ribbonTitle, groupTitle, itemTitle) {\r\n const { include, exclude } = this.props;\r\n const { includeSelected, excludeSelected, value, isValid } = this.state;\r\n if (groupTitle === 'IP Entry Format') {\r\n this.setState({ format: itemTitle, value: null });\r\n }else if(groupTitle === 'Apply Entry'){\r\n if (itemTitle === 'Add') {\r\n if (!isValid) {\r\n alert('Not valid');\r\n return;\r\n }\r\n if (value) {\r\n const overlayCheck = this.checkOverlayAll(value, include);\r\n if (overlayCheck) {\r\n alert(overlayCheck);\r\n } else {\r\n include.push(value);\r\n this.onChange(include, exclude);\r\n }\r\n }\r\n } else if (itemTitle === 'Exclude') {\r\n if (!isValid) {\r\n alert('Not valid');\r\n return;\r\n }\r\n if (value) {\r\n const overlayCheck = this.checkOverlayAll(value, exclude);\r\n if (overlayCheck) {\r\n alert(overlayCheck);\r\n } else {\r\n exclude.push(value);\r\n this.onChange(include, exclude);\r\n }\r\n }\r\n } else if (itemTitle === 'Delete') {\r\n if (includeSelected) {\r\n removeFromArray(include, includeSelected);\r\n } else if (excludeSelected) {\r\n removeFromArray(exclude, excludeSelected);\r\n }\r\n\r\n this.onChange(include, exclude);\r\n }\r\n }\r\n }\r\n onChange(include, exclude) {\r\n this.setState({ include, exclude });\r\n if (this.props.onChange) {\r\n this.props.onChange(include, exclude);\r\n }\r\n }\r\n render() {\r\n const { include, exclude } = this.props;\r\n const { includeSelected, excludeSelected, format, value } = this.state;\r\n return (\r\n
\r\n
\r\n this.hostsInput = ref} onChange={(format, value) => {\r\n this.setState({ format, value });\r\n this.validator.run(format,value);\r\n }\r\n } />\r\n this.validator = ref}\r\n value={value}\r\n onValidate={isValid => this.setState({ isValid })} />\r\n
\r\n \r\n
\r\n \r\n {\r\n const notation = getNotation(row);\r\n this.setState({ includeSelected: row, excludeSelected:null })\r\n }}\r\n data={include} />\r\n \r\n \r\n {\r\n const notation = getNotation(row);\r\n this.setState({ includeSelected: null, excludeSelected:row })\r\n }}\r\n data={exclude} />\r\n \r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\n\r\nimport axios from 'axios';\r\n\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport Button from '@material-ui/core/Button';\r\nimport Paper from '@material-ui/core/Paper';\r\n\r\nimport Input from '@material-ui/core/Input';\r\nimport MaskedInput from 'react-text-mask';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TelephoneIcon from '@material-ui/icons/ContactPhone';\r\nimport EmailIcon from '@material-ui/icons/ContactMail';\r\nimport ClientIcon from '@material-ui/icons/AccountBalance';\r\nimport PeopleIcon from '@material-ui/icons/People';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport ExcludeIcon from '@material-ui/icons/RemoveCircleOutline';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport SignerEmailIcon from '@material-ui/icons/EmailOutlined';\r\nimport SignerTitleIcon from '@material-ui/icons/Title';\r\n\r\nimport HostsTab from './HostsTab';\r\n\r\nimport 'react-quill/dist/quill.snow.css'; // ES6\r\n\r\nfunction validateEva(eva) {\r\n const r = [];\r\n if (!eva.clientName) {\r\n r.push(\"Credit Union Name is empty\");\r\n }\r\n if (!eva.contactName) {\r\n r.push(\"Contact Name is empty\");\r\n }\r\n if (!eva.telephone) {\r\n r.push(\"Contact Telephone is empty\");\r\n }\r\n if (!eva.email) {\r\n r.push(\"Contact Email is empty\");\r\n }\r\n if (!eva.signerName) {\r\n r.push(\"Signer Name is empty\");\r\n }\r\n if (!eva.signerEmail) {\r\n r.push(\"Signer Email is empty\");\r\n }\r\n if (!eva.include) {\r\n r.push(\"Publis IP Addresses is empty\");\r\n }\r\n if (r.length > 0) {\r\n return r.join('\\n');\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction TextMaskCustom(props) {\r\n const { inputRef, ...other } = props;\r\n \r\n return (\r\n {\r\n inputRef(ref ? ref.inputElement : null);\r\n }}\r\n mask={['(', /[1-9]/, /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]}\r\n placeholderChar={'\\u2000'}\r\n showMask\r\n />\r\n );\r\n }\r\n\r\nexport class EvaWaiver extends React.Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n activeStep: 1, eva: {},Contact:{},Day:'Any Day',Time:'Anytime',Service:'General Information'};\r\n\r\n this.getContactValue = this.getContactValue.bind(this);\r\n this.handleContactChange = this.handleContactChange.bind(this);\r\n\r\n this.handleValueChange = this.handleValueChange.bind(this);\r\n this.fileInputChanged = this.fileInputChanged.bind(this);\r\n\r\n this.showAxiosError = this.showAxiosError.bind(this);\r\n }\r\n showAxiosError(error){\r\n if(error.response && error.response.data){\r\n this.infoDialog.show(error.response.data,\"ERROR: \" +error.response.status,true);\r\n }else{\r\n this.infoDialog.show(JSON.stringify(error),\"ERROR\",true);\r\n }\r\n }\r\n getContactValue(field){\r\n return this.state.Contact[field];\r\n }\r\n handleContactChange = (field,value) => {\r\n const temp = this.state.Contact;\r\n temp[field] = value;\r\n this.setState({Contact:temp});\r\n }\r\n fileInputChanged(){\r\n this.file = this.fileInput.files[0];\r\n }\r\n removeFromString(str,item){\r\n if(!str){\r\n return str;\r\n }\r\n var items = str.split(';');\r\n var index = items.indexOf(item);\r\n if(index >= 0){\r\n items.splice(index,1);\r\n }\r\n return items.join(';')\r\n }\r\n addToString(str,item){\r\n if(!str){\r\n return item;\r\n }\r\n var items = str.split(';');\r\n var index = items.indexOf(item);\r\n if(index >= 0){\r\n return str;\r\n }else{\r\n items.push(item);\r\n return items.join(';');\r\n }\r\n }\r\n getValueState(exclusive,value,field){\r\n if(value === exclusive){\r\n return this.state[field] === value;\r\n }else{\r\n return (this.state[field] || '').indexOf(value) > -1;\r\n }\r\n }\r\n handleValueChange(exclusive,value,field,checked){\r\n if(checked){\r\n if(value === exclusive){\r\n const temp = {};\r\n temp[field] = value;\r\n this.setState(temp);\r\n }else{\r\n var vv = this.state[field];\r\n vv = this.removeFromString(vv,exclusive);\r\n vv = this.addToString(vv,value);\r\n const temp = {};\r\n temp[field] = vv;\r\n this.setState(temp);\r\n }\r\n }else{\r\n if(value === exclusive){\r\n const temp = {};\r\n temp[field] = value;\r\n this.setState(temp);\r\n }else{\r\n const vv = this.removeFromString(this.state[field],value);\r\n const temp = {};\r\n temp[field] = vv;\r\n this.setState(temp);\r\n }\r\n }\r\n }\r\n isValidateEmail(email){\r\n const regex = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)/;\r\n return regex.test(email);\r\n }\r\n render(){\r\n const { activeStep,eva } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n CastleGarde External Vulnerability Assessment/Penetration Testing (EVA/PT) Waiver\r\n \r\n \r\n \r\n \r\n \r\n \r\n Credit Union Name\r\n {\r\n eva.clientName = event.target.value;\r\n this.setState({ eva });\r\n }}\r\n startAdornment={\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n Contact Name\r\n {\r\n eva.contactName = event.target.value;\r\n //if (!eva.signerName) {\r\n eva.signerName = event.target.value;\r\n //}\r\n this.setState({ eva });\r\n }}\r\n startAdornment={\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Contact Telephone\r\n {\r\n eva.telephone = event.target.value;\r\n this.setState({ eva });\r\n }}\r\n startAdornment={\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n Contact Email\r\n {\r\n eva.email = event.target.value;\r\n //if (!eva.signerEmail) {\r\n eva.signerEmail = event.target.value;\r\n //}\r\n this.setState({ eva });\r\n }}\r\n startAdornment={\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n Signer Name\r\n {\r\n eva.signerName = event.target.value;\r\n this.setState({ eva });\r\n }}\r\n startAdornment={\r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n Signer Title\r\n {\r\n eva.signerTitle = event.target.value;\r\n this.setState({ eva });\r\n }}\r\n startAdornment={\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n Signer Email\r\n {\r\n eva.signerEmail = event.target.value;\r\n this.setState({ eva });\r\n }}\r\n startAdornment={\r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n |\r\n \r\n |\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.hostsTab = ref}\r\n include={eva.include ? eva.include.split(',') : []}\r\n exclude={eva.exclude ? eva.exclude.split(',') : []}\r\n onChange={(include, exclude) => {\r\n eva.include = include.join(',');\r\n eva.exclude = exclude.join(',');\r\n this.setState({ eva });\r\n }} />\r\n \r\n \r\n \r\n {/*\r\n */}\r\n \r\n
\r\n );\r\n }\r\n}","import React from \"react\";\r\nimport {Box, Collapse, IconButton} from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport {Close} from '@material-ui/icons';\r\n\r\nexport function ErrorBar(props){\r\n const {error,onClear} = props;\r\n\r\n return (\r\n \r\n \r\n {\r\n if(onClear){\r\n onClear();\r\n }\r\n }}\r\n >\r\n \r\n \r\n }\r\n sx={{ mb: 2 }}\r\n >\r\n {(error || '').substring(0,100)}\r\n \r\n\r\n \r\n \r\n );\r\n}\r\n\r\nexport function MessageBar(props){\r\n const {message,onClear} = props;\r\n\r\n return (\r\n \r\n \r\n {\r\n if(onClear){\r\n onClear();\r\n }\r\n }}\r\n >\r\n \r\n \r\n }\r\n sx={{ mb: 2 }}\r\n >\r\n {(message || '').substring(0,100)}\r\n \r\n\r\n \r\n \r\n );\r\n}","import React from 'react';\r\nimport {IconButton, TextField, Toolbar, Tooltip, Typography} from '@material-ui/core';\r\nimport {\r\n AddBox,\r\n AddCircleOutlineOutlined,\r\n Adjust,\r\n DeleteForeverRounded,\r\n PlayCircleFilledOutlined,\r\n StopRounded\r\n} from '@material-ui/icons'\r\nimport DownloadAllIcon from \"@material-ui/icons/CloudDownloadTwoTone\";\r\nimport EmailIcon from \"@material-ui/icons/ContactMail\";\r\nimport {ClearAllTwoTone} from \"@mui/icons-material\";\r\n\r\nexport function WaiversToolbar(props){\r\n const {\r\n newEvaWaiver, isAllowNewEvaWaiver,\r\n onClientFilter\r\n } = props;\r\n\r\n return \r\n CastleGarde Waivers\r\n\r\n onClientFilter(e.target.value)}\r\n variant='outlined' />\r\n\r\n {\r\n isAllowNewEvaWaiver ?\r\n
\r\n : ''\r\n }\r\n \r\n
\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle} from \"@material-ui/core\";\r\n\r\nexport default function AlertDialog(props) {\r\n const {onDock} = props;\r\n const [open,setOpen] = useState(false);\r\n const [title,setTitle] = useState(null);\r\n const [message, setMessage] = useState(null);\r\n const [onOk, setOnOk] = useState(() => () => alert(\"no onOk set\"));\r\n const show = (title, message, onOk) => {\r\n setOpen(true);\r\n setTitle(title);\r\n setMessage(message);\r\n setOnOk(() => onOk)\r\n };\r\n\r\n useEffect(() => {\r\n onDock(show);\r\n },[]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return (\r\n
\r\n setOpen(false)}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n \r\n {title}\r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {\r\n Button,\r\n Chip,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n Table,\r\n TableCell,\r\n TableRow\r\n} from \"@material-ui/core\";\r\n\r\nimport { EvaWaiver } from \"./EvaWaiver\";\r\n\r\nexport function EvaWaiverDialog(props){\r\n const {onDock} = props;\r\n const [open,setOpen] = useState(false);\r\n const [onOk, setOnOk] = useState(() => () => alert(\"no onOk set\"));\r\n const [evaWaiver,setEvaWaiver] = useState(false);\r\n const show = (evaWaiver, onOk) => {setOpen(true); setEvaWaiver(evaWaiver); setOnOk(() => onOk)};\r\n\r\n useEffect(() => {\r\n onDock(show);\r\n },[]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return setOpen(false)} \r\n fullWidth maxWidth=\"lg\"\r\n >\r\n New Waiver\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n}","import React, {useEffect, useState} from \"react\";\r\nimport axios from 'axios';\r\n\r\nimport Groupbox from \"../core/Groupbox\";\r\n\r\nimport { IconButton, Typography, Tooltip, TextField, List, ListItem,\r\nListItemText } from '@material-ui/core';\r\n\r\nimport {Add, PersonAdd, PersonAddDisabled, Remove} from '@material-ui/icons';\r\n\r\nimport {ErrorBar, MessageBar} from \"../phish2/Bars\";\r\n\r\nimport { WaiversToolbar } from \"./WaiversToolbar\";\r\n\r\nimport AlertDialog from \"../phish2/AlertDialog\";\r\nimport {EvaWaiverDialog} from \"./EvaWaiverDialog\";\r\n\r\nexport function Waivers(props){\r\n const [isAdmin, setIsAdmin] = useState(false);\r\n const [error, setError] = useState(null);\r\n const [docxClients,setDocxClients] = useState([]);\r\n const [clientFilter,setClientFilter] = useState(null);\r\n const [client,setClient] = useState(null);\r\n\r\n const [showAlertDialog, setShowAlertDialog] = useState(() => () =>\r\n alert('no show alert dialog docked'));\r\n\r\n const [showEvaWaiverDialog, setShowEvaWaiverDialog] = useState(() => () =>\r\n alert('no show alert dialog docked'));\r\n\r\n const displayError = error => {\r\n if (error.response) {\r\n setError(error.response.status + ' ' + error.response.data);\r\n } else if(error.message) {\r\n setError(error.message);\r\n } else{\r\n setError(error);\r\n }\r\n }\r\n\r\n const filterClients = (clients,filter) => {\r\n let r = clients;\r\n if(!r ){\r\n return r;\r\n }\r\n if(filter){\r\n r = clients.filter(p => (p.title && p.title.toUpperCase().startsWith(filter.toUpperCase())));\r\n }\r\n r.sort((a,b) => {\r\n if(a.title > b.title){\r\n return 1;\r\n }\r\n if(a.title < b.title){\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n\r\n return r;\r\n };\r\n const loadIsAdmin = () => {\r\n axios.get('api/phish/isAdmin')\r\n .then(response => {\r\n setIsAdmin(response.data);\r\n })\r\n .catch(() => setIsAdmin(false));\r\n }\r\n const loadClients = () => {\r\n const url = 'api/waivers/docxClients';\r\n axios.get(url)\r\n .then(response => setDocxClients(response.data))\r\n .catch(displayError)\r\n }\r\n useEffect(loadIsAdmin, []);\r\n useEffect(loadClients,[])\r\n\r\n if(!isAdmin){\r\n return '';\r\n }\r\n\r\n return
\r\n setError(null)}/>\r\n setClientFilter(value)}\r\n isAllowNewEvaWaiver={true}\r\n newEvaWaiver={() => showEvaWaiverDialog()}\r\n />\r\n
\r\n
\r\n \r\n {\r\n filterClients(docxClients,clientFilter).map(docxClient =>\r\n setClient(docxClient)} dense button>\r\n {docxClient.title + docxClient.id}\r\n )\r\n \r\n } \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n setShowAlertDialog(() => show)}/>\r\n setShowEvaWaiverDialog(() => show)}/>\r\n
\r\n}","import React from 'react';\r\nimport {IconButton, TextField, Toolbar, Tooltip, Typography} from '@material-ui/core';\r\nimport {\r\n AddBox,\r\n AddCircleOutlineOutlined,\r\n Adjust,\r\n DeleteForeverRounded,\r\n PlayCircleFilledOutlined,\r\n StopRounded\r\n} from '@material-ui/icons'\r\nimport DownloadAllIcon from \"@material-ui/icons/CloudDownloadTwoTone\";\r\nimport EmailIcon from \"@material-ui/icons/ContactMail\";\r\nimport {ClearAllTwoTone} from \"@mui/icons-material\";\r\n\r\nexport function PhishToolbar(props){\r\n const {\r\n sendTemplate,\r\n clearTargets,\r\n newRse,isAllowNewRse, newCampaign, isAllowNewCampaign,\r\n deleteRse, isAllowDeleteRse,\r\n isAllowClearTargets,\r\n isAllowEditCampaign, editCampaign,\r\n isAllowStart, startCampaign,\r\n isAllowStop, stopCampaign,\r\n isAllowDeleteCampaign, deleteCampaign,\r\n isAllowReport, reportCampaign,\r\n onClientFilter\r\n } = props;\r\n\r\n return \r\n CastleGarde RSE\r\n\r\n
\r\n\r\n onClientFilter(e.target.value)}\r\n variant='outlined' />\r\n\r\n {\r\n isAllowNewRse ?\r\n
\r\n : ''\r\n }\r\n {\r\n isAllowDeleteRse ?\r\n
\r\n : ''\r\n }\r\n {\r\n isAllowClearTargets?\r\n
\r\n \r\n
:''\r\n }\r\n {\r\n isAllowNewCampaign ?\r\n
\r\n : ''\r\n }\r\n {\r\n isAllowEditCampaign ?\r\n
\r\n : ''\r\n }\r\n {\r\n isAllowStart ?\r\n
\r\n : ''\r\n }\r\n {\r\n isAllowStop ?\r\n
\r\n : ''\r\n }\r\n {\r\n isAllowDeleteCampaign ?\r\n
\r\n : ''\r\n }\r\n {\r\n isAllowReport ?\r\n
\r\n : ''\r\n }\r\n
\r\n}","class DateHelper{\r\n addYears(date,years){\r\n return new Date(date.getFullYear() + parseInt(years,10),date.getMonth(),date.getDate());\r\n }\r\n addDays(date,days){\r\n if(date){\r\n return new Date(date.getTime() + 24*60*60*1000*days);\r\n }else{\r\n return null;\r\n }\r\n }\r\n addHours(date,hours){\r\n return new Date(date.getTime() + 60*60*1000*hours);\r\n }\r\n addFiscalYear(date,years){\r\n return this.addDays(this.addYears(date,years),-1);\r\n }\r\n //mm/dd/yy\r\n toShortDate(dateStr) {\r\n if(!dateStr){\r\n return '';\r\n }\r\n var date = this.toDate(dateStr);\r\n return (date.getMonth() + 1) + '/' + date.getDate()+ '/' + (date.getFullYear() - 2000);\r\n }\r\n //mm/dd/yyyy\r\n toShortDateForCrm(dateStr) {\r\n if (!dateStr) {\r\n return '';\r\n }\r\n var date = this.toDate(dateStr);\r\n return (date.getMonth() + 1) + '/' + date.getDate() + '/' + (date.getFullYear());\r\n }\r\n toShortDateIgnoreTimezone(dateStr) {\r\n if (!dateStr) {\r\n return '';\r\n }\r\n return this.toShortDate(this.addHours(this.toDate(dateStr), 9));\r\n }\r\n\r\n //hh:mm\r\n toShortTime(dateStr){\r\n if(!dateStr){\r\n return '';\r\n }\r\n var dt = this.toDate(dateStr);\r\n return this.pad(dt.getHours())+':'+this.pad(dt.getMinutes());\r\n }\r\n //hh:mm PM AM\r\n toShortTimeForCrm(dateStr) {\r\n if (!dateStr) {\r\n return '';\r\n }\r\n var dt = this.toDate(dateStr);\r\n return this.pad((dt.getHours() + 24) % 12 || 12)\r\n + ':' + this.pad(dt.getMinutes())\r\n + '' + (dt.getHours() >= 12 ? 'PM' : 'AM');\r\n }\r\n \r\n toShortDateRange(StartStr,EndStr){\r\n if(!StartStr){\r\n return '';\r\n }\r\n return this.toShortDate(StartStr) + '-' + this.toShortDate(EndStr);\r\n }\r\n toShortDateRangeIgnoreTimezone(startStr, endStr) {\r\n if (!startStr) {\r\n return '';\r\n } else if (!endStr) {\r\n return '';\r\n } else {\r\n return this.toShortDate(this.addHours(this.toDate(startStr), 9)) + '-' + this.toShortDate(this.addHours(this.toDate(endStr), 9));\r\n }\r\n }\r\n //9 => 09\r\n //11 => 11\r\n pad(number) {\r\n if ( number < 10 ) {\r\n return '0' + number;\r\n }\r\n return number;\r\n }\r\n //yyyy-mm-ddThh:mm\r\n toESTString(dateStr) {\r\n if(!dateStr){\r\n return ''\r\n }\r\n let dt = this.toDate(dateStr);\r\n return dt.getFullYear() +\r\n '-' + this.pad( dt.getMonth() + 1 ) +\r\n '-' + this.pad( dt.getDate() ) +\r\n 'T' + this.pad( dt.getHours() ) +\r\n ':' + this.pad( dt.getMinutes() )\r\n };\r\n //yyyy-mm-dd\r\n toESTDateString(dateStr) {\r\n if(!dateStr){\r\n return ''\r\n }\r\n let dt = this.toDate(dateStr);\r\n return dt.getFullYear() +\r\n '-' + this.pad( dt.getMonth() + 1 ) +\r\n '-' + this.pad( dt.getDate() ) \r\n };\r\n //yyyy-mm-ddThh:mm.sssZ\r\n toESTString2(dateStr) {\r\n if(!dateStr){\r\n return ''\r\n }\r\n let dt = this.toDate(dateStr);\r\n return dt.getFullYear() +\r\n '-' + this.pad( dt.getMonth() + 1 ) +\r\n '-' + this.pad( dt.getDate() ) +\r\n 'T' + this.pad( dt.getHours() ) +\r\n ':' + this.pad( dt.getMinutes() ) +\r\n ':' + this.pad( dt.getSeconds() ) +\r\n '.' + (dt.getMilliseconds() / 1000).toFixed(3).slice(2, 5) +\r\n 'Z';\r\n };\r\n toDate(obj){\r\n if(!obj){\r\n return null;\r\n }\r\n if(typeof obj === 'string'){\r\n if(obj.endsWith('Z')){\r\n return new Date(obj);\r\n }else{\r\n //return new Date(obj+'Z');\r\n return new Date(obj);\r\n }\r\n }else if(typeof obj.getMonth === 'function'){\r\n return obj;\r\n }else{\r\n return null;\r\n }\r\n }\r\n isMoreThanOneDay(start,end){\r\n if(!start){\r\n return false;\r\n }\r\n if(!end){\r\n return false;\r\n }\r\n start = this.toDate(start);\r\n end = this.toDate(end);\r\n const span = end.getTime() - start.getTime();\r\n const result = span >= 24*60*60*1000;\r\n return result;\r\n }\r\n //mm/dd/yy hh:mm\r\n toShortDateTime(dateStr) {\r\n if (!dateStr) {\r\n return '';\r\n }\r\n const date = this.toDate(dateStr);\r\n if(!date){\r\n return '';\r\n }\r\n return (date.getMonth() + 1) + '/' + date.getDate() + '/' + (date.getFullYear() - 2000)\r\n + ' ' + this.pad(date.getHours()) + ':' + this.pad(date.getMinutes());\r\n }\r\n toRoundDate(obj){\r\n if(!obj){\r\n return null;\r\n }\r\n const dt = this.toDate(obj);\r\n return new Date(dt.getFullYear(),dt.getMonth(),dt.getDate(),0,0);\r\n }\r\n roundDateForService(service) {\r\n if (!service) {\r\n return;\r\n }\r\n if (!service.start || !service.end) {\r\n return;\r\n }\r\n \r\n const dtStart = this.toDate(service.start);\r\n const dtEnd = this.toDate(service.end);\r\n\r\n if ((dtStart.getFullYear() === dtEnd.getFullYear()) &&\r\n (dtStart.getMonth() === dtEnd.getMonth()) &&\r\n (dtStart.getDate() === dtEnd.getDate())){\r\n service.start = new Date(dtStart.getFullYear(), dtStart.getMonth(), dtStart.getDate(), 0, 0);\r\n service.end = new Date(dtEnd.getFullYear(), dtEnd.getMonth(), dtEnd.getDate(), 0, 0);\r\n }\r\n else {\r\n service.start = new Date(dtStart.getFullYear(), dtStart.getMonth(), dtStart.getDate(), 0, 1);\r\n service.end = new Date(dtEnd.getFullYear(), dtEnd.getMonth(), dtEnd.getDate(), 0, 1);\r\n }\r\n }\r\n isWithinTwoWeeks(d) {\r\n if (!d) {\r\n return false;\r\n }\r\n d = this.toDate(d);\r\n let now = new Date();\r\n let span = d.getTime() - now.getTime();\r\n if (span < 14 * 24 * 60 * 60 * 1000 && span >= 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n isWithinEightHours(d) {\r\n const minutes = this.howManyMinutesToNow(d);\r\n if (!minutes) {\r\n return false;\r\n }\r\n if (minutes < 8 * 60 && minutes >= 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n isWithinPastThreeDays(d) {\r\n const minutes = this.howManyMinutesToNow(d);\r\n if (!minutes) {\r\n return false;\r\n }\r\n if (minutes < 0 && minutes >= -3 * 24 * 60) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n howManyMinutesToNow(d) {\r\n if (!d) {\r\n return null;\r\n }\r\n d = this.toDate(d);\r\n let now = new Date();\r\n let span = d.getTime() - now.getTime();\r\n return span / (1000 * 60);\r\n }\r\n howLongToNow(d) {\r\n const minutes = this.howManyMinutesToNow(d);\r\n if (!minutes) {\r\n return null;\r\n }\r\n if (minutes < 60) {\r\n return Math.round(minutes) + ' Mins';\r\n } else if (minutes < 24 * 60) {\r\n return Math.round(minutes / 60) + ' Hours';\r\n } else {\r\n return Math.round(minutes / (24 * 60)) + ' Days';\r\n }\r\n }\r\n compare(obj1,obj2){\r\n if(!obj1){\r\n return 0;\r\n }\r\n if(!obj2){\r\n return 0;\r\n }\r\n const d1 = this.toDate(obj1);\r\n const d2 = this.toDate(obj2);\r\n if(d1 > d2){\r\n return 1;\r\n }else if(d1 < d2){\r\n return -1;\r\n }else{\r\n return 0;\r\n }\r\n }\r\n compare2(obj1,obj2){\r\n if(!obj1){\r\n return -1;\r\n }\r\n if(!obj2){\r\n return 1;\r\n }\r\n const d1 = this.toDate(obj1);\r\n const d2 = this.toDate(obj2);\r\n if(d1 > d2){\r\n return 1;\r\n }else if(d1 < d2){\r\n return -1;\r\n }else{\r\n return 0;\r\n }\r\n }\r\n isGreater(obj1,obj2){\r\n return this.compare(obj1,obj2) === 1;\r\n }\r\n isLess(obj1,obj2){\r\n return this.compare(obj1,obj2) === -1\r\n }\r\n months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\r\n toVagueDate(dateStr) {\r\n if (!dateStr) {\r\n return '';\r\n }\r\n var date = this.toDate(dateStr);\r\n return this.months[date.getMonth()] + '-' + (date.getFullYear() - 2000);\r\n }\r\n}\r\n\r\nexport default new DateHelper();","import dateHelper from \"./dateHelper\";\r\n\r\nexport function SHOW_AXIOS_ERROR(error){\r\n if (error.response) {\r\n alert(error.response.status + ' ' + error.response.data);\r\n } else {\r\n alert(error.message);\r\n }\r\n}\r\n\r\nexport function COMPARE_BY_START(a, b) {\r\n const aDate = dateHelper.toDate(a.start);\r\n const bDate = dateHelper.toDate(b.start);\r\n\r\n if (aDate > bDate) {\r\n return 1;\r\n } else if (aDate < bDate) {\r\n return -1;\r\n } else {\r\n return 0;\r\n }\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {TreeItem} from \"@material-ui/lab\";\r\nimport {AccountBalanceOutlined, AccountTreeOutlined, AlternateEmailRounded} from \"@material-ui/icons\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport axios from \"axios\";\r\nimport {COMPARE_BY_START, SHOW_AXIOS_ERROR} from \"../core/FUNCS\";\r\nimport dateHelper from \"../core/dateHelper\";\r\n\r\nfunction MountSensor(props) {\r\n const {\r\n onMount,\r\n } = props;\r\n\r\n useEffect(() => {\r\n onMount(true);\r\n return () => onMount(false)\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return null;\r\n}\r\n\r\nfunction CampaignView(props){\r\n const {campaign, onCampaignSelected} = props;\r\n\r\n return onCampaignSelected(campaign)}\r\n label={
\r\n \r\n
\r\n \r\n {campaign.sendingProfile + ' (' +\r\n dateHelper.toShortDateRange(campaign.start, campaign.end) + ')'}\r\n \r\n
\r\n
}/>\r\n}\r\n\r\nfunction RseView(props){\r\n const {rse, onRseSelected, onCampaignSelected} = props;\r\n const [campaigns, setCampaigns] = useState([]);\r\n const loadMyChildren = () => {\r\n axios.get('api/phish/readCampaigns/'+ rse.id)\r\n .then(response => {\r\n setCampaigns(response.data);\r\n })\r\n .catch(SHOW_AXIOS_ERROR);\r\n };\r\n return onRseSelected(rse,loadMyChildren)}\r\n label={
\r\n \r\n
\r\n \r\n {rse.title} ({dateHelper.toShortDate(rse.start)})\r\n \r\n
\r\n
}>\r\n <>\r\n {\r\n if(isMount){\r\n loadMyChildren();\r\n }\r\n }}/>\r\n {\r\n (campaigns || []).map(camp => )\r\n }\r\n \r\n\r\n
\r\n}\r\n\r\nexport function ClientView(props){\r\n const {docxClient, onClientSelected, onRseSelected, onCampaignSelected} = props;\r\n const [rses, setRses] = useState([]);\r\n const loadMyChildren = () => {\r\n axios.get('api/phish/readRses/'+docxClient.id)\r\n .then(response => {\r\n setRses(response.data);\r\n })\r\n .catch(SHOW_AXIOS_ERROR);\r\n };\r\n\r\n return {onClientSelected(docxClient, loadMyChildren)}}\r\n label={
\r\n \r\n
\r\n \r\n {docxClient.title}\r\n \r\n
\r\n
}>\r\n <>\r\n {\r\n if(isMount) {\r\n loadMyChildren();\r\n }\r\n }}/>\r\n {\r\n (rses || [])\r\n .sort(COMPARE_BY_START)\r\n .map(rse => )\r\n }\r\n \r\n
\r\n}\r\n","import {Paper, Table, TableBody, TableCell, TableHead, TableRow, Typography} from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport {NativeTypes} from \"react-dnd-html5-backend\";\r\nimport {DropTarget} from \"react-dnd\";\r\nimport dateHelper from \"../core/dateHelper\";\r\n\r\nfunction sortByLastScanDate(myTargets){\r\n if(!myTargets){\r\n return myTargets;\r\n }\r\n return myTargets.sort((a,b) => dateHelper.compare2(a.lastScanDate,b.lastScanDate));\r\n}\r\n\r\nfunction MyTargetsTable(props){\r\n const {items, onDoubleClick} = props;\r\n return \r\n \r\n \r\n Full Name\r\n Email\r\n Status\r\n Last Scan Date\r\n \r\n \r\n \r\n {\r\n sortByLastScanDate(items).map(item => {\r\n onDoubleClick(item.id);\r\n }}\r\n >\r\n {item.name}\r\n {item.email}\r\n {item.status}\r\n {dateHelper.toShortDate(item.lastScanDate)}\r\n )\r\n }\r\n \r\n
\r\n}\r\n\r\n\r\n\r\nconst Panel = ({\r\n accepts,\r\n isOver,\r\n canDrop,\r\n connectDropTarget,\r\n lastDroppedItem,\r\n items,\r\n title,\r\n selectable,\r\n disabled,\r\n onChange,\r\n onDoubleClick\r\n }) => {\r\n return connectDropTarget(\r\n
\r\n \r\n {\r\n items && items.length > 0 ?\r\n \r\n :\r\n \r\n {'Drag an employee list file here to upload targets to phish'}\r\n \r\n\r\n }\r\n \r\n
\r\n )\r\n}\r\n\r\nconst DropPanel = DropTarget(\r\n props => props.accepts,\r\n {\r\n drop(props, monitor) {\r\n props.onDrop(props, monitor)\r\n },\r\n },\r\n (connect, monitor) => ({\r\n connectDropTarget: connect.dropTarget(),\r\n isOver: monitor.isOver(),\r\n canDrop: monitor.canDrop(),\r\n }),\r\n)(Panel)\r\n\r\nexport function MyTargetsView(props) {\r\n const {onUpload,items,disabled,onChange,title,selectable,\r\n onDoubleClick\r\n } = props;\r\n const handleDrop = (item, monitor)=>{\r\n if (onUpload) {\r\n onUpload(monitor.getItem().files[0]);\r\n }\r\n };\r\n return
\r\n {\r\n disabled?\r\n
:\r\n \r\n\r\n }\r\n\r\n
;\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {\r\n Button,\r\n Chip,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n Table,\r\n TableCell,\r\n TableRow,\r\n TextField\r\n} from \"@material-ui/core\";\r\n//import DateTimePicker from \"react-datetime-picker/src/DateTimePicker\";\r\nimport DatePicker from \"react-date-picker\";\r\n\r\nexport function RseDialog(props){\r\n const {onDock} = props;\r\n const [open,setOpen] = useState(false);\r\n const [rse, setRse] = useState(null);\r\n const [onOk, setOnOk] = useState(() => () => alert(\"no onOk set\"));\r\n const show = (rse, onOk) => {\r\n setOpen(true);\r\n setRse(rse);\r\n setOnOk(() => onOk)\r\n };\r\n\r\n useEffect(() => {\r\n onDock(show);\r\n },[]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return setOpen(false)}\r\n\r\n >\r\n RSE\r\n \r\n \r\n\r\n \r\n \r\n \r\n For Client\r\n \r\n \r\n\r\n \r\n \r\n \r\n Description\r\n \r\n setRse({...rse, title:e.target.value})}\r\n />\r\n \r\n \r\n \r\n Scheduled\r\n \r\n {\r\n setRse({...rse, start:dt});\r\n }}\r\n />\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n}","import React,{Component} from 'react';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { ListItemText } from '@material-ui/core';\r\n \r\nexport default class CgSelect extends Component {\r\n constructor(props){\r\n super(props);\r\n\r\n this.onChange = this.onChange.bind(this);\r\n this.convertValue = this.convertValue.bind(this);\r\n }\r\n onChange(value){\r\n if(!value){\r\n this.props.onChange(null);\r\n }\r\n if(this.props.isMulti){\r\n this.props.onChange(value.join(';'));\r\n }else{\r\n this.props.onChange(value);\r\n }\r\n }\r\n convertValue(){\r\n if(this.props.isMulti){\r\n return this.props.value?this.props.value.split(';'):[];\r\n } else {\r\n return this.props.value ? this.props.value:'';\r\n }\r\n }\r\n render() {\r\n const {style} = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {\r\n Button,\r\n Chip,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n Table,\r\n TableCell,\r\n TableRow\r\n} from \"@material-ui/core\";\r\n//import DateTimePicker from \"react-datetime-picker/src/DateTimePicker\";\r\nimport DateTimePicker from \"react-datetime-picker\";\r\nimport CgSelect from \"../core/CgSelect\";\r\nimport axios from \"axios\";\r\nimport dateHelper from \"../core/dateHelper\";\r\nimport {Label} from \"@mui/icons-material\";\r\n\r\nexport function CampaignDialog(props){\r\n const {onDock, goParameters} = props;\r\n const [open,setOpen] = useState(false);\r\n const [from,setFrom] = useState(null);\r\n const [campaign, setCampaign] = useState(null);\r\n const [onOk, setOnOk] = useState(() => () => alert(\"no onOk set\"));\r\n //const [goParameters, setGoParameters] = useState([]);\r\n const show = (campaign, onOk) => {setOpen(true); setCampaign(campaign); setOnOk(() => onOk)};\r\n\r\n useEffect(() => {\r\n onDock(show);\r\n },[]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return setOpen(false)}\r\n\r\n >\r\n Campaign\r\n \r\n \r\n\r\n \r\n \r\n \r\n For Client\r\n \r\n \r\n\r\n \r\n \r\n \r\n For RSE\r\n \r\n \r\n\r\n \r\n \r\n \r\n Start Date\r\n \r\n {\r\n if(!(campaign || {}).start){\r\n dt = dateHelper.addHours(dt, 9.5 );\r\n }\r\n setCampaign({...campaign, start:dt, end:dateHelper.addDays(dt,3)});\r\n }}\r\n />\r\n \r\n \r\n \r\n Interval\r\n \r\n Emails would be sent evenly within\r\n {\r\n setCampaign({...campaign, tag3:value});\r\n }} />\r\n Hours\r\n \r\n \r\n \r\n Due Date\r\n \r\n {\r\n setCampaign({...campaign, end:dt});\r\n }}\r\n />\r\n \r\n \r\n \r\n Email Account\r\n \r\n p.from)}\r\n value={from}\r\n onChange={value => {\r\n setFrom(value);\r\n setCampaign({...campaign, sendingProfile:null});\r\n }} />\r\n \r\n\r\n \r\n \r\n Email Tamplate\r\n \r\n p.from === from) || {}).profiles || []}\r\n value={(campaign || {}).sendingProfile}\r\n onChange={value => {\r\n setCampaign({...campaign, sendingProfile:value});\r\n }} />\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle, Grid,\r\n Table,\r\n TableCell,\r\n TableRow,\r\n TextField\r\n} from \"@material-ui/core\";\r\n//import DateTimePicker from \"react-datetime-picker/src/DateTimePicker\";\r\nimport CgSelect from \"../core/CgSelect\";\r\nimport axios from \"axios\";\r\n\r\nexport function SendTemplateDialog(props){\r\n const {goParameters} = props;\r\n const {onDock} = props;\r\n const [open,setOpen] = useState(false);\r\n const [from, setFrom] = useState(null);\r\n const [sendingTemplate, setSendingTemplate] = useState({});\r\n const [onOk, setOnOk] = useState(() => () => alert(\"no onOk set\"));\r\n const show = (onOk) => {setOpen(true); setSendingTemplate({}); setOnOk(() => onOk)};\r\n\r\n useEffect(() => {\r\n onDock(show);\r\n },[]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return setOpen(false)}\r\n\r\n >\r\n Sending Scripts\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n {\r\n setSendingTemplate({...sendingTemplate, name:event.target.value})\r\n }} value={sendingTemplate.name}/>\r\n \r\n \r\n \r\n Email\r\n \r\n {\r\n setSendingTemplate({...sendingTemplate, email:event.target.value})\r\n }} value={sendingTemplate.email}/>\r\n \r\n \r\n \r\n \r\n \r\n \r\n Email Account\r\n \r\n p.from)}\r\n value={from}\r\n onChange={value => {\r\n setFrom(value);\r\n setSendingTemplate({...sendingTemplate, templates:''});\r\n }} />\r\n \r\n\r\n \r\n \r\n Email Tamplates\r\n \r\n p.from === from) || {}).profiles || []}\r\n value={sendingTemplate.templates}\r\n onChange={value => {\r\n setSendingTemplate({...sendingTemplate, templates:value});\r\n }} />\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n}","export const CONSTS = {\r\n EmailSent : \"Email Sent\",\r\n EmailOpened : \"Email Opened\",\r\n ClickedLink : \"Clicked Link\",\r\n SubmittedData : \"Submitted Data\",\r\n EmailReported : \"Email Reported\",\r\n\r\n\r\n CampaignInitialzied : \"Initialized\",\r\n CampaignInProgress : \"In progress\",\r\n CampaignDone : \"Done\",\r\n CampaignError : \"Error\",\r\n}","import * as React from 'react';\r\nimport { styled, alpha } from '@mui/material/styles';\r\nimport Button from '@mui/material/Button';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport Divider from '@mui/material/Divider';\r\nimport ArchiveIcon from '@mui/icons-material/Archive';\r\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\r\nimport MoreHorizIcon from '@mui/icons-material/MoreHoriz';\r\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\r\nimport {ClearAll} from \"@mui/icons-material\";\r\n\r\nconst StyledMenu = styled((props) => (\r\n \r\n))(({ theme }) => ({\r\n '& .MuiPaper-root': {\r\n borderRadius: 6,\r\n marginTop: theme.spacing(1),\r\n minWidth: 180,\r\n color:\r\n theme.palette.mode === 'light' ? 'rgb(55, 65, 81)' : theme.palette.grey[300],\r\n boxShadow:\r\n 'rgb(255, 255, 255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px, rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px',\r\n '& .MuiMenu-list': {\r\n padding: '4px 0',\r\n },\r\n '& .MuiMenuItem-root': {\r\n '& .MuiSvgIcon-root': {\r\n fontSize: 18,\r\n color: theme.palette.text.secondary,\r\n marginRight: theme.spacing(1.5),\r\n },\r\n '&:active': {\r\n backgroundColor: alpha(\r\n theme.palette.primary.main,\r\n theme.palette.action.selectedOpacity,\r\n ),\r\n },\r\n },\r\n },\r\n}));\r\n\r\nexport default function DropDownButton(props) {\r\n const {addBatchTargetToCampaign, clearAllTargetFromCampaign} = props;\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n
\r\n }\r\n >\r\n Options\r\n \r\n \r\n {\r\n addBatchTargetToCampaign(8);\r\n setAnchorEl(null);\r\n }} disableRipple>\r\n \r\n Add 1/8\r\n \r\n {\r\n addBatchTargetToCampaign(4);\r\n setAnchorEl(null);\r\n }} disableRipple>\r\n \r\n Add 1/4\r\n \r\n \r\n {\r\n addBatchTargetToCampaign(2);\r\n setAnchorEl(null);\r\n }} disableRipple>\r\n \r\n Add 1/2\r\n \r\n {\r\n addBatchTargetToCampaign(1);\r\n setAnchorEl(null);\r\n }} disableRipple>\r\n \r\n Add All\r\n \r\n {\r\n clearAllTargetFromCampaign();\r\n setAnchorEl(null);\r\n }} disableRipple>\r\n \r\n Clear All\r\n \r\n \r\n
\r\n );\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle, Grid,\r\n Table,\r\n TableCell,\r\n TableRow,\r\n TextField\r\n} from \"@material-ui/core\";\r\n//import DateTimePicker from \"react-datetime-picker/src/DateTimePicker\";\r\nimport CgSelect from \"../core/CgSelect\";\r\nimport axios from \"axios\";\r\nimport dateHelper from \"../core/dateHelper\";\r\n\r\nfunction parseDetailsToGetUserAgent(item){\r\n if(!item){\r\n return '!item';\r\n }\r\n\r\n if(!item.Details){\r\n return '!item.Details';\r\n }\r\n\r\n const str = item.Details.replace('\\u0022','\"');\r\n const json = JSON.parse(str);\r\n\r\n if(!json){\r\n return '!json';\r\n }\r\n if(!json.browser){\r\n return '!json.browser';\r\n }\r\n\r\n return json.browser['user-agent'];\r\n}\r\n\r\nfunction parseDetailsToGetIP(item){\r\n if(!item){\r\n return '!item';\r\n }\r\n\r\n if(!item.Details){\r\n return '!item.Details';\r\n }\r\n\r\n const str = item.Details.replace('\\u0022','\"');\r\n const json = JSON.parse(str);\r\n\r\n if(!json){\r\n return '!json';\r\n }\r\n if(!json.browser){\r\n return '!json.browser';\r\n }\r\n\r\n return json.browser['address'];\r\n}\r\n\r\nexport function TimelineDialog(props){\r\n const {onDock} = props;\r\n const [open,setOpen] = useState(false);\r\n const [timelineItems, setTimelineItems] = useState([]);\r\n const [onOk, setOnOk] = useState(() => () => alert(\"no onOk set\"));\r\n const show = (timelineItems) => {\r\n setOpen(true);\r\n setTimelineItems(timelineItems);\r\n };\r\n\r\n useEffect(() => {\r\n onDock(show);\r\n },[]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return setOpen(false)}\r\n >\r\n Timeline {(timelineItems || []).length}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n Time\r\n \r\n \r\n Event\r\n \r\n \r\n Agent\r\n \r\n \r\n IP\r\n \r\n \r\n {\r\n (timelineItems || []).map(item => \r\n\r\n \r\n {dateHelper.toShortDateTime(item.Time)}\r\n \r\n \r\n {item.Message}\r\n \r\n \r\n {\r\n parseDetailsToGetUserAgent(item)\r\n }\r\n\r\n \r\n \r\n {\r\n parseDetailsToGetIP(item)\r\n }\r\n \r\n )\r\n }\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {PhishToolbar} from './PhishToolbar'\r\nimport {TreeView} from \"@material-ui/lab\";\r\nimport {ChevronRight, ExpandMore} from \"@material-ui/icons\";\r\n\r\nimport {ClientView} from \"./ClientView\";\r\nimport axios from \"axios\";\r\nimport {saveAs} from 'file-saver';\r\nimport Groupbox from \"../core/Groupbox\";\r\nimport {\r\n Avatar,\r\n Button,\r\n Chip,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n Toolbar, Tooltip,\r\n Typography\r\n} from \"@material-ui/core\";\r\nimport {MyTargetsView} from \"./MyTargetsView\";\r\nimport {SHOW_AXIOS_ERROR} from \"../core/FUNCS\";\r\nimport {RseDialog} from \"./NewRseDialog\";\r\nimport {CampaignDialog} from \"./CampaignDialog\";\r\nimport {SendTemplateDialog} from './SendTemplateDialog';\r\nimport {ErrorBar, MessageBar} from \"./Bars\";\r\nimport dateHelper from \"../core/dateHelper\";\r\nimport {CONSTS} from './CONSTS'\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport AlertDialog from \"./AlertDialog\";\r\nimport DropDownButton from \"./DropDownButton\";\r\nimport {CheckBox} from \"@mui/icons-material\";\r\nimport {Checkbox} from \"@mui/material\";\r\nimport {TimelineDialog} from \"./TimelineDialog\";\r\n\r\n\r\n//axios.defaults.baseURL = 'https://localhost:5001';\r\n\r\n//axios.defaults.baseURL = 'https://test.castlegarde.com:5003';\r\n\r\nfunction excludeResultsFromMyTargets(myTargets, results){\r\n if(!results){\r\n return myTargets;\r\n }\r\n\r\n if(!myTargets){\r\n return myTargets;\r\n }\r\n\r\n return myTargets.filter(p => !(results.some(pp => pp.email === p.email)));\r\n}\r\n\r\nexport function Phish2(props){\r\n const [isAdmin, setIsAdmin] = useState(false);\r\n const [error, setError] = useState(null);\r\n const [docxClients,setDocxClients] = useState([]);\r\n const [goParameters, setGoParameters] = useState([]);\r\n const [clientFilter,setClientFilter] = useState(null);\r\n const [client,setClient] = useState(null);\r\n const [expanded, setExpanded] = useState([]);\r\n const [myTargets, setMyTargets] = useState([]);\r\n const [loadRses, setLoadRses] = useState(() =>()=> alert('Select a client first'));\r\n const [rse,setRse] = useState(null);\r\n const [loadCampaigns, setLoadCampaigns] = useState(() => ()=> alert('Select a RSE first'));\r\n const [campaign,setCampaign] = useState(null);\r\n const [results, setResults] = useState([]);\r\n\r\n const [showRseDialog, setShowRseDialog] = useState(() => () => alert(\"no show rse dialog docked\"));\r\n const [showCampaignDialog, setShowCampaignDialog] = useState(() => () =>\r\n alert('no show campaign dialog docked'));\r\n const [showSendTemplateDialog, setShowSendTemplateDialog] = useState(() => () =>\r\n alert('no show send template dialog docked'));\r\n const [showAlertDialog, setShowAlertDialog] = useState(() => () =>\r\n alert('no show alert dialog docked'));\r\n const [showTimelineDialog, setShowTimelineDialog] = useState(() => () =>\r\n alert(\"no show timeline dialog docked\"));\r\n\r\n const displayError = error => {\r\n if (error.response) {\r\n setError(error.response.status + ' ' + error.response.data);\r\n } else if(error.message) {\r\n setError(error.message);\r\n } else{\r\n setError(error);\r\n }\r\n }\r\n\r\n const filterClients = (clients,filter) => {\r\n let r = clients;\r\n if(!r ){\r\n return r;\r\n }\r\n if(filter){\r\n r = clients.filter(p => (p.title && p.title.toUpperCase().startsWith(filter.toUpperCase())));\r\n }\r\n //r.sort((a,b) => {\r\n // if(a.title > b.title){\r\n // return 1;\r\n // }\r\n // if(a.title < b.title){\r\n // return -1;\r\n // }\r\n // return 0;\r\n //});\r\n\r\n return r;\r\n };\r\n\r\n const loadCampaign = (campaign) => {\r\n axios.get('api/phish/readCampaign/' + campaign.id)\r\n .then(response => {\r\n setCampaign(response.data);\r\n setResults((response.data || {}).results);\r\n })\r\n .catch(displayError);}\r\n\r\n const loadClients = () => {\r\n const url = 'api/phish/docxClients';\r\n axios.get(url)\r\n .then(response => setDocxClients(response.data))\r\n .catch(displayError)\r\n }\r\n\r\n const loadGoParameters = () => {\r\n axios.get('api/phish/getGoParameters2')\r\n .then(response => {\r\n setGoParameters(response.data);\r\n })\r\n .catch(displayError);\r\n }\r\n\r\n const loadIsAdmin = () => {\r\n axios.get('api/phish/isAdmin')\r\n .then(response => {\r\n setIsAdmin(response.data);\r\n })\r\n .catch(() => setIsAdmin(false));\r\n }\r\n\r\n //useEffect(loadIsAdmin, []);\r\n //useEffect(loadClients,[])\r\n //useEffect(loadGoParameters, []);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n if(campaign && campaign.id && campaign.status\r\n && campaign.status !== 'Done'){\r\n loadCampaign(campaign);\r\n }\r\n }, 30000);\r\n return () => clearInterval(interval);\r\n }, [campaign]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n //if(!isAdmin){\r\n // return '';\r\n //}\r\n\r\n return
\r\n setError(null)}/>\r\n\r\n {\r\n if(!goParameters || goParameters.length == 0){\r\n showAlertDialog(\"Loading\", \"Still loading data, please wait\",() => {});\r\n }else{\r\n showSendTemplateDialog(sendingTemplate => {\r\n axios.post('api/phish/sendTemplate', sendingTemplate)\r\n .then(response => alert(\"sent templates\"))\r\n .catch(displayError);\r\n });\r\n }\r\n }}\r\n\r\n clientFilter={clientFilter}\r\n onClientFilter={value => setClientFilter(value)}\r\n\r\n isAllowNewRse={client && loadRses}\r\n newRse={() => {\r\n showRseDialog({clientId:client.id, clientTitle:client.title},\r\n rse => {\r\n rse.clientId = client.id;\r\n axios.post('api/phish/newRse',rse)\r\n .then(response => {\r\n loadRses();\r\n })\r\n .catch(displayError);\r\n });\r\n }}\r\n\r\n isAllowDeleteRse={rse}\r\n deleteRse={() => {\r\n \r\n showAlertDialog((rse || {}).title,\r\n `Are you sure to delete this RSE: ${(rse || {}).title} of ${(client || {}).title} `,\r\n () => {\r\n axios.get('api/phish/deleteRse/' + rse.id)\r\n .then(response => {\r\n loadRses();\r\n })\r\n .catch(SHOW_AXIOS_ERROR);\r\n })\r\n }}\r\n\r\n isAllowClearTargets={client}\r\n clearTargets={() => {\r\n showAlertDialog(\"Delete all employees\",\r\n `Are you sure to delete all employees from ${(client || {}).title} `,\r\n () => {\r\n axios.get('api/phish/clearTargets/' + client.id)\r\n .then(response => {\r\n axios.get('api/phish/readTargets/' + client.id)\r\n .then(response => setMyTargets(response.data))\r\n .catch(SHOW_AXIOS_ERROR);\r\n })\r\n .catch(displayError);\r\n })\r\n }}\r\n\r\n isAllowNewCampaign={rse}\r\n newCampaign={() => {\r\n if(!goParameters || goParameters.length == 0){\r\n showAlertDialog(\"Loading\", \"Still loading data, please wait\",() => {});\r\n }else {\r\n showCampaignDialog({clientTitle: client.title, tag2: rse.title},\r\n campaign => {\r\n const url = 'api/phish/newCampaign/' + rse.id;\r\n axios.post(url, campaign)\r\n .then(response => {\r\n loadCampaigns();\r\n })\r\n .catch(displayError);\r\n });\r\n }\r\n }}\r\n isAllowEditCampaign={campaign}\r\n editCampaign={() => {\r\n if(!goParameters || goParameters.length == 0){\r\n showAlertDialog(\"Loading\", \"Still loading data, please wait\",() => {});\r\n }else {\r\n //alert('haha');\r\n //return;\r\n showCampaignDialog(campaign, campaign => {\r\n campaign.status = null;\r\n const url = 'api/phish/updateCampaign';\r\n axios.post(url, campaign)\r\n .then(response => {\r\n loadCampaigns();\r\n })\r\n .catch(displayError);\r\n });\r\n }\r\n }}\r\n isAllowStart={campaign && !campaign.status}\r\n startCampaign={() => {\r\n showAlertDialog(campaign.sendingProfile + ' (' +\r\n dateHelper.toShortDateRange(campaign.start, campaign.end) + ')',\r\n `Are you sure to start this campaign for ${(rse || {}).title} of ${(client || {}).title} `,\r\n () => {\r\n axios.get('api/phish/startCampaign/' + campaign.id)\r\n .then(response => {\r\n setCampaign(response.data);\r\n setResults((response.data || {}).results);\r\n axios.get('api/phish/readTargets/' + client.id)\r\n .then(response => setMyTargets(response.data))\r\n .catch(SHOW_AXIOS_ERROR);\r\n })\r\n .catch(displayError);\r\n })\r\n }}\r\n isAllowStop={campaign && campaign.status === 'In progress'}\r\n stopCampaign={() => {\r\n axios.get('api/phish/completeCampaign/' + campaign.id)\r\n .then(response => {\r\n setCampaign(response.data);\r\n })\r\n .catch(displayError);\r\n }}\r\n isAllowDeleteCampaign={campaign}\r\n deleteCampaign={() => {\r\n showAlertDialog(campaign.sendingProfile + ' (' +\r\n dateHelper.toShortDateRange(campaign.start, campaign.end) + ')',\r\n `Are you sure to delete this campaign for ${(rse || {}).title} of ${(client || {}).title} `,\r\n () => {\r\n axios.get('api/phish/deleteCampaign/' + campaign.id)\r\n .then(response => {\r\n loadCampaigns();\r\n })\r\n .catch(SHOW_AXIOS_ERROR);\r\n })\r\n }}\r\n isAllowReport={rse}\r\n reportCampaign={() => {\r\n //const url = 'https://localhost:5001/api/phish/reportCampaign/' + rse.id;\r\n const url = 'api/phish/reportCampaign/' + rse.id;\r\n saveAs(url);\r\n }}\r\n />\r\n
\r\n
\r\n }\r\n defaultExpandIcon={}\r\n sx={{ height: 240, flexGrow: 1, maxWidth: 400, overflowY: 'auto' }}\r\n >\r\n {\r\n filterClients(docxClients,clientFilter).map(docxClient =>\r\n {\r\n setLoadRses(()=> loadMyChildren);\r\n setClient(client);\r\n setExpanded([client.id]);\r\n setRse(null);\r\n setCampaign(null);\r\n setResults([]);\r\n axios.get('api/phish/readTargets/' + client.id)\r\n .then(response => setMyTargets(response.data))\r\n .catch(SHOW_AXIOS_ERROR);\r\n }}\r\n onRseSelected={(rse,loadMyChildren) => {\r\n setRse(rse);\r\n setExpanded([rse.clientId,rse.id]);\r\n setCampaign(null);\r\n setLoadCampaigns(() =>loadMyChildren);\r\n setResults([]);\r\n }}\r\n onCampaignSelected={loadCampaign}\r\n />\r\n )\r\n }\r\n \r\n
\r\n
\r\n \r\n
\r\n {\r\n const url = 'api/phish/importTargets/' + client.id;\r\n let data = new FormData();\r\n data.append('file', file, file.name);\r\n axios.post(url,\r\n data,\r\n {\r\n headers: {\r\n 'accept': 'application/json',\r\n 'Accept-Language': 'en-US,en;q=0.8',\r\n 'Content-Type': `multipart/form-data; boundary=${data._boundary}`,\r\n }\r\n }\r\n ).then(response => {\r\n setMyTargets(response.data);\r\n }).catch(displayError);\r\n }}\r\n\r\n onDoubleClick={id => {\r\n if(campaign && campaign.id){\r\n const url = 'api/phish/AddTargetToCampaign/' + id + '/' + campaign.id;\r\n //alert(url);\r\n axios.get(url)\r\n .then(response => {\r\n axios.get('api/phish/readResults/' + campaign.id)\r\n .then(reponse => setResults(response.data.results))\r\n .catch(SHOW_AXIOS_ERROR);\r\n })\r\n .catch(SHOW_AXIOS_ERROR);\r\n }\r\n }}\r\n items={excludeResultsFromMyTargets(myTargets, results)}/>\r\n
\r\n
\r\n \r\n {(myTargets || []).length}\r\n\r\n {\r\n if(campaign && campaign.id){\r\n const url = 'api/phish/addBatchTargetToCampaign/' + client.id + '/' + campaign.id + '/' + number;\r\n axios.get(url)\r\n .then(response => {\r\n axios.get('api/phish/readResults/' + campaign.id)\r\n .then(reponse => setResults(response.data.results))\r\n .catch(SHOW_AXIOS_ERROR);\r\n })\r\n .catch(SHOW_AXIOS_ERROR);\r\n }\r\n }} clearAllTargetFromCampaign={() => {\r\n if(campaign && campaign.id){\r\n const url = 'api/phish/clearAllTargetFromCampaign/' + campaign.id;\r\n axios.get(url)\r\n .then(response => {\r\n axios.get('api/phish/readResults/' + campaign.id)\r\n .then(reponse => setResults(response.data.results))\r\n .catch(SHOW_AXIOS_ERROR);\r\n })\r\n .catch(SHOW_AXIOS_ERROR);\r\n }\r\n }}\r\n />\r\n {(results || []).length}\r\n Status:{(campaign || {}).status}\r\n Start:{dateHelper.toShortDateTime((campaign || {}).start)}\r\n Sent:{(campaign || {}).emailsSent}\r\n Opened:{(campaign || {}).emailsOpened}\r\n \r\n Clicked:{(campaign || {}).emailsClicked}\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n Full Name\r\n Email\r\n Status\r\n False Positive\r\n Sent\r\n Opened\r\n Clicked\r\n IP\r\n \r\n\r\n \r\n \r\n {\r\n results.map(result => {\r\n if(campaign && campaign.id){\r\n const url = 'api/phish/removeTargetFromCampaign/' + result.id + '/' + campaign.id;\r\n //alert(url);\r\n axios.get(url)\r\n .then(response => {\r\n axios.get('api/phish/readResults/' + campaign.id)\r\n .then(reponse => setResults(response.data.results))\r\n .catch(SHOW_AXIOS_ERROR);\r\n })\r\n .catch(SHOW_AXIOS_ERROR);\r\n }\r\n }}>\r\n {result.name}\r\n {result.email}\r\n {\r\n /*\r\n {\r\n result.status === CONSTS.EmailSent?\r\n :\r\n result.status === CONSTS.EmailOpened?\r\n :\r\n result.status === CONSTS.ClickedLink?\r\n :\r\n result.status === CONSTS.SubmittedData?\r\n :\r\n !result.status?\r\n '':\r\n \r\n\r\n }\r\n */\r\n }\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n if(e.target.checked){\r\n result.tag2 = \"true\";\r\n }else{\r\n result.tag2 = null;\r\n }\r\n const url = 'api/phish/ChangeFalsePositiveForResult/' + campaign.id;\r\n //alert(url);\r\n axios.post(url, result)\r\n .then(response => {\r\n setResults(response.data.results)\r\n }).catch(SHOW_AXIOS_ERROR);\r\n }}/>\r\n \r\n \r\n {result.emailSentDate2}\r\n {result.emailOpenedDate2}\r\n {result.clickedLinkDate2}\r\n {result.ip}\r\n )\r\n }\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n setShowRseDialog(() => show)}/>\r\n setShowCampaignDialog(() => show)}\r\n goParameters = {goParameters}\r\n />\r\n setShowSendTemplateDialog(() => show)}\r\n />\r\n setShowAlertDialog(() => show)}/>\r\n setShowTimelineDialog(() => show)}/>\r\n
\r\n 0 && goParameters && goParameters.length > 0)?'Done with loading data':'Loading data, please wait...'}/>\r\n
\r\n}","import React from \"react\";\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport './App.css';\nimport { Route } from 'react-router';\nimport { Container } from '@material-ui/core';\n//import { Counter } from './components/Counter';\n//import { Docx2 } from './components/docx2/Docx2';\n//import { RoleAndUser } from './components/role_and_user/RoleAndUser';\nimport { RequestInformation } from './components/request_information/RequestInformation';\nimport { EvaWaiver } from './components/eva_waiver/EvaWaiver';\nimport { Waivers } from \"./components/eva_waiver/Waivers\";\nimport {Phish2} from './components/phish2/Phish2';\nfunction App() {\n return (\n
\n \n \n {\n /*\n \n \n \n \n \n */\n }\n \n \n \n \n \n \n \n
\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}