From 6b0fb4eb32341d038dfc383f4f27f2d2a4e5d20d Mon Sep 17 00:00:00 2001 From: Spencer Nowak Date: Thu, 13 Jul 2017 14:18:50 -0400 Subject: [PATCH] Update logTable to accept an optional type argument for table class --- README.md | 2 +- dist/dist-min.tar.gz | Bin 29597 -> 29703 bytes dist/dist-min.zip | Bin 30183 -> 30292 bytes dist/dist-min/react-console.min.js | 2 +- dist/dist-min/react-console.min.js.map | 2 +- dist/dist.tar.gz | Bin 25121 -> 25308 bytes dist/dist.zip | Bin 25540 -> 25710 bytes dist/dist/react-console.js | 11 ++++++++--- dist/dist/react-console.js.map | 2 +- lib/react-console.js | 11 ++++++++--- lib/react-console.js.map | 2 +- src/react-console.tsx | 10 +++++++--- 12 files changed, 28 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index e3d2a4c..a09f600 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ Properties you can pass to the console element | log | (...messages: any)=>void | Log messages to the console. If string, print the value, otherwise, print the JSON value of the message. | updateLastLog| (...messages: any)=>void | Replace the last message in the console. Useful for progress indicators. | logX | (type: string, ...messages: any)=>void | Log messages of a particular type to the console. The messages will be given the class `react-console-message-{type}`. -| logTable | (tableObject: Object)=>void | Log tabular data to the console. `tableObject` has the format `{ headers: ['header 1', 'header 2'], rows: [['row 1, col 1', 'row 1, col 2'], ['row 2, col 1', 'row 2, col 2']]}`. `headers` is optional. +| logTable | (tableObject: Object[, type: string])=>void | Log tabular data to the console. `tableObject` has the format `{ headers: ['header 1', 'header 2'], rows: [['row 1, col 1', 'row 1, col 2'], ['row 2, col 1', 'row 2, col 2']]}`. `headers` is optional. The optional `type` argument will be handled the same as in `logX` | return | ()=>void | Signal the current command has finished and a new prompt should be displayed. | clearScreen | ()=>void | Clear the visible log in the console. Does not clear command history. diff --git a/dist/dist-min.tar.gz b/dist/dist-min.tar.gz index 1748ef48cb0b822a0064843a4b2ea0d09b06853f..75126e4afc1bcfe286685d76c44c5bb7db2f92f7 100644 GIT binary patch literal 29703 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�XeNttdoK1++^XESV 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 Y+jti9tbu0@{7)MA3%XFc007Pb0P3uW)&Kwi diff --git a/dist/dist-min.zip b/dist/dist-min.zip index 8544ee1620d963aec95d9992d8c4b520122dfaa7..4a796caaa0119c84e2e5ed1151a2b901dc0f3111 100644 GIT binary patch delta 28763 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 S!+$Cyj=5k#(YgHR+W!I9UB-<7 delta 28665 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.substring(0,e+1):""}return s.createElement("div",{className:"react-console-prompt-box"},s.createElement("span",{className:"react-console-prompt-label"},t),s.createElement("span",{className:"react-console-prompt-argument"},this.props.argument),s.createElement("span",{className:"react-console-prompt"},this.renderValue()))},e.defaultProps={point:-1,value:"",label:"> ",argument:null},e}(s.Component),a=function(t){return t.headers?s.createElement("thead",null,s.createElement("tr",null,t.headers.map(function(t){return s.createElement("th",{scope:"col",key:t},t)}))):null},l=function(t){if(t.isTable){var e=t.value[0];return s.createElement("div",{className:"react-console-message react-console-table"},s.createElement("table",null,s.createElement(a,{headers:e.headers}),s.createElement("tbody",null,e.rows&&e.rows.map(function(t,e){return s.createElement("tr",{key:e},t.map(function(t,e){return s.createElement("td",{key:e},t)}))}))))}return s.createElement("div",{className:"react-console-message"+(t.type?" react-console-message-"+t.type:"")},t.value.map(function(t){return"string"==typeof t?t:JSON.stringify(t)}).join("\n"))};l.defaultProps={type:null,value:[],isTable:!1};var i=function(t){function e(e){var o=this;t.call(this,e),this.child={},this.updateLastLog=function(){for(var t=[],e=0;e0?r[o.state.log.length-1].message.length-1:0;r[o.state.log.length-1].message[s]={value:t},o.setState({log:r},o.scrollIfBottom())},this.log=function(){for(var t=[],e=0;e0&&o.setState({point:o.movePoint(-1),promptText:o.state.promptText.substring(0,o.state.point-1)+o.state.promptText.substring(o.state.point),argument:null,lastCommand:0},o.scrollToBottom)},this.killLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText.substring(o.state.point)),o.setState({promptText:o.state.promptText.substring(0,o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]:t.unshift(o.state.promptText.substring(0,o.state.point)),o.setState({point:0,promptText:o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWholeLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText),o.setState({point:0,promptText:"",kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point,o.nextWord()):t.unshift(o.state.promptText.substring(o.state.point,o.nextWord())),o.setState({promptText:o.state.promptText.substring(0,o.state.point)+o.state.promptText.substring(o.nextWord()),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(o.previousWord(),o.state.point)+t[0]:t.unshift(o.state.promptText.substring(o.previousWord(),o.state.point)),o.setState({point:o.previousWord(),promptText:o.state.promptText.substring(0,o.previousWord())+o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.yank=function(){o.setState(Object.assign(o.consoleInsert(o.state.kill[o.state.killn]),{lastCommand:3}),o.scrollToBottom)},this.yankPop=function(){if(3==o.state.lastCommand){var t=o.rotateRing(1,o.state.killn,o.state.kill.length);o.setState(Object.assign(o.consoleInsert(o.state.kill[t],o.state.kill[o.state.killn].length),{killn:t,lastCommand:3}),o.scrollToBottom)}},this.complete=function(){if(o.props.complete){for(var t=o.state.promptText.split(" "),e=0,r=t[0].length;r1){var l=o.state.log;l.push({label:o.state.currLabel,command:o.state.promptText,message:[{type:"completion",value:[s.join("\t")]}]}),o.setState({currLabel:o.nextLabel(),log:l,argument:null,lastCommand:0},o.scrollToBottom)}}},this.prefixMeta=function(){1==o.state.lastCommand&&o.setState({argument:null,lastCommand:0})},this.cancelCommand=function(){if(o.state.acceptInput){o.child.typer.value="";var t=o.state.log;t.push({label:o.state.currLabel,command:o.state.promptText,message:[]}),o.setState({typer:"",point:0,promptText:"",restoreText:"",log:t,historyn:0,argument:null,lastCommand:0},o.scrollToBottom)}else o.props.cancel()},this.textInsert=function(t,e,o,r){return void 0===o&&(o=0),void 0===r&&(r=e.length),e.substring(0,r-o)+t+e.substring(r)},this.consoleInsert=function(t,e){void 0===e&&(e=0);var r=o.textInsert(t,o.state.promptText,e,o.state.point);return{point:o.movePoint(t.length-e,t.length-e+o.state.promptText.length),promptText:r,restoreText:r,argument:null,lastCommand:0}},this.movePoint=function(t,e){void 0===e&&(e=o.state.promptText.length);var r=o.state.point+t;return r<0?0:r>e?e:r},this.rotateRing=function(t,e,o,r){return void 0===r&&(r=!0),0==o?0:r?(o+(e+t)%o)%o:(e-=t,e<0?0:e>=o?o:e)},this.rotateHistory=function(t){var e=o.rotateRing(t,o.state.historyn,o.state.history.length,!1);if(0==e)o.setState({point:o.state.restoreText.length,promptText:o.state.restoreText,historyn:e,argument:null,lastCommand:0},o.scrollToBottom);else{var r=o.state.history[o.state.history.length-e];o.setState({point:r.length,promptText:r,historyn:e,argument:null,lastCommand:0},o.scrollToBottom)}},this.searchHistory=function(t,e){void 0===t&&(t=o.state.searchDirection),void 0===e&&(e=!1);var r=o.state.historyn,s=0==t?1:-1;for(e&&(r+=s);r>0&&r<=o.state.history.length;r+=s){var n=o.state.history[o.state.history.length-r],a=n.indexOf(o.state.searchText);if(a>-1)return{point:a,promptText:n,searchDirection:t,searchInit:!1,historyn:r}}return{searchDirection:t,searchInit:!1}},this.scrollSemaphore=0,this.scrollIfBottom=function(){return o.scrollSemaphore>0||o.child.container.scrollTop==o.child.container.scrollHeight-o.child.container.offsetHeight?(o.scrollSemaphore++,o.scrollIfBottomTrue):null},this.scrollIfBottomTrue=function(){o.scrollToBottom(),o.scrollSemaphore--},this.scrollToBottom=function(){o.child.container.scrollTop=o.child.container.scrollHeight;var t=o.child.focus.getBoundingClientRect();(t.top<0||t.left<0||t.bottom>(window.innerHeight||document.documentElement.clientHeight)||t.right>(window.innerWidth||document.documentElement.clientWidth))&&o.child.typer.scrollIntoView(!1)},this.nextLabel=function(){return"string"==typeof o.props.promptLabel?o.props.promptLabel:o.props.promptLabel()},this.state={focus:!1,acceptInput:!0,typer:"",point:0,currLabel:this.nextLabel(),promptText:"",restoreText:"",searchText:"",searchDirection:null,searchInit:!1,log:[],history:[],historyn:0,kill:[],killn:0,argument:null,lastCommand:0}}return r(e,t),e.prototype.componentDidMount=function(){this.props.autofocus&&this.focus()},e.prototype.nextWord=function(){var t=/\W\w/.exec(this.state.promptText.substring(this.state.point));return t?t.index+this.state.point+1:this.state.promptText.length},e.prototype.previousWord=function(){var t=/\W\w(?!.*\W\w)/.exec(this.state.promptText.substring(0,this.state.point-1));return t?t.index+1:0},e.prototype.render=function(){var t=this;return s.createElement("div",{ref:function(e){return t.child.container=e},className:"react-console-container "+(this.state.focus?"react-console-focus":"react-console-nofocus"),onClick:this.focus},this.props.welcomeMessage?s.createElement("div",{className:"react-console-message react-console-welcome"},this.props.welcomeMessage):null,this.state.log.map(function(t){return[s.createElement(n,{label:t.label,value:t.command})].concat(t.message.map(function(t,e){return s.createElement(l,{key:e,type:t.type,value:t.value,isTable:t.isTable})}))}),this.state.acceptInput?s.createElement(n,{label:this.state.currLabel,value:this.state.promptText,point:this.state.point,argument:this.state.argument}):null,s.createElement("div",{style:{overflow:"hidden",height:1,width:1}},s.createElement("textarea",{ref:function(e){return t.child.typer=e},className:"react-console-typer",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",style:{outline:"none",color:"transparent",backgroundColor:"transparent",border:"none",resize:"none",overflow:"hidden"},onBlur:this.blur,onKeyDown:this.keyDown,onChange:this.change,onPaste:this.paste})),s.createElement("div",{ref:function(e){return t.child.focus=e}}," "))},e.defaultProps={promptLabel:"> ",continue:function(){return!1},cancel:function(){}},e}(s.Component);Object.defineProperty(e,"__esModule",{value:!0}),e.default=i},function(t,e){},function(t,e){t.exports=React}]); +var Console=function(t){function e(s){if(o[s])return o[s].exports;var r=o[s]={exports:{},id:s,loaded:!1};return t[s].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var o={};return e.m=t,e.c=o,e.p="",e(0)}([function(t,e,o){"use strict";var s=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)},r=o(2);o(1);var n=function(t){function e(){t.apply(this,arguments),this.child={},this.updateSemaphore=0}return s(e,t),e.prototype.componentDidMount=function(){this.idle()},e.prototype.componentDidUpdate=function(){this.idle()},e.prototype.idle=function(){var t=this;this.child.cursor&&(0==this.updateSemaphore&&(this.child.cursor.className="react-console-cursor"),this.updateSemaphore++,window.setTimeout(function(){t.updateSemaphore--,0==t.updateSemaphore&&t.child.cursor&&(t.child.cursor.className="react-console-cursor react-console-cursor-idle")},1e3))},e.prototype.renderValue=function(){var t=this;return this.props.point<0?[this.props.value]:this.props.point==this.props.value.length?[this.props.value,r.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"}," ")]:[this.props.value.substring(0,this.props.point),r.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"},this.props.value.substring(this.props.point,this.props.point+1)),this.props.value.substring(this.props.point+1)]},e.prototype.render=function(){var t=this.props.label;if(this.props.argument){var e=t.lastIndexOf("\n");t=e>=0?t.substring(0,e+1):""}return r.createElement("div",{className:"react-console-prompt-box"},r.createElement("span",{className:"react-console-prompt-label"},t),r.createElement("span",{className:"react-console-prompt-argument"},this.props.argument),r.createElement("span",{className:"react-console-prompt"},this.renderValue()))},e.defaultProps={point:-1,value:"",label:"> ",argument:null},e}(r.Component),a=function(t){return t.headers?r.createElement("thead",null,r.createElement("tr",null,t.headers.map(function(t){return r.createElement("th",{scope:"col",key:t},t)}))):null},l=function(t){if(t.isTable){var e=t.value[0];return r.createElement("div",{className:"react-console-message react-console-table"+(t.type?" react-console-message-"+t.type:"")},r.createElement("table",null,r.createElement(a,{headers:e.headers}),r.createElement("tbody",null,e.rows&&e.rows.map(function(t,e){return r.createElement("tr",{key:e},t.map(function(t,e){return r.createElement("td",{key:e},t)}))}))))}return r.createElement("div",{className:"react-console-message"+(t.type?" react-console-message-"+t.type:"")},t.value.map(function(t){return"string"==typeof t?t:JSON.stringify(t)}).join("\n"))};l.defaultProps={type:null,value:[],isTable:!1};var i=function(t){function e(e){var o=this;t.call(this,e),this.child={},this.updateLastLog=function(){for(var t=[],e=0;e0?s[o.state.log.length-1].message.length-1:0;s[o.state.log.length-1].message[r]={value:t},o.setState({log:s},o.scrollIfBottom())},this.log=function(){for(var t=[],e=0;e0&&o.setState({point:o.movePoint(-1),promptText:o.state.promptText.substring(0,o.state.point-1)+o.state.promptText.substring(o.state.point),argument:null,lastCommand:0},o.scrollToBottom)},this.killLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText.substring(o.state.point)),o.setState({promptText:o.state.promptText.substring(0,o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]:t.unshift(o.state.promptText.substring(0,o.state.point)),o.setState({point:0,promptText:o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWholeLine=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(0,o.state.point)+t[0]+o.state.promptText.substring(o.state.point):t.unshift(o.state.promptText),o.setState({point:0,promptText:"",kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.killWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=t[0]+o.state.promptText.substring(o.state.point,o.nextWord()):t.unshift(o.state.promptText.substring(o.state.point,o.nextWord())),o.setState({promptText:o.state.promptText.substring(0,o.state.point)+o.state.promptText.substring(o.nextWord()),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.backwardKillWord=function(){var t=o.state.kill;2==o.state.lastCommand?t[0]=o.state.promptText.substring(o.previousWord(),o.state.point)+t[0]:t.unshift(o.state.promptText.substring(o.previousWord(),o.state.point)),o.setState({point:o.previousWord(),promptText:o.state.promptText.substring(0,o.previousWord())+o.state.promptText.substring(o.state.point),kill:t,killn:0,argument:null,lastCommand:2},o.scrollToBottom)},this.yank=function(){o.setState(Object.assign(o.consoleInsert(o.state.kill[o.state.killn]),{lastCommand:3}),o.scrollToBottom)},this.yankPop=function(){if(3==o.state.lastCommand){var t=o.rotateRing(1,o.state.killn,o.state.kill.length);o.setState(Object.assign(o.consoleInsert(o.state.kill[t],o.state.kill[o.state.killn].length),{killn:t,lastCommand:3}),o.scrollToBottom)}},this.complete=function(){if(o.props.complete){for(var t=o.state.promptText.split(" "),e=0,s=t[0].length;s1){var l=o.state.log;l.push({label:o.state.currLabel,command:o.state.promptText,message:[{type:"completion",value:[r.join("\t")]}]}),o.setState({currLabel:o.nextLabel(),log:l,argument:null,lastCommand:0},o.scrollToBottom)}}},this.prefixMeta=function(){1==o.state.lastCommand&&o.setState({argument:null,lastCommand:0})},this.cancelCommand=function(){if(o.state.acceptInput){o.child.typer.value="";var t=o.state.log;t.push({label:o.state.currLabel,command:o.state.promptText,message:[]}),o.setState({typer:"",point:0,promptText:"",restoreText:"",log:t,historyn:0,argument:null,lastCommand:0},o.scrollToBottom)}else o.props.cancel()},this.textInsert=function(t,e,o,s){return void 0===o&&(o=0),void 0===s&&(s=e.length),e.substring(0,s-o)+t+e.substring(s)},this.consoleInsert=function(t,e){void 0===e&&(e=0);var s=o.textInsert(t,o.state.promptText,e,o.state.point);return{point:o.movePoint(t.length-e,t.length-e+o.state.promptText.length),promptText:s,restoreText:s,argument:null,lastCommand:0}},this.movePoint=function(t,e){void 0===e&&(e=o.state.promptText.length);var s=o.state.point+t;return s<0?0:s>e?e:s},this.rotateRing=function(t,e,o,s){return void 0===s&&(s=!0),0==o?0:s?(o+(e+t)%o)%o:(e-=t,e<0?0:e>=o?o:e)},this.rotateHistory=function(t){var e=o.rotateRing(t,o.state.historyn,o.state.history.length,!1);if(0==e)o.setState({point:o.state.restoreText.length,promptText:o.state.restoreText,historyn:e,argument:null,lastCommand:0},o.scrollToBottom);else{var s=o.state.history[o.state.history.length-e];o.setState({point:s.length,promptText:s,historyn:e,argument:null,lastCommand:0},o.scrollToBottom)}},this.searchHistory=function(t,e){void 0===t&&(t=o.state.searchDirection),void 0===e&&(e=!1);var s=o.state.historyn,r=0==t?1:-1;for(e&&(s+=r);s>0&&s<=o.state.history.length;s+=r){var n=o.state.history[o.state.history.length-s],a=n.indexOf(o.state.searchText);if(a>-1)return{point:a,promptText:n,searchDirection:t,searchInit:!1,historyn:s}}return{searchDirection:t,searchInit:!1}},this.scrollSemaphore=0,this.scrollIfBottom=function(){return o.scrollSemaphore>0||o.child.container.scrollTop==o.child.container.scrollHeight-o.child.container.offsetHeight?(o.scrollSemaphore++,o.scrollIfBottomTrue):null},this.scrollIfBottomTrue=function(){o.scrollToBottom(),o.scrollSemaphore--},this.scrollToBottom=function(){o.child.container.scrollTop=o.child.container.scrollHeight;var t=o.child.focus.getBoundingClientRect();(t.top<0||t.left<0||t.bottom>(window.innerHeight||document.documentElement.clientHeight)||t.right>(window.innerWidth||document.documentElement.clientWidth))&&o.child.typer.scrollIntoView(!1)},this.nextLabel=function(){return"string"==typeof o.props.promptLabel?o.props.promptLabel:o.props.promptLabel()},this.state={focus:!1,acceptInput:!0,typer:"",point:0,currLabel:this.nextLabel(),promptText:"",restoreText:"",searchText:"",searchDirection:null,searchInit:!1,log:[],history:[],historyn:0,kill:[],killn:0,argument:null,lastCommand:0}}return s(e,t),e.prototype.componentDidMount=function(){this.props.autofocus&&this.focus()},e.prototype.nextWord=function(){var t=/\W\w/.exec(this.state.promptText.substring(this.state.point));return t?t.index+this.state.point+1:this.state.promptText.length},e.prototype.previousWord=function(){var t=/\W\w(?!.*\W\w)/.exec(this.state.promptText.substring(0,this.state.point-1));return t?t.index+1:0},e.prototype.render=function(){var t=this;return r.createElement("div",{ref:function(e){return t.child.container=e},className:"react-console-container "+(this.state.focus?"react-console-focus":"react-console-nofocus"),onClick:this.focus},this.props.welcomeMessage?r.createElement("div",{className:"react-console-message react-console-welcome"},this.props.welcomeMessage):null,this.state.log.map(function(t){return[r.createElement(n,{label:t.label,value:t.command})].concat(t.message.map(function(t,e){return r.createElement(l,{key:e,type:t.type,value:t.value,isTable:t.isTable})}))}),this.state.acceptInput?r.createElement(n,{label:this.state.currLabel,value:this.state.promptText,point:this.state.point,argument:this.state.argument}):null,r.createElement("div",{style:{overflow:"hidden",height:1,width:1}},r.createElement("textarea",{ref:function(e){return t.child.typer=e},className:"react-console-typer",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",style:{outline:"none",color:"transparent",backgroundColor:"transparent",border:"none",resize:"none",overflow:"hidden"},onBlur:this.blur,onKeyDown:this.keyDown,onChange:this.change,onPaste:this.paste})),r.createElement("div",{ref:function(e){return t.child.focus=e}}," "))},e.defaultProps={promptLabel:"> ",continue:function(){return!1},cancel:function(){}},e}(r.Component);Object.defineProperty(e,"__esModule",{value:!0}),e.default=i},function(t,e){},function(t,e){t.exports=React}]); //# sourceMappingURL=react-console.min.js.map \ No newline at end of file diff --git a/dist/dist-min/react-console.min.js.map b/dist/dist-min/react-console.min.js.map index 938a104..481399a 100644 --- a/dist/dist-min/react-console.min.js.map +++ b/dist/dist-min/react-console.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///react-console.min.js","webpack:///webpack/bootstrap 63847d5e79dcb07dca5f","webpack:///./react-console.tsx","webpack:///external \"React\""],"names":["Console","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","__extends","this","d","b","__","constructor","hasOwnProperty","prototype","Object","create","React","ConsolePrompt","_super","apply","arguments","child","updateSemaphore","componentDidMount","idle","componentDidUpdate","_this","cursor","className","window","setTimeout","renderValue","props","point","value","length","createElement","ref","key","substring","render","label","argument","idx","lastIndexOf","defaultProps","Component","ConsoleTableHeader","headers","map","header","scope","ConsoleMessage","isTable","data","rows","row","index","cell","cellIndex","type","val","JSON","stringify","join","default_1","updateLastLog","messages","_i","log","state","push","command","message","indexToReplace","setState","scrollIfBottom","logX","logTable","tableData","return","acceptInput","currLabel","nextLabel","focus","getSelection","toString","typer","scrollToBottom","blur","keyDown","e","keyCodes","13","acceptLine","37","backwardChar","39","forwardChar","38","previousHistory","40","nextHistory","8","backwardDeleteChar","46","deleteChar","35","endOfLine","36","beginningOfLine","9","complete","27","prefixMeta","ctrlCodes","65","69","70","66","76","clearScreen","80","78","82","reverseSearchHistory","83","forwardSearchHistory","68","75","killLine","85","backwardKillLine","89","yank","67","cancelCommand","metaCodes","forwardWord","backwardWord","nonIncrementalReverseSearchHistory","nonIncrementalForwardSearchHistory","190","yankLastArg","killWord","backwardKillWord","yankPop","metaShiftCodes","188","beginningOfHistory","endOfHistory","189","metaCtrlCodes","yankNthArg","altKey","ctrlKey","keyCode","preventDefault","shiftKey","change","insert","replace","lastCommand","searchText","searchInit","textInsert","triggerSearch","assign","consoleInsert","paste","clipboardData","getData","promptText","movePoint","nextWord","previousWord","continue","command_1","history_1","history","restoreText","historyn","handler","rotateHistory","searchDirection","searchHistory","historySearchBackward","historySearchForward","historySubstringSearchBackward","historySubstringSearchForward","kill","unshift","killn","killWholeLine","rotateRing","words","split","curr","completions","i","cancel","text","n","max","pos","ringn","ring","circular","direction","next","inc","entry","indexOf","scrollSemaphore","container","scrollTop","scrollHeight","offsetHeight","scrollIfBottomTrue","rect","getBoundingClientRect","top","left","bottom","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","scrollIntoView","promptLabel","autofocus","search","exec","onClick","welcomeMessage","concat","style","overflow","height","width","autoComplete","autoCorrect","autoCapitalize","spellCheck","outline","color","backgroundColor","border","resize","onBlur","onKeyDown","onChange","onPaste","defineProperty","default"],"mappings":"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","file":"react-console.min.js","sourcesContent":["var Console =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar React = __webpack_require__(2);\n\t__webpack_require__(1);\n\tvar ConsolePrompt = (function (_super) {\n\t __extends(ConsolePrompt, _super);\n\t function ConsolePrompt() {\n\t _super.apply(this, arguments);\n\t this.child = {};\n\t // DOM Management\n\t this.updateSemaphore = 0;\n\t }\n\t // Component Lifecycle\n\t ConsolePrompt.prototype.componentDidMount = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.componentDidUpdate = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.idle = function () {\n\t var _this = this;\n\t // Blink cursor when idle\n\t if (this.child.cursor) {\n\t if (this.updateSemaphore == 0) {\n\t this.child.cursor.className = \"react-console-cursor\";\n\t }\n\t this.updateSemaphore++;\n\t window.setTimeout(function () {\n\t _this.updateSemaphore--;\n\t if (_this.updateSemaphore == 0 && _this.child.cursor) {\n\t _this.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t }\n\t }, 1000);\n\t }\n\t };\n\t ConsolePrompt.prototype.renderValue = function () {\n\t var _this = this;\n\t if (this.props.point < 0) {\n\t return [this.props.value];\n\t }\n\t else if (this.props.point == this.props.value.length) {\n\t return [this.props.value, React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, \" \")];\n\t }\n\t else {\n\t return [this.props.value.substring(0, this.props.point),\n\t React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, this.props.value.substring(this.props.point, this.props.point + 1)),\n\t this.props.value.substring(this.props.point + 1)];\n\t }\n\t };\n\t ConsolePrompt.prototype.render = function () {\n\t var label = this.props.label;\n\t if (this.props.argument) {\n\t var idx = label.lastIndexOf(\"\\n\");\n\t if (idx >= 0) {\n\t label = label.substring(0, idx + 1);\n\t }\n\t else {\n\t label = '';\n\t }\n\t }\n\t return React.createElement(\"div\", {className: \"react-console-prompt-box\"}, React.createElement(\"span\", {className: \"react-console-prompt-label\"}, label), React.createElement(\"span\", {className: \"react-console-prompt-argument\"}, this.props.argument), React.createElement(\"span\", {className: \"react-console-prompt\"}, this.renderValue()));\n\t };\n\t ConsolePrompt.defaultProps = {\n\t point: -1,\n\t value: \"\",\n\t label: \"> \",\n\t argument: null,\n\t };\n\t return ConsolePrompt;\n\t}(React.Component));\n\tvar ConsoleTableHeader = function (props) {\n\t if (props.headers) {\n\t return React.createElement(\"thead\", null, React.createElement(\"tr\", null, props.headers.map(function (header) {\n\t return React.createElement(\"th\", {scope: \"col\", key: header}, header);\n\t })));\n\t }\n\t return null;\n\t};\n\tvar ConsoleMessage = function (props) {\n\t if (props.isTable) {\n\t var data = props.value[0];\n\t return React.createElement(\"div\", {className: \"react-console-message react-console-table\"}, React.createElement(\"table\", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement(\"tbody\", null, data.rows && data.rows.map(function (row, index) {\n\t return React.createElement(\"tr\", {key: index}, row.map(function (cell, cellIndex) {\n\t return React.createElement(\"td\", {key: cellIndex}, cell);\n\t }));\n\t }))));\n\t }\n\t else {\n\t return React.createElement(\"div\", {className: \"react-console-message\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, props.value.map(function (val) {\n\t if (typeof val == 'string') {\n\t return val;\n\t }\n\t else {\n\t return JSON.stringify(val);\n\t }\n\t }).join(\"\\n\"));\n\t }\n\t};\n\tConsoleMessage.defaultProps = {\n\t type: null,\n\t value: [],\n\t isTable: false\n\t};\n\t;\n\t;\n\tvar default_1 = (function (_super) {\n\t __extends(default_1, _super);\n\t function default_1(props) {\n\t var _this = this;\n\t _super.call(this, props);\n\t this.child = {};\n\t // Command API\n\t this.updateLastLog = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.state.log;\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t var indexToReplace = log[_this.state.log.length - 1].message.length > 0 ? log[_this.state.log.length - 1].message.length - 1 : 0;\n\t log[_this.state.log.length - 1].message[indexToReplace] = { value: messages };\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.log = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.state.log;\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t log[_this.state.log.length - 1].message.push({ value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logX = function (type) {\n\t var messages = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t messages[_i - 1] = arguments[_i];\n\t }\n\t var log = _this.state.log;\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t log[_this.state.log.length - 1].message.push({ type: type, value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logTable = function (tableData) {\n\t var log = _this.state.log;\n\t log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.return = function () {\n\t _this.setState({\n\t acceptInput: true,\n\t currLabel: _this.nextLabel(),\n\t }, _this.scrollIfBottom());\n\t };\n\t // Event Handlers\n\t this.focus = function () {\n\t if (!window.getSelection().toString()) {\n\t _this.child.typer.focus();\n\t _this.setState({ focus: true }, _this.scrollToBottom);\n\t }\n\t };\n\t this.blur = function () {\n\t _this.setState({ focus: false });\n\t };\n\t this.keyDown = function (e) {\n\t var keyCodes = {\n\t // return\n\t 13: _this.acceptLine,\n\t // left\n\t 37: _this.backwardChar,\n\t // right\n\t 39: _this.forwardChar,\n\t // up\n\t 38: _this.previousHistory,\n\t // down\n\t 40: _this.nextHistory,\n\t // backspace\n\t 8: _this.backwardDeleteChar,\n\t // delete\n\t 46: _this.deleteChar,\n\t // end\n\t 35: _this.endOfLine,\n\t // start\n\t 36: _this.beginningOfLine,\n\t // tab\n\t 9: _this.complete,\n\t // esc\n\t 27: _this.prefixMeta,\n\t };\n\t var ctrlCodes = {\n\t // C-a\n\t 65: _this.beginningOfLine,\n\t // C-e\n\t 69: _this.endOfLine,\n\t // C-f\n\t 70: _this.forwardChar,\n\t // C-b\n\t 66: _this.backwardChar,\n\t // C-l\n\t 76: _this.clearScreen,\n\t // C-p\n\t 80: _this.previousHistory,\n\t // C-n\n\t 78: _this.nextHistory,\n\t // C-r\n\t 82: _this.reverseSearchHistory,\n\t // C-s\n\t 83: _this.forwardSearchHistory,\n\t // C-d\n\t 68: _this.deleteChar,\n\t // C-q TODO\n\t //81: this.quotedInsert,\n\t // C-v TODO\n\t //86: this.quotedInsert,\n\t // C-t TODO\n\t //84: this.transposeChars,\n\t // C-k\n\t 75: _this.killLine,\n\t // C-u\n\t 85: _this.backwardKillLine,\n\t // C-y TODO\n\t 89: _this.yank,\n\t // C-c\n\t 67: _this.cancelCommand,\n\t };\n\t var ctrlXCodes = {\n\t // C-x Rubout\n\t 8: _this.backwardKillLine,\n\t };\n\t var ctrlShiftCodes = {};\n\t var metaCodes = {\n\t // M-f\n\t 70: _this.forwardWord,\n\t // M-b\n\t 66: _this.backwardWord,\n\t // M-p\n\t 80: _this.nonIncrementalReverseSearchHistory,\n\t // M-n\n\t 78: _this.nonIncrementalForwardSearchHistory,\n\t // M-.\n\t 190: _this.yankLastArg,\n\t // M-TAB TODO\n\t //9: this.tabInsert,\n\t // M-t TODO\n\t //84: this.transposeWords,\n\t // M-u TODO\n\t //85: this.upcaseWord,\n\t // M-l TODO\n\t //76: this.downcaseWord,\n\t // M-c TODO\n\t //67: this.capitalizeWord,\n\t // M-d\n\t 68: _this.killWord,\n\t // M-backspace\n\t 8: _this.backwardKillWord,\n\t // M-w TODO\n\t //87: this.unixWordRubout,\n\t // M-\\ TODO\n\t //220: this.deleteHorizontalSpace,\n\t // M-y\n\t 89: _this.yankPop,\n\t };\n\t var metaShiftCodes = {\n\t // M-<\n\t 188: _this.beginningOfHistory,\n\t // M->\n\t 190: _this.endOfHistory,\n\t // M-_\n\t 189: _this.yankLastArg,\n\t };\n\t var metaCtrlCodes = {\n\t // M-C-y\n\t 89: _this.yankNthArg,\n\t };\n\t if (_this.state.acceptInput) {\n\t if (e.altKey) {\n\t if (e.ctrlKey) {\n\t if (e.keyCode in metaCtrlCodes) {\n\t metaCtrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.shiftKey) {\n\t if (e.keyCode in metaShiftCodes) {\n\t metaShiftCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in metaCodes) {\n\t metaCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t e.preventDefault();\n\t }\n\t else if (e.ctrlKey) {\n\t if (e.keyCode in ctrlCodes) {\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t e.preventDefault();\n\t }\n\t else if (e.keyCode in keyCodes) {\n\t keyCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t };\n\t this.change = function () {\n\t var idx = 0;\n\t for (; idx < _this.state.typer.length && idx < _this.child.typer.value.length; idx++) {\n\t if (_this.state.typer[idx] != _this.child.typer.value[idx]) {\n\t break;\n\t }\n\t }\n\t var insert = _this.child.typer.value.substring(idx);\n\t var replace = _this.state.typer.length - idx;\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText, replace),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert, replace), {\n\t typer: _this.child.typer.value,\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t this.paste = function (e) {\n\t var insert = e.clipboardData.getData('text');\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert), {\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t e.preventDefault();\n\t };\n\t // Commands for Moving\n\t this.beginningOfLine = function () {\n\t _this.setState({\n\t point: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.endOfLine = function () {\n\t _this.setState({\n\t point: _this.state.promptText.length,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardWord = function () {\n\t _this.setState({\n\t point: _this.nextWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardWord = function () {\n\t _this.setState({\n\t point: _this.previousWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t // Commands for Manipulating the History\n\t this.acceptLine = function () {\n\t _this.child.typer.value = \"\";\n\t if (_this.props.continue(_this.state.promptText)) {\n\t _this.setState(Object.assign(_this.consoleInsert(\"\\n\"), {\n\t typer: \"\",\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t var command_1 = _this.state.promptText;\n\t var history_1 = _this.state.history;\n\t var log = _this.state.log;\n\t if (!history_1 || history_1[history_1.length - 1] != command_1) {\n\t history_1.push(command_1);\n\t }\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: command_1,\n\t message: []\n\t });\n\t _this.setState({\n\t acceptInput: false,\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t history: history_1,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, function () {\n\t _this.scrollToBottom();\n\t if (_this.props.handler) {\n\t _this.props.handler(command_1);\n\t }\n\t else {\n\t _this.return();\n\t }\n\t });\n\t }\n\t };\n\t this.previousHistory = function () {\n\t _this.rotateHistory(-1);\n\t };\n\t this.nextHistory = function () {\n\t _this.rotateHistory(1);\n\t };\n\t this.beginningOfHistory = function () {\n\t _this.rotateHistory(-_this.state.history.length);\n\t };\n\t this.endOfHistory = function () {\n\t _this.rotateHistory(_this.state.history.length);\n\t };\n\t this.triggerSearch = function () {\n\t if (_this.state.searchDirection == 0 /* Reverse */) {\n\t _this.reverseSearchHistory();\n\t }\n\t else {\n\t _this.forwardSearchHistory();\n\t }\n\t };\n\t this.reverseSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(0 /* Reverse */, true), {\n\t argument: \"(reverse-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 0 /* Reverse */,\n\t searchInit: true,\n\t argument: \"(reverse-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.forwardSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(1 /* Forward */, true), {\n\t argument: \"(forward-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 1 /* Forward */,\n\t searchInit: true,\n\t argument: \"(forward-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.clearScreen = function () {\n\t _this.setState({ log: [] });\n\t };\n\t this.nonIncrementalReverseSearchHistory = function () {\n\t // TODO\n\t };\n\t this.nonIncrementalForwardSearchHistory = function () {\n\t // TODO\n\t };\n\t this.historySearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySearchForward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchForward = function () {\n\t // TODO\n\t };\n\t this.yankNthArg = function () {\n\t // TODO\n\t };\n\t this.yankLastArg = function () {\n\t // TODO\n\t };\n\t // Commands for Changing Text\n\t this.deleteChar = function () {\n\t if (_this.state.point < _this.state.promptText.length) {\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.state.point + 1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.backwardDeleteChar = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchText.substring(0, _this.state.searchText.length - 1),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else if (_this.state.point > 0) {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t promptText: _this.state.promptText.substring(0, _this.state.point - 1)\n\t + _this.state.promptText.substring(_this.state.point),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t // Killing and Yanking\n\t this.killLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(0, _this.state.point));\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWholeLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point)\n\t + kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText);\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: '',\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point, _this.nextWord());\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point, _this.nextWord()));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.nextWord()),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(_this.previousWord(), _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.previousWord(), _this.state.point));\n\t }\n\t _this.setState({\n\t point: _this.previousWord(),\n\t promptText: _this.state.promptText.substring(0, _this.previousWord())\n\t + _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.yank = function () {\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[_this.state.killn]), {\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t };\n\t this.yankPop = function () {\n\t if (_this.state.lastCommand == 3 /* Yank */) {\n\t var killn = _this.rotateRing(1, _this.state.killn, _this.state.kill.length);\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[killn], _this.state.kill[_this.state.killn].length), {\n\t killn: killn,\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t // Numeric Arguments\n\t // Completing\n\t this.complete = function () {\n\t if (_this.props.complete) {\n\t // Split text and find current word\n\t var words = _this.state.promptText.split(\" \");\n\t var curr = 0;\n\t var idx = words[0].length;\n\t while (idx < _this.state.point && curr + 1 < words.length) {\n\t idx += words[++curr].length + 1;\n\t }\n\t var completions = _this.props.complete(words, curr, _this.state.promptText);\n\t if (completions.length == 1) {\n\t // Perform completion\n\t words[curr] = completions[0];\n\t var point = -1;\n\t for (var i = 0; i <= curr; i++) {\n\t point += words[i].length + 1;\n\t }\n\t _this.setState({\n\t point: point,\n\t promptText: words.join(\" \"),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else if (completions.length > 1) {\n\t // show completions\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: [{\n\t type: \"completion\",\n\t value: [completions.join(\"\\t\")],\n\t }]\n\t });\n\t _this.setState({\n\t currLabel: _this.nextLabel(),\n\t log: log,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t }\n\t };\n\t // Keyboard Macros\n\t // Miscellaneous\n\t this.prefixMeta = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t });\n\t }\n\t // TODO Meta prefixed state\n\t };\n\t this.cancelCommand = function () {\n\t if (_this.state.acceptInput) {\n\t _this.child.typer.value = \"\";\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: []\n\t });\n\t _this.setState({\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t _this.props.cancel();\n\t }\n\t };\n\t // Helper functions\n\t this.textInsert = function (insert, text, replace, point) {\n\t if (replace === void 0) { replace = 0; }\n\t if (point === void 0) { point = text.length; }\n\t return text.substring(0, point - replace) + insert + text.substring(point);\n\t };\n\t this.consoleInsert = function (insert, replace) {\n\t if (replace === void 0) { replace = 0; }\n\t var promptText = _this.textInsert(insert, _this.state.promptText, replace, _this.state.point);\n\t return {\n\t point: _this.movePoint(insert.length - replace, insert.length - replace + _this.state.promptText.length),\n\t promptText: promptText,\n\t restoreText: promptText,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t };\n\t this.movePoint = function (n, max) {\n\t if (max === void 0) { max = _this.state.promptText.length; }\n\t var pos = _this.state.point + n;\n\t if (pos < 0) {\n\t return 0;\n\t }\n\t if (pos > max) {\n\t return max;\n\t }\n\t else {\n\t return pos;\n\t }\n\t };\n\t this.rotateRing = function (n, ringn, ring, circular) {\n\t if (circular === void 0) { circular = true; }\n\t if (ring == 0)\n\t return 0;\n\t if (circular) {\n\t return (ring + (ringn + n) % ring) % ring;\n\t }\n\t else {\n\t ringn = ringn - n;\n\t if (ringn < 0) {\n\t return 0;\n\t }\n\t else if (ringn >= ring) {\n\t return ring;\n\t }\n\t else {\n\t return ringn;\n\t }\n\t }\n\t };\n\t this.rotateHistory = function (n) {\n\t var historyn = _this.rotateRing(n, _this.state.historyn, _this.state.history.length, false);\n\t if (historyn == 0) {\n\t _this.setState({\n\t point: _this.state.restoreText.length,\n\t promptText: _this.state.restoreText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t var promptText = _this.state.history[_this.state.history.length - historyn];\n\t _this.setState({\n\t point: promptText.length,\n\t promptText: promptText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.searchHistory = function (direction, next) {\n\t if (direction === void 0) { direction = _this.state.searchDirection; }\n\t if (next === void 0) { next = false; }\n\t var idx = _this.state.historyn;\n\t var inc = (direction == 0 /* Reverse */) ? 1 : -1;\n\t if (next) {\n\t idx = idx + inc;\n\t }\n\t for (; idx > 0 && idx <= _this.state.history.length; idx = idx + inc) {\n\t var entry = _this.state.history[_this.state.history.length - idx];\n\t var point = entry.indexOf(_this.state.searchText);\n\t if (point > -1) {\n\t return {\n\t point: point,\n\t promptText: entry,\n\t searchDirection: direction,\n\t searchInit: false,\n\t historyn: idx,\n\t };\n\t }\n\t }\n\t return {\n\t searchDirection: direction,\n\t searchInit: false,\n\t };\n\t };\n\t // DOM management\n\t this.scrollSemaphore = 0;\n\t this.scrollIfBottom = function () {\n\t if (_this.scrollSemaphore > 0 || _this.child.container.scrollTop == _this.child.container.scrollHeight - _this.child.container.offsetHeight) {\n\t _this.scrollSemaphore++;\n\t return _this.scrollIfBottomTrue;\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t this.scrollIfBottomTrue = function () {\n\t _this.scrollToBottom();\n\t _this.scrollSemaphore--;\n\t };\n\t this.scrollToBottom = function () {\n\t _this.child.container.scrollTop = _this.child.container.scrollHeight;\n\t var rect = _this.child.focus.getBoundingClientRect();\n\t if (rect.top < 0 || rect.left < 0 ||\n\t rect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t rect.right > (window.innerWidth || document.documentElement.clientWidth)) {\n\t _this.child.typer.scrollIntoView(false);\n\t }\n\t };\n\t this.nextLabel = function () {\n\t if (typeof _this.props.promptLabel === \"string\") {\n\t return _this.props.promptLabel;\n\t }\n\t else {\n\t return _this.props.promptLabel();\n\t }\n\t };\n\t this.state = {\n\t focus: false,\n\t acceptInput: true,\n\t typer: '',\n\t point: 0,\n\t currLabel: this.nextLabel(),\n\t promptText: '',\n\t restoreText: '',\n\t searchText: '',\n\t searchDirection: null,\n\t searchInit: false,\n\t log: [],\n\t history: [],\n\t historyn: 0,\n\t kill: [],\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t }\n\t // Component Lifecycle\n\t default_1.prototype.componentDidMount = function () {\n\t if (this.props.autofocus) {\n\t this.focus();\n\t }\n\t };\n\t default_1.prototype.nextWord = function () {\n\t // Find first alphanumeric char after first non-alphanumeric char\n\t var search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t if (search) {\n\t return search.index + this.state.point + 1;\n\t }\n\t else {\n\t return this.state.promptText.length;\n\t }\n\t };\n\t default_1.prototype.previousWord = function () {\n\t // Find first non-alphanumeric char after first alphanumeric char in reverse\n\t var search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0, this.state.point - 1));\n\t if (search) {\n\t return search.index + 1;\n\t }\n\t else {\n\t return 0;\n\t }\n\t };\n\t default_1.prototype.render = function () {\n\t var _this = this;\n\t return React.createElement(\"div\", {ref: function (ref) { return _this.child.container = ref; }, className: \"react-console-container \" + (this.state.focus ? \"react-console-focus\" : \"react-console-nofocus\"), onClick: this.focus}, this.props.welcomeMessage ?\n\t React.createElement(\"div\", {className: \"react-console-message react-console-welcome\"}, this.props.welcomeMessage)\n\t : null, this.state.log.map(function (val) {\n\t return [\n\t React.createElement(ConsolePrompt, {label: val.label, value: val.command})\n\t ].concat(val.message.map(function (val, idx) {\n\t return React.createElement(ConsoleMessage, {key: idx, type: val.type, value: val.value, isTable: val.isTable});\n\t }));\n\t }), this.state.acceptInput ?\n\t React.createElement(ConsolePrompt, {label: this.state.currLabel, value: this.state.promptText, point: this.state.point, argument: this.state.argument})\n\t : null, React.createElement(\"div\", {style: { overflow: \"hidden\", height: 1, width: 1 }}, React.createElement(\"textarea\", {ref: function (ref) { return _this.child.typer = ref; }, className: \"react-console-typer\", autoComplete: \"off\", autoCorrect: \"off\", autoCapitalize: \"off\", spellCheck: \"false\", style: { outline: \"none\",\n\t color: \"transparent\",\n\t backgroundColor: \"transparent\",\n\t border: \"none\",\n\t resize: \"none\",\n\t overflow: \"hidden\",\n\t }, onBlur: this.blur, onKeyDown: this.keyDown, onChange: this.change, onPaste: this.paste})), React.createElement(\"div\", {ref: function (ref) { return _this.child.focus = ref; }}, \" \"));\n\t };\n\t default_1.defaultProps = {\n\t promptLabel: '> ',\n\t continue: function () { return false; },\n\t cancel: function () { },\n\t };\n\t return default_1;\n\t}(React.Component));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = default_1;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// react-console.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 63847d5e79dcb07dca5f","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: string[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: string, cellIndex: number) => { \n\t\t\t\t\t\t\t\treturn ; })\n\t\t\t\t\t\t\t};\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}).join(\"\\n\")}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject) => {\n\t\tlet log = this.state.log;\n\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///react-console.min.js","webpack:///webpack/bootstrap 6620d61878a57e14e7ae","webpack:///./react-console.tsx","webpack:///external \"React\""],"names":["Console","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","__extends","this","d","b","__","constructor","hasOwnProperty","prototype","Object","create","React","ConsolePrompt","_super","apply","arguments","child","updateSemaphore","componentDidMount","idle","componentDidUpdate","_this","cursor","className","window","setTimeout","renderValue","props","point","value","length","createElement","ref","key","substring","render","label","argument","idx","lastIndexOf","defaultProps","Component","ConsoleTableHeader","headers","map","header","scope","ConsoleMessage","isTable","data","type","rows","row","index","cell","cellIndex","val","JSON","stringify","join","default_1","updateLastLog","messages","_i","log","state","push","command","message","indexToReplace","setState","scrollIfBottom","logX","logTable","tableData","return","acceptInput","currLabel","nextLabel","focus","getSelection","toString","typer","scrollToBottom","blur","keyDown","e","keyCodes","13","acceptLine","37","backwardChar","39","forwardChar","38","previousHistory","40","nextHistory","8","backwardDeleteChar","46","deleteChar","35","endOfLine","36","beginningOfLine","9","complete","27","prefixMeta","ctrlCodes","65","69","70","66","76","clearScreen","80","78","82","reverseSearchHistory","83","forwardSearchHistory","68","75","killLine","85","backwardKillLine","89","yank","67","cancelCommand","metaCodes","forwardWord","backwardWord","nonIncrementalReverseSearchHistory","nonIncrementalForwardSearchHistory","190","yankLastArg","killWord","backwardKillWord","yankPop","metaShiftCodes","188","beginningOfHistory","endOfHistory","189","metaCtrlCodes","yankNthArg","altKey","ctrlKey","keyCode","preventDefault","shiftKey","change","insert","replace","lastCommand","searchText","searchInit","textInsert","triggerSearch","assign","consoleInsert","paste","clipboardData","getData","promptText","movePoint","nextWord","previousWord","continue","command_1","history_1","history","restoreText","historyn","handler","rotateHistory","searchDirection","searchHistory","historySearchBackward","historySearchForward","historySubstringSearchBackward","historySubstringSearchForward","kill","unshift","killn","killWholeLine","rotateRing","words","split","curr","completions","i","cancel","text","n","max","pos","ringn","ring","circular","direction","next","inc","entry","indexOf","scrollSemaphore","container","scrollTop","scrollHeight","offsetHeight","scrollIfBottomTrue","rect","getBoundingClientRect","top","left","bottom","innerHeight","document","documentElement","clientHeight","right","innerWidth","clientWidth","scrollIntoView","promptLabel","autofocus","search","exec","onClick","welcomeMessage","concat","style","overflow","height","width","autoComplete","autoCorrect","autoCapitalize","spellCheck","outline","color","backgroundColor","border","resize","onBlur","onKeyDown","onChange","onPaste","defineProperty","default"],"mappings":"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","file":"react-console.min.js","sourcesContent":["var Console =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tvar __extends = (this && this.__extends) || function (d, b) {\n\t for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t};\n\tvar React = __webpack_require__(2);\n\t__webpack_require__(1);\n\tvar ConsolePrompt = (function (_super) {\n\t __extends(ConsolePrompt, _super);\n\t function ConsolePrompt() {\n\t _super.apply(this, arguments);\n\t this.child = {};\n\t // DOM Management\n\t this.updateSemaphore = 0;\n\t }\n\t // Component Lifecycle\n\t ConsolePrompt.prototype.componentDidMount = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.componentDidUpdate = function () {\n\t this.idle();\n\t };\n\t ConsolePrompt.prototype.idle = function () {\n\t var _this = this;\n\t // Blink cursor when idle\n\t if (this.child.cursor) {\n\t if (this.updateSemaphore == 0) {\n\t this.child.cursor.className = \"react-console-cursor\";\n\t }\n\t this.updateSemaphore++;\n\t window.setTimeout(function () {\n\t _this.updateSemaphore--;\n\t if (_this.updateSemaphore == 0 && _this.child.cursor) {\n\t _this.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t }\n\t }, 1000);\n\t }\n\t };\n\t ConsolePrompt.prototype.renderValue = function () {\n\t var _this = this;\n\t if (this.props.point < 0) {\n\t return [this.props.value];\n\t }\n\t else if (this.props.point == this.props.value.length) {\n\t return [this.props.value, React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, \" \")];\n\t }\n\t else {\n\t return [this.props.value.substring(0, this.props.point),\n\t React.createElement(\"span\", {ref: function (ref) { return _this.child.cursor = ref; }, key: \"cursor\", className: \"react-console-cursor\"}, this.props.value.substring(this.props.point, this.props.point + 1)),\n\t this.props.value.substring(this.props.point + 1)];\n\t }\n\t };\n\t ConsolePrompt.prototype.render = function () {\n\t var label = this.props.label;\n\t if (this.props.argument) {\n\t var idx = label.lastIndexOf(\"\\n\");\n\t if (idx >= 0) {\n\t label = label.substring(0, idx + 1);\n\t }\n\t else {\n\t label = '';\n\t }\n\t }\n\t return React.createElement(\"div\", {className: \"react-console-prompt-box\"}, React.createElement(\"span\", {className: \"react-console-prompt-label\"}, label), React.createElement(\"span\", {className: \"react-console-prompt-argument\"}, this.props.argument), React.createElement(\"span\", {className: \"react-console-prompt\"}, this.renderValue()));\n\t };\n\t ConsolePrompt.defaultProps = {\n\t point: -1,\n\t value: \"\",\n\t label: \"> \",\n\t argument: null,\n\t };\n\t return ConsolePrompt;\n\t}(React.Component));\n\tvar ConsoleTableHeader = function (props) {\n\t if (props.headers) {\n\t return React.createElement(\"thead\", null, React.createElement(\"tr\", null, props.headers.map(function (header) {\n\t return React.createElement(\"th\", {scope: \"col\", key: header}, header);\n\t })));\n\t }\n\t return null;\n\t};\n\tvar ConsoleMessage = function (props) {\n\t if (props.isTable) {\n\t var data = props.value[0];\n\t return React.createElement(\"div\", {className: \"react-console-message react-console-table\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, React.createElement(\"table\", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement(\"tbody\", null, data.rows && data.rows.map(function (row, index) {\n\t return React.createElement(\"tr\", {key: index}, row.map(function (cell, cellIndex) {\n\t return React.createElement(\"td\", {key: cellIndex}, cell);\n\t }));\n\t }))));\n\t }\n\t else {\n\t return React.createElement(\"div\", {className: \"react-console-message\" + (props.type ? \" react-console-message-\" + props.type : \"\")}, props.value.map(function (val) {\n\t if (typeof val == 'string') {\n\t return val;\n\t }\n\t else {\n\t return JSON.stringify(val);\n\t }\n\t }).join(\"\\n\"));\n\t }\n\t};\n\tConsoleMessage.defaultProps = {\n\t type: null,\n\t value: [],\n\t isTable: false\n\t};\n\t;\n\t;\n\tvar default_1 = (function (_super) {\n\t __extends(default_1, _super);\n\t function default_1(props) {\n\t var _this = this;\n\t _super.call(this, props);\n\t this.child = {};\n\t // Command API\n\t this.updateLastLog = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.state.log;\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t var indexToReplace = log[_this.state.log.length - 1].message.length > 0 ? log[_this.state.log.length - 1].message.length - 1 : 0;\n\t log[_this.state.log.length - 1].message[indexToReplace] = { value: messages };\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.log = function () {\n\t var messages = [];\n\t for (var _i = 0; _i < arguments.length; _i++) {\n\t messages[_i - 0] = arguments[_i];\n\t }\n\t var log = _this.state.log;\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t log[_this.state.log.length - 1].message.push({ value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logX = function (type) {\n\t var messages = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t messages[_i - 1] = arguments[_i];\n\t }\n\t var log = _this.state.log;\n\t if (!log.length) {\n\t log.push({ label: '', command: '', message: [] });\n\t }\n\t log[_this.state.log.length - 1].message.push({ type: type, value: messages });\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.logTable = function (tableData, type) {\n\t var log = _this.state.log;\n\t if (type) {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, type: type, value: [tableData] });\n\t }\n\t else {\n\t log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] });\n\t }\n\t _this.setState({\n\t log: log,\n\t }, _this.scrollIfBottom());\n\t };\n\t this.return = function () {\n\t _this.setState({\n\t acceptInput: true,\n\t currLabel: _this.nextLabel(),\n\t }, _this.scrollIfBottom());\n\t };\n\t // Event Handlers\n\t this.focus = function () {\n\t if (!window.getSelection().toString()) {\n\t _this.child.typer.focus();\n\t _this.setState({ focus: true }, _this.scrollToBottom);\n\t }\n\t };\n\t this.blur = function () {\n\t _this.setState({ focus: false });\n\t };\n\t this.keyDown = function (e) {\n\t var keyCodes = {\n\t // return\n\t 13: _this.acceptLine,\n\t // left\n\t 37: _this.backwardChar,\n\t // right\n\t 39: _this.forwardChar,\n\t // up\n\t 38: _this.previousHistory,\n\t // down\n\t 40: _this.nextHistory,\n\t // backspace\n\t 8: _this.backwardDeleteChar,\n\t // delete\n\t 46: _this.deleteChar,\n\t // end\n\t 35: _this.endOfLine,\n\t // start\n\t 36: _this.beginningOfLine,\n\t // tab\n\t 9: _this.complete,\n\t // esc\n\t 27: _this.prefixMeta,\n\t };\n\t var ctrlCodes = {\n\t // C-a\n\t 65: _this.beginningOfLine,\n\t // C-e\n\t 69: _this.endOfLine,\n\t // C-f\n\t 70: _this.forwardChar,\n\t // C-b\n\t 66: _this.backwardChar,\n\t // C-l\n\t 76: _this.clearScreen,\n\t // C-p\n\t 80: _this.previousHistory,\n\t // C-n\n\t 78: _this.nextHistory,\n\t // C-r\n\t 82: _this.reverseSearchHistory,\n\t // C-s\n\t 83: _this.forwardSearchHistory,\n\t // C-d\n\t 68: _this.deleteChar,\n\t // C-q TODO\n\t //81: this.quotedInsert,\n\t // C-v TODO\n\t //86: this.quotedInsert,\n\t // C-t TODO\n\t //84: this.transposeChars,\n\t // C-k\n\t 75: _this.killLine,\n\t // C-u\n\t 85: _this.backwardKillLine,\n\t // C-y TODO\n\t 89: _this.yank,\n\t // C-c\n\t 67: _this.cancelCommand,\n\t };\n\t var ctrlXCodes = {\n\t // C-x Rubout\n\t 8: _this.backwardKillLine,\n\t };\n\t var ctrlShiftCodes = {};\n\t var metaCodes = {\n\t // M-f\n\t 70: _this.forwardWord,\n\t // M-b\n\t 66: _this.backwardWord,\n\t // M-p\n\t 80: _this.nonIncrementalReverseSearchHistory,\n\t // M-n\n\t 78: _this.nonIncrementalForwardSearchHistory,\n\t // M-.\n\t 190: _this.yankLastArg,\n\t // M-TAB TODO\n\t //9: this.tabInsert,\n\t // M-t TODO\n\t //84: this.transposeWords,\n\t // M-u TODO\n\t //85: this.upcaseWord,\n\t // M-l TODO\n\t //76: this.downcaseWord,\n\t // M-c TODO\n\t //67: this.capitalizeWord,\n\t // M-d\n\t 68: _this.killWord,\n\t // M-backspace\n\t 8: _this.backwardKillWord,\n\t // M-w TODO\n\t //87: this.unixWordRubout,\n\t // M-\\ TODO\n\t //220: this.deleteHorizontalSpace,\n\t // M-y\n\t 89: _this.yankPop,\n\t };\n\t var metaShiftCodes = {\n\t // M-<\n\t 188: _this.beginningOfHistory,\n\t // M->\n\t 190: _this.endOfHistory,\n\t // M-_\n\t 189: _this.yankLastArg,\n\t };\n\t var metaCtrlCodes = {\n\t // M-C-y\n\t 89: _this.yankNthArg,\n\t };\n\t if (_this.state.acceptInput) {\n\t if (e.altKey) {\n\t if (e.ctrlKey) {\n\t if (e.keyCode in metaCtrlCodes) {\n\t metaCtrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.shiftKey) {\n\t if (e.keyCode in metaShiftCodes) {\n\t metaShiftCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t else if (e.keyCode in metaCodes) {\n\t metaCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t e.preventDefault();\n\t }\n\t else if (e.ctrlKey) {\n\t if (e.keyCode in ctrlCodes) {\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t e.preventDefault();\n\t }\n\t else if (e.keyCode in keyCodes) {\n\t keyCodes[e.keyCode]();\n\t e.preventDefault();\n\t }\n\t }\n\t };\n\t this.change = function () {\n\t var idx = 0;\n\t for (; idx < _this.state.typer.length && idx < _this.child.typer.value.length; idx++) {\n\t if (_this.state.typer[idx] != _this.child.typer.value[idx]) {\n\t break;\n\t }\n\t }\n\t var insert = _this.child.typer.value.substring(idx);\n\t var replace = _this.state.typer.length - idx;\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText, replace),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert, replace), {\n\t typer: _this.child.typer.value,\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t this.paste = function (e) {\n\t var insert = e.clipboardData.getData('text');\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchInit ? insert : _this.textInsert(insert, _this.state.searchText),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else {\n\t _this.setState(Object.assign(_this.consoleInsert(insert), {\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t e.preventDefault();\n\t };\n\t // Commands for Moving\n\t this.beginningOfLine = function () {\n\t _this.setState({\n\t point: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.endOfLine = function () {\n\t _this.setState({\n\t point: _this.state.promptText.length,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardChar = function () {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.forwardWord = function () {\n\t _this.setState({\n\t point: _this.nextWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardWord = function () {\n\t _this.setState({\n\t point: _this.previousWord(),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t };\n\t // Commands for Manipulating the History\n\t this.acceptLine = function () {\n\t _this.child.typer.value = \"\";\n\t if (_this.props.continue(_this.state.promptText)) {\n\t _this.setState(Object.assign(_this.consoleInsert(\"\\n\"), {\n\t typer: \"\",\n\t lastCommand: 0 /* Default */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t var command_1 = _this.state.promptText;\n\t var history_1 = _this.state.history;\n\t var log = _this.state.log;\n\t if (!history_1 || history_1[history_1.length - 1] != command_1) {\n\t history_1.push(command_1);\n\t }\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: command_1,\n\t message: []\n\t });\n\t _this.setState({\n\t acceptInput: false,\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t history: history_1,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, function () {\n\t _this.scrollToBottom();\n\t if (_this.props.handler) {\n\t _this.props.handler(command_1);\n\t }\n\t else {\n\t _this.return();\n\t }\n\t });\n\t }\n\t };\n\t this.previousHistory = function () {\n\t _this.rotateHistory(-1);\n\t };\n\t this.nextHistory = function () {\n\t _this.rotateHistory(1);\n\t };\n\t this.beginningOfHistory = function () {\n\t _this.rotateHistory(-_this.state.history.length);\n\t };\n\t this.endOfHistory = function () {\n\t _this.rotateHistory(_this.state.history.length);\n\t };\n\t this.triggerSearch = function () {\n\t if (_this.state.searchDirection == 0 /* Reverse */) {\n\t _this.reverseSearchHistory();\n\t }\n\t else {\n\t _this.forwardSearchHistory();\n\t }\n\t };\n\t this.reverseSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(0 /* Reverse */, true), {\n\t argument: \"(reverse-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 0 /* Reverse */,\n\t searchInit: true,\n\t argument: \"(reverse-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.forwardSearchHistory = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState(Object.assign(_this.searchHistory(1 /* Forward */, true), {\n\t argument: \"(forward-i-search)`\" + _this.state.searchText + \"': \",\n\t lastCommand: 1 /* Search */,\n\t }), _this.scrollToBottom);\n\t }\n\t else {\n\t _this.setState({\n\t searchDirection: 1 /* Forward */,\n\t searchInit: true,\n\t argument: \"(forward-i-search)`': \",\n\t lastCommand: 1 /* Search */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.clearScreen = function () {\n\t _this.setState({ log: [] });\n\t };\n\t this.nonIncrementalReverseSearchHistory = function () {\n\t // TODO\n\t };\n\t this.nonIncrementalForwardSearchHistory = function () {\n\t // TODO\n\t };\n\t this.historySearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySearchForward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchBackward = function () {\n\t // TODO\n\t };\n\t this.historySubstringSearchForward = function () {\n\t // TODO\n\t };\n\t this.yankNthArg = function () {\n\t // TODO\n\t };\n\t this.yankLastArg = function () {\n\t // TODO\n\t };\n\t // Commands for Changing Text\n\t this.deleteChar = function () {\n\t if (_this.state.point < _this.state.promptText.length) {\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.state.point + 1),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.backwardDeleteChar = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t searchText: _this.state.searchText.substring(0, _this.state.searchText.length - 1),\n\t typer: _this.child.typer.value,\n\t }, _this.triggerSearch);\n\t }\n\t else if (_this.state.point > 0) {\n\t _this.setState({\n\t point: _this.movePoint(-1),\n\t promptText: _this.state.promptText.substring(0, _this.state.point - 1)\n\t + _this.state.promptText.substring(_this.state.point),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t // Killing and Yanking\n\t this.killLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(0, _this.state.point));\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWholeLine = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(0, _this.state.point)\n\t + kill[0] + _this.state.promptText.substring(_this.state.point);\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText);\n\t }\n\t _this.setState({\n\t point: 0,\n\t promptText: '',\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.killWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = kill[0] + _this.state.promptText.substring(_this.state.point, _this.nextWord());\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.state.point, _this.nextWord()));\n\t }\n\t _this.setState({\n\t promptText: _this.state.promptText.substring(0, _this.state.point)\n\t + _this.state.promptText.substring(_this.nextWord()),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.backwardKillWord = function () {\n\t var kill = _this.state.kill;\n\t if (_this.state.lastCommand == 2 /* Kill */) {\n\t kill[0] = _this.state.promptText.substring(_this.previousWord(), _this.state.point) + kill[0];\n\t }\n\t else {\n\t kill.unshift(_this.state.promptText.substring(_this.previousWord(), _this.state.point));\n\t }\n\t _this.setState({\n\t point: _this.previousWord(),\n\t promptText: _this.state.promptText.substring(0, _this.previousWord())\n\t + _this.state.promptText.substring(_this.state.point),\n\t kill: kill,\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 2 /* Kill */,\n\t }, _this.scrollToBottom);\n\t };\n\t this.yank = function () {\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[_this.state.killn]), {\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t };\n\t this.yankPop = function () {\n\t if (_this.state.lastCommand == 3 /* Yank */) {\n\t var killn = _this.rotateRing(1, _this.state.killn, _this.state.kill.length);\n\t _this.setState(Object.assign(_this.consoleInsert(_this.state.kill[killn], _this.state.kill[_this.state.killn].length), {\n\t killn: killn,\n\t lastCommand: 3 /* Yank */,\n\t }), _this.scrollToBottom);\n\t }\n\t };\n\t // Numeric Arguments\n\t // Completing\n\t this.complete = function () {\n\t if (_this.props.complete) {\n\t // Split text and find current word\n\t var words = _this.state.promptText.split(\" \");\n\t var curr = 0;\n\t var idx = words[0].length;\n\t while (idx < _this.state.point && curr + 1 < words.length) {\n\t idx += words[++curr].length + 1;\n\t }\n\t var completions = _this.props.complete(words, curr, _this.state.promptText);\n\t if (completions.length == 1) {\n\t // Perform completion\n\t words[curr] = completions[0];\n\t var point = -1;\n\t for (var i = 0; i <= curr; i++) {\n\t point += words[i].length + 1;\n\t }\n\t _this.setState({\n\t point: point,\n\t promptText: words.join(\" \"),\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else if (completions.length > 1) {\n\t // show completions\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: [{\n\t type: \"completion\",\n\t value: [completions.join(\"\\t\")],\n\t }]\n\t });\n\t _this.setState({\n\t currLabel: _this.nextLabel(),\n\t log: log,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t }\n\t };\n\t // Keyboard Macros\n\t // Miscellaneous\n\t this.prefixMeta = function () {\n\t if (_this.state.lastCommand == 1 /* Search */) {\n\t _this.setState({\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t });\n\t }\n\t // TODO Meta prefixed state\n\t };\n\t this.cancelCommand = function () {\n\t if (_this.state.acceptInput) {\n\t _this.child.typer.value = \"\";\n\t var log = _this.state.log;\n\t log.push({\n\t label: _this.state.currLabel,\n\t command: _this.state.promptText,\n\t message: []\n\t });\n\t _this.setState({\n\t typer: \"\",\n\t point: 0,\n\t promptText: \"\",\n\t restoreText: \"\",\n\t log: log,\n\t historyn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t _this.props.cancel();\n\t }\n\t };\n\t // Helper functions\n\t this.textInsert = function (insert, text, replace, point) {\n\t if (replace === void 0) { replace = 0; }\n\t if (point === void 0) { point = text.length; }\n\t return text.substring(0, point - replace) + insert + text.substring(point);\n\t };\n\t this.consoleInsert = function (insert, replace) {\n\t if (replace === void 0) { replace = 0; }\n\t var promptText = _this.textInsert(insert, _this.state.promptText, replace, _this.state.point);\n\t return {\n\t point: _this.movePoint(insert.length - replace, insert.length - replace + _this.state.promptText.length),\n\t promptText: promptText,\n\t restoreText: promptText,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t };\n\t this.movePoint = function (n, max) {\n\t if (max === void 0) { max = _this.state.promptText.length; }\n\t var pos = _this.state.point + n;\n\t if (pos < 0) {\n\t return 0;\n\t }\n\t if (pos > max) {\n\t return max;\n\t }\n\t else {\n\t return pos;\n\t }\n\t };\n\t this.rotateRing = function (n, ringn, ring, circular) {\n\t if (circular === void 0) { circular = true; }\n\t if (ring == 0)\n\t return 0;\n\t if (circular) {\n\t return (ring + (ringn + n) % ring) % ring;\n\t }\n\t else {\n\t ringn = ringn - n;\n\t if (ringn < 0) {\n\t return 0;\n\t }\n\t else if (ringn >= ring) {\n\t return ring;\n\t }\n\t else {\n\t return ringn;\n\t }\n\t }\n\t };\n\t this.rotateHistory = function (n) {\n\t var historyn = _this.rotateRing(n, _this.state.historyn, _this.state.history.length, false);\n\t if (historyn == 0) {\n\t _this.setState({\n\t point: _this.state.restoreText.length,\n\t promptText: _this.state.restoreText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t else {\n\t var promptText = _this.state.history[_this.state.history.length - historyn];\n\t _this.setState({\n\t point: promptText.length,\n\t promptText: promptText,\n\t historyn: historyn,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t }, _this.scrollToBottom);\n\t }\n\t };\n\t this.searchHistory = function (direction, next) {\n\t if (direction === void 0) { direction = _this.state.searchDirection; }\n\t if (next === void 0) { next = false; }\n\t var idx = _this.state.historyn;\n\t var inc = (direction == 0 /* Reverse */) ? 1 : -1;\n\t if (next) {\n\t idx = idx + inc;\n\t }\n\t for (; idx > 0 && idx <= _this.state.history.length; idx = idx + inc) {\n\t var entry = _this.state.history[_this.state.history.length - idx];\n\t var point = entry.indexOf(_this.state.searchText);\n\t if (point > -1) {\n\t return {\n\t point: point,\n\t promptText: entry,\n\t searchDirection: direction,\n\t searchInit: false,\n\t historyn: idx,\n\t };\n\t }\n\t }\n\t return {\n\t searchDirection: direction,\n\t searchInit: false,\n\t };\n\t };\n\t // DOM management\n\t this.scrollSemaphore = 0;\n\t this.scrollIfBottom = function () {\n\t if (_this.scrollSemaphore > 0 || _this.child.container.scrollTop == _this.child.container.scrollHeight - _this.child.container.offsetHeight) {\n\t _this.scrollSemaphore++;\n\t return _this.scrollIfBottomTrue;\n\t }\n\t else {\n\t return null;\n\t }\n\t };\n\t this.scrollIfBottomTrue = function () {\n\t _this.scrollToBottom();\n\t _this.scrollSemaphore--;\n\t };\n\t this.scrollToBottom = function () {\n\t _this.child.container.scrollTop = _this.child.container.scrollHeight;\n\t var rect = _this.child.focus.getBoundingClientRect();\n\t if (rect.top < 0 || rect.left < 0 ||\n\t rect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t rect.right > (window.innerWidth || document.documentElement.clientWidth)) {\n\t _this.child.typer.scrollIntoView(false);\n\t }\n\t };\n\t this.nextLabel = function () {\n\t if (typeof _this.props.promptLabel === \"string\") {\n\t return _this.props.promptLabel;\n\t }\n\t else {\n\t return _this.props.promptLabel();\n\t }\n\t };\n\t this.state = {\n\t focus: false,\n\t acceptInput: true,\n\t typer: '',\n\t point: 0,\n\t currLabel: this.nextLabel(),\n\t promptText: '',\n\t restoreText: '',\n\t searchText: '',\n\t searchDirection: null,\n\t searchInit: false,\n\t log: [],\n\t history: [],\n\t historyn: 0,\n\t kill: [],\n\t killn: 0,\n\t argument: null,\n\t lastCommand: 0 /* Default */,\n\t };\n\t }\n\t // Component Lifecycle\n\t default_1.prototype.componentDidMount = function () {\n\t if (this.props.autofocus) {\n\t this.focus();\n\t }\n\t };\n\t default_1.prototype.nextWord = function () {\n\t // Find first alphanumeric char after first non-alphanumeric char\n\t var search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t if (search) {\n\t return search.index + this.state.point + 1;\n\t }\n\t else {\n\t return this.state.promptText.length;\n\t }\n\t };\n\t default_1.prototype.previousWord = function () {\n\t // Find first non-alphanumeric char after first alphanumeric char in reverse\n\t var search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0, this.state.point - 1));\n\t if (search) {\n\t return search.index + 1;\n\t }\n\t else {\n\t return 0;\n\t }\n\t };\n\t default_1.prototype.render = function () {\n\t var _this = this;\n\t return React.createElement(\"div\", {ref: function (ref) { return _this.child.container = ref; }, className: \"react-console-container \" + (this.state.focus ? \"react-console-focus\" : \"react-console-nofocus\"), onClick: this.focus}, this.props.welcomeMessage ?\n\t React.createElement(\"div\", {className: \"react-console-message react-console-welcome\"}, this.props.welcomeMessage)\n\t : null, this.state.log.map(function (val) {\n\t return [\n\t React.createElement(ConsolePrompt, {label: val.label, value: val.command})\n\t ].concat(val.message.map(function (val, idx) {\n\t return React.createElement(ConsoleMessage, {key: idx, type: val.type, value: val.value, isTable: val.isTable});\n\t }));\n\t }), this.state.acceptInput ?\n\t React.createElement(ConsolePrompt, {label: this.state.currLabel, value: this.state.promptText, point: this.state.point, argument: this.state.argument})\n\t : null, React.createElement(\"div\", {style: { overflow: \"hidden\", height: 1, width: 1 }}, React.createElement(\"textarea\", {ref: function (ref) { return _this.child.typer = ref; }, className: \"react-console-typer\", autoComplete: \"off\", autoCorrect: \"off\", autoCapitalize: \"off\", spellCheck: \"false\", style: { outline: \"none\",\n\t color: \"transparent\",\n\t backgroundColor: \"transparent\",\n\t border: \"none\",\n\t resize: \"none\",\n\t overflow: \"hidden\",\n\t }, onBlur: this.blur, onKeyDown: this.keyDown, onChange: this.change, onPaste: this.paste})), React.createElement(\"div\", {ref: function (ref) { return _this.child.focus = ref; }}, \" \"));\n\t };\n\t default_1.defaultProps = {\n\t promptLabel: '> ',\n\t continue: function () { return false; },\n\t cancel: function () { },\n\t };\n\t return default_1;\n\t}(React.Component));\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.default = default_1;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// react-console.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 6620d61878a57e14e7ae","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: string[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: string, cellIndex: number) => { \n\t\t\t\t\t\t\t\treturn ; })\n\t\t\t\t\t\t\t};\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}).join(\"\\n\")}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.state.log;\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/dist.tar.gz b/dist/dist.tar.gz index 7ed2c9163330612396b920151b0f645a6aea9c18..31cee259bc2a19b7cb2c2ff9387e286c7cbffdb7 100644 GIT binary patch delta 23655 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\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: string[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: string, cellIndex: number) => { \n\t\t\t\t\t\t\t\treturn ; })\n\t\t\t\t\t\t\t};\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}).join(\"\\n\")}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject) => {\n\t\tlet log = this.state.log;\n\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 9628d64841ca63a4f97f","webpack:///./react-console.tsx","webpack:///external \"React\"","webpack:///./react-console.scss"],"names":[],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,aAAY,CAAC;;;;;;AAEb,KAAY,KAAK,uBAAM,CAAO,CAAC;AAE/B,qBAAO,CAAsB,CAAC;AAQ9B;KAA4B,iCAAsC;KAAlE;SAA4B,8BAAsC;SAOjE,UAAK,GAED,EAAE,CAAC;SAQP,iBAAiB;SACjB,oBAAe,GAAW,CAAC,CAAC;KA2C7B,CAAC;KAnDA,sBAAsB;KACtB,yCAAiB,GAAjB;SACC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb,CAAC;KACD,0CAAkB,GAAlB;SACC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb,CAAC;KAGD,4BAAI,GAAJ;SAAA,iBAcC;SAbA,yBAAyB;SACzB,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACtB,EAAE,EAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;aACtD,CAAC;aACD,IAAI,CAAC,eAAe,EAAE,CAAC;aACvB,MAAM,CAAC,UAAU,CAAE;iBAClB,KAAI,CAAC,eAAe,EAAE,CAAC;iBACvB,EAAE,EAAC,KAAI,CAAC,eAAe,IAAI,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;qBACnD,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,gDAAgD,CAAC;iBAChF,CAAC;aACF,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC;KACF,CAAC;KACD,mCAAW,GAAX;SAAA,iBAUC;SATA,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3B,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACxD,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,qBAAC,IAAI,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAvB,CAAwB,EAAC,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,OAAc,CAAC,CAAC;SAClI,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBACrD,qBAAC,IAAI,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAvB,CAAwB,EAAC,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,GAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAE,CAAO;iBACjK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC;SAClD,CAAC;KACF,CAAC;KACD,8BAAM,GAAN;SACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SAC7B,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;aACxB,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAClC,EAAE,EAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAC,CAAC,CAAC,CAAC;aACnC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAK,GAAG,EAAE,CAAC;aACZ,CAAC;SACF,CAAC;SACD,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAC,0BAA0B,GAC/C,qBAAC,IAAI,IAAC,SAAS,EAAC,4BAA4B,GAAG,KAAO,CAAO,EAC7D,qBAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,GAAG,IAAI,CAAC,KAAK,CAAC,QAAU,CAAO,EAC9E,qBAAC,IAAI,IAAC,SAAS,EAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,EAAI,CAAO,CAC/D,CAAC;KACR,CAAC;KA3DM,0BAAY,GAAuB;SACzC,KAAK,EAAE,CAAC,CAAC;SACT,KAAK,EAAE,EAAE;SACT,KAAK,EAAE,IAAI;SACX,QAAQ,EAAE,IAAI;MACd;KAuDF,oBAAC;AAAD,EAAC,CA7D2B,KAAK,CAAC,SAAS,GA6D1C;AAKD,KAAI,kBAAkB,GAAuC,UAAS,KAA8B;KACnG,EAAE,EAAC,KAAK,CAAC,OAAO,CAAC,EAAC;SACjB,MAAM,CAAC,qBAAC,KAAK,SACV,qBAAC,EAAE,SACD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAc;aACjC,MAAM,CAAC,qBAAC,EAAE,IAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAG,MAAQ,GAAG,MAAQ,CAAK,CAAC;SACvD,CAAC,CAAE,CACC,CACE;KACX,CAAC;KACD,MAAM,CAAC,IAAI,CAAC;AACb,EAAC;AAOD,KAAI,cAAc,GAAmC,UAAS,KAA0B;KACvF,EAAE,EAAC,KAAK,CAAC,OAAO,CAAC,EAAC;SACjB,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC5B,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAE,2CAA2C,GAAG,CAAC,KAAK,CAAC,IAAI,GAAC,yBAAyB,GAAC,KAAK,CAAC,IAAI,GAAC,EAAE,CAAE,GACzH,qBAAC,KAAK,SACL,oBAAC,kBAAkB,GAAC,OAAO,EAAE,IAAI,CAAC,OAAQ,EAAG,EAC7C,qBAAC,KAAK,SACJ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,GAAa,EAAE,KAAa;aACxD,MAAM,CAAC,qBAAC,EAAE,IAAC,GAAG,EAAE,KAAM,GAAE,GAAG,CAAC,GAAG,CAAC,UAAC,IAAY,EAAE,SAAiB;iBAC9D,MAAM,CAAC,qBAAC,EAAE,IAAC,GAAG,EAAE,SAAU,GAAE,IAAK,CAAK,CAAC;aAAC,CAAC,CACzC,CAAK,CAAC;SACT,CAAC,CAAE,CACI,CACD,CACH,CAAC;KACR,CAAC;KAAA,IAAI,EAAC;SACL,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAE,uBAAuB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAC,yBAAyB,GAAC,KAAK,CAAC,IAAI,GAAC,EAAE,CAAE,GACpG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,GAAQ;aACzB,EAAE,EAAC,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;iBAC3B,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAC5B,CAAC;SACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,CACT,CAAC;KACR,CAAC;AACF,EAAC;AACD,eAAc,CAAC,YAAY,GAAG;KAC7B,IAAI,EAAE,IAAI;KACV,KAAK,EAAE,EAAE;KACT,OAAO,EAAE,KAAK;EACd;AAgCA,EAAC;AAuBD,EAAC;AACF;KAA6B,6BAA0C;KACtE,mBAAY,KAAmB;SADhC,iBA43BC;SA13BC,kBAAM,KAAK,CAAC,CAAC;SA0Bd,UAAK,GAID,EAAE,CAAC;SACP,cAAc;SACd,kBAAa,GAAG;aAAC,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aAClC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,IAAI,cAAc,GAAG,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;aAC3H,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;aACzE,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,QAAG,GAAG;aAAC,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aACxB,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;aAC7D,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,SAAI,GAAG,UAAC,IAAY;aAAE,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aACvC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;aACzE,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,aAAQ,GAAG,UAAC,SAA6B,EAAE,IAAa;aACvD,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,IAAI,CAAC,EAAC;iBACR,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;aAC5F,CAAC;aAAA,IAAI,EAAC;iBACL,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;aAChF,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,WAAM,GAAG;aACR,KAAI,CAAC,QAAQ,CAAC;iBACb,WAAW,EAAE,IAAI;iBACjB,SAAS,EAAE,KAAI,CAAC,SAAS,EAAE;cAC3B,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SAOD,iBAAiB;SACjB,UAAK,GAAG;aACP,EAAE,EAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACtC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;iBACzB,KAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aACtD,CAAC;SACF,CAAC;SACD,SAAI,GAAG;aACN,KAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;SACjC,CAAC;SACD,YAAO,GAAG,UAAC,CAAgB;aAI1B,IAAI,QAAQ,GAAW;iBACtB,SAAS;iBACT,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,OAAO;iBACP,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,KAAK;iBACL,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,OAAO;iBACP,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,YAAY;iBACZ,CAAC,EAAG,KAAI,CAAC,kBAAkB;iBAC3B,SAAS;iBACT,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,SAAS;iBAClB,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,CAAC,EAAE,KAAI,CAAC,QAAQ;iBAChB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,UAAU;cACnB,CAAC;aACF,IAAI,SAAS,GAAW;iBACvB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,SAAS;iBAClB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,oBAAoB;iBAC7B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,oBAAoB;iBAC7B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,QAAQ;iBACjB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,gBAAgB;iBACzB,WAAW;iBACX,EAAE,EAAE,KAAI,CAAC,IAAI;iBACb,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,aAAa;cAOtB,CAAC;aACF,IAAI,UAAU,GAAW;iBACxB,aAAa;iBACb,CAAC,EAAE,KAAI,CAAC,gBAAgB;cAWxB,CAAC;aACF,IAAI,cAAc,GAAW,EAK5B,CAAC;aACF,IAAI,SAAS,GAAW;iBACvB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,kCAAkC;iBAC3C,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,kCAAkC;iBAC3C,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,WAAW;iBACrB,aAAa;iBACb,oBAAoB;iBACpB,WAAW;iBACX,0BAA0B;iBAC1B,WAAW;iBACX,sBAAsB;iBACtB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,QAAQ;iBACjB,cAAc;iBACd,CAAC,EAAE,KAAI,CAAC,gBAAgB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,WAAW;iBACX,kCAAkC;iBAClC,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,OAAO;cA6BhB,CAAC;aACF,IAAI,cAAc,GAAW;iBAC5B,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,kBAAkB;iBAC5B,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,YAAY;iBACtB,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,WAAW;cAKrB;aACD,IAAI,aAAa,GAAW;iBAC3B,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,UAAU;cAKnB,CAAC;aACF,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC3B,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;qBACd,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;yBACf,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC;6BAChC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;6BAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;yBACpB,CAAC;qBACF,CAAC;qBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;yBACvB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC;6BACjC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;6BAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;yBACpB,CAAC;qBACF,CAAC;qBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;yBACnC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;yBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;qBACpB,CAAC;qBACD,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;qBACtB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;yBAC5B,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;yBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;qBACpB,CAAC;qBACD,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;qBAClC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;qBACtB,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;aACF,CAAC;SACF,CAAC;SACD,WAAM,GAAG;aACR,IAAI,GAAG,GAAG,CAAC,CAAC;aACZ,GAAG,EAAC,EAAC,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;iBAClF,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACzD,KAAK,CAAC;iBACP,CAAC;aACF,CAAC;aACD,IAAI,MAAM,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aACnD,IAAI,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;aAC5C,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,GAAC,MAAM,GAAC,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;qBAChG,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAC;qBACnC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;qBAC7B,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;SACF,CAAC;SACD,UAAK,GAAG,UAAC,CAAiB;aACzB,IAAI,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC7C,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,GAAC,MAAM,GAAC,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC;qBACvF,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAC;qBAC1B,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aACD,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB,CAAC;SACD,sBAAsB;SACtB,oBAAe,GAAG;aACjB,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,cAAS,GAAG;aACX,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;iBACnC,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iBACxB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACzB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,QAAQ,EAAE;iBACtB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,YAAY,EAAE;iBAC1B,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,wCAAwC;SACxC,eAAU,GAAG;aACZ,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;aAC5B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBAC/C,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC;qBACxB,KAAK,EAAE,EAAE;qBACT,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,SAAO,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC;iBACpC,IAAI,SAAO,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC;iBACjC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACzB,EAAE,EAAC,CAAC,SAAO,IAAI,SAAO,CAAC,SAAO,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,SAAO,CAAC,CAAC,CAAC;qBACrD,SAAO,CAAC,IAAI,CAAC,SAAO,CAAC,CAAC;iBACvB,CAAC;iBACD,GAAG,CAAC,IAAI,CAAC;qBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;qBAC3B,OAAO,EAAE,SAAO;qBAChB,OAAO,EAAE,EAAE;kBACX,CAAC,CAAC;iBACH,KAAI,CAAC,QAAQ,CAAC;qBACb,WAAW,EAAE,KAAK;qBAClB,KAAK,EAAE,EAAE;qBACT,KAAK,EAAE,CAAC;qBACR,UAAU,EAAE,EAAE;qBACd,WAAW,EAAE,EAAE;qBACf,GAAG,EAAE,GAAG;qBACR,OAAO,EAAE,SAAO;qBAChB,QAAQ,EAAE,CAAC;qBACX,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE;qBACF,KAAI,CAAC,cAAc,EAAE,CAAC;qBACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;yBACvB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAO,CAAC;qBAC5B,CAAC;qBAAC,IAAI,CAAC,CAAC;yBACP,KAAI,CAAC,MAAM,EAAE,CAAC;qBACf,CAAC;iBACF,CAAC,CAAC,CAAC;aACJ,CAAC;SACF,CAAC;SACD,oBAAe,GAAG;aACjB,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACvB,CAAC;SACD,uBAAkB,GAAG;aACpB,KAAI,CAAC,aAAa,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAChD,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/C,CAAC;SACD,kBAAa,GAAG;aACf,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,eAAe,IAAI,eAAuB,CAAC,CAAC,CAAC;iBAC1D,KAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B,CAAC;SACF,CAAC;SACD,yBAAoB,GAAG;aACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,eAAuB,EAAE,IAAI,CAAC,EAAC;qBACjD,QAAQ,EAAE,wBAAuB,KAAI,CAAC,KAAK,CAAC,UAAU,QAAK;qBAC3D,WAAW,EAAE,cAAqB;kBAClC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC;qBACb,eAAe,EAAE,eAAuB;qBACxC,UAAU,EAAE,IAAI;qBAChB,QAAQ,EAAE,wBAAyB;qBACnC,WAAW,EAAE,cAAqB;kBAClC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,yBAAoB,GAAG;aACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,eAAuB,EAAE,IAAI,CAAC,EAAC;qBACjD,QAAQ,EAAE,wBAAuB,KAAI,CAAC,KAAK,CAAC,UAAU,QAAK;qBAC3D,WAAW,EAAE,cAAqB;kBAClC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC;qBACb,eAAe,EAAE,eAAuB;qBACxC,UAAU,EAAE,IAAI;qBAChB,QAAQ,EAAE,wBAAyB;qBACnC,WAAW,EAAE,cAAqB;kBAClC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;SAC5B,CAAC;SACD,uCAAkC,GAAG;aACpC,OAAO;SACR,CAAC;SACD,uCAAkC,GAAG;aACpC,OAAO;SACR,CAAC;SACD,0BAAqB,GAAG;aACvB,OAAO;SACR,CAAC;SACD,yBAAoB,GAAG;aACtB,OAAO;SACR,CAAC;SACD,mCAA8B,GAAG;aAChC,OAAO;SACR,CAAC;SACD,kCAA6B,GAAG;aAC/B,OAAO;SACR,CAAC;SACD,eAAU,GAAG;aACZ,OAAO;SACR,CAAC;SACD,gBAAW,GAAG;aACb,OAAO;SACR,CAAC;SACD,6BAA6B;SAC7B,eAAU,GAAG;aACZ,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;2BAC5D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;qBACtD,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,uBAAkB,GAAG;aACpB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC;qBAC7E,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;iBAChC,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACzB,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;2BAC9D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACpD,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,sBAAsB;SACtB,aAAQ,GAAG;aACV,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACvE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACjE,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC/D,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,qBAAgB,GAAG;aAClB,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACnE,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC7D,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,kBAAa,GAAG;aACf,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;uBAC1D,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAChE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aACrC,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,UAAU,EAAE,EAAE;iBACd,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,aAAQ,GAAG;aACV,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aACvF,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aACjF,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;uBAC5D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,QAAQ,EAAE,CAAC;iBACnD,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,qBAAgB,GAAG;aAClB,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,YAAY,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3F,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,YAAY,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACrF,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,YAAY,EAAE;iBAC1B,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,YAAY,EAAE,CAAC;uBAC/D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBACpD,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,SAAI,GAAG;aACN,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC;iBACrD,WAAW,EAAE,YAAmB;cAChC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;SACH,CAAC;SACD,YAAO,GAAG;aACT,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,KAAK,GAAG,KAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACzE,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAC;qBACpF,KAAK,EAAE,KAAK;qBACZ,WAAW,EAAE,YAAmB;kBAChC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;SACF,CAAC;SACD,oBAAoB;SACpB,aAAa;SACb,aAAQ,GAAG;aACV,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACxB,mCAAmC;iBACnC,IAAI,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC7C,IAAI,IAAI,GAAG,CAAC,CAAC;iBACb,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC1B,OAAM,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;qBACzD,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjC,CAAC;iBAED,IAAI,WAAW,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBAC1E,EAAE,EAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;qBAC5B,qBAAqB;qBACrB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;qBAC7B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;qBACf,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;yBAC/B,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;qBAC9B,CAAC;qBACD,KAAI,CAAC,QAAQ,CAAC;yBACb,KAAK,EAAE,KAAK;yBACZ,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC3B,QAAQ,EAAE,IAAI;yBACd,WAAW,EAAE,eAAsB;sBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;iBAC1B,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;qBACnC,mBAAmB;qBACnB,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;qBACzB,GAAG,CAAC,IAAI,CAAC;yBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;yBAC3B,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU;yBAC9B,OAAO,EAAE,CAAC;iCACT,IAAI,EAAE,YAAY;iCAClB,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;8BAC/B,CAAC;sBACF,CAAC,CAAC;qBACH,KAAI,CAAC,QAAQ,CAAC;yBACb,SAAS,EAAE,KAAI,CAAC,SAAS,EAAE;yBAC3B,GAAG,EAAE,GAAG;yBACR,QAAQ,EAAE,IAAI;yBACd,WAAW,EAAE,eAAsB;sBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;iBAC1B,CAAC;aACF,CAAC;SACF,CAAC;SACD,kBAAkB;SAClB,gBAAgB;SAChB,eAAU,GAAG;aACZ,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,CAAC,CAAC;aACJ,CAAC;aACD,2BAA2B;SAC5B,CAAC;SACD,kBAAa,GAAG;aACf,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC3B,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;iBAC5B,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACzB,GAAG,CAAC,IAAI,CAAC;qBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;qBAC3B,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU;qBAC9B,OAAO,EAAE,EAAE;kBACX,CAAC,CAAC;iBACH,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,EAAE;qBACT,KAAK,EAAE,CAAC;qBACR,UAAU,EAAE,EAAE;qBACd,WAAW,EAAE,EAAE;qBACf,GAAG,EAAE,GAAG;qBACR,QAAQ,EAAE,CAAC;qBACX,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACrB,CAAC;SACF,CAAC;SACD,mBAAmB;SACnB,eAAU,GAAG,UAAC,MAAc,EAAE,IAAY,EAAE,OAAmB,EAAE,KAA2B;aAAhD,uBAAmB,GAAnB,WAAmB;aAAE,qBAA2B,GAA3B,QAAgB,IAAI,CAAC,MAAM;aAC3F,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC5E,CAAC;SACD,kBAAa,GAAG,UAAC,MAAc,EAAE,OAAmB;aAAnB,uBAAmB,GAAnB,WAAmB;aACnD,IAAI,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC3F,MAAM,CAAC;iBACN,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;iBACtG,UAAU,EAAE,UAAU;iBACtB,WAAW,EAAE,UAAU;iBACvB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,CAAC;SACH,CAAC;SACD,cAAS,GAAG,UAAC,CAAS,EAAE,GAA0C;aAA1C,mBAA0C,GAA1C,MAAc,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;aACjE,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;aAC/B,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;iBACb,MAAM,CAAC,CAAC,CAAC;aACV,CAAC;aAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;iBACjB,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;SACF,CAAC;SAmBD,eAAU,GAAG,UAAC,CAAS,EAAE,KAAa,EAAE,IAAY,EAAE,QAAwB;aAAxB,wBAAwB,GAAxB,eAAwB;aAC7E,EAAE,EAAC,IAAI,IAAI,CAAC,CAAC;iBAAC,MAAM,CAAC,CAAC,CAAC;aACvB,EAAE,EAAC,QAAQ,CAAC,CAAC,CAAC;iBACb,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;aAC3C,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;iBAClB,EAAE,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;qBACd,MAAM,CAAC,CAAC,CAAC;iBACV,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;qBAC1B,MAAM,CAAC,IAAI,CAAC;iBACb,CAAC;iBAAC,IAAI,CAAC,CAAC;qBACP,MAAM,CAAC,KAAK,CAAC;iBACd,CAAC;aACF,CAAC;SACF,CAAC;SACD,kBAAa,GAAG,UAAC,CAAS;aACzB,IAAI,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACzF,EAAE,EAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;iBAClB,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;qBACpC,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW;qBAClC,QAAQ,EAAE,QAAQ;qBAClB,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aAC1B,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAC,QAAQ,CAAC,CAAC;iBACxE,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,UAAU,CAAC,MAAM;qBACxB,UAAU,EAAE,UAAU;qBACtB,QAAQ,EAAE,QAAQ;qBAClB,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aAC1B,CAAC;SACF,CAAC;SACD,kBAAa,GAAG,UAAC,SAAuD,EAAE,IAAqB;aAA9E,yBAAuD,GAAvD,YAA6B,KAAI,CAAC,KAAK,CAAC,eAAe;aAAE,oBAAqB,GAArB,YAAqB;aAC9F,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC9B,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,eAAuB,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC;aACtD,EAAE,EAAC,IAAI,CAAC,CAAC,CAAC;iBACT,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;aACjB,CAAC;aACD,GAAG,EAAC,EAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;iBACnE,IAAI,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAC,GAAG,CAAC,CAAC;iBAC9D,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBACjD,EAAE,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBACf,MAAM,CAAC;yBACN,KAAK,EAAE,KAAK;yBACZ,UAAU,EAAE,KAAK;yBACjB,eAAe,EAAE,SAAS;yBAC1B,UAAU,EAAE,KAAK;yBACjB,QAAQ,EAAE,GAAG;sBACb,CAAC;iBACH,CAAC;aACF,CAAC;aACD,MAAM,CAAC;iBACN,eAAe,EAAE,SAAS;iBAC1B,UAAU,EAAE,KAAK;cACjB,CAAC;SACH,CAAC;SACD,iBAAiB;SACjB,oBAAe,GAAG,CAAC,CAAC;SACpB,mBAAc,GAAG;aAChB,EAAE,EAAC,KAAI,CAAC,eAAe,GAAG,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;iBACxI,KAAI,CAAC,eAAe,EAAE,CAAC;iBACvB,MAAM,CAAC,KAAI,CAAC,kBAAkB,CAAC;aAChC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,IAAI,CAAC;aACb,CAAC;SACF,CAAC;SACD,uBAAkB,GAAG;aACpB,KAAI,CAAC,cAAc,EAAE,CAAC;aACtB,KAAI,CAAC,eAAe,EAAE,CAAC;SACxB,CAAC;SACD,mBAAc,GAAG;aAChB,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;aACnE,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;aACpD,EAAE,EAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;iBAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;iBAC3E,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CACxE,CAAC,CAAC,CAAC;iBAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAAC,CAAC;SAC9C,CAAC;SACD,cAAS,GAAG;aACX,EAAE,EAAC,OAAO,KAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC;iBAC/C,MAAM,CAAC,KAAI,CAAC,KAAK,CAAC,WAAqB,CAAC;aACzC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAE,KAAI,CAAC,KAAK,CAAC,WAA0B,EAAE,CAAC;aACjD,CAAC;SACF,CAAC;SAp0BA,IAAI,CAAC,KAAK,GAAG;aACZ,KAAK,EAAE,KAAK;aACZ,WAAW,EAAE,IAAI;aACjB,KAAK,EAAE,EAAE;aACT,KAAK,EAAE,CAAC;aACR,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;aAC3B,UAAU,EAAE,EAAE;aACd,WAAW,EAAE,EAAE;aACf,UAAU,EAAE,EAAE;aACd,eAAe,EAAE,IAAI;aACrB,UAAU,EAAE,KAAK;aACjB,GAAG,EAAE,EAAE;aACP,OAAO,EAAE,EAAE;aACX,QAAQ,EAAE,CAAC;aACX,IAAI,EAAE,EAAE;aACR,KAAK,EAAE,CAAC;aACR,QAAQ,EAAE,IAAI;aACd,WAAW,EAAE,eAAsB;UACnC,CAAC;KACH,CAAC;KA4DD,sBAAsB;KACtB,qCAAiB,GAAjB;SACC,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;aACzB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd,CAAC;KACF,CAAC;KAsoBD,4BAAQ,GAAR;SACC,iEAAiE;SACjE,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC5E,EAAE,EAAC,MAAM,CAAC,CAAC,CAAC;aACX,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAC5C,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;SACrC,CAAC;KACF,CAAC;KACD,gCAAY,GAAZ;SACC,4EAA4E;SAC5E,IAAI,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC;SAC1F,EAAE,EAAC,MAAM,CAAC,CAAC,CAAC;aACX,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;SACzB,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,CAAC,CAAC;SACV,CAAC;KACF,CAAC;KA0FD,0BAAM,GAAN;SAAA,iBAmDC;SAlDA,MAAM,CAAC,qBAAC,GAAG,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,EAA1B,CAA2B,EACjD,SAAS,EAAE,0BAA0B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,qBAAqB,GAAC,uBAAuB,CAAE,EACzG,OAAO,EAAE,IAAI,CAAC,KAAM,GAEpB,IAAI,CAAC,KAAK,CAAC,cAAc;aACzB,qBAAC,GAAG,IAAC,SAAS,EAAC,6CAA6C,GAC1D,IAAI,CAAC,KAAK,CAAC,cAAe,CACtB;eACJ,IACF,EACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,UAAC,GAAa;aAClC,MAAM,CAAC;iBACN,oBAAC,aAAa,GAAC,KAAK,EAAE,GAAG,CAAC,KAAM,EAAC,KAAK,EAAE,GAAG,CAAC,OAAQ,EAAG;sBACpD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAE,UAAC,GAAe,EAAE,GAAW;iBAChD,MAAM,CAAC,oBAAC,cAAc,GAAC,GAAG,EAAE,GAAI,EAAC,IAAI,EAAE,GAAG,CAAC,IAAK,EAAC,KAAK,EAAE,GAAG,CAAC,KAAM,EAAC,OAAO,EAAE,GAAG,CAAC,OAAQ,EAAG,CAAC;aAC7F,CAAC,CAAC,CACF,CAAC;SACH,CAAC,CAAE,EACF,IAAI,CAAC,KAAK,CAAC,WAAW;aACtB,oBAAC,aAAa,GACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAU,EAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,EACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAS,EAC5B;eACD,IACF,EACD,qBAAC,GAAG,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAG,GACvD,qBAAC,QAAQ,IACR,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAtB,CAAuB,EACnC,SAAS,EAAC,qBAAqB,EAC/B,YAAY,EAAC,KAAK,EAClB,WAAW,EAAC,KAAK,EACjB,cAAc,EAAC,KAAK,EACpB,UAAU,EAAC,OAAO,EAClB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM;aACvB,KAAK,EAAE,aAAa;aACpB,eAAe,EAAE,aAAa;aAC9B,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,QAAQ;UACjB,EACF,MAAM,EAAE,IAAI,CAAC,IAAK,EAClB,SAAS,EAAE,IAAI,CAAC,OAAQ,EACxB,QAAQ,EAAE,IAAI,CAAC,MAAO,EACtB,OAAO,EAAE,IAAI,CAAC,KAAM,EACT,CACP,EACN,qBAAC,GAAG,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAtB,CAAuB,OAAa,CAChD,CAAC;KACR,CAAC;KAp2BM,sBAAY,GAAG;SACrB,WAAW,EAAE,IAAI;SACjB,QAAQ,EAAE,cAAa,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACtC,MAAM,EAAE,cAAY,CAAC;MACrB,CAAC;KAi2BH,gBAAC;AAAD,EAAC,CA53B4B,KAAK,CAAC,SAAS,GA43B3C;AA53BD;4BA43BC;;;;;;;ACnjCD,wB;;;;;;ACAA,0C","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9628d64841ca63a4f97f","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: string[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: string, cellIndex: number) => { \n\t\t\t\t\t\t\t\treturn ; })\n\t\t\t\t\t\t\t};\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}).join(\"\\n\")}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.state.log;\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = React;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"React\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-console.js b/lib/react-console.js index a333c4e..758f67c 100644 --- a/lib/react-console.js +++ b/lib/react-console.js @@ -130,7 +130,7 @@ module.exports = var ConsoleMessage = function (props) { if (props.isTable) { var data = props.value[0]; - return React.createElement("div", {className: "react-console-message react-console-table"}, React.createElement("table", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement("tbody", null, data.rows && data.rows.map(function (row, index) { + return React.createElement("div", {className: "react-console-message react-console-table" + (props.type ? " react-console-message-" + props.type : "")}, React.createElement("table", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement("tbody", null, data.rows && data.rows.map(function (row, index) { return React.createElement("tr", {key: index}, row.map(function (cell, cellIndex) { return React.createElement("td", {key: cellIndex}, cell); })); @@ -204,9 +204,14 @@ module.exports = log: log, }, _this.scrollIfBottom()); }; - this.logTable = function (tableData) { + this.logTable = function (tableData, type) { var log = _this.state.log; - log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] }); + if (type) { + log[_this.state.log.length - 1].message.push({ isTable: true, type: type, value: [tableData] }); + } + else { + log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] }); + } _this.setState({ log: log, }, _this.scrollIfBottom()); diff --git a/lib/react-console.js.map b/lib/react-console.js.map index 8e4dbb4..aebcf2d 100644 --- a/lib/react-console.js.map +++ b/lib/react-console.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 9d5298dac52a5ac16d8c","webpack:///./react-console.tsx","webpack:///external \"react\"","webpack:///./react-console.scss"],"names":[],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,aAAY,CAAC;;;;;;AAEb,KAAY,KAAK,uBAAM,CAAO,CAAC;AAE/B,qBAAO,CAAsB,CAAC;AAQ9B;KAA4B,iCAAsC;KAAlE;SAA4B,8BAAsC;SAOjE,UAAK,GAED,EAAE,CAAC;SAQP,iBAAiB;SACjB,oBAAe,GAAW,CAAC,CAAC;KA2C7B,CAAC;KAnDA,sBAAsB;KACtB,yCAAiB,GAAjB;SACC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb,CAAC;KACD,0CAAkB,GAAlB;SACC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb,CAAC;KAGD,4BAAI,GAAJ;SAAA,iBAcC;SAbA,yBAAyB;SACzB,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACtB,EAAE,EAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;aACtD,CAAC;aACD,IAAI,CAAC,eAAe,EAAE,CAAC;aACvB,MAAM,CAAC,UAAU,CAAE;iBAClB,KAAI,CAAC,eAAe,EAAE,CAAC;iBACvB,EAAE,EAAC,KAAI,CAAC,eAAe,IAAI,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;qBACnD,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,gDAAgD,CAAC;iBAChF,CAAC;aACF,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC;KACF,CAAC;KACD,mCAAW,GAAX;SAAA,iBAUC;SATA,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3B,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACxD,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,qBAAC,IAAI,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAvB,CAAwB,EAAC,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,OAAc,CAAC,CAAC;SAClI,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBACrD,qBAAC,IAAI,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAvB,CAAwB,EAAC,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,GAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAE,CAAO;iBACjK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC;SAClD,CAAC;KACF,CAAC;KACD,8BAAM,GAAN;SACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SAC7B,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;aACxB,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAClC,EAAE,EAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAC,CAAC,CAAC,CAAC;aACnC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAK,GAAG,EAAE,CAAC;aACZ,CAAC;SACF,CAAC;SACD,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAC,0BAA0B,GAC/C,qBAAC,IAAI,IAAC,SAAS,EAAC,4BAA4B,GAAG,KAAO,CAAO,EAC7D,qBAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,GAAG,IAAI,CAAC,KAAK,CAAC,QAAU,CAAO,EAC9E,qBAAC,IAAI,IAAC,SAAS,EAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,EAAI,CAAO,CAC/D,CAAC;KACR,CAAC;KA3DM,0BAAY,GAAuB;SACzC,KAAK,EAAE,CAAC,CAAC;SACT,KAAK,EAAE,EAAE;SACT,KAAK,EAAE,IAAI;SACX,QAAQ,EAAE,IAAI;MACd;KAuDF,oBAAC;AAAD,EAAC,CA7D2B,KAAK,CAAC,SAAS,GA6D1C;AAKD,KAAI,kBAAkB,GAAuC,UAAS,KAA8B;KACnG,EAAE,EAAC,KAAK,CAAC,OAAO,CAAC,EAAC;SACjB,MAAM,CAAC,qBAAC,KAAK,SACV,qBAAC,EAAE,SACD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAc;aACjC,MAAM,CAAC,qBAAC,EAAE,IAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAG,MAAQ,GAAG,MAAQ,CAAK,CAAC;SACvD,CAAC,CAAE,CACC,CACE;KACX,CAAC;KACD,MAAM,CAAC,IAAI,CAAC;AACb,EAAC;AAOD,KAAI,cAAc,GAAmC,UAAS,KAA0B;KACvF,EAAE,EAAC,KAAK,CAAC,OAAO,CAAC,EAAC;SACjB,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC5B,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAC,2CAA2C,GAChE,qBAAC,KAAK,SACL,oBAAC,kBAAkB,GAAC,OAAO,EAAE,IAAI,CAAC,OAAQ,EAAG,EAC7C,qBAAC,KAAK,SACJ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,GAAa,EAAE,KAAa;aACxD,MAAM,CAAC,qBAAC,EAAE,IAAC,GAAG,EAAE,KAAM,GAAE,GAAG,CAAC,GAAG,CAAC,UAAC,IAAY,EAAE,SAAiB;iBAC9D,MAAM,CAAC,qBAAC,EAAE,IAAC,GAAG,EAAE,SAAU,GAAE,IAAK,CAAK,CAAC;aAAC,CAAC,CACzC,CAAK,CAAC;SACT,CAAC,CAAE,CACI,CACD,CACH,CAAC;KACR,CAAC;KAAA,IAAI,EAAC;SACL,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAE,uBAAuB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAC,yBAAyB,GAAC,KAAK,CAAC,IAAI,GAAC,EAAE,CAAE,GACpG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,GAAQ;aACzB,EAAE,EAAC,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;iBAC3B,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAC5B,CAAC;SACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,CACT,CAAC;KACR,CAAC;AACF,EAAC;AACD,eAAc,CAAC,YAAY,GAAG;KAC7B,IAAI,EAAE,IAAI;KACV,KAAK,EAAE,EAAE;KACT,OAAO,EAAE,KAAK;EACd;AAgCA,EAAC;AAuBD,EAAC;AACF;KAA6B,6BAA0C;KACtE,mBAAY,KAAmB;SADhC,iBAw3BC;SAt3BC,kBAAM,KAAK,CAAC,CAAC;SA0Bd,UAAK,GAID,EAAE,CAAC;SACP,cAAc;SACd,kBAAa,GAAG;aAAC,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aAClC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,IAAI,cAAc,GAAG,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;aAC3H,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;aACzE,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,QAAG,GAAG;aAAC,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aACxB,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;aAC7D,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,SAAI,GAAG,UAAC,IAAY;aAAE,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aACvC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;aACzE,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,aAAQ,GAAG,UAAC,SAA6B;aACxC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;aAC/E,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,WAAM,GAAG;aACR,KAAI,CAAC,QAAQ,CAAC;iBACb,WAAW,EAAE,IAAI;iBACjB,SAAS,EAAE,KAAI,CAAC,SAAS,EAAE;cAC3B,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SAOD,iBAAiB;SACjB,UAAK,GAAG;aACP,EAAE,EAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACtC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;iBACzB,KAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aACtD,CAAC;SACF,CAAC;SACD,SAAI,GAAG;aACN,KAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;SACjC,CAAC;SACD,YAAO,GAAG,UAAC,CAAgB;aAI1B,IAAI,QAAQ,GAAW;iBACtB,SAAS;iBACT,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,OAAO;iBACP,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,KAAK;iBACL,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,OAAO;iBACP,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,YAAY;iBACZ,CAAC,EAAG,KAAI,CAAC,kBAAkB;iBAC3B,SAAS;iBACT,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,SAAS;iBAClB,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,CAAC,EAAE,KAAI,CAAC,QAAQ;iBAChB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,UAAU;cACnB,CAAC;aACF,IAAI,SAAS,GAAW;iBACvB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,SAAS;iBAClB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,oBAAoB;iBAC7B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,oBAAoB;iBAC7B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,QAAQ;iBACjB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,gBAAgB;iBACzB,WAAW;iBACX,EAAE,EAAE,KAAI,CAAC,IAAI;iBACb,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,aAAa;cAOtB,CAAC;aACF,IAAI,UAAU,GAAW;iBACxB,aAAa;iBACb,CAAC,EAAE,KAAI,CAAC,gBAAgB;cAWxB,CAAC;aACF,IAAI,cAAc,GAAW,EAK5B,CAAC;aACF,IAAI,SAAS,GAAW;iBACvB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,kCAAkC;iBAC3C,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,kCAAkC;iBAC3C,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,WAAW;iBACrB,aAAa;iBACb,oBAAoB;iBACpB,WAAW;iBACX,0BAA0B;iBAC1B,WAAW;iBACX,sBAAsB;iBACtB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,QAAQ;iBACjB,cAAc;iBACd,CAAC,EAAE,KAAI,CAAC,gBAAgB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,WAAW;iBACX,kCAAkC;iBAClC,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,OAAO;cA6BhB,CAAC;aACF,IAAI,cAAc,GAAW;iBAC5B,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,kBAAkB;iBAC5B,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,YAAY;iBACtB,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,WAAW;cAKrB;aACD,IAAI,aAAa,GAAW;iBAC3B,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,UAAU;cAKnB,CAAC;aACF,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC3B,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;qBACd,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;yBACf,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC;6BAChC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;6BAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;yBACpB,CAAC;qBACF,CAAC;qBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;yBACvB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC;6BACjC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;6BAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;yBACpB,CAAC;qBACF,CAAC;qBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;yBACnC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;yBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;qBACpB,CAAC;qBACD,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;qBACtB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;yBAC5B,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;yBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;qBACpB,CAAC;qBACD,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;qBAClC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;qBACtB,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;aACF,CAAC;SACF,CAAC;SACD,WAAM,GAAG;aACR,IAAI,GAAG,GAAG,CAAC,CAAC;aACZ,GAAG,EAAC,EAAC,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;iBAClF,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACzD,KAAK,CAAC;iBACP,CAAC;aACF,CAAC;aACD,IAAI,MAAM,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aACnD,IAAI,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;aAC5C,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,GAAC,MAAM,GAAC,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;qBAChG,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAC;qBACnC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;qBAC7B,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;SACF,CAAC;SACD,UAAK,GAAG,UAAC,CAAiB;aACzB,IAAI,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC7C,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,GAAC,MAAM,GAAC,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC;qBACvF,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAC;qBAC1B,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aACD,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB,CAAC;SACD,sBAAsB;SACtB,oBAAe,GAAG;aACjB,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,cAAS,GAAG;aACX,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;iBACnC,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iBACxB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACzB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,QAAQ,EAAE;iBACtB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,YAAY,EAAE;iBAC1B,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,wCAAwC;SACxC,eAAU,GAAG;aACZ,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;aAC5B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBAC/C,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC;qBACxB,KAAK,EAAE,EAAE;qBACT,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,SAAO,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC;iBACpC,IAAI,SAAO,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC;iBACjC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACzB,EAAE,EAAC,CAAC,SAAO,IAAI,SAAO,CAAC,SAAO,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,SAAO,CAAC,CAAC,CAAC;qBACrD,SAAO,CAAC,IAAI,CAAC,SAAO,CAAC,CAAC;iBACvB,CAAC;iBACD,GAAG,CAAC,IAAI,CAAC;qBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;qBAC3B,OAAO,EAAE,SAAO;qBAChB,OAAO,EAAE,EAAE;kBACX,CAAC,CAAC;iBACH,KAAI,CAAC,QAAQ,CAAC;qBACb,WAAW,EAAE,KAAK;qBAClB,KAAK,EAAE,EAAE;qBACT,KAAK,EAAE,CAAC;qBACR,UAAU,EAAE,EAAE;qBACd,WAAW,EAAE,EAAE;qBACf,GAAG,EAAE,GAAG;qBACR,OAAO,EAAE,SAAO;qBAChB,QAAQ,EAAE,CAAC;qBACX,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE;qBACF,KAAI,CAAC,cAAc,EAAE,CAAC;qBACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;yBACvB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAO,CAAC;qBAC5B,CAAC;qBAAC,IAAI,CAAC,CAAC;yBACP,KAAI,CAAC,MAAM,EAAE,CAAC;qBACf,CAAC;iBACF,CAAC,CAAC,CAAC;aACJ,CAAC;SACF,CAAC;SACD,oBAAe,GAAG;aACjB,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACvB,CAAC;SACD,uBAAkB,GAAG;aACpB,KAAI,CAAC,aAAa,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAChD,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/C,CAAC;SACD,kBAAa,GAAG;aACf,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,eAAe,IAAI,eAAuB,CAAC,CAAC,CAAC;iBAC1D,KAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B,CAAC;SACF,CAAC;SACD,yBAAoB,GAAG;aACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,eAAuB,EAAE,IAAI,CAAC,EAAC;qBACjD,QAAQ,EAAE,wBAAuB,KAAI,CAAC,KAAK,CAAC,UAAU,QAAK;qBAC3D,WAAW,EAAE,cAAqB;kBAClC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC;qBACb,eAAe,EAAE,eAAuB;qBACxC,UAAU,EAAE,IAAI;qBAChB,QAAQ,EAAE,wBAAyB;qBACnC,WAAW,EAAE,cAAqB;kBAClC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,yBAAoB,GAAG;aACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,eAAuB,EAAE,IAAI,CAAC,EAAC;qBACjD,QAAQ,EAAE,wBAAuB,KAAI,CAAC,KAAK,CAAC,UAAU,QAAK;qBAC3D,WAAW,EAAE,cAAqB;kBAClC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC;qBACb,eAAe,EAAE,eAAuB;qBACxC,UAAU,EAAE,IAAI;qBAChB,QAAQ,EAAE,wBAAyB;qBACnC,WAAW,EAAE,cAAqB;kBAClC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;SAC5B,CAAC;SACD,uCAAkC,GAAG;aACpC,OAAO;SACR,CAAC;SACD,uCAAkC,GAAG;aACpC,OAAO;SACR,CAAC;SACD,0BAAqB,GAAG;aACvB,OAAO;SACR,CAAC;SACD,yBAAoB,GAAG;aACtB,OAAO;SACR,CAAC;SACD,mCAA8B,GAAG;aAChC,OAAO;SACR,CAAC;SACD,kCAA6B,GAAG;aAC/B,OAAO;SACR,CAAC;SACD,eAAU,GAAG;aACZ,OAAO;SACR,CAAC;SACD,gBAAW,GAAG;aACb,OAAO;SACR,CAAC;SACD,6BAA6B;SAC7B,eAAU,GAAG;aACZ,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;2BAC5D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;qBACtD,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,uBAAkB,GAAG;aACpB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC;qBAC7E,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;iBAChC,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACzB,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;2BAC9D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACpD,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,sBAAsB;SACtB,aAAQ,GAAG;aACV,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACvE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACjE,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC/D,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,qBAAgB,GAAG;aAClB,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACnE,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC7D,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,kBAAa,GAAG;aACf,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;uBAC1D,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAChE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aACrC,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,UAAU,EAAE,EAAE;iBACd,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,aAAQ,GAAG;aACV,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aACvF,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aACjF,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;uBAC5D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,QAAQ,EAAE,CAAC;iBACnD,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,qBAAgB,GAAG;aAClB,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,YAAY,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3F,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,YAAY,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACrF,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,YAAY,EAAE;iBAC1B,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,YAAY,EAAE,CAAC;uBAC/D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBACpD,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,SAAI,GAAG;aACN,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC;iBACrD,WAAW,EAAE,YAAmB;cAChC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;SACH,CAAC;SACD,YAAO,GAAG;aACT,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,KAAK,GAAG,KAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACzE,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAC;qBACpF,KAAK,EAAE,KAAK;qBACZ,WAAW,EAAE,YAAmB;kBAChC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;SACF,CAAC;SACD,oBAAoB;SACpB,aAAa;SACb,aAAQ,GAAG;aACV,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACxB,mCAAmC;iBACnC,IAAI,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC7C,IAAI,IAAI,GAAG,CAAC,CAAC;iBACb,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC1B,OAAM,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;qBACzD,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjC,CAAC;iBAED,IAAI,WAAW,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBAC1E,EAAE,EAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;qBAC5B,qBAAqB;qBACrB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;qBAC7B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;qBACf,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;yBAC/B,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;qBAC9B,CAAC;qBACD,KAAI,CAAC,QAAQ,CAAC;yBACb,KAAK,EAAE,KAAK;yBACZ,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC3B,QAAQ,EAAE,IAAI;yBACd,WAAW,EAAE,eAAsB;sBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;iBAC1B,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;qBACnC,mBAAmB;qBACnB,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;qBACzB,GAAG,CAAC,IAAI,CAAC;yBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;yBAC3B,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU;yBAC9B,OAAO,EAAE,CAAC;iCACT,IAAI,EAAE,YAAY;iCAClB,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;8BAC/B,CAAC;sBACF,CAAC,CAAC;qBACH,KAAI,CAAC,QAAQ,CAAC;yBACb,SAAS,EAAE,KAAI,CAAC,SAAS,EAAE;yBAC3B,GAAG,EAAE,GAAG;yBACR,QAAQ,EAAE,IAAI;yBACd,WAAW,EAAE,eAAsB;sBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;iBAC1B,CAAC;aACF,CAAC;SACF,CAAC;SACD,kBAAkB;SAClB,gBAAgB;SAChB,eAAU,GAAG;aACZ,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,CAAC,CAAC;aACJ,CAAC;aACD,2BAA2B;SAC5B,CAAC;SACD,kBAAa,GAAG;aACf,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC3B,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;iBAC5B,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACzB,GAAG,CAAC,IAAI,CAAC;qBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;qBAC3B,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU;qBAC9B,OAAO,EAAE,EAAE;kBACX,CAAC,CAAC;iBACH,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,EAAE;qBACT,KAAK,EAAE,CAAC;qBACR,UAAU,EAAE,EAAE;qBACd,WAAW,EAAE,EAAE;qBACf,GAAG,EAAE,GAAG;qBACR,QAAQ,EAAE,CAAC;qBACX,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACrB,CAAC;SACF,CAAC;SACD,mBAAmB;SACnB,eAAU,GAAG,UAAC,MAAc,EAAE,IAAY,EAAE,OAAmB,EAAE,KAA2B;aAAhD,uBAAmB,GAAnB,WAAmB;aAAE,qBAA2B,GAA3B,QAAgB,IAAI,CAAC,MAAM;aAC3F,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC5E,CAAC;SACD,kBAAa,GAAG,UAAC,MAAc,EAAE,OAAmB;aAAnB,uBAAmB,GAAnB,WAAmB;aACnD,IAAI,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC3F,MAAM,CAAC;iBACN,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;iBACtG,UAAU,EAAE,UAAU;iBACtB,WAAW,EAAE,UAAU;iBACvB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,CAAC;SACH,CAAC;SACD,cAAS,GAAG,UAAC,CAAS,EAAE,GAA0C;aAA1C,mBAA0C,GAA1C,MAAc,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;aACjE,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;aAC/B,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;iBACb,MAAM,CAAC,CAAC,CAAC;aACV,CAAC;aAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;iBACjB,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;SACF,CAAC;SAmBD,eAAU,GAAG,UAAC,CAAS,EAAE,KAAa,EAAE,IAAY,EAAE,QAAwB;aAAxB,wBAAwB,GAAxB,eAAwB;aAC7E,EAAE,EAAC,IAAI,IAAI,CAAC,CAAC;iBAAC,MAAM,CAAC,CAAC,CAAC;aACvB,EAAE,EAAC,QAAQ,CAAC,CAAC,CAAC;iBACb,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;aAC3C,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;iBAClB,EAAE,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;qBACd,MAAM,CAAC,CAAC,CAAC;iBACV,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;qBAC1B,MAAM,CAAC,IAAI,CAAC;iBACb,CAAC;iBAAC,IAAI,CAAC,CAAC;qBACP,MAAM,CAAC,KAAK,CAAC;iBACd,CAAC;aACF,CAAC;SACF,CAAC;SACD,kBAAa,GAAG,UAAC,CAAS;aACzB,IAAI,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACzF,EAAE,EAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;iBAClB,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;qBACpC,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW;qBAClC,QAAQ,EAAE,QAAQ;qBAClB,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aAC1B,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAC,QAAQ,CAAC,CAAC;iBACxE,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,UAAU,CAAC,MAAM;qBACxB,UAAU,EAAE,UAAU;qBACtB,QAAQ,EAAE,QAAQ;qBAClB,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aAC1B,CAAC;SACF,CAAC;SACD,kBAAa,GAAG,UAAC,SAAuD,EAAE,IAAqB;aAA9E,yBAAuD,GAAvD,YAA6B,KAAI,CAAC,KAAK,CAAC,eAAe;aAAE,oBAAqB,GAArB,YAAqB;aAC9F,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC9B,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,eAAuB,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC;aACtD,EAAE,EAAC,IAAI,CAAC,CAAC,CAAC;iBACT,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;aACjB,CAAC;aACD,GAAG,EAAC,EAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;iBACnE,IAAI,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAC,GAAG,CAAC,CAAC;iBAC9D,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBACjD,EAAE,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBACf,MAAM,CAAC;yBACN,KAAK,EAAE,KAAK;yBACZ,UAAU,EAAE,KAAK;yBACjB,eAAe,EAAE,SAAS;yBAC1B,UAAU,EAAE,KAAK;yBACjB,QAAQ,EAAE,GAAG;sBACb,CAAC;iBACH,CAAC;aACF,CAAC;aACD,MAAM,CAAC;iBACN,eAAe,EAAE,SAAS;iBAC1B,UAAU,EAAE,KAAK;cACjB,CAAC;SACH,CAAC;SACD,iBAAiB;SACjB,oBAAe,GAAG,CAAC,CAAC;SACpB,mBAAc,GAAG;aAChB,EAAE,EAAC,KAAI,CAAC,eAAe,GAAG,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;iBACxI,KAAI,CAAC,eAAe,EAAE,CAAC;iBACvB,MAAM,CAAC,KAAI,CAAC,kBAAkB,CAAC;aAChC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,IAAI,CAAC;aACb,CAAC;SACF,CAAC;SACD,uBAAkB,GAAG;aACpB,KAAI,CAAC,cAAc,EAAE,CAAC;aACtB,KAAI,CAAC,eAAe,EAAE,CAAC;SACxB,CAAC;SACD,mBAAc,GAAG;aAChB,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;aACnE,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;aACpD,EAAE,EAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;iBAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;iBAC3E,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CACxE,CAAC,CAAC,CAAC;iBAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAAC,CAAC;SAC9C,CAAC;SACD,cAAS,GAAG;aACX,EAAE,EAAC,OAAO,KAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC;iBAC/C,MAAM,CAAC,KAAI,CAAC,KAAK,CAAC,WAAqB,CAAC;aACzC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAE,KAAI,CAAC,KAAK,CAAC,WAA0B,EAAE,CAAC;aACjD,CAAC;SACF,CAAC;SAh0BA,IAAI,CAAC,KAAK,GAAG;aACZ,KAAK,EAAE,KAAK;aACZ,WAAW,EAAE,IAAI;aACjB,KAAK,EAAE,EAAE;aACT,KAAK,EAAE,CAAC;aACR,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;aAC3B,UAAU,EAAE,EAAE;aACd,WAAW,EAAE,EAAE;aACf,UAAU,EAAE,EAAE;aACd,eAAe,EAAE,IAAI;aACrB,UAAU,EAAE,KAAK;aACjB,GAAG,EAAE,EAAE;aACP,OAAO,EAAE,EAAE;aACX,QAAQ,EAAE,CAAC;aACX,IAAI,EAAE,EAAE;aACR,KAAK,EAAE,CAAC;aACR,QAAQ,EAAE,IAAI;aACd,WAAW,EAAE,eAAsB;UACnC,CAAC;KACH,CAAC;KAwDD,sBAAsB;KACtB,qCAAiB,GAAjB;SACC,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;aACzB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd,CAAC;KACF,CAAC;KAsoBD,4BAAQ,GAAR;SACC,iEAAiE;SACjE,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC5E,EAAE,EAAC,MAAM,CAAC,CAAC,CAAC;aACX,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAC5C,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;SACrC,CAAC;KACF,CAAC;KACD,gCAAY,GAAZ;SACC,4EAA4E;SAC5E,IAAI,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC;SAC1F,EAAE,EAAC,MAAM,CAAC,CAAC,CAAC;aACX,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;SACzB,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,CAAC,CAAC;SACV,CAAC;KACF,CAAC;KA0FD,0BAAM,GAAN;SAAA,iBAmDC;SAlDA,MAAM,CAAC,qBAAC,GAAG,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,EAA1B,CAA2B,EACjD,SAAS,EAAE,0BAA0B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,qBAAqB,GAAC,uBAAuB,CAAE,EACzG,OAAO,EAAE,IAAI,CAAC,KAAM,GAEpB,IAAI,CAAC,KAAK,CAAC,cAAc;aACzB,qBAAC,GAAG,IAAC,SAAS,EAAC,6CAA6C,GAC1D,IAAI,CAAC,KAAK,CAAC,cAAe,CACtB;eACJ,IACF,EACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,UAAC,GAAa;aAClC,MAAM,CAAC;iBACN,oBAAC,aAAa,GAAC,KAAK,EAAE,GAAG,CAAC,KAAM,EAAC,KAAK,EAAE,GAAG,CAAC,OAAQ,EAAG;sBACpD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAE,UAAC,GAAe,EAAE,GAAW;iBAChD,MAAM,CAAC,oBAAC,cAAc,GAAC,GAAG,EAAE,GAAI,EAAC,IAAI,EAAE,GAAG,CAAC,IAAK,EAAC,KAAK,EAAE,GAAG,CAAC,KAAM,EAAC,OAAO,EAAE,GAAG,CAAC,OAAQ,EAAG,CAAC;aAC7F,CAAC,CAAC,CACF,CAAC;SACH,CAAC,CAAE,EACF,IAAI,CAAC,KAAK,CAAC,WAAW;aACtB,oBAAC,aAAa,GACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAU,EAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,EACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAS,EAC5B;eACD,IACF,EACD,qBAAC,GAAG,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAG,GACvD,qBAAC,QAAQ,IACR,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAtB,CAAuB,EACnC,SAAS,EAAC,qBAAqB,EAC/B,YAAY,EAAC,KAAK,EAClB,WAAW,EAAC,KAAK,EACjB,cAAc,EAAC,KAAK,EACpB,UAAU,EAAC,OAAO,EAClB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM;aACvB,KAAK,EAAE,aAAa;aACpB,eAAe,EAAE,aAAa;aAC9B,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,QAAQ;UACjB,EACF,MAAM,EAAE,IAAI,CAAC,IAAK,EAClB,SAAS,EAAE,IAAI,CAAC,OAAQ,EACxB,QAAQ,EAAE,IAAI,CAAC,MAAO,EACtB,OAAO,EAAE,IAAI,CAAC,KAAM,EACT,CACP,EACN,qBAAC,GAAG,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAtB,CAAuB,OAAa,CAChD,CAAC;KACR,CAAC;KAh2BM,sBAAY,GAAG;SACrB,WAAW,EAAE,IAAI;SACjB,QAAQ,EAAE,cAAa,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACtC,MAAM,EAAE,cAAY,CAAC;MACrB,CAAC;KA61BH,gBAAC;AAAD,EAAC,CAx3B4B,KAAK,CAAC,SAAS,GAw3B3C;AAx3BD;4BAw3BC;;;;;;;AC/iCD,mC;;;;;;ACAA,0C","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9d5298dac52a5ac16d8c","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: string[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: string, cellIndex: number) => { \n\t\t\t\t\t\t\t\treturn ; })\n\t\t\t\t\t\t\t};\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}).join(\"\\n\")}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject) => {\n\t\tlet log = this.state.log;\n\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = require(\"react\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 9342be2e3857029b2d74","webpack:///./react-console.tsx","webpack:///external \"react\"","webpack:///./react-console.scss"],"names":[],"mappings":"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","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9342be2e3857029b2d74","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn
\n\t\t\t{ label }\n\t\t\t{ this.props.argument }\n\t\t\t{ this.renderValue() }\n\t\t
;\n\t}\n}\n\ninterface ConsoleTableHeaderProps {\n\theaders?: string[];\n}\nlet ConsoleTableHeader: React.SFC = function(props: ConsoleTableHeaderProps){\t\n\tif(props.headers){\n\t\treturn \n\t\t\t\t\t\n\t\t\t\t\t\t{props.headers.map((header: string) => {\n\t\t\t\t\t\t\treturn { header };\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t}\n\treturn null;\n}\n\ninterface ConsoleMessageProps {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nlet ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) {\n\tif(props.isTable){\n\t\tconst data = props.value[0];\n\t\treturn
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{data.rows && data.rows.map((row: string[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: string, cellIndex: number) => { \n\t\t\t\t\t\t\t\treturn ; })\n\t\t\t\t\t\t\t};\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}).join(\"\\n\")}\n\t\t
;\n\t}\n}\nConsoleMessage.defaultProps = {\n\ttype: null,\n\tvalue: [],\n\tisTable: false\n}\n\nexport interface ConsoleTableObject {\n\trows: Array;\n\theaders?: Array;\n}\n\nexport interface LogMessage {\n\ttype?: string;\n\tisTable?: boolean;\n\tvalue: any[];\n}\nexport interface LogEntry {\n\tlabel: string;\n\tcommand: string;\n\tmessage: LogMessage[];\n}\n\nexport interface ConsoleProps{\n\thandler: (command: string)=>any;\n\tcancel?: ()=>any;\n\tcomplete?: (words: string[], curr: number, promptText: string)=>string[];\n\tcontinue?: (promptText: string)=>boolean;\n\tautofocus?: boolean;\n\tpromptLabel?: string | (()=>string);\n\twelcomeMessage?: string;\n}\nexport const enum ConsoleCommand {\n\tDefault,\n\tSearch,\n\tKill,\n\tYank,\n};\nexport const enum SearchDirection {\n\tReverse,\n\tForward,\n}\nexport interface ConsoleState{\n\tfocus?: boolean;\n\tacceptInput?: boolean;\n\ttyper?: string;\n\tpoint?: number;\n\tcurrLabel?: string;\n\tpromptText?: string;\n\trestoreText?: string;\n\tsearchText?: string;\n\tsearchDirection?: SearchDirection;\n\tsearchInit?: boolean;\n\tlog?: LogEntry[];\n\thistory?: string[];\n\thistoryn?: number;\n\tkill?: string[];\n\tkilln?: number;\n\targument?: string;\n\tlastCommand?: ConsoleCommand;\n};\nexport default class extends React.Component {\n\tconstructor(props: ConsoleProps) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfocus: false,\n\t\t\tacceptInput: true,\n\t\t\ttyper: '',\n\t\t\tpoint: 0,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t\tpromptText: '',\n\t\t\trestoreText: '',\n\t\t\tsearchText: '',\n\t\t\tsearchDirection: null,\n\t\t\tsearchInit: false,\n\t\t\tlog: [],\n\t\t\thistory: [],\n\t\t\thistoryn: 0,\n\t\t\tkill: [],\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tstatic defaultProps = {\n\t\tpromptLabel: '> ',\n\t\tcontinue: function() { return false; },\n\t\tcancel: function() {},\n\t};\n\tchild: {\n\t\ttyper?: HTMLTextAreaElement;\n\t\tcontainer?: HTMLElement;\n\t\tfocus?: HTMLElement;\n\t} = {};\n\t// Command API\n\tupdateLastLog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlet indexToReplace = log[this.state.log.length-1].message.length > 0 ? log[this.state.log.length-1].message.length - 1 : 0;\n\t\tlog[this.state.log.length-1].message[indexToReplace] = {value: messages};\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlog = (...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogX = (type: string, ...messages: any[]) => {\n\t\tlet log = this.state.log;\n\t\tif(!log.length){\n\t\t\tlog.push({label: '', command: '', message: [] });\n\t\t}\n\t\tlog[this.state.log.length-1].message.push({type: type, value: messages});\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\tlogTable = (tableData: ConsoleTableObject, type?: string) => {\n\t\tlet log = this.state.log;\n\t\tif(type){\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]});\n\t\t}else{\n\t\t\tlog[this.state.log.length-1].message.push({isTable: true, value: [tableData]});\n\t\t}\n\t\tthis.setState({\n\t\t\tlog: log,\n\t\t}, this.scrollIfBottom() );\n\t}\n\treturn = () => {\n\t\tthis.setState({\n\t\t\tacceptInput: true,\n\t\t\tcurrLabel: this.nextLabel(),\n\t\t}, this.scrollIfBottom() );\n\t}\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tif(this.props.autofocus) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\t// Event Handlers\n\tfocus = () => {\n\t\tif(!window.getSelection().toString()) {\n\t\t\tthis.child.typer.focus();\n\t\t\tthis.setState({ focus: true }, this.scrollToBottom );\n\t\t}\n\t}\n\tblur = () => {\n\t\tthis.setState({ focus: false });\n\t}\n\tkeyDown = (e: KeyboardEvent) => {\n\t\tinterface keyMap {\n\t\t\t[key: number]: ()=>void\n\t\t}\n\t\tlet keyCodes: keyMap = {\n\t\t\t// return\n\t\t\t13: this.acceptLine,\n\t\t\t// left\n\t\t\t37: this.backwardChar,\n\t\t\t// right\n\t\t\t39: this.forwardChar,\n\t\t\t// up\n\t\t\t38: this.previousHistory,\n\t\t\t// down\n\t\t\t40: this.nextHistory,\n\t\t\t// backspace\n\t\t\t8: this.backwardDeleteChar,\n\t\t\t// delete\n\t\t\t46: this.deleteChar,\n\t\t\t// end\n\t\t\t35: this.endOfLine,\n\t\t\t// start\n\t\t\t36: this.beginningOfLine,\n\t\t\t// tab\n\t\t\t9: this.complete,\n\t\t\t// esc\n\t\t\t27: this.prefixMeta,\n\t\t};\n\t\tvar ctrlCodes: keyMap = {\n\t\t\t// C-a\n\t\t\t65: this.beginningOfLine,\n\t\t\t// C-e\n\t\t\t69: this.endOfLine,\n\t\t\t// C-f\n\t\t\t70: this.forwardChar,\n\t\t\t// C-b\n\t\t\t66: this.backwardChar,\n\t\t\t// C-l\n\t\t\t76: this.clearScreen,\n\t\t\t// C-p\n\t\t\t80: this.previousHistory,\n\t\t\t// C-n\n\t\t\t78: this.nextHistory,\n\t\t\t// C-r\n\t\t\t82: this.reverseSearchHistory,\n\t\t\t// C-s\n\t\t\t83: this.forwardSearchHistory,\n\t\t\t// C-d\n\t\t\t68: this.deleteChar, // TODO EOF\n\t\t\t// C-q TODO\n\t\t\t//81: this.quotedInsert,\n\t\t\t// C-v TODO\n\t\t\t//86: this.quotedInsert,\n\t\t\t// C-t TODO\n\t\t\t//84: this.transposeChars,\n\t\t\t// C-k\n\t\t\t75: this.killLine,\n\t\t\t// C-u\n\t\t\t85: this.backwardKillLine,\n\t\t\t// C-y TODO\n\t\t\t89: this.yank,\n\t\t\t// C-c\n\t\t\t67: this.cancelCommand,\n\t\t\t// C-w TODO\n\t\t\t//87: this.killPreviousWhitespace,\n\t\t\t// C-] TODO\n\t\t\t//221: this.characterSearch,\n\t\t\t// C-x TODO\n\t\t\t//88: this.prefixCtrlX,\n\t\t};\n\t\tvar ctrlXCodes: keyMap = { // TODO state\n\t\t\t// C-x Rubout\n\t\t\t8: this.backwardKillLine,\n\t\t\t// C-x ( TODO\n\t\t\t//57: this.startKbdMacro,\n\t\t\t// C-x ) TODO\n\t\t\t//48: this.endKbdMacro,\n\t\t\t// C-x e TODO\n\t\t\t//69: this.callLastKbdMacro,\n\t\t\t// C-x C-u TODO\n\t\t\t//85: this.undo,\n\t\t\t// C-x C-x TODO\n\t\t\t//88: this.exchangePointAndMark,\n\t\t};\n\t\tvar ctrlShiftCodes: keyMap = {\n\t\t\t// C-_ TODO\n\t\t\t//189: this.undo,\n\t\t\t// C-@ TODO\n\t\t\t//50: this.setMark,\n\t\t};\n\t\tvar metaCodes: keyMap = {\n\t\t\t// M-f\n\t\t\t70: this.forwardWord,\n\t\t\t// M-b\n\t\t\t66: this.backwardWord,\n\t\t\t// M-p\n\t\t\t80: this.nonIncrementalReverseSearchHistory,\n\t\t\t// M-n\n\t\t\t78: this.nonIncrementalForwardSearchHistory,\n\t\t\t// M-.\n\t\t\t190: this.yankLastArg,\n\t\t\t// M-TAB TODO\n\t\t\t//9: this.tabInsert,\n\t\t\t// M-t TODO\n\t\t\t//84: this.transposeWords,\n\t\t\t// M-u TODO\n\t\t\t//85: this.upcaseWord,\n\t\t\t// M-l TODO\n\t\t\t//76: this.downcaseWord,\n\t\t\t// M-c TODO\n\t\t\t//67: this.capitalizeWord,\n\t\t\t// M-d\n\t\t\t68: this.killWord,\n\t\t\t// M-backspace\n\t\t\t8: this.backwardKillWord,\n\t\t\t// M-w TODO\n\t\t\t//87: this.unixWordRubout,\n\t\t\t// M-\\ TODO\n\t\t\t//220: this.deleteHorizontalSpace,\n\t\t\t// M-y\n\t\t\t89: this.yankPop,\n\t\t\t// M-0 TODO\n\t\t\t//48: () => this.digitArgument(0),\n\t\t\t// M-1 TODO\n\t\t\t//49: () => this.digitArgument(1),\n\t\t\t// M-2 TODO\n\t\t\t//50: () => this.digitArgument(2),\n\t\t\t// M-3 TODO\n\t\t\t//51: () => this.digitArgument(3),\n\t\t\t// M-4 TODO\n\t\t\t//52: () => this.digitArgument(4),\n\t\t\t// M-5 TODO\n\t\t\t//53: () => this.digitArgument(5),\n\t\t\t// M-6 TODO\n\t\t\t//54: () => this.digitArgument(6),\n\t\t\t// M-7 TODO\n\t\t\t//55: () => this.digitArgument(7),\n\t\t\t// M-8 TODO\n\t\t\t//56: () => this.digitArgument(8),\n\t\t\t// M-9 TODO\n\t\t\t//57: () => this.digitArgument(9),\n\t\t\t// M-- TODO\n\t\t\t//189: () => this.digitArgument('-'),\n\t\t\t// M-f TODO\n\t\t\t//71: () => this.abort,\n\t\t\t// M-r TODO\n\t\t\t//82: this.revertLine,\n\t\t\t// M-SPACE TODO\n\t\t\t//32: this.setMark,\n\t\t};\n\t\tvar metaShiftCodes: keyMap = { // TODO hook in\n\t\t\t// M-<\n\t\t\t188: this.beginningOfHistory,\n\t\t\t// M->\n\t\t\t190: this.endOfHistory,\n\t\t\t// M-_\n\t\t\t189: this.yankLastArg,\n\t\t\t// M-? TODO\n\t\t\t//191: this.possibleCompletions,\n\t\t\t// M-* TODO\n\t\t\t//56: this.insertCompletions,\n\t\t}\n\t\tvar metaCtrlCodes: keyMap = {\n\t\t\t// M-C-y\n\t\t\t89: this.yankNthArg,\n\t\t\t// M-C-] TODO\n\t\t\t//221: this.characterSearchBackward,\n\t\t\t// M-C-j TODO !!!\n\t\t\t//74: this.viEditingMode,\n\t\t};\n\t\tif(this.state.acceptInput) {\n\t\t\tif (e.altKey) {\n\t\t\t\tif (e.ctrlKey) {\n\t\t\t\t\tif (e.keyCode in metaCtrlCodes) {\n\t\t\t\t\t\tmetaCtrlCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.shiftKey) {\n\t\t\t\t\tif (e.keyCode in metaShiftCodes) {\n\t\t\t\t\t\tmetaShiftCodes[e.keyCode]();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if (e.keyCode in metaCodes) {\n\t\t\t\t\tmetaCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.ctrlKey) {\n\t\t\t\tif (e.keyCode in ctrlCodes) {\n\t\t\t\t\tctrlCodes[e.keyCode]();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t\te.preventDefault();\n\t\t\t} else if (e.keyCode in keyCodes) {\n\t\t\t\tkeyCodes[e.keyCode]();\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\tchange = () => {\n\t\tlet idx = 0;\n\t\tfor(;idx < this.state.typer.length && idx < this.child.typer.value.length; idx++) {\n\t\t\tif(this.state.typer[idx] != this.child.typer.value[idx]) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tlet insert = this.child.typer.value.substring(idx);\n\t\tlet replace = this.state.typer.length - idx;\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText, replace),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert, replace),{\n\t\t\t\t\ttyper: this.child.typer.value,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\tpaste = (e: ClipboardEvent) => {\n\t\tlet insert = e.clipboardData.getData('text');\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchInit?insert:this.textInsert(insert, this.state.searchText),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(insert),{\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t\te.preventDefault();\n\t}\n\t// Commands for Moving\n\tbeginningOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tendOfLine = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.state.promptText.length,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardChar = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.movePoint(-1),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tforwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.nextWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardWord = () => {\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t}, this.scrollToBottom);\n\t}\n\t// Commands for Manipulating the History\n\tacceptLine = () => {\n\t\tthis.child.typer.value = \"\";\n\t\tif(this.props.continue(this.state.promptText)) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(\"\\n\"),{\n\t\t\t\t\ttyper: \"\",\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tlet command = this.state.promptText;\n\t\t\tlet history = this.state.history;\n\t\t\tlet log = this.state.log;\n\t\t\tif(!history || history[history.length-1] != command) {\n\t\t\t\thistory.push(command);\n\t\t\t}\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: command,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\tacceptInput: false,\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistory: history,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, () => {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t\tif(this.props.handler) {\n\t\t\t\t\tthis.props.handler(command)\n\t\t\t\t} else {\n\t\t\t\t\tthis.return();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tpreviousHistory = () => {\n\t\tthis.rotateHistory(-1);\n\t}\n\tnextHistory = () => {\n\t\tthis.rotateHistory(1);\n\t}\n\tbeginningOfHistory = () => {\n\t\tthis.rotateHistory(-this.state.history.length);\n\t}\n\tendOfHistory = () => {\n\t\tthis.rotateHistory(this.state.history.length);\n\t}\n\ttriggerSearch = () => {\n\t\tif(this.state.searchDirection == SearchDirection.Reverse) {\n\t\t\tthis.reverseSearchHistory();\n\t\t} else {\n\t\t\tthis.forwardSearchHistory();\n\t\t}\n\t}\n\treverseSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Reverse, true),{\n\t\t\t\t\targument: `(reverse-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Reverse,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(reverse-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tforwardSearchHistory = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.searchHistory(SearchDirection.Forward, true),{\n\t\t\t\t\targument: `(forward-i-search)\\`${this.state.searchText}': `,\n\t\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t} else {\n\t\t\tthis.setState({\n\t\t\t\tsearchDirection: SearchDirection.Forward,\n\t\t\t\tsearchInit: true,\n\t\t\t\targument: `(forward-i-search)\\`': `,\n\t\t\t\tlastCommand: ConsoleCommand.Search,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tclearScreen = () => {\n\t\tthis.setState({ log: [] });\n\t}\n\tnonIncrementalReverseSearchHistory = () => {\n\t\t// TODO\n\t}\n\tnonIncrementalForwardSearchHistory = () => {\n\t\t// TODO\n\t}\n\thistorySearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySearchForward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchBackward = () => {\n\t\t// TODO\n\t}\n\thistorySubstringSearchForward = () => {\n\t\t// TODO\n\t}\n\tyankNthArg = () => {\n\t\t// TODO\n\t}\n\tyankLastArg = () => {\n\t\t// TODO\n\t}\n\t// Commands for Changing Text\n\tdeleteChar = () => {\n\t\tif(this.state.point < this.state.promptText.length) {\n\t\t\tthis.setState({\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point+1),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\tbackwardDeleteChar = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\tsearchText: this.state.searchText.substring(0,this.state.searchText.length-1),\n\t\t\t\ttyper: this.child.typer.value,\n\t\t\t}, this.triggerSearch );\n\t\t} else if(this.state.point > 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.movePoint(-1),\n\t\t\t\tpromptText: this.state.promptText.substring(0,this.state.point-1)\n\t\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t}\n\t}\n\t// Killing and Yanking\n\tkillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(0,this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWholeLine = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ kill[0] + this.state.promptText.substring(this.state.point);\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText);\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: 0,\n\t\t\tpromptText: '',\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tkillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = kill[0] + this.state.promptText.substring(this.state.point,this.nextWord());\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.state.point,this.nextWord()));\n\t\t}\n\t\tthis.setState({\n\t\t\tpromptText: this.state.promptText.substring(0,this.state.point)\n\t\t\t\t+ this.state.promptText.substring(this.nextWord()),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tbackwardKillWord = () => {\n\t\tlet kill = this.state.kill;\n\t\tif(this.state.lastCommand == ConsoleCommand.Kill) {\n\t\t\tkill[0] = this.state.promptText.substring(this.previousWord(),this.state.point) + kill[0];\n\t\t} else {\n\t\t\tkill.unshift(this.state.promptText.substring(this.previousWord(),this.state.point));\n\t\t}\n\t\tthis.setState({\n\t\t\tpoint: this.previousWord(),\n\t\t\tpromptText: this.state.promptText.substring(0,this.previousWord())\n\t\t\t\t+ this.state.promptText.substring(this.state.point),\n\t\t\tkill: kill,\n\t\t\tkilln: 0,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Kill,\n\t\t}, this.scrollToBottom);\n\t}\n\tyank = () => {\n\t\tthis.setState(Object.assign(\n\t\t\tthis.consoleInsert(this.state.kill[this.state.killn]),{\n\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t}), this.scrollToBottom\n\t\t);\n\t}\n\tyankPop = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Yank) {\n\t\t\tlet killn = this.rotateRing(1, this.state.killn, this.state.kill.length);\n\t\t\tthis.setState(Object.assign(\n\t\t\t\tthis.consoleInsert(this.state.kill[killn], this.state.kill[this.state.killn].length),{\n\t\t\t\t\tkilln: killn,\n\t\t\t\t\tlastCommand: ConsoleCommand.Yank,\n\t\t\t\t}), this.scrollToBottom\n\t\t\t);\n\t\t}\n\t}\n\t// Numeric Arguments\n\t// Completing\n\tcomplete = () => {\n\t\tif(this.props.complete) {\n\t\t\t// Split text and find current word\n\t\t\tlet words = this.state.promptText.split(\" \");\n\t\t\tlet curr = 0;\n\t\t\tlet idx = words[0].length;\n\t\t\twhile(idx < this.state.point && curr + 1 < words.length) {\n\t\t\t\tidx += words[++curr].length + 1;\n\t\t\t}\n\n\t\t\tlet completions = this.props.complete(words, curr, this.state.promptText);\n\t\t\tif(completions.length == 1) {\n\t\t\t\t// Perform completion\n\t\t\t\twords[curr] = completions[0];\n\t\t\t\tlet point = -1;\n\t\t\t\tfor(let i = 0; i <= curr; i++) {\n\t\t\t\t\tpoint += words[i].length + 1;\n\t\t\t\t}\n\t\t\t\tthis.setState({\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: words.join(\" \"),\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t} else if (completions.length > 1) {\n\t\t\t\t// show completions\n\t\t\t\tlet log = this.state.log;\n\t\t\t\tlog.push({\n\t\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\t\tcommand: this.state.promptText,\n\t\t\t\t\tmessage: [{\n\t\t\t\t\t\ttype: \"completion\",\n\t\t\t\t\t\tvalue: [completions.join(\"\\t\")],\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t\tthis.setState({\n\t\t\t\t\tcurrLabel: this.nextLabel(),\n\t\t\t\t\tlog: log,\n\t\t\t\t\targument: null,\n\t\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t\t}, this.scrollToBottom );\n\t\t\t}\n\t\t}\n\t}\n\t// Keyboard Macros\n\t// Miscellaneous\n\tprefixMeta = () => {\n\t\tif(this.state.lastCommand == ConsoleCommand.Search) {\n\t\t\tthis.setState({\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t});\n\t\t}\n\t\t// TODO Meta prefixed state\n\t}\n\tcancelCommand = () => {\n\t\tif(this.state.acceptInput) { // Typing command\n\t\t\tthis.child.typer.value = \"\";\n\t\t\tlet log = this.state.log;\n\t\t\tlog.push({\n\t\t\t\tlabel: this.state.currLabel,\n\t\t\t\tcommand: this.state.promptText,\n\t\t\t\tmessage: []\n\t\t\t});\n\t\t\tthis.setState({\n\t\t\t\ttyper: \"\",\n\t\t\t\tpoint: 0,\n\t\t\t\tpromptText: \"\",\n\t\t\t\trestoreText: \"\",\n\t\t\t\tlog: log,\n\t\t\t\thistoryn: 0,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom);\n\t\t} else { // command is executing, call handler\n\t\t\tthis.props.cancel();\n\t\t}\n\t}\n\t// Helper functions\n\ttextInsert = (insert: string, text: string, replace: number = 0, point: number = text.length): string => {\n\t\treturn text.substring(0, point - replace) + insert + text.substring(point);\n\t}\n\tconsoleInsert = (insert: string, replace: number = 0): ConsoleState => {\n\t\tlet promptText = this.textInsert(insert, this.state.promptText, replace, this.state.point);\n\t\treturn {\n\t\t\tpoint: this.movePoint(insert.length - replace, insert.length - replace + this.state.promptText.length),\n\t\t\tpromptText: promptText,\n\t\t\trestoreText: promptText,\n\t\t\targument: null,\n\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t};\n\t}\n\tmovePoint = (n: number, max: number = this.state.promptText.length) => {\n\t\tlet pos = this.state.point + n;\n\t\tif (pos < 0) {\n\t\t\treturn 0;\n\t\t} if (pos > max) {\n\t\t\treturn max;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n\tnextWord(): number {\n\t\t// Find first alphanumeric char after first non-alphanumeric char\n\t\tlet search = /\\W\\w/.exec(this.state.promptText.substring(this.state.point));\n\t\tif(search) {\n\t\t\treturn search.index + this.state.point + 1;\n\t\t} else {\n\t\t\treturn this.state.promptText.length;\n\t\t}\n\t}\n\tpreviousWord(): number {\n\t\t// Find first non-alphanumeric char after first alphanumeric char in reverse\n\t\tlet search = /\\W\\w(?!.*\\W\\w)/.exec(this.state.promptText.substring(0,this.state.point-1));\n\t\tif(search) {\n\t\t\treturn search.index + 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\trotateRing = (n: number, ringn: number, ring: number, circular: boolean = true): number => {\n\t\tif(ring == 0) return 0;\n\t\tif(circular) {\n\t\t\treturn (ring + (ringn + n) % ring) % ring;\n\t\t} else {\n\t\t\tringn = ringn - n;\n\t\t\tif(ringn < 0) {\n\t\t\t\treturn 0;\n\t\t\t} else if (ringn >= ring) {\n\t\t\t\treturn ring;\n\t\t\t} else {\n\t\t\t\treturn ringn;\n\t\t\t}\n\t\t}\n\t}\n\trotateHistory = (n: number) => {\n\t\tlet historyn = this.rotateRing(n, this.state.historyn, this.state.history.length, false);\n\t\tif(historyn == 0) {\n\t\t\tthis.setState({\n\t\t\t\tpoint: this.state.restoreText.length,\n\t\t\t\tpromptText: this.state.restoreText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t} else {\n\t\t\tlet promptText = this.state.history[this.state.history.length-historyn];\n\t\t\tthis.setState({\n\t\t\t\tpoint: promptText.length,\n\t\t\t\tpromptText: promptText,\n\t\t\t\thistoryn: historyn,\n\t\t\t\targument: null,\n\t\t\t\tlastCommand: ConsoleCommand.Default,\n\t\t\t}, this.scrollToBottom );\n\t\t}\n\t}\n\tsearchHistory = (direction: SearchDirection = this.state.searchDirection, next: boolean = false): ConsoleState => {\n\t\tlet idx = this.state.historyn;\n\t\tlet inc = (direction == SearchDirection.Reverse)?1:-1;\n\t\tif(next) {\n\t\t\tidx = idx + inc;\n\t\t}\n\t\tfor(;idx > 0 && idx <= this.state.history.length; idx = idx + inc) {\n\t\t\tlet entry = this.state.history[this.state.history.length-idx];\n\t\t\tlet point = entry.indexOf(this.state.searchText);\n\t\t\tif(point > -1) {\n\t\t\t\treturn {\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpromptText: entry,\n\t\t\t\t\tsearchDirection: direction,\n\t\t\t\t\tsearchInit: false,\n\t\t\t\t\thistoryn: idx,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsearchDirection: direction,\n\t\t\tsearchInit: false,\n\t\t};\n\t}\n\t// DOM management\n\tscrollSemaphore = 0;\n\tscrollIfBottom = () => {\n\t\tif(this.scrollSemaphore > 0 || this.child.container.scrollTop == this.child.container.scrollHeight - this.child.container.offsetHeight) {\n\t\t\tthis.scrollSemaphore++;\n\t\t\treturn this.scrollIfBottomTrue;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tscrollIfBottomTrue = () => {\n\t\tthis.scrollToBottom();\n\t\tthis.scrollSemaphore--;\n\t}\n\tscrollToBottom = () => {\n\t\tthis.child.container.scrollTop = this.child.container.scrollHeight;\n\t\tlet rect = this.child.focus.getBoundingClientRect();\n\t\tif(rect.top < 0 || rect.left < 0 ||\n\t\t\trect.bottom > (window.innerHeight || document.documentElement.clientHeight) ||\n\t\t\trect.right > (window.innerWidth || document.documentElement.clientWidth)\n\t\t) { this.child.typer.scrollIntoView(false); }\n\t}\n\tnextLabel = () => {\n\t\tif(typeof this.props.promptLabel === \"string\") {\n\t\t\treturn this.props.promptLabel as string;\n\t\t} else {\n\t\t\treturn (this.props.promptLabel as ()=>string)();\n\t\t}\n\t}\n\trender() {\n\t\treturn
this.child.container = ref}\n\t\t\t\tclassName={\"react-console-container \" + (this.state.focus?\"react-console-focus\":\"react-console-nofocus\")}\n\t\t\t\tonClick={this.focus}\n\t\t\t>\n\t\t\t{this.props.welcomeMessage?\n\t\t\t\t
\n\t\t\t\t\t{this.props.welcomeMessage}\n\t\t\t\t
\n\t\t\t\t: null\n\t\t\t}\n\t\t\t{this.state.log.map( (val: LogEntry) => {\n\t\t\t\treturn [\n\t\t\t\t\t,\n\t\t\t\t\t...val.message.map( (val: LogMessage, idx: number) => {\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})\n\t\t\t\t];\n\t\t\t})}\n\t\t\t{this.state.acceptInput?\n\t\t\t\t\n\t\t\t\t: null\n\t\t\t}\n\t\t\t
\n\t\t\t\t this.child.typer = ref}\n\t\t\t\t\tclassName=\"react-console-typer\"\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tstyle={{ outline: \"none\",\n\t\t\t\t\t\tcolor: \"transparent\",\n\t\t\t\t\t\tbackgroundColor: \"transparent\",\n\t\t\t\t\t\tborder: \"none\",\n\t\t\t\t\t\tresize: \"none\",\n\t\t\t\t\t\toverflow: \"hidden\",\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={this.blur}\n\t\t\t\t\tonKeyDown={this.keyDown}\n\t\t\t\t\tonChange={this.change}\n\t\t\t\t\tonPaste={this.paste}\n\t\t\t\t>\n\t\t\t
\n\t\t\t
this.child.focus = ref}> 
\n\t\t
;\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./react-console.tsx","module.exports = require(\"react\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 1\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./react-console.scss\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/src/react-console.tsx b/src/react-console.tsx index d3facb8..ee541a4 100644 --- a/src/react-console.tsx +++ b/src/react-console.tsx @@ -97,7 +97,7 @@ interface ConsoleMessageProps { let ConsoleMessage: React.SFC = function(props: ConsoleMessageProps) { if(props.isTable){ const data = props.value[0]; - return
+ return
@@ -246,9 +246,13 @@ export default class extends React.Component { log: log, }, this.scrollIfBottom() ); } - logTable = (tableData: ConsoleTableObject) => { + logTable = (tableData: ConsoleTableObject, type?: string) => { let log = this.state.log; - log[this.state.log.length-1].message.push({isTable: true, value: [tableData]}); + if(type){ + log[this.state.log.length-1].message.push({isTable: true, type: type, value: [tableData]}); + }else{ + log[this.state.log.length-1].message.push({isTable: true, value: [tableData]}); + } this.setState({ log: log, }, this.scrollIfBottom() );

+}Gv_h@%hdMEu415Kgqq!9ZtB1g+ftAA9!(6QrD5Z=r1j5b3T_eKozi=a!4qeA1H+OT;}l9oT23W}o61s?M?s^~ zV$(Nw8X<(591*``Ag2NzUbtcqr4&Xv>W{oIb@?8k)7ozSO{)=sgp2zbL6VQch05Xw zcNIr%`d@;Y>RGD_4nbH05D%J zyN3z!lR+;he=$~_YYFeX;*uP^>Z=i6)w)-C1ZIX$Na3ft-WPHJP)@Gz$(|ngnG&VU z!SEpJ%r+&-#XT!PZ8L)*E)t10GF6K`6f|g~!s#v;W0t;9pOWFm+;?-j*!&>_l3Yi? zH#~hpkApZx5EOjq2&5E#-1|K41L4tDwnotJ7w!e@f2Ds3ao|X@%pzRA{vq~1#J*dr zcHvHGRZ}IN66NwA)Fag^D3hJa#NAF&^-`Z|q0S-9;|xgeZ=R00Kr3!KBEKlX0bpVJ zNWm(*tyHU1;B~{p!j@I46?ZeQ`Br%LKGiBOE-O+^V(zBe@G*dE@&pV4C*B7O#<0#ZMK@eE|y%BF%i^CkBtKXGV%? z!p%xq_#UDfu&kJo*X2;!jP-{fp5NX#K|Y&(e=?T%A0eywA?qmEF&dRpQ&fq=V9ny& zc=d{)u?wXBp*e0z2>DDqz_V%|DQP75cma7tQ|(+2Q54v-4;DV2_7@Va2!Hf&HQoI8 zx`L5qjL0j6v(%DG_ORy~Dpl2+4w6Tw$v_!Tmphn&ClUlID^i$UnCt3FLB=b$1q4ef ze~u~o`7kKt9H3}^I2;@zxaq~RHqa57Ifp5NkICb(9Z>7tckDNuT`NCm1Qz`~;#KIJbFE z?fI0|oUMTrZ+sY$s`Wf{-b;9ce;r((QimXL5r-~2Y_sq=y>_%8fW?PD3b$KBcijSK zi0dDSOWV{1mbij@WZhm9QiytLoo)gBvm|gHhrmKJ#mIIfaR}B++&B_RYU@@TQ{C9iSmfp+zaH{i zm?#laiC@yX-SWqKb`b=2Uzx!^Rk2_bNVq8UM_S=|;`PIqNn@ds9|9UDD+QQ*BkDN(!Bmip5O*YqHe;s+gmcG|^y9HJK|LBRM!j9N( zkml06$Q9qnAI}IATfViEMW8*tOuo6F@>~iwQ)ECtbP=^chx{mPBE;f~UH3hl7@a_5 zj40=OUw;b!S)8Md?nVp~;5^5H#H5cs*+^iNcM^~copBh{EHp*h26KEb#6yldO1PI; zLRqzmV*u=**G6HYqB!xCnGhpflaG`hI-W`&B+Oia_I3L2 z=Ud7^xKaw!qo6I_8UNg3Vd1C|o2sjpZ(d~nn}0yVeWFdMmwcyO)GK?1NgsD24Tt)u zP(*?(!dNEQLnDM&(um)rw3NUkxDTKvEsH*9k8pZnY6!P*p%gsg{vw_m#t$46$cy`t zf+s%GGmPk&@UJbqtHN3LA)b5Y_F!ZjRKPOT;psw=3aBzilJIS}h8>XY4MD%Kc^qfI z7Js0`VXo4q!9iXrZ4~Dt&E=aHsUXOXz(p7%Rq~O7BNeVsg&~nG3mFm{0%30+sUgLX z*s@?qFO?PAg&YGjlC2(ZE_%84dC1|?*(Mq^iD zfHVXg%%k!(vNz*lQ3?l}TNC44B0$=@D}MonG51hHgxIDM$QTXU4ZLs?ja$Yjht>cL zj1Nv56?(nxhLr1!gB=U+)i?!k1%ais%m#wFul7kIsjy?3GXbJYQX#79r;`)_<t zt7h&3;o;%7m~bJNq=2j>jqZ6giGU(=k}|wX-cGA|qm*cs02trhl}t z?OEv=?K$QLt*ng*^N2(w3VZ2gCURMsc><1&1UsCz6VEKPx>6i@@peS$1fJ&3cs-wUgcThrp>l#d~$)O$m0Hy7~?y3l)dScU2bV_(o$q0cU zwIXoA5}h$&3$dv={4Cs)>>8243tVEF z>KA&H(;c~QRG&vsV*-vw7+{gPDHr@S{se-@9VMU$Yd^gRf(*is+*CAiRzo<5k8lm= zNGEaXtV-7efHvrs?=4#9I?iCYm$$S|$X3ND?WBn?#{DE$H{Di=#oLW6@_!J=?GHGa zZ^br1EgO zH3u>fAxlrarGq^4k)Z!pcF*Yen5{823JM}t5dh#C=j#2E5FlLiwQl^t@uX_~BqLN? zC_!RC@Ccv97GxY}Vk4$3G=KOvcsiAo1xvKDD@_!|<&$*5*+Ze#;+E_qE$u`0(vst9 zY03GjCV4-dZ*R{%Q|7iDsUad*aZ*J-7`2x|!8wwdmx|~60#X5#`1$}D>2;XVtmd=V z6v|k50{7#2%5PFyc<}6_^Dp$Oi4X-d`qW&A41OY40)FFl0$8509DgjqrH@!{;+SWO zgAi%X9((dc>CY0NAwWb2fz-TdE(8++RZ7Y86vk-Z4&=Lt;Ys8n633WR)eWL&vXK6p zv^JW<`|w0d@ev2T&dXqB?Z=9~SvZ*U>{pXU6NvKRyU5Ujqm;?F6xX~~dT-#NMBfB| z8Jsqcb08M1cljk#^?w5_Fg(T!@6~rh;mlomDC4na58y4q0mH)wLWpn-NX4^M?BD1+ zj{FoMIfN)AO{c4*CB&7xX9uV`QVNgat&up`wxWN69(jL@IT1ez+4MD3)66CK7F?Y# zF5O4oH-9nbj73<$r{MY({~rMiGQ|Q6u(r zQY@*7kLJB~r4+`uW8z7zWr21wxcg97dM|JzUPMA5S%xUfhXsBJP3AZgG+PgJJh4@q zslfvg6&Cp5myv4Z61g6$dbX-fb_Rx*q7aq9P%#S7KRA`TXvLem%B;BB8Onc10VUU%yql76u zOT~}MuYW?{F!yQOl``fSBcuelBAWh(Pi5c*8D>VgzkOwQxA^wSp8>Y`_DPFCXz*VC z-YF3uuU4Ufd#MS|umZCH113g8?r)C=SjqDhShB18h&gz?vjc;7<^51LC*qxj*K#jo z|IK44ViDv#uBmpuho=NcAaCb6;K%fB!0sOdlYjF~1fa;jayaj!EN5^{l=)iluu>+< zl7T2QO67Y5Jea?kk}5im)403wVJdSnAe@AQu?&Y#cnpi9h+6 zRwBzO6QfIG_d(Rw!v(LSOp#$j+SNQE6ad;JH!uuQvar0@3s52=i8p7ieT_G-LT_bD zo_}xN+m`pIp6>Fxj2_ha~2YC>o*&U_Q?LWDBoHIc$ck%D}n2SP^RibOYFjRSux z4Fr(hD5{~CP@IyG=eL>U0k&yhl!RVX`Q|U*1dgfzg_Q0g#w-+?Af=62kkSByV`?pu z&Du4LagF2`4=H;K1e6>E;$i7qIk&j((SK0@r_vk(K!%NlZ}NU#sgU;(m@8C8UnKtc z&b+}3Y?m8IWo|c9kg!;w0iS(UTER^C>uWJb>)X9#9e~KFP-PxTv1J~ioDk&=TzXe9 z_Ah2w%&70$kSQRIk@A%lgF9<2W+@|0TPjC}KW+A_XjhcD+-Gm+jH)x76I z`pk9;0#Wdi5A*=T0US9G5Q2RRZ+~yb%2ABKTjFN4cBC*rXrnD(h-j;A)-=8lMsK4W z_sYBC*#be_s~K5AUBG(HbAbB5LO{!1AY}`Y*75wa-A$fZfcrAfaeiZn1EfKu+1-=Y zUfB3X8zH)uGvS)Sm_e1QU{ra7CV1?r^T4g5@zrRE@G#7GCI4r|v{!p)!GB`t7DupG zabP}oZ^s*M?CeV{XRhnwwC@G0q;d)ak38cb;#S~)L`I^Z?t@+M$_jEFWWnyy#jLyV zI!=thmU!t}cVp+SoS!JZmGkQ6&J`nj0V%BihHqlqWJ6T%-a^zTZ)USEbnm}_1!9xN zyx$%3=~@%-u|Mkea=ev(#D5pt*V}{sc+krmFUF`D52mAbK5h>Ble|B{d+e98gURY@ z_T(hbP6wT7FVEVo_DO!wNBOJPDC_pelUA>nclM=roZZgeyuEeMmjx?_wVAapS4 z9xcZhJ+;7|tq4*FlY_}9pG-&n67s%jBY!;{j3#4Ci4G5jP4cXj_46}}!g8zM$%fNO z*2Vw&lR-8Cr-VgzG;+zX?)Hok$vB6f8GQ@9thvH&XUhP(*YTyjL93Ia=BU*ht5^;u zP5^@T-s`+Q1>VHWAb(<+Z(wWbI3T|bnHnirR@6*q`>!ugNN}aVxUYMy<8b)aI8(F> z<2SSnjF^n3c>%y9l@}>6tjPvP0Yn4Gh*in4_yG`f^)2;CzCkGoV;nMMoDB|N}fGfdH!4l=_{O?Hco-7X=c$)K@T)E1*HurvC;f@MP~% zwz?{%#*kMJ2ZPCYGHMO8o7XmObgo^wab>;Ty0+Q6a&+_h5!}qd(iHqhlWu!rFzuew z;Ic0=D90l@rUC4e7CrL}5!MT4d zCB4>R-Yb-}M#s}r@EJWxo3w-CwR^4cxHuM65DvCuNNqGR{-BSZUzRbdy?J{_v4W?a zblX`cKWa^Titbhstdby}glx z-8>MSoOH*HZl{+oi?)f?7TW(~*ntb4(*Z+MH}+fo*0JEmQK!=Laemqwo(x8iq{x0s%+5}7Ocy{*iN`b}s0vFO+QtzfvyfCrV`jH8SkTPS8v<#F zu6)-z&Bclf8eG?L)Ly_Wb!ze@HQMFNLKoYeb^D#cS!0|}o^((1!E~~mfrYn?TCs&e zB|^AfcOYgHmHqXv@Wzl`NK1jzccT?PDhN>w1L`7&r2sX5QBPq=En8n(Q&$C=q+C8m zFt&X3J#E-4kCoz(hTjll$-XQ|$oRvjLYp=d8+v92f1Bl)bs3SUK7^1U?6_N_m-mk+ zCjn!s2B>{G9=7@*|LFD`d{9;;{z5}g^)`E%pWi-MvdWP;4MJgxeX#Yv_7BIyTVJkn zj5`r6Z&bs7U5r$sy)m91s&`vns|6Ga|5l6-p)fuw32%atMI-@QL6sm?!t(O^%3DKy zfN#)k9z+0eY$Lw{9rNnd%O{!mR|qPAEk#CuiW+DgZ=fH9(e1nj1nJhmOftC#Ret^8 zXc=xCV=t+vB*Pi}qV1j7%UC27L?}MO1})B%j6OSm9XOcSzL#X`#30V=7^5>9{AH*6 zYKH2;FfhZ`4+pQIepbU&L8|rDbP^QM?Tz8472O5FSndj>KpwU{dpEcqT+zoAp?$du z{@f8hgKuPAISP5wI_%|lbAtmc~wv$6q&XC=t{O z*gH^vCL8}RgT=$K3nJpCD{mlgs5cZ#8a50vC`YMt5nm!MZ*`nlS@Y#&RQP=`c~gMU zz%;zPtl(_06wgS66ONIM+k;_FS2yS#EQ#BDlPQSoEwsaa{c?43qO4X3{CvA&)K!bn zB*c$BECtfeC^h3B<#s|``}uf`_(FK9VZ-Eqe3&~qiLAS0VJQj`68G{}UrNQhY-O$f zc|w>5Y(kLXfHQ;`HZz{Y$wXi@ET_tgXu6(I zp&_ZunNc5M5DJRZlIdJOSh}n@u-O)a)RnhRiM|wI?k6;?to%j;#<$;)B&)1%v(>PF z+vIT2IS&e;nbLYRI2$vJaX(Z=QEc_|>9ZQvY4E)^c1$U(W!Pk-3Mw6-oq(eN+j-9| z8fqDTi9avG%&c$o8tedf6tL?F;QS7MGwIy9mA%Ds)%OzJ7i|~KvlRt%Ky`s9_)WnX z9)+HZ!Ooka=@;F8m12A#B``ijXJ_$$AowbVv~v57L5w7FT7?cFMSyxn-Ip|AxfIN- zY-f0iMge!qbD(SZx5p2@YbdDh(fKm^`Ki;*i*z=P7g#{L3EH@xkdxxVjRqToZG`JO z*rU)Rrr_6M7?F!mXd-;7<7NG9 zHG9O3%OEF!*ULv+*)kTYA#mszT(%C|>ci$h<8oMt0UjLT;}8e4GN*v$v%#nX?pnUW z(5EAS)HP>~z82xo6C?p_8^E!R4PpIBf44ssV9D0ugwmQ$21kSTlp+huwd1$UQ#g5K z|H_t$wT`CxdzSY=Yi@+-ngS6B+{i@diX0T!umj6`vPWgUt4Rsb%g1?Z)IO1~_q!&8 z@KdY*5+!c|vkXu>>>@`j`C*0lD1ViY#<_s`dN4X`jhOZH2$eMaG14RIo>IJMf3@5B z5V13IwGo$SV@zZyM}+&bY(P<&FpF6mdm{ z)86;`-I$2p;22%3xrn|WFvtZG=MI5laUbOYfiEGdxFyS?W;R@QO$9HmON>6C!ZtD25e7c7A?5g>1Ejb=4C3GnK{^%Nw1| z4kn^9#*>Q5aefGNW=oRNu10ibE4y^bm59o0Woxd$DGa(YH3Ge#hypG9MRI7_0jxlI z3S)TPNfbNPp;V34kqECcF?rA#Hc8CkW(n-`mEouW}p zd|G#L_sRaZG~;bVvtbUDlTv@u>h{H{uvM|vI;Xg%lsgsYy8ZATnV^ZeZ((IHage{< zXf(_`hiOJu5@9qdsRwE3f3+RkE1I{K_~>)|vgs&i1S}g)$0y5g%uEZN%rG!@F*Ylm|sWQVsNY(B(XT+U`DO4KeH5=lI%{lmVI@h9`$TJ zgWefD78&cQ1mq6GXH+E35Ie{p*>KrDZ>Gnh;U zr_eU#j;JtNf2uNDL_DezF_*0LRl`0In|>spH0agoxR!m2n!Y&Kloo#0xENvd?)2=V za8TlW;UX7tyI2T2R~sw=ptL~A&EXgG9qejT2*?mF&J4F;;RdgwfXOlB%~M%=66D_-e;DxLRM|{4Q09=e74WOWjQKIdBJSs%w&J*kX4rxm7Mmk(h2bJA z;~!-j0G520!TQIw;%c(IrERCs~AyY8W=VpWI7+xgr=^|ixr7;;imR;24 zm3UO$W}@bd8bu6BZab5D4c{>1htB%RK%KR5)gk(az3C`Me>9Sw1uVgYoeYI`Y{={m z&id>RbHAUT9}cj15q1;^cT041*vDqMn_`}#z{cj!bdmXL(Cw&_$`G&vmyyIF2#+fLyN-Z4byTs%3pN{)A3zhpoE~YQHd-Du{fAqSu^b!J15!_J?vq% z&93Z|!ATiFIkYV|ubP%9dvFwU5E0JEGsOZu%#XW$B>Ruc9pH#8WXnPXTarTvIg*dt zw%LXi3>bLSeZ8MgTBfB9T6o&1lNw4ge>h6e8a-~0^1L6is#$lscEe&YL)V&hr)t-& zYF4OPvp%v&+}JQ$03~LILf7dD^=#I~>rs<$SmQJNn9;{++ck?)pqDsllRbH``yktU z@U_JUMa}xpQtXRvtQ#bMo(?8?=U#uDk0wP{y^6b7=2mx^#9gkKQE=F&Kjxt-e_GGD zIL=Fp)pe_ETrbAf)2vTzyBoHhwc`89_U8p;Zdlbk*G!Xo5aEq8pKI29bj4@#6Gd## z3Q$*9Z`eLW`l0b#Kb&+YxpUP6QUd_A-d;Zb% zi0%BxlA${lkrkKasW9So_Go&Df8!sv&<-=3&#$xP2*0bAC*tz%A9nUzSpCE_twg=9 z*x}$js`}(nALnp*Ad$=8s*X^fsH@YWDGtBHxHapQJkMW4R()*j@eJ5@AGD2_xuibD z%zu2+Jwn>6dIoORpGR1&J3TF<^*>SDtJZ~K5n6%8DQ19K2<%t8_S{TjRXU#$JTfb?bu}2Bo{Sqb`9{8+O6@?k|aP z%99G+Ss9;HL?v-==pxG9e=42kwBLQr=IVEf>UMAtQL?dN#i%ph-NC5)3v+3`#|-j{ zz0a-iok3Cd4+q0yv$bdpIw4(t2w9!(ahJ*>$2M`swb*$*?hKu&?7SXz-iSKWnkzeR zM4dO|&X`9kJ8wpvuf&}ZuvB)w5_P^BcSht=+4*YJ`C8l=@j+$he``_a>v3m<0hOJv zN1boPonc6ooo_^)Z^oT5zg2d=8Fj8loyEgf_P$iV6!kxf`d=@Kx^;+S(M7c!MLmiE z=_HP<_Un&vR(mh%v}vQ**^^6pigPi>$zXs7GF%jmC}Y3=rM1j;7smvvi$t8fUw7v* zyeF3xMzS%EzH4yjf9KLlxBpc{_4-X4kRezdcab4O5Xco59!rUQ`4>^wtJXE+tUhAt zazC>$m*+h=Ezenn?bn<2v=jSoa#EVVn)QWa%N?_hDk@F0{z3@KKL7l4%fQvu>o$OY z)!plKv1M|+k8sBHwBe3T1xY~J2(nc{T82kp^G2&Txu2g0f5qHuUyRjj(WWVfFAcnG~>SM!Vqnb6UhI`~Y8Ese9sSY3nX9 z-4Avgx&1;-vX;rNlOQv6k(6LlnMb|MVF9zYZ|L$Nf1pAKC~a5SeR4gM6JRlx^BQvE zLLL8>R8EkQ)MW!7IAm@ml$drRteU0G&-zGFGjVM)CnYX9w{4Tv$blap+r)v-RjcQ6 zIpZQ-deEzZ=Z?C^IEZE@Op_ev;R&2ZjnFqTSgARXbdZao%9eo~+>Vo#LUD6n9Pf%{ znCzR{e^k81)GCKJp&?dv+)!ppz1iyy(>e8m7Q!dlhTKtVV0(f8E?=VXF4-aeowVr_ zSE5LFKAuKYPVu5I%ysFZg)ug1M%n)06#^ToRuG3WN{$_J(T1EIl#cei|M8Zj@~cJ) z2`;~WF%$#8<&PGbDZ%-bkB_}cax)kF4)~uAe_mPQN40c0=b^$GhZLTK(>D+Qad*zCPY=maFtMev>sRmC~$_R`#K7 z%%yft(#>~!m`yk2brt5#yR ze+P9l{6zPX!N|Z1n!-XuJ&hGKLV;@l&VOzp{p(+u`TErS>(8z+Y&O^h!KFJxsmJJS z0|(v2%5sXuoV2qM4+AK9o;*Oz9sdZpZ(wfO(SxesaGr(g4$+j(Mc5WrRpn%Kd_vU4 ze~}85W<)$|?hZn4i6#el6^^q;kih%!e>5Gn%kX;3GCzQ1stTu3L4e8MMyE|L7Lp>` z)}-AV&lwd(AwVsp5{hPO9vmpBgJHYcv1wqRD+nIcNj-BSgXujMwlY$&@b!A#CW3m$Ml_%UgPwnOxyp`Pfy8moYP2@u`ED zF;+3vVFq#d#aGBPClO_j#kGPnh;?z?FIpRToBiKqLs7k3S9mK22mkxu`hd3*pv7EH zzrD1T{cqq9X4|+T6f}Rk;Hop4e~MHgDsu)-7fR1;Smg*%P+FKzKmvfrAicYp$CHTm zK&+(&cSN~OCFmh#yVx%4R!RjwP2Kw1JP|Zcw+uzUN8Pe4@Cvk`Zl!qg@pUUWvK6aT zWM4d8&*w`DhbreEFNmQcT<1|KvPWmPxyK9UK`@h)8kgN>xlkt~vqk&Zf15VmZNy^l z1&8KVnr=YNLo(QOo7Xg6Ibn_6$Fa!cj6R(L@<-faP{pZC0?%T0+y|aEc<={lBgOKT z;yal%Y`nAxa@FRR6VrmHf`Z8HU~)NJZ+N%?0L4PW9KjzqZX~^a;jyjRGh3WcUDUzb zB*(5h7dxBZ!5nk(&>@JVf7LTl+68|5;(%QReg`dd10>9@xaEm(xU{BrOt#!927Ye( zvwMJr^)=dbOTu<+TdBBow53LNmoRU8oDfaR6Rzuk8jf0 z`LOU$a4#kq%M(bcEG!rPtb=9-mctTRsrc;3BGE0!4n#;OxZMJvf901TI7|0xZUrv^JLtIb}Mwu84hpJ2eR9kdjlu8L6ajp9y*8FG-14bF5uh5fTF|s0#E@;X}6< z(T$L7nb8Vr@EdCefBE;r33e#|t<=K%XQv;~l#tOW{R-Ol z8a5TJ-$81Gd&9Vp3BBymNiF2j$lD4L@wwr;llvKNf3VKwj?}{WN(t+Euu?!?#+@Qx zDhMkzpHRZ$6C+%jw@btr& z4BvTf-JnTBS`Wk^Pd+`wEpUU;DR+y__!cW%3r)s96$*fpZ!z{u8;icO=r*nrcLefr z{?Rfef6)~&;GZu61^mF_)63z}Qvy){j&a>2&)k_(_E2@O-tUb^+uds}Fr9yrQCuLh zWh7`W;-mHyT2?G>gi69c^4`v)FASXYp zawuiun5}odZ!V0$1@_P>>zntxV_x&w>f`=)DMKV=t^k1f6}I^=GS%wNLf|zjd0J^P zleSh62NjVN%%@c@Jmx-7Rurc?@gx@I19qkN?~2BY~-G za@gCe%&B^Nn+rOu;rdTq8tLVWC}I~IYgjlw^tLei>md%I4mb@zw?0uaTMmsd!C z+GakYQK}%Dh^X1xbHRg^g|kDC>sCOgt1cXH^KD&yh3j101oTNf@rI6C3Ju1lN`#yF zTCeR7%l|5}V!;jK=$o7eZ}hfueM}FJOQzqAVdL+&@)is>yF*-p8O6vBg~qd5gSDn; z8lbOj;4IMRj~sDE2Vk3Db5(KF9pMgt^Hy&N`!>rOJZ&|~T1U8S!_?yJK)uvLN2liM z9wWH6dT{W=!NJ*TgTCY4w{S53D#$Vuw7emg5JuW(m~I2?3MS3c*An-N$&%R|O!BC} z#S#bk#HKmBRn5%huRd>lp?qCgkg?@05o~{2Z@)Nm=Wx;~u2VLjR)}niuW|~1OpQM+ zGcmbzM{OJe$Mam~>SdZA54_nXfw=*BcIHYA8_P!TEh4D2u*!;~{cw}M;6meE$^Me@ zhyB+|Kgu#|d%P-!G-P#W)Uu7Lg~fN?xZBPxUWFx$_P{Gf_$5Ho^VAW{!49L;k{f=mC`5umA2)}%bJ0*li&jusF~wYL!7^tp8@r_RtgmDn6vIqd zk=b=i#51P`^SJ7{HJg*ZUBDna+;7J{=Vx>hxa-eockIpQr30k&CBWQ&L@3(P9XGAv zMU*^H{xDZbsblP%{v7;DUjOHj;~Y!(j@*3^fEWuYsb` zG7;ZaXgX8lWlI6WR0>ajNT^d?P_DuF9i+$tw4B3xD6oA(*@<8)a{@{< z(-X#`5QSPR?k%!0sIiwlm_@hy$2e?C1%Ye zl)=#vPJ?NiK;|iIf|v0bh6b%HWls<_SPO|~alN?QypV`fho3Bq>>-etMZsA1?6+I( z26c{i=DmM1gk_bvDm7xh^iK2ciR=N*XrPQU1k>{P`Uh*i3RCWG<#XFRcu!;pkp-Uo zhFv^DLq`DQ&yKi%Eq2Hi3S}<8d7-H(u(l`VhjKwTRw>Ko)>&N7nU9R5(Yb>cY48rS zhW)aqFSz8xP~}F{80Zh(&g6s$Sx^-)rJdQ!gd&C7CW#!QulMkN;qSZo z*|NHMTww2}6uMnWZ^ojhb>OxEd0Vc#%~vN#(;gOZu%zjK3S?gWR!69(=)gB5$^u!t z;VrG&XSTwsX(qb|FClTV^aSb4)L`hw@fd96HFHQ4Cf|x^%^N&G6M;obL0TIt?J-}f zdAsz2BIgsp1Vq)LpBLr(Dt^_KlpZYM{Zz%bSoQS{EMQ?U@SqQcZNI$zM$ACEx>|SV zkya{?qBpUBSQW$Tu8J>OibpqTLeL$)FVjE^Ub#nZRFCIy!+7$-IzK)aGrgYu?HVd9 z4f&W2cG2PYSN_z}F8D`aet)&9zJ&Elv$^W|o@$LO4j#_fhU!4U~TxX=zt zXx>XyXegmgu_1$`LL0jPDKxW%g_hy#*ecXYw0%4|@4;fCCzc3C;#r$In77_BM!gq+9E%}YmbHo-WJ&<2Fd%WZ) zFG+8jO>?}a5aB_pe#BX*vbtsOa7?ur53vK(Jjvlv4whsRC=TE`Hl5(aHEv2dSVCS0 z@8By~3itVX10*aCmh|3UFsYAix2O>hNga=WIPo?YYL4Ax-fB}ZB-XUJnXgH|n^F_e*d2$QmbNyn&5oD0o-P^Zu>~I% zd@ZUAUBVJfy^qMBo$wXf!}9?6wY0tcc>C7gcC%S~xwF0fa);l0JGHfY+doc!@8QQ! zukO`;+TQ+&<^QZ5qs_6jIoYXA@nb4KUhULc+uJR+IjjwKwmau6&VSjd<=fjii;seD zUG(ej)KL0j=hm(5?Y&*LXkwV*&P$g6ywfXGC}!+XEC--<^g!}et zb4;YJ5r}QEsx6Lp1%*{@(cKMNfG2D%^^;xv*xNqa1;G|VSijDCu&wsG{6*{gY4#W|JMd*Ayqcw0w9~~~>oDwT_I*BT73-Rqce>b_{4PJk0Ol9A zZ|&$ZJ^#0lz3L`b`>*_n|DpQ7HA;6CSFT)Psag2A;+r>bvKXQNcrbFMo12?Ksm#M} zfLyXqn28aHGzwfpcau7Q)Ajffe%3XfTWj37nx6tD^SLNJYMpj_=UbWQr_`Ac{o0yo zi{0S54cph&{vvJgc6b7XeKM!bXp%3Cmns|VZ`l5xK^V&aP&%c{u+?G42*+I-7C|3m zGE`T*_$G(CkvsNFQOF=K!2-i|V5B@SY%55^_6EFu#6il=5WyK*xqIK zYq*$zs?t?>o(o_}D0U&#qH8L=e!bE0;)fql7;e1ixjV_s7_OaNrLP{K0{U1OFdq Kukz#oz5xK@hy1?) delta 23556 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 P#DV`0<}C?{0J;GHl`DPt diff --git a/dist/dist.zip b/dist/dist.zip index f7ab6c8e190a433ed808901fbf816f3e8c65e493..1982b813c109408cc2a6c87e83456057e066f315 100644 GIT binary patch delta 24147 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 ik&{$oBLhQ{?UQWTY>~2@ZsIDj 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 O^^+ANa<#?(i2nyQ#sl8~ diff --git a/dist/dist/react-console.js b/dist/dist/react-console.js index ad86b2a..0c644e7 100644 --- a/dist/dist/react-console.js +++ b/dist/dist/react-console.js @@ -130,7 +130,7 @@ var Console = var ConsoleMessage = function (props) { if (props.isTable) { var data = props.value[0]; - return React.createElement("div", {className: "react-console-message react-console-table"}, React.createElement("table", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement("tbody", null, data.rows && data.rows.map(function (row, index) { + return React.createElement("div", {className: "react-console-message react-console-table" + (props.type ? " react-console-message-" + props.type : "")}, React.createElement("table", null, React.createElement(ConsoleTableHeader, {headers: data.headers}), React.createElement("tbody", null, data.rows && data.rows.map(function (row, index) { return React.createElement("tr", {key: index}, row.map(function (cell, cellIndex) { return React.createElement("td", {key: cellIndex}, cell); })); @@ -204,9 +204,14 @@ var Console = log: log, }, _this.scrollIfBottom()); }; - this.logTable = function (tableData) { + this.logTable = function (tableData, type) { var log = _this.state.log; - log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] }); + if (type) { + log[_this.state.log.length - 1].message.push({ isTable: true, type: type, value: [tableData] }); + } + else { + log[_this.state.log.length - 1].message.push({ isTable: true, value: [tableData] }); + } _this.setState({ log: log, }, _this.scrollIfBottom()); diff --git a/dist/dist/react-console.js.map b/dist/dist/react-console.js.map index 65d1bd3..9a5b478 100644 --- a/dist/dist/react-console.js.map +++ b/dist/dist/react-console.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 91b3599f80f579d73d26","webpack:///./react-console.tsx","webpack:///external \"React\"","webpack:///./react-console.scss"],"names":[],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,aAAY,CAAC;;;;;;AAEb,KAAY,KAAK,uBAAM,CAAO,CAAC;AAE/B,qBAAO,CAAsB,CAAC;AAQ9B;KAA4B,iCAAsC;KAAlE;SAA4B,8BAAsC;SAOjE,UAAK,GAED,EAAE,CAAC;SAQP,iBAAiB;SACjB,oBAAe,GAAW,CAAC,CAAC;KA2C7B,CAAC;KAnDA,sBAAsB;KACtB,yCAAiB,GAAjB;SACC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb,CAAC;KACD,0CAAkB,GAAlB;SACC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb,CAAC;KAGD,4BAAI,GAAJ;SAAA,iBAcC;SAbA,yBAAyB;SACzB,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACtB,EAAE,EAAC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;aACtD,CAAC;aACD,IAAI,CAAC,eAAe,EAAE,CAAC;aACvB,MAAM,CAAC,UAAU,CAAE;iBAClB,KAAI,CAAC,eAAe,EAAE,CAAC;iBACvB,EAAE,EAAC,KAAI,CAAC,eAAe,IAAI,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;qBACnD,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,gDAAgD,CAAC;iBAChF,CAAC;aACF,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC;KACF,CAAC;KACD,mCAAW,GAAX;SAAA,iBAUC;SATA,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3B,CAAC;SAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACxD,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,qBAAC,IAAI,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAvB,CAAwB,EAAC,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,OAAc,CAAC,CAAC;SAClI,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBACrD,qBAAC,IAAI,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAvB,CAAwB,EAAC,GAAG,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,GAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAE,CAAO;iBACjK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC;SAClD,CAAC;KACF,CAAC;KACD,8BAAM,GAAN;SACC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SAC7B,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;aACxB,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAClC,EAAE,EAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAC,CAAC,CAAC,CAAC;aACnC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAK,GAAG,EAAE,CAAC;aACZ,CAAC;SACF,CAAC;SACD,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAC,0BAA0B,GAC/C,qBAAC,IAAI,IAAC,SAAS,EAAC,4BAA4B,GAAG,KAAO,CAAO,EAC7D,qBAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,GAAG,IAAI,CAAC,KAAK,CAAC,QAAU,CAAO,EAC9E,qBAAC,IAAI,IAAC,SAAS,EAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,EAAI,CAAO,CAC/D,CAAC;KACR,CAAC;KA3DM,0BAAY,GAAuB;SACzC,KAAK,EAAE,CAAC,CAAC;SACT,KAAK,EAAE,EAAE;SACT,KAAK,EAAE,IAAI;SACX,QAAQ,EAAE,IAAI;MACd;KAuDF,oBAAC;AAAD,EAAC,CA7D2B,KAAK,CAAC,SAAS,GA6D1C;AAKD,KAAI,kBAAkB,GAAuC,UAAS,KAA8B;KACnG,EAAE,EAAC,KAAK,CAAC,OAAO,CAAC,EAAC;SACjB,MAAM,CAAC,qBAAC,KAAK,SACV,qBAAC,EAAE,SACD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAc;aACjC,MAAM,CAAC,qBAAC,EAAE,IAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAG,MAAQ,GAAG,MAAQ,CAAK,CAAC;SACvD,CAAC,CAAE,CACC,CACE;KACX,CAAC;KACD,MAAM,CAAC,IAAI,CAAC;AACb,EAAC;AAOD,KAAI,cAAc,GAAmC,UAAS,KAA0B;KACvF,EAAE,EAAC,KAAK,CAAC,OAAO,CAAC,EAAC;SACjB,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC5B,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAC,2CAA2C,GAChE,qBAAC,KAAK,SACL,oBAAC,kBAAkB,GAAC,OAAO,EAAE,IAAI,CAAC,OAAQ,EAAG,EAC7C,qBAAC,KAAK,SACJ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,GAAa,EAAE,KAAa;aACxD,MAAM,CAAC,qBAAC,EAAE,IAAC,GAAG,EAAE,KAAM,GAAE,GAAG,CAAC,GAAG,CAAC,UAAC,IAAY,EAAE,SAAiB;iBAC9D,MAAM,CAAC,qBAAC,EAAE,IAAC,GAAG,EAAE,SAAU,GAAE,IAAK,CAAK,CAAC;aAAC,CAAC,CACzC,CAAK,CAAC;SACT,CAAC,CAAE,CACI,CACD,CACH,CAAC;KACR,CAAC;KAAA,IAAI,EAAC;SACL,MAAM,CAAC,qBAAC,GAAG,IAAC,SAAS,EAAE,uBAAuB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAC,yBAAyB,GAAC,KAAK,CAAC,IAAI,GAAC,EAAE,CAAE,GACpG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,GAAQ;aACzB,EAAE,EAAC,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;iBAC3B,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAC5B,CAAC;SACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,CACT,CAAC;KACR,CAAC;AACF,EAAC;AACD,eAAc,CAAC,YAAY,GAAG;KAC7B,IAAI,EAAE,IAAI;KACV,KAAK,EAAE,EAAE;KACT,OAAO,EAAE,KAAK;EACd;AAgCA,EAAC;AAuBD,EAAC;AACF;KAA6B,6BAA0C;KACtE,mBAAY,KAAmB;SADhC,iBAw3BC;SAt3BC,kBAAM,KAAK,CAAC,CAAC;SA0Bd,UAAK,GAID,EAAE,CAAC;SACP,cAAc;SACd,kBAAa,GAAG;aAAC,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aAClC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,IAAI,cAAc,GAAG,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;aAC3H,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC;aACzE,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,QAAG,GAAG;aAAC,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aACxB,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;aAC7D,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,SAAI,GAAG,UAAC,IAAY;aAAE,kBAAkB;kBAAlB,WAAkB,CAAlB,sBAAkB,CAAlB,IAAkB;iBAAlB,iCAAkB;;aACvC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,EAAE,EAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC;iBACf,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAClD,CAAC;aACD,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;aACzE,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,aAAQ,GAAG,UAAC,SAA6B;aACxC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACzB,GAAG,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;aAC/E,KAAI,CAAC,QAAQ,CAAC;iBACb,GAAG,EAAE,GAAG;cACR,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SACD,WAAM,GAAG;aACR,KAAI,CAAC,QAAQ,CAAC;iBACb,WAAW,EAAE,IAAI;iBACjB,SAAS,EAAE,KAAI,CAAC,SAAS,EAAE;cAC3B,EAAE,KAAI,CAAC,cAAc,EAAE,CAAE,CAAC;SAC5B,CAAC;SAOD,iBAAiB;SACjB,UAAK,GAAG;aACP,EAAE,EAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACtC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;iBACzB,KAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aACtD,CAAC;SACF,CAAC;SACD,SAAI,GAAG;aACN,KAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;SACjC,CAAC;SACD,YAAO,GAAG,UAAC,CAAgB;aAI1B,IAAI,QAAQ,GAAW;iBACtB,SAAS;iBACT,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,OAAO;iBACP,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,KAAK;iBACL,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,OAAO;iBACP,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,YAAY;iBACZ,CAAC,EAAG,KAAI,CAAC,kBAAkB;iBAC3B,SAAS;iBACT,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,SAAS;iBAClB,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,CAAC,EAAE,KAAI,CAAC,QAAQ;iBAChB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,UAAU;cACnB,CAAC;aACF,IAAI,SAAS,GAAW;iBACvB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,SAAS;iBAClB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,eAAe;iBACxB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,oBAAoB;iBAC7B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,oBAAoB;iBAC7B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,UAAU;iBACnB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,QAAQ;iBACjB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,gBAAgB;iBACzB,WAAW;iBACX,EAAE,EAAE,KAAI,CAAC,IAAI;iBACb,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,aAAa;cAOtB,CAAC;aACF,IAAI,UAAU,GAAW;iBACxB,aAAa;iBACb,CAAC,EAAE,KAAI,CAAC,gBAAgB;cAWxB,CAAC;aACF,IAAI,cAAc,GAAW,EAK5B,CAAC;aACF,IAAI,SAAS,GAAW;iBACvB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,WAAW;iBACpB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,YAAY;iBACrB,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,kCAAkC;iBAC3C,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,kCAAkC;iBAC3C,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,WAAW;iBACrB,aAAa;iBACb,oBAAoB;iBACpB,WAAW;iBACX,0BAA0B;iBAC1B,WAAW;iBACX,sBAAsB;iBACtB,WAAW;iBACX,wBAAwB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,QAAQ;iBACjB,cAAc;iBACd,CAAC,EAAE,KAAI,CAAC,gBAAgB;iBACxB,WAAW;iBACX,0BAA0B;iBAC1B,WAAW;iBACX,kCAAkC;iBAClC,MAAM;iBACN,EAAE,EAAE,KAAI,CAAC,OAAO;cA6BhB,CAAC;aACF,IAAI,cAAc,GAAW;iBAC5B,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,kBAAkB;iBAC5B,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,YAAY;iBACtB,MAAM;iBACN,GAAG,EAAE,KAAI,CAAC,WAAW;cAKrB;aACD,IAAI,aAAa,GAAW;iBAC3B,QAAQ;iBACR,EAAE,EAAE,KAAI,CAAC,UAAU;cAKnB,CAAC;aACF,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC3B,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;qBACd,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;yBACf,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC;6BAChC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;6BAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;yBACpB,CAAC;qBACF,CAAC;qBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;yBACvB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC;6BACjC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;6BAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;yBACpB,CAAC;qBACF,CAAC;qBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;yBACnC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;yBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;qBACpB,CAAC;qBACD,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;qBACtB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC;yBAC5B,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;yBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;qBACpB,CAAC;qBACD,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;qBAClC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;qBACtB,CAAC,CAAC,cAAc,EAAE,CAAC;iBACpB,CAAC;aACF,CAAC;SACF,CAAC;SACD,WAAM,GAAG;aACR,IAAI,GAAG,GAAG,CAAC,CAAC;aACZ,GAAG,EAAC,EAAC,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;iBAClF,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACzD,KAAK,CAAC;iBACP,CAAC;aACF,CAAC;aACD,IAAI,MAAM,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aACnD,IAAI,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;aAC5C,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,GAAC,MAAM,GAAC,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;qBAChG,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAC;qBACnC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;qBAC7B,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;SACF,CAAC;SACD,UAAK,GAAG,UAAC,CAAiB;aACzB,IAAI,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC7C,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,GAAC,MAAM,GAAC,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC;qBACvF,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAC;qBAC1B,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aACD,CAAC,CAAC,cAAc,EAAE,CAAC;SACpB,CAAC;SACD,sBAAsB;SACtB,oBAAe,GAAG;aACjB,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,cAAS,GAAG;aACX,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;iBACnC,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iBACxB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBACzB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,QAAQ,EAAE;iBACtB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,YAAY,EAAE;iBAC1B,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,wCAAwC;SACxC,eAAU,GAAG;aACZ,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;aAC5B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBAC/C,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC;qBACxB,KAAK,EAAE,EAAE;qBACT,WAAW,EAAE,eAAsB;kBACnC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,SAAO,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC;iBACpC,IAAI,SAAO,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC;iBACjC,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACzB,EAAE,EAAC,CAAC,SAAO,IAAI,SAAO,CAAC,SAAO,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,SAAO,CAAC,CAAC,CAAC;qBACrD,SAAO,CAAC,IAAI,CAAC,SAAO,CAAC,CAAC;iBACvB,CAAC;iBACD,GAAG,CAAC,IAAI,CAAC;qBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;qBAC3B,OAAO,EAAE,SAAO;qBAChB,OAAO,EAAE,EAAE;kBACX,CAAC,CAAC;iBACH,KAAI,CAAC,QAAQ,CAAC;qBACb,WAAW,EAAE,KAAK;qBAClB,KAAK,EAAE,EAAE;qBACT,KAAK,EAAE,CAAC;qBACR,UAAU,EAAE,EAAE;qBACd,WAAW,EAAE,EAAE;qBACf,GAAG,EAAE,GAAG;qBACR,OAAO,EAAE,SAAO;qBAChB,QAAQ,EAAE,CAAC;qBACX,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE;qBACF,KAAI,CAAC,cAAc,EAAE,CAAC;qBACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;yBACvB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAO,CAAC;qBAC5B,CAAC;qBAAC,IAAI,CAAC,CAAC;yBACP,KAAI,CAAC,MAAM,EAAE,CAAC;qBACf,CAAC;iBACF,CAAC,CAAC,CAAC;aACJ,CAAC;SACF,CAAC;SACD,oBAAe,GAAG;aACjB,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACvB,CAAC;SACD,uBAAkB,GAAG;aACpB,KAAI,CAAC,aAAa,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAChD,CAAC;SACD,iBAAY,GAAG;aACd,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/C,CAAC;SACD,kBAAa,GAAG;aACf,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,eAAe,IAAI,eAAuB,CAAC,CAAC,CAAC;iBAC1D,KAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B,CAAC;SACF,CAAC;SACD,yBAAoB,GAAG;aACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,eAAuB,EAAE,IAAI,CAAC,EAAC;qBACjD,QAAQ,EAAE,wBAAuB,KAAI,CAAC,KAAK,CAAC,UAAU,QAAK;qBAC3D,WAAW,EAAE,cAAqB;kBAClC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC;qBACb,eAAe,EAAE,eAAuB;qBACxC,UAAU,EAAE,IAAI;qBAChB,QAAQ,EAAE,wBAAyB;qBACnC,WAAW,EAAE,cAAqB;kBAClC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,yBAAoB,GAAG;aACtB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,eAAuB,EAAE,IAAI,CAAC,EAAC;qBACjD,QAAQ,EAAE,wBAAuB,KAAI,CAAC,KAAK,CAAC,UAAU,QAAK;qBAC3D,WAAW,EAAE,cAAqB;kBAClC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,QAAQ,CAAC;qBACb,eAAe,EAAE,eAAuB;qBACxC,UAAU,EAAE,IAAI;qBAChB,QAAQ,EAAE,wBAAyB;qBACnC,WAAW,EAAE,cAAqB;kBAClC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,gBAAW,GAAG;aACb,KAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;SAC5B,CAAC;SACD,uCAAkC,GAAG;aACpC,OAAO;SACR,CAAC;SACD,uCAAkC,GAAG;aACpC,OAAO;SACR,CAAC;SACD,0BAAqB,GAAG;aACvB,OAAO;SACR,CAAC;SACD,yBAAoB,GAAG;aACtB,OAAO;SACR,CAAC;SACD,mCAA8B,GAAG;aAChC,OAAO;SACR,CAAC;SACD,kCAA6B,GAAG;aAC/B,OAAO;SACR,CAAC;SACD,eAAU,GAAG;aACZ,OAAO;SACR,CAAC;SACD,gBAAW,GAAG;aACb,OAAO;SACR,CAAC;SACD,6BAA6B;SAC7B,eAAU,GAAG;aACZ,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;2BAC5D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;qBACtD,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,uBAAkB,GAAG;aACpB,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC;qBAC7E,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;kBAC7B,EAAE,KAAI,CAAC,aAAa,CAAE,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;iBAChC,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACzB,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC;2BAC9D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;qBACpD,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;SACF,CAAC;SACD,sBAAsB;SACtB,aAAQ,GAAG;aACV,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACvE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACjE,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC/D,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,qBAAgB,GAAG;aAClB,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACzE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACnE,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC7D,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,kBAAa,GAAG;aACf,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;uBAC1D,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAChE,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aACrC,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,CAAC;iBACR,UAAU,EAAE,EAAE;iBACd,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,aAAQ,GAAG;aACV,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aACvF,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAC,KAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;aACjF,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;uBAC5D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,QAAQ,EAAE,CAAC;iBACnD,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,qBAAgB,GAAG;aAClB,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;aAC3B,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,YAAY,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3F,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,YAAY,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;aACrF,CAAC;aACD,KAAI,CAAC,QAAQ,CAAC;iBACb,KAAK,EAAE,KAAI,CAAC,YAAY,EAAE;iBAC1B,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,KAAI,CAAC,YAAY,EAAE,CAAC;uBAC/D,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;iBACpD,IAAI,EAAE,IAAI;iBACV,KAAK,EAAE,CAAC;iBACR,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,YAAmB;cAChC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;SACzB,CAAC;SACD,SAAI,GAAG;aACN,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAC;iBACrD,WAAW,EAAE,YAAmB;cAChC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;SACH,CAAC;SACD,YAAO,GAAG;aACT,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAmB,CAAC,CAAC,CAAC;iBAClD,IAAI,KAAK,GAAG,KAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACzE,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC1B,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAC;qBACpF,KAAK,EAAE,KAAK;qBACZ,WAAW,EAAE,YAAmB;kBAChC,CAAC,EAAE,KAAI,CAAC,cAAc,CACvB,CAAC;aACH,CAAC;SACF,CAAC;SACD,oBAAoB;SACpB,aAAa;SACb,aAAQ,GAAG;aACV,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACxB,mCAAmC;iBACnC,IAAI,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC7C,IAAI,IAAI,GAAG,CAAC,CAAC;iBACb,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC1B,OAAM,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;qBACzD,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;iBACjC,CAAC;iBAED,IAAI,WAAW,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBAC1E,EAAE,EAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;qBAC5B,qBAAqB;qBACrB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;qBAC7B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;qBACf,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;yBAC/B,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;qBAC9B,CAAC;qBACD,KAAI,CAAC,QAAQ,CAAC;yBACb,KAAK,EAAE,KAAK;yBACZ,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;yBAC3B,QAAQ,EAAE,IAAI;yBACd,WAAW,EAAE,eAAsB;sBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;iBAC1B,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;qBACnC,mBAAmB;qBACnB,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;qBACzB,GAAG,CAAC,IAAI,CAAC;yBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;yBAC3B,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU;yBAC9B,OAAO,EAAE,CAAC;iCACT,IAAI,EAAE,YAAY;iCAClB,KAAK,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;8BAC/B,CAAC;sBACF,CAAC,CAAC;qBACH,KAAI,CAAC,QAAQ,CAAC;yBACb,SAAS,EAAE,KAAI,CAAC,SAAS,EAAE;yBAC3B,GAAG,EAAE,GAAG;yBACR,QAAQ,EAAE,IAAI;yBACd,WAAW,EAAE,eAAsB;sBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;iBAC1B,CAAC;aACF,CAAC;SACF,CAAC;SACD,kBAAkB;SAClB,gBAAgB;SAChB,eAAU,GAAG;aACZ,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,cAAqB,CAAC,CAAC,CAAC;iBACpD,KAAI,CAAC,QAAQ,CAAC;qBACb,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,CAAC,CAAC;aACJ,CAAC;aACD,2BAA2B;SAC5B,CAAC;SACD,kBAAa,GAAG;aACf,EAAE,EAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;iBAC3B,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;iBAC5B,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iBACzB,GAAG,CAAC,IAAI,CAAC;qBACR,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;qBAC3B,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU;qBAC9B,OAAO,EAAE,EAAE;kBACX,CAAC,CAAC;iBACH,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,EAAE;qBACT,KAAK,EAAE,CAAC;qBACR,UAAU,EAAE,EAAE;qBACd,WAAW,EAAE,EAAE;qBACf,GAAG,EAAE,GAAG;qBACR,QAAQ,EAAE,CAAC;qBACX,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAC,CAAC;aACzB,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACrB,CAAC;SACF,CAAC;SACD,mBAAmB;SACnB,eAAU,GAAG,UAAC,MAAc,EAAE,IAAY,EAAE,OAAmB,EAAE,KAA2B;aAAhD,uBAAmB,GAAnB,WAAmB;aAAE,qBAA2B,GAA3B,QAAgB,IAAI,CAAC,MAAM;aAC3F,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC5E,CAAC;SACD,kBAAa,GAAG,UAAC,MAAc,EAAE,OAAmB;aAAnB,uBAAmB,GAAnB,WAAmB;aACnD,IAAI,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC3F,MAAM,CAAC;iBACN,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;iBACtG,UAAU,EAAE,UAAU;iBACtB,WAAW,EAAE,UAAU;iBACvB,QAAQ,EAAE,IAAI;iBACd,WAAW,EAAE,eAAsB;cACnC,CAAC;SACH,CAAC;SACD,cAAS,GAAG,UAAC,CAAS,EAAE,GAA0C;aAA1C,mBAA0C,GAA1C,MAAc,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;aACjE,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;aAC/B,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;iBACb,MAAM,CAAC,CAAC,CAAC;aACV,CAAC;aAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;iBACjB,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,GAAG,CAAC;aACZ,CAAC;SACF,CAAC;SAmBD,eAAU,GAAG,UAAC,CAAS,EAAE,KAAa,EAAE,IAAY,EAAE,QAAwB;aAAxB,wBAAwB,GAAxB,eAAwB;aAC7E,EAAE,EAAC,IAAI,IAAI,CAAC,CAAC;iBAAC,MAAM,CAAC,CAAC,CAAC;aACvB,EAAE,EAAC,QAAQ,CAAC,CAAC,CAAC;iBACb,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;aAC3C,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;iBAClB,EAAE,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;qBACd,MAAM,CAAC,CAAC,CAAC;iBACV,CAAC;iBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;qBAC1B,MAAM,CAAC,IAAI,CAAC;iBACb,CAAC;iBAAC,IAAI,CAAC,CAAC;qBACP,MAAM,CAAC,KAAK,CAAC;iBACd,CAAC;aACF,CAAC;SACF,CAAC;SACD,kBAAa,GAAG,UAAC,CAAS;aACzB,IAAI,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACzF,EAAE,EAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;iBAClB,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;qBACpC,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW;qBAClC,QAAQ,EAAE,QAAQ;qBAClB,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aAC1B,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,IAAI,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAC,QAAQ,CAAC,CAAC;iBACxE,KAAI,CAAC,QAAQ,CAAC;qBACb,KAAK,EAAE,UAAU,CAAC,MAAM;qBACxB,UAAU,EAAE,UAAU;qBACtB,QAAQ,EAAE,QAAQ;qBAClB,QAAQ,EAAE,IAAI;qBACd,WAAW,EAAE,eAAsB;kBACnC,EAAE,KAAI,CAAC,cAAc,CAAE,CAAC;aAC1B,CAAC;SACF,CAAC;SACD,kBAAa,GAAG,UAAC,SAAuD,EAAE,IAAqB;aAA9E,yBAAuD,GAAvD,YAA6B,KAAI,CAAC,KAAK,CAAC,eAAe;aAAE,oBAAqB,GAArB,YAAqB;aAC9F,IAAI,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC9B,IAAI,GAAG,GAAG,CAAC,SAAS,IAAI,eAAuB,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC;aACtD,EAAE,EAAC,IAAI,CAAC,CAAC,CAAC;iBACT,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;aACjB,CAAC;aACD,GAAG,EAAC,EAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;iBACnE,IAAI,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAC,GAAG,CAAC,CAAC;iBAC9D,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;iBACjD,EAAE,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBACf,MAAM,CAAC;yBACN,KAAK,EAAE,KAAK;yBACZ,UAAU,EAAE,KAAK;yBACjB,eAAe,EAAE,SAAS;yBAC1B,UAAU,EAAE,KAAK;yBACjB,QAAQ,EAAE,GAAG;sBACb,CAAC;iBACH,CAAC;aACF,CAAC;aACD,MAAM,CAAC;iBACN,eAAe,EAAE,SAAS;iBAC1B,UAAU,EAAE,KAAK;cACjB,CAAC;SACH,CAAC;SACD,iBAAiB;SACjB,oBAAe,GAAG,CAAC,CAAC;SACpB,mBAAc,GAAG;aAChB,EAAE,EAAC,KAAI,CAAC,eAAe,GAAG,CAAC,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;iBACxI,KAAI,CAAC,eAAe,EAAE,CAAC;iBACvB,MAAM,CAAC,KAAI,CAAC,kBAAkB,CAAC;aAChC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAC,IAAI,CAAC;aACb,CAAC;SACF,CAAC;SACD,uBAAkB,GAAG;aACpB,KAAI,CAAC,cAAc,EAAE,CAAC;aACtB,KAAI,CAAC,eAAe,EAAE,CAAC;SACxB,CAAC;SACD,mBAAc,GAAG;aAChB,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;aACnE,IAAI,IAAI,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;aACpD,EAAE,EAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;iBAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC;iBAC3E,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CACxE,CAAC,CAAC,CAAC;iBAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAAC,CAAC;SAC9C,CAAC;SACD,cAAS,GAAG;aACX,EAAE,EAAC,OAAO,KAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC;iBAC/C,MAAM,CAAC,KAAI,CAAC,KAAK,CAAC,WAAqB,CAAC;aACzC,CAAC;aAAC,IAAI,CAAC,CAAC;iBACP,MAAM,CAAE,KAAI,CAAC,KAAK,CAAC,WAA0B,EAAE,CAAC;aACjD,CAAC;SACF,CAAC;SAh0BA,IAAI,CAAC,KAAK,GAAG;aACZ,KAAK,EAAE,KAAK;aACZ,WAAW,EAAE,IAAI;aACjB,KAAK,EAAE,EAAE;aACT,KAAK,EAAE,CAAC;aACR,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;aAC3B,UAAU,EAAE,EAAE;aACd,WAAW,EAAE,EAAE;aACf,UAAU,EAAE,EAAE;aACd,eAAe,EAAE,IAAI;aACrB,UAAU,EAAE,KAAK;aACjB,GAAG,EAAE,EAAE;aACP,OAAO,EAAE,EAAE;aACX,QAAQ,EAAE,CAAC;aACX,IAAI,EAAE,EAAE;aACR,KAAK,EAAE,CAAC;aACR,QAAQ,EAAE,IAAI;aACd,WAAW,EAAE,eAAsB;UACnC,CAAC;KACH,CAAC;KAwDD,sBAAsB;KACtB,qCAAiB,GAAjB;SACC,EAAE,EAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;aACzB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd,CAAC;KACF,CAAC;KAsoBD,4BAAQ,GAAR;SACC,iEAAiE;SACjE,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC5E,EAAE,EAAC,MAAM,CAAC,CAAC,CAAC;aACX,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;SAC5C,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;SACrC,CAAC;KACF,CAAC;KACD,gCAAY,GAAZ;SACC,4EAA4E;SAC5E,IAAI,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC;SAC1F,EAAE,EAAC,MAAM,CAAC,CAAC,CAAC;aACX,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;SACzB,CAAC;SAAC,IAAI,CAAC,CAAC;aACP,MAAM,CAAC,CAAC,CAAC;SACV,CAAC;KACF,CAAC;KA0FD,0BAAM,GAAN;SAAA,iBAmDC;SAlDA,MAAM,CAAC,qBAAC,GAAG,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,EAA1B,CAA2B,EACjD,SAAS,EAAE,0BAA0B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,qBAAqB,GAAC,uBAAuB,CAAE,EACzG,OAAO,EAAE,IAAI,CAAC,KAAM,GAEpB,IAAI,CAAC,KAAK,CAAC,cAAc;aACzB,qBAAC,GAAG,IAAC,SAAS,EAAC,6CAA6C,GAC1D,IAAI,CAAC,KAAK,CAAC,cAAe,CACtB;eACJ,IACF,EACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,UAAC,GAAa;aAClC,MAAM,CAAC;iBACN,oBAAC,aAAa,GAAC,KAAK,EAAE,GAAG,CAAC,KAAM,EAAC,KAAK,EAAE,GAAG,CAAC,OAAQ,EAAG;sBACpD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAE,UAAC,GAAe,EAAE,GAAW;iBAChD,MAAM,CAAC,oBAAC,cAAc,GAAC,GAAG,EAAE,GAAI,EAAC,IAAI,EAAE,GAAG,CAAC,IAAK,EAAC,KAAK,EAAE,GAAG,CAAC,KAAM,EAAC,OAAO,EAAE,GAAG,CAAC,OAAQ,EAAG,CAAC;aAC7F,CAAC,CAAC,CACF,CAAC;SACH,CAAC,CAAE,EACF,IAAI,CAAC,KAAK,CAAC,WAAW;aACtB,oBAAC,aAAa,GACb,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAU,EAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,EACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAS,EAC5B;eACD,IACF,EACD,qBAAC,GAAG,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAG,GACvD,qBAAC,QAAQ,IACR,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAtB,CAAuB,EACnC,SAAS,EAAC,qBAAqB,EAC/B,YAAY,EAAC,KAAK,EAClB,WAAW,EAAC,KAAK,EACjB,cAAc,EAAC,KAAK,EACpB,UAAU,EAAC,OAAO,EAClB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM;aACvB,KAAK,EAAE,aAAa;aACpB,eAAe,EAAE,aAAa;aAC9B,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,QAAQ;UACjB,EACF,MAAM,EAAE,IAAI,CAAC,IAAK,EAClB,SAAS,EAAE,IAAI,CAAC,OAAQ,EACxB,QAAQ,EAAE,IAAI,CAAC,MAAO,EACtB,OAAO,EAAE,IAAI,CAAC,KAAM,EACT,CACP,EACN,qBAAC,GAAG,IAAC,GAAG,EAAE,aAAG,IAAI,YAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAtB,CAAuB,OAAa,CAChD,CAAC;KACR,CAAC;KAh2BM,sBAAY,GAAG;SACrB,WAAW,EAAE,IAAI;SACjB,QAAQ,EAAE,cAAa,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACtC,MAAM,EAAE,cAAY,CAAC;MACrB,CAAC;KA61BH,gBAAC;AAAD,EAAC,CAx3B4B,KAAK,CAAC,SAAS,GAw3B3C;AAx3BD;4BAw3BC;;;;;;;AC/iCD,wB;;;;;;ACAA,0C","file":"react-console.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 91b3599f80f579d73d26","\"use strict\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport './react-console.scss';\n\ninterface ConsolePromptProps {\n\tpoint?: number;\n\tvalue: string;\n\tlabel: string;\n\targument?: string;\n}\nclass ConsolePrompt extends React.Component {\n\tstatic defaultProps: ConsolePromptProps = {\n\t\tpoint: -1,\n\t\tvalue: \"\",\n\t\tlabel: \"> \",\n\t\targument: null,\n\t}\n\tchild: {\n\t\tcursor?: Element;\n\t} = {};\n\t// Component Lifecycle\n\tcomponentDidMount() {\n\t\tthis.idle();\n\t}\n\tcomponentDidUpdate() {\n\t\tthis.idle();\n\t}\n\t// DOM Management\n\tupdateSemaphore: number = 0;\n\tidle() {\n\t\t// Blink cursor when idle\n\t\tif(this.child.cursor) {\n\t\t\tif(this.updateSemaphore == 0) {\n\t\t\t\tthis.child.cursor.className = \"react-console-cursor\";\n\t\t\t}\n\t\t\tthis.updateSemaphore++;\n\t\t\twindow.setTimeout( () => {\n\t\t\t\tthis.updateSemaphore--;\n\t\t\t\tif(this.updateSemaphore == 0 && this.child.cursor) {\n\t\t\t\t\tthis.child.cursor.className = \"react-console-cursor react-console-cursor-idle\";\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\trenderValue() {\n\t\tif(this.props.point < 0) {\n\t\t\treturn [this.props.value];\n\t\t} else if (this.props.point == this.props.value.length) {\n\t\t\treturn [this.props.value, this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\"> ];\n\t\t} else {\n\t\t\treturn [this.props.value.substring(0,this.props.point),\n\t\t\t\t this.child.cursor = ref} key=\"cursor\" className=\"react-console-cursor\">{this.props.value.substring(this.props.point,this.props.point+1)},\n\t\t\t\tthis.props.value.substring(this.props.point+1)];\n\t\t}\n\t}\n\trender() {\n\t\tlet label = this.props.label;\n\t\tif(this.props.argument) {\n\t\t\tlet idx = label.lastIndexOf(\"\\n\");\n\t\t\tif(idx >= 0) {\n\t\t\t\tlabel = label.substring(0, idx+1);\n\t\t\t} else {\n\t\t\t\tlabel = '';\n\t\t\t}\n\t\t}\n\t\treturn