MeshCentral/public/scripts/amt-terminal-0.0.2-min.js

1 line
12 KiB
JavaScript
Raw Normal View History

2020-05-01 23:16:57 -04:00
var CreateAmtRemoteTerminal=function(e,r){var l={};l.DivId=e,l.DivElement=document.getElementById(e),l.protocol=1,r.protocol&&(l.protocol=r.protocol),l.terminalEmulation=1,l.fxEmulation=0,l.lineFeed="\r\n",l.debugmode=0,l.width=80,l.height=25,l.heightLock=0;var m,f=["000000","BB0000","00BB00","BBBB00","0000BB","BB00BB","00BBBB","BBBBBB","555555","FF5555","55FF55","FFFF55","5555FF","FF55FF","55FFFF","FFFFFF"],u=0,g=7,w=0,C=!0,S=0,b=0,a=0,h=0,o=0,c=[],s=0,d=0,T=[],k=[],n=!1,v=!0,p=!1,y=[],t="";function i(e,r){switch(o){case 0:switch(r){case 27:o=1,c=[],d=s=0;break;default:B(e)}break;case 1:switch(e){case"[":o=2;break;case"(":o=4;break;case")":o=5;break;case"]":o=6;break;case"=":p=!0,o=0;break;case">":p=!1,o=0;break;case"7":a=S,h=b,o=0;break;case"8":S=a,b=h,o=0;break;case"M":for(var t=m[1];t>=m[0]+1;t--)for(var i=0;i<l.width;i++)k[t][i]=k[t-1][i],T[t][i]=T[t-1][i];for(t=m[0]+1-1;t>m[0]-1;t--)for(i=0;i<l.width;i++)k[t][i]=" ",T[t][i]=448;o=0;break;default:console.log("unknown terminal short code",e),o=0}break;case 2:if("0"<=e&&e<="9"){c[s]?c[s]=10*c[s]+(e-"0"):c[s]=e-"0";break}if(";"==e){s++;break}if("?"==e){d=1;break}c[0]||(c[0]=0),function(e,r,t,i){if(1==i)switch(e){case"l":25==r[0]&&(v=!1);break;case"h":25==r[0]&&(v=!0)}else if(0==i){var n;switch(e){case"c":l.TermResetScreen();break;case"A":1==t&&(0==r[0]?b--:b-=r[0],b<0&&(b=0));break;case"B":1==t&&(0==r[0]?b++:b+=r[0],b>l.height&&(b=l.height));break;case"C":1==t&&(0==r[0]?S++:S+=r[0],S>l.width&&(S=l.width));break;case"D":1==t&&(0==r[0]?S--:S-=r[0],S<0&&(S=0));break;case"d":1==t&&((b=r[0]-1)>l.height&&(b=l.height),b<0&&(b=0));break;case"G":1==t&&((S=r[0]-1)<0&&(S=0),S>l.width-1&&(S=l.width-1));break;case"P":var a=1;for(1==t&&(a=r[0]),n=S;n<l.width-a;n++)k[b][n]=k[b][n+a],T[b][n]=T[b][n+a];for(n=l.width-a;n<l.width;n++)k[b][n]=" ",T[b][n]=448;break;case"L":var h=1;for(1==t&&(h=r[0]),0==h&&(h=1),c=m[1];b+h<=c;c--)k[c]=k[c-h],T[c]=T[c-h];for(c=b;c<b+h;c++)for(k[c]=[],T[c]=[],a=0;a<l.width;a++)k[c][a]=" ",T[c][a]=448;break;case"J":if(1==t&&2==r[0])l.TermClear((w<<12)+(g<<6)),b=S=0,y=[];else if(0==t||1==t&&0==r[0])for(E(),n=b+1;n<l.height;n++)L(n);else if(1==t&&1==r[0])for(E(),n=0;n<b-1;n++)L(n);break;case"H":S=2==t?(r[0]<1&&(r[0]=1),r[1]<1&&(r[1]=1),r[0]>l.height&&(r[0]=l.height),r[1]>l.width&&(r[1]=l.width),b=r[0]-1,r[1]-1):b=0;break;case"m":for(n=0;n<t;n++)if(r[n]&&0!=r[n])if(1==r[n])g<8&&(g+=8);else if(2==r[n]||22==r[n])8<=g&&(g-=8);else if(7==r[n])u=2;else if(27==r[n])u=0;else if(30<=r[n]&&r[n]<=37){var o=8<=g;g=r[n]-30,o&&g<=8&&(g+=8)}else 40<=r[n]&&r[n]<=47?w=r[n]-40:90<=r[n]&&r[n]<=99?g=r[n]-82:100<=r[n]&&r[n]<=109&&(w=r[n]-92);else g=7,u=w=0;break;case"K":0!=t&&(1!=t||r[0]&&0!=r[0])?1==t&&(1==r[0]?function(){for(var e=(g<<6)+(w<<12)+u,r=0;r<S;r++)k[b][r]=" ",T[b][r]=e}():2==r[0]&&L(b)):E();break;case"h":C=!0;break;case"l":C=!1;break;case"r":2==t&&(m=[r[0]-1,r[1]-1]),m[0]<0&&(m[0]=0),m[0]>l.height-1&&(m[0]=l.height-1),m[1]<0&&(m[1]=0),m[1]>l.height-1&&(m[1]=l.height-1),m[0]>m[1]&&(m[0]=m[1]);break;case"S":a=1;1==t&&(a=r[0]);for(var c=m[0];c<=m[1]-a;c++)for(var f=0;f<l.width;f++)k[c][f]=k[c+a][f],T[c][f]=T[c+a][f];for(c=m[1]-a+1;c<m[1];c++)for(f=0;f<l.width;f++)k[c][f]=" ",T[c][f]=448;break;case"M":a=1;1==t&&(a=r[0]);for(c=b;c<=m[1]-a;c++)for(f=0;f<l.width;f++)k[c][f]=k[c+a][f],T[c][f]=T[c+a][f];for(c=m[1]-a+1;c<m[1];c++)for(f=0;f<l.width;f++)k[c][f]=" ",T[c][f]=448;break;case"T":a=1;1==t&&(a=r[0]);for(c=m[1];c>m[0]+a;c--)for(f=0;f<l.width;f++)k[c][f]=k[c-a][f],T[c][f]=T[c-a][f];for(c=m[0]+a;c>m[0];c--)for(f=0;f<l.width;f++)k[c][f]=" ",T[c][f]=448;break;case"X":a=1;var s=S,d=b;for(1==t&&(a=r[0]);0<a&&d<l.height;)k[d][s]=" ",a--,++s>=l.width&&(s=0,d++);break;default:console.log("Unknown terminal code",e,r,i)}}}(e,c,s+1,d),o=0;break;case 4:case 5:o=0;break;case 6:var n=e.charCodeAt(0);";"==e?s++:7==n?(function(e){if(0==e.length)return;var r=parseInt(e[0]);(0==r||2==r)&&1<e.length&&"?"!=e[1]&&l.onTitleChange&&l.onTitleChange(l,l.title=e[1])}(c),o=0):c[s]?c[s]+=e:c[s]=e}}l.title=null,l.onTitleChange=null,l.Start=function(){},l.Init=function(e,r){l.width=e||80,l.height=r||2