Files
BitwiseCmd/static/js/main.bfd34435.chunk.js
2022-03-20 09:58:46 +01:00

2 lines
47 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[,,,,,,,,,function(e,t,n){"use strict";var a=n(1),i=n(2),s=[{regex:/^-?\d+$/,radix:10,base:"dec",prefix:"^$"},{regex:/^-?0x[0-9,a-f]+$/i,radix:16,base:"hex",prefix:/0x/i},{regex:/^-?0b[0-1]+$/i,radix:2,base:"bin",prefix:/0b/i}],r=new(function(){function e(t){Object(a.a)(this,e),this.parsers=void 0,this.parsers=t}return Object(i.a)(e,[{key:"parse",value:function(e){var t=this;return this.parsers.map(function(n){return t.applyParser(n,e)}).reduce(function(e,t){return e||t})}},{key:"parseOperator",value:function(e){var t=e.match(e);return null==t||0==t.length?null:t[0]}},{key:"applyParser",value:function(e,t){return e.regex.test(t)?{value:parseInt(t.replace(e.prefix,""),e.radix),base:e.base,input:t}:null}}]),e}())(s);n.d(t,"a",function(){return o});var l=1,o=function(){function e(t,n){Object(a.a)(this,e),this.id=void 0,this.value=void 0,this.base=void 0,this.lengthInBits=void 0,this.isExpression=void 0,this.id=l++,this.value=t,this.base=n||"dec",this.lengthInBits=e.getBitLength(this.value),this.isExpression=!1}return Object(i.a)(e,[{key:"getLengthInBits",value:function(){return this.value<0?32:Math.floor(Math.log(this.value)/Math.log(2))+1}},{key:"getOtherBase",value:function(e){switch(e||this.base){case"dec":case"bin":return"hex";case"hex":return"dec";default:throw new Error(e+" kind doesn't have opposite kind")}}},{key:"toString",value:function(t){return e.toBaseString(this.value,t||this.base)}},{key:"toOtherKindString",value:function(){return this.toString(this.getOtherBase())}},{key:"toDecimalString",value:function(){return this.toString("dec")}},{key:"toHexString",value:function(){return this.toString("hex")}},{key:"toBinaryString",value:function(){return this.toString("bin")}},{key:"setValue",value:function(t){this.value=t,this.lengthInBits=e.getBitLength(t)}},{key:"evaluate",value:function(){return this}},{key:"getUnderlyingOperand",value:function(){return this}}],[{key:"getBitLength",value:function(e){return Math.floor(Math.log(e)/Math.log(2))+1}},{key:"getBase",value:function(e){switch(e){case"bin":return 2;case"hex":return 16;case"dec":return 10}}},{key:"create",value:function(t,n){return new e(t,n||"dec")}},{key:"parse",value:function(t){var n=r.parse(t);if(!n)throw new Error(t+" is not a valid number");return new e(n.value,n.base)}},{key:"toBaseString",value:function(e,t){switch(t){case"hex":var n=Math.abs(e).toString(16);return e>=0?"0x"+n:"-0x"+n;case"bin":return(e>>>0).toString(2);case"dec":return e.toString(10);default:throw new Error("Unexpected kind: "+t)}}},{key:"toHexString",value:function(e){return 0===e.indexOf("-")?"-0x"+e.substr(1):"0x"+e}}]),e}()},,function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",function(){return ExpressionOperand});var _Users_boryslevytskyi_git_BitwiseCmd_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(1),_Users_boryslevytskyi_git_BitwiseCmd_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(2),_NumericOperand__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9),ExpressionOperand=function(){function ExpressionOperand(e,t,n){Object(_Users_boryslevytskyi_git_BitwiseCmd_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__.a)(this,ExpressionOperand),this.expressionString=void 0,this.operand=void 0,this.sign=void 0,this.isExpression=void 0,this.isShiftExpression=void 0,this.isNotExpression=void 0,this.expressionString=e,this.operand=t,this.sign=n,this.isExpression=!0,this.isShiftExpression=this.sign.indexOf("<")>=0||this.sign.indexOf(">")>=0,this.isNotExpression="~"===this.sign}return Object(_Users_boryslevytskyi_git_BitwiseCmd_node_modules_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__.a)(ExpressionOperand,[{key:"evaluate",value:function evaluate(operand){if(operand instanceof ExpressionOperand)throw new Error("value shouldnt be expression");var evaluatedOperand=this.operand.evaluate(),str="";if("~"==this.sign)str="~"+evaluatedOperand.value;else{if(null==operand)throw new Error("Other is required for expression: "+this.expressionString);str=operand.value+this.sign+evaluatedOperand.value}return _NumericOperand__WEBPACK_IMPORTED_MODULE_2__.a.create(eval(str),evaluatedOperand.base)}},{key:"getUnderlyingOperand",value:function(){return this.operand.getUnderlyingOperand()}},{key:"toString",value:function(){return this.sign+this.operand.toString()}}]),ExpressionOperand}()},,,,,,,,,,function(e,t,n){e.exports=n(41)},,,,,,,function(e,t,n){},function(e,t,n){},,,,function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},,,function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n.r(t);var a=n(1),i=n(2),s=function(e){return"object"==typeof e&&!(e instanceof Array)&&e instanceof Object},r=function(e){return"function"==typeof e},l=function(e){return"string"==typeof e},o=n(4),c=n.n(o),u={doNotTrack:!1},d=new(function(){function e(){Object(a.a)(this,e),this.debugMode=void 0,this.handlers=void 0,this.errorHandler=void 0,this.handlers=[],this.debugMode=!1,this.errorHandler=null}return Object(i.a)(e,[{key:"execute",value:function(e,t){c.a.debug("Executing command: ".concat(e)),t=t||Object.assign({},u);var n=e.trim().toLowerCase(),a=this.findHandler(n);if(null!=a)if(this.debugMode)this.invokeHandler(n,a,t);else try{this.invokeHandler(n,a,t)}catch(i){this.handleError(n,i)}else c.a.debug("Handled is not found for command: ".concat(e)),this.handleError(n,new Error("Unsupported expression: "+n.trim()))}},{key:"onError",value:function(e){this.errorHandler=e}},{key:"command",value:function(e,t){var n=this.createHandler(e,t);null!=n?r(n.canHandle)?r(n.handle)?this.handlers.push(n):console.warn('handler is missing "handle" function. registration denied.'):console.warn('handler is missing "canHandle" function. registration denied.'):console.warn("unexpected set of arguments: ",JSON.stringify(arguments))}},{key:"createHandler",value:function(e,t){return s(e)?e:l(e)?{canHandle:function(t){return t===e},handle:t}:null}},{key:"findHandler",value:function(e){return this.handlers.filter(function(t){return t.canHandle(e)})[0]}},{key:"invokeHandler",value:function(e,t,n){var a=t.handle({input:e,options:n});null!=a&&c.a.debug(a)}},{key:"handleError",value:function(e,t){this.debugMode&&console.error(e,t),null!=this.errorHandler&&this.errorHandler(e,t)}}]),e}()),m=n(7),h=n(6),p=n(8),f=n(0),g=n.n(f),v=function(e){function t(e){var n;return Object(a.a)(this,t),(n=Object(m.a)(this,Object(h.a)(t).call(this,e))).history=void 0,n.historyIndex=void 0,n.nameInput=void 0,n.nameInput=null,n.history=[],n.historyIndex=-1,n}return Object(p.a)(t,e),Object(i.a)(t,[{key:"componentDidMount",value:function(){null!=this.nameInput&&this.nameInput.focus()}},{key:"render",value:function(){var e=this;return g.a.createElement("input",{id:"in",type:"text",ref:function(t){e.nameInput=t},onKeyUp:function(t){return e.onKeyUp(t)},onKeyDown:function(t){return e.onKeyDown(t)},className:"expressionInput mono",placeholder:"type expression like '1>>2' or 'help' ",autoComplete:"off"})}},{key:"onKeyUp",value:function(e){var t=e.target;if(13==e.keyCode&&0!=t.value.trim().length){var n=t.value;this.history.unshift(n),this.historyIndex=-1,t.value="",this.props.onCommandEntered(n)}}},{key:"onKeyDown",value:function(e){if(38==e.keyCode){var t=this.historyIndex+1;return this.history.length>t&&(e.target.value=this.history[t],this.historyIndex=t),void e.preventDefault()}40==e.keyCode&&(this.historyIndex>0&&(e.target.value=this.history[--this.historyIndex]),e.preventDefault())}}]),t}(g.a.Component),b=n(10),E=n(5),y=function(e){e.resultKey;var t=e.appState;return g.a.createElement("div",{className:"result"},g.a.createElement("div",{className:"input mono"},g.a.createElement("span",{className:"cur"},">"),e.input,g.a.createElement("a",{className:"hashLink",title:"Link for this expression",href:window.location.pathname+"#"+e.inputHash},g.a.createElement(E.a,{className:"icon",icon:b.c,size:"xs"})),g.a.createElement("button",{className:"hashLink",title:"Remove this result",onClick:function(){return t.removeResult(e.resultIndex)}},g.a.createElement(E.a,{className:"icon",icon:b.e,size:"xs"}))),g.a.createElement("div",{className:"content"},e.children))};n(28);var k=function(e){var t=[],n=e.appState;return"prod"!=e.appState.env&&t.push(n.env),e.appState.debugMode&&t.push("debug"),"false"===localStorage.getItem("TrackAnalytics")&&t.push("notrack"),0==t.length?null:g.a.createElement("div",{className:"debug-indicators"},t.map(function(e){return g.a.createElement("span",{title:e,key:e},"[",e.substring(0,1),"]\xa0")}))},B={encodeHash:function(e){return encodeURIComponent(e.trim().replace(/\s/g,","))},decodeHash:function(e){return decodeURIComponent(e.replace(/^\#/,"")).replace(/,/g," ")},getArgs:function(e){var t,n=this.decodeHash(e),a=[];return(t=n,t.split("||").filter(function(e){return e.length>0})).forEach(function(e){a.push(e)}),a}};var w=n(15);n(29);var x=function(){return d.execute("donate"),!0},O=function(){return g.a.createElement("ul",{className:"top-links"},g.a.createElement("li",null,g.a.createElement("a",{href:"https://www.paypal.com/donate/?hosted_button_id=3GREJYC4T5AJ8",onClick:x,target:"_blank"},g.a.createElement(E.a,{className:"icon",icon:b.a,size:"lg"}),"donate")),g.a.createElement("li",null,g.a.createElement("a",{href:"https://github.com/BorisLevitskiy/BitwiseCmd"},g.a.createElement(E.a,{className:"icon",icon:w.a,size:"lg"}),g.a.createElement("span",{className:"link-text"},"github"))),g.a.createElement("li",null,g.a.createElement("a",{href:"https://twitter.com/BitwiseCmd"},g.a.createElement(E.a,{className:"icon",icon:w.b,size:"lg"}),g.a.createElement("span",{className:"link-text"},"twitter"))),g.a.createElement("li",null,g.a.createElement("a",{href:"mailto:bitwisecmd@gmail.com?subject=Feedback"},g.a.createElement(E.a,{className:"icon",icon:b.b,size:"lg"}),g.a.createElement("span",{className:"link-text"},"idea or feedback"))))};var N=function(e){return g.a.createElement("span",{id:e.elementId,className:"indicator "+(t=e.isOn,t?"on":"off"),title:e.title,onClick:function(){return e.onClick()}},e.children?e.children:e.text);var t},C=function(e){function t(){return Object(a.a)(this,t),Object(m.a)(this,Object(h.a)(t).apply(this,arguments))}return Object(p.a)(t,e),Object(i.a)(t,[{key:"componentWillMount",value:function(){var e=this;this.refresh(),this.props.appState.onChange(function(){return e.refresh()})}},{key:"refresh",value:function(){this.setState(this.props.appState)}},{key:"getIndicator",value:function(e){return e?"on":"off"}},{key:"getResultViews",value:function(){var e=this;return this.state.commandResults.map(function(t,n){return g.a.createElement(y,{resultIndex:n,resultKey:t.key,key:t.key,input:t.input,inputHash:B.encodeHash(t.input),appState:e.props.appState},t.view)})}},{key:"toggleEmphasizeBytes",value:function(){this.props.appState.toggleEmphasizeBytes()}},{key:"render",value:function(){var e=this;return g.a.createElement("div",{className:"app-root ".concat(this.state.uiTheme)},g.a.createElement(k,{appState:this.props.appState}),g.a.createElement("div",{className:"header"},g.a.createElement("h1",null,"Bitwise",g.a.createElement("span",{className:"header-cmd"},"Cmd")),g.a.createElement(O,null)),g.a.createElement("div",{className:"expressionInput-container"},g.a.createElement(v,{onCommandEntered:function(e){return d.execute(e)}}),g.a.createElement("span",{className:"configPnl"},g.a.createElement(N,{elementId:"emphasizeBytes",text:"[em]",isOn:this.state.emphasizeBytes,onClick:function(){return e.toggleEmphasizeBytes()},title:"Toggle Emphasize Bytes"}))),g.a.createElement("div",{id:"output"},this.getResultViews()))}}]),t}(g.a.Component),S=n(19),_=n.n(S);n(33);var I=function(e){return g.a.createElement("div",{className:"result"},g.a.createElement("div",{className:"error"},e.errorMessage))},j={formatString:function(e,t){return e.toString(function(e){switch(e){case"bin":return 2;case"hex":return 16;case"dec":return 10}throw new Error("Unsupported kind: "+e)}(t||"bin"))},padLeft:function(e,t,n){var a=Array.prototype.slice.call(e);n=n||"0";if(null==t)return e;for(;t>a.length;)a.unshift(n);return a.join("")},bin:function(e){return this.formatString(e,"bin")},emBin:function(e){return this.padLeft(this.bin(e),8,"0")},splitByMasks:function(e,t,n){var a=[],i=[],s=0,r=t;return e.split("").forEach(function(e){i.push(e),"."!==e&&++s==r&&(r=n,a.push(i.join("")),i=[])}),i.length>0&&a.push(i.join("")),{vpc:a[0],subnet:a[1],hosts:a[2]}}};var M=j.emBin.bind(j),R=(j.padLeft.bind(j),j),z=function(e){function t(){return Object(a.a)(this,t),Object(m.a)(this,Object(h.a)(t).apply(this,arguments))}return Object(p.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){return g.a.createElement("span",{className:this.props.className},this.getChildren())}},{key:"onBitClick",value:function(e,t){if(this.props.allowFlipBits&&this.props.onFlipBit){this.props.onFlipBit;var n=this.props.binaryString.split("");n[e]="0"==n[e]?"1":"0";var a=n.join("");this.props.onFlipBit({index:e,binaryString:this.props.binaryString,$event:t,newBinaryString:a})}}},{key:"getChildren",value:function(){var e=this.createBits(this.props.binaryString.split(""));return this.props.emphasizeBytes?this.splitIntoBytes(e):e}},{key:"createBits",value:function(e){var t=this,n=this.props.allowFlipBits||!1?" flipable":"",a=this.props.disableHighlight||!1;return e.map(function(e,i){var s="1"==e?"one".concat(n):"zero".concat(n);return a&&(s=n),g.a.createElement("span",{className:s,key:i,onClick:function(e){return t.onBitClick(i,e)}},e)})}},{key:"splitIntoBytes",value:function(e){for(var t=[],n=0;e.length>0;)t.push(g.a.createElement("span",{key:n++,className:"byte"},e.splice(0,8)));return t}}]),t}(g.a.Component);n(34);var D=function(e){function t(){return Object(a.a)(this,t),Object(m.a)(this,Object(h.a)(t).apply(this,arguments))}return Object(p.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){var e=this;return g.a.createElement("table",{className:"expression"},g.a.createElement("tbody",null,this.props.ipAddresses.map(function(t,n){return g.a.createElement("tr",{key:n},g.a.createElement("td",{className:"label"},g.a.createElement("strong",null,t.toString())),g.a.createElement("td",{className:"bin"},e.bin(t.firstByte,1,t),g.a.createElement("span",{className:"soft"},"."),e.bin(t.secondByte,2,t),g.a.createElement("span",{className:"soft"},"."),e.bin(t.thirdByte,3,t),g.a.createElement("span",{className:"soft"},"."),e.bin(t.fourthByte,4,t)))})))}},{key:"bin",value:function(e,t,n){var a,i=this;return g.a.createElement(z,{binaryString:(a=e,R.padLeft(R.formatString(a,"bin"),8,"0")),key:t,emphasizeBytes:!1,allowFlipBits:!0,className:"octet-".concat(t),onFlipBit:function(e){return i.onFlippedBit(e.newBinaryString,t,n)}})}},{key:"onFlippedBit",value:function(e,t,n){n.setOctet(t,parseInt(e,2)),this.forceUpdate()}}]),t}(g.a.Component);function L(e,t){return 0==t?e:e&Math.pow(2,8-t)-1<<t}function A(e,t){return 0==t?e:e|Math.pow(2,t)-1}function H(e){return 255<<8-e&255}function P(e){var t=H,n=e.maskBits;return n<=8?new K(t(n),0,0,0):n<=16?new K(255,t(n-8),0,0):n<=24?new K(255,255,t(n-16),0):new K(255,255,255,t(n-24))}function V(e){return U(e,L,0)}function F(e){var t=32-e;return Math.pow(2,t)-2}function U(e,t,n){var a=function(e,n){return t(n,8-e)},i=e.ipAddress,s=e.maskBits;return s<=8?new K(a(s,i.firstByte),n,n,n):s<=16?new K(i.firstByte,a(s-8,i.secondByte),n,n):s<=24?new K(i.firstByte,i.secondByte,a(s-16,i.thirdByte),n):new K(i.firstByte,i.secondByte,i.thirdByte,a(s-24,i.fourthByte))}var T=function(){function e(t,n){Object(a.a)(this,e),this.maskBits=void 0,this.ipAddress=void 0,this.ipAddress=t,this.maskBits=n}return Object(i.a)(e,[{key:"getAdressSpaceSize",value:function(){return F(this.maskBits)}},{key:"toString",value:function(){return"".concat(this.ipAddress.toString(),"/").concat(this.maskBits)}}]),e}(),K=function(){function e(t,n,i,s){Object(a.a)(this,e),this.firstByte=void 0,this.secondByte=void 0,this.thirdByte=void 0,this.fourthByte=void 0,this.firstByte=t,this.secondByte=n,this.thirdByte=i,this.fourthByte=s}return Object(i.a)(e,[{key:"toString",value:function(){return"".concat(this.firstByte,".").concat(this.secondByte,".").concat(this.thirdByte,".").concat(this.fourthByte)}},{key:"toBinaryString",value:function(e){return e?"".concat(M(this.firstByte)).concat(M(this.secondByte)).concat(M(this.thirdByte)).concat(M(this.fourthByte)):"".concat(M(this.firstByte),".").concat(M(this.secondByte),".").concat(M(this.thirdByte),".").concat(M(this.fourthByte))}},{key:"clone",value:function(){return new e(this.firstByte,this.secondByte,this.thirdByte,this.fourthByte)}},{key:"setOctet",value:function(e,t){switch(e){case 1:this.firstByte=t;break;case 2:this.secondByte=t;break;case 3:this.thirdByte=t;break;case 4:this.fourthByte=t}}}]),e}(),J=function(){function e(t){Object(a.a)(this,e),this.cidr=void 0,this.cidr=t}return Object(i.a)(e,[{key:"toString",value:function(){return this.cidr.toString()}}]),e}(),W=function(){function e(t){Object(a.a)(this,e),this.cidr=void 0,this.subnetBits=void 0,this.cidr=t,this.subnetBits=3}return Object(i.a)(e,[{key:"toString",value:function(){return this.cidr.toString()}}]),e}(),$={parse:function(e){var t=this,n=this.parseCommand(e),a=this.getMaches(n.nextInput),i=a.filter(function(e){return null!=e.matches}),s=a.filter(function(e){return null==e.matches});if(0==i.length)return null;if(s.length>0)return new q("Value(s) ".concat(s.map(function(e){return e.input}).join(",")," was not recognized as valid ip address or ip address with a subnet mask"));var r=a.map(function(e){return t.parseSingle(e.matches,e.input)}),l=r.filter(function(e){return e instanceof q});return l.length>0?l[0]:null!=n.command?"subnet"==n.command?this.createSubnetDefinition(r):this.createVpcDefinition(r):r},parseCommand:function(e){return e.startsWith("subnet")?{command:"subnet",nextInput:e.substring("subnet".length)}:e.startsWith("vpc")?{command:"vpc",nextInput:e.substring("vpc".length)}:{command:null,nextInput:e}},getMaches:function(e){return e.replace(/[\t\s]+/g," ").split(" ").filter(function(e){return e.length>0}).map(function(e){var t=/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})(\/\d+)?$/.exec(e);return null==t||0===t.length?{matches:null,input:e}:{matches:t,input:e}})},parseSingle:function(e,t){var n=function(e){return e<0||e>255},a=parseInt(e[1]),i=parseInt(e[2]),s=parseInt(e[3]),r=parseInt(e[4]);if(n(a)||n(i)||n(s)||n(r))return new q("".concat(t," doesn't represent a valid IP address space"));var l=new K(a,i,s,r);if(e[5]){var o=e[5].substr(1),c=parseInt(o);return c>32?new q("Subnet mask value in ".concat(t," is out of range")):new T(l,c)}return l},createSubnetDefinition:function(e){if(1!=e.length)return new q("Incorrect network definition");var t=e[0];return t instanceof T?new J(t):new q("Network definition requires subnet mask")},createVpcDefinition:function(e){if(1!=e.length)return new q("Incorrect VPC definition");var t=e[0];return t instanceof T?new W(t):new q("VPC definition requires subnet mask")}},q=function e(t){Object(a.a)(this,e),this.errorMessage=void 0,this.errorMessage=t},G=$,Y=n(14);n(35);var X=function(e){var t=e.ip;return g.a.createElement(g.a.Fragment,null,g.a.createElement(z,{binaryString:R.emBin(t.firstByte)}),g.a.createElement("span",{className:"soft"},"."),g.a.createElement(z,{binaryString:R.emBin(t.secondByte)}),g.a.createElement("span",{className:"soft"},"."),g.a.createElement(z,{binaryString:R.emBin(t.thirdByte)}),g.a.createElement("span",{className:"soft"},"."),g.a.createElement(z,{binaryString:R.emBin(t.fourthByte)}))};function Q(e){var t=e.ip,n=e.descr;return g.a.createElement("tr",null,g.a.createElement("td",{className:"soft","data-test-name":"label"},n),g.a.createElement("td",{"data-test-name":"decimal",className:"ip-address-col"},t.toString()),g.a.createElement("td",{"data-test-name":"bin"},g.a.createElement(X,{ip:t})))}var Z=function(e){var t,n=Object(f.useState)(e.subnet),a=Object(Y.a)(n,2),i=a[0],s=a[1];return g.a.createElement(g.a.Fragment,null,g.a.createElement("table",{className:"expression subnet-view"},g.a.createElement("tbody",null,g.a.createElement(Q,{ip:i.cidr.ipAddress,descr:"Address"}),g.a.createElement(Q,{ip:V(i.cidr),descr:"Network"}),g.a.createElement(Q,{ip:P(i.cidr),descr:"Net Mask"}),g.a.createElement(Q,{ip:(t=i.cidr,U(t,A,255)),descr:"Broadcast"}),g.a.createElement("tr",null,g.a.createElement("td",{"data-test-name":"label",className:"soft"},g.a.createElement("span",null,"Network Size")),g.a.createElement("td",{"data-test-name":"decimal"},i.cidr.getAdressSpaceSize())),g.a.createElement("tr",null,g.a.createElement("td",{"data-test-name":"label",className:"soft"},"Mask Size"),g.a.createElement("td",{"data-test-name":"decimal"},g.a.createElement("button",{className:"btn",onClick:function(){var e=new T(i.cidr.ipAddress,i.cidr.maskBits-1);s(new J(e))},disabled:0===i.cidr.maskBits,title:"Decrease mask size"},"-"),g.a.createElement("span",null,i.cidr.maskBits),g.a.createElement("button",{className:"btn",onClick:function(){var e=new T(i.cidr.ipAddress,i.cidr.maskBits+1);s(new J(e))},disabled:32===i.cidr.maskBits,title:"Increase mask size"},"+"))))),g.a.createElement("div",null))};function ee(e){var t=window.bitwiseCmdAnalyticsHandler;null==t&&c.a.debug("ERROR!!!: Analytics event was not sent. Handler not found");var n=t(e);c.a.debug("Analytics event sent. Delivery response: "+n,e)}n(36);var te=30;var ne=function(e){var t=Object(f.useState)(ae.create(e.vpc)),n=Object(Y.a)(t,2),a=n[0],i=n[1],s=a.cidr.maskBits+a.subnetBits,r=Math.pow(2,a.subnetBits),l=F(s),o=V(a.cidr),c=function(){return i(a.changeSubnetBits(a.subnetBits-1))},u=function(){return i(a.changeSubnetBits(a.subnetBits+1))},d=R.splitByMasks(o.toBinaryString(),a.cidr.maskBits,s);return g.a.createElement(g.a.Fragment,null,g.a.createElement("div",{className:"expression vpc-view"},g.a.createElement("div",{className:"address-container"},g.a.createElement("div",null,g.a.createElement("span",null,"VPC Network Address")),g.a.createElement("div",null,g.a.createElement(z,{binaryString:d.vpc,disableHighlight:!0,className:"address-space soft"}),g.a.createElement(z,{binaryString:d.subnet,disableHighlight:!0,className:"address-space subnet-part"}),g.a.createElement(z,{binaryString:d.hosts,disableHighlight:!0,className:"address-space host-part"}),g.a.createElement("span",{className:"address-space decimal-part"},o.toString()),g.a.createElement(N,{text:"[i]",isOn:a.showLegend,onClick:function(){return i(a.toggleLegend())},title:"Show/Hide Color Legend"},g.a.createElement(E.a,{className:"icon",icon:b.d,size:"sm"}))),g.a.createElement("div",{style:{display:a.showLegend?"":"none"}},g.a.createElement("p",null,"Color Legend"),g.a.createElement("span",{className:"address-space soft"},"000")," - VPC address bits ",g.a.createElement("br",null),g.a.createElement("span",{className:"address-space subnet-part"},"000")," - Bits dedicated for subnets address",g.a.createElement("br",null),g.a.createElement("span",{className:"address-space host-part"},"000")," - Bits dedicated to host addresses inside each subnet")),g.a.createElement("table",{className:"vpc-details"},g.a.createElement("tbody",null,g.a.createElement("tr",null,g.a.createElement("td",{className:"soft"},"VPC CIDR Mask:"),g.a.createElement("td",null,g.a.createElement("button",{className:"btn",onClick:function(){return i(a.changeVpcCidr(new T(a.cidr.ipAddress,a.cidr.maskBits-1)))},disabled:a.cidr.maskBits<=1,title:"Decrease vpc address bits"},"-"),"/",a.cidr.maskBits,g.a.createElement("button",{className:"btn",onClick:function(){return i(a.changeVpcCidr(new T(a.cidr.ipAddress,a.cidr.maskBits+1)))},disabled:s>=te,title:"Increse vpc address bits"},"+"))),g.a.createElement("tr",null,g.a.createElement("td",{className:"soft"},"Subnet CIDR Mask:"),g.a.createElement("td",null,g.a.createElement("button",{className:"btn",onClick:c,disabled:a.subnetBits<=1,title:"Increase subnet bits"},"-"),"/",s,g.a.createElement("button",{className:"btn",onClick:u,disabled:a.cidr.maskBits+a.subnetBits>=te,title:"Increase subnet bits"},"+"))),g.a.createElement("tr",null,g.a.createElement("td",{className:"soft"},"Max Subnets in VPC:"),g.a.createElement("td",null,g.a.createElement("button",{className:"btn",onClick:c,disabled:a.subnetBits<=1,title:"Decrease subnet bits"},"-"),r,g.a.createElement("button",{className:"btn",onClick:u,disabled:a.cidr.maskBits+a.subnetBits>=te,title:"Increase subnet bits"},"+"))),g.a.createElement("tr",null,g.a.createElement("td",{className:"soft"},"Max Hosts in VPC:"),g.a.createElement("td",null,r*l)),g.a.createElement("tr",null,g.a.createElement("td",{className:"soft"},"Hosts Per Subnet:"),g.a.createElement("td",null,l))))))},ae=function(){function e(t,n){Object(a.a)(this,e),this.cidr=void 0,this.subnetBits=void 0,this.subnetNum=void 0,this.showLegend=void 0,this.cidr=t,this.subnetBits=n,this.subnetNum=0,this.showLegend=!1}return Object(i.a)(e,[{key:"clone",value:function(){return Object.assign(new e(this.cidr,this.subnetBits),this)}},{key:"changeSubnetBits",value:function(t){return new e(this.cidr,t)}},{key:"changeVpcCidr",value:function(t){return new e(t,this.subnetBits)}},{key:"toggleLegend",value:function(){var t=new e(this.cidr,this.subnetBits);return t.showLegend=!this.showLegend,t}}],[{key:"create",value:function(t){return new e(t.cidr,t.subnetBits)}}]),e}();function ie(e,t){!0!==t.doNotTrack&&ee({eventCategory:"NetworkingCommand",eventAction:e})}var se={setup:function(e,t){t.command({canHandle:function(e){return null!=G.parse(e)},handle:function(t){var n=G.parse(t.input);if(null!=n)if(n instanceof q)e.addCommandResult(t.input,g.a.createElement(I,{errorMessage:n.errorMessage}));else{if(n instanceof J)return e.addCommandResult(t.input,g.a.createElement(Z,{subnet:n})),void ie("SubnetCommand",t.options);if(n instanceof W)return e.addCommandResult(t.input,g.a.createElement(ne,{vpc:n})),void ie("VpcCommand",t.options);var a=[];n.forEach(function(e){e instanceof T?(a.push(e.ipAddress),a.push(P(e))):e instanceof K&&a.push(e)}),ie("IpAddressesInput",t.options),e.addCommandResult(t.input,g.a.createElement(D,{ipAddresses:a}))}}}),c.a.debug()}},re=n(9),le=n(11),oe=function(){function e(t,n){Object(a.a)(this,e),this.numbers=void 0,this.expressionString=void 0,this.maxBitsLength=void 0,this.expressionString=t,this.numbers=n,this.maxBitsLength=n.map(function(e){return e.lengthInBits}).reduce(function(e,t){return e>=t?e:t},0)}return Object(i.a)(e,[{key:"toString",value:function(){return this.numbers.map(function(e){return e.value.toString()}).join(" ")}}]),e}(),ce=function e(t,n){Object(a.a)(this,e),this.expressionString=void 0,this.expressionItems=void 0,this.expressionString=t,this.expressionItems=n},ue=function(){function e(){Object(a.a)(this,e),this.factories=void 0,this.factories=[]}return Object(i.a)(e,[{key:"canParse",value:function(e){for(var t=e.replace(/^\s+|\s+$/,""),n=this.factories.length-1;n>=0;n--)if(!0===this.factories[n].canCreate(t))return!0;return!1}},{key:"parse",value:function(e){for(var t,n=e.replace(/^\s+|\s+$/,""),a=0,i=this.factories.length;a<i;a++)if(1==(t=this.factories[a]).canCreate(n))return t.create(n);return null}},{key:"parseOperand",value:function(e){return re.a.parse(e)}},{key:"createOperand",value:function(e,t){return re.a.create(e,t)}},{key:"addFactory",value:function(e){this.factories.push(e)}}]),e}(),de=function(){function e(){Object(a.a)(this,e),this.regex=void 0,this.regex=/^(-?(?:\d+|0x[\d,a-f]+|0b[0-1])\s?)+$/}return Object(i.a)(e,[{key:"canCreate",value:function(e){return this.regex.test(e)}},{key:"create",value:function(e){var t=this.regex.exec(e),n=[];return(e=t.input).split(" ").forEach(function(e){e.trim().length>0&&n.push(re.a.parse(e.trim()))}),new oe(e,n)}}]),e}(),me=function(){function e(){Object(a.a)(this,e),this.fullRegex=void 0,this.regex=void 0,this.fullRegex=/^((<<|>>|>>>|\||\&|\^)?(~?-?([b,x,a-f,0-9]+)))+$/,this.regex=/(<<|>>|>>>|\||\&|\^)?(~?-?(?:[b,x,a-f,0-9]+))/g}return Object(i.a)(e,[{key:"canCreate",value:function(e){return this.fullRegex.lastIndex=0,this.fullRegex.test(this.normalizeString(e))}},{key:"create",value:function(e){for(var t,n=[],a=this.normalizeString(e);null!=(t=this.regex.exec(a));)n.push(this.parseMatch(t));return new ce(a,n)}},{key:"parseMatch",value:function(e){var t=e[0],n=e[1],a=e[2],i=null;return i=0==a.indexOf("~")?new le.a(a,re.a.parse(a.substring(1)),"~"):re.a.parse(a),null==n?i:new le.a(t,i,n)}},{key:"normalizeString",value:function(e){return e.replace(/\s+/g,"")}}]),e}(),he=new ue;he.addFactory(new de),he.addFactory(new me);var pe=function(){function e(t){var n=t.emphasizeBytes,i=void 0!==n&&n,s=t.allowFlipBits,r=void 0!==s&&s;Object(a.a)(this,e),this.emphasizeBytes=void 0,this.items=void 0,this.maxNumberOfBits=void 0,this.allowFlipBits=void 0,this.emphasizeBytes=i,this.items=[],this.maxNumberOfBits=0,this.allowFlipBits=!0===r}return Object(i.a)(e,[{key:"addOperandRow",value:function(e){this.maxNumberOfBits=Math.max(e.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"",css:"",expressionItem:e,allowFlipBits:this.allowFlipBits,label:""})}},{key:"addExpressionOperandRow",value:function(e){var t=e.isNotExpression?e.evaluate():e.getUnderlyingOperand();this.maxNumberOfBits=Math.max(t.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:e.sign,css:"",label:this.getLabel(t),expressionItem:e.operand,allowFlipBits:this.allowFlipBits})}},{key:"addShiftExpressionResultRow",value:function(e,t){this.maxNumberOfBits=Math.max(t.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:e.sign+e.operand.toString(),css:"expression-result",expressionItem:t,allowFlipBits:!1,label:""})}},{key:"addExpressionResultRow",value:function(e){this.maxNumberOfBits=Math.max(e.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"=",css:"expression-result",expressionItem:e,allowFlipBits:!1,label:""})}},{key:"getLabel",value:function(e){return"bin"==e.base?e.toString("dec"):e.toString()}}],[{key:"buildListOfNumbers",value:function(t,n){var a=new e(n);return t.numbers.forEach(function(e){return a.addOperandRow(e)}),a.maxNumberOfBits=e.getNumberOfBits(a.maxNumberOfBits,a.emphasizeBytes),a}},{key:"buildMultiple",value:function(t,n){t.expressionItems[0];for(var a,i=0,s=t.expressionItems.length,r=new e(n),l=null;i<s;i++)if((a=t.expressionItems[i])instanceof re.a)r.addOperandRow(a),l=a;else{var o=a;if(o.isNotExpression){r.addExpressionOperandRow(o);var c=o.evaluate();r.addExpressionResultRow(c),l=c}else o.isShiftExpression?(l=o.evaluate(l),r.addShiftExpressionResultRow(o,l)):(l=o.evaluate(l),r.addExpressionOperandRow(o),r.addExpressionResultRow(l))}return r.maxNumberOfBits=e.getNumberOfBits(r.maxNumberOfBits,r.emphasizeBytes),r}},{key:"buildNot",value:function(t,n){var a=new e(n);return a.addExpressionOperandRow(t),a.addExpressionResultRow(t.evaluate()),a.maxNumberOfBits=e.getNumberOfBits(a.maxNumberOfBits,a.emphasizeBytes),a}},{key:"createModel",value:function(t,n){if(t instanceof oe)return e.buildListOfNumbers(t,{emphasizeBytes:n,allowFlipBits:!0});if(t instanceof ce)return e.buildMultiple(t,{emphasizeBytes:n,allowFlipBits:!1});throw new Error("Cannot build BitwiseExpressionViewModel out of expression "+t)}}]),e}();pe.getNumberOfBits=function(e,t){return t&&e%8!=0?e<8?8:e-e%8+8:e};var fe=function(e){function t(e){var n;return Object(a.a)(this,t),(n=Object(m.a)(this,Object(h.a)(t).call(this,e))).state={},n}return Object(p.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){var e=this.getRows();return e?g.a.createElement("table",{className:"expression"},g.a.createElement("tbody",null,e)):null}},{key:"getRows",value:function(){var e=this,t=pe.createModel(this.props.expression,this.props.emphasizeBytes);return t.items.map(function(n,a){return g.a.createElement(ge,{key:a,sign:n.sign,css:n.css,allowFlipBits:n.allowFlipBits,expressionItem:n.expressionItem,emphasizeBytes:e.props.emphasizeBytes,maxNumberOfBits:t.maxNumberOfBits,onBitFlipped:function(){return e.onBitFlipped()}})})}},{key:"onBitFlipped",value:function(){this.forceUpdate()}}]),t}(g.a.Component),ge=function(e){function t(e){var n;return Object(a.a)(this,t),(n=Object(m.a)(this,Object(h.a)(t).call(this,e))).state={operand:null},n}return Object(p.a)(t,e),Object(i.a)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.sign,a=t.css,i=t.maxNumberOfBits,s=t.emphasizeBytes,r=t.allowFlipBits;return g.a.createElement("tr",{className:a},g.a.createElement("td",{className:"sign"},n),g.a.createElement("td",{className:"label"},this.getLabel()),g.a.createElement("td",{className:"bin"},g.a.createElement(z,{emphasizeBytes:s,binaryString:R.padLeft(this.getBinaryString(),i,"0"),allowFlipBits:r,onFlipBit:function(t){return e.flipBit(t)}})),g.a.createElement("td",{className:"other"},this.getOther()))}},{key:"getBinaryString",value:function(){return this.props.expressionItem.evaluate().toBinaryString()}},{key:"getLabel",value:function(){if(this.props.expressionItem.isExpression){var e=this.props.expressionItem;return e.sign+this.getLabelString(e.getUnderlyingOperand())}return this.getLabelString(this.props.expressionItem.getUnderlyingOperand())}},{key:"getOther",value:function(){return this.props.expressionItem.isExpression?this.props.expressionItem.evaluate().toString():this.props.expressionItem.evaluate().toOtherKindString()}},{key:"getLabelString",value:function(e){return e.toString("bin"==e.base?"dec":e.base)}},{key:"flipBit",value:function(e){var t=this.props.expressionItem.getUnderlyingOperand(),n=e.index,a=e.binaryString.split("");a[n]="0"==a[n]?"1":"0";var i=a.join(""),s=parseInt(i,2);t.setValue(s),this.props.onBitFlipped()}}]),t}(g.a.Component),ve={setup:function(e,t){t.command({canHandle:function(e){return he.canParse(e)},handle:function(t){var n=he.parse(t.input);e.addCommandResult(t.input,g.a.createElement(fe,{expression:n,emphasizeBytes:e.emphasizeBytes}))}})}},be=n(20),Ee=n.n(be);var ye=function(){return g.a.createElement("div",{className:"aboutTpl","data-result-type":"help"},g.a.createElement("p",null," Created by ",g.a.createElement("a",{href:"http://boryslevytskyi.github.io/"},"Borys Levytskyi"),". Please give it a like if BitwiseCmd has helped you in your work."),g.a.createElement("p",null,"If you have an idea, suggestion or you've spotted a bug here, please send it to ",g.a.createElement("a",{href:"mailto:bitwisecmd@gmail.com?subject=Feedback"},"bitwisecmd@gmail.com")," or tweet on ",g.a.createElement("a",{href:"http://twitter.com/BitwiseCmd"},"@BitwiseCmd"),". Your feedback is greatly appreciated."),g.a.createElement("p",null,g.a.createElement("a",{href:"https://github.com/BorisLevitskiy/BitwiseCmd"},"Project on ",g.a.createElement("strong",null,"GitHub"))))};var ke=function(e){var t=e.icon,n=e.command,a=e.text,i=e.textClassName,s=function(){return d.execute(n||a)};return null!=t?g.a.createElement("a",{href:"javascript:void(0)",onClick:s},g.a.createElement(E.a,{icon:t,className:"icon"}),g.a.createElement("span",{className:i},a)):g.a.createElement("a",{href:"javascript:void(0)",onClick:s},g.a.createElement("span",{className:i},a))};n(39);var Be=function(){return g.a.createElement("div",{className:"help helpResultTpl"},g.a.createElement("div",{className:"panel-container"},g.a.createElement("div",{className:"left-panel"},g.a.createElement("div",{className:"section"},g.a.createElement("strong",{className:"section-title soft"},"Bitiwse Calculation Commands"),g.a.createElement("ul",null,g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"23 | 34"}))," \u2014 type bitwise expression to see result in binary (only positive integers are supported now)"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"23 34"}))," \u2014 type one or more numbers to see their binary representations"))),g.a.createElement("div",{className:"section"},g.a.createElement("strong",{className:"section-title soft"},"IP Address Commands"),g.a.createElement("ul",null,g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"127.0.0.1"}))," \u2014 enter single or multiple ip addresses (separated by space) to see their binary represenation"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"192.168.0.1/8"}))," \u2014 subnet mask notiations are support as well"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"subnet 192.168.24.1/14"}))," \u2014 display information about subnet (network address, broadcast address, etc.)"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"vpc 192.168.24.1/24"}))," \u2014 see how VPC network address bits are divided between VPC address, Subnets and Hosts"))),g.a.createElement("div",{className:"section"},g.a.createElement("strong",{className:"section-title soft"},"Color Theme Commands"),g.a.createElement("ul",null,g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"light"}))," \u2014 set Light color theme"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"dark"}))," \u2014 set Dark color theme"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"midnight"}))," \u2014 set Midnight color theme"))),g.a.createElement("div",{className:"section"},g.a.createElement("strong",{className:"section-title soft"},"Other Commands"),g.a.createElement("ul",null,g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"clear"}))," \u2014 clear output pane"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"help"}))," \u2014 display this help"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"whatsnew"}))," \u2014 display changelog"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"em"}))," \u2014 turn On/Off Emphasize Bytes"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"about"}))," \u2014 about the app"),g.a.createElement("li",null,g.a.createElement("code",null,g.a.createElement(ke,{text:"guid"}))," \u2014 generate ",g.a.createElement("a",{href:"https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29"},"v4")," GUID")))),g.a.createElement("div",{className:"right-panel"},g.a.createElement("div",{className:"section"},g.a.createElement("strong",{className:"section-title soft"},"Supported Bitwise Operations"),g.a.createElement("br",null),g.a.createElement("small",null,g.a.createElement("a",{href:"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators"},"as implemented in JavaScript engine of your browser")),g.a.createElement("ul",null,g.a.createElement("li",null,g.a.createElement("code",null,"&")," \u2014 bitwise AND"),g.a.createElement("li",null,g.a.createElement("code",null,"|")," \u2014 bitwise inclusive OR"),g.a.createElement("li",null,g.a.createElement("code",null,"^")," \u2014 bitwise exclusive XOR"),g.a.createElement("li",null,g.a.createElement("code",null,"~")," \u2014 bitwise NOT"),g.a.createElement("li",null,g.a.createElement("code",null,"<<")," \u2014 left shift"),g.a.createElement("li",null,g.a.createElement("code",null,">>")," \u2014 sign propagating right shift"),g.a.createElement("li",null,g.a.createElement("code",null,">>>")," \u2014 zero-fill right shift"))),g.a.createElement("div",{className:"section"},g.a.createElement("strong",{className:"section-title soft"},"Tip"),g.a.createElement("p",null,"You can click on bits to flip them in number inputs (e.g. ",g.a.createElement(ke,{text:"2 4"}),") or IP addresses (e.g. ",g.a.createElement(ke,{text:"192.168.0.0/8"}),")")))))};var we=function(e){return g.a.createElement("p",null,e.text)};n(40);var xe=function(){return g.a.createElement("div",{className:"changelog"},g.a.createElement("h3",null,"Changelog"),g.a.createElement("div",{className:"item item-new"},g.a.createElement("p",null,g.a.createElement("span",{className:"soft date"},"Jul 24th, 2021")," ",g.a.createElement("br",null),g.a.createElement("ul",null,g.a.createElement("li",null,"Added support of ",g.a.createElement("code",null,"vpc")," command to see hpw VPC network address is divided bettwen VPC, Subnets and Hosts. Try it out: ",g.a.createElement(ke,{text:"vpc 192.168.24.1/24"})),g.a.createElement("li",null,"Added ability to remove individual results")))),g.a.createElement("div",{className:"item"},g.a.createElement("p",null,g.a.createElement("span",{className:"soft date"},"Jun 16th, 2021")," ",g.a.createElement("br",null),"Added support of ",g.a.createElement("code",null,"subnet")," command to display information about subnet ip adress such. Try it out: ",g.a.createElement(ke,{text:"subnet 192.168.24.1/14"}))),g.a.createElement("div",{className:"item"},g.a.createElement("p",null,g.a.createElement("span",{className:"soft date"},"Jun 14th, 2021")," ",g.a.createElement("br",null),"Added support of ip addresses and subnet masks notatioans. Try them out:"),g.a.createElement("ul",null,g.a.createElement("li",null,"Single IP address ",g.a.createElement(ke,{text:"127.0.0.1"})),g.a.createElement("li",null,"Multiple IP addresses and subnet mask notations ",g.a.createElement(ke,{text:"127.0.0.1 192.168.0.0/24"})))),g.a.createElement("div",{className:"item"},g.a.createElement("p",null,g.a.createElement("span",{className:"soft date"},"Jun 6th, 2017")," ",g.a.createElement("br",null),"Added ",g.a.createElement("code",null,g.a.createElement(ke,{text:"guid"}))," command. Use it for generating v4 GUIDs ")),g.a.createElement("div",{className:"item"},g.a.createElement("p",null,g.a.createElement("span",{className:"soft date"},"May 27th, 2017")," ",g.a.createElement("br",null),"Added support of binary number notation (e.g. ",g.a.createElement("code",null,g.a.createElement(ke,{text:"0b10101"})),"). ")),g.a.createElement("div",{className:"item"},g.a.createElement("p",null,g.a.createElement("span",{className:"soft"},"May 20th, 2017")," ",g.a.createElement("br",null),"New ",g.a.createElement(ke,{text:"Midnight"})," theme added. ")),g.a.createElement("div",{className:"item"},g.a.createElement("p",null,g.a.createElement("span",{className:"soft"},"May 16th, 2017")," ",g.a.createElement("br",null),"Complete rewrite using React. Old implementation is available at ",g.a.createElement("a",{href:"http://bitwisecmd.com/old"},"http://bitwisecmd.com/old"),". Please let me know if you have problems with this release by ",g.a.createElement("a",{href:"https://github.com/BorysLevytskyi/BitwiseCmd/issues"},"creating issue")," in Github Repo.")))},Oe=7,Ne=function(){function e(t,n){Object(a.a)(this,e),this.version=Oe,this.emphasizeBytes=void 0,this.debugMode=!1,this.uiTheme=void 0,this.changeHandlers=void 0,this.commandResults=void 0,this.persistedVersion=void 0,this.wasOldVersion=void 0,this.env=void 0,this.pageVisitsCount=void 0,this.donationClicked=void 0,this.commandResults=[],this.changeHandlers=[],this.uiTheme=t.uiTheme||"midnight",this.env=n,this.emphasizeBytes=t.emphasizeBytes||!0,this.persistedVersion=t.version||.1,this.wasOldVersion=null!=t.version&&this.version>this.persistedVersion,this.debugMode="prod"!==n||!0===t.debugMode,this.pageVisitsCount=t.pageVisistsCount||0,this.donationClicked=t.donationClicked}return Object(i.a)(e,[{key:"addCommandResult",value:function(e,t){var n=Math.ceil(1e7*Math.random())^Date.now();this.commandResults.unshift({key:n,input:e,view:t}),c.a.debug("command result added: ".concat(e)),this.triggerChanged()}},{key:"clearCommandResults",value:function(){this.commandResults=[],this.triggerChanged()}},{key:"removeResult",value:function(e){e<0||e>=this.commandResults.length||(this.commandResults.splice(e,1),this.triggerChanged())}},{key:"toggleEmphasizeBytes",value:function(){this.emphasizeBytes=!this.emphasizeBytes,this.triggerChanged()}},{key:"onChange",value:function(e){this.changeHandlers.push(e)}},{key:"triggerChanged",value:function(){var e=this;this.changeHandlers.forEach(function(t){return t(e)})}},{key:"setUiTheme",value:function(e){this.uiTheme=e,this.triggerChanged()}},{key:"toggleDebugMode",value:function(){this.debugMode=!this.debugMode,this.triggerChanged()}},{key:"registerVisit",value:function(){this.pageVisitsCount++,this.triggerChanged()}},{key:"onDonationClicked",value:function(){return!0!==this.donationClicked&&(this.donationClicked=!0,this.triggerChanged(),!0)}},{key:"getPersistData",value:function(){return{emphasizeBytes:this.emphasizeBytes,uiTheme:this.uiTheme,version:this.version,debugMode:this.debugMode,pageVisistsCount:this.pageVisitsCount,donationClicked:this.donationClicked}}}]),e}();var Ce={getPersistedData:function(){var e=window.localStorage.getItem("AppState");if(!e)return{};try{return JSON.parse(e)}catch(t){return console.error("Failed to parse AppState json. Json Value: \n"+e,t),{}}},watch:function(e){var t=this;e.onChange(function(){return t.persistData(e)})},persistData:function(e){localStorage.setItem("AppState",JSON.stringify(e.getPersistData()))}},Se="StartupCommand",_e=["help","127.0.0.1 192.168.0.0/8","1|2&6","4 0b1000000 0x80"];var Ie={setup:function(e,t){t.debugMode=e.debugMode,e.onChange(function(){return t.debugMode=e.debugMode}),t.command("help",function(t){return e.addCommandResult(t.input,g.a.createElement(Be,null))}),t.command("clear",function(){return e.clearCommandResults()}),t.command("em",function(){return e.toggleEmphasizeBytes()}),t.command("dark",function(){return e.setUiTheme("dark")}),t.command("light",function(){return e.setUiTheme("light")}),t.command("midnight",function(){return e.setUiTheme("midnight")}),t.command("about",function(t){return e.addCommandResult(t.input,g.a.createElement(ye,null))}),t.command("whatsnew",function(t){return e.addCommandResult(t.input,g.a.createElement(xe,null))}),t.command("guid",function(t){return e.addCommandResult(t.input,g.a.createElement(we,{text:Ee()()}))}),t.command("-notrack",function(){}),t.command("-debug",function(t){e.toggleDebugMode(),e.addCommandResult(t.input,g.a.createElement(we,{text:"Debug Mode: ".concat(e.debugMode)}))}),t.command("donate",function(t){e.onDonationClicked()?ee({eventCategory:"Donation",eventAction:"DonateButtonClicked"}):ee({eventCategory:"Donation",eventAction:"DonateButtonClickedAgain"})}),t.command("track",function(e){ee({eventCategory:"General",eventAction:"AnalyticsTest"})}),"prod"!==e.env&&t.command({canHandle:function(e){return 0===e.indexOf("default")},handle:function(t){var n,a=t.input.substring(7).trim(),i=(n=a,console.log(n),0===n.length?"Default comand: "+localStorage.getItem(Se):"clear"===n?(localStorage.removeItem(Se),"Default startup command cleared"):(localStorage.setItem(Se,n),"Default startup command saved: ".concat(n)));e.addCommandResult(t.input,g.a.createElement(we,{text:i}))}}),t.onError(function(t,n){return e.addCommandResult(t,g.a.createElement(I,{errorMessage:n.toString()}))})}};var je=function(e){return g.a.createElement("div",{className:"result"},g.a.createElement("div",{className:"error"},"\xaf\\_(\u30c4)_/\xaf Sorry, i don\u2032t know what ",g.a.createElement("strong",null,e.input)," is"))},Me=function(){var e="bitwisecmd.com"===window.location.host?"prod":"stage";!function(e){"prod"!=e?(c.a.setLevel("debug"),c.a.debug("Log level is set to debug. Env: ".concat(e))):c.a.setLevel("warn")}(e);var t=function(e){var t=Ce.getPersistedData(),n=new Ne(t,e);return Ce.watch(n),c.a.debug("appState initialized",n),n}(e);return{appState:t,startupCommands:function(e){var t=B.getArgs(window.location.hash),n=function(){var e=localStorage.getItem(Se);return null!=e?[e]:[]}();return 0==n.length&&(n=_e),e.wasOldVersion&&(n=["whatsnew"]),t.length>0&&(n=t),c.a.debug("Executing startup commands",n),n}(t)}}();Ie.setup(Me.appState,d),se.setup(Me.appState,d),ve.setup(Me.appState,d),d.command({canHandle:function(){return!0},handle:function(e){return Me.appState.addCommandResult(e.input,g.a.createElement(je,{input:e.input}))}});var Re=g.a.createElement(C,{appState:Me.appState});_.a.render(Re,document.getElementById("root")),c.a.debug("Executing startup commands",Me.startupCommands),Me.startupCommands.forEach(function(e){return d.execute(e,{doNotTrack:!0})}),Me.appState.registerVisit(),c.a.debug("started")}],[[21,1,2]]]);
//# sourceMappingURL=main.bfd34435.chunk.js.map