From e509c5862aa61e1b3407b73e474e1d85d1f5c953 Mon Sep 17 00:00:00 2001 From: Spencer Nowak Date: Wed, 2 Aug 2017 12:44:58 -0400 Subject: [PATCH] Add setBusy method to block command input programmatically --- README.md | 1 + dist/dist-min.tar.gz | Bin 30482 -> 30592 bytes dist/dist-min.zip | Bin 31071 -> 31188 bytes dist/dist-min/react-console.min.js | 2 +- dist/dist-min/react-console.min.js.map | 2 +- dist/dist.tar.gz | Bin 25986 -> 26060 bytes dist/dist.zip | Bin 26393 -> 26466 bytes dist/dist/react-console.js | 3 +++ dist/dist/react-console.js.map | 2 +- lib/react-console.js | 3 +++ lib/react-console.js.map | 2 +- src/react-console.tsx | 3 +++ 12 files changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fbc9b33..389e61b 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ Properties you can pass to the console element | 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[, 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. Rows can also contain objects which will be output as JSON strings or according to the `type: link` rules listed above. 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. +| setBusy | ()=>void | Block user input as though a command is being handled. | 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 1d34387b452656f1e72deab8b2af430999e67116..548e2e7bd80c1054dd4797c88af0ed9334f4d254 100644 GIT binary patch literal 30592 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 -GH%WRxqRFmT4k`4KK;*d3IBT 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 ffp0FsH#+%`)}(Igzu~~o$ASL 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 UKoI^v1=^nfIy1vn`}`;RU*s*|v;Y7A delta 29491 zcmV(3GVkq#+;IF|muPvLNCz2u5wOUZ1KkwUw+ zlbz~pC!JK1nVu@QYnGNEiyfL!flwT;tasUGnJ1g?;70HwOZH^Cw#sEoAaQ_mzu>@M zGI8{hmlZEqx>%Ppne#G~(Z+s0VxfpO`6A?J;ye;eu0?r7pA+_V#f7YX(-*8 zvB_qC8|U+hhzp+0*?jV7yq%hIYj|hNl|`h$UC4 zj9D^EIexFwAc$EwinigI-Fk?}F^@LEx?)F_6!}aBYPTYl%e*>1rr*h5|H{5fR?e&2 zTYsWQ0Ukyh_38|Cl43oR91yk(E<)OrILga^BNnk_nN{zu%lCq>n2~+_yKdIFYnns}f7m4Ch@o!qAk<8Yj z;sW#@rRrJI!iP9P%$^a_=IvxwWL5Q3cE!>Fs=JJI!dGhzgPIp^HRPTot`Q3>9H>a;e6tasJ9H|y?2s=m6vkaoeZ_s68~QXBbf|? zYL%5iyb)|MakOL+zAJmvBuvV-@n?232@IcN$H+-PBe!wzxBm;G^GOGbq*`BpkYy+@ z!;w}54{fqUzwI_Xk}4v5+w&eNYIk-!7)M56eGb(4wE^J$^QMMs`RG?RBMwD&!HOxo zfd|bRmS{t|$sp;_EBP9-_VwK&41OsC*uIpVq@z>mAvB5^wlE0-YiT;fp66d65<8g- zG_O{2c)`C0u!=i4wQsgU2=ifo;vNdZ;!jX&#j&FghHJrjS{p`MrRQvstqb{{G&J2P zahMFpu@V^&G*(DWf|H}bS^Wul9I$%}xBJrC?zvv%GvD z2O2;+$bTaiG#2US!L&%4ri}zfDZjC8XXmlec$HF+(&r7MU}Fb=WG%)ha1$%)oP!KB z2&@gY3IWM~g*EQTR8)jBWrIN^&)9Hup1Nme?A&A< z9O8!P8fnetRG2BZw<1}st7W(`);fq0S6^l2oGiGpD3i1Et&Z}mRGfKW43OdYJTb4D zk(1HsVJ{BHlhJg4&#Pw@QabHbV2iOllOG8Y?3rIqgc_O&UKFnv-*YMX6&#dtf_UNo z6Aj}%m>O1CT%&s<`L`G&$2tGz&tR(Re%G!*d09j3kH+jk8C(rQxBAb1_&cyuXG86HWKVSq} zP!BxEz)G+$IbT;l8c?D8Prl9@)DaPmZ_b2~>??`6fE%fsA z_<~*LWr;-24AKUuP(eWA$FxDLzR176Wis1BCpS-j2}pa^Q<_#oenuPg(Riws@-clz zBeQ~K;v;fJR>se1P8-u_gjoaA#~1)P5M`t4l8M>U(SV3+)@(j`NMHZl`VIjgR`zT+HJJ>S{z`TJrLB z3Ct;fjn9e?eHdxv8}I#5i$)W_@gInEv{~}P|0ynGg)w2M*TYjQ9kf$DXc2tRS5Wja z-He|rlxlgfl-2MRciqr)JKZd~MM|`BgFne7wy~W;QIrGsbRUstR>&XO%_)^_q$ud4 zOrSL{`J7QnFhfNrJ99(l&{rw}fgTYfpB}t)1$wJVl8*J%h&6Q(WqG* zYO%$|FKwA$iUpRJufI*RY zxn_7zo3>hvqUc~lq-xLB5~;fA9>X(bMa7hrk0+gX|jwl?6D+r!7PGo<;d zCP0Z@DsOLb21Yp>S^GxzWB<(#Q|`wx9U*Qw+VfvEF%Usj;V`8KDztu znz1IzGuj<#bD|>E`qaEe&Uo+HV;Wrc3mP~eOis=1Y2%I8SE3f?LDk+q$PEx75d4G*$!urJeavff z=X+V?#~9y)M-)l<-V5kjH_^^}ngvcv7t$_w&`Mv*^H%+T?nz%-W1Imkk3$Q82Plj@ z>GhYo^hvH&r^X+sV{z;PFST~#o6TM6=;8rL$@2!Z7Lpb?T7L*>cty{(Px^5-NZTX1 z7S^_CU?0~<=yfX@NS(Tw;K4SR}UIJFM!iG5|Z{|oBz=iByw3A`(L!G@FJHD~6yEpRz0?wb&J z1toL5>&sSuD$tC*@1n0wRvQPW{sO9&sZEntoTExv=S&3!P9H4{S~4dlQd6n5c;#cr$(ZLkZfLrE;C z*h013db`m69*WoJXgW4FZKg(p{q)TmoFT4H7|S$deet7CCL6h)XjE>+of={2?DEFD zQSG8+ZMh?X=Vk}ew$Tb)0T@lh3B$o6dS?`WYim!`STp8*tksO9av{|@3D#-I2O%5C z=wCU0CLtTrbsn`2dd2xEpD@eIMmgA9%pM3fykgBaQ}!txBh7$8Ievs2G*Dk`i1}v< zj+vSgUJ>0+tX0qjq261yCb2s?N84&@QhoeTpDUO>I}hB%VTc|>fUzFlY~A)4`VPf^ z75+<9{_nDQ-ECP5t1BQs=%Wvh4XW$Qs+5Ed*9J~cag}UOv$g6G3n(1!;9H_M1&ooW zV|2DFze*F}yQ^p_sCXh?ICs`0$yB|xA*f~hm0eU6=kV5Lf@?kM&VtpFy5yq-B|AZ3 zMW19CLT5gOv1L_Ybl4&;(j&S=J+1|RLu^f}ai^-?n&L>W1jW0arBzVNkL|v!S>jBq z6)`vSWORFLT@xL$WvJi?CxtW9YPj`7=k{m`k#geKYT?HuiZ z)IF8h59U%7y2=QyehocR~-6ptVBN!?wEWTP;e5t;Xsj3#+&|y|5pt1W3sb4e2DvJAvwn z)9uxQ2VJMsgv-{FD+-y5tLk(6mZhy@_>9x_hVOp)`IqbO684qN^zAKwRXr$-mQ{qXRc>F7SEr3(R%T z#?koR+{|6~-YnjoTM_y?!@m29*22=2#hq8toT)vc8zk^%Cg)TPK5boTRD(hLqGPEg z1Nks7VUA{>H80f5MyIuZ5M8qZ=^A^huQ_!u^k}qpZq-~iXx)D@K<$mSzLm7SH(pB} zgFv-fSC6dMI%^ZVq^2lpv4%;dzb4B>ub^pUjc}!$m$OX5`r7*tyKdDSwV@a029s_& zhxtZNoLfOP0lG^k?!p-kG3m~bkB?`wI%KU8sJZKGm|d%WRNF9r)7aq&g~~hX0M2`2 zgF5ueYfIL?f2Mg`$(w>rHfWL(i-KQIf@MCRGo4n|TyKU?nT!#8v`M8p>@wUt z#;vS9qOWZBono)vzzs#1wU?$*8yCnH3p*sJ{lOo}RykUX^Z&&iLG@a-Vny+C$sp~) zB16>!Cfy*nmIVTTn@ND~WQ^iQAs3TCimb#vW2n0fVk*#H3i9AD`<|j^j>bqcAHls^ zRYU7g4(C1P_h_xxI!8_R82C}Q&+9Stuu?BQDW_^p)uXyi6@%}o(NT}7o=3=5m-Gi2 z9HsD}y1DTTf6iK0sf4iJI;>BF0}aT`9l%FE=}iVV!(0Z>Z^2=h6dgUu2E z0O3La08mQ|0|XQR2mlBGH>3GVvnUha0R%Ur`AU-u6)Jy=T3b1??yI=@&eKCez=^OdDHEDwXP{ zQmK~oW$sfn7`A)ex%HKWxnXZSXhy@i^*3`D(Q&`g{II^Xv^0ns&Cz1B*B$mcQSrRp zExsSlE%<*mOy#BHUT-uU4I2GIYwhmx@yY7_mD|Vn*6uCeU2Zjw!#2eP+|lqdtPov} zqCvOODICo`BL+uvb8i>sx{Y&1u%h^&&3Ugi?x1jC?%g|s$-6=Haoiq6@7}rRwHCg% zyTehV(}`Mj*Cx8`_XZ=jRyeH1s-0e=74b_G4fubQU-4fb|Gj%h5;S=4aUt;Z-An+#&GwdyEo|dqrvD31^q#9)Eiy(BYfXIejhbQ_|gQKM=X)S;;$JX z+MV}V;oWcy0Ql1A_d5jB7@UsJqpslIJZpD|!nof8l!NHJ(Ld`A2(F3dy)LS4v@z;& zm!N;ztxodMb7_cY@63Rju?R__8|hSBJ-eIE731UCRFqQQ$s zXUsYnU7r-`_uA6gCsW>ux~HQvJkXI=I}wqW<|p|45OGYy@i8dZ?w(3H!QxA&aU78a zcEI@BZc$o**{Fs}m%D_}icT8i&WMC&{}q2baQQC6d)PScMB5Pa6RXrLG8>cL24+R3gfyxd1F-#ovE(ivHScwSXZ!;3P;UB>fMQ4MEh>kFjh$A0C zjPU32!R}N1(Sf&5NCyxNpKbhSM)htP-<7*hFzP2gQV6O*%-Huk*6m0sL|g=^KOTPy zxqIj5jV^`5RL3{L@v!$S>USDVjtu-fFwKU|K@TXOlzXF5k5Uh)uk?={{fKnjP!bHH z(Rk3s^G357^}&w5$OOb^@Wk+~i(%UDC%xvF_<{fjQ3s+=+XG7U4lLVAQ?f_#IP5t* zjyq$PLr^w)7i>ht@vG8n2?>^0@LPYec+&3j;mRsLj$y_w8iQ8ltik3h5Abo)8~862DAW~G9 z(tzs1p(Og{C`=LS?)CbpcMgBTADp#MMi%GgHDP?ryO@Z=;rQqB8fifQ6_0HM{d9Du zSTs7L9kF#}tbQ{>jFyx_+G;grC>RnCQ~#{dRWsBbVkW`Efzw}F!kFGe;q;+e7yVJ| zwynjf+2+u=)6;06qysqE`SvO0$ISJvVjs{coXt+Vf82vE8Qq5xn{R(G`k19mkLSHl z(VnsX)E`4&t6}CRIvKUQGG##iDJf#(&Q$;W?=n(qWn?-qb%-ixg2{}EjY$=DFJ^^~ zdjnp8H8NTf*Dzpo{ADAFgsCWKxsflg*iKQo?ZOH%0LmZWjJv{Ad}9FzA%b}Z@5(5e z4&|9ngBQ>gTFha;BP@TUWyMcpGhjaX@IA=QLQy@`-?yXo=@|j`PEIhvxS#se z&M=1qkpZ#^RUuMkcquL5Tj{ic!!s=(iDq`96IMF5Qxj}yG;n`#TbNsnPhr2tUIt_r z&|F=JzMv)$Ubb86nMfV`%b?jE^UyXhnma_es>N)Jg z*QlID(lK1Kj?RCA&0a?wIa==10f}3&B@ivuooJ{adfl?lvb`>hj+tjM8f$ub-92Lq z;FkbAoh{?l8b^grI{c|V7>I?$TnYacwo0X1Y2lz$*}+HYd1Ya%vehjw?Bf}}o6jw& zhk_~!Hc(tCE!15N7L-cWh20YB)m-tWsa-?u>cUI;WW|5SD6f=uqzim~UP8mCr9A_L zHR=mH_}n(_6&1qWkT%<>xmBvk)2fBCRkGdfmp+vh-3@^G2uycNhj>cB`_kwTpBRFC zKakHoDNzW|r9}F8p2rUBr3b*Gx>|W(S$Ms9x>4bSKcMZfvory0h@SRQgcH@Jmlg^HO7n-*+qW`IIQvg$P?)tod5%RBQY$ zBVq5=_ZyehIvei{%KXFcRYTxieBa*_jt|T1l5&4!#YPxI4wUYemDEC*(qAkpH9(l% zmGZItAc0<%TJk+wI4ze-x7pX7%1RluT-~@^K2z{7iGhga%ayXQ0m1}yOV1ZRpjC-N zRzY3#u+ydtSD%uz6gk#RYob-Y@&pw>&lW1)!#RT&htp;oFwNx;{gCO_*Ghf0%A zFUx;@g%lBm%HD}|ZfhyIN!*2ta;dsh1`&yzR(`T;_yHk#P24+W;la*hfu%IPEDLK< z)&}wy=GT)Ljpd3^V#gMFeV%WWs;d-$ttYQMIzT2MZ6z7vlX!>~5e%p>$9YB4Q$Fyy zk2;m(WkuaQpte^I!5|LDRYuGESI#D(`;| zN*9*<8OS8@Aetc|g%fp9rt;}=_(bWbgUW&f7Hut2En-c$BUVB6g+#20so(De)Hr`Y z!^$TLe`zax@|@IuzEF|Ju6bSTXMKyp^%`xfD`ncIjjE^-jYVZct86NtfX|i)cMa8G zRPed=g1m-hAXZK&AXYoiw9Q>8*`WMaN@mRCHL(6xxq;T;3xn4 zDytiyZBiahBZ}3P<>5t{`uKU{bESVJ_3u)CD^LFtjpk7IgkihHWKRTmm*hmLkgi_3 z*!T#!+7OXGA%KCfSSR87DGgg?1DsCc$qrt?9Qox?&n=d3 zh-J~nrTtiEp!DbfCXQqWmwmFMs1}Km%EvJ!q5hgxUUE|1`NSdaKbD!Tt>}NEcYs?J zj{x`rlln(-CiW>UYQ~}80I@p~MC&TOq!`FS+XaK*BjI@ea^XI>cB>*1Qy(ku7H)$n zx66CCtt7W%;4C@KFJA(JV$TPmv z3d&4aBiAb8XS^2DUaA}{r%8WX6*C9JhvBMIQG3QB1tIq7rGQuw5a(r?8V|+&+C-T@ zI8$ZuYCYB#;*_0>S%K*gqlLVCe*BmzCVRAdHH@rq!UBV5sWJc!5x2{8J!H|3C7u$ z5f&A^D5f|(2B1w3xTKy(2_^JK_LSru^*HQIMZr{(-xn6vq}GiI87OuD0{Bklg<+B-es%l6<9_AbGM^<7X<#3A;|S24cg} zgjH)jmrgl=r?8oDeM)~2Mozdu>1yKz`zuAl9F~?qD3DN8s`P>1ORxK+>c+9uc`Bdk zRaHg*O6s#=&Zlfa#I~T*d$0%iDeiOKc!z5n^b%kJUvBnc(Q4J+hB(Ub2_Z)Kq)y0( zeuA2G{34R5)Dx?RMFcCEsuU6{N}qNsu*YV`+FYv-0gugia^-s{?;HsJ6odmp6+ zR1e+Pu^7M~n*37jgIW~%jx_?ja<#bvxLtliBx*_c>=}T8tN_`%5+M7ZrASsPHPhiY zw4?$4yp8rmZ^rh5^Lbef&@KoFzAkO3S=i~3xRuAUkl3N4R@pXSKW@;|t{z^BVJx*p zP3mCU*#gj)mdYzj;ifMwvkLFo}Jd;^-R%*$3>c-%Uv{gFSCf1eEY*(fcItZKh zFyqy#cPrxULX>}yphJ;=f}npZ(O?az`l7XUphi7X3O=|t1#eeLyq7{jQO{dt@h2-f z2iIWLp#oXT-6_NMha7L}RB%1Mi)9p(Sb|d%j0Ot5f69NgaP>h|VhZ058H9?Vb*qeGb~z7aCla!vr47Jn(WwAK%@;gG%e3{!-08u$p};BEL^?+shkb zxbAF7grdS$pUX?yOxLC#)l6>Fa=tIaNrVkl)Jrc9oYmVm4`4O0qTU)+`kOKje3U=C z?CWVqe9nJFTafp%e5RF$n{?=8ogyA??FD%b6M>cdwwl0^!Wc6&RXx-)7%buh9fTm8 zvSls1Q>7I*W%sn~ewDMmEqtJbw`@gPc%Vao?M*d^+Dk_Z&o{lEF-TU#AfG#cBP|rxA^HX+~DX9{px%kFFv#iuN@gIo>}#nZh&raVfff$87Cy$L`=o^zLE&dD6f*4}8koyk zcxQ{lx7^UO`&(R+*}?}}c#EqaTXv>?XnPwXdbbQh)k>Z6HdZ|(tYH2iO*Eu)3@d35P*iollC#1%bYP!6ja)W=4Cp zEd#@p@8NWNng zAcP?;pR03XTK*OGzis+gbSnGiCq_kd!cl=YF+R^PWz}#ks0KSg1ssFjfmlNW=2d@) zT;0b8AqX@pwS1gl_f%kVv4J>jJ^oC7V5Ouh1{xo(H#a24R)b7}(Odyno(R3_8V0kh z$COyd^G_1Hel81KTO+XU;1BDGd%U#4P`i^J17b-;aNmH>YD{_D7=vv)rJWUt9@QYJ zK=0tQ%57F74S-QxG0{Vf(DCzSt!{rD_;?7M10^EyicZinr+p94yR@T~;}vae+}sOV z>(c9c0mL;agq)-GuEA}Mic@+i9{#>5GYH&Q7~G4fTyA1w0i|}8ktVQdrbrMG;nh+3 znW9yLy{bN2a`11mpYt<|p zp?R>xATXEPl^3w@(g#TWD&T)f_0aGH)1_=J0OqSf7D(CrunLSBmvRXK247aovcj0P zC&)Q)X%hQmC?s_yL|%Iu%03Gn3drtA;#jlx0GWXQ8L@}f=ZQUF5Z~0pQ1{qm3|*Zk zv&Jxf%o=}vx)%21T8w=^ANIv#D01bm%UNJ=SuWoeqrnZcD(C-=(kFiSBk_A5)?ZAcvlTgD5~x-d6@%3NlQ!C=?njkHp{Cptd-~DIMs+?|95mgG701a8qF( zo-Zf62Z;w|3Aa9937*0If*&y`s~3{BNPAyK9awF|pfMzDwDPkfbJ{M;>#%_kz!muY ze6m6Zu(SgWgqzg5C+dG$qkX7sn|RHMPny?IDGc-lmk$S5tX(<0+yZy28yf$!g72-D zgwjeBtf^>u*lbTH0>;ZLf9*S6K3)>+5imiWCu?psl9+Q5@OG;F)thCRdOSM}zyukiKqqK7fQ%RrTG&Fxut14orJ6y{(LDg!% z+?CK{N&J3e3YJ_oTK%9Jm;j%ngoOk!?w22^QYgUaOk$bVFbT^``&~+E_0nt-mOea= zRcgt#WmX-cU~ANFeVK&W#n4o7?^Od=OLSN5UszkMv%S`G@mfZY`rj(45p#f(4i1e zEsJ1kI{&*29ZNYk>veRw@j>OesBy`MR1<$l?AD+H^Ul(%uoRvkONUPu z$YiXgQTMVuQl%O{u|!7cr}8H)y?C;4i%b-_?<<#Ddi7+1yPT&|dRFF zJJZQmul*&AQ1+EwXK&-L{ ze@%?^Yzu+Y8rN#vlmmTr|Gakl`w2XWsw7{Aa+eMaWx=89peoMU3{=j922!ttr1n=z z#=C!-WPs9~uYCGJ6uXIPs1-_L)f>70?Jb1AwE7K`Ff1SaRx=By@1jYA$- z*q+sD{>*C@^4s*eW}S1&Fk}x#boyK8lIdPR6C+_*a?lcif0e$*Ml^p+u__F%-_bv8ztv@;c;z?<@|%$wl^aVB1W>98 zUUjs=D&cH{F{simpdl2qFSM!;B=7tH$ZjoZ*1=FbxaN}L=@01uLjcfSi7eC~qz6)Y zutCsRIisIZ`LT72~S!`6zDZzR*~5W+2sboMhPw-@k4)cgWq!H2sxr@La@0FcMd2^&P+PEo*9AH#+Q9-(V z*!B^*m>BCtEUmIhJZlIOp}85QBm!-*V?~TPLBJ?0RyM#M3LecG?}D@yQH;CO} zV-v$N*|H3KNfsCezpqm8TC;zKp^{rG+ zk?PKT#LHJiHZU+)j^v^a=p}Y;kb9Qu0~=giGLHM6hfMT>)Q<5AZ0%wvIt)HkPg-3p$=5MN{$ zd-Aj>Z81K&9~_n?wlj@g$A%8TE^WejrZ*yH$HbdCy2>%kSW5nDrL7Yq{#UYb`dav< z)P0#GM-#E%q+zf-Nh@NGYmfnuu-*?U%D7AWcn0NJmCPlWBG!K+V$|G<`fJFo#P`R< z9e+{dWBKrtiqqN?4ok&J=9`xyMUfb7>@-5)@jewK38_h-CAbJ8Qjko#*E5j_N!rHJ zSn5kAr%Aa+-ZJpP>r?o|UIJIGc%KG8PVw>ra5Bf=I>;h|ct(W% z7ovZ_XVWyviWM0!m`E51#(pe4%d(LfBiw!+Oi*ezMV@l^BLcGkj=GJXo_HdS5V9G> zJtaYEWMJH`j^x1xhJu0FdBiL`p?#p8*~08t>{a4595sI{w#+QEv8j(f%aEmnF0SxK zAG(Jj1t*X(3`=ysjQFdk1lT`d%mwohtH8Muu>%*ddr7ka4+9Wvii8=fuom%n)iX`~ zKb9Fxr;I8HSVKPYPH7vj3c~r=R4}ihq!7(#>en(L$_W&oyJ6-+EG58ZUtBRZCE8>S z@<`A|6J>w*SAyZpz#7?I93b5r;P!jcTGBk=Z-$__VNpRIGsv(7RR&h4j91*TR1 zv!_yeQRTiCKmt!_C%C%>8$zNYu0tF|agk1?H`imMIK36b1&Abmq((!4Pd|qKhPf9(>m7x9jA7Q}?fJb!Ng;K5snm zu`@X{w`u}1g4n@^clf#$UKf%?G>YzNr8Sv2^<|Fp&3k3M$pPw=kO0PM)_dc&hNhskeTni868$myzETJo!Uv_hz4Ct^ za`C+8aKdOdQL`$RwuZD}bgEgvx}F$05>xh!vva9iOK{EDBgoHZvL>zcB_V1H-Ghd@ zIk1a~6&3cyqWaZY2z0Q3Qm4>D@?9#dRk8Et;f(cPBfwch><4BZn2t4p**8vO)Hwp8 zJR%QEnfMb`Mw#z!YVM_F!W}c~U{`+}FUXK-pfY9+S(@(3wpZ{DrI_T2FV?ETdJTUM z7_A~m175#ez)P3NG)02DNA#wUUN$o^XVNa5Z6emlY=%#c^$0SzG$Y$e$E`Xw_|=lA zT7aB+%kmcHsbkX>7Wt$O+CcEDe1odGc^Qa>nk)%{V2XoCRb*kv#VRM8;FW(ZzU2rS zH8l{j3*g{K4NErk0e_sI*i>a1^5Zv`HaZn>d>5Imdm4tQJ?H55@h$--HrE;IxB31d z=!GedKv03K(D%d`cg3%$C5?0{=F73Ax`eOfwXl+XU+q!( zkP}LZQ*_>AW)jpebK|95V|ej{59nO664LM8*H=0|v1Ns!N4il7;Qp4^gm7Y>$9dsf*xE34BSXv}o#sFm4=8qg&L^wFJiw{pvv zVtr*9ZiK`)h$W1>a7lkwTo{^}%+Ik8G88j-_KwBi*M1T*p493JdFEcG$YN zRK5i9@zWdx@}Z1_RZiMCsbw9l;aODB7KLV`c@_oF*;(>j!@|SD zm#_bbtHs|64xl+Av0!lu>e#|U#*vB!`C1Fu$Bp7|=t4S?lV}R<6N`F#2s|?ea5QS4 z%qK_iM#o!gy}f^#fP6I4Bj-|sj++$Cp^kYJQ1s-$#X_UdjV>&T^EgeafCKCbZTuex z{}e``ypTMJ1*vXW@^AtsWJC&ogWWoKw2*q(Zmk=@wO0D6o=Ul1IB9f-p%@&Eav3he zt>R>&@hFlJ8N@A<6FBJ8p-0Xpj=(frx1?P#NZP+~d4_+)+?>dW%}(RgN2@U`=rA+! zD(W*37AI^*69GSyqX`AHA$g&9;`Nk(Z^TN6Z^z?x0J;7eH_7^@%Ei8hKB0$&o}BVo zn2%{=i2UwdC|Gd?cY)gl=LG{qZr*xO&%bjLzP@ z3$Tgn#Djn6qno3-qqzy7pWwvRf}A>LHH+G4xMCO>^kW`nbT@z77rDaMn8<31zvpww z!(sjne-v&PemA9Q8^2I6s4ryMQZb=NU0BSyF=U2EfbyhUQ0Zty6XQ;r1^MQAGHc<# z{tFV^9v0n`n}vV=(;4x?d~2a_tWZY<{KIjJg?WEM>VwOC0((4vTnx{oo$uegS!liK zzeO*{_#@p*YcpQ~k9p2j(lbsl1DJ|vmj*OM4XEJ^{nz^V|6Y>z$OEC>x%c##bDY!*Hn;zrDA)plo517Ntzhh|s;58~<1?T=70SU_PL(buKrb$)KodMEmsub71g3u$ z22h_)AuK`hU%K)P)WWpm`TB;0i^5|y&I&vJOwsb|LSgy#ZJCE+)pfO|Yk_yD_BRWv zlR=o}{;((~au@!{6e}~Az7Y}7>YsRUcRUwxtPX$vh~R?8V(xbVJ|*E4_4w}$@yP3W zp&+*2Oc~}N&-o*qa@pt}%`FtZ;E;c0IKp;@n#WH-xBfz!>!2d4V76K);Jn>+sEJjK zg@RKb7H6^kXb#Pe=Kk;h9L?RFMv^bS86ctZMp$&GozLH1@F^yYx(V+;mK?(2zh8|e zDL%(z@*c^6(nBoVDlFg39;eq>@=u!T}V9`{lF)JWmY)L`|7!!1$(<~6Z zP6;ueSnxM)OokGGG}50fxUKdl(d7vW2*UzLZSlBwDN2|P#~Fp`fMgH?O1|BkYG;(D%oBBUF7F;bSka&L!s2pZYeeB_3BelQ1_`}b z{s{jCPwYU~#oc$0Vw8*!1TLS*(ARlosB=Zlh&)f-yR{)uQ<-r*<)ZrOETlI%483QR z-id;UKu@DZQRI3hPb5ZzxJJ-Z5hosdPLTGW=zazi2>pxPJ|WXnufu-=nXD8d<{$$) z(7&&N7+8*(;c`4mY5DZ%YR;sdk*4PEi^QM^u7!&r07MBQvh(J4XpSdReg+d@F0KFv zeWy%rp*Wg@RWoeo%@J5?qA09rnlDOSMN_J(h~ETNvyF=BV3JH2f%Zfc98?|+*M%}g z^XqG_5f~l!T34}Pk(_@;-Y7y(*ZoLH7@otV^QMsmL#9ia$nY1DDgl7u16l$;Z!Lja zWbZD?=!6}~ga@J{s>Z6a-oK&OnB2%|G95qBLdDPZ4;=YDHg*JK{{^#+EsUMhBz_u; zyFuy_W>G|ek%}8!)BSL~vqh^Rs?Pgh))fnWg@Xh`8jVbm{(w6`E1L2MVUrs-3^j_p zKE|5>?9ll)pC(_deekRE`$Q!j<#2^p*A$iGxVUCsm^34oV6{?KEG}^aNPCk{I~f6@ zlW99G0dkXJWPl$cGIyxUGM4$c2svLdNM-G(VL`G$!i4Palod^Y4JZp*i07N<{ z3Kx>M$P`L@HQ&ZbD~&vvo3qe54jUw}B+rPc@fqkbzX^Yx8P;%7^>=Mlxc!d;{{9ii za!s&<#kX!{bU+ZcgEwfpSh&s5yY-@nC`4D> z_6RY*Kd*n=2!JqE#!+vMkN;-u`%Q>6ne&BKhstIdS5W0uxcX^EW$sd&|Kf|Gtp^O& ziH6fy`v9ifv=1&|vs)mpT0nIXZa@Qq|6ioj(K1lxM~gH-&Lq7?lTt#H)|!8x)VvDB zhVx5?vAV7`T>gG*xcv9DhSwAwo$vW6PF-kwekFe~lGSf0O7?W;Z)*^!J&_a z%)5Vb`&%IQ88Rxqm)SA(FFl>VS+tj)Vu}yLvMN5|)+P05P?Rpc-E>=%f0M+8mx{Yq zm4@8)GS9`ku-B@l%}C(Gg)WW^nzyh{8*?5elC_p}95edBT9#MO1>NLLO{go^bfR*m zzXdj`Z2Ii8WLsXb;uGH+n<;L9!n+5vV617EiJ;S#?r6 zgT_=AGkI`7=B2s+b&~Q{7CV`UI3V6N%qdQg_RP6j%+%dAH<%f9x3ZY2x~op(W>DSA z;vj20Yj>=YWZfK{Kd@kiXYUET8=6$-eiO>CX8;)j&9s-UlNQOn0%o+I+_6O&K*do5KE`M?cSjM8Lyi)ItO&T z^Pyg4$$Myz_j>(Q`+N%(TCyzYVq*Ttda}IcW^d1RoZ<-77awK9igkZh+{dX<@P~|-o+OyB$%IQ^*=&{BhB_nvQ@l$Rq#4P) zFK2EfW9|NG4xccUfw%3hybwGr9Cv!n4>)8&q9?bSh2dFmjQ4-Dh9h_ic-c}uy2yaa znrW`V>KVo!3^Sap)ulRXbWbO~-$d4M64NB~^gcP(>V^4#$m2h3;8x^>o#Q9KMW>IBy;M+x+gTsaOZVx46Q7n2I43CU%nvMO7Gt_^urcGc z%kzkH;(ip27;4-6C(k75aSpXRVk3%TG;eqI?7O#XAnjj?-4|%}dP{7b@j0;X!R_~g zi&?v9djHc6${)^|C->-h@%)6bIF!!h0TQ5pWyy1!)4B3o8qsB3*p8XwPWi{y*tV>x zvOk=4t6W|I%N<|MJsz<0V&evcRTOjNSHcw=(x0sztmsRW&J_+ET)dvPn}2Su_U=Ln zq0&+8d%QD>I1PpKnm#8X#Njma{z~`$N-GI(wR#vlb>4c%ynJ*DocM5Q@qf{h8~`=7 zkKX{w>t13~`bQx4-9)kxHo_@(Vw*5+zG|uAMZ#c!9t!u%B@#Ao)^6*6olDsUD1%RI zHCe?#3!xat@e|ZSbUZkd6RW%?vFuOD4_ttkd{Ik6==0wz7s|>M1J1~>P4oBj-TLnc zcThBaFPG(>l9#cd-sQ~2mB8x}{}9CSlGh%gG*jxR?^~WDxee+utPmC&7w8E-A(fgM z8oBF0hn55BCvoO4Y|oH+zl{W*tE|azt8l^PVFyXRa}kJm0tI%L4NAc2f=d)BD?*Cs zrGil23h?N+ab5*856e8bu|x=hp_>K}x%SsV|Fa?ANJa83HiQ7{iB8hA+nUZaVs6$q zOBeJEsXdyvpbHl5rP$|6-TqGkNz6`JoTC(AGvjp_1maj^zYim7yBVier;hW{Qici0 zbb9&QXV_>!8CIRN@lPo$A9LD@ti# zi8-E`TOaO5xx_;&Nv}oh_N+VFSLTvu6>LDDW06qgfuy>SKD-)rN+lapL;5egRI-*J zTxD%2s!-=)t`aLMCUb~>C?^gm7R2sz^^r#7;;Giq?~Mjb$O&r&a^@^0d|R@jp!ebv z1-pQRBd4QT8p;xxm`kZJpZng!YD*(v$piQ?I^jfF=IVxfkH|LDVE{3IaN4W9GrGO9{WvG=(e)JBWjh) zKh|SG7b}w|mlI0~&fb_VtCRy@>10s()io+nZAPf4xAnOqcO3Po?=J;|#$)A20e^9W zed(&Uky-K3CDPk`$E;pQ{~6JMWG<9I1O#ZA-c0$m7=O7x{7>#xaZk`Mni<#rtQ zfG=8}!7HL6M>nOER?2mujo!unDddZ?gwkC=-ko!M+Cb1gy6aiGB#z`}1CPr{InWzH zB00W7n3slvrpyGyy;#6K%TP^xZE|?I<#e%KttEK3A7QI4TpM6f9o!7GnB%)-NT~OY ziz2gq&y2ciywKz)7> zKV8?qWD_D;K00L|ANZo)Ct{;l%n3M?|M%tMpe>@U1Lb^;*_zJx|BFCWT} zPt~We9z84ICA|$FFu_3dQqCcOw`q&&Zoj!QHl<2W@eoXX1qt0iM&t)Ao#mVO7I$B> zq+mWx!Kcz;)&hd4axZ^1$wj9TcEN3?nl_T1@m^J;bOY|IHws$paf`qZC+Z) zg6?`h6~Nr!5d}PUq=V+X-p4CMzZd-aR@hB%MybK`-CUxjTof`*q@){J#vjtCc)9h| zAtZ#aIeFMzoW4j?6SX>vj|2U56>nm#kxkd;O`Gz7e@{&1&oR0K6yr~r(w8M7XqtDJJogQ90)+%QvQD3_AYqj=j2!foEyMj zbmzzqnT$P-T!+1J6+4y~iQwT&o)HyU0!PGF7!*n?&m0# zu&hoai|*XC&j*cA?RlPo0tHr%ev5*G@Y5fZ+0%_$SZuY|wm^RVx4H z3^fubeqAVdjX)PzI4KjA)Y~S_`;w6TK?7DaOne~x>w1OEcsJ1kwi!rPuZ(K+Kp>X+ zCi9zQiQL8FkJ8?Sq|QSb@(<3x&OJw=IEhiB@|AZKrDLr7Tijl;V@-BuRtv z<^ui-`h3i~4C%y(``(Gv8JgJKQB2EymX1}r2A%`mh}XWl3?`$vIC;h2JJgO5 z%AZ0Hdw*u7Hv*3D3pKDJ(oHg8;(EQ+a!Tt;SZ zOm@|#c!gF6cht*@cMkOxLI5amxkywYJkE?PquJmCvODNsq{TDDoVQo5OF&;2$_)SP z9bE&)_7A)d6SJp2)xpaNSx@HfzX7h<6!Y4?eck!&lqaUomb<|5zKiWqbBZErv^+P6 zTg(^JaMk*5B5TiJ>w3d0r&m@g3`RFZYbmg0v3ms+sg*vre!X(%d+z`iBR``wtxFM9 zbG=d>I%p2skzeCgO&+W)VOFq<8^x(s;pG6fANpL`#ERu?TV8*gf(S0>Z`obuAXMv> z_6NzP&sFZ`aTQ021%tFpH2SU?)G zddjOmxuf~!tIMZ-=RWLjdKo&gC+u8`@7)L~Fl+hdQ>pj^AW&b}q3m(Agv6EJePbk_ zt`412<~g~mM4}yO{(^WL6bIboC%kvq=iJk-P!ZE@I{9G(JL_Ep3{T-9{a!GBtyPip zpKtA&(A_fbO0Jj^Mp7nTV?kJmz~pl*d|rUB zzd%HfPG%rZFMMUQ;}<)@LCfy%?IDakG)J}4wc=1RAPi6bYstJhE09csLq}Y(q<)wr zs2h%nV(s9YYqq`t657P@pMf0YG`lBa`Id;nr0){m1jdrevyyiPux?kasqZ^poL22T zS1on;Wo~OTp;l!XY<{|ZJLom#=dQ>S-c+iJ5Hu7TI}GRoM}HEnn@q*TyNfnY)0K!HkQsRV-nejeNHVT(dkox1 z4LFoR10}}A#ngRy+1VAf^agYzcmtSyQ~7aic=_XLl)aNg;lS1V^j7_3*W{3>YpY_* zEItAMsif9H+Na@qrhO<8i%~LMhG#RHq~}!kjA?iIar@j%QjTq?9ATERrBY8BLGN*( zDHU zbCRDih3m~RDqyfK>}DSi8*&X8>@+DK;34W0{dx%VrG%&ZMH$1TuOdK(&l<)~K8oo& z-2)BjR8_zCr%v7HYCnX(=Xe=GoP*ese!*kO2J9RK7_fwjZqkyuQpjHHN*frg(Xr=2 z7Zuv?Kmdviy`LC2lrkit=c75}#Z!)GY=6c-VOa|q9ve+kv-6ohit=BNnOq8mR%HT)CVN`Yt&zolcny!+-011SQcO}XXr@s4@phbv zn)G5ixjgR_&v)kc+vSwSAQxI-d13+a>BoY{Fu zR$%aNqWg$+38mwj4U^zdP;|ogax%ID(=NSH!~M;}wWi4N6N~tqo8hTSM!iBc;EN#@ zZP0V67OPgzA7JdNo>NV4;OdGiZ;{LA!Ey3_;Sux^MMF6$|GBAK&!aI(9aSOmcdB1z z+E;g_u?D%73`okLzr33RcWIl|9acloKUWq32OrXOd{7CaL5HE-5 zf)Mg&!hf_>-`yV#&s12mY(?DmfHQ41EiPR}(;s(bXg!?>jnuG8?~VC9(9w}j4fpWn z-j1W#&N;XeW)In@jDUw_Z!PNMiLCyNWeHV0@{t14%{?38|BTv2Wbn6F-#M$E^~`wx zW_SL;{$maWDF!;oSd*Hk_{j)7A)vcZ=>7V9$1qyo`9}MEtxBge;3y7PUG)^aU1Vi%~d+Pt1DvdJhFB*d6PoZ<6^I^E9`C5W9%Cs1WbfmB;<6n z#D@K%;9xYup<8w0ZEy^Y0Q!+X9I<-(`kkW@^$D+PI!;TaOA@yPtx>we)V$6F@(4;!@E}L(R7jcW{D0IMjP=| z%$E=N)o>~csg~2jA%#n}`)&l>BcHjM1dr$>nQw)1T zT>b^O>{1c6Ykaok11slBfzrkS&W=d;&ggY^`uR2Z01uyTyPJK-J=65#%y54dwX>Z} z2U-AfgOFO{%8;*g-n+qe(G;|KgTB7Cky)O?R20)Y!TzaiTsh0}eRRM~6OZAxLy7Q1 zk^LSjrR;^Lzf*8F@dC{yy=U+#XLb9*i(iKxo1;jHZ~hCTQT|50YC9?wSc4f%gIH3> zqKu@|ky(Jf$@wgUUlhh-L~`m96whM##nJdHzmqt4ku1Hh91rF>&cepS%n5dcByIvX z{)kx2Qjtjj;X0gLH%4VW4Q^OpTIeb zXS|>&$xF>Xd&I%ia;^3o@XNaw8X))^yraZ!A!M_=zR691C$&{n2NHFyl88w3=k8&^ zj;%Sa<$s*G>267ZWQJwz;PO>dwB8?N@__7t)|W$)kr$wZ-L%Sc_B%RP0biX zj4*zg(3U(gA4&&PIC2qX&7(_vWpLO;Lv^y_0u|Q#uLzyfbk&xWzx$$m-NpJtn_NW9XZ=@2_pN!1w zp*e7IWUz>jfzTN^1Ru6~cYo5`@n`T;$DYQtagxSj-dR%{;r#Ew!AnO=v!K{I21_>#?)3j`YpuB1qH)a@!FgirnUlIVv7lMi>s?g~FY6Tm{{W?1@llZ&t- zvs3c;bu6~`Im3rOTEWvR8c4c@##pYyIg)SS2R81@yBC*g#t?RuFiZO4&-sQSn%H*I z72G(b?jo(e8~09&l%;b$zW{vXj|`f>@E2o@f1vjZb6cqeGR95)TtEoQGjhatUL@DN zy){D=fGD@(=fb01yS(9EE+bf-fs)7M6$%M!;5_o z$nKNu&8(-42f~nyi$HnQIl?7WfM=+F!Z|$U`0>C~HoYsjSn}}*zyo*vI0{A2x56QC zAPPvUEb&>0CpV)jtLNpqUl-wLNgyWvhKBwQ+m`LS*~LK_ML1s`NZz({+pzua4V|c1 zE_Cu8=@isPLSIPBoxQg%#M-swJdvzTQ^{-lYmN??G!v|F=4Gxra1eyn6HS!|rTSe? z>C+gJ7mIbcqovKH9oJgHd!klNfz7EK3^5==3%@ye4E!;XNOMYhw8!ncp9D&usPC$& zD&q;U5l(~%ei+B?k4S|iqh4$@LK%!X39;HTk-B>-tO*uN1>BDqq+%1aI2izpY1Mp{ zo3~%xds7*weV)N&qg6-BrXCUS(?G0;GS;4V_NaUhRb9ZWd2w)WiGZgy7OFMpK-ljf zNidaM^Eb}L!6I|b&p>TmUgAaU8(bw(AD(YEO2-!Zx0-!{7jiUX>H~b;5;Tc+#A8KZ zn5&_@J|eN4@^Xx^tF*r6QSKbLPU0_MzZ%j)EyJedlD; z5DiYoON1_Ny9AWVjyzDyb(ExubGD)+_aRNo8d)YX<tYEe;2=7=d#js}i(5^J5lz zCyDE2jq}6xHLFBDgLCBcsM4F4GKnEN5(wUgB7h>()g|GQ(Pf9kzpF&bEx2VPjdxe| z-vn7IvVCW*+?WMJ1!$rVHE|gsibCftj?{}rY2i>vQuEBXV`6)%T}jDjJf~IBwFjDT zbzZq>L9?*DqM`z0mGQvEpc5`V-j$0g=l9G1?goR?d~o%%B!T+dqRzPhF=T4yt(YY7 z{rc4=Y2yvy=8CCwM@Cgq*hy^bY~(K4gMt~e-LlV;=Ahpp4K<7ZU z`_lM)r|`z!1Aw1@8dB6QB>!YFuE;R5kM4?DZb%Mfj%otcYbSmuHpHr;|;HT9w-i4g5wRb^5Xc<@ElyfPM(v*{S;V#b^#!1ecTmnLq^7n8* z{pzhku*`n^5#B6U)zYTv-A#+L<)<>v*kHHQC{J{;cYMZ*VrXlB zoYe1RLA5N$kei9ItsdNJEZg3dM&2{()<7PN2BE{wpYPr23qWWDKZ7|8T6HQTnhTSc zD|4 z6L#;J8KR2BZ&d+%>xAna*~uZ<#q1XIGzk1}lNWB}`EF?Li8Dd_>c@_IIn9v8_&Z&u z@5yQBTF(@8d?BWhVq9a?;uEizE&>-Mi_m&lw8fzLVH5&E5dT<&7+iE~Ld=A$H z{Rpo?sN@%sYjIv81#X*uUXd7)E{-y2JHPMk$k9D%6tY57_BW!U$BL|IvwSUyGt;)D#2?R0KLO=NtW}gx|Le+LBd^C*`g>u-S`3+dh1$A=I+ROS|2%z; zuP6LM5`qjdrjL@W)pvM4iq`wZmpxLWDGHv&7Ve(&dlL6OFSFmJ#;;OSmr{Yq$s~We z)fOs7;jPHZg{iW1_KtY)sIoS=x~<1}8}3KCOjf30V@@itxNC4y##D6)*L`eTau@e< zCf>e*v)gKOdJhFe25RKJYx@W93k{CpfNP@7wUEvE8haC1)%FP5CXm+)n(VhmfjqBt zxH-jeD9@xJ5B*jy*k|n~T?~PXT@d~O7J8JAA6oLWIgumL<8zv!2MsrNezAh&`qrHp zipS#veh|IBsnn)-9`X7vdiE}gJb>z}wJT%6yEVxu?x`Kt#$V&xUEyeXk{UEpUK#~y zL)8uG3il@%T?6l6zKV?W?rbeVze*`@QK!~uiZCG=-NO#9F?5&&_>_P}k3bCfYh6IN zlr;+WG4G`(2E?OZ%0#QCf5QSz`hnYKQ_k=>Q8Tk4Xg>-pE-hw<`pGM|BwAmcB9CrKL!=6`y)L2iX(TpT4rnx zlzQb7%sld#!<-`LZ7fi)7kO-7E7MKnR4(j@@jJ_S5k~Ja5BjNPyR_>+Sw}<1T8`>Q zd^`q4yX&6@HLI@wL>(E9`W`4J2VvE8J$`KHmv~v8MxCsiSR|6ycRk}mw4#p z--Dp>QBY#W2I$DeBqspzaabS#T@qEqd=9TASXx{f?8_)S}FpGq<=Fid=Xi0&`0X}i&){UX<@z2 z%f=E9wj_CBf9J8;O`wrA4JU$^Nkuno5r-jWRr=!egpmuV zg>Ci3G;T?Rg`i|{+l^Fqv+mfd3&G4(tq1$5(YXe+xkoAFhd?O#?e1wuD=YD0*feI} z=&S(VA8%U3u@+VH@9_#$m^%QxPe`(nO2hU0x*_%@ZuiggsLgWvoe!wcW6Ko5!TRq& zg(NodmO4qlHtC2mqoIb?rfP9joEI(dob}}e&B}CyFvyIZX|4Nd3Q)a5NnSRRZQS`gF1?9kDvIiI*sFAw_+h zRWn%NR>#anhdxn@m_ixdF?B1Q1jn=9zk=-VAe6NevvycuzA0-HIi-3I5tNbE(c=vK zbIoABo6b$n==nqZB9}CE3a;~%N{Wi7cSQ&e>Rd&|K6LN`$PYLVUf*rwB&v>VEnO>Z zBN(5!ppKqqL_IK~nQ7(0VdPE3%vx2oP)a~`u${P}N(v+82o+GGXrmc4wF#rpCgbDj z8~Sw4S1`J|mxKO-qzm<~!)kvVp8pH}l5B|utYIO)8-Poqo<%<7?((??2(m_}9<$Ep zsNf%{Mr0EgyCn9ApwhSwDpIM3?{GuZL=;*D?_Ef9Q1N!&-Pb>R(DZ-=>+E(mQ;x+JpUY}*1kNo2Dqk*L8XmuA?Vp{|;g&st zP6ma+y5HvKhC2H*4CE%?$}AG-ZnC*(>kR}d<;FiVtm}PBJ#N1{EOKRoy+4^-_e~zC z3}s7xb(L=kw5jq38Le=(&wz?F6Bvm*ZeiV*KPPh1u64yUa5Wd2*lIBl44}Ordv#@b z8J7M0%|7upqA3MBCSe4o+ucTUGc(M947?|xZ>ib*DP3kl#Qdr*z>YpPKTyg8lIKgbAUJuC>8fL^Pzhp}}pSe#tsC12eJ(J?mf(2IWpmyd#7N&q+6kSQS>2^hqoXYqrp!A3l~N7;taEFr zYaWwH2dzybVfovUO~*Js4Y>l*UT2z?RblMN;Z##>T+mL(*y3G#*Qj84EP&Br>I~!om9Bb z%!cN2IcE)v@z|4VTK!b0day}aeO=Di*M`HxR4OTX;(bn21M>|EHSPz2Av zXv>%ayC`J1XXS+l6S{J6mdSJ69wOFytzs1O=T-KgKbbXO_Cn#+Ru`G;e>*g|k>yzE z%=H!z#^7x)m{I%%nPy6WDPqpdh8UW>zoPc>r2m-xnde7!204n?nJPsQK=*I8t;A?; zF9BR9_Cih-a*sVY5fZFC4eMY<>l6Fxb`m%&yWq)k;Wx)e&M=i5u6J#}*KGkH4~8!OUk~RE8(@uu7>s)-T9H2(^}wO`_5=~&ocf}}p7qVIwyB*}{f{!# zS6{X7ZPRf8u@)7Y+L)M`IoKdm5$;L**^iM z&KtijuS9=Z*25nGC5?(IEg#cTn{^C&q@qp9NNc>h!Sj^mUMO^Qj&Z3Iw&+@2X<)3~ zna2;26w%i|-iP{9>e5>PT1l;uDcZO7qN9t1c~gvVLCt{gd0Lp(1s|;;W*?>F;Uab! zvk+`AJPI(U&v!@yKflyW(buhLND?vgW;j;C&Gu_pG^QAVbmVLG_vK6;mKAfhktbF! z>Si^;rfl9f43T1>7ErCQNLeTDbrmm&5@KVS9neFlW}=bPW=P$*J-XvYkYw^t{6BdS zt2FVM2Ef0cbTaZOBEDup*x=8_vbUe4a2 zk!qU3%$b1qB}fSg^(M3^@bIPYroJ0%L^Bb-gS>nQ)plpa*zBHn1>&JVhq9}e0Ouu; z$ypT;aPTc!h0=;2gYs%=&`fO1g$ae$d#Nh% zcDicmQ>aU-%J#1%2!Re4@cIq3o+&0@UGLCJ?28o2)>*A*SiajNx)ryU#! zysL*Et`>2QC&v5jx>6AHMG3L_f{%1IhVNMt&M}rl3!2J#l(_m01_nAei1p#$Addp8 zyRPU{OC_HoJH2<63@mgwWBDOqj~sfCJKo;7iDT9ua>>bmO7Im-$A-n1eLS(}gsz@` zKmsY4(Ubq)4ir$NL}>`;HwYY=BO0uNWi+(3ZxP=yE=l9?V9VkO7Nk5`5Y>8!{_XLu zSj>T*_ByWkUIQ|aF(Q07ue-ybd$tB5up<$n*F-0)3eZtB2e*#VByjmfNgI}SoN+u@ zL#>Y`A+ckzz}Q)q@&bglHXDB0b8BVk&YE)h+9r8&W*bv9aw zkcRS#{i>nj%HUp7j^Nf5_aNxli!HiPwD zmW3GjdrEd$6K~=x<(6`0wn9wsrS)N|T$ZOXzi$%@gut{}_1%c6L`kA&=@<=iKQdFY zl@iNUzZk+ImeyGt8~Ak~4RwIKBd{v$0D#X+m;_8ViUa zR4H_k7m*KfC(9kl0$J(XZg{OC@(2_yBGpuVb5_!OYt1_GZG8Ri1K1H*7#+j&bAnp? zDhi5<%$H&SxgD>(aY7)W;-lF>R`p&vL86se%|gCBJn~-QRG&Oze9K_>N-*ND`+rgs zoR`7R<_#6ejAmhGnLS+AZ#uuR*%k*>YjetUA^3EQgKZHFDh64IGi$KMk?Cs+0DJk` zu~B6mvtF;nl$kISH!40wSD6=?RWqu%a1B@?d>~AG-`@OXX&+#+B>`S|yK|YJWtGxj zZ@I}@9-bA4s!hah7L}uJZU+=+?^!g-nAB%htLXNvV2d$5?sD1H#vYXQ{1cf0aZ{Ex zu`c&H_PC1M3I2>^XQ2eqmQEnaV|I?(do$6ob*mFeRrXZ6Jn3&H@FS4KY&i3#8~C@{ zx#if)c*0EHRVCm&Tn6j{2B zW{c8Nx~v4X=sK2UbbU&&V5Mi75NTz{a)pV73z7|X>O9h#qK&r=fzA?45lsRthDw!E zuPZMCLCMO-faM5XvE6ATh<|o?MC#Fbh5d+L#LznSBMqo?Y87iVYAp!f;z%oiU4=s! z!d~$sydF;SW}(41$NV98MT0ID&jXnJLSxQ~2w$Bn-FI)g+kLAp-vu+v`>Uv0mRJeP zIZZt{g&+DyyAWh%^64}LX*atJgp;!^0@l_}l2ymTpG+%C*hn0Ebp(e9uDjIlX8Knx zf2uOzp?QE~6cRG$UV_sDpw56fw1r9w84qjbHz_3cA2v!9uFyD;-wGw}(32xXlPT}s z8X_7y7Hgg-W~VmXPQ_X$*~zTtuT-A`q5M3csj{s+tf6LumL*X#4t>`TiKpB{tb%xY z3vi}YXOY1^tRx6+*N+jx1k<(!y%#ZcHdF5Qx2%Dom2M=v+~^nbJIoaxtpvzOrL%2e zA@<%Ydb0uL9+Kj(?0nHoonNohU=@U$nNV;4qYxoOq=zk8;PA~rqs)WA7-7598;o0H zS(_d1%Jep1SHV0O4C6^bD)b;FWq6h_Bko^_6e7qWr6NRtHeOJek45*6Q%YkgJ+*B6 zcmC@-DY;1F%H4DmvLdAuwGE<9Dzo z_Ek+0Dg?)~gA34V&J^7g@{3{+XykrCY8KCwxgx%e5$vt?rOOPO&rP3hW~i3e-CZ1T z1}s9oD<^9IGER8|JOC=0^RYpLCxChg*w$@(j)Tm3oh+vp|M5xa(A6B%$~^qnm2LiX zWxJ+uKs_yCR@E?CYev65H(emyPk-_XnPyu@hp};a`BDx}+OfrN1QE(=-(!)Vr!_`CDee>@^Hlva_q zT`0Mf^+-)o5beJHycg12&J*Ie4hW6>`~QLQ=X;w8YSu&r+l3iynG1G*A>rgGC7K7C zhMk}|sM&6itR_UC22yEP*r+rjaCkPGm=%fKz5X(_Y>4uol7VJxOmVS33pk-+AAiK& zIh2VlV|^q%bx^OeQ5%Hx*kM6PObZD9FPH!Si{&?W*Mvm*FP8uRX7{Inyg2`NQvatH zJ~(O$o;M}Qe~ABg7hJIaGf2UTgYHrcylF`P!^B68n4?01fi1&=f#Llh2-ts^UAL4X MZw441um4v67da8bLjV8( diff --git a/dist/dist-min/react-console.min.js b/dist/dist-min/react-console.min.js index 0908f13..70f0766 100644 --- a/dist/dist-min/react-console.min.js +++ b/dist/dist-min/react-console.min.js @@ -1,2 +1,2 @@ -var Console=function(t){function e(r){if(o[r])return o[r].exports;var s=o[r]={exports:{},id:r,loaded:!1};return t[r].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var o={};return e.m=t,e.c=o,e.p="",e(0)}([function(t,e,o){"use strict";var r=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)},s=o(2);o(1);var n=function(t){function e(){t.apply(this,arguments),this.child={},this.updateSemaphore=0}return r(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,s.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"}," ")]:[this.props.value.substring(0,this.props.point),s.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 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"+(t.type?" react-console-message-"+t.type:"")},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"string"==typeof t?s.createElement("td",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("td",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("td",{key:e},JSON.stringify(t))}))}))))}return s.createElement("div",{className:"react-console-message"+(t.type?" react-console-message-"+t.type:"")},t.value.map(function(t,e){return"string"==typeof t?s.createElement("div",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("div",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("div",{key:e},JSON.stringify(t))}))};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(r){if(o[r])return o[r].exports;var s=o[r]={exports:{},id:r,loaded:!1};return t[r].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var o={};return e.m=t,e.c=o,e.p="",e(0)}([function(t,e,o){"use strict";var r=this&&this.__extends||function(t,e){function o(){this.constructor=t}for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)},s=o(2);o(1);var n=function(t){function e(){t.apply(this,arguments),this.child={},this.updateSemaphore=0}return r(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,s.createElement("span",{ref:function(e){return t.child.cursor=e},key:"cursor",className:"react-console-cursor"}," ")]:[this.props.value.substring(0,this.props.point),s.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 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"+(t.type?" react-console-message-"+t.type:"")},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"string"==typeof t?s.createElement("td",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("td",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("td",{key:e},JSON.stringify(t))}))}))))}return s.createElement("div",{className:"react-console-message"+(t.type?" react-console-message-"+t.type:"")},t.value.map(function(t,e){return"string"==typeof t?s.createElement("div",{key:e},t):"object"==typeof t&&"link"===t.type?s.createElement("div",{key:e},s.createElement("a",{href:t.href,target:t.target?t.target:""},t.text)):s.createElement("div",{key:e},JSON.stringify(t))}))};l.defaultProps={type:null,value:[],isTable:!1};var i=function(t){function e(e){var o=this;t.call(this,e),this.child={},this.setBusy=function(){o.setState({acceptInput:!1})},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}]); //# 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 dab8fe5..5eaaec9 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 d841bf7630b585141dab","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","href","target","text","JSON","stringify","val","i","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","join","cancel","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 if (typeof cell === 'string') {\n\t return React.createElement(\"td\", {key: cellIndex}, cell);\n\t }\n\t else if (typeof cell === 'object' && cell.type === 'link') {\n\t return React.createElement(\"td\", {key: cellIndex}, React.createElement(\"a\", {href: cell.href, target: cell.target ? cell.target : ''}, cell.text));\n\t }\n\t else {\n\t return React.createElement(\"td\", {key: cellIndex}, JSON.stringify(cell));\n\t }\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, i) {\n\t if (typeof val == 'string') {\n\t return React.createElement(\"div\", {key: i}, val);\n\t }\n\t else if (typeof val === 'object' && val.type === 'link') {\n\t return React.createElement(\"div\", {key: i}, React.createElement(\"a\", {href: val.href, target: val.target ? val.target : ''}, val.text));\n\t }\n\t else {\n\t return React.createElement(\"div\", {key: i}, JSON.stringify(val));\n\t }\n\t }));\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 else if (e.ctrlKey && e.keyCode === 67) {\n\t // if input is blocked, ctrl+c should still call cancel\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\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 d841bf7630b585141dab","\"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: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\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} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\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 83ef826307f11bba8644","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","href","target","text","JSON","stringify","val","i","default_1","setBusy","setState","acceptInput","updateLastLog","messages","_i","log","state","push","command","message","indexToReplace","scrollIfBottom","logX","logTable","tableData","return","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","join","cancel","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 if (typeof cell === 'string') {\n\t return React.createElement(\"td\", {key: cellIndex}, cell);\n\t }\n\t else if (typeof cell === 'object' && cell.type === 'link') {\n\t return React.createElement(\"td\", {key: cellIndex}, React.createElement(\"a\", {href: cell.href, target: cell.target ? cell.target : ''}, cell.text));\n\t }\n\t else {\n\t return React.createElement(\"td\", {key: cellIndex}, JSON.stringify(cell));\n\t }\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, i) {\n\t if (typeof val == 'string') {\n\t return React.createElement(\"div\", {key: i}, val);\n\t }\n\t else if (typeof val === 'object' && val.type === 'link') {\n\t return React.createElement(\"div\", {key: i}, React.createElement(\"a\", {href: val.href, target: val.target ? val.target : ''}, val.text));\n\t }\n\t else {\n\t return React.createElement(\"div\", {key: i}, JSON.stringify(val));\n\t }\n\t }));\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.setBusy = function () {\n\t _this.setState({ acceptInput: false });\n\t };\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 else if (e.ctrlKey && e.keyCode === 67) {\n\t // if input is blocked, ctrl+c should still call cancel\n\t ctrlCodes[e.keyCode]();\n\t e.preventDefault();\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 83ef826307f11bba8644","\"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: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\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\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\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} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\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 df94fb778f005921353fab3d8eecfe6646fc8721..4eb47623e6e2993d44093748b5d342b90535cfa4 100644 GIT binary patch delta 25710 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 delta 25592 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 XIPf11{D%V{oCE(K^{N4?0LTFVj{Qp7 diff --git a/dist/dist.zip b/dist/dist.zip index 1db80e10ae2e0fd2501541434674fd2b92d7af92..435d5068c187110c2ffb72b76e912604e0d4fcd4 100644 GIT binary patch delta 24837 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 Q8~YSK2PQ-q`~N8a7d$+8NdN!< diff --git a/dist/dist/react-console.js b/dist/dist/react-console.js index 1ef84bf..a20c4b1 100644 --- a/dist/dist/react-console.js +++ b/dist/dist/react-console.js @@ -172,6 +172,9 @@ var Console = _super.call(this, props); this.child = {}; // Command API + this.setBusy = function () { + _this.setState({ acceptInput: false }); + }; this.updateLastLog = function () { var messages = []; for (var _i = 0; _i < arguments.length; _i++) { diff --git a/dist/dist/react-console.js.map b/dist/dist/react-console.js.map index 160a6fa..8e8729a 100644 --- a/dist/dist/react-console.js.map +++ b/dist/dist/react-console.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 1885498b3207eb944d0b","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 1885498b3207eb944d0b","\"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: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
;\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} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\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 a3bc3f0e05f39690f239","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 a3bc3f0e05f39690f239","\"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: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\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\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\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} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\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 139d586..33cbeda 100644 --- a/lib/react-console.js +++ b/lib/react-console.js @@ -172,6 +172,9 @@ module.exports = _super.call(this, props); this.child = {}; // Command API + this.setBusy = function () { + _this.setState({ acceptInput: false }); + }; this.updateLastLog = function () { var messages = []; for (var _i = 0; _i < arguments.length; _i++) { diff --git a/lib/react-console.js.map b/lib/react-console.js.map index 718c346..5ac4d5f 100644 --- a/lib/react-console.js.map +++ b/lib/react-console.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 9c8a4db578c4e6d83f1e","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 9c8a4db578c4e6d83f1e","\"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: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\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} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\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 43356396305df869af75","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 43356396305df869af75","\"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: any[], index: number) => {\n\t\t\t\t\t\treturn {row.map((cell: any, cellIndex: number) => {\n\t\t\t\t\t\t\tif(typeof cell === 'string'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else if(typeof cell === 'object' && cell.type === 'link'){\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\treturn ;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
{cell}{cell.text}{JSON.stringify(cell)}
\n\t\t
;\n\t}else{\n\t\treturn
\n\t\t\t{props.value.map((val: any, i: number)=>{\n\t\t\t\tif(typeof val == 'string') {\n\t\t\t\t\treturn
{val}
;\n\t\t\t\t} else if(typeof val === 'object' && val.type === 'link') {\n\t\t\t\t\treturn ;\n\t\t\t\t} else {\n\t\t\t\t\treturn
{JSON.stringify(val)}
;\n\t\t\t\t}\n\t\t\t})}\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\tsetBusy = () => {\n\t\tthis.setState({acceptInput: false});\n\t}\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} else if(e.ctrlKey && e.keyCode === 67) {\n\t\t\t// if input is blocked, ctrl+c should still call cancel\n\t\t\tctrlCodes[e.keyCode]();\n\t\t\te.preventDefault();\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 7c2f13a..3e5acd1 100644 --- a/src/react-console.tsx +++ b/src/react-console.tsx @@ -226,6 +226,9 @@ export default class extends React.Component { focus?: HTMLElement; } = {}; // Command API + setBusy = () => { + this.setState({acceptInput: false}); + } updateLastLog = (...messages: any[]) => { let log = this.state.log; if(!log.length){