diff --git a/cmd/isosim/version.go b/cmd/isosim/version.go index 6139232..e6df11c 100644 --- a/cmd/isosim/version.go +++ b/cmd/isosim/version.go @@ -1,4 +1,4 @@ package main var version = "0.12.0" -var build = "446793c0" +var build = "23366a17" diff --git a/githooks/update_commit_id.sh b/githooks/update_commit_id.sh index 639fc89..8841793 100644 --- a/githooks/update_commit_id.sh +++ b/githooks/update_commit_id.sh @@ -3,5 +3,5 @@ commit_id=`git log -1 HEAD | head -1 | awk '{print substr($2,0,8)}'` echo "package main -var version=\"0.12.0\" +var version=\"0.12.1\" var build=\"$commit_id\"" > ../cmd/isosim/version.go diff --git a/test/testdata/appdata/isosim.bdb b/test/testdata/appdata/isosim.bdb index ea2ec36..a38f944 100644 Binary files a/test/testdata/appdata/isosim.bdb and b/test/testdata/appdata/isosim.bdb differ diff --git a/test/testdata/specs/sample_spec.yaml b/test/testdata/specs/sample_spec.yaml index 23d6558..b6b399c 100644 --- a/test/testdata/specs/sample_spec.yaml +++ b/test/testdata/specs/sample_spec.yaml @@ -115,6 +115,13 @@ specs: data_encoding: ASCII position: 63 + - name: "mac_1" + id: 17 + type: Fixed + size: 8 + data_encoding: BINARY + position: 64 + - name: "key_mgmt_data" id: 14 type: Fixed @@ -122,6 +129,14 @@ specs: data_encoding: ASCII position: 96 + - name: "mac_2" + id: 18 + type: Fixed + size: 8 + data_encoding: BINARY + position: 128 + + - name: "reserved_data" id: 15 type: Fixed diff --git a/web/react-fe/build/asset-manifest.json b/web/react-fe/build/asset-manifest.json index c0e877c..b5e16cb 100644 --- a/web/react-fe/build/asset-manifest.json +++ b/web/react-fe/build/asset-manifest.json @@ -1,15 +1,15 @@ { "files": { "main.css": "/static/css/main.bbd4fcb0.chunk.css", - "main.js": "/static/js/main.9ecb237f.chunk.js", - "main.js.map": "/static/js/main.9ecb237f.chunk.js.map", + "main.js": "/static/js/main.04818dac.chunk.js", + "main.js.map": "/static/js/main.04818dac.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.d1dafa31.js", "runtime-main.js.map": "/static/js/runtime-main.d1dafa31.js.map", "static/css/2.10ffe1ee.chunk.css": "/static/css/2.10ffe1ee.chunk.css", "static/js/2.5683fb71.chunk.js": "/static/js/2.5683fb71.chunk.js", "static/js/2.5683fb71.chunk.js.map": "/static/js/2.5683fb71.chunk.js.map", "index.html": "/index.html", - "precache-manifest.492ef01b483f6fcf34a15b6d4e063484.js": "/precache-manifest.492ef01b483f6fcf34a15b6d4e063484.js", + "precache-manifest.3d7c75ef129f6805cb9ee138e176007f.js": "/precache-manifest.3d7c75ef129f6805cb9ee138e176007f.js", "service-worker.js": "/service-worker.js", "static/css/2.10ffe1ee.chunk.css.map": "/static/css/2.10ffe1ee.chunk.css.map", "static/css/main.bbd4fcb0.chunk.css.map": "/static/css/main.bbd4fcb0.chunk.css.map", @@ -21,6 +21,6 @@ "static/css/2.10ffe1ee.chunk.css", "static/js/2.5683fb71.chunk.js", "static/css/main.bbd4fcb0.chunk.css", - "static/js/main.9ecb237f.chunk.js" + "static/js/main.04818dac.chunk.js" ] } \ No newline at end of file diff --git a/web/react-fe/build/index.html b/web/react-fe/build/index.html index 08d8f75..d0d6f3d 100644 --- a/web/react-fe/build/index.html +++ b/web/react-fe/build/index.html @@ -1 +1 @@ -ISO WebSim - ISO8583 Web Simulator
\ No newline at end of file +ISO WebSim - ISO8583 Web Simulator
\ No newline at end of file diff --git a/web/react-fe/build/precache-manifest.492ef01b483f6fcf34a15b6d4e063484.js b/web/react-fe/build/precache-manifest.3d7c75ef129f6805cb9ee138e176007f.js similarity index 95% rename from web/react-fe/build/precache-manifest.492ef01b483f6fcf34a15b6d4e063484.js rename to web/react-fe/build/precache-manifest.3d7c75ef129f6805cb9ee138e176007f.js index bb9da73..2c74332 100644 --- a/web/react-fe/build/precache-manifest.492ef01b483f6fcf34a15b6d4e063484.js +++ b/web/react-fe/build/precache-manifest.3d7c75ef129f6805cb9ee138e176007f.js @@ -1,6 +1,6 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "5480d83863637cfe3bd55b7b42877c78", + "revision": "49afe597b0ced692cb98d53ac16824fe", "url": "/index.html" }, { @@ -8,7 +8,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/css/2.10ffe1ee.chunk.css" }, { - "revision": "2a78a8f2f79dd94ec042", + "revision": "2b5ffdcc5f9ea6ef3433", "url": "/static/css/main.bbd4fcb0.chunk.css" }, { @@ -20,8 +20,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/static/js/2.5683fb71.chunk.js.LICENSE.txt" }, { - "revision": "2a78a8f2f79dd94ec042", - "url": "/static/js/main.9ecb237f.chunk.js" + "revision": "2b5ffdcc5f9ea6ef3433", + "url": "/static/js/main.04818dac.chunk.js" }, { "revision": "9e78e51408a4d627057a", diff --git a/web/react-fe/build/service-worker.js b/web/react-fe/build/service-worker.js index c898b73..3e2860b 100644 --- a/web/react-fe/build/service-worker.js +++ b/web/react-fe/build/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/precache-manifest.492ef01b483f6fcf34a15b6d4e063484.js" + "/precache-manifest.3d7c75ef129f6805cb9ee138e176007f.js" ); self.addEventListener('message', (event) => { diff --git a/web/react-fe/build/static/js/main.04818dac.chunk.js b/web/react-fe/build/static/js/main.04818dac.chunk.js new file mode 100644 index 0000000..e8c56e5 --- /dev/null +++ b/web/react-fe/build/static/js/main.04818dac.chunk.js @@ -0,0 +1,2 @@ +(this["webpackJsonpisosim-reactjs"]=this["webpackJsonpisosim-reactjs"]||[]).push([[0],{137:function(e,a,t){e.exports=t(169)},142:function(e,a,t){},143:function(e,a,t){},169:function(e,a,t){"use strict";t.r(a);var n=t(0),r=t.n(n),o=t(14),c=t.n(o),i=(t(142),t(143),t(8)),l=t(9),s=t(12),u=t(11),d=t(5),h=t(13),p=t(21),m=t.n(p),y=t(91),g=t(232),C=t(172),E=t(37),f=t(218),v=t(241),b=t(233),S=function e(){Object(i.a)(this,e),this.baseUrl="http://localhost:8080",this.sendMsgUrl=this.baseUrl+"/iso/v1/send",this.loadMsgUrl=this.baseUrl+"/iso/v1/loadmsg",this.allSpecsUrl=this.baseUrl+"/iso/v1/specs",this.templateUrl=this.baseUrl+"/iso/v1/template",this.parseTraceUrl=this.baseUrl+"/iso/v1/parse",this.saveMsgUrl=this.baseUrl+"/iso/v1/save",this.pinGenUrl=this.baseUrl+"/iso/v1/crypto/pin_gen",this.macGenUrl=this.baseUrl+"/iso/v1/crypto/mac_gen",this.logHistUrl=this.baseUrl+"/iso/v1/websim/msg_hist/last_n"};S.FixedField="Fixed",S.VariableField="Variable",S.BitmappedField="Bitmapped";var A=new S,I=t(239),D=t(214),N=t(215),O=t(216),M=t(217),T=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={show:e.show},t.handleClose=t.handleClose.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"handleClose",value:function(){this.setState({show:!1}),this.props.onClose()}},{key:"componentDidUpdate",value:function(e,a,t){!0===this.props.show&&!1===a.show&&this.setState({show:!0})}},{key:"render",value:function(){return r.a.createElement(I.a,{open:this.state.show,onClose:this.handleClose,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},r.a.createElement(D.a,{id:"alert-dialog-title"},"Alert!"),r.a.createElement(N.a,null,r.a.createElement(O.a,{id:"alert-dialog-description"},this.props.msg)),r.a.createElement(M.a,null,r.a.createElement(C.a,{onClick:this.handleClose,color:"primary"},"OK")))}}]),a}(r.a.Component),R=function(e){function a(e){var t;Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).from=0,t.to=0,t.panID=0,t.field=t.props.field;var n="",r=t.field.PinGenProps;if(0!==t.field.PinGenProps.PANFieldID&&(t.panID=t.field.PinGenProps.PANFieldID),0!==r.PANFieldID&&""!==r.PANExtractParams&&r.PANExtractParams.match("[0-9]+:[0-9]+")){var o=r.PANExtractParams.split(":"),c=Object(E.a)(o,2);t.from=c[0],t.to=c[1]}var l="";if(t.props.isoMsg){var h=t.props.isoMsg.get(t.panID);h&&(n=l=h.state.fieldValue,t.from>=0&&t.to>t.from&&(n=h.state.fieldValue.substring(t.from,t.to)))}else t.state={pinFormat:"ISO0",pan:n,clearPin:"",pinKey:""};return"pin_gen"===t.field.GenType&&(t.state={pinFormat:t.field.PinGenProps.PINFormat,pan:n,originalPan:l,clearPin:t.field.PinGenProps.PINClear,pinKey:t.field.PinGenProps.PINKey,hasError:!1,errorMsg:null}),t.generatePinBlock=t.generatePinBlock.bind(Object(d.a)(t)),t.panValueChanged=t.panValueChanged.bind(Object(d.a)(t)),t.formatChanged=t.formatChanged.bind(Object(d.a)(t)),t.keyValueChanged=t.keyValueChanged.bind(Object(d.a)(t)),t.pinValueChanged=t.pinValueChanged.bind(Object(d.a)(t)),t.doNothing=t.doNothing.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"doNothing",value:function(){}},{key:"componentDidUpdate",value:function(e,a,t){if(this.props.isoMsg){var n=this.props.isoMsg.get(this.panID);if(n&&this.state.originalPan!==n.state.fieldValue){var r=n.state.fieldValue,o="";o=this.from>=0&&this.to>this.from?n.state.fieldValue.substring(this.from,this.to):n.state.fieldValue,this.setState({pan:o,originalPan:r})}}}},{key:"generatePinBlock",value:function(){var e=this;if(""!==this.state.pan)if(""===this.state.clearPin||this.state.clearPin.length<4||this.state.clearPin.length>12)this.setState({pinError:!0});else if(""===this.state.pinKey||16!==this.state.pinKey.length&&32!==this.state.pinKey.length)this.setState({keyError:!0});else{this.setState({keyError:!1,pinError:!1,panError:!1});var a={PINClear:this.state.clearPin,PINFormat:this.state.pinFormat,PINKey:this.state.pinKey,PAN:this.state.pan};m.a.post(A.pinGenUrl,JSON.stringify(a)).then((function(a){e.props.setPinBlock(a.data.PinBlock)})).catch((function(a){var t="Failed to generate PIN block: ";a.error?t+=a.error:t+=a,e.setState({hasError:!0,errorMsg:t}),console.log("error= ",a)}))}else this.setState({panError:!0})}},{key:"formatChanged",value:function(e){this.setState({pinFormat:e.target.value})}},{key:"pinValueChanged",value:function(e){this.setState({clearPin:e.target.value})}},{key:"panValueChanged",value:function(e){this.setState({pan:e.target.value})}},{key:"keyValueChanged",value:function(e){this.setState({pinKey:e.target.value})}},{key:"render",value:function(){return"pin_gen"!==this.field.GenType?null:r.a.createElement(r.a.Fragment,null,r.a.createElement(T,{show:this.state.hasError,msg:this.state.errorMsg,onClose:this.doNothing}),r.a.createElement(b.a,{border:1,borderColor:"primary.main",borderRadius:4},r.a.createElement("div",{style:{paddingBottom:"10px",padding:"5px"}},r.a.createElement(f.a,{container:!0,spacing:0},r.a.createElement(f.a,{container:!0,spacing:1,alignItems:"flex-start"},r.a.createElement(f.a,{item:!0,xs:3},r.a.createElement(g.a,{size:"small",label:"Clear PIN",value:this.state.clearPin,onChange:this.pinValueChanged,error:this.state.pinError,variant:"outlined",margin:"dense"})),r.a.createElement(f.a,{item:!0,xs:6},r.a.createElement(g.a,{label:"PIN Key",value:this.state.pinKey,variant:"outlined",onChange:this.keyValueChanged,error:this.state.keyError,margin:"dense",fullWidth:!0})),r.a.createElement(f.a,{item:!0,xs:3},r.a.createElement(g.a,{size:"small",value:this.state.pinFormat,select:!0,fullWidth:!0,label:"Format",onChange:this.formatChanged,variant:"outlined",margin:"dense"},r.a.createElement(v.a,{value:"ISO0"},"ISO-0"),r.a.createElement(v.a,{value:"ISO1"},"ISO-1"),r.a.createElement(v.a,{value:"ISO3"},"ISO-3"),r.a.createElement(v.a,{value:"IBM3264"},"IBM-3264")))),r.a.createElement(f.a,{container:!0,spacing:1,alignItems:"flex-start"},r.a.createElement(f.a,{item:!0,xs:12},r.a.createElement(g.a,{label:"PAN",value:this.state.pan,variant:"outlined",onChange:this.panValueChanged,error:this.state.panError,margin:"dense"}))),r.a.createElement(f.a,{container:!0,spacing:0,justify:"flex-end",alignItems:"flex-end"},r.a.createElement(f.a,{item:!0,xs:!0},r.a.createElement("div",{style:{float:"right"}},r.a.createElement(C.a,{size:"small",variant:"contained",onClick:this.generatePinBlock,color:"primary"},"Generate"))))))))}}]),a}(r.a.Component),U=new(function(){function e(a){Object(i.a)(this,e),this.validate=this.validate.bind(this)}return Object(l.a)(e,[{key:"validate",value:function(e,a,t){var n=!1;e.Type===S.FixedField&&("ASCII"===e.DataEncoding||"EBCDIC"===e.DataEncoding?a.length!==e.FixedSize&&(t.push('\u2b55 "'.concat(e.Name,'" should have a fixed size of ').concat(e.FixedSize," but has ").concat(a.length)),n=!0):a.length!==2*e.FixedSize&&(t.push('\u2b55 "'.concat(e.Name,'" should have a fixed size of ').concat(e.FixedSize," but has ").concat(a.length/2)),n=!0));var r=!1;if("BCD"!==e.DataEncoding&&"BINARY"!==e.DataEncoding||(a.length%2!==0&&(t.push('\u2b55 "'.concat(e.Name,'" should have even number of characters!')),n=!0,r=!0),"BINARY"!==e.DataEncoding||a.match("^[0-9,a-f,A-F]+$")||(t.push('\u2b55 "'.concat(e.Name,'" supports only hex i.e 0-9,a-z,A-Z')),n=!0),"BCD"!==e.DataEncoding||a.match("^[0-9]+$")||(t.push('\u2b55 "'.concat(e.Name,'" supports only bcd i.e 0-9')),n=!0)),!r&&e.Type===S.VariableField){var o=a.length;"BCD"!==e.DataEncoding&&"BINARY"!==e.DataEncoding||(o=a.length/2),e.MinSize>0&&a.length0&&a.length>e.MaxSize&&(t.push('\u2b55 "'.concat(e.Name," size of ").concat(o," is greater than required max of ").concat(e.MaxSize,'" ')),n=!0)}return n}}]),e}()),k=function(){function e(){Object(i.a)(this,e)}return Object(l.a)(e,null,[{key:"addFieldContent",value:function(a,t,n,r){var o=n.get(a.ID);o.state.selected&&(U.validate(a,o.state.fieldValue,r)?o.setError(!0):o.setError(!1),t.push({ID:a.ID,Name:a.Name,Value:o.state.fieldValue})),a.Children.forEach((function(a){o.state.selected&&e.addFieldContent(a,t,n,r)}))}},{key:"getMsgContent",value:function(a,t,n){a.get("msg_template").fields.forEach((function(r){e.addFieldContent(r,t,a,n)}))}}]),e}(),w=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).field=t.props.field,t.state={macAlgo:t.field.MacGenProps.MacAlgo,macKey:t.field.MacGenProps.MacKey,hasError:!1,errorMsg:null},t.generateMac=t.generateMac.bind(Object(d.a)(t)),t.algoChanged=t.algoChanged.bind(Object(d.a)(t)),t.keyValueChanged=t.keyValueChanged.bind(Object(d.a)(t)),t.doNothing=t.doNothing.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"doNothing",value:function(){this.setState({hasError:!1,errorMsg:null})}},{key:"generateMac",value:function(){var e=this;if(""===this.state.macKey||16!==this.state.macKey.length&&32!==this.state.macKey.length)this.setState({keyError:!0});else{this.setState({keyError:!1});var a=[],t=[],n={};if(void 0!==this.props.macData){if(0===this.props.macData.length)return void this.setState({hasError:!0,errorMsg:"Invalid MacData supplied."});this.setState({hasError:!1,errorMsg:null});var r=this.props.macData;n={mac_algo:this.state.macAlgo,mac_key:this.state.macKey,mac_data:r}}else{if(k.getMsgContent(this.props.isoMsg,a,t),t.length>0){var o="";return t.forEach((function(e){return o+=e+"\n"})),void this.setState({hasError:!0,errorMsg:o})}n={mac_algo:this.state.macAlgo,mac_key:this.state.macKey,spec_id:this.props.isoMsg.get("spec_id"),msg_id:this.props.isoMsg.get("msg_id"),parsed_fields:a}}m.a.post(A.macGenUrl,JSON.stringify(n)).then((function(a){e.setState({hasError:!1,errorMsg:null}),e.props.setMac(a.data.Mac)})).catch((function(a){var t="Failed to generate MAC: ";a.error?400===a.response.status&&(t+=a.response.data.error):t+=a,e.setState({hasError:!0,errorMsg:t}),console.log("error= ",a)}))}}},{key:"algoChanged",value:function(e){this.setState({macAlgo:e.target.value})}},{key:"keyValueChanged",value:function(e){this.setState({macKey:e.target.value})}},{key:"render",value:function(){return"mac_gen"!==this.field.GenType?null:r.a.createElement(r.a.Fragment,null,r.a.createElement(T,{show:this.state.hasError,msg:this.state.errorMsg,onClose:this.doNothing}),r.a.createElement(b.a,{border:1,borderColor:"primary.main",borderRadius:4},r.a.createElement("div",{style:{paddingBottom:"10px",padding:"5px"}},r.a.createElement(f.a,{container:!0,spacing:0},r.a.createElement(f.a,{container:!0,spacing:1,alignItems:"flex-start"},r.a.createElement(f.a,{item:!0,xs:6},r.a.createElement(g.a,{label:"MAC Key",value:this.state.macKey,variant:"outlined",onChange:this.keyValueChanged,error:this.state.keyError,margin:"dense",fullWidth:!0})),r.a.createElement(f.a,{item:!0,xs:4},r.a.createElement(g.a,{size:"small",value:this.state.macAlgo,select:!0,fullWidth:!0,label:"MAC Algorithm",onChange:this.algoChanged,variant:"outlined",margin:"dense"},r.a.createElement(v.a,{value:"ANSIX9_19"},"ANSIX9_19")))),r.a.createElement(f.a,{container:!0,spacing:0,justify:"flex-end",alignItems:"flex-end"},r.a.createElement(f.a,{item:!0,xs:!0},r.a.createElement("div",{style:{float:"right"}},r.a.createElement(C.a,{size:"small",variant:"contained",onClick:this.generateMac,color:"primary"},"Generate"))))))))}}]),a}(r.a.Component),P=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={show:t.props.show,value:t.props.value},t.closeThis=t.closeThis.bind(Object(d.a)(t)),t.valueChanged=t.valueChanged.bind(Object(d.a)(t)),t.setValue=t.setValue.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"valueChanged",value:function(e){this.setState({value:e.target.value})}},{key:"closeThis",value:function(){this.setState({show:!0}),this.props.onClose(this.state.value)}},{key:"setValue",value:function(e){this.setState({value:e})}},{key:"componentDidUpdate",value:function(e,a,t){!1===e.show&&!0===this.props.show&&!1===this.state.show?this.setState({show:!0,value:this.props.value}):!1===this.props.show&&!0===this.state.show&&this.setState({show:!1,value:this.props.value})}},{key:"render",value:function(){var e=null;return this.props.readOnly||("pin_gen"===this.props.field.GenType?e=r.a.createElement(R,{field:this.props.field,setPinBlock:this.setValue,isoMsg:this.props.isoMsg}):"mac_gen"===this.props.field.GenType&&(e=r.a.createElement(w,{field:this.props.field,setMac:this.setValue,isoMsg:this.props.isoMsg}))),!0===this.state.show?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{style:{width:"100%",height:"100%",paddingTop:"20px",paddingBottom:"20px"}},e,r.a.createElement("div",{style:{paddingBottom:"5px",paddingTop:"10px"}},r.a.createElement(g.a,{fullWidth:!0,rows:4,multiline:!0,variant:"outlined",label:"Field Value",style:{paddingBottom:"5px"},onChange:this.valueChanged,disabled:this.props.readOnly,value:this.state.value}),r.a.createElement("div",{style:{float:"right",paddingBottom:"5px"}},r.a.createElement(C.a,{size:"small",variant:"contained",color:"primary",onClick:this.closeThis}," OK "))))):null}}]),a}(r.a.Component),F=t(122),L=t(118),B=t(237),j=t(240),x=function(){function e(){Object(i.a)(this,e)}return Object(l.a)(e,null,[{key:"generateValue",value:function(e){if("date_time"==e.Hint.Type){if(e.Hint.Format){var a=new Date,t=e.Hint.Format,n=t.indexOf("MM");return-1!=n&&(t=function(e,a,t){var n=t.getMonth()+1,r="";return r=n<10?"0"+n:""+n,e=e.substr(0,a)+r+e.substr(a+2)}(t,n,a)),-1!=(n=t.indexOf("dd"))&&(t=function(e,a,t){var n=t.getDate(),r="";return r=n<10?"0"+n:""+n,e.substr(0,a)+r+e.substr(a+2)}(t,n,a)),-1!=(n=t.indexOf("HH"))&&(t=function(e,a,t){var n=t.getHours(),r="";return r=n<10?"0"+n:""+n,e=e.substr(0,a)+r+e.substr(a+2)}(t,n,a)),-1!=(n=t.indexOf("mm"))&&(t=function(e,a,t){var n=t.getMinutes(),r="";return r=n<10?"0"+n:""+n,e=e.substr(0,a)+r+e.substr(a+2)}(t,n,a)),-1!=(n=t.indexOf("ss"))&&(t=function(e,a,t){var n=t.getSeconds(),r="";return r=n<10?"0"+n:""+n,e=e.substr(0,a)+r+e.substr(a+2)}(t,n,a)),t}return""}return""}}]),e}(),V=t(235);function G(e){var a=r.a.useState(H[102]),t=Object(E.a)(a,2),n=t[0],o=t[1];return r.a.useEffect((function(){0==e.disabled&&(e.value?H.forEach((function(a){a.code==e.value&&o(a)})):e.valueChanged(n.code))}),[]),r.a.useEffect((function(){H.forEach((function(a){a.code!=e.value||o(a)}))}),[e.value]),r.a.createElement(V.a,{id:"ctry-code-box",options:H,disabled:e.disabled,value:n,onChange:function(a,t){null!=t&&(o(t),e.valueChanged(t.code))},getOptionLabel:function(e){return e.country},style:{width:"80%"},renderInput:function(e){return r.a.createElement(g.a,Object.assign({},e,{margin:"dense",label:"Country Code",variant:"standard"}))}})}var H=[{code:"004",country:"Afghanistan"},{code:"008",country:"Albania"},{code:"010",country:"Antarctica"},{code:"012",country:"Algeria"},{code:"016",country:"American Samoa"},{code:"020",country:"Andorra"},{code:"024",country:"Angola"},{code:"028",country:"Antigua and Barbuda"},{code:"031",country:"Azerbaijan"},{code:"032",country:"Argentina"},{code:"036",country:"Australia"},{code:"040",country:"Austria"},{code:"044",country:"Bahamas"},{code:"048",country:"Bahrain"},{code:"050",country:"Bangladesh"},{code:"051",country:"Armenia"},{code:"052",country:"Barbados"},{code:"056",country:"Belgium"},{code:"060",country:"Bermuda"},{code:"064",country:"Bhutan"},{code:"068",country:"Bolivia (Plurinational State of)"},{code:"070",country:"Bosnia and Herzegovina"},{code:"072",country:"Botswana"},{code:"074",country:"Bouvet Island"},{code:"076",country:"Brazil"},{code:"084",country:"Belize"},{code:"086",country:"British Indian Ocean Territory"},{code:"090",country:"Solomon Islands"},{code:"092",country:"Virgin Islands (British)"},{code:"096",country:"Brunei Darussalam"},{code:"100",country:"Bulgaria"},{code:"104",country:"Myanmar"},{code:"108",country:"Burundi"},{code:"112",country:"Belarus"},{code:"116",country:"Cambodia"},{code:"120",country:"Cameroon"},{code:"124",country:"Canada"},{code:"132",country:"Cabo Verde"},{code:"136",country:"Cayman Islands"},{code:"140",country:"Central African Republic"},{code:"144",country:"Sri Lanka"},{code:"148",country:"Chad"},{code:"152",country:"Chile"},{code:"156",country:"China"},{code:"158",country:"Taiwan, Province of China"},{code:"162",country:"Christmas Island"},{code:"166",country:"Cocos (Keeling) Islands"},{code:"170",country:"Colombia"},{code:"174",country:"Comoros"},{code:"175",country:"Mayotte"},{code:"178",country:"Congo"},{code:"180",country:"Congo, Democratic Republic of the"},{code:"184",country:"Cook Islands"},{code:"188",country:"Costa Rica"},{code:"191",country:"Croatia"},{code:"192",country:"Cuba"},{code:"196",country:"Cyprus"},{code:"203",country:"Czechia"},{code:"204",country:"Benin"},{code:"208",country:"Denmark"},{code:"212",country:"Dominica"},{code:"214",country:"Dominican Republic"},{code:"218",country:"Ecuador"},{code:"222",country:"El Salvador"},{code:"226",country:"Equatorial Guinea"},{code:"231",country:"Ethiopia"},{code:"232",country:"Eritrea"},{code:"233",country:"Estonia"},{code:"234",country:"Faroe Islands"},{code:"238",country:"Falkland Islands (Malvinas)"},{code:"239",country:"South Georgia and the South Sandwich Islands"},{code:"242",country:"Fiji"},{code:"246",country:"Finland"},{code:"248",country:"\xc5land Islands"},{code:"250",country:"France"},{code:"254",country:"French Guiana"},{code:"258",country:"French Polynesia"},{code:"260",country:"French Southern Territories"},{code:"262",country:"Djibouti"},{code:"266",country:"Gabon"},{code:"268",country:"Georgia"},{code:"270",country:"Gambia"},{code:"275",country:"Palestine, State of"},{code:"276",country:"Germany"},{code:"288",country:"Ghana"},{code:"292",country:"Gibraltar"},{code:"296",country:"Kiribati"},{code:"300",country:"Greece"},{code:"304",country:"Greenland"},{code:"308",country:"Grenada"},{code:"312",country:"Guadeloupe"},{code:"316",country:"Guam"},{code:"320",country:"Guatemala"},{code:"324",country:"Guinea"},{code:"328",country:"Guyana"},{code:"332",country:"Haiti"},{code:"334",country:"Heard Island and McDonald Islands"},{code:"336",country:"Holy See"},{code:"340",country:"Honduras"},{code:"344",country:"Hong Kong"},{code:"348",country:"Hungary"},{code:"352",country:"Iceland"},{code:"356",country:"India"},{code:"360",country:"Indonesia"},{code:"364",country:"Iran (Islamic Republic of)"},{code:"368",country:"Iraq"},{code:"372",country:"Ireland"},{code:"376",country:"Israel"},{code:"380",country:"Italy"},{code:"384",country:"C\xf4te d'Ivoire"},{code:"388",country:"Jamaica"},{code:"392",country:"Japan"},{code:"398",country:"Kazakhstan"},{code:"400",country:"Jordan"},{code:"404",country:"Kenya"},{code:"408",country:"Korea (Democratic People's Republic of)"},{code:"410",country:"Korea, Republic of"},{code:"414",country:"Kuwait"},{code:"417",country:"Kyrgyzstan"},{code:"418",country:"Lao People's Democratic Republic"},{code:"422",country:"Lebanon"},{code:"426",country:"Lesotho"},{code:"428",country:"Latvia"},{code:"430",country:"Liberia"},{code:"434",country:"Libya"},{code:"438",country:"Liechtenstein"},{code:"440",country:"Lithuania"},{code:"442",country:"Luxembourg"},{code:"446",country:"Macao"},{code:"450",country:"Madagascar"},{code:"454",country:"Malawi"},{code:"458",country:"Malaysia"},{code:"462",country:"Maldives"},{code:"466",country:"Mali"},{code:"470",country:"Malta"},{code:"474",country:"Martinique"},{code:"478",country:"Mauritania"},{code:"480",country:"Mauritius"},{code:"484",country:"Mexico"},{code:"492",country:"Monaco"},{code:"496",country:"Mongolia"},{code:"498",country:"Moldova, Republic of"},{code:"499",country:"Montenegro"},{code:"500",country:"Montserrat"},{code:"504",country:"Morocco"},{code:"508",country:"Mozambique"},{code:"512",country:"Oman"},{code:"516",country:"Namibia"},{code:"520",country:"Nauru"},{code:"524",country:"Nepal"},{code:"528",country:"Netherlands"},{code:"531",country:"Cura\xe7ao"},{code:"533",country:"Aruba"},{code:"534",country:"Sint Maarten (Dutch part)"},{code:"535",country:"Bonaire, Sint Eustatius and Saba"},{code:"540",country:"New Caledonia"},{code:"548",country:"Vanuatu"},{code:"554",country:"New Zealand"},{code:"558",country:"Nicaragua"},{code:"562",country:"Niger"},{code:"566",country:"Nigeria"},{code:"570",country:"Niue"},{code:"574",country:"Norfolk Island"},{code:"578",country:"Norway"},{code:"580",country:"Northern Mariana Islands"},{code:"581",country:"United States Minor Outlying Islands"},{code:"583",country:"Micronesia (Federated States of)"},{code:"584",country:"Marshall Islands"},{code:"585",country:"Palau"},{code:"586",country:"Pakistan"},{code:"591",country:"Panama"},{code:"598",country:"Papua New Guinea"},{code:"600",country:"Paraguay"},{code:"604",country:"Peru"},{code:"608",country:"Philippines"},{code:"612",country:"Pitcairn"},{code:"616",country:"Poland"},{code:"620",country:"Portugal"},{code:"624",country:"Guinea-Bissau"},{code:"626",country:"Timor-Leste"},{code:"630",country:"Puerto Rico"},{code:"634",country:"Qatar"},{code:"638",country:"R\xe9union"},{code:"642",country:"Romania"},{code:"643",country:"Russian Federation"},{code:"646",country:"Rwanda"},{code:"652",country:"Saint Barth\xe9lemy"},{code:"654",country:"Saint Helena, Ascension and Tristan da Cunha"},{code:"659",country:"Saint Kitts and Nevis"},{code:"660",country:"Anguilla"},{code:"662",country:"Saint Lucia"},{code:"663",country:"Saint Martin (French part)"},{code:"666",country:"Saint Pierre and Miquelon"},{code:"670",country:"Saint Vincent and the Grenadines"},{code:"674",country:"San Marino"},{code:"678",country:"Sao Tome and Principe"},{code:"682",country:"Saudi Arabia"},{code:"686",country:"Senegal"},{code:"688",country:"Serbia"},{code:"690",country:"Seychelles"},{code:"694",country:"Sierra Leone"},{code:"702",country:"Singapore"},{code:"703",country:"Slovakia"},{code:"704",country:"Viet Nam"},{code:"705",country:"Slovenia"},{code:"706",country:"Somalia"},{code:"710",country:"South Africa"},{code:"716",country:"Zimbabwe"},{code:"724",country:"Spain"},{code:"728",country:"South Sudan"},{code:"729",country:"Sudan"},{code:"732",country:"Western Sahara"},{code:"740",country:"Suriname"},{code:"744",country:"Svalbard and Jan Mayen"},{code:"748",country:"Eswatini"},{code:"752",country:"Sweden"},{code:"756",country:"Switzerland"},{code:"760",country:"Syrian Arab Republic"},{code:"762",country:"Tajikistan"},{code:"764",country:"Thailand"},{code:"768",country:"Togo"},{code:"772",country:"Tokelau"},{code:"776",country:"Tonga"},{code:"780",country:"Trinidad and Tobago"},{code:"784",country:"United Arab Emirates"},{code:"788",country:"Tunisia"},{code:"792",country:"Turkey"},{code:"795",country:"Turkmenistan"},{code:"796",country:"Turks and Caicos Islands"},{code:"798",country:"Tuvalu"},{code:"800",country:"Uganda"},{code:"804",country:"Ukraine"},{code:"807",country:"North Macedonia"},{code:"818",country:"Egypt"},{code:"826",country:"United Kingdom of Great Britain and Northern Ireland"},{code:"831",country:"Guernsey"},{code:"832",country:"Jersey"},{code:"833",country:"Isle of Man"},{code:"834",country:"Tanzania, United Republic of"},{code:"840",country:"United States of America"},{code:"850",country:"Virgin Islands (U.S.)"},{code:"854",country:"Burkina Faso"},{code:"858",country:"Uruguay"},{code:"860",country:"Uzbekistan"},{code:"862",country:"Venezuela (Bolivarian Republic of)"},{code:"876",country:"Wallis and Futuna"},{code:"882",country:"Samoa"},{code:"887",country:"Yemen"},{code:"894",country:"Zambia"}];function K(e){var a=r.a.useState(_[108]),t=Object(E.a)(a,2),n=t[0],o=t[1];return r.a.useEffect((function(){0==e.disabled&&(e.value?_.forEach((function(a){a.numericCode==e.value&&o(a)})):e.valueChanged(n.numericCode))}),[]),r.a.useEffect((function(){_.forEach((function(a){a.numericCode!=e.value||o(a)}))}),[e.value]),r.a.createElement(V.a,{id:"currency-code-box",disabled:e.disabled,options:_,value:n,onChange:function(a,t){null!=t&&(o(t),e.valueChanged(t.numericCode))},getOptionLabel:function(e){return e.currency},style:{width:"80%"},renderInput:function(e){return r.a.createElement(g.a,Object.assign({},e,{margin:"dense",label:"Currency Code",variant:"standard"}))}})}var _=[{country:"AFGHANISTAN",currency:"Afghani",alphaCode:"AFN",numericCode:"971"},{country:"ALBANIA",currency:"Lek",alphaCode:"ALL",numericCode:"008"},{country:"ALGERIA",currency:"Algerian Dinar",alphaCode:"DZD",numericCode:"012"},{country:"AMERICAN SAMOA",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"ANDORRA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"ANGOLA",currency:"Kwanza",alphaCode:"AOA",numericCode:"973"},{country:"ANGUILLA",currency:"East Caribbean Dollar",alphaCode:"XCD",numericCode:"951"},{country:"ANTIGUA AND BARBUDA",currency:"East Caribbean Dollar",alphaCode:"XCD",numericCode:"951"},{country:"ARGENTINA",currency:"Argentine Peso",alphaCode:"ARS",numericCode:"032"},{country:"ARMENIA",currency:"Armenian Dram",alphaCode:"AMD",numericCode:"051"},{country:"ARUBA",currency:"Aruban Florin",alphaCode:"AWG",numericCode:"533"},{country:"AUSTRALIA",currency:"Australian Dollar",alphaCode:"AUD",numericCode:"036"},{country:"AUSTRIA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"AZERBAIJAN",currency:"Azerbaijanian Manat",alphaCode:"AZN",numericCode:"944"},{country:"BAHAMAS (THE)",currency:"Bahamian Dollar",alphaCode:"BSD",numericCode:"044"},{country:"BAHRAIN",currency:"Bahraini Dinar",alphaCode:"BHD",numericCode:"048"},{country:"BANGLADESH",currency:"Taka",alphaCode:"BDT",numericCode:"050"},{country:"BARBADOS",currency:"Barbados Dollar",alphaCode:"BBD",numericCode:"052"},{country:"BELARUS",currency:"Belarussian Ruble",alphaCode:"BYN",numericCode:"933"},{country:"BELGIUM",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"BELIZE",currency:"Belize Dollar",alphaCode:"BZD",numericCode:"084"},{country:"BENIN",currency:"CFA Franc BCEAO",alphaCode:"XOF",numericCode:"952"},{country:"BERMUDA",currency:"Bermudian Dollar",alphaCode:"BMD",numericCode:"060"},{country:"BHUTAN",currency:"Ngultrum",alphaCode:"BTN",numericCode:"064"},{country:"BHUTAN",currency:"Indian Rupee",alphaCode:"INR",numericCode:"356"},{country:"BOLIVIA (PLURINATIONAL STATE OF)",currency:"Boliviano",alphaCode:"BOB",numericCode:"068"},{country:"BOLIVIA (PLURINATIONAL STATE OF)",currency:"Mvdol",alphaCode:"BOV",numericCode:"984"},{country:"BONAIRE, SINT EUSTATIUS AND SABA",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"BOSNIA AND HERZEGOVINA",currency:"Convertible Mark",alphaCode:"BAM",numericCode:"977"},{country:"BOTSWANA",currency:"Pula",alphaCode:"BWP",numericCode:"072"},{country:"BOUVET ISLAND",currency:"Norwegian Krone",alphaCode:"NOK",numericCode:"578"},{country:"BRAZIL",currency:"Brazilian Real",alphaCode:"BRL",numericCode:"986"},{country:"BRITISH INDIAN OCEAN TERRITORY (THE)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"BRUNEI DARUSSALAM",currency:"Brunei Dollar",alphaCode:"BND",numericCode:"096"},{country:"BULGARIA",currency:"Bulgarian Lev",alphaCode:"BGN",numericCode:"975"},{country:"BURKINA FASO",currency:"CFA Franc BCEAO",alphaCode:"XOF",numericCode:"952"},{country:"BURUNDI",currency:"Burundi Franc",alphaCode:"BIF",numericCode:"108"},{country:"CABO VERDE",currency:"Cabo Verde Escudo",alphaCode:"CVE",numericCode:"132"},{country:"CAMBODIA",currency:"Riel",alphaCode:"KHR",numericCode:"116"},{country:"CAMEROON",currency:"CFA Franc BEAC",alphaCode:"XAF",numericCode:"950"},{country:"CANADA",currency:"Canadian Dollar",alphaCode:"CAD",numericCode:"124"},{country:"CAYMAN ISLANDS (THE)",currency:"Cayman Islands Dollar",alphaCode:"KYD",numericCode:"136"},{country:"CENTRAL AFRICAN REPUBLIC (THE)",currency:"CFA Franc BEAC",alphaCode:"XAF",numericCode:"950"},{country:"CHAD",currency:"CFA Franc BEAC",alphaCode:"XAF",numericCode:"950"},{country:"CHILE",currency:"Unidad de Fomento",alphaCode:"CLF",numericCode:"990"},{country:"CHILE",currency:"Chilean Peso",alphaCode:"CLP",numericCode:"152"},{country:"CHINA",currency:"Yuan Renminbi",alphaCode:"CNY",numericCode:"156"},{country:"CHRISTMAS ISLAND",currency:"Australian Dollar",alphaCode:"AUD",numericCode:"036"},{country:"COCOS (KEELING) ISLANDS (THE)",currency:"Australian Dollar",alphaCode:"AUD",numericCode:"036"},{country:"COLOMBIA",currency:"Colombian Peso",alphaCode:"COP",numericCode:"170"},{country:"COLOMBIA",currency:"Unidad de Valor Real",alphaCode:"COU",numericCode:"970"},{country:"COMOROS (THE)",currency:"Comoro Franc",alphaCode:"KMF",numericCode:"174"},{country:"CONGO (THE DEMOCRATIC REPUBLIC OF THE)",currency:"Congolese Franc",alphaCode:"CDF",numericCode:"976"},{country:"CONGO (THE)",currency:"CFA Franc BEAC",alphaCode:"XAF",numericCode:"950"},{country:"COOK ISLANDS (THE)",currency:"New Zealand Dollar",alphaCode:"NZD",numericCode:"554"},{country:"COSTA RICA",currency:"Costa Rican Colon",alphaCode:"CRC",numericCode:"188"},{country:"CROATIA",currency:"Kuna",alphaCode:"HRK",numericCode:"191"},{country:"CUBA",currency:"Peso Convertible",alphaCode:"CUC",numericCode:"931"},{country:"CUBA",currency:"Cuban Peso",alphaCode:"CUP",numericCode:"192"},{country:"CURA\xc7AO",currency:"Netherlands Antillean Guilder",alphaCode:"ANG",numericCode:"532"},{country:"CYPRUS",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"CZECH REPUBLIC (THE)",currency:"Czech Koruna",alphaCode:"CZK",numericCode:"203"},{country:"C\xd4TE D'IVOIRE",currency:"CFA Franc BCEAO",alphaCode:"XOF",numericCode:"952"},{country:"DENMARK",currency:"Danish Krone",alphaCode:"DKK",numericCode:"208"},{country:"DJIBOUTI",currency:"Djibouti Franc",alphaCode:"DJF",numericCode:"262"},{country:"DOMINICA",currency:"East Caribbean Dollar",alphaCode:"XCD",numericCode:"951"},{country:"DOMINICAN REPUBLIC (THE)",currency:"Dominican Peso",alphaCode:"DOP",numericCode:"214"},{country:"ECUADOR",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"EGYPT",currency:"Egyptian Pound",alphaCode:"EGP",numericCode:"818"},{country:"EL SALVADOR",currency:"El Salvador Colon",alphaCode:"SVC",numericCode:"222"},{country:"EL SALVADOR",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"EQUATORIAL GUINEA",currency:"CFA Franc BEAC",alphaCode:"XAF",numericCode:"950"},{country:"ERITREA",currency:"Nakfa",alphaCode:"ERN",numericCode:"232"},{country:"ESTONIA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"ETHIOPIA",currency:"Ethiopian Birr",alphaCode:"ETB",numericCode:"230"},{country:"EUROPEAN UNION",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"FALKLAND ISLANDS (THE) [MALVINAS]",currency:"Falkland Islands Pound",alphaCode:"FKP",numericCode:"238"},{country:"FAROE ISLANDS (THE)",currency:"Danish Krone",alphaCode:"DKK",numericCode:"208"},{country:"FIJI",currency:"Fiji Dollar",alphaCode:"FJD",numericCode:"242"},{country:"FINLAND",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"FRANCE",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"FRENCH GUIANA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"FRENCH POLYNESIA",currency:"CFP Franc",alphaCode:"XPF",numericCode:"953"},{country:"FRENCH SOUTHERN TERRITORIES (THE)",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"GABON",currency:"CFA Franc BEAC",alphaCode:"XAF",numericCode:"950"},{country:"GAMBIA (THE)",currency:"Dalasi",alphaCode:"GMD",numericCode:"270"},{country:"GEORGIA",currency:"Lari",alphaCode:"GEL",numericCode:"981"},{country:"GERMANY",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"GHANA",currency:"Ghana Cedi",alphaCode:"GHS",numericCode:"936"},{country:"GIBRALTAR",currency:"Gibraltar Pound",alphaCode:"GIP",numericCode:"292"},{country:"GREECE",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"GREENLAND",currency:"Danish Krone",alphaCode:"DKK",numericCode:"208"},{country:"GRENADA",currency:"East Caribbean Dollar",alphaCode:"XCD",numericCode:"951"},{country:"GUADELOUPE",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"GUAM",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"GUATEMALA",currency:"Quetzal",alphaCode:"GTQ",numericCode:"320"},{country:"GUERNSEY",currency:"Pound Sterling",alphaCode:"GBP",numericCode:"826"},{country:"GUINEA",currency:"Guinea Franc",alphaCode:"GNF",numericCode:"324"},{country:"GUINEA-BISSAU",currency:"CFA Franc BCEAO",alphaCode:"XOF",numericCode:"952"},{country:"GUYANA",currency:"Guyana Dollar",alphaCode:"GYD",numericCode:"328"},{country:"HAITI",currency:"Gourde",alphaCode:"HTG",numericCode:"332"},{country:"HAITI",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"HEARD ISLAND AND McDONALD ISLANDS",currency:"Australian Dollar",alphaCode:"AUD",numericCode:"036"},{country:"HOLY SEE (THE)",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"HONDURAS",currency:"Lempira",alphaCode:"HNL",numericCode:"340"},{country:"HONG KONG",currency:"Hong Kong Dollar",alphaCode:"HKD",numericCode:"344"},{country:"HUNGARY",currency:"Forint",alphaCode:"HUF",numericCode:"348"},{country:"ICELAND",currency:"Iceland Krona",alphaCode:"ISK",numericCode:"352"},{country:"INDIA",currency:"Indian Rupee",alphaCode:"INR",numericCode:"356"},{country:"INDONESIA",currency:"Rupiah",alphaCode:"IDR",numericCode:"360"},{country:"INTERNATIONAL MONETARY FUND (IMF) ",currency:"SDR (Special Drawing Right)",alphaCode:"XDR",numericCode:"960"},{country:"IRAN (ISLAMIC REPUBLIC OF)",currency:"Iranian Rial",alphaCode:"IRR",numericCode:"364"},{country:"IRAQ",currency:"Iraqi Dinar",alphaCode:"IQD",numericCode:"368"},{country:"IRELAND",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"ISLE OF MAN",currency:"Pound Sterling",alphaCode:"GBP",numericCode:"826"},{country:"ISRAEL",currency:"New Israeli Sheqel",alphaCode:"ILS",numericCode:"376"},{country:"ITALY",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"JAMAICA",currency:"Jamaican Dollar",alphaCode:"JMD",numericCode:"388"},{country:"JAPAN",currency:"Yen",alphaCode:"JPY",numericCode:"392"},{country:"JERSEY",currency:"Pound Sterling",alphaCode:"GBP",numericCode:"826"},{country:"JORDAN",currency:"Jordanian Dinar",alphaCode:"JOD",numericCode:"400"},{country:"KAZAKHSTAN",currency:"Tenge",alphaCode:"KZT",numericCode:"398"},{country:"KENYA",currency:"Kenyan Shilling",alphaCode:"KES",numericCode:"404"},{country:"KIRIBATI",currency:"Australian Dollar",alphaCode:"AUD",numericCode:"036"},{country:"KOREA (THE DEMOCRATIC PEOPLE\u2019S REPUBLIC OF)",currency:"North Korean Won",alphaCode:"KPW",numericCode:"408"},{country:"KOREA (THE REPUBLIC OF)",currency:"Won",alphaCode:"KRW",numericCode:"410"},{country:"KUWAIT",currency:"Kuwaiti Dinar",alphaCode:"KWD",numericCode:"414"},{country:"KYRGYZSTAN",currency:"Som",alphaCode:"KGS",numericCode:"417"},{country:"LAO PEOPLE\u2019S DEMOCRATIC REPUBLIC (THE)",currency:"Kip",alphaCode:"LAK",numericCode:"418"},{country:"LATVIA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"LEBANON",currency:"Lebanese Pound",alphaCode:"LBP",numericCode:"422"},{country:"LESOTHO",currency:"Loti",alphaCode:"LSL",numericCode:"426"},{country:"LESOTHO",currency:"Rand",alphaCode:"ZAR",numericCode:"710"},{country:"LIBERIA",currency:"Liberian Dollar",alphaCode:"LRD",numericCode:"430"},{country:"LIBYA",currency:"Libyan Dinar",alphaCode:"LYD",numericCode:"434"},{country:"LIECHTENSTEIN",currency:"Swiss Franc",alphaCode:"CHF",numericCode:"756"},{country:"LITHUANIA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"LUXEMBOURG",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"MACAO",currency:"Pataca",alphaCode:"MOP",numericCode:"446"},{country:"MADAGASCAR",currency:"Malagasy Ariary",alphaCode:"MGA",numericCode:"969"},{country:"MALAWI",currency:"Kwacha",alphaCode:"MWK",numericCode:"454"},{country:"MALAYSIA",currency:"Malaysian Ringgit",alphaCode:"MYR",numericCode:"458"},{country:"MALDIVES",currency:"Rufiyaa",alphaCode:"MVR",numericCode:"462"},{country:"MALI",currency:"CFA Franc BCEAO",alphaCode:"XOF",numericCode:"952"},{country:"MALTA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"MARSHALL ISLANDS (THE)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"MARTINIQUE",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"MAURITANIA",currency:"Ouguiya",alphaCode:"MRU",numericCode:"929"},{country:"MAURITIUS",currency:"Mauritius Rupee",alphaCode:"MUR",numericCode:"480"},{country:"MAYOTTE",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"MEMBER COUNTRIES OF THE AFRICAN DEVELOPMENT BANK GROUP",currency:"ADB Unit of Account",alphaCode:"XUA",numericCode:"965"},{country:"MEXICO",currency:"Mexican Peso",alphaCode:"MXN",numericCode:"484"},{country:"MEXICO",currency:"Mexican Unidad de Inversion (UDI)",alphaCode:"MXV",numericCode:"979"},{country:"MICRONESIA (FEDERATED STATES OF)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"MOLDOVA (THE REPUBLIC OF)",currency:"Moldovan Leu",alphaCode:"MDL",numericCode:"498"},{country:"MONACO",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"MONGOLIA",currency:"Tugrik",alphaCode:"MNT",numericCode:"496"},{country:"MONTENEGRO",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"MONTSERRAT",currency:"East Caribbean Dollar",alphaCode:"XCD",numericCode:"951"},{country:"MOROCCO",currency:"Moroccan Dirham",alphaCode:"MAD",numericCode:"504"},{country:"MOZAMBIQUE",currency:"Mozambique Metical",alphaCode:"MZN",numericCode:"943"},{country:"MYANMAR",currency:"Kyat",alphaCode:"MMK",numericCode:"104"},{country:"NAMIBIA",currency:"Namibia Dollar",alphaCode:"NAD",numericCode:"516"},{country:"NAMIBIA",currency:"Rand",alphaCode:"ZAR",numericCode:"710"},{country:"NAURU",currency:"Australian Dollar",alphaCode:"AUD",numericCode:"036"},{country:"NEPAL",currency:"Nepalese Rupee",alphaCode:"NPR",numericCode:"524"},{country:"NETHERLANDS (THE)",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"NEW CALEDONIA",currency:"CFP Franc",alphaCode:"XPF",numericCode:"953"},{country:"NEW ZEALAND",currency:"New Zealand Dollar",alphaCode:"NZD",numericCode:"554"},{country:"NICARAGUA",currency:"Cordoba Oro",alphaCode:"NIO",numericCode:"558"},{country:"NIGER (THE)",currency:"CFA Franc BCEAO",alphaCode:"XOF",numericCode:"952"},{country:"NIGERIA",currency:"Naira",alphaCode:"NGN",numericCode:"566"},{country:"NIUE",currency:"New Zealand Dollar",alphaCode:"NZD",numericCode:"554"},{country:"NORFOLK ISLAND",currency:"Australian Dollar",alphaCode:"AUD",numericCode:"036"},{country:"NORTHERN MARIANA ISLANDS (THE)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"NORWAY",currency:"Norwegian Krone",alphaCode:"NOK",numericCode:"578"},{country:"OMAN",currency:"Rial Omani",alphaCode:"OMR",numericCode:"512"},{country:"PAKISTAN",currency:"Pakistan Rupee",alphaCode:"PKR",numericCode:"586"},{country:"PALAU",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"PANAMA",currency:"Balboa",alphaCode:"PAB",numericCode:"590"},{country:"PANAMA",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"PAPUA NEW GUINEA",currency:"Kina",alphaCode:"PGK",numericCode:"598"},{country:"PARAGUAY",currency:"Guarani",alphaCode:"PYG",numericCode:"600"},{country:"PERU",currency:"Nuevo Sol",alphaCode:"PEN",numericCode:"604"},{country:"PHILIPPINES (THE)",currency:"Philippine Peso",alphaCode:"PHP",numericCode:"608"},{country:"PITCAIRN",currency:"New Zealand Dollar",alphaCode:"NZD",numericCode:"554"},{country:"POLAND",currency:"Zloty",alphaCode:"PLN",numericCode:"985"},{country:"PORTUGAL",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"PUERTO RICO",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"QATAR",currency:"Qatari Rial",alphaCode:"QAR",numericCode:"634"},{country:"REPUBLIC OF NORTH MACEDONIA",currency:"Denar",alphaCode:"MKD",numericCode:"807"},{country:"ROMANIA",currency:"Romanian Leu",alphaCode:"RON",numericCode:"946"},{country:"RUSSIAN FEDERATION (THE)",currency:"Russian Ruble",alphaCode:"RUB",numericCode:"643"},{country:"RWANDA",currency:"Rwanda Franc",alphaCode:"RWF",numericCode:"646"},{country:"R\xc9UNION",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"SAINT BARTH\xc9LEMY",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA",currency:"Saint Helena Pound",alphaCode:"SHP",numericCode:"654"},{country:"SAINT KITTS AND NEVIS",currency:"East Caribbean Dollar",alphaCode:"XCD",numericCode:"951"},{country:"SAINT LUCIA",currency:"East Caribbean Dollar",alphaCode:"XCD",numericCode:"951"},{country:"SAINT MARTIN (FRENCH PART)",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"SAINT PIERRE AND MIQUELON",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"SAINT VINCENT AND THE GRENADINES",currency:"East Caribbean Dollar",alphaCode:"XCD",numericCode:"951"},{country:"SAMOA",currency:"Tala",alphaCode:"WST",numericCode:"882"},{country:"SAN MARINO",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"SAO TOME AND PRINCIPE",currency:"Dobra",alphaCode:"STN",numericCode:"930"},{country:"SAUDI ARABIA",currency:"Saudi Riyal",alphaCode:"SAR",numericCode:"682"},{country:"SENEGAL",currency:"CFA Franc BCEAO",alphaCode:"XOF",numericCode:"952"},{country:"SERBIA",currency:"Serbian Dinar",alphaCode:"RSD",numericCode:"941"},{country:"SEYCHELLES",currency:"Seychelles Rupee",alphaCode:"SCR",numericCode:"690"},{country:"SIERRA LEONE",currency:"Leone",alphaCode:"SLL",numericCode:"694"},{country:"SINGAPORE",currency:"Singapore Dollar",alphaCode:"SGD",numericCode:"702"},{country:"SINT MAARTEN (DUTCH PART)",currency:"Netherlands Antillean Guilder",alphaCode:"ANG",numericCode:"532"},{country:'SISTEMA UNITARIO DE COMPENSACION REGIONAL DE PAGOS "SUCRE"',currency:"Sucre",alphaCode:"XSU",numericCode:"994"},{country:"SLOVAKIA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"SLOVENIA",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"SOLOMON ISLANDS",currency:"Solomon Islands Dollar",alphaCode:"SBD",numericCode:"090"},{country:"SOMALIA",currency:"Somali Shilling",alphaCode:"SOS",numericCode:"706"},{country:"SOUTH AFRICA",currency:"Rand",alphaCode:"ZAR",numericCode:"710"},{country:"SOUTH SUDAN",currency:"South Sudanese Pound",alphaCode:"SSP",numericCode:"728"},{country:"SPAIN",currency:"Euro",alphaCode:"EUR",numericCode:"978"},{country:"SRI LANKA",currency:"Sri Lanka Rupee",alphaCode:"LKR",numericCode:"144"},{country:"SUDAN (THE)",currency:"Sudanese Pound",alphaCode:"SDG",numericCode:"938"},{country:"SURINAME",currency:"Surinam Dollar",alphaCode:"SRD",numericCode:"968"},{country:"SVALBARD AND JAN MAYEN",currency:"Norwegian Krone",alphaCode:"NOK",numericCode:"578"},{country:"SWAZILAND",currency:"Lilangeni",alphaCode:"SZL",numericCode:"748"},{country:"SWEDEN",currency:"Swedish Krona",alphaCode:"SEK",numericCode:"752"},{country:"SWITZERLAND",currency:"WIR Euro",alphaCode:"CHE",numericCode:"947"},{country:"SWITZERLAND",currency:"Swiss Franc",alphaCode:"CHF",numericCode:"756"},{country:"SWITZERLAND",currency:"WIR Franc",alphaCode:"CHW",numericCode:"948"},{country:"SYRIAN ARAB REPUBLIC",currency:"Syrian Pound",alphaCode:"SYP",numericCode:"760"},{country:"TAIWAN (PROVINCE OF CHINA)",currency:"New Taiwan Dollar",alphaCode:"TWD",numericCode:"901"},{country:"TAJIKISTAN",currency:"Somoni",alphaCode:"TJS",numericCode:"972"},{country:"TANZANIA, UNITED REPUBLIC OF",currency:"Tanzanian Shilling",alphaCode:"TZS",numericCode:"834"},{country:"THAILAND",currency:"Baht",alphaCode:"THB",numericCode:"764"},{country:"TIMOR-LESTE",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"TOGO",currency:"CFA Franc BCEAO",alphaCode:"XOF",numericCode:"952"},{country:"TOKELAU",currency:"New Zealand Dollar",alphaCode:"NZD",numericCode:"554"},{country:"TONGA",currency:"Pa\u2019anga",alphaCode:"TOP",numericCode:"776"},{country:"TRINIDAD AND TOBAGO",currency:"Trinidad and Tobago Dollar",alphaCode:"TTD",numericCode:"780"},{country:"TUNISIA",currency:"Tunisian Dinar",alphaCode:"TND",numericCode:"788"},{country:"TURKEY",currency:"Turkish Lira",alphaCode:"TRY",numericCode:"949"},{country:"TURKMENISTAN",currency:"Turkmenistan New Manat",alphaCode:"TMT",numericCode:"934"},{country:"TURKS AND CAICOS ISLANDS (THE)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"TUVALU",currency:"Australian Dollar",alphaCode:"AUD",numericCode:"036"},{country:"UGANDA",currency:"Uganda Shilling",alphaCode:"UGX",numericCode:"800"},{country:"UKRAINE",currency:"Hryvnia",alphaCode:"UAH",numericCode:"980"},{country:"UNITED ARAB EMIRATES (THE)",currency:"UAE Dirham",alphaCode:"AED",numericCode:"784"},{country:"UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (THE)",currency:"Pound Sterling",alphaCode:"GBP",numericCode:"826"},{country:"UNITED STATES MINOR OUTLYING ISLANDS (THE)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"UNITED STATES OF AMERICA (THE)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"UNITED STATES OF AMERICA (THE)",currency:"US Dollar (Next day)",alphaCode:"USN",numericCode:"997"},{country:"URUGUAY",currency:"Uruguay Peso en Unidades Indexadas (URUIURUI)",alphaCode:"UYI",numericCode:"940"},{country:"URUGUAY",currency:"Peso Uruguayo",alphaCode:"UYU",numericCode:"858"},{country:"UZBEKISTAN",currency:"Uzbekistan Sum",alphaCode:"UZS",numericCode:"860"},{country:"VANUATU",currency:"Vatu",alphaCode:"VUV",numericCode:"548"},{country:"VENEZUELA (BOLIVARIAN REPUBLIC OF)",currency:"Bolivar",alphaCode:"VEF",numericCode:"937"},{country:"VIET NAM",currency:"Dong",alphaCode:"VND",numericCode:"704"},{country:"VIRGIN ISLANDS (BRITISH)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"VIRGIN ISLANDS (U.S.)",currency:"US Dollar",alphaCode:"USD",numericCode:"840"},{country:"WALLIS AND FUTUNA",currency:"CFP Franc",alphaCode:"XPF",numericCode:"953"},{country:"WESTERN SAHARA",currency:"Moroccan Dirham",alphaCode:"MAD",numericCode:"504"},{country:"YEMEN",currency:"Yemeni Rial",alphaCode:"YER",numericCode:"886"},{country:"ZAMBIA",currency:"Zambian Kwacha",alphaCode:"ZMW",numericCode:"967"},{country:"ZIMBABWE",currency:"Zimbabwe Dollar",alphaCode:"ZWL",numericCode:"932"},{country:"\xc5LAND ISLANDS",currency:"Euro",alphaCode:"EUR",numericCode:"978"}];function W(e){var a=r.a.useState(e.values[0]),t=Object(E.a)(a,2),n=t[0],o=t[1];return r.a.useEffect((function(){0==e.disabled&&(e.value?e.values.forEach((function(a){a.Value==e.value&&o(a)})):e.valueChanged(n.Value))}),[]),r.a.useEffect((function(){e.values.forEach((function(a){a.Value!=e.value||o(a)}))}),[e.value]),r.a.createElement(V.a,{id:"enum-code-box",options:e.values,disabled:e.disabled,value:n,onChange:function(a,t){null!=t&&(o(t),e.valueChanged(t.value))},getOptionLabel:function(e){return e.Description},style:{width:"80%"},renderInput:function(e){return r.a.createElement(g.a,Object.assign({},e,{margin:"dense",variant:"standard"}))}})}var z=function(e){function a(e){var t;Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).fieldValueChanged=t.fieldValueChanged.bind(Object(d.a)(t)),t.fieldSelectionChanged=t.fieldSelectionChanged.bind(Object(d.a)(t)),t.onFieldUpdate=t.onFieldUpdate.bind(Object(d.a)(t)),t.appendFieldContent=t.appendFieldContent.bind(Object(d.a)(t)),t.setSelected=t.setSelected.bind(Object(d.a)(t)),t.setNewValue=t.setNewValue.bind(Object(d.a)(t)),t.showExpanded=t.showExpanded.bind(Object(d.a)(t)),t.closeExpanded=t.closeExpanded.bind(Object(d.a)(t)),t.getBgColor=t.getBgColor.bind(Object(d.a)(t)),t.setError=t.setError.bind(Object(d.a)(t)),t.toggleExpanded=t.toggleExpanded.bind(Object(d.a)(t)),t.onFocusLost=t.onFocusLost.bind(Object(d.a)(t)),t.applyPadding=t.applyPadding.bind(Object(d.a)(t)),t.setValue=t.setValue.bind(Object(d.a)(t));if(t.selectable=!0,t.props.readOnly){t.selectable=!1;var n=!1,r=t.props.id2Value.get(t.props.field.ID);r&&(n=!0),t.state={fieldEditable:!0,bgColor:"white",hasError:!1,selected:n,id2Value:t.props.id2Value,fieldValue:r,expandBtnLabel:"+",showExpanded:!1,field:t.props.field}}else{var o="",c=!1;if(o=x.generateValue(t.props.field),t.props.isoMsg.has(t.props.field.ID)){var l=t.props.isoMsg.get(t.props.field.ID);o=l.state.fieldValue,c=l.state.selected}if(a.MandatoryFields.includes(t.props.field.Name)){t.selectable=!1;var h=!0;""===o&&"Bitmap"===t.props.field.Name&&(o=Array(192).fill("0").reduce((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",a=arguments.length>1?arguments[1]:void 0;return e+a}))),"Bitmap"===t.props.field.Name&&(h=!1),t.state={fieldEditable:h,bgColor:"white",hasError:!1,selected:!0,fieldValue:o,expandBtnLabel:"+",showExpanded:!1,field:t.props.field}}else t.state={fieldEditable:!0,bgColor:"white",selected:c,hasError:!1,fieldValue:o,expandBtnLabel:"+",showExpanded:!1,field:t.props.field};t.props.isoMsg.set(t.props.field.ID,Object(d.a)(t))}return t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"getBgColor",value:function(){return this.state.hasError?"red":"white"}},{key:"setError",value:function(e){this.setState({hasError:e})}},{key:"showExpanded",value:function(){this.setState({showExpanded:!0})}},{key:"toggleExpanded",value:function(){this.state.showExpanded?this.setState({showExpanded:!1,expandBtnLabel:"+"}):this.setState({showExpanded:!0,expandBtnLabel:"-"})}},{key:"closeExpanded",value:function(){this.setState({showExpanded:!1})}},{key:"setNewValue",value:function(e){var a=this.applyPadding(this.state.selected,e);this.setState({fieldValue:a,showExpanded:!1,selected:!0}),this.toggleExpanded()}},{key:"setValue",value:function(e){this.setState({fieldValue:e,showExpanded:!1})}},{key:"componentDidUpdate",value:function(e,a,t){e.id2Value!==this.props.id2Value&&this.setState({fieldValue:this.props.id2Value.get(this.props.field.ID),id2Value:this.props.id2Value})}},{key:"onFieldUpdate",value:function(e){var a=this;if(this.props.field.Type===S.BitmappedField)this.props.field.Children.forEach((function(t){if(t.Name===e.fieldName){var n=a.state.fieldValue;t.Position>64&&64==n.length&&Array(64).fill("0").forEach((function(e){return n+=e})),t.Position>128&&(64==n.length?Array(128).fill("0").forEach((function(e){return n+=e})):128==n.length&&Array(64).fill("0").forEach((function(e){return n+=e})));var r=Array.from(n);if("FieldSelected"===e.ChangeType)r[t.Position-1]="1",t.Position>64&&(r[0]="1"),t.Position>128&&(r[64]="1");else if("FieldDeselected"===e.ChangeType){r[t.Position-1]="0";for(var o=!0,c=65;c<=128;c++)if("1"===r[c-1]){o=!1;break}o&&(r[0]="0"),o=!0;for(var i=129;i<=192;i++)if("1"===r[i-1]){o=!1;break}o&&(r[64]="0")}var l=r.reduce((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",a=arguments.length>1?arguments[1]:void 0;return e+a}));a.setState({fieldValue:l})}}));else{var t={fieldName:this.props.field.Name};"FieldSelected"===e.ChangeType?(this.setState({selected:!0}),t.ChangeType="FieldSelected"):"FieldDeselected"===e.ChangeType&&(this.setState({selected:!1}),t.ChangeType="FieldDeselected"),this.props.field.Children.forEach((function(t){"FieldSelected"===e.ChangeType?a.props.isoMsg.get(t.ID).setSelected(!0):"FieldDeselected"===e.ChangeType&&a.props.isoMsg.get(t.ID).setSelected(!1)})),this.props.onFieldUpdate(t)}}},{key:"setSelected",value:function(e){var a=this,t=this.applyPadding(e);if(this.props.field.Children.forEach((function(t){a.props.isoMsg.get(t.ID).setSelected(e)})),e){var n=[];U.validate(this.props.field,t,n)?this.setState({fieldValue:t,hasError:!0,errMsg:n[0],selected:e}):this.setState({fieldValue:t,hasError:!1,errMsg:null,selected:e})}else this.setState({fieldValue:t,hasError:!1,errMsg:null,selected:e})}},{key:"fieldSelectionChanged",value:function(e){var a={fieldName:this.props.field.Name},t=!1;e.target.checked?(a.ChangeType="FieldSelected",t=!0):a.ChangeType="FieldDeselected",this.props.field.Type!==S.BitmappedField&&this.setSelected(t),this.props.onFieldUpdate(a)}},{key:"onFocusLost",value:function(){var e=this.applyPadding(this.state.selected),a=[];if(this.state.selected)if(U.validate(this.props.field,e,a))this.setState({fieldValue:e,hasError:!0,errMsg:a[0]});else{this.setState({fieldValue:e,hasError:!1,errMsg:null});var t={fieldName:this.props.field.Name,ChangeType:"ValueChanged",Value:e};this.props.onFieldUpdate(t)}else this.setState({fieldValue:e,hasError:!1,errMsg:null})}},{key:"applyPadding",value:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=a;""===t&&(t=this.state.fieldValue),void 0===t&&(t="");var n=this.state.field;if(""===n.Padding||!e)return t;if("Fixed"===n.Type){var r="";switch(n.DataEncoding){case"ASCII":case"EBCDIC":if(t.length0&&(t="\u2937"+this.props.field.Position+" ");var n=t+" Type: "+this.props.field.Type+" / ";this.props.field.Type===S.FixedField?n+="Length: "+this.props.field.FixedSize+" / Encoding: "+this.props.field.DataEncoding:this.props.field.Type===S.VariableField?n+="Length Indicator: "+this.props.field.LengthIndicatorSize+" / Length Encoding: "+this.props.field.LengthEncoding+" / Data Encoding: "+this.props.field.DataEncoding:this.props.field.Type;var o=[];this.props.field.Children.forEach((function(e){return a.appendFieldContent(o,e,a.props.field,a.state.id2Value,a.props.level+1)}));for(var c="",i=0;i0&&(n="Testcase failed!\n\n",this.props.results.forEach((function(e){n+="\u26a0 "+e+"\n"}))),this.setState({show:!0,evalResult:n})}}},{key:"render",value:function(){return r.a.createElement(I.a,{open:this.state.show,fullWidth:!0,maxWidth:"md",onClose:this.handleClose,disableBackdropClick:!0,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},r.a.createElement(D.a,{id:"alert-dialog-title"},"Test Case Evaluation Result"),r.a.createElement(N.a,null,r.a.createElement(g.a,{variant:"standard",size:"medium",contentEditable:"false",multiline:!0,rows:10,rowsMax:20,fullWidth:!0,value:this.state.evalResult})),r.a.createElement(M.a,null,r.a.createElement(C.a,{onClick:this.handleClose,color:"primary"},"OK")))}}]),a}(r.a.Component),Q=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={show:e.show,data:t.props.data,msgTemplate:t.props.msgTemplate,evalResults:null,showEvalResultsDialog:!1},t.hideResponseSegment=t.hideResponseSegment.bind(Object(d.a)(t)),t.copyToClipboard=t.copyToClipboard.bind(Object(d.a)(t)),t.evalTestCase=t.evalTestCase.bind(Object(d.a)(t)),t.showEvalResults=t.showEvalResults.bind(Object(d.a)(t)),t.textAreaRef=r.a.createRef(),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"evalTestCase",value:function(){var e=this;console.log("comparing ",this.props.data," with ",this.props.testCase);var a=[];this.props.data.forEach((function(e){"Bitmap"==e.Name&&e.Value})),this.props.data.forEach((function(t){e.props.testCase.resp_data.forEach((function(e){if(t.ID==e.ID){if("Bitmap"===t.Name)for(var n=t.Value,r=e.Value,o=0;o0&&e.Children.forEach((function(e){n.collectData(e,a,t)}))}},{key:"componentDidUpdate",value:function(e,a,t){!1===e.show&&!0===this.props.show&&this.setState({show:!0,data:this.props.data,msgTemplate:this.props.msgTemplate})}},{key:"copyToClipboard",value:function(){this.textAreaRef.current.select(),document.execCommand("copy")||alert("Failed to copy to clipboard!")}},{key:"showEvalResults",value:function(e){this.setState({showEvalResultsDialog:e})}},{key:"render",value:function(){var e=this,a=[],t=[];if(this.state.show){var n,o=new Map;this.state.data.forEach((function(e){o.set(e.ID,e.Value)})),this.state.msgTemplate.fields.forEach((function(a){e.collectData(a,o,t)}));var c="ISO Response \n|---------------|\n"+t.reduce((function(e,a,t){return 1===t?e+"\n"+a+"\n":e+a+"\n"}));return c="ISO Request \n|---------------|\n"+this.props.reqData+"\n\n"+c+"\n\n",this.state.msgTemplate.fields.forEach((function(t){e.appendFieldContent(a,t,o,0)})),r.a.createElement(r.a.Fragment,null,this.state.show?r.a.createElement(I.a,{open:this.state.show,onClose:this.hideResponseSegment,scroll:"paper",PaperComponent:ee,"aria-labelledby":"draggable-dialog-title",maxWidth:"md",fullWidth:!0,disableBackdropClick:!0},r.a.createElement(D.a,{style:{cursor:"move"},id:"draggable-dialog-title"},this.props.dialogTitle),r.a.createElement(N.a,{dividers:!0},r.a.createElement($,{show:this.state.showEvalResultsDialog,results:this.state.evalResults,onClose:function(){return e.showEvalResults(!1)}}),r.a.createElement(X.a,null,r.a.createElement("textarea",{ref:this.textAreaRef,style:{opacity:"0.01",position:"absolute",zIndex:-9999,height:0},value:c}),r.a.createElement("table",{border:"0",align:"center"},r.a.createElement("thead",null,r.a.createElement("tr",{style:{fontFamily:"lato-regular",backgroundColor:"#eed143",fontSize:"15px",align:"center",borderBottom:"solid",borderColor:"blue"}},r.a.createElement("td",{colSpan:"3",align:"center"},"Response Segment")),r.a.createElement("tr",{style:{fontFamily:"lato-regular",backgroundColor:"#3effba",fontSize:"14px"}},r.a.createElement("td",{align:"center"},"Selection"),r.a.createElement("td",{align:"center",style:{width:"35%"}},"Field"),r.a.createElement("td",{align:"center",style:{width:"50%"}},"Field Data"))),r.a.createElement("tbody",null,a)))),r.a.createElement(M.a,null,null!=(null===(n=this.props.testCase)||void 0===n?void 0:n.resp_data)?r.a.createElement(C.a,{onClick:this.evalTestCase,size:"small",color:"primary",variant:"contained"},"Evaluate Test Case"):null,r.a.createElement(C.a,{onClick:this.copyToClipboard,size:"small",color:"primary",variant:"contained"},"Copy To Clipboard"),r.a.createElement(C.a,{onClick:this.hideResponseSegment,size:"small",color:"primary",variant:"contained"},"Close"))):null)}return null}}]),a}(r.a.Component);function ee(e){return r.a.createElement(J.a,{handle:"#draggable-dialog-title",cancel:'[class*="MuiDialogContent-root"]'},r.a.createElement(X.a,e))}var ae=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={show:e.show,traceMsg:"",errorMessage:null},t.closeDialogSuccess=t.closeDialogSuccess.bind(Object(d.a)(t)),t.closeDialogFail=t.closeDialogFail.bind(Object(d.a)(t)),t.traceChanged=t.traceChanged.bind(Object(d.a)(t)),t.isValidTrace=t.isValidTrace.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"isValidTrace",value:function(e){return!(""===e.trim()||e.length%2!==0||!e.match("^[0-9,a-f,A-F]+$"))}},{key:"traceChanged",value:function(e){var a=e.target.value;this.isValidTrace(a)?this.setState({traceMsg:a,errorMessage:null}):this.setState({traceMsg:a,errorMessage:"Input is not valid hex"})}},{key:"componentDidUpdate",value:function(e,a,t){!0===this.props.show&&!1===a.show&&this.setState({show:!0,traceMsg:""})}},{key:"closeDialogSuccess",value:function(){this.isValidTrace(this.state.traceMsg)&&(this.setState({show:!1}),this.props.setTrace(this.state.traceMsg))}},{key:"closeDialogFail",value:function(){this.setState({show:!1}),this.props.setTrace(null)}},{key:"render",value:function(){return r.a.createElement("div",null,r.a.createElement(I.a,{open:this.state.show,onClose:this.closeDialogFail,"aria-labelledby":"form-dialog-title",fullWidth:!0,maxWidth:"md"},r.a.createElement(D.a,{id:"form-dialog-title",onClose:this.closeDialogFail},"Parse Trace"),r.a.createElement(N.a,null,r.a.createElement("div",null,r.a.createElement(f.a,{container:!0,spacing:2},r.a.createElement(f.a,{container:!0},r.a.createElement(f.a,{item:!0,lg:12,xl:12},r.a.createElement(g.a,{key:"trace_input",variant:"outlined",label:"Hex Trace",margin:"dense",fullWidth:!0,value:this.state.traceMsg,error:null!==this.state.errorMessage,onChange:this.traceChanged,rows:10,helperText:this.state.errorMessage,multiline:!0})))))),r.a.createElement(M.a,null,r.a.createElement(Z.a,{onClick:this.closeDialogSuccess,color:"primary"},"OK"),r.a.createElement(Z.a,{onClick:this.closeDialogFail,color:"primary"},"Cancel"))))}}]),a}(r.a.Component),te=t(219),ne=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={show:e.show,errorMsg:null},t.handleClose=t.handleClose.bind(Object(d.a)(t)),t.handleCancel=t.handleCancel.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"handleClose",value:function(){var e=this;if(null!=this.props.msgName&&""!=this.props.msgName){var a="&response_msg="+JSON.stringify(this.props.responseData),t="specId=".concat(this.props.specId,"&msgId=").concat(this.props.msgId,"&dsName=").concat(this.props.msgName,"&updateMsg=true").concat(a);m.a.post(A.saveMsgUrl,t).then((function(a){console.log(a),e.props.onClose()})).catch((function(a){var t,n;console.log(a),e.setState({errorMsg:" Failed to save TC conditions. - "+(null===a||void 0===a||null===(t=a.response)||void 0===t||null===(n=t.data)||void 0===n?void 0:n.error)})}))}else this.setState({show:!1}),this.props.onClose()}},{key:"handleCancel",value:function(){this.setState({show:!1}),this.props.onCancel()}},{key:"componentDidUpdate",value:function(e,a,t){!0===this.props.show&&!1===a.show?this.setState({show:!0}):!1===this.props.show&&!0===a.show&&this.setState({show:!1})}},{key:"render",value:function(){var e=this,a=[];return this.state.show&&this.props.responseData.forEach((function(e){a.push(r.a.createElement(re,{key:"topt_"+e.ID,field:e}))})),r.a.createElement(I.a,{open:this.state.show,fullWidth:!0,maxWidth:"md",onClose:this.handleClose,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description"},r.a.createElement(D.a,{id:"alert-dialog-title"},"Test Case Config"),r.a.createElement(N.a,null,r.a.createElement("div",{style:{width:"100%"}},a)),r.a.createElement(T,{show:null!=this.state.errorMsg,msg:this.state.errorMsg,onClose:function(){e.setState({errorMsg:null})}}),r.a.createElement(M.a,null,r.a.createElement(C.a,{onClick:this.handleClose,color:"primary",variant:"contained"},"OK/Save"),r.a.createElement(C.a,{onClick:this.handleCancel,color:"secondary",variant:"contained"},"Cancel")))}}]),a}(r.a.Component);function re(e){var a=Object(n.useState)("Equals"),t=Object(E.a)(a,2),o=t[0],c=t[1];Object(n.useEffect)((function(){void 0==e.field.CompareOp||null==e.field.CompareOp?e.field.CompareOp="Equals":c(e.field.CompareOp)}),[]);return r.a.createElement(r.a.Fragment,null,r.a.createElement(f.a,{container:!0,style:{width:"100%"},spacing:"1"},r.a.createElement(f.a,{item:!0,sm:2},e.field.Name),r.a.createElement(f.a,{item:!0,sm:2},r.a.createElement(g.a,{value:o,onChange:function(a){e.field.CompareOp=a.target.value,c(a.target.value)},variant:"outlined",size:"small",margin:"dense",label:"Operator",select:!0},r.a.createElement(v.a,{value:"Equals"},"Equals"),r.a.createElement(v.a,{value:"Exclude"},"Exclude"),r.a.createElement(v.a,{value:"Present"},"Present"),r.a.createElement(v.a,{value:"Absent"},"Absent"),r.a.createElement(v.a,{value:"StartsWith"},"StartsWith"),r.a.createElement(v.a,{value:"EndsWith"},"EndsWith"))),r.a.createElement(f.a,{item:!0,sm:6},r.a.createElement(g.a,{defaultValue:e.field.Value,variant:"standard"}))))}var oe=function(e){function a(e){var t;Object(i.a)(this,a);var n=!1;return null!=(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).props.responseData&&(n=!0),t.state={show:e.show,msgName:e.initialMessage,updateIfExists:!1,includeResponse:n,showTCEditDialog:!1},t.closeDialogSuccess=t.closeDialogSuccess.bind(Object(d.a)(t)),t.closeDialogFail=t.closeDialogFail.bind(Object(d.a)(t)),t.msgNameChanged=t.msgNameChanged.bind(Object(d.a)(t)),t.updateIfExistsChanged=t.updateIfExistsChanged.bind(Object(d.a)(t)),t.updateIncludeResponseChanged=t.updateIncludeResponseChanged.bind(Object(d.a)(t)),t.showTCEditDialog=t.showTCEditDialog.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"msgNameChanged",value:function(e){this.setState({errorMessage:"",msgName:e.target.value})}},{key:"componentDidUpdate",value:function(e,a,t){!0===this.props.show&&!1===a.show&&this.setState({show:!0,msgName:this.props.msgName})}},{key:"closeDialogSuccess",value:function(){var e=this;if(this.state.msgName&&""!==this.state.msgName&&this.props.data){var a="";this.state.includeResponse&&(a="&response_msg="+JSON.stringify(this.props.responseData));var t="specId=".concat(this.props.specId,"&msgId=").concat(this.props.msgId,"&dsName=").concat(this.state.msgName,"&updateMsg=").concat(this.state.updateIfExists,"&msg=").concat(JSON.stringify(this.props.data)).concat(a);m.a.post(A.saveMsgUrl,t).then((function(a){console.log(a),e.props.msgSaveSuccess(e.state.msgName,e.state.updateIfExists),e.setState({show:!1})})).catch((function(a){e.props.msgSaveFailed(a),e.setState({show:!1})}))}else this.setState({errorMessage:"Please specify a message!"})}},{key:"closeDialogFail",value:function(){this.props.msgSaveCancelled(),this.setState({show:!1})}},{key:"updateIfExistsChanged",value:function(e){this.setState({updateIfExists:e.target.checked})}},{key:"updateIncludeResponseChanged",value:function(e){this.setState({includeResponse:e.target.checked})}},{key:"showTCEditDialog",value:function(e){this.setState({showTCEditDialog:e})}},{key:"render",value:function(){var e=this,a=null;return null!=this.props.responseData&&(a=r.a.createElement(f.a,{item:!0,xs:4},r.a.createElement(te.a,{control:r.a.createElement(B.a,{key:"cb_include_respdata",size:"sm",checked:this.state.includeResponse,onChange:this.updateIncludeResponseChanged}),label:"Include Response Data (Test Case)"}))),r.a.createElement("div",null,r.a.createElement(I.a,{open:this.state.show,onClose:this.closeDialogFail,"aria-labelledby":"form-dialog-title",fullWidth:!0,maxWidth:"sm"},r.a.createElement(D.a,{id:"form-dialog-title",onClose:this.closeDialogFail},"Save Message"),r.a.createElement(N.a,null,r.a.createElement(ne,{responseData:this.props.responseData,show:this.state.showTCEditDialog,onClose:function(){return e.showTCEditDialog(!1)},onCancel:function(){return e.showTCEditDialog(!1)}}),r.a.createElement("div",null,r.a.createElement(f.a,{container:!0,spacing:2},r.a.createElement(f.a,{container:!0},r.a.createElement(f.a,{item:!0,lg:12,xl:12},r.a.createElement(g.a,{type:"text",key:"msg_name_save",margin:"dense",fullWidth:!0,variant:"outlined",label:"Message Name",value:this.state.msgName,onChange:this.msgNameChanged}))),r.a.createElement(f.a,{container:!0},r.a.createElement(f.a,{item:!0,xs:4},r.a.createElement(te.a,{control:r.a.createElement(B.a,{key:"key_update_if_exists",size:"small",checked:this.state.updateIfExists,onChange:this.updateIfExistsChanged}),label:"Overwrite"})),a)))),r.a.createElement(M.a,null,this.state.includeResponse?r.a.createElement(Z.a,{onClick:function(){return e.showTCEditDialog(!0)},color:"primary"},"Edit TC Conditions"):null,r.a.createElement(Z.a,{onClick:this.closeDialogSuccess,color:"primary"},"OK"),r.a.createElement(Z.a,{onClick:this.closeDialogFail,color:"primary"},"Cancel"))))}}]),a}(r.a.Component),ce=(t(166),function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={targetServerIp:e.serverIP,targetServerPort:e.port,mliType:e.mliType},t.serverIpChanged=t.serverIpChanged.bind(Object(d.a)(t)),t.serverPortChanged=t.serverPortChanged.bind(Object(d.a)(t)),t.mliTypeChanged=t.mliTypeChanged.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"mliTypeChanged",value:function(e){this.setState({mliType:e.target.value}),this.props.onChange(this.state.targetServerIp,this.state.targetServerPort,e.target.value)}},{key:"serverIpChanged",value:function(e){this.setState({targetServerIp:e.target.value}),this.props.onChange(e.target.value,this.state.targetServerPort,this.state.mliType)}},{key:"serverPortChanged",value:function(e){this.setState({targetServerPort:e.target.value}),this.props.onChange(this.state.targetServerIp,e.target.value,this.state.mliType)}},{key:"render",value:function(){return r.a.createElement(b.a,{border:1,borderColor:"#1228B6",borderRadius:8,style:{backgroundColor:"#E5E4E3",marginBottom:"1%"}},r.a.createElement("div",{style:{textAlign:"left",verticalAlign:"baseline",marginBottom:"2%",marginTop:"2%",width:"100%"}},r.a.createElement(f.a,{container:!0,spacing:3,justify:"space-around"},r.a.createElement(f.a,{item:!0,lg:6},r.a.createElement(g.a,{id:"ns_ip",label:"Host IP/Name",size:"small",fullWidth:!0,variant:"outlined",value:this.state.targetServerIp,onChange:this.serverIpChanged})),r.a.createElement(f.a,{item:!0,lg:4},r.a.createElement(g.a,{id:"ns_port",label:"Port",size:"small",fullWidth:!0,variant:"outlined",value:this.state.targetServerPort,onChange:this.serverPortChanged})),r.a.createElement(f.a,{item:!0,log:4},r.a.createElement(g.a,{select:!0,size:"small",fullWidth:!0,value:this.state.mliType,variant:"outlined",label:"MLI",onChange:this.mliTypeChanged},r.a.createElement(v.a,{value:"2i"},"2I"),r.a.createElement(v.a,{value:"2e"},"2E"),r.a.createElement(v.a,{value:"4i"},"4I"),r.a.createElement(v.a,{value:"4e"},"4E"))))))}}]),a}(r.a.Component)),ie=t(224),le=function(e){function a(e){var t;return Object(i.a)(this,a),t=Object(s.a)(this,Object(u.a)(a).call(this,e)),console.log("New MsgHist"),t.state={maxItems:e.initialMaxItems,logData:e.initialLogData},t.maxItemsChanged=t.maxItemsChanged.bind(Object(d.a)(t)),t.fetchLogs=t.fetchLogs.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"maxItemsChanged",value:function(e){this.setState({maxItems:e.target.value})}},{key:"fetchLogs",value:function(){var e=this;m.a.get(A.logHistUrl+"?spec_id=".concat(this.props.specId,"&msg_id=").concat(this.props.msgId,"&count=").concat(this.state.maxItems)).then((function(a){console.log(a.data);var t="";a.data.forEach((function(e){t+=e+"\n-----------------------------\n"})),e.setState({logData:t}),e.props.saveState({maxItems:e.state.maxItems,logData:e.state.logData})})).catch((function(e){console.log(e)}))}},{key:"render",value:function(){return n.createElement("div",{style:{textAlign:"left",marginTop:"5%"}},n.createElement(f.a,{container:!0,spacing:5,alignItems:"center"},n.createElement(f.a,{item:!0,lg:4},n.createElement(g.a,{key:"isim-hist-max-items",variant:"outlined",margin:"dense",label:"Last 'X' Messages",fullWidth:!0,value:this.state.maxItems,select:!0,onChange:this.maxItemsChanged},n.createElement(v.a,{value:5},"5"),n.createElement(v.a,{value:10},"10"),n.createElement(v.a,{value:25},"25"),n.createElement(v.a,{value:50},"50"))),n.createElement(f.a,{item:!0,lg:4},n.createElement(C.a,{variant:"contained",color:"primary",size:"small",onClick:this.fetchLogs},"Fetch"))),n.createElement("div",{style:{width:"80%"}},n.createElement(g.a,{key:"isim-hist-logs",margin:"dense",label:"Messages",fullWidth:!0,multiline:!0,rowsMax:100,contentEditable:!1,value:this.state.logData})))}}]),a}(n.Component),se=t(222),ue=t(234),de=t(223),he=t(242),pe=t(220),me=t(92),ye=t(221),ge=t(70),Ce=t.n(ge),Ee=function(e){function a(e){var t;Object(i.a)(this,a),t=Object(s.a)(this,Object(u.a)(a).call(this,e));var n=Array(192);n.fill("0");var r="";return n.forEach((function(e){r+=e})),t.state={pos:n,bitmapstr:t.toHexString(r)},t.toHexString=t.toHexString.bind(Object(d.a)(t)),t.isSet=t.isSet.bind(Object(d.a)(t)),t.bitChanged=t.bitChanged.bind(Object(d.a)(t)),t.bitmapChanged=t.bitmapChanged.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"bitmapChanged",value:function(e){var t=e.target.value,n=192-(t=(t=t.replace(":","")).replace(":","")).length;if(n<0)this.setState({errMsg:"bitmap value cannot exceed 192 bits!"});else if(t.match("^[0-9,a-f,A-F]+$")){for(var r=0;r64&&r<129&&(t[0]="1"),r>128&&(t[64]="1")}var o="";this.state.pos.forEach((function(e){o+=e})),this.setState({bitmapstr:this.toHexString(o),pos:t})}},{key:"render",value:function(){var e=this,a=[],t=[];a.push(n.createElement(g.a,{key:"bmp_str",value:this.state.bitmapstr,fullWidth:!0,variant:"outlined",onChange:this.bitmapChanged,error:null!=this.state.errMsg,helperText:this.state.errMsg,label:"Value"}));for(var r=[],o=function(o){r.push(n.createElement(f.a,{item:!0,sm:1,alignItems:"spaced-evenly"},n.createElement(te.a,{label:o+1,key:"lb_"+(o+1),control:n.createElement(B.a,{key:"cb_"+o,checked:"1"===e.state.pos[o],onChange:function(a){return e.bitChanged(a,o)}})}))),o+1>=8&&(o+1)%8===0&&(t.push(n.createElement(f.a,{container:!0,justify:"space-evenly"},r)),r=[]),o+1>=64&&(o+1)%64===0&&(a.push(n.createElement(b.a,{style:{marginTop:"2%",marginBottom:"2%"},border:1,borderColor:"primary.main",borderRadius:4},n.createElement(f.a,{container:!0,justify:"space-evenly"},t))),t=[])},c=0;c<192;c++)o(c);return n.createElement("div",{style:{width:"100%"}},a)}}],[{key:"toBinary",value:function(e){var a="";switch(e){case"0":a="0000";break;case"1":a="0001";break;case"2":a="0010";break;case"3":a="0011";break;case"4":a="0100";break;case"5":a="0101";break;case"6":a="0110";break;case"7":a="0111";break;case"8":a="1000";break;case"9":a="1001";break;case"A":a="1010";break;case"B":a="1011";break;case"C":a="1100";break;case"D":a="1101";break;case"E":a="1110";break;case"F":a="1111"}return a}},{key:"toHex",value:function(e){var a="";switch(e){case"0000":a="0";break;case"0001":a="1";break;case"0010":a="2";break;case"0011":a="3";break;case"0100":a="4";break;case"0101":a="5";break;case"0110":a="6";break;case"0111":a="7";break;case"1000":a="8";break;case"1001":a="9";break;case"1010":a="A";break;case"1011":a="B";break;case"1100":a="C";break;case"1101":a="D";break;case"1110":a="E";break;case"1111":a="F"}return a}}]),a}(n.Component),fe=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).pinField={PinGenProps:{PANFieldId:0,PANExtractParams:"",PINFormat:"ISO0",PINClear:"1234",PINKey:"1234567890abcd0102030546febce4ee"},GenType:"pin_gen"},t.macField={MacGenProps:{MacAlgo:"ANSIX9_19",MacKey:"1234567890abcd0102030546febce4ee"},GenType:"mac_gen"},t.state={pinBlock:"",mac:"",macData:"",error:""},t.setPinValue=t.setPinValue.bind(Object(d.a)(t)),t.setMacValue=t.setMacValue.bind(Object(d.a)(t)),t.macDataChanged=t.macDataChanged.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"setPinValue",value:function(e){this.setState({pinBlock:e})}},{key:"setMacValue",value:function(e){this.setState({mac:e})}},{key:"macDataChanged",value:function(e){0!==e.target.value.trim().length&&e.target.value.trim().length%2===0?this.setState({error:"",macData:e.target.value.trim()}):this.setState({error:"MacData should be hex/even-digits",macData:e.target.value})}},{key:"render",value:function(){return n.createElement("div",{style:{textAlign:"left",marginTop:"5%"}},n.createElement(f.a,{container:!0,spacing:1,direction:"column"},n.createElement(f.a,{item:!0,sm:6,justify:"center"},n.createElement(he.a,null,n.createElement(pe.a,{expandIcon:n.createElement(Ce.a,null),"aria-controls":"panel1a-content",id:"panel1a-header"},n.createElement(me.a,null,"PIN Generator")),n.createElement(ye.a,null,n.createElement("div",{style:{textAlign:"left",marginTop:"5%",width:"100%",height:"100%"}},n.createElement(R,{field:this.pinField,setPinBlock:this.setPinValue}),n.createElement(g.a,{size:"small",label:"PIN Block",variant:"outlined",margin:"dense",fullWidth:!0,value:this.state.pinBlock}))))),n.createElement(f.a,{item:!0,sm:6},n.createElement(he.a,null,n.createElement(pe.a,{expandIcon:n.createElement(Ce.a,null),"aria-controls":"panel2a-content",id:"panel2a-header"},n.createElement(me.a,null,"MAC Generator")),n.createElement(ye.a,null,n.createElement("div",{style:{textAlign:"left",marginTop:"5%",width:"100%"}},n.createElement(g.a,{size:"small",label:"Mac Data",variant:"outlined",margin:"dense",fullWidth:!0,multiline:!0,onChange:this.macDataChanged,rows:5,rowsMax:20,error:""!==this.state.error,helperText:this.state.error,value:this.state.macData}),n.createElement(w,{field:this.macField,setMac:this.setMacValue,macData:this.state.macData}),n.createElement(g.a,{size:"small",label:"MAC",variant:"outlined",margin:"dense",fullWidth:!0,value:this.state.mac}))))),n.createElement(f.a,{item:!0,sm:6},n.createElement(he.a,null,n.createElement(pe.a,{expandIcon:n.createElement(Ce.a,null),"aria-controls":"panel3a-content",id:"panel3a-header"},n.createElement(me.a,null,"ISO Bitmap Codec")),n.createElement(ye.a,null,n.createElement("div",{style:{textAlign:"left",marginTop:"5%",width:"100%"}},n.createElement(Ee,null)))))))}}]),a}(n.Component),ve=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={msgTemplate:null,loaded:!1,spec:e.spec,msg:e.msg,shouldShow:e.showMsgTemplate,targetServerIp:"127.0.0.1",targetServerPort:"6666",mliType:"2i",currentDataSet:"",errDialogVisible:!1,errorMessage:"",showLoadMessagesDialog:!1,showTraceInputDialog:!1,showSaveMsgDialog:!1,showResponse:!1,responseData:null,reqMenuVisible:!1,selectedReqMenuItem:null,testCase:null,reqClipboardData:null,selectedTab:0,showEditTCDialog:!1,msgHist:{maxItems:5,logData:""}},t.onFieldUpdate=t.onFieldUpdate.bind(Object(d.a)(t)),t.appendFieldContent=t.appendFieldContent.bind(Object(d.a)(t)),t.sendToHost=t.sendToHost.bind(Object(d.a)(t)),t.showErrorDialog=t.showErrorDialog.bind(Object(d.a)(t)),t.closeErrorDialog=t.closeErrorDialog.bind(Object(d.a)(t)),t.processError=t.processError.bind(Object(d.a)(t)),t.showLoadMessagesDialog=t.showLoadMessagesDialog.bind(Object(d.a)(t)),t.closeLoadMsgDialog=t.closeLoadMsgDialog.bind(Object(d.a)(t)),t.showUnImplementedError=t.showUnImplementedError.bind(Object(d.a)(t)),t.setTrace=t.setTrace.bind(Object(d.a)(t)),t.showTraceInputsDialog=t.showTraceInputsDialog.bind(Object(d.a)(t)),t.showSaveMsgDialog=t.showSaveMsgDialog.bind(Object(d.a)(t)),t.msgSaveSuccess=t.msgSaveSuccess.bind(Object(d.a)(t)),t.msgSaveFailed=t.msgSaveFailed.bind(Object(d.a)(t)),t.msgSaveCancelled=t.msgSaveCancelled.bind(Object(d.a)(t)),t.showInfoDialog=t.showInfoDialog.bind(Object(d.a)(t)),t.showMenu=t.showMenu.bind(Object(d.a)(t)),t.hideMenu=t.hideMenu.bind(Object(d.a)(t)),t.handleMenuClick=t.handleMenuClick.bind(Object(d.a)(t)),t.showResponseDialog=t.showResponseDialog.bind(Object(d.a)(t)),t.getTemplateLabel=t.getTemplateLabel.bind(Object(d.a)(t)),t.networkSettingsChanged=t.networkSettingsChanged.bind(Object(d.a)(t)),t.hideResponse=t.hideResponse.bind(Object(d.a)(t)),t.tabChanged=t.tabChanged.bind(Object(d.a)(t)),t.saveHistState=t.saveHistState.bind(Object(d.a)(t)),t.setStateAndPushUp=t.setStateAndPushUp.bind(Object(d.a)(t)),t.showEditTCDialog=t.showEditTCDialog.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"setStateAndPushUp",value:function(e){this.setState(e)}},{key:"saveHistState",value:function(e){console.log("Received ",e),this.setStateAndPushUp({msgHist:e})}},{key:"tabChanged",value:function(e,a){this.setStateAndPushUp({selectedTab:a})}},{key:"networkSettingsChanged",value:function(e,a,t){this.setStateAndPushUp({targetServerIp:e,targetServerPort:a,mliType:t})}},{key:"showMenu",value:function(e){this.setStateAndPushUp({selectedReqMenuItem:e.currentTarget,reqMenuVisible:!0})}},{key:"hideMenu",value:function(){this.setStateAndPushUp({reqMenuVisible:!1}),this.setStateAndPushUp({selectedReqMenuItem:null})}},{key:"showEditTCDialog",value:function(e){this.setState({showEditTCDialog:e})}},{key:"showResponseDialog",value:function(){this.hideMenu(),this.setStateAndPushUp({showResponse:!0})}},{key:"hideResponse",value:function(){this.setStateAndPushUp({showResponse:!1})}},{key:"handleMenuClick",value:function(e){alert(e.currentTarget),this.setStateAndPushUp({selectedReqMenuItem:e.currentTarget}),this.hideMenu()}},{key:"setTrace",value:function(e){var a=this;null!=e&&m.a.post(A.parseTraceUrl+"/"+this.state.spec.ID+"/"+this.state.msg.ID,e).then((function(e){console.log("parsed msg data",e.data),e.data.parsed_fields.forEach((function(e){a.state.isoMsg.get(e.ID).setState({selected:!0,fieldValue:e.Value})}))})).catch((function(e){console.log("error",e),a.processError(e)})),this.setStateAndPushUp({showTraceInputDialog:!1})}},{key:"showUnImplementedError",value:function(){this.setStateAndPushUp({errorMessage:"This functionality has not been implemented. Please try the old version of application.",errDialogVisible:!0})}},{key:"closeLoadMsgDialog",value:function(e,a){var t=this;this.setStateAndPushUp({showLoadMessagesDialog:!1,currentDataSet:e}),null!=e?m.a.get(A.loadMsgUrl,{params:{specId:this.state.spec.ID,msgId:this.state.msg.ID,dsName:e}}).then((function(e){console.log("saved msg = ",e.data.saved_message),e.data.saved_message.req_data.forEach((function(e){t.state.isoMsg.get(e.ID).setState({selected:!0,fieldValue:e.Value})})),t.setState({testCase:e.data.saved_message})})).catch((function(e){console.log(e),t.processError(e)})):null!=a&&(this.setState({errDialogVisible:!0,errorMessage:a}),this.showErrorDialog())}},{key:"showInfoDialog",value:function(e){this.setStateAndPushUp({errDialogVisible:!0,errorMessage:e})}},{key:"msgSaveSuccess",value:function(e,a){var t="saved";a&&(t="updated"),this.showInfoDialog("Message ".concat(e," ").concat(t," successfully.")),this.setStateAndPushUp({showSaveMsgDialog:!1})}},{key:"msgSaveFailed",value:function(e){this.processError(e),this.setStateAndPushUp({showSaveMsgDialog:!1})}},{key:"msgSaveCancelled",value:function(){this.setStateAndPushUp({showSaveMsgDialog:!1})}},{key:"showSaveMsgDialog",value:function(){var e=[];k.getMsgContent(this.state.isoMsg,e,[]),this.setStateAndPushUp({saveData:e,showSaveMsgDialog:!0})}},{key:"showTraceInputsDialog",value:function(){this.hideMenu(),this.setStateAndPushUp({showTraceInputDialog:!0})}},{key:"showLoadMessagesDialog",value:function(){this.hideMenu(),this.setStateAndPushUp({showLoadMessagesDialog:!0})}},{key:"closeErrorDialog",value:function(){this.setStateAndPushUp({errDialogVisible:!1,errorMessage:null})}},{key:"showErrorDialog",value:function(e){this.setStateAndPushUp({errorMessage:e,errDialogVisible:!0})}},{key:"sendToHost",value:function(){var e=this;this.hideMenu();var a=[],t=[];if(k.getMsgContent(this.state.isoMsg,a,t),t.length>0){var n="";return t.forEach((function(e){return n+=e+"\n"})),this.setStateAndPushUp({errorMessage:n}),void this.showErrorDialog()}console.log(a);var r=a.reduce((function(e,a,t){return 1===t?e.Name+":"+e.Value+"\n"+a.Name+":"+a.Value+"\n":e+a.Name+":"+a.Value+"\n"}));this.setStateAndPushUp({showResponse:!1,responseData:null,reqClipboardData:r});var o="host="+this.state.targetServerIp+"&port="+this.state.targetServerPort+"&mli="+this.state.mliType+"&specId="+this.state.spec.ID+"&msgId="+this.state.msg.ID+"&msg="+JSON.stringify(a);m.a.post(A.sendMsgUrl,o).then((function(a){console.log("Response from server",a.data.response_fields),e.setStateAndPushUp({showResponse:!0,responseData:a.data.response_fields})})).catch((function(a){console.log("error = ",a),e.processError(a)}))}},{key:"processError",value:function(e){if(!e.response)return console.log("Error = ",e),void this.setStateAndPushUp({errorMessage:"Error: Unable to reach API server",errDialogVisible:!0});console.log(e.response),400===e.response.status?this.setStateAndPushUp({errorMessage:e.response.data.error,errDialogVisible:!0}):this.setStateAndPushUp({errorMessage:"Unexpected error from server - "+e.response.status,errDialogVisible:!0})}},{key:"getTemplateLabel",value:function(){return"Spec/Msg: ".concat(this.state.spec.Name,"// ").concat(this.state.msg.Name)}},{key:"onFieldUpdate",value:function(e){}},{key:"componentDidMount",value:function(){this.getMessageTemplate(this.props.spec,this.props.msg)}},{key:"getMessageTemplate",value:function(e,a){var t=this,n=this.props.specs.find((function(a){return a.Name===e?a:null})),r=n.Messages.find((function(e){return e.Name===a?e:null})),o=A.templateUrl+"/"+n.ID+"/"+r.ID;console.log(o),m.a.get(o).then((function(e){var a=new Map;a.set("msg_template",e.data),a.set("spec_id",n.ID),a.set("msg_id",r.ID),t.setStateAndPushUp({spec:n,msg:r,msgTemplate:e.data,loaded:!0,isoMsg:a}),console.log("MsgTemplate = ",t.state.msgTemplate)})).catch((function(e){console.log(e),t.setStateAndPushUp({errorMessage:e,errDialogVisible:!0})}))}},{key:"appendFieldContent",value:function(e,a,t,n){e.push(r.a.createElement(z,{key:a.ID,field:a,isoMsg:t,level:n,onFieldUpdate:this.onFieldUpdate}))}},{key:"render",value:function(){var e,a=this,t=[];return!0===this.state.loaded&&this.state.msgTemplate.fields.forEach((function(e){a.appendFieldContent(t,e,a.state.isoMsg,0)})),r.a.createElement(r.a.Fragment,null,r.a.createElement(T,{show:this.state.errDialogVisible,msg:this.state.errorMessage,onClose:this.closeErrorDialog}),r.a.createElement(Y,{show:this.state.showLoadMessagesDialog,specId:this.state.spec.ID,msgId:this.state.msg.ID,closeLoadMsgDialog:this.closeLoadMsgDialog}),r.a.createElement(ae,{show:this.state.showTraceInputDialog,setTrace:this.setTrace}),r.a.createElement(oe,{show:this.state.showSaveMsgDialog,msgId:this.state.msg.ID,initialMessage:this.state.currentDataSet,specId:this.state.spec.ID,data:this.state.saveData,responseData:this.state.responseData,msgName:this.state.currentDataSet,msgSaveSuccess:this.msgSaveSuccess,msgSaveFailed:this.msgSaveFailed,msgSaveCancelled:this.msgSaveCancelled}),r.a.createElement(ne,{show:this.state.showEditTCDialog,msgId:this.state.msg.ID,specId:this.state.spec.ID,msgName:this.state.currentDataSet,responseData:null===(e=this.state.testCase)||void 0===e?void 0:e.resp_data,onCancel:function(){a.showEditTCDialog(!1)},onClose:function(){a.showErrorDialog("TC config updated successfully.")}}),r.a.createElement(se.a,{position:"static",variant:"elevation",style:{width:"80%",float:"left"}},r.a.createElement(ue.a,{value:this.state.selectedTab,onChange:this.tabChanged,"aria-label":"IsoSim Tabs",centered:!0},r.a.createElement(de.a,{label:"Messaging"}),r.a.createElement(de.a,{label:"History"}),r.a.createElement(de.a,{label:"Utilities"}))),r.a.createElement(be,{value:this.state.selectedTab,index:0},r.a.createElement("div",{style:{display:"inline-block",width:"50%",float:"left",fill:"aqua",marginTop:"20px"}},r.a.createElement("div",null,r.a.createElement(ce,{onChange:this.networkSettingsChanged,serverIP:this.state.targetServerIp,port:this.state.targetServerPort,mliType:this.state.mliType}),r.a.createElement(ie.a,{size:"small",color:"primary",fullWidth:!0,variant:"contained"},r.a.createElement(C.a,{onClick:this.showTraceInputsDialog},"Parse"),r.a.createElement(C.a,{onClick:this.showLoadMessagesDialog},"Load"),r.a.createElement(C.a,{onClick:this.showSaveMsgDialog},"Save"),r.a.createElement(C.a,{onClick:function(){return a.showEditTCDialog(!0)},disabled:null==this.state.testCase||null==this.state.testCase.resp_data},"Edit TC"),r.a.createElement(C.a,{onClick:this.sendToHost},"Send"),r.a.createElement(C.a,{onClick:this.showResponseDialog,disabled:null==this.state.responseData},"Show Response"))),r.a.createElement(X.a,{variation:"outlined",style:{verticalAlign:"middle"}},r.a.createElement("table",{border:"0",align:"center",style:{align:"center",marginTop:"10px",width:"80%"}},r.a.createElement("thead",null,r.a.createElement("tr",{style:{fontFamily:"lato-regular",backgroundColor:"#ff8f5b",fontSize:"15px",borderBottom:"solid",borderColor:"blue"}},r.a.createElement("td",{colSpan:"3",align:"center"},r.a.createElement("div",{style:{display:"inline-block"}},this.getTemplateLabel()))),r.a.createElement("tr",{style:{fontFamily:"lato-regular",backgroundColor:"#c4876e",fontSize:"15px",borderBottom:"solid",borderColor:"blue"}},r.a.createElement("td",{colSpan:"3",align:"center"},r.a.createElement("div",{style:{display:"inline-block"}},"Msg/TestCase: ".concat(this.state.currentDataSet)))),r.a.createElement("tr",{style:{fontFamily:"lato-regular",backgroundColor:"#ff8f5b",fontSize:"14px"}},r.a.createElement("td",{align:"center"},"Selection"),r.a.createElement("td",{align:"center",style:{width:"35%"}}," Field"),r.a.createElement("td",{align:"center",style:{width:"70%"}},"Field Data"))),r.a.createElement("tbody",null,t))),r.a.createElement(Q,{show:this.state.showResponse,reqData:this.state.reqClipboardData,onClose:this.hideResponse,testCase:this.state.testCase,data:this.state.responseData,dialogTitle:"Response - ["+this.getTemplateLabel()+"]",msgTemplate:this.state.msgTemplate}))),r.a.createElement(be,{value:this.state.selectedTab,index:1},r.a.createElement("div",{style:{alignItems:"left",width:"100%"}},r.a.createElement(le,{specId:this.state.spec.ID,msgId:this.state.msg.ID,initialMaxItems:this.state.msgHist.maxItems,initialLogData:this.state.msgHist.logData,saveState:this.saveHistState}))),r.a.createElement(be,{value:this.state.selectedTab,index:2},r.a.createElement("div",{style:{width:"100%"}},r.a.createElement(fe,null))))}}]),a}(r.a.Component);function be(e){var a=e.children,t=e.value,n=e.index,o=Object(y.a)(e,["children","value","index"]);return r.a.createElement("div",Object.assign({role:"tabpanel",hidden:t!==n,id:"simple-tabpanel-".concat(n),"aria-labelledby":"simple-tab-".concat(n)},o),t===n&&r.a.createElement(b.a,null,a))}var Se=t(231),Ae=t(121),Ie=t.n(Ae),De=t(229),Ne=t(227),Oe=t(228),Me=t(230),Te=t(226),Re=t(225),Ue=Object(Re.a)((function(e){return{root:{color:e.palette.text.secondary,"&:hover > $content":{backgroundColor:e.palette.action.hover},"&:focus > $content, &$selected > $content":{backgroundColor:"var(--tree-view-bg-color, ".concat(e.palette.grey[400],")"),color:"var(--tree-view-color)"},"&:focus > $content $label, &:hover > $content $label, &$selected > $content $label":{backgroundColor:"transparent"}},content:{color:e.palette.text.secondary,borderTopRightRadius:e.spacing(2),borderBottomRightRadius:e.spacing(2),paddingRight:e.spacing(1),fontWeight:e.typography.fontWeightMedium,"$expanded > &":{fontWeight:e.typography.fontWeightRegular}},group:{marginLeft:10,"& $content":{paddingLeft:e.spacing(3)}},expanded:{},selected:{},label:{fontWeight:"inherit",color:"inherit"},labelRoot:{display:"flex",alignItems:"center",padding:e.spacing(.8,0)},labelIcon:{marginRight:e.spacing(1)},labelText:{fontWeight:"inherit",flexGrow:1}}}));function ke(e){var a=Ue(),t=e.labelText,n=e.labelIcon,o=e.labelInfo,c=e.color,i=e.bgColor,l=Object(y.a)(e,["labelText","labelIcon","labelInfo","color","bgColor"]);return r.a.createElement(Te.a,Object.assign({label:r.a.createElement("div",{className:a.labelRoot},r.a.createElement(n,{color:"inherit",className:a.labelIcon}),r.a.createElement(me.a,{variant:"body2",className:a.labelText},t),r.a.createElement(me.a,{variant:"caption",color:"inherit"},o)),style:{"--tree-view-color":c,"--tree-view-bg-color":i},classes:{root:a.root,content:a.content,expanded:a.expanded,selected:a.selected,group:a.group,label:a.label}},l))}var we=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={specs:[],loaded:!1,errDialogVisible:!1,errorMessage:""},t.nodeSelected=t.nodeSelected.bind(Object(d.a)(t)),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"nodeSelected",value:function(e,a){var t=a.match("nodeId_([0-9]+)_([0-9]+)");t&&(console.log("matched",this.treeInstance),this.props.msgSelected(t[1],t[2]))}},{key:"componentDidMount",value:function(){var e=this;m.a.get(A.allSpecsUrl).then((function(a){console.log("allSpecs",a.data),e.setState({specs:a.data.specs,loaded:!0});var t=setInterval((function(){alert("Select one of the spec and message in the tree to get started!"),clearInterval(t)}),2)})).catch((function(e){return console.log(e)}))}},{key:"buildMessages",value:function(e){var a=[];return e.Messages.forEach((function(t){a.push(r.a.createElement(ke,{nodeId:"nodeId_"+e.ID+"_"+t.ID,sid:e.ID,mid:t.ID,label:t.Name}))})),a}},{key:"render",value:function(){var e=this;if(!0===this.state.loaded){var a=[];this.state.specs.forEach((function(t){a.push(r.a.createElement(ke,{align:"left",nodeId:"nodeId_"+t.ID,icon:r.a.createElement(Ne.a,{color:"primary"}),label:t.Name},e.buildMessages(t)))}));var t=r.a.createElement(ke,{nodeId:"nodeId_0",icon:r.a.createElement(Oe.a,{color:"primary"}),label:"ISO8583 Specifications"},a);return this.treeInstance=r.a.createElement(De.a,{onNodeSelect:this.nodeSelected,defaultExpanded:["nodeId_0"],defaultCollapseIcon:r.a.createElement(Ce.a,null),defaultExpandIcon:r.a.createElement(Ie.a,null),defaultParentIcon:r.a.createElement(Ne.a,{color:"primary"}),defaultEndIcon:r.a.createElement(Me.a,{color:"primary"})},t),r.a.createElement(r.a.Fragment,null,this.treeInstance)}return null}}]),a}(r.a.Component),Pe=function(e){function a(e){var t;return Object(i.a)(this,a),(t=Object(s.a)(this,Object(u.a)(a).call(this,e))).state={specs:[],currentSpec:"Select",currentSpecMsg:"",showMsgTemplate:!1,loaded:!1,errDialogVisible:!1,errorMessage:""},t.specChanged=t.specChanged.bind(Object(d.a)(t)),t.messageChanged=t.messageChanged.bind(Object(d.a)(t)),t.msgSelected=t.msgSelected.bind(Object(d.a)(t)),t.getSpecByID=t.getSpecByID.bind(Object(d.a)(t)),t.msgTemplateRef=r.a.createRef(),t}return Object(h.a)(a,e),Object(l.a)(a,[{key:"msgSelected",value:function(e,a){console.log(e,a),console.log(this.state.specs);var t=this.getSpecByID(parseInt(e));console.log("spec = ",t);var n=null;t.Messages.forEach((function(e){e.ID===parseInt(a)&&(n=e)})),this.setState({loaded:!0,currentSpec:t.Name,currentSpecMsg:n.Name})}},{key:"closeErrorDialog",value:function(){this.setState({errDialogVisible:!1})}},{key:"showErrorDialog",value:function(){this.setState({errDialogVisible:!0})}},{key:"componentDidMount",value:function(){var e=this;m.a.get(A.allSpecsUrl).then((function(a){console.log(a.data),e.setState({specs:a.data.specs,loaded:!0})})).catch((function(e){return console.log(e)}))}},{key:"render",value:function(){var e,a;return!0===this.state.loaded&&(null==(a=this.getCurrentSpec())&&(a=this.state.specs[0]),e=this.state.currentSpecMsg?this.state.currentSpecMsg:a.Messages[0].Name),r.a.createElement(r.a.Fragment,null,r.a.createElement("div",null,r.a.createElement(Se.a,{show:this.state.errDialogVisible,onHide:this.closeErrorDialog},r.a.createElement(Se.a.Header,{closeButton:!0},r.a.createElement(Se.a.Title,null,"Error")),r.a.createElement(Se.a.Body,null,this.state.errorMessage),r.a.createElement(Se.a.Footer,null,r.a.createElement(Z.a,{variant:"secondary",onClick:this.closeErrorDialog},"Close"))),r.a.createElement("div",{style:{float:"left",display:"inline-block",marginRight:"20px",marginLeft:"20px",backgroundColor:"#fbfff0"}},r.a.createElement(we,{msgSelected:this.msgSelected})),r.a.createElement("div",{align:"center",style:{backgroundColor:"#fbfff0",float:"right",width:"80%"}},this.state.loaded&&"Select"!==this.state.currentSpec?r.a.createElement(ve,{key:this.state.currentSpec+"_"+e,ref:this.msgTemplateRef,specs:this.state.specs,spec:this.state.currentSpec,msg:this.state.currentSpecMsg}):null)))}},{key:"specChanged",value:function(e){this.setState({currentSpec:e.target.value,currentSpecMsg:""}),console.log(e.target.value),this.state.loaded&&"Select"!==e.target.value&&console.log("calling update - specChanged")}},{key:"messageChanged",value:function(e){this.setState({currentSpecMsg:e.target.value}),this.state.loaded&&"Select"!==this.state.currentSpec&&console.log("calling update - msgChanged")}},{key:"specsDropDown",value:function(){return r.a.createElement("select",{style:{fontFamily:"lato-regular",width:"200px"},onChange:this.specChanged},r.a.createElement("option",{key:"Select",value:"Select"},"Select"),this.state.specs.map((function(e){return r.a.createElement("option",{key:e.Name,value:e.Name},e.Name)})))}},{key:"messagesDropDown",value:function(){var e;return this.state.loaded&&(e=this.getCurrentSpec()),"Select"===this.state.currentSpec?r.a.createElement("select",null):r.a.createElement("select",{value:this.state.currentSpecMsg,style:{fontFamily:"lato-regular",width:"150px"},onChange:this.messageChanged},e.Messages.map((function(e){return r.a.createElement("option",{key:e.ID,value:e.Name},e.Name)})))}},{key:"getCurrentSpec",value:function(){var e=this;return this.state.specs.find((function(a,t){return a.Name===e.state.currentSpec?a:null}))}},{key:"getSpecByName",value:function(e){return this.state.specs.find((function(a,t){return a.Name===e?a:null}))}},{key:"getSpecByID",value:function(e){return this.state.specs.find((function(a,t){return a.ID===e?a:null}))}}]),a}(r.a.Component);var Fe=function(){return r.a.createElement("div",{style:{backgroundColor:"#fbfff0"}},r.a.createElement("h1",{style:{fontFamily:"shadows-into-light"}},"ISO WebSim - ISO8583 Web Simulator"),r.a.createElement("a",{style:{fontFamily:"lato-regular",fontSize:"12px"},href:"/iso/v0/server",target:"_blank",rel:"noopener noreferrer"},"[Manage Servers]"),r.a.createElement("div",{className:"App"},r.a.createElement(Pe,null)))};Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));t(168);c.a.render(r.a.createElement(Fe,{style:{backgroundColor:"#fbfff0"}}),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))}},[[137,1,2]]]); +//# sourceMappingURL=main.04818dac.chunk.js.map \ No newline at end of file diff --git a/web/react-fe/build/static/js/main.04818dac.chunk.js.map b/web/react-fe/build/static/js/main.04818dac.chunk.js.map new file mode 100644 index 0000000..050de32 --- /dev/null +++ b/web/react-fe/build/static/js/main.04818dac.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["components/Utils/Properties.js","components/Dialogs/AlertDialog.js","components/Utils/PinGenBox.js","components/Utils/FieldValidator.js","components/Utils/MsgUtils.js","components/Utils/MacGenBox.js","components/Utils/FieldExtras.js","components/Utils/HintHelper.js","components/Utils/CountryCodePicker.js","components/Utils/CurrencyCodePicker.js","components/Utils/EnumeratedPicker.js","components/Iso/IsoField/IsoField.js","components/Dialogs/SelectMessageDialog.js","components/Dialogs/TestCaseEvalResultDialog.js","components/Iso/ResponseSegment.js","components/Dialogs/ParseMessageDialog.js","components/Dialogs/TCOptionsDialog.js","components/Dialogs/SaveMessageDialog.js","components/Utils/NetworkSettings.js","components/Utils/MsgHistPanel.js","components/Utils/BitmapFragment.js","components/Utils/CryptoUtils.js","components/Iso/MessageStructure.js","components/Navigation/SpecTree/StyledTreeItem.js","components/Navigation/SpecTree/SpecTree.js","components/Navigation/NavBar.js","App.js","serviceWorker.js","index.js"],"names":["AppProps","this","baseUrl","sendMsgUrl","loadMsgUrl","allSpecsUrl","templateUrl","parseTraceUrl","saveMsgUrl","pinGenUrl","macGenUrl","logHistUrl","FixedField","VariableField","BitmappedField","appProps","AlertDialog","props","state","show","handleClose","bind","setState","onClose","prevProps","prevState","snapshot","Dialog","open","aria-labelledby","aria-describedby","DialogTitle","id","DialogContent","DialogContentText","msg","DialogActions","Button","onClick","color","React","Component","PinGenBox","from","to","panID","field","initialPan","pinGenProps","PinGenProps","PANFieldID","PANExtractParams","match","split","originalPan","isoMsg","panField","get","fieldValue","substring","pinFormat","pan","clearPin","pinKey","GenType","PINFormat","PINClear","PINKey","hasError","errorMsg","generatePinBlock","panValueChanged","formatChanged","keyValueChanged","pinValueChanged","doNothing","tmp","length","pinError","keyError","panError","data","PAN","axios","post","JSON","stringify","then","res","setPinBlock","PinBlock","catch","err","error","console","log","event","target","value","Fragment","Box","border","borderColor","borderRadius","style","paddingBottom","padding","Grid","container","spacing","alignItems","item","xs","TextField","size","label","onChange","variant","margin","fullWidth","select","MenuItem","justify","float","fieldValidator","validate","fieldData","errors","validationFailed","Type","DataEncoding","FixedSize","push","Name","dataErr","fieldLen","MinSize","MaxSize","MsgUtils","content","validationErrors","isoField","ID","selected","setError","Value","Children","forEach","cf","addFieldContent","fields","f","MacGenBox","macAlgo","MacGenProps","MacAlgo","macKey","MacKey","generateMac","algoChanged","reqData","undefined","macData","mac_algo","mac_key","mac_data","getMsgContent","errMsg","e","spec_id","msg_id","parsed_fields","setMac","Mac","response","status","FieldExtras","closeThis","valueChanged","setValue","val","dynamicGenerators","readOnly","width","height","paddingTop","rows","multiline","disabled","HintHelper","Hint","Format","currDate","Date","fmt","i","indexOf","m","getMonth","month","substr","withMonth","d","getDate","date","withDate","getHours","hr","withHour","getMinutes","mins","withMins","getSeconds","secs","withSecs","CountryCodePicker","useState","countryCodes","useEffect","v","code","Autocomplete","options","newValue","getOptionLabel","option","country","renderInput","params","currencyCodes","numericCode","currency","alphaCode","EnumeratedPicker","values","Description","IsoField","fieldValueChanged","fieldSelectionChanged","onFieldUpdate","appendFieldContent","setSelected","setNewValue","showExpanded","closeExpanded","getBgColor","toggleExpanded","onFocusLost","applyPadding","selectable","id2Value","fieldEditable","bgColor","expandBtnLabel","defaultFieldValue","generateValue","has","tmpField","MandatoryFields","includes","Array","fill","reduce","p","c","set","fieldName","currentVal","Position","bits","ChangeType","turnOff","obj","checked","initVal","Padding","startsWith","expectedLength","endsWith","parentField","level","key","selectionColumnContent","align","Checkbox","type","positionInParent","ParentId","fieldInfo","LengthIndicatorSize","LengthEncoding","children","levelIndicator","inpComponent","Values","helperText","onBlur","OverlayTrigger","overlay","Tooltip","fontSize","placement","InputLabel","sm","marginRight","marginLeft","colSpan","SelectMessageDialog","selectedMsg","errorMessage","closeDialogSuccess","closeDialogFail","selectedMsgChanged","specId","msgId","savedMsgs","saved_messages","closeLoadMsgDialog","map","maxWidth","lg","xl","TestCaseEvalResultDialog","evalResult","results","r","disableBackdropClick","contentEditable","rowsMax","ResponseSegment","msgTemplate","evalResults","showEvalResultsDialog","hideResponseSegment","copyToClipboard","evalTestCase","showEvalResults","textAreaRef","createRef","testCase","resp_data","tf","actualBmp","tcBmp","charAt","CompareOp","idToField","idToValue","collectData","current","document","execCommand","alert","forClipboard","Map","clipboardText","currentIndex","scroll","PaperComponent","cursor","dialogTitle","dividers","Paper","ref","opacity","position","zIndex","fontFamily","backgroundColor","borderBottom","handle","cancel","ParseMessageDialog","traceMsg","traceChanged","isValidTrace","trace","trim","updatedTrace","setTrace","TCOptionsDialog","handleCancel","msgName","responseRef","responseData","postData","onCancel","comps","TCFieldConfig","setOption","defaultValue","SaveMessageDialog","includeResponse","initialMessage","updateIfExists","showTCEditDialog","msgNameChanged","updateIfExistsChanged","updateIncludeResponseChanged","msgSaveSuccess","msgSaveFailed","msgSaveCancelled","saveAsTest","FormControlLabel","control","NetworkSettings","targetServerIp","serverIP","targetServerPort","port","mliType","serverIpChanged","serverPortChanged","mliTypeChanged","marginBottom","textAlign","verticalAlign","marginTop","MsgHistPanel","maxItems","initialMaxItems","logData","initialLogData","maxItemsChanged","fetchLogs","displayData","saveState","UIIsoBitmap","pos","bitmapstr","toHexString","isSet","bitChanged","bitmapChanged","npads","replace","j","binValue","toBinary","k","frg1","frg2","toHex","lpos","act_pos","fcontent","scontent","CryptoUtilsBox","pinField","PANFieldId","macField","pinBlock","mac","setPinValue","setMacValue","macDataChanged","direction","ExpansionPanel","ExpansionPanelSummary","expandIcon","aria-controls","Typography","ExpansionPanelDetails","MessageStructure","loaded","spec","shouldShow","showMsgTemplate","currentDataSet","errDialogVisible","showLoadMessagesDialog","showTraceInputDialog","showSaveMsgDialog","showResponse","reqMenuVisible","selectedReqMenuItem","reqClipboardData","selectedTab","showEditTCDialog","msgHist","sendToHost","showErrorDialog","closeErrorDialog","processError","showUnImplementedError","showTraceInputsDialog","showInfoDialog","showMenu","hideMenu","handleMenuClick","showResponseDialog","getTemplateLabel","networkSettingsChanged","hideResponse","tabChanged","saveHistState","setStateAndPushUp","stateObj","histState","ip","currentTarget","fd","dsName","saved_message","req_data","updated","saveData","response_fields","getMessageTemplate","pSpec","pMsg","specs","find","s","Messages","url","AppBar","Tabs","aria-label","centered","Tab","TabPanel","index","display","ButtonGroup","variation","other","role","hidden","useTreeItemStyles","makeStyles","theme","root","palette","text","secondary","action","hover","grey","borderTopRightRadius","borderBottomRightRadius","paddingRight","fontWeight","typography","fontWeightMedium","fontWeightRegular","group","paddingLeft","expanded","labelRoot","labelIcon","labelText","flexGrow","StyledTreeItem","classes","LabelIcon","labelInfo","TreeItem","className","SpecTree","nodeSelected","selectedNode","matches","treeInstance","msgSelected","timerId","setInterval","clearInterval","nodeId","sid","mid","icon","Folder","buildMessages","treeContent","Home","TreeView","onNodeSelect","defaultExpanded","defaultCollapseIcon","defaultExpandIcon","defaultParentIcon","defaultEndIcon","Message","NavBar","currentSpec","currentSpecMsg","specChanged","messageChanged","getSpecByID","msgTemplateRef","parseInt","getCurrentSpec","Modal","onHide","Header","closeButton","Title","Body","Footer","name","App","href","rel","Boolean","window","location","hostname","ReactDOM","render","getElementById","navigator","serviceWorker","ready","registration","unregister","message"],"mappings":"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","file":"static/js/main.04818dac.chunk.js","sourcesContent":["// AppProps are various URL's that are used by axios\r\nexport class AppProps {\r\n\r\n static FixedField = \"Fixed\";\r\n static VariableField = \"Variable\";\r\n static BitmappedField = \"Bitmapped\";\r\n\r\n constructor() {\r\n this.baseUrl = 'http://localhost:8080';\r\n //this.baseUrl = '';\r\n this.sendMsgUrl = this.baseUrl + '/iso/v1/send';\r\n this.loadMsgUrl = this.baseUrl + '/iso/v1/loadmsg';\r\n this.allSpecsUrl = this.baseUrl + '/iso/v1/specs';\r\n this.templateUrl = this.baseUrl + '/iso/v1/template';\r\n this.parseTraceUrl = this.baseUrl + '/iso/v1/parse';\r\n this.saveMsgUrl = this.baseUrl + '/iso/v1/save';\r\n this.pinGenUrl = this.baseUrl + '/iso/v1/crypto/pin_gen';\r\n this.macGenUrl = this.baseUrl + '/iso/v1/crypto/mac_gen';\r\n\r\n this.logHistUrl = this.baseUrl + '/iso/v1/websim/msg_hist/last_n';\r\n }\r\n\r\n}\r\n\r\nlet appProps = new AppProps();\r\nexport default appProps;","import React from \"react\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\n\r\nexport default class AlertDialog extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {show: props.show};\r\n\r\n this.handleClose = this.handleClose.bind(this);\r\n }\r\n\r\n handleClose() {\r\n this.setState({show: false})\r\n this.props.onClose();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n\r\n if (this.props.show === true && prevState.show === false) {\r\n this.setState({show: true})\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n {\"Alert!\"}\r\n \r\n \r\n {this.props.msg}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n }\r\n}","import Grid from \"@material-ui/core/Grid\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\n\r\nimport axios from \"axios\";\r\nimport appProps from \"./Properties\";\r\nimport AlertDialog from \"../Dialogs/AlertDialog\";\r\n\r\nexport default class PinGenBox extends React.Component {\r\n\r\n field;\r\n from = 0;\r\n to = 0;\r\n panID = 0;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.field = this.props.field;\r\n\r\n let initialPan = \"\";\r\n let pinGenProps = this.field.PinGenProps;\r\n\r\n if (this.field.PinGenProps.PANFieldID !== 0) {\r\n this.panID = this.field.PinGenProps.PANFieldID;\r\n }\r\n\r\n if (pinGenProps.PANFieldID !== 0 && pinGenProps.PANExtractParams !== \"\"\r\n && pinGenProps.PANExtractParams.match(\"[0-9]+:[0-9]+\")) {\r\n\r\n [this.from, this.to] = pinGenProps.PANExtractParams.split(\":\");\r\n\r\n }\r\n\r\n let originalPan = \"\";\r\n if (this.props.isoMsg) {\r\n let panField = this.props.isoMsg.get(this.panID);\r\n if (panField) {\r\n originalPan = panField.state.fieldValue;\r\n initialPan = originalPan;\r\n\r\n if (this.from >= 0 && this.to > this.from) {\r\n initialPan = panField.state.fieldValue.substring(this.from, this.to);\r\n }\r\n }\r\n } else {\r\n this.state = {pinFormat: \"ISO0\", pan: initialPan, clearPin: \"\", pinKey: \"\"}\r\n }\r\n\r\n if (this.field.GenType === 'pin_gen') {\r\n this.state = {\r\n pinFormat: this.field.PinGenProps.PINFormat,\r\n pan: initialPan,\r\n originalPan: originalPan,\r\n clearPin: this.field.PinGenProps.PINClear,\r\n pinKey: this.field.PinGenProps.PINKey,\r\n hasError: false,\r\n errorMsg: null\r\n }\r\n }\r\n\r\n this.generatePinBlock = this.generatePinBlock.bind(this);\r\n this.panValueChanged = this.panValueChanged.bind(this);\r\n this.formatChanged = this.formatChanged.bind(this);\r\n this.keyValueChanged = this.keyValueChanged.bind(this);\r\n this.pinValueChanged = this.pinValueChanged.bind(this);\r\n this.doNothing = this.doNothing.bind(this);\r\n\r\n }\r\n\r\n doNothing() {\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n\r\n if (!this.props.isoMsg) {\r\n return\r\n }\r\n\r\n let tmp = this.props.isoMsg.get(this.panID);\r\n if (tmp) {\r\n\r\n if (this.state.originalPan !== tmp.state.fieldValue) {\r\n\r\n // if the pan has changed, record it\r\n let originalPan = tmp.state.fieldValue;\r\n let pan = \"\";\r\n if (this.from >= 0 && this.to > this.from) {\r\n pan = tmp.state.fieldValue.substring(this.from, this.to);\r\n } else {\r\n pan = tmp.state.fieldValue\r\n }\r\n\r\n this.setState({pan: pan, originalPan: originalPan})\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n generatePinBlock() {\r\n\r\n if (this.state.pan === \"\") {\r\n this.setState({panError: true})\r\n return;\r\n }\r\n\r\n if (this.state.clearPin === \"\" || this.state.clearPin.length < 4 || this.state.clearPin.length\r\n > 12) {\r\n this.setState({pinError: true})\r\n return;\r\n }\r\n\r\n if (this.state.pinKey === \"\" || (this.state.pinKey.length !== 16 && this.state.pinKey.length\r\n !== 32)) {\r\n this.setState({keyError: true})\r\n return\r\n }\r\n\r\n this.setState({keyError: false, pinError: false, panError: false});\r\n\r\n let data = {\r\n PINClear: this.state.clearPin,\r\n PINFormat: this.state.pinFormat,\r\n PINKey: this.state.pinKey,\r\n PAN: this.state.pan\r\n };\r\n\r\n //console.log(JSON.stringify(data))\r\n axios.post(appProps.pinGenUrl, JSON.stringify(data)).then(res => {\r\n this.props.setPinBlock(res.data.PinBlock);\r\n }).catch(err => {\r\n let errorMsg = \"Failed to generate PIN block: \";\r\n if (err.error) {\r\n errorMsg = errorMsg + err.error\r\n } else {\r\n errorMsg = errorMsg + err;\r\n }\r\n\r\n this.setState({hasError: true, errorMsg: errorMsg});\r\n console.log(\"error= \", err);\r\n })\r\n\r\n }\r\n\r\n formatChanged(event) {\r\n this.setState({pinFormat: event.target.value});\r\n }\r\n\r\n pinValueChanged(event) {\r\n this.setState({clearPin: event.target.value});\r\n }\r\n\r\n panValueChanged(event) {\r\n this.setState({pan: event.target.value});\r\n }\r\n\r\n keyValueChanged(event) {\r\n this.setState({pinKey: event.target.value});\r\n }\r\n\r\n render() {\r\n\r\n if (this.field.GenType !== 'pin_gen') {\r\n return null;\r\n }\r\n\r\n return (\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 ISO-0\r\n ISO-1\r\n ISO-3\r\n IBM-3264\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\r\n
\r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}","// FieldValidator provides validation logic for field values\r\nimport {AppProps} from \"./Properties\";\r\n\r\nclass FieldValidator {\r\n\r\n constructor(props) {\r\n this.validate = this.validate.bind(this);\r\n }\r\n\r\n validate(field, fieldData, errors) {\r\n\r\n //console.log(\"validate\", field, fieldData, errors);\r\n let validationFailed = false;\r\n\r\n if (field.Type === AppProps.FixedField) {\r\n\r\n if (field.DataEncoding === 'ASCII' || field.DataEncoding === 'EBCDIC') {\r\n if (fieldData.length !== field.FixedSize) {\r\n errors.push(\r\n `\\u2b55 \"${field.Name}\" should have a fixed size of ${field.FixedSize} but has ${fieldData.length}`);\r\n validationFailed = true;\r\n }\r\n } else {\r\n if (fieldData.length !== 2 * field.FixedSize) {\r\n errors.push(\r\n `\\u2b55 \"${field.Name}\" should have a fixed size of ${field.FixedSize} but has ${fieldData.length\r\n / 2}`);\r\n validationFailed = true;\r\n }\r\n }\r\n\r\n }\r\n\r\n let dataErr = false;\r\n\r\n if (field.DataEncoding === 'BCD' || field.DataEncoding === 'BINARY') {\r\n if (fieldData.length % 2 !== 0) {\r\n errors.push(\r\n `\\u2b55 \"${field.Name}\" should have even number of characters!`);\r\n validationFailed = true;\r\n dataErr = true;\r\n }\r\n\r\n if (field.DataEncoding === 'BINARY' && !fieldData.match(\r\n \"^[0-9,a-f,A-F]+$\")) {\r\n errors.push(`\\u2b55 \"${field.Name}\" supports only hex i.e 0-9,a-z,A-Z`);\r\n validationFailed = true;\r\n }\r\n if (field.DataEncoding === 'BCD' && !fieldData.match(\"^[0-9]+$\")) {\r\n errors.push(`\\u2b55 \"${field.Name}\" supports only bcd i.e 0-9`);\r\n validationFailed = true;\r\n }\r\n }\r\n\r\n if (!dataErr && field.Type === AppProps.VariableField) {\r\n\r\n let fieldLen = fieldData.length;\r\n if (field.DataEncoding === 'BCD' || field.DataEncoding === 'BINARY') {\r\n fieldLen = fieldData.length / 2;\r\n }\r\n\r\n if (field.MinSize > 0 && fieldData.length < field.MinSize) {\r\n errors.push(\r\n `\\u2b55 \"${field.Name} size of ${fieldLen} is less than required min of ${field.MinSize}\" `);\r\n validationFailed = true;\r\n }\r\n if (field.MaxSize > 0 && fieldData.length > field.MaxSize) {\r\n errors.push(\r\n `\\u2b55 \"${field.Name} size of ${fieldLen} is greater than required max of ${field.MaxSize}\" `);\r\n validationFailed = true;\r\n }\r\n }\r\n\r\n //TODO:: other checks like content etc\r\n return validationFailed;\r\n\r\n }\r\n\r\n}\r\n\r\nlet fieldValidator = new FieldValidator();\r\nexport default fieldValidator;","import fieldValidator from \"./FieldValidator\";\r\n\r\nexport default class MsgUtils {\r\n\r\n static addFieldContent(field, content, isoMsg, validationErrors) {\r\n\r\n let isoField = isoMsg.get(field.ID);\r\n\r\n if (isoField.state.selected) {\r\n if (fieldValidator.validate(field, isoField.state.fieldValue, validationErrors)) {\r\n isoField.setError(true);\r\n } else {\r\n isoField.setError(false);\r\n }\r\n content.push({ID: field.ID, Name: field.Name, Value: isoField.state.fieldValue});\r\n }\r\n\r\n field.Children.forEach(cf => {\r\n if (isoField.state.selected) {\r\n MsgUtils.addFieldContent(cf, content, isoMsg, validationErrors);\r\n }\r\n });\r\n\r\n }\r\n\r\n static getMsgContent(isoMsg, content, validationErrors) {\r\n isoMsg.get(\"msg_template\").fields.forEach(f => {\r\n MsgUtils.addFieldContent(f, content, isoMsg, validationErrors);\r\n });\r\n\r\n };\r\n\r\n}\r\n\r\n\r\n","import Grid from \"@material-ui/core/Grid\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport React from \"react\";\r\nimport Box from \"@material-ui/core/Box\";\r\n\r\nimport axios from \"axios\";\r\nimport appProps from \"./Properties\";\r\nimport AlertDialog from \"../Dialogs/AlertDialog\";\r\nimport MsgUtils from \"./MsgUtils.js\";\r\n\r\nexport default class MacGenBox extends React.Component {\r\n\r\n field;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.field = this.props.field;\r\n\r\n this.state = {\r\n macAlgo: this.field.MacGenProps.MacAlgo,\r\n macKey: this.field.MacGenProps.MacKey,\r\n hasError: false,\r\n errorMsg: null\r\n }\r\n\r\n this.generateMac = this.generateMac.bind(this);\r\n this.algoChanged = this.algoChanged.bind(this);\r\n this.keyValueChanged = this.keyValueChanged.bind(this);\r\n this.doNothing = this.doNothing.bind(this);\r\n\r\n }\r\n\r\n doNothing() {\r\n this.setState({hasError: false, errorMsg: null});\r\n }\r\n\r\n generateMac() {\r\n\r\n if (this.state.macKey === \"\" || (this.state.macKey.length !== 16 && this.state.macKey.length\r\n !== 32)) {\r\n this.setState({keyError: true})\r\n return\r\n }\r\n\r\n this.setState({keyError: false});\r\n\r\n let content = []\r\n let validationErrors = []\r\n\r\n let reqData = {};\r\n\r\n if (this.props.macData !== undefined) {\r\n\r\n //if mac-data has been provided\r\n\r\n if (this.props.macData.length === 0) {\r\n this.setState({hasError: true, errorMsg: \"Invalid MacData supplied.\"});\r\n return\r\n } else {\r\n\r\n this.setState({hasError: false, errorMsg: null});\r\n\r\n let macData = this.props.macData;\r\n\r\n reqData = {\r\n mac_algo: this.state.macAlgo, mac_key: this.state.macKey, mac_data: macData\r\n };\r\n }\r\n\r\n } else {\r\n\r\n //mac_data is to be computed on the server-side\r\n\r\n MsgUtils.getMsgContent(this.props.isoMsg, content, validationErrors);\r\n\r\n if (validationErrors.length > 0) {\r\n let errMsg = \"\";\r\n validationErrors.forEach(e => errMsg += e + \"\\n\");\r\n this.setState({hasError: true, errorMsg: errMsg});\r\n return\r\n }\r\n\r\n reqData = {\r\n mac_algo: this.state.macAlgo,\r\n mac_key: this.state.macKey,\r\n spec_id: this.props.isoMsg.get(\"spec_id\"),\r\n msg_id: this.props.isoMsg.get(\"msg_id\"),\r\n parsed_fields: content\r\n };\r\n }\r\n\r\n axios.post(appProps.macGenUrl, JSON.stringify(reqData)).then(res => {\r\n this.setState({hasError: false, errorMsg: null});\r\n this.props.setMac(res.data.Mac);\r\n\r\n }).catch(e => {\r\n let errorMsg = \"Failed to generate MAC: \";\r\n if (e.error) {\r\n if (e.response.status === 400) {\r\n errorMsg = errorMsg + e.response.data.error;\r\n }\r\n\r\n } else {\r\n errorMsg = errorMsg + e;\r\n }\r\n\r\n this.setState({hasError: true, errorMsg: errorMsg});\r\n console.log(\"error= \", e);\r\n })\r\n\r\n }\r\n\r\n algoChanged(event) {\r\n this.setState({macAlgo: event.target.value});\r\n }\r\n\r\n keyValueChanged(event) {\r\n this.setState({macKey: event.target.value});\r\n }\r\n\r\n render() {\r\n\r\n if (this.field.GenType !== 'mac_gen') {\r\n return null;\r\n }\r\n\r\n return (\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 ANSIX9_19\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 }\r\n}","import React from 'react';\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport PinGenBox from \"./PinGenBox\";\r\nimport MacGenBox from \"./MacGenBox\";\r\n\r\n// FieldExtras shows additional options for a field and an option to view/edit\r\n// field value within a large field (TextArea) and is useful when editing fields with large values\r\nexport default class FieldExtras extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {show: this.props.show, value: this.props.value};\r\n this.closeThis = this.closeThis.bind(this);\r\n this.valueChanged = this.valueChanged.bind(this);\r\n this.setValue = this.setValue.bind(this);\r\n }\r\n\r\n valueChanged(event) {\r\n this.setState({value: event.target.value});\r\n }\r\n\r\n closeThis() {\r\n this.setState({show: true});\r\n this.props.onClose(this.state.value);\r\n }\r\n\r\n setValue(val) {\r\n this.setState({value: val})\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.show === false && this.props.show === true && this.state.show === false) {\r\n this.setState({show: true, value: this.props.value})\r\n } else if (this.props.show === false && this.state.show === true) {\r\n this.setState({show: false, value: this.props.value})\r\n }\r\n }\r\n\r\n render() {\r\n\r\n let dynamicGenerators = null;\r\n\r\n if (!this.props.readOnly) {\r\n //only for request fields\r\n\r\n if (this.props.field.GenType === 'pin_gen') {\r\n dynamicGenerators = \r\n } else if (this.props.field.GenType === 'mac_gen') {\r\n dynamicGenerators =\r\n \r\n }\r\n }\r\n\r\n return (\r\n\r\n (this.state.show === true) ?\r\n\r\n \r\n
\r\n\r\n {dynamicGenerators}\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
: null);\r\n }\r\n\r\n}","export default class HintHelper {\r\n\r\n// TODO:: consider using moment.js\r\n static generateValue(field) {\r\n\r\n function withDate(fmt, i, currDate) {\r\n\r\n\r\n let d = currDate.getDate();\r\n let date = \"\";\r\n if (d < 10) {\r\n date = \"0\" + d;\r\n } else {\r\n date = \"\" + d;\r\n }\r\n return fmt.substr(0, i) + date + fmt.substr(i + 2);\r\n\r\n\r\n }\r\n\r\n function withMonth(fmt, i, currDate) {\r\n\r\n let m = currDate.getMonth() + 1;\r\n let month = \"\";\r\n if (m < 10) {\r\n month = \"0\" + m;\r\n } else {\r\n month = \"\" + m;\r\n }\r\n fmt = fmt.substr(0, i) + month + fmt.substr(i + 2);\r\n return fmt;\r\n\r\n }\r\n\r\n function withHour(fmt, i, currDate) {\r\n\r\n let m = currDate.getHours();\r\n let hr = \"\";\r\n if (m < 10) {\r\n hr = \"0\" + m;\r\n } else {\r\n hr = \"\" + m;\r\n }\r\n fmt = fmt.substr(0, i) + hr + fmt.substr(i + 2);\r\n return fmt;\r\n\r\n }\r\n\r\n function withMins(fmt, i, currDate) {\r\n let m = currDate.getMinutes();\r\n let mins = \"\";\r\n if (m < 10) {\r\n mins = \"0\" + m;\r\n } else {\r\n mins = \"\" + m;\r\n }\r\n fmt = fmt.substr(0, i) + mins + fmt.substr(i + 2);\r\n return fmt;\r\n }\r\n\r\n function withSecs(fmt, i, currDate) {\r\n let m = currDate.getSeconds();\r\n let secs = \"\";\r\n if (m < 10) {\r\n secs = \"0\" + m;\r\n } else {\r\n secs = \"\" + m;\r\n }\r\n fmt = fmt.substr(0, i) + secs + fmt.substr(i + 2);\r\n return fmt;\r\n }\r\n\r\n if (field.Hint.Type == \"date_time\") {\r\n if (field.Hint.Format) {\r\n //we only support\r\n //MMdd HHmmss\r\n let currDate = new Date();\r\n let fmt = field.Hint.Format;\r\n let i = fmt.indexOf(\"MM\");\r\n if (i != -1) {\r\n fmt = withMonth(fmt, i, currDate)\r\n }\r\n\r\n i = fmt.indexOf(\"dd\");\r\n if (i != -1) {\r\n fmt = withDate(fmt, i, currDate)\r\n }\r\n\r\n i = fmt.indexOf(\"HH\");\r\n if (i != -1) {\r\n fmt = withHour(fmt, i, currDate)\r\n }\r\n\r\n i = fmt.indexOf(\"mm\");\r\n if (i != -1) {\r\n fmt = withMins(fmt, i, currDate)\r\n }\r\n\r\n i = fmt.indexOf(\"ss\");\r\n if (i != -1) {\r\n fmt = withSecs(fmt, i, currDate)\r\n }\r\n\r\n return fmt;\r\n\r\n }\r\n\r\n return \"\"\r\n }\r\n\r\n return \"\"\r\n }\r\n}","import React from \"react\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\n\r\nexport default function CountryCodePicker(props) {\r\n\r\n const [value, setValue] = React.useState(countryCodes[102]);\r\n\r\n React.useEffect(() => {\r\n\r\n if (props.disabled == false) {\r\n\r\n //if there is already a value supplied, use that\r\n if (props.value) {\r\n countryCodes.forEach((v) => {\r\n if (v.code == props.value) {\r\n setValue(v);\r\n }\r\n })\r\n\r\n } else {\r\n props.valueChanged(value.code);\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n }, [])\r\n\r\n /*React.useEffect(() => {\r\n if(props.disabled==false){\r\n props.valueChanged(value.code);\r\n }\r\n\r\n }, [value])*/\r\n\r\n React.useEffect(() => {\r\n\r\n countryCodes.forEach((v) => {\r\n if (v.code == props.value) {\r\n setValue(v);\r\n return\r\n }\r\n })\r\n\r\n }, [props.value])\r\n\r\n\r\n return (\r\n\r\n {\r\n if (newValue == null) {\r\n return\r\n }\r\n setValue(newValue);\r\n props.valueChanged(newValue.code);\r\n }}\r\n getOptionLabel={(option) => option.country}\r\n style={{width: \"80%\"}}\r\n renderInput={(params) => }\r\n />\r\n );\r\n\r\n\r\n}\r\n\r\n\r\n//https://en.wikipedia.org/wiki/ISO_3166-1_numeric#Officially_assigned_code_elements\r\nconst countryCodes = [\r\n {code: '004', country: 'Afghanistan'},\r\n {code: '008', country: 'Albania'},\r\n {code: '010', country: 'Antarctica'},\r\n {code: '012', country: 'Algeria'},\r\n {code: '016', country: 'American Samoa'},\r\n {code: '020', country: 'Andorra'},\r\n {code: '024', country: 'Angola'},\r\n {code: '028', country: 'Antigua and Barbuda'},\r\n {code: '031', country: 'Azerbaijan'},\r\n {code: '032', country: 'Argentina'},\r\n {code: '036', country: 'Australia'},\r\n {code: '040', country: 'Austria'},\r\n {code: '044', country: 'Bahamas'},\r\n {code: '048', country: 'Bahrain'},\r\n {code: '050', country: 'Bangladesh'},\r\n {code: '051', country: 'Armenia'},\r\n {code: '052', country: 'Barbados'},\r\n {code: '056', country: 'Belgium'},\r\n {code: '060', country: 'Bermuda'},\r\n {code: '064', country: 'Bhutan'},\r\n {code: '068', country: 'Bolivia (Plurinational State of)'},\r\n {code: '070', country: 'Bosnia and Herzegovina'},\r\n {code: '072', country: 'Botswana'},\r\n {code: '074', country: 'Bouvet Island'},\r\n {code: '076', country: 'Brazil'},\r\n {code: '084', country: 'Belize'},\r\n {code: '086', country: 'British Indian Ocean Territory'},\r\n {code: '090', country: 'Solomon Islands'},\r\n {code: '092', country: 'Virgin Islands (British)'},\r\n {code: '096', country: 'Brunei Darussalam'},\r\n {code: '100', country: 'Bulgaria'},\r\n {code: '104', country: 'Myanmar'},\r\n {code: '108', country: 'Burundi'},\r\n {code: '112', country: 'Belarus'},\r\n {code: '116', country: 'Cambodia'},\r\n {code: '120', country: 'Cameroon'},\r\n {code: '124', country: 'Canada'},\r\n {code: '132', country: 'Cabo Verde'},\r\n {code: '136', country: 'Cayman Islands'},\r\n {code: '140', country: 'Central African Republic'},\r\n {code: '144', country: 'Sri Lanka'},\r\n {code: '148', country: 'Chad'},\r\n {code: '152', country: 'Chile'},\r\n {code: '156', country: 'China'},\r\n {code: '158', country: 'Taiwan, Province of China'},\r\n {code: '162', country: 'Christmas Island'},\r\n {code: '166', country: 'Cocos (Keeling) Islands'},\r\n {code: '170', country: 'Colombia'},\r\n {code: '174', country: 'Comoros'},\r\n {code: '175', country: 'Mayotte'},\r\n {code: '178', country: 'Congo'},\r\n {code: '180', country: 'Congo, Democratic Republic of the'},\r\n {code: '184', country: 'Cook Islands'},\r\n {code: '188', country: 'Costa Rica'},\r\n {code: '191', country: 'Croatia'},\r\n {code: '192', country: 'Cuba'},\r\n {code: '196', country: 'Cyprus'},\r\n {code: '203', country: 'Czechia'},\r\n {code: '204', country: 'Benin'},\r\n {code: '208', country: 'Denmark'},\r\n {code: '212', country: 'Dominica'},\r\n {code: '214', country: 'Dominican Republic'},\r\n {code: '218', country: 'Ecuador'},\r\n {code: '222', country: 'El Salvador'},\r\n {code: '226', country: 'Equatorial Guinea'},\r\n {code: '231', country: 'Ethiopia'},\r\n {code: '232', country: 'Eritrea'},\r\n {code: '233', country: 'Estonia'},\r\n {code: '234', country: 'Faroe Islands'},\r\n {code: '238', country: 'Falkland Islands (Malvinas)'},\r\n {code: '239', country: 'South Georgia and the South Sandwich Islands'},\r\n {code: '242', country: 'Fiji'},\r\n {code: '246', country: 'Finland'},\r\n {code: '248', country: 'Åland Islands'},\r\n {code: '250', country: 'France'},\r\n {code: '254', country: 'French Guiana'},\r\n {code: '258', country: 'French Polynesia'},\r\n {code: '260', country: 'French Southern Territories'},\r\n {code: '262', country: 'Djibouti'},\r\n {code: '266', country: 'Gabon'},\r\n {code: '268', country: 'Georgia'},\r\n {code: '270', country: 'Gambia'},\r\n {code: '275', country: 'Palestine, State of'},\r\n {code: '276', country: 'Germany'},\r\n {code: '288', country: 'Ghana'},\r\n {code: '292', country: 'Gibraltar'},\r\n {code: '296', country: 'Kiribati'},\r\n {code: '300', country: 'Greece'},\r\n {code: '304', country: 'Greenland'},\r\n {code: '308', country: 'Grenada'},\r\n {code: '312', country: 'Guadeloupe'},\r\n {code: '316', country: 'Guam'},\r\n {code: '320', country: 'Guatemala'},\r\n {code: '324', country: 'Guinea'},\r\n {code: '328', country: 'Guyana'},\r\n {code: '332', country: 'Haiti'},\r\n {code: '334', country: 'Heard Island and McDonald Islands'},\r\n {code: '336', country: 'Holy See'},\r\n {code: '340', country: 'Honduras'},\r\n {code: '344', country: 'Hong Kong'},\r\n {code: '348', country: 'Hungary'},\r\n {code: '352', country: 'Iceland'},\r\n {code: '356', country: 'India'},\r\n {code: '360', country: 'Indonesia'},\r\n {code: '364', country: 'Iran (Islamic Republic of)'},\r\n {code: '368', country: 'Iraq'},\r\n {code: '372', country: 'Ireland'},\r\n {code: '376', country: 'Israel'},\r\n {code: '380', country: 'Italy'},\r\n {code: '384', country: 'Côte d\\'Ivoire'},\r\n {code: '388', country: 'Jamaica'},\r\n {code: '392', country: 'Japan'},\r\n {code: '398', country: 'Kazakhstan'},\r\n {code: '400', country: 'Jordan'},\r\n {code: '404', country: 'Kenya'},\r\n {code: '408', country: 'Korea (Democratic People\\'s Republic of)'},\r\n {code: '410', country: 'Korea, Republic of'},\r\n {code: '414', country: 'Kuwait'},\r\n {code: '417', country: 'Kyrgyzstan'},\r\n {code: '418', country: 'Lao People\\'s Democratic Republic'},\r\n {code: '422', country: 'Lebanon'},\r\n {code: '426', country: 'Lesotho'},\r\n {code: '428', country: 'Latvia'},\r\n {code: '430', country: 'Liberia'},\r\n {code: '434', country: 'Libya'},\r\n {code: '438', country: 'Liechtenstein'},\r\n {code: '440', country: 'Lithuania'},\r\n {code: '442', country: 'Luxembourg'},\r\n {code: '446', country: 'Macao'},\r\n {code: '450', country: 'Madagascar'},\r\n {code: '454', country: 'Malawi'},\r\n {code: '458', country: 'Malaysia'},\r\n {code: '462', country: 'Maldives'},\r\n {code: '466', country: 'Mali'},\r\n {code: '470', country: 'Malta'},\r\n {code: '474', country: 'Martinique'},\r\n {code: '478', country: 'Mauritania'},\r\n {code: '480', country: 'Mauritius'},\r\n {code: '484', country: 'Mexico'},\r\n {code: '492', country: 'Monaco'},\r\n {code: '496', country: 'Mongolia'},\r\n {code: '498', country: 'Moldova, Republic of'},\r\n {code: '499', country: 'Montenegro'},\r\n {code: '500', country: 'Montserrat'},\r\n {code: '504', country: 'Morocco'},\r\n {code: '508', country: 'Mozambique'},\r\n {code: '512', country: 'Oman'},\r\n {code: '516', country: 'Namibia'},\r\n {code: '520', country: 'Nauru'},\r\n {code: '524', country: 'Nepal'},\r\n {code: '528', country: 'Netherlands'},\r\n {code: '531', country: 'Curaçao'},\r\n {code: '533', country: 'Aruba'},\r\n {code: '534', country: 'Sint Maarten (Dutch part)'},\r\n {code: '535', country: 'Bonaire, Sint Eustatius and Saba'},\r\n {code: '540', country: 'New Caledonia'},\r\n {code: '548', country: 'Vanuatu'},\r\n {code: '554', country: 'New Zealand'},\r\n {code: '558', country: 'Nicaragua'},\r\n {code: '562', country: 'Niger'},\r\n {code: '566', country: 'Nigeria'},\r\n {code: '570', country: 'Niue'},\r\n {code: '574', country: 'Norfolk Island'},\r\n {code: '578', country: 'Norway'},\r\n {code: '580', country: 'Northern Mariana Islands'},\r\n {code: '581', country: 'United States Minor Outlying Islands'},\r\n {code: '583', country: 'Micronesia (Federated States of)'},\r\n {code: '584', country: 'Marshall Islands'},\r\n {code: '585', country: 'Palau'},\r\n {code: '586', country: 'Pakistan'},\r\n {code: '591', country: 'Panama'},\r\n {code: '598', country: 'Papua New Guinea'},\r\n {code: '600', country: 'Paraguay'},\r\n {code: '604', country: 'Peru'},\r\n {code: '608', country: 'Philippines'},\r\n {code: '612', country: 'Pitcairn'},\r\n {code: '616', country: 'Poland'},\r\n {code: '620', country: 'Portugal'},\r\n {code: '624', country: 'Guinea-Bissau'},\r\n {code: '626', country: 'Timor-Leste'},\r\n {code: '630', country: 'Puerto Rico'},\r\n {code: '634', country: 'Qatar'},\r\n {code: '638', country: 'Réunion'},\r\n {code: '642', country: 'Romania'},\r\n {code: '643', country: 'Russian Federation'},\r\n {code: '646', country: 'Rwanda'},\r\n {code: '652', country: 'Saint Barthélemy'},\r\n {code: '654', country: 'Saint Helena, Ascension and Tristan da Cunha'},\r\n {code: '659', country: 'Saint Kitts and Nevis'},\r\n {code: '660', country: 'Anguilla'},\r\n {code: '662', country: 'Saint Lucia'},\r\n {code: '663', country: 'Saint Martin (French part)'},\r\n {code: '666', country: 'Saint Pierre and Miquelon'},\r\n {code: '670', country: 'Saint Vincent and the Grenadines'},\r\n {code: '674', country: 'San Marino'},\r\n {code: '678', country: 'Sao Tome and Principe'},\r\n {code: '682', country: 'Saudi Arabia'},\r\n {code: '686', country: 'Senegal'},\r\n {code: '688', country: 'Serbia'},\r\n {code: '690', country: 'Seychelles'},\r\n {code: '694', country: 'Sierra Leone'},\r\n {code: '702', country: 'Singapore'},\r\n {code: '703', country: 'Slovakia'},\r\n {code: '704', country: 'Viet Nam'},\r\n {code: '705', country: 'Slovenia'},\r\n {code: '706', country: 'Somalia'},\r\n {code: '710', country: 'South Africa'},\r\n {code: '716', country: 'Zimbabwe'},\r\n {code: '724', country: 'Spain'},\r\n {code: '728', country: 'South Sudan'},\r\n {code: '729', country: 'Sudan'},\r\n {code: '732', country: 'Western Sahara'},\r\n {code: '740', country: 'Suriname'},\r\n {code: '744', country: 'Svalbard and Jan Mayen'},\r\n {code: '748', country: 'Eswatini'},\r\n {code: '752', country: 'Sweden'},\r\n {code: '756', country: 'Switzerland'},\r\n {code: '760', country: 'Syrian Arab Republic'},\r\n {code: '762', country: 'Tajikistan'},\r\n {code: '764', country: 'Thailand'},\r\n {code: '768', country: 'Togo'},\r\n {code: '772', country: 'Tokelau'},\r\n {code: '776', country: 'Tonga'},\r\n {code: '780', country: 'Trinidad and Tobago'},\r\n {code: '784', country: 'United Arab Emirates'},\r\n {code: '788', country: 'Tunisia'},\r\n {code: '792', country: 'Turkey'},\r\n {code: '795', country: 'Turkmenistan'},\r\n {code: '796', country: 'Turks and Caicos Islands'},\r\n {code: '798', country: 'Tuvalu'},\r\n {code: '800', country: 'Uganda'},\r\n {code: '804', country: 'Ukraine'},\r\n {code: '807', country: 'North Macedonia'},\r\n {code: '818', country: 'Egypt'},\r\n {code: '826', country: 'United Kingdom of Great Britain and Northern Ireland'},\r\n {code: '831', country: 'Guernsey'},\r\n {code: '832', country: 'Jersey'},\r\n {code: '833', country: 'Isle of Man'},\r\n {code: '834', country: 'Tanzania, United Republic of'},\r\n {code: '840', country: 'United States of America'},\r\n {code: '850', country: 'Virgin Islands (U.S.)'},\r\n {code: '854', country: 'Burkina Faso'},\r\n {code: '858', country: 'Uruguay'},\r\n {code: '860', country: 'Uzbekistan'},\r\n {code: '862', country: 'Venezuela (Bolivarian Republic of)'},\r\n {code: '876', country: 'Wallis and Futuna'},\r\n {code: '882', country: 'Samoa'},\r\n {code: '887', country: 'Yemen'},\r\n {code: '894', country: 'Zambia'},\r\n];\r\n","import React from \"react\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\n\r\nexport default function CountryCodePicker(props) {\r\n\r\n const [value, setValue] = React.useState(currencyCodes[108]);\r\n\r\n\r\n React.useEffect(() => {\r\n\r\n if (props.disabled == false) {\r\n\r\n //if there is already a value supplied, use that\r\n if (props.value) {\r\n currencyCodes.forEach((v) => {\r\n if (v.numericCode == props.value) {\r\n setValue(v);\r\n }\r\n })\r\n\r\n } else {\r\n props.valueChanged(value.numericCode);\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n }, [])\r\n\r\n /*React.useEffect(() => {\r\n if(props.disabled==false){\r\n props.valueChanged(value.numericCode);\r\n }\r\n\r\n }, [value])*/\r\n\r\n\r\n React.useEffect(() => {\r\n\r\n currencyCodes.forEach((v) => {\r\n if (v.numericCode == props.value) {\r\n setValue(v);\r\n return\r\n }\r\n })\r\n\r\n }, [props.value])\r\n\r\n\r\n return (\r\n\r\n {\r\n if (newValue == null) {\r\n return\r\n }\r\n setValue(newValue);\r\n props.valueChanged(newValue.numericCode);\r\n }}\r\n getOptionLabel={(option) => option.currency}\r\n style={{width: \"80%\"}}\r\n renderInput={(params) => }\r\n />\r\n );\r\n\r\n\r\n}\r\n\r\n\r\n//https://www.iban.com/currency-codes\r\n\r\nconst currencyCodes = [\r\n {country: 'AFGHANISTAN', currency: 'Afghani', alphaCode: 'AFN', numericCode: '971'},\r\n {country: 'ALBANIA', currency: 'Lek', alphaCode: 'ALL', numericCode: '008'},\r\n {country: 'ALGERIA', currency: 'Algerian Dinar', alphaCode: 'DZD', numericCode: '012'},\r\n {country: 'AMERICAN SAMOA', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'ANDORRA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'ANGOLA', currency: 'Kwanza', alphaCode: 'AOA', numericCode: '973'},\r\n {country: 'ANGUILLA', currency: 'East Caribbean Dollar', alphaCode: 'XCD', numericCode: '951'},\r\n //{country: 'ANTARCTICA', currency: 'No universal currency', currency: '', currency: ''},\r\n {country: 'ANTIGUA AND BARBUDA', currency: 'East Caribbean Dollar', alphaCode: 'XCD', numericCode: '951'},\r\n {country: 'ARGENTINA', currency: 'Argentine Peso', alphaCode: 'ARS', numericCode: '032'},\r\n {country: 'ARMENIA', currency: 'Armenian Dram', alphaCode: 'AMD', numericCode: '051'},\r\n {country: 'ARUBA', currency: 'Aruban Florin', alphaCode: 'AWG', numericCode: '533'},\r\n {country: 'AUSTRALIA', currency: 'Australian Dollar', alphaCode: 'AUD', numericCode: '036'},\r\n {country: 'AUSTRIA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'AZERBAIJAN', currency: 'Azerbaijanian Manat', alphaCode: 'AZN', numericCode: '944'},\r\n {country: 'BAHAMAS (THE)', currency: 'Bahamian Dollar', alphaCode: 'BSD', numericCode: '044'},\r\n {country: 'BAHRAIN', currency: 'Bahraini Dinar', alphaCode: 'BHD', numericCode: '048'},\r\n {country: 'BANGLADESH', currency: 'Taka', alphaCode: 'BDT', numericCode: '050'},\r\n {country: 'BARBADOS', currency: 'Barbados Dollar', alphaCode: 'BBD', numericCode: '052'},\r\n {country: 'BELARUS', currency: 'Belarussian Ruble', alphaCode: 'BYN', numericCode: '933'},\r\n {country: 'BELGIUM', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'BELIZE', currency: 'Belize Dollar', alphaCode: 'BZD', numericCode: '084'},\r\n {country: 'BENIN', currency: 'CFA Franc BCEAO', alphaCode: 'XOF', numericCode: '952'},\r\n {country: 'BERMUDA', currency: 'Bermudian Dollar', alphaCode: 'BMD', numericCode: '060'},\r\n {country: 'BHUTAN', currency: 'Ngultrum', alphaCode: 'BTN', numericCode: '064'},\r\n {country: 'BHUTAN', currency: 'Indian Rupee', alphaCode: 'INR', numericCode: '356'},\r\n {country: 'BOLIVIA (PLURINATIONAL STATE OF)', currency: 'Boliviano', alphaCode: 'BOB', numericCode: '068'},\r\n {country: 'BOLIVIA (PLURINATIONAL STATE OF)', currency: 'Mvdol', alphaCode: 'BOV', numericCode: '984'},\r\n {country: 'BONAIRE, SINT EUSTATIUS AND SABA', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'BOSNIA AND HERZEGOVINA', currency: 'Convertible Mark', alphaCode: 'BAM', numericCode: '977'},\r\n {country: 'BOTSWANA', currency: 'Pula', alphaCode: 'BWP', numericCode: '072'},\r\n {country: 'BOUVET ISLAND', currency: 'Norwegian Krone', alphaCode: 'NOK', numericCode: '578'},\r\n {country: 'BRAZIL', currency: 'Brazilian Real', alphaCode: 'BRL', numericCode: '986'},\r\n {country: 'BRITISH INDIAN OCEAN TERRITORY (THE)', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'BRUNEI DARUSSALAM', currency: 'Brunei Dollar', alphaCode: 'BND', numericCode: '096'},\r\n {country: 'BULGARIA', currency: 'Bulgarian Lev', alphaCode: 'BGN', numericCode: '975'},\r\n {country: 'BURKINA FASO', currency: 'CFA Franc BCEAO', alphaCode: 'XOF', numericCode: '952'},\r\n {country: 'BURUNDI', currency: 'Burundi Franc', alphaCode: 'BIF', numericCode: '108'},\r\n {country: 'CABO VERDE', currency: 'Cabo Verde Escudo', alphaCode: 'CVE', numericCode: '132'},\r\n {country: 'CAMBODIA', currency: 'Riel', alphaCode: 'KHR', numericCode: '116'},\r\n {country: 'CAMEROON', currency: 'CFA Franc BEAC', alphaCode: 'XAF', numericCode: '950'},\r\n {country: 'CANADA', currency: 'Canadian Dollar', alphaCode: 'CAD', numericCode: '124'},\r\n {country: 'CAYMAN ISLANDS (THE)', currency: 'Cayman Islands Dollar', alphaCode: 'KYD', numericCode: '136'},\r\n {country: 'CENTRAL AFRICAN REPUBLIC (THE)', currency: 'CFA Franc BEAC', alphaCode: 'XAF', numericCode: '950'},\r\n {country: 'CHAD', currency: 'CFA Franc BEAC', alphaCode: 'XAF', numericCode: '950'},\r\n {country: 'CHILE', currency: 'Unidad de Fomento', alphaCode: 'CLF', numericCode: '990'},\r\n {country: 'CHILE', currency: 'Chilean Peso', alphaCode: 'CLP', numericCode: '152'},\r\n {country: 'CHINA', currency: 'Yuan Renminbi', alphaCode: 'CNY', numericCode: '156'},\r\n {country: 'CHRISTMAS ISLAND', currency: 'Australian Dollar', alphaCode: 'AUD', numericCode: '036'},\r\n {country: 'COCOS (KEELING) ISLANDS (THE)', currency: 'Australian Dollar', alphaCode: 'AUD', numericCode: '036'},\r\n {country: 'COLOMBIA', currency: 'Colombian Peso', alphaCode: 'COP', numericCode: '170'},\r\n {country: 'COLOMBIA', currency: 'Unidad de Valor Real', alphaCode: 'COU', numericCode: '970'},\r\n {country: 'COMOROS (THE)', currency: 'Comoro Franc', alphaCode: 'KMF', numericCode: '174'},\r\n {\r\n country: 'CONGO (THE DEMOCRATIC REPUBLIC OF THE)',\r\n currency: 'Congolese Franc',\r\n alphaCode: 'CDF',\r\n numericCode: '976'\r\n },\r\n {country: 'CONGO (THE)', currency: 'CFA Franc BEAC', alphaCode: 'XAF', numericCode: '950'},\r\n {country: 'COOK ISLANDS (THE)', currency: 'New Zealand Dollar', alphaCode: 'NZD', numericCode: '554'},\r\n {country: 'COSTA RICA', currency: 'Costa Rican Colon', alphaCode: 'CRC', numericCode: '188'},\r\n {country: 'CROATIA', currency: 'Kuna', alphaCode: 'HRK', numericCode: '191'},\r\n {country: 'CUBA', currency: 'Peso Convertible', alphaCode: 'CUC', numericCode: '931'},\r\n {country: 'CUBA', currency: 'Cuban Peso', alphaCode: 'CUP', numericCode: '192'},\r\n {country: 'CURAÇAO', currency: 'Netherlands Antillean Guilder', alphaCode: 'ANG', numericCode: '532'},\r\n {country: 'CYPRUS', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'CZECH REPUBLIC (THE)', currency: 'Czech Koruna', alphaCode: 'CZK', numericCode: '203'},\r\n {country: 'CÔTE D\\'IVOIRE', currency: 'CFA Franc BCEAO', alphaCode: 'XOF', numericCode: '952'},\r\n {country: 'DENMARK', currency: 'Danish Krone', alphaCode: 'DKK', numericCode: '208'},\r\n {country: 'DJIBOUTI', currency: 'Djibouti Franc', alphaCode: 'DJF', numericCode: '262'},\r\n {country: 'DOMINICA', currency: 'East Caribbean Dollar', alphaCode: 'XCD', numericCode: '951'},\r\n {country: 'DOMINICAN REPUBLIC (THE)', currency: 'Dominican Peso', alphaCode: 'DOP', numericCode: '214'},\r\n {country: 'ECUADOR', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'EGYPT', currency: 'Egyptian Pound', alphaCode: 'EGP', numericCode: '818'},\r\n {country: 'EL SALVADOR', currency: 'El Salvador Colon', alphaCode: 'SVC', numericCode: '222'},\r\n {country: 'EL SALVADOR', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'EQUATORIAL GUINEA', currency: 'CFA Franc BEAC', alphaCode: 'XAF', numericCode: '950'},\r\n {country: 'ERITREA', currency: 'Nakfa', alphaCode: 'ERN', numericCode: '232'},\r\n {country: 'ESTONIA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'ETHIOPIA', currency: 'Ethiopian Birr', alphaCode: 'ETB', numericCode: '230'},\r\n {country: 'EUROPEAN UNION', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {\r\n country: 'FALKLAND ISLANDS (THE) [MALVINAS]',\r\n currency: 'Falkland Islands Pound',\r\n alphaCode: 'FKP',\r\n numericCode: '238'\r\n },\r\n {country: 'FAROE ISLANDS (THE)', currency: 'Danish Krone', alphaCode: 'DKK', numericCode: '208'},\r\n {country: 'FIJI', currency: 'Fiji Dollar', alphaCode: 'FJD', numericCode: '242'},\r\n {country: 'FINLAND', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'FRANCE', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'FRENCH GUIANA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'FRENCH POLYNESIA', currency: 'CFP Franc', alphaCode: 'XPF', numericCode: '953'},\r\n {country: 'FRENCH SOUTHERN TERRITORIES (THE)', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'GABON', currency: 'CFA Franc BEAC', alphaCode: 'XAF', numericCode: '950'},\r\n {country: 'GAMBIA (THE)', currency: 'Dalasi', alphaCode: 'GMD', numericCode: '270'},\r\n {country: 'GEORGIA', currency: 'Lari', alphaCode: 'GEL', numericCode: '981'},\r\n {country: 'GERMANY', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'GHANA', currency: 'Ghana Cedi', alphaCode: 'GHS', numericCode: '936'},\r\n {country: 'GIBRALTAR', currency: 'Gibraltar Pound', alphaCode: 'GIP', numericCode: '292'},\r\n {country: 'GREECE', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'GREENLAND', currency: 'Danish Krone', alphaCode: 'DKK', numericCode: '208'},\r\n {country: 'GRENADA', currency: 'East Caribbean Dollar', alphaCode: 'XCD', numericCode: '951'},\r\n {country: 'GUADELOUPE', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'GUAM', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'GUATEMALA', currency: 'Quetzal', alphaCode: 'GTQ', numericCode: '320'},\r\n {country: 'GUERNSEY', currency: 'Pound Sterling', alphaCode: 'GBP', numericCode: '826'},\r\n {country: 'GUINEA', currency: 'Guinea Franc', alphaCode: 'GNF', numericCode: '324'},\r\n {country: 'GUINEA-BISSAU', currency: 'CFA Franc BCEAO', alphaCode: 'XOF', numericCode: '952'},\r\n {country: 'GUYANA', currency: 'Guyana Dollar', alphaCode: 'GYD', numericCode: '328'},\r\n {country: 'HAITI', currency: 'Gourde', alphaCode: 'HTG', numericCode: '332'},\r\n {country: 'HAITI', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'HEARD ISLAND AND McDONALD ISLANDS', currency: 'Australian Dollar', alphaCode: 'AUD', numericCode: '036'},\r\n {country: 'HOLY SEE (THE)', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'HONDURAS', currency: 'Lempira', alphaCode: 'HNL', numericCode: '340'},\r\n {country: 'HONG KONG', currency: 'Hong Kong Dollar', alphaCode: 'HKD', numericCode: '344'},\r\n {country: 'HUNGARY', currency: 'Forint', alphaCode: 'HUF', numericCode: '348'},\r\n {country: 'ICELAND', currency: 'Iceland Krona', alphaCode: 'ISK', numericCode: '352'},\r\n {country: 'INDIA', currency: 'Indian Rupee', alphaCode: 'INR', numericCode: '356'},\r\n {country: 'INDONESIA', currency: 'Rupiah', alphaCode: 'IDR', numericCode: '360'},\r\n {\r\n country: 'INTERNATIONAL MONETARY FUND (IMF) ',\r\n currency: 'SDR (Special Drawing Right)',\r\n alphaCode: 'XDR',\r\n numericCode: '960'\r\n },\r\n {country: 'IRAN (ISLAMIC REPUBLIC OF)', currency: 'Iranian Rial', alphaCode: 'IRR', numericCode: '364'},\r\n {country: 'IRAQ', currency: 'Iraqi Dinar', alphaCode: 'IQD', numericCode: '368'},\r\n {country: 'IRELAND', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'ISLE OF MAN', currency: 'Pound Sterling', alphaCode: 'GBP', numericCode: '826'},\r\n {country: 'ISRAEL', currency: 'New Israeli Sheqel', alphaCode: 'ILS', numericCode: '376'},\r\n {country: 'ITALY', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'JAMAICA', currency: 'Jamaican Dollar', alphaCode: 'JMD', numericCode: '388'},\r\n {country: 'JAPAN', currency: 'Yen', alphaCode: 'JPY', numericCode: '392'},\r\n {country: 'JERSEY', currency: 'Pound Sterling', alphaCode: 'GBP', numericCode: '826'},\r\n {country: 'JORDAN', currency: 'Jordanian Dinar', alphaCode: 'JOD', numericCode: '400'},\r\n {country: 'KAZAKHSTAN', currency: 'Tenge', alphaCode: 'KZT', numericCode: '398'},\r\n {country: 'KENYA', currency: 'Kenyan Shilling', alphaCode: 'KES', numericCode: '404'},\r\n {country: 'KIRIBATI', currency: 'Australian Dollar', alphaCode: 'AUD', numericCode: '036'},\r\n {\r\n country: 'KOREA (THE DEMOCRATIC PEOPLE\\’S REPUBLIC OF)',\r\n currency: 'North Korean Won',\r\n alphaCode: 'KPW',\r\n numericCode: '408'\r\n },\r\n {country: 'KOREA (THE REPUBLIC OF)', currency: 'Won', alphaCode: 'KRW', numericCode: '410'},\r\n {country: 'KUWAIT', currency: 'Kuwaiti Dinar', alphaCode: 'KWD', numericCode: '414'},\r\n {country: 'KYRGYZSTAN', currency: 'Som', alphaCode: 'KGS', numericCode: '417'},\r\n {country: 'LAO PEOPLE’S DEMOCRATIC REPUBLIC (THE)', currency: 'Kip', alphaCode: 'LAK', numericCode: '418'},\r\n {country: 'LATVIA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'LEBANON', currency: 'Lebanese Pound', alphaCode: 'LBP', numericCode: '422'},\r\n {country: 'LESOTHO', currency: 'Loti', alphaCode: 'LSL', numericCode: '426'},\r\n {country: 'LESOTHO', currency: 'Rand', alphaCode: 'ZAR', numericCode: '710'},\r\n {country: 'LIBERIA', currency: 'Liberian Dollar', alphaCode: 'LRD', numericCode: '430'},\r\n {country: 'LIBYA', currency: 'Libyan Dinar', alphaCode: 'LYD', numericCode: '434'},\r\n {country: 'LIECHTENSTEIN', currency: 'Swiss Franc', alphaCode: 'CHF', numericCode: '756'},\r\n {country: 'LITHUANIA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'LUXEMBOURG', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'MACAO', currency: 'Pataca', alphaCode: 'MOP', numericCode: '446'},\r\n {country: 'MADAGASCAR', currency: 'Malagasy Ariary', alphaCode: 'MGA', numericCode: '969'},\r\n {country: 'MALAWI', currency: 'Kwacha', alphaCode: 'MWK', numericCode: '454'},\r\n {country: 'MALAYSIA', currency: 'Malaysian Ringgit', alphaCode: 'MYR', numericCode: '458'},\r\n {country: 'MALDIVES', currency: 'Rufiyaa', alphaCode: 'MVR', numericCode: '462'},\r\n {country: 'MALI', currency: 'CFA Franc BCEAO', alphaCode: 'XOF', numericCode: '952'},\r\n {country: 'MALTA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'MARSHALL ISLANDS (THE)', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'MARTINIQUE', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'MAURITANIA', currency: 'Ouguiya', alphaCode: 'MRU', numericCode: '929'},\r\n {country: 'MAURITIUS', currency: 'Mauritius Rupee', alphaCode: 'MUR', numericCode: '480'},\r\n {country: 'MAYOTTE', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {\r\n country: 'MEMBER COUNTRIES OF THE AFRICAN DEVELOPMENT BANK GROUP',\r\n currency: 'ADB Unit of Account',\r\n alphaCode: 'XUA',\r\n numericCode: '965'\r\n },\r\n {country: 'MEXICO', currency: 'Mexican Peso', alphaCode: 'MXN', numericCode: '484'},\r\n {country: 'MEXICO', currency: 'Mexican Unidad de Inversion (UDI)', alphaCode: 'MXV', numericCode: '979'},\r\n {country: 'MICRONESIA (FEDERATED STATES OF)', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'MOLDOVA (THE REPUBLIC OF)', currency: 'Moldovan Leu', alphaCode: 'MDL', numericCode: '498'},\r\n {country: 'MONACO', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'MONGOLIA', currency: 'Tugrik', alphaCode: 'MNT', numericCode: '496'},\r\n {country: 'MONTENEGRO', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'MONTSERRAT', currency: 'East Caribbean Dollar', alphaCode: 'XCD', numericCode: '951'},\r\n {country: 'MOROCCO', currency: 'Moroccan Dirham', alphaCode: 'MAD', numericCode: '504'},\r\n {country: 'MOZAMBIQUE', currency: 'Mozambique Metical', alphaCode: 'MZN', numericCode: '943'},\r\n {country: 'MYANMAR', currency: 'Kyat', alphaCode: 'MMK', numericCode: '104'},\r\n {country: 'NAMIBIA', currency: 'Namibia Dollar', alphaCode: 'NAD', numericCode: '516'},\r\n {country: 'NAMIBIA', currency: 'Rand', alphaCode: 'ZAR', numericCode: '710'},\r\n {country: 'NAURU', currency: 'Australian Dollar', alphaCode: 'AUD', numericCode: '036'},\r\n {country: 'NEPAL', currency: 'Nepalese Rupee', alphaCode: 'NPR', numericCode: '524'},\r\n {country: 'NETHERLANDS (THE)', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'NEW CALEDONIA', currency: 'CFP Franc', alphaCode: 'XPF', numericCode: '953'},\r\n {country: 'NEW ZEALAND', currency: 'New Zealand Dollar', alphaCode: 'NZD', numericCode: '554'},\r\n {country: 'NICARAGUA', currency: 'Cordoba Oro', alphaCode: 'NIO', numericCode: '558'},\r\n {country: 'NIGER (THE)', currency: 'CFA Franc BCEAO', alphaCode: 'XOF', numericCode: '952'},\r\n {country: 'NIGERIA', currency: 'Naira', alphaCode: 'NGN', numericCode: '566'},\r\n {country: 'NIUE', currency: 'New Zealand Dollar', alphaCode: 'NZD', numericCode: '554'},\r\n {country: 'NORFOLK ISLAND', currency: 'Australian Dollar', alphaCode: 'AUD', numericCode: '036'},\r\n {country: 'NORTHERN MARIANA ISLANDS (THE)', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'NORWAY', currency: 'Norwegian Krone', alphaCode: 'NOK', numericCode: '578'},\r\n {country: 'OMAN', currency: 'Rial Omani', alphaCode: 'OMR', numericCode: '512'},\r\n {country: 'PAKISTAN', currency: 'Pakistan Rupee', alphaCode: 'PKR', numericCode: '586'},\r\n {country: 'PALAU', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n //{country: 'PALESTINE, STATE OF', currency: 'No universal currency', currency: '', currency: ''},\r\n {country: 'PANAMA', currency: 'Balboa', alphaCode: 'PAB', numericCode: '590'},\r\n {country: 'PANAMA', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'PAPUA NEW GUINEA', currency: 'Kina', alphaCode: 'PGK', numericCode: '598'},\r\n {country: 'PARAGUAY', currency: 'Guarani', alphaCode: 'PYG', numericCode: '600'},\r\n {country: 'PERU', currency: 'Nuevo Sol', alphaCode: 'PEN', numericCode: '604'},\r\n {country: 'PHILIPPINES (THE)', currency: 'Philippine Peso', alphaCode: 'PHP', numericCode: '608'},\r\n {country: 'PITCAIRN', currency: 'New Zealand Dollar', alphaCode: 'NZD', numericCode: '554'},\r\n {country: 'POLAND', currency: 'Zloty', alphaCode: 'PLN', numericCode: '985'},\r\n {country: 'PORTUGAL', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'PUERTO RICO', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'QATAR', currency: 'Qatari Rial', alphaCode: 'QAR', numericCode: '634'},\r\n {country: 'REPUBLIC OF NORTH MACEDONIA', currency: 'Denar', alphaCode: 'MKD', numericCode: '807'},\r\n {country: 'ROMANIA', currency: 'Romanian Leu', alphaCode: 'RON', numericCode: '946'},\r\n {country: 'RUSSIAN FEDERATION (THE)', currency: 'Russian Ruble', alphaCode: 'RUB', numericCode: '643'},\r\n {country: 'RWANDA', currency: 'Rwanda Franc', alphaCode: 'RWF', numericCode: '646'},\r\n {country: 'RÉUNION', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'SAINT BARTHÉLEMY', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {\r\n country: 'SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA',\r\n currency: 'Saint Helena Pound',\r\n alphaCode: 'SHP',\r\n numericCode: '654'\r\n },\r\n {country: 'SAINT KITTS AND NEVIS', currency: 'East Caribbean Dollar', alphaCode: 'XCD', numericCode: '951'},\r\n {country: 'SAINT LUCIA', currency: 'East Caribbean Dollar', alphaCode: 'XCD', numericCode: '951'},\r\n {country: 'SAINT MARTIN (FRENCH PART)', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'SAINT PIERRE AND MIQUELON', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {\r\n country: 'SAINT VINCENT AND THE GRENADINES',\r\n currency: 'East Caribbean Dollar',\r\n alphaCode: 'XCD',\r\n numericCode: '951'\r\n },\r\n {country: 'SAMOA', currency: 'Tala', alphaCode: 'WST', numericCode: '882'},\r\n {country: 'SAN MARINO', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'SAO TOME AND PRINCIPE', currency: 'Dobra', alphaCode: 'STN', numericCode: '930'},\r\n {country: 'SAUDI ARABIA', currency: 'Saudi Riyal', alphaCode: 'SAR', numericCode: '682'},\r\n {country: 'SENEGAL', currency: 'CFA Franc BCEAO', alphaCode: 'XOF', numericCode: '952'},\r\n {country: 'SERBIA', currency: 'Serbian Dinar', alphaCode: 'RSD', numericCode: '941'},\r\n {country: 'SEYCHELLES', currency: 'Seychelles Rupee', alphaCode: 'SCR', numericCode: '690'},\r\n {country: 'SIERRA LEONE', currency: 'Leone', alphaCode: 'SLL', numericCode: '694'},\r\n {country: 'SINGAPORE', currency: 'Singapore Dollar', alphaCode: 'SGD', numericCode: '702'},\r\n {\r\n country: 'SINT MAARTEN (DUTCH PART)',\r\n currency: 'Netherlands Antillean Guilder',\r\n alphaCode: 'ANG',\r\n numericCode: '532'\r\n },\r\n {\r\n country: 'SISTEMA UNITARIO DE COMPENSACION REGIONAL DE PAGOS \"SUCRE\"',\r\n currency: 'Sucre',\r\n alphaCode: 'XSU',\r\n numericCode: '994'\r\n },\r\n {country: 'SLOVAKIA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'SLOVENIA', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'SOLOMON ISLANDS', currency: 'Solomon Islands Dollar', alphaCode: 'SBD', numericCode: '090'},\r\n {country: 'SOMALIA', currency: 'Somali Shilling', alphaCode: 'SOS', numericCode: '706'},\r\n {country: 'SOUTH AFRICA', currency: 'Rand', alphaCode: 'ZAR', numericCode: '710'},\r\n //{country: 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', currency: 'No universal currency', currency: '', currency: ''},\r\n {country: 'SOUTH SUDAN', currency: 'South Sudanese Pound', alphaCode: 'SSP', numericCode: '728'},\r\n {country: 'SPAIN', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n {country: 'SRI LANKA', currency: 'Sri Lanka Rupee', alphaCode: 'LKR', numericCode: '144'},\r\n {country: 'SUDAN (THE)', currency: 'Sudanese Pound', alphaCode: 'SDG', numericCode: '938'},\r\n {country: 'SURINAME', currency: 'Surinam Dollar', alphaCode: 'SRD', numericCode: '968'},\r\n {country: 'SVALBARD AND JAN MAYEN', currency: 'Norwegian Krone', alphaCode: 'NOK', numericCode: '578'},\r\n {country: 'SWAZILAND', currency: 'Lilangeni', alphaCode: 'SZL', numericCode: '748'},\r\n {country: 'SWEDEN', currency: 'Swedish Krona', alphaCode: 'SEK', numericCode: '752'},\r\n {country: 'SWITZERLAND', currency: 'WIR Euro', alphaCode: 'CHE', numericCode: '947'},\r\n {country: 'SWITZERLAND', currency: 'Swiss Franc', alphaCode: 'CHF', numericCode: '756'},\r\n {country: 'SWITZERLAND', currency: 'WIR Franc', alphaCode: 'CHW', numericCode: '948'},\r\n {country: 'SYRIAN ARAB REPUBLIC', currency: 'Syrian Pound', alphaCode: 'SYP', numericCode: '760'},\r\n {country: 'TAIWAN (PROVINCE OF CHINA)', currency: 'New Taiwan Dollar', alphaCode: 'TWD', numericCode: '901'},\r\n {country: 'TAJIKISTAN', currency: 'Somoni', alphaCode: 'TJS', numericCode: '972'},\r\n {country: 'TANZANIA, UNITED REPUBLIC OF', currency: 'Tanzanian Shilling', alphaCode: 'TZS', numericCode: '834'},\r\n {country: 'THAILAND', currency: 'Baht', alphaCode: 'THB', numericCode: '764'},\r\n {country: 'TIMOR-LESTE', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'TOGO', currency: 'CFA Franc BCEAO', alphaCode: 'XOF', numericCode: '952'},\r\n {country: 'TOKELAU', currency: 'New Zealand Dollar', alphaCode: 'NZD', numericCode: '554'},\r\n {country: 'TONGA', currency: 'Pa’anga', alphaCode: 'TOP', numericCode: '776'},\r\n {country: 'TRINIDAD AND TOBAGO', currency: 'Trinidad and Tobago Dollar', alphaCode: 'TTD', numericCode: '780'},\r\n {country: 'TUNISIA', currency: 'Tunisian Dinar', alphaCode: 'TND', numericCode: '788'},\r\n {country: 'TURKEY', currency: 'Turkish Lira', alphaCode: 'TRY', numericCode: '949'},\r\n {country: 'TURKMENISTAN', currency: 'Turkmenistan New Manat', alphaCode: 'TMT', numericCode: '934'},\r\n {country: 'TURKS AND CAICOS ISLANDS (THE)', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'TUVALU', currency: 'Australian Dollar', alphaCode: 'AUD', numericCode: '036'},\r\n {country: 'UGANDA', currency: 'Uganda Shilling', alphaCode: 'UGX', numericCode: '800'},\r\n {country: 'UKRAINE', currency: 'Hryvnia', alphaCode: 'UAH', numericCode: '980'},\r\n {country: 'UNITED ARAB EMIRATES (THE)', currency: 'UAE Dirham', alphaCode: 'AED', numericCode: '784'},\r\n {\r\n country: 'UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND (THE)',\r\n currency: 'Pound Sterling',\r\n alphaCode: 'GBP',\r\n numericCode: '826'\r\n },\r\n {\r\n country: 'UNITED STATES MINOR OUTLYING ISLANDS (THE)',\r\n currency: 'US Dollar',\r\n alphaCode: 'USD',\r\n numericCode: '840'\r\n },\r\n {country: 'UNITED STATES OF AMERICA (THE)', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'UNITED STATES OF AMERICA (THE)', currency: 'US Dollar (Next day)', alphaCode: 'USN', numericCode: '997'},\r\n {\r\n country: 'URUGUAY',\r\n currency: 'Uruguay Peso en Unidades Indexadas (URUIURUI)',\r\n alphaCode: 'UYI',\r\n numericCode: '940'\r\n },\r\n {country: 'URUGUAY', currency: 'Peso Uruguayo', alphaCode: 'UYU', numericCode: '858'},\r\n {country: 'UZBEKISTAN', currency: 'Uzbekistan Sum', alphaCode: 'UZS', numericCode: '860'},\r\n {country: 'VANUATU', currency: 'Vatu', alphaCode: 'VUV', numericCode: '548'},\r\n {country: 'VENEZUELA (BOLIVARIAN REPUBLIC OF)', currency: 'Bolivar', alphaCode: 'VEF', numericCode: '937'},\r\n {country: 'VIET NAM', currency: 'Dong', alphaCode: 'VND', numericCode: '704'},\r\n {country: 'VIRGIN ISLANDS (BRITISH)', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'VIRGIN ISLANDS (U.S.)', currency: 'US Dollar', alphaCode: 'USD', numericCode: '840'},\r\n {country: 'WALLIS AND FUTUNA', currency: 'CFP Franc', alphaCode: 'XPF', numericCode: '953'},\r\n {country: 'WESTERN SAHARA', currency: 'Moroccan Dirham', alphaCode: 'MAD', numericCode: '504'},\r\n {country: 'YEMEN', currency: 'Yemeni Rial', alphaCode: 'YER', numericCode: '886'},\r\n {country: 'ZAMBIA', currency: 'Zambian Kwacha', alphaCode: 'ZMW', numericCode: '967'},\r\n {country: 'ZIMBABWE', currency: 'Zimbabwe Dollar', alphaCode: 'ZWL', numericCode: '932'},\r\n {country: 'ÅLAND ISLANDS', currency: 'Euro', alphaCode: 'EUR', numericCode: '978'},\r\n];\r\n","import React from \"react\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\r\n\r\nexport default function EnumeratedPicker(props) {\r\n\r\n const [value, setValue] = React.useState(props.values[0]);\r\n\r\n\r\n React.useEffect(() => {\r\n\r\n if (props.disabled == false) {\r\n\r\n //if there is already a value supplied, use that\r\n if (props.value) {\r\n props.values.forEach((v) => {\r\n if (v.Value == props.value) {\r\n setValue(v);\r\n }\r\n })\r\n\r\n } else {\r\n props.valueChanged(value.Value);\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n }, [])\r\n\r\n /*React.useEffect(() => {\r\n if (props.disabled == false) {\r\n props.valueChanged(value.Value);\r\n }\r\n\r\n }, [value])*/\r\n\r\n React.useEffect(() => {\r\n\r\n //console.log(\"fired...\",props.value,value.Value);\r\n\r\n /*if (value.Value && props.value == value.Value) {\r\n return\r\n }*/\r\n\r\n props.values.forEach((v) => {\r\n if (v.Value == props.value) {\r\n setValue(v);\r\n return\r\n }\r\n })\r\n\r\n }, [props.value])\r\n\r\n\r\n return (\r\n\r\n {\r\n if (newValue == null) {\r\n return\r\n }\r\n setValue(newValue);\r\n props.valueChanged(newValue.value);\r\n }}\r\n getOptionLabel={(option) => option.Description}\r\n style={{width: \"80%\"}}\r\n renderInput={(params) => }\r\n />\r\n );\r\n\r\n\r\n}\r\n\r\n","import React from \"react\";\r\nimport FieldExtras from '../../Utils/FieldExtras.js'\r\nimport {Button, TextField} from \"@material-ui/core\";\r\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\r\nimport Tooltip from 'react-bootstrap/Tooltip'\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport InputLabel from \"@material-ui/core/InputLabel\";\r\nimport fieldValidator from \"../../Utils/FieldValidator\";\r\nimport {AppProps} from \"../../Utils/Properties\";\r\nimport HintHelper from \"../../Utils/HintHelper\";\r\nimport CountryCodePicker from \"../../Utils/CountryCodePicker\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport CurrencyCodePicker from \"../../Utils/CurrencyCodePicker\";\r\nimport EnumeratedPicker from \"../../Utils/EnumeratedPicker\";\r\n\r\n// IsoField represents a single field from a ISO8583 specification\r\nexport default class IsoField extends React.Component {\r\n\r\n static MandatoryFields = [\"Message Type\", \"MTI\", \"Bitmap\"];\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.fieldValueChanged = this.fieldValueChanged.bind(this);\r\n this.fieldSelectionChanged = this.fieldSelectionChanged.bind(this);\r\n this.onFieldUpdate = this.onFieldUpdate.bind(this);\r\n this.appendFieldContent = this.appendFieldContent.bind(this);\r\n this.setSelected = this.setSelected.bind(this);\r\n this.setNewValue = this.setNewValue.bind(this);\r\n this.showExpanded = this.showExpanded.bind(this);\r\n this.closeExpanded = this.closeExpanded.bind(this);\r\n this.getBgColor = this.getBgColor.bind(this);\r\n this.setError = this.setError.bind(this);\r\n this.toggleExpanded = this.toggleExpanded.bind(this);\r\n this.onFocusLost = this.onFocusLost.bind(this);\r\n this.applyPadding = this.applyPadding.bind(this);\r\n this.setValue = this.setValue.bind(this);\r\n\r\n //if the field is Message Type, MTI or Bitmap - it should stay selected\r\n //because they're mandatory fields in ISO\r\n\r\n let initialExpandBtnLabel = '+';\r\n this.selectable = true;\r\n\r\n if (this.props.readOnly) {\r\n //readOnly is true when displaying a response segment\r\n\r\n this.selectable = false;\r\n\r\n let selected = false;\r\n let fieldValue = this.props.id2Value.get(this.props.field.ID)\r\n if (fieldValue) {\r\n selected = true;\r\n }\r\n\r\n this.state = {\r\n fieldEditable: true,\r\n bgColor: 'white',\r\n hasError: false,\r\n selected: selected,\r\n id2Value: this.props.id2Value,\r\n fieldValue: fieldValue,\r\n expandBtnLabel: initialExpandBtnLabel,\r\n showExpanded: false,\r\n field: this.props.field\r\n };\r\n } else {\r\n\r\n // for request segment\r\n\r\n let defaultFieldValue = \"\";\r\n let selected = false;\r\n\r\n // if there are any hints, process them\r\n defaultFieldValue = HintHelper.generateValue(this.props.field)\r\n\r\n if (this.props.isoMsg.has(this.props.field.ID)) {\r\n let tmpField = this.props.isoMsg.get(this.props.field.ID)\r\n defaultFieldValue = tmpField.state.fieldValue;\r\n selected = tmpField.state.selected;\r\n }\r\n if (IsoField.MandatoryFields.includes(this.props.field.Name)) {\r\n\r\n //mandatory fields which cannot be deselected (bitmap is not editable as well)\r\n\r\n this.selectable = false;\r\n let fieldEditable = true;\r\n if (defaultFieldValue === \"\" && this.props.field.Name === \"Bitmap\") {\r\n defaultFieldValue = Array(192).fill('0').reduce((p = \"\", c) => p + c);\r\n }\r\n\r\n\r\n if (this.props.field.Name === \"Bitmap\") {\r\n fieldEditable = false;\r\n }\r\n\r\n this.state = {\r\n fieldEditable: fieldEditable,\r\n bgColor: \"white\",\r\n hasError: false,\r\n selected: true,\r\n fieldValue: defaultFieldValue,\r\n expandBtnLabel: initialExpandBtnLabel,\r\n showExpanded: false,\r\n field: this.props.field\r\n };\r\n\r\n } else {\r\n this.state = {\r\n fieldEditable: true,\r\n bgColor: \"white\",\r\n selected: selected,\r\n hasError: false,\r\n fieldValue: defaultFieldValue,\r\n expandBtnLabel: initialExpandBtnLabel,\r\n showExpanded: false,\r\n field: this.props.field\r\n };\r\n }\r\n this.props.isoMsg.set(this.props.field.ID, this);\r\n }\r\n }\r\n\r\n getBgColor() {\r\n if (this.state.hasError) {\r\n return \"red\";\r\n } else {\r\n return \"white\";\r\n }\r\n\r\n }\r\n\r\n setError(hasError) {\r\n this.setState({hasError: hasError});\r\n }\r\n\r\n showExpanded() {\r\n this.setState({showExpanded: true});\r\n }\r\n\r\n toggleExpanded() {\r\n if (this.state.showExpanded) {\r\n this.setState({showExpanded: false, expandBtnLabel: '+'});\r\n } else {\r\n this.setState({showExpanded: true, expandBtnLabel: '-'});\r\n }\r\n\r\n }\r\n\r\n closeExpanded() {\r\n this.setState({showExpanded: false});\r\n }\r\n\r\n setNewValue(newValue) {\r\n\r\n //alert(newValue)\r\n let val = this.applyPadding(this.state.selected, newValue);\r\n this.setState({fieldValue: val, showExpanded: false, selected: true});\r\n this.toggleExpanded()\r\n }\r\n\r\n setValue(newValue) {\r\n this.setState({fieldValue: newValue, showExpanded: false});\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.id2Value !== this.props.id2Value) {\r\n this.setState({\r\n fieldValue: this.props.id2Value.get(this.props.field.ID), id2Value: this.props.id2Value\r\n });\r\n }\r\n }\r\n\r\n onFieldUpdate(event) {\r\n\r\n if (this.props.field.Type === AppProps.BitmappedField) {\r\n // get the position of the field\r\n this.props.field.Children.forEach(f => {\r\n\r\n if (f.Name === event.fieldName) {\r\n let currentVal = this.state.fieldValue;\r\n if (f.Position > 64 && currentVal.length == 64) {\r\n // if we're dealing with a secondary bitmap and there is only\r\n // a primary bitmap available, first extend it\r\n Array(64).fill('0').forEach(p => currentVal += p);\r\n }\r\n if (f.Position > 128) {\r\n // if we're dealing with a tertiary bitmap and there is only\r\n // a primary+secondary bitmap available, first extend it\r\n if (currentVal.length == 64) {\r\n Array(128).fill('0').forEach(p => currentVal += p);\r\n } else if (currentVal.length == 128) {\r\n Array(64).fill('0').forEach(p => currentVal += p);\r\n }\r\n }\r\n\r\n\r\n let bits = Array.from(currentVal);\r\n\r\n if (event.ChangeType === 'FieldSelected') {\r\n bits[f.Position - 1] = '1';\r\n if (f.Position > 64) {\r\n bits[0] = '1';\r\n }\r\n if (f.Position > 128) {\r\n bits[64] = '1';\r\n }\r\n\r\n } else if (event.ChangeType === 'FieldDeselected') {\r\n bits[f.Position - 1] = '0';\r\n\r\n //if all bits from 65 to 128 are off then turn bit 1 off\r\n let turnOff = true;\r\n for (let i = 65; i <= 128; i++) {\r\n if (bits[i - 1] === '1') {\r\n turnOff = false;\r\n break;\r\n }\r\n }\r\n if (turnOff) {\r\n bits[0] = '0';\r\n }\r\n\r\n //if all bits from 129 to 192 are off then turn bit 65 off\r\n turnOff = true;\r\n for (let i = 129; i <= 192; i++) {\r\n if (bits[i - 1] === '1') {\r\n turnOff = false;\r\n break;\r\n }\r\n }\r\n if (turnOff) {\r\n bits[64] = '0';\r\n }\r\n\r\n }\r\n let newValue = bits.reduce((p = \"\", c) => p + c);\r\n this.setState({fieldValue: newValue})\r\n\r\n }\r\n })\r\n } else {\r\n\r\n let obj = {fieldName: this.props.field.Name};\r\n if (event.ChangeType === 'FieldSelected') {\r\n //console.log(\"setting self as selected\", this.props.field.Name);\r\n this.setState({selected: true});\r\n obj.ChangeType = \"FieldSelected\";\r\n } else if (event.ChangeType === 'FieldDeselected') {\r\n this.setState({selected: false});\r\n obj.ChangeType = \"FieldDeselected\";\r\n } else {\r\n\r\n //TODO:: field value has changed, it needs to be parsed and children\r\n // have to be changed - wait for the new WASM library for ISO parsing capabilities\r\n // on the frontend :-)\r\n\r\n\r\n }\r\n\r\n // for fixed and variable type field, if they have children\r\n // the whole set of children and then let the parent know too\r\n\r\n this.props.field.Children.forEach(c => {\r\n if (event.ChangeType === 'FieldSelected') {\r\n this.props.isoMsg.get(c.ID).setSelected(true);\r\n } else if (event.ChangeType === 'FieldDeselected') {\r\n this.props.isoMsg.get(c.ID).setSelected(false);\r\n }\r\n });\r\n\r\n //pass on the message to the parent that I have changed\r\n this.props.onFieldUpdate(obj);\r\n\r\n }\r\n }\r\n\r\n setSelected(selected) {\r\n\r\n let val = this.applyPadding(selected);\r\n this.props.field.Children.forEach(c => {\r\n this.props.isoMsg.get(c.ID).setSelected(selected);\r\n });\r\n\r\n if (selected) {\r\n let errors = []\r\n if (fieldValidator.validate(this.props.field, val, errors)) {\r\n this.setState({fieldValue: val, hasError: true, errMsg: errors[0], selected: selected});\r\n } else {\r\n this.setState({fieldValue: val, hasError: false, errMsg: null, selected: selected});\r\n }\r\n } else {\r\n this.setState({fieldValue: val, hasError: false, errMsg: null, selected: selected});\r\n }\r\n\r\n }\r\n\r\n fieldSelectionChanged(event) {\r\n\r\n let obj = {fieldName: this.props.field.Name};\r\n let selected = false;\r\n if (event.target.checked) {\r\n obj.ChangeType = \"FieldSelected\";\r\n selected = true;\r\n } else {\r\n obj.ChangeType = \"FieldDeselected\";\r\n }\r\n\r\n if (this.props.field.Type !== AppProps.BitmappedField) {\r\n this.setSelected(selected);\r\n }\r\n this.props.onFieldUpdate(obj)\r\n }\r\n\r\n onFocusLost() {\r\n\r\n let val = this.applyPadding(this.state.selected)\r\n\r\n let errors = []\r\n if (this.state.selected) {\r\n if (fieldValidator.validate(this.props.field, val, errors)) {\r\n this.setState({fieldValue: val, hasError: true, errMsg: errors[0]})\r\n } else {\r\n\r\n this.setState({fieldValue: val, hasError: false, errMsg: null});\r\n let obj = {\r\n fieldName: this.props.field.Name, ChangeType: \"ValueChanged\", Value: val\r\n };\r\n this.props.onFieldUpdate(obj)\r\n }\r\n } else {\r\n this.setState({fieldValue: val, hasError: false, errMsg: null});\r\n }\r\n }\r\n\r\n //This method applied to the field if one is specified in the field definition\r\n // selected - A boolean that represents if the field is currently selected (padding is applied only if the field is selected)\r\n // initVal - The initial value for the field, if unspecified the current value on the state is used\r\n applyPadding(selected, initVal = \"\") {\r\n\r\n let val = initVal;\r\n\r\n if (val === \"\") {\r\n val = this.state.fieldValue;\r\n }\r\n\r\n if (val === undefined) {\r\n val = \"\";\r\n }\r\n\r\n let field = this.state.field;\r\n if (field.Padding === \"\" || !selected) {\r\n return val\r\n }\r\n\r\n if (field.Type === 'Fixed') {\r\n\r\n let padding = '';\r\n switch (field.DataEncoding) {\r\n case 'ASCII':\r\n case 'EBCDIC': {\r\n\r\n if (val.length < field.FixedSize) {\r\n for (let i = 0; i < (field.FixedSize - val.length); i++) {\r\n if (field.Padding === 'LEADING_ZEROES' || field.Padding === 'TRAILING_ZEROES') {\r\n padding += '0';\r\n }\r\n if (field.Padding === 'LEADING_SPACES' || field.Padding === 'TRAILING_SPACES') {\r\n padding += ' ';\r\n }\r\n }\r\n //console.log(\"Padding required = *\" + padding + \"*\")\r\n if (field.Padding.startsWith('LEADING')) {\r\n val = padding + val;\r\n } else {\r\n val = val + padding;\r\n }\r\n }\r\n break;\r\n }//end ASCII/EBCDIC\r\n\r\n case 'BCD': {\r\n let padding = '';\r\n let expectedLength = field.FixedSize * 2;\r\n if (val.length < expectedLength) {\r\n for (let i = 0; i < (expectedLength - val.length); i++) {\r\n padding += '0';\r\n }\r\n }\r\n if (field.Padding === 'LEADING_ZEROES') {\r\n val = padding + val;\r\n } else if (field.Padding === 'TRAILING_ZEROES') {\r\n val += padding;\r\n } else {\r\n console.log(`Unsupported padding - ${field.Padding} for Fixed BCD field`);\r\n }\r\n\r\n break;\r\n }\r\n case 'BINARY': {\r\n\r\n let padding = '';\r\n let expectedLength = field.FixedSize * 2;\r\n if (val.length < expectedLength) {\r\n for (let i = 0; i < (expectedLength - val.length); i++) {\r\n if (field.Padding.endsWith('ZEROES')) {\r\n padding += '0';\r\n } else {\r\n padding += 'F';\r\n }\r\n\r\n }\r\n }\r\n if (field.Padding.startsWith('LEADING_')) {\r\n val = padding + val;\r\n } else if (field.Padding.startsWith('TRAILING_')) {\r\n val += padding;\r\n }\r\n\r\n break;\r\n }\r\n default: {\r\n console.log(\"Unsupported field encoding type -\" + field.DataEncoding);\r\n }\r\n\r\n }\r\n\r\n }\r\n return val;\r\n\r\n }\r\n\r\n fieldValueChanged(event) {\r\n this.setState({hasError: false, errMsg: null, fieldValue: event.target.value});\r\n }\r\n\r\n /*setNewValue(value) {\r\n this.setState({hasError: false, errMsg: null, fieldValue: value});\r\n }*/\r\n\r\n appendFieldContent(content, field, parentField, id2Value, level) {\r\n\r\n let key = field.ID;\r\n if (this.props.readOnly) {\r\n key = 'response_seg_' + field.ID;\r\n }\r\n content.push();\r\n }\r\n\r\n render() {\r\n\r\n let selectionColumnContent;\r\n\r\n if (this.selectable) {\r\n selectionColumnContent =\r\n \r\n \r\n } else {\r\n selectionColumnContent =\r\n \r\n \r\n }\r\n let positionInParent = \"\";\r\n if (this.props.field.ParentId > 0) {\r\n positionInParent = \"\\u2937\" + this.props.field.Position + \" \";\r\n }\r\n\r\n let fieldInfo = positionInParent + \" Type: \" + this.props.field.Type + ' / ';\r\n if (this.props.field.Type === AppProps.FixedField) {\r\n fieldInfo += \"Length: \" + this.props.field.FixedSize + ' / ' + 'Encoding: '\r\n + this.props.field.DataEncoding;\r\n } else if (this.props.field.Type === AppProps.VariableField) {\r\n fieldInfo += \"Length Indicator: \" + this.props.field.LengthIndicatorSize + ' / '\r\n + 'Length Encoding: ' + this.props.field.LengthEncoding + ' / ' + 'Data Encoding: '\r\n + this.props.field.DataEncoding;\r\n } else if (this.props.field.Type === AppProps.BitmappedField) {\r\n }\r\n\r\n let children = [];\r\n\r\n this.props.field.Children.forEach(\r\n c => this.appendFieldContent(children, c, this.props.field, this.state.id2Value,\r\n this.props.level + 1));\r\n\r\n let levelIndicator = \"\";\r\n for (let i = 0; i < this.props.level; i++) {\r\n levelIndicator += '\\u2193';\r\n }\r\n\r\n let inpComponent = null;\r\n\r\n\r\n if (this.props.field.Hint.Type == \"enumerated\") {\r\n\r\n let disabled = false;\r\n if (this.props.readOnly) {\r\n disabled = true;\r\n }\r\n\r\n inpComponent = \r\n } else if (this.props.field.Hint.Type == \"country_code\") {\r\n\r\n let disabled = false;\r\n if (this.props.readOnly) {\r\n disabled = true;\r\n }\r\n\r\n inpComponent = \r\n } else if (this.props.field.Hint.Type == \"currency_code\") {\r\n let disabled = false;\r\n if (this.props.readOnly) {\r\n disabled = true;\r\n }\r\n\r\n inpComponent = \r\n } else {\r\n inpComponent = ;\r\n }\r\n\r\n return (\r\n \r\n {/* selection column */}\r\n {selectionColumnContent}\r\n\r\n {/* field name column*/}\r\n\r\n {fieldInfo})}\r\n placement=\"top\">\r\n \r\n {levelIndicator + ' '\r\n + this.props.field.Name}\r\n \r\n \r\n\r\n {/* field specification column */}\r\n {/*fieldSpecColumnContent*/}\r\n\r\n {/* field value column */}\r\n \r\n\r\n \r\n {inpComponent}\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 {children}\r\n \r\n\r\n );\r\n }\r\n\r\n}","import React from 'react'\r\nimport axios from 'axios'\r\nimport {Button} from \"react-bootstrap\";\r\nimport appProps from \"../Utils/Properties\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport MenuItem from \"@material-ui/core/MenuItem\";\r\n\r\nexport default class SelectMessageDialog extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {show: props.show, selectedMsg: '', errorMessage: null};\r\n this.closeDialogSuccess = this.closeDialogSuccess.bind(this);\r\n this.closeDialogFail = this.closeDialogFail.bind(this);\r\n this.selectedMsgChanged = this.selectedMsgChanged.bind(this);\r\n }\r\n\r\n selectedMsgChanged(event) {\r\n this.setState({selectedMsg: event.target.value});\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n //console.log(\"smd: componentDidUpdate\", this.state);\r\n if (this.props.show === true && prevState.show === false) {\r\n\r\n axios.get(appProps.loadMsgUrl, {\r\n params: {\r\n specId: this.props.specId,\r\n msgId: this.props.msgId,\r\n }\r\n }).then(res => {\r\n // console.log(res);\r\n this.setState(\r\n {\r\n savedMsgs: res.data.saved_messages,\r\n selectedMsg: res.data.saved_messages[0],\r\n show: true,\r\n errorMessage: null\r\n });\r\n\r\n }).catch(e => {\r\n //FIXME\r\n\r\n console.log(e.response.data);\r\n console.log(\"whoops\", e);\r\n this.closeDialogFail(\"No saved messages/failed to retrieve saved messages\");\r\n //this.setState({show: true, errorMessage: e.response.data.error});\r\n }\r\n )\r\n }\r\n }\r\n\r\n closeDialogSuccess() {\r\n this.setState({show: false});\r\n this.props.closeLoadMsgDialog(this.state.selectedMsg, null);\r\n }\r\n\r\n closeDialogFail(errMsg) {\r\n this.setState({show: false});\r\n //TODO:: also tell the parent that we're done\r\n //and return the value of the selected saved msg\r\n this.props.closeLoadMsgDialog(null, errMsg);\r\n }\r\n\r\n render() {\r\n\r\n let content;\r\n\r\n if (this.state.show) {\r\n if (this.state.errorMessage) {\r\n content =
{this.state.errorMessage}
\r\n } else {\r\n content =\r\n \r\n\r\n \r\n\r\n\r\n {this.state.savedMsgs.map((sm) => {\r\n return {sm}\r\n })\r\n }\r\n \r\n ;\r\n }\r\n }\r\n\r\n return (\r\n\r\n
\r\n this.closeDialogFail(null)}\r\n aria-labelledby=\"form-dialog-title\" fullWidth={true}\r\n maxWidth={\"sm\"}>\r\n this.closeDialogFail(null)}>Select\r\n Message\r\n \r\n
\r\n \r\n\r\n \r\n \r\n {content}\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 Load Saved Message\r\n \r\n {content}\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 Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport {InputLabel, TextField} from \"@material-ui/core\";\r\n\r\nexport default class TestCaseEvalResultDialog extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n\r\n this.state = {show: props.show};\r\n\r\n\r\n this.handleClose = this.handleClose.bind(this);\r\n }\r\n\r\n handleClose() {\r\n this.setState({show: false})\r\n this.props.onClose();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n\r\n if (this.props.show === true && prevState.show === false) {\r\n\r\n let evalResult = \"Testcase passed!\";\r\n if (this.props.results != null && this.props.results.length > 0) {\r\n evalResult = \"Testcase failed!\\n\\n\";\r\n this.props.results.forEach(r => {\r\n evalResult += \"\\u26A0 \" + r + \"\\n\";\r\n })\r\n }\r\n\r\n this.setState({show: true,evalResult: evalResult});\r\n }\r\n }\r\n\r\n render() {\r\n\r\n\r\n return (\r\n\r\n {\"Test Case Evaluation Result\"}\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 IsoField from \"./IsoField/IsoField\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport {Button} from \"@material-ui/core\";\r\nimport Draggable from \"react-draggable\";\r\nimport appProps, {AppProps} from \"../Utils/Properties\";\r\nimport TestCaseEvalResultDialog from \"../Dialogs/TestCaseEvalResultDialog\";\r\n\r\n// ResponseSegment displays the response to an ISO message\r\nexport default class ResponseSegment extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n show: props.show,\r\n data: this.props.data,\r\n msgTemplate: this.props.msgTemplate,\r\n evalResults: null,\r\n showEvalResultsDialog: false\r\n }\r\n this.hideResponseSegment = this.hideResponseSegment.bind(this);\r\n this.copyToClipboard = this.copyToClipboard.bind(this);\r\n this.evalTestCase = this.evalTestCase.bind(this);\r\n this.showEvalResults = this.showEvalResults.bind(this);\r\n\r\n this.textAreaRef = React.createRef();\r\n }\r\n\r\n\r\n evalTestCase() {\r\n\r\n console.log(\"comparing \", this.props.data, \" with \", this.props.testCase)\r\n let evalResults = []\r\n\r\n let respBmp = \"\";\r\n this.props.data.forEach(f => {\r\n if (f.Name == \"Bitmap\") {\r\n respBmp = f.Value;\r\n }\r\n });\r\n\r\n this.props.data.forEach(f => {\r\n this.props.testCase.resp_data.forEach(tf => {\r\n if (f.ID == tf.ID) {\r\n\r\n if (f.Name === \"Bitmap\") {\r\n //compare bitmaps and see if any fields are missing or additional fields are present\r\n let actualBmp = f.Value;\r\n let tcBmp = tf.Value;\r\n\r\n for (let i = 0; i < tcBmp.length; i++) {\r\n\r\n if (i < actualBmp.length) {\r\n if (tcBmp.charAt(i) != actualBmp.charAt(i)) {\r\n if (tcBmp.charAt(i) == '1') {\r\n evalResults.push(`Field \"${i + 1}\" is missing in response`);\r\n } else {\r\n evalResults.push(`Additional Field \"${i + 1}\" is present in response`);\r\n }\r\n }\r\n } else {\r\n if (tcBmp.charAt(i) == '1') {\r\n evalResults.push(`Field \"${i + 1}\" is missing in response`);\r\n }\r\n\r\n }\r\n }\r\n //TODO:: if response bmp has additional bits\r\n }\r\n switch (tf.CompareOp) {\r\n case \"Exclude\": {\r\n break;\r\n }\r\n case \"Equals\": {\r\n if (f.Value != tf.Value) {\r\n evalResults.push(`${f.Name} failed on ${tf.CompareOp} condition. Expected: ${tf.Value}, Actual: ${f.Value}`);\r\n }\r\n break;\r\n }\r\n case \"StartsWith\": {\r\n if (!f.Value.startsWith(tf.Value)) {\r\n evalResults.push(`${f.Name} failed on ${tf.CompareOp} condition. Expected: ${tf.Value}, Actual: ${f.Value}`);\r\n }\r\n break;\r\n }\r\n case \"EndsWith\": {\r\n if (!f.Value.endsWith(tf.Value)) {\r\n evalResults.push(`${f.Name} failed on ${tf.CompareOp} condition. Expected: ${tf.Value}, Actual: ${f.Value}`);\r\n }\r\n break;\r\n }\r\n default: {\r\n evalResults.push(`${tf.Name} uses a yet to supported compare-op - ${tf.CompareOp}`)\r\n }\r\n\r\n }\r\n }\r\n }\r\n )\r\n\r\n\r\n });\r\n console.log(\"er: \", evalResults);\r\n this.setState({evalResults: evalResults, showEvalResultsDialog: true});\r\n\r\n\r\n }\r\n\r\n appendFieldContent(content, field, idToField, level) {\r\n content.push();\r\n return \"\"\r\n }\r\n\r\n hideResponseSegment() {\r\n this.setState({show: false});\r\n this.props.onClose();\r\n }\r\n\r\n collectData(field, idToValue, content) {\r\n if (idToValue.get(field.ID)) {\r\n let val = idToValue.get(field.ID);\r\n content.push(`${field.Name}: ${val}`);\r\n }\r\n if (field.Children.length > 0) {\r\n field.Children.forEach(cf => {\r\n this.collectData(cf, idToValue, content)\r\n })\r\n }\r\n\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n\r\n if (prevProps.show === false && this.props.show === true) {\r\n this.setState({\r\n show: true, data: this.props.data, msgTemplate: this.props.msgTemplate\r\n })\r\n }\r\n }\r\n\r\n copyToClipboard() {\r\n this.textAreaRef.current.select();\r\n if (!document.execCommand('copy')) {\r\n alert('Failed to copy to clipboard!')\r\n }\r\n }\r\n\r\n showEvalResults(show) {\r\n this.setState({showEvalResultsDialog: show})\r\n }\r\n\r\n\r\n render() {\r\n\r\n let content = [];\r\n let forClipboard = [];\r\n if (this.state.show) {\r\n\r\n let idToField = new Map();\r\n this.state.data.forEach(f => {\r\n idToField.set(f.ID, f.Value);\r\n });\r\n\r\n this.state.msgTemplate.fields.forEach(field => {\r\n this.collectData(field, idToField, forClipboard)\r\n });\r\n let clipboardText = \"ISO Response \\n|---------------|\\n\" + forClipboard.reduce(\r\n (p, c, currentIndex) => {\r\n if (currentIndex === 1) {\r\n return p + \"\\n\" + c + \"\\n\";\r\n } else {\r\n return p + c + \"\\n\";\r\n }\r\n })\r\n\r\n clipboardText = \"ISO Request \\n|---------------|\\n\" + this.props.reqData + \"\\n\\n\"\r\n + clipboardText + \"\\n\\n\";\r\n\r\n this.state.msgTemplate.fields.forEach(field => {\r\n this.appendFieldContent(content, field, idToField, 0)\r\n });\r\n\r\n //console.log(content);\r\n\r\n return (\r\n\r\n\r\n {this.state.show ? \r\n {this.props.dialogTitle}\r\n \r\n\r\n this.showEvalResults(false)}/>\r\n\r\n \r\n