Socket
Socket
Sign inDemoInstall

react-terminal

Package Overview
Dependencies
10
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.3.1 to 1.4.0

4

dist/components/Controls.d.ts

@@ -1,2 +0,2 @@

/// <reference types="react" />
export default function Controls(props: any): JSX.Element;
import * as React from "react";
export default function Controls(props: any): React.JSX.Element;

@@ -1,2 +0,2 @@

/// <reference types="react" />
export default function Editor(props: any): JSX.Element;
import * as React from "react";
export default function Editor(props: any): React.JSX.Element;

@@ -1,4 +0,16 @@

/// <reference types="react" />
import * as React from "react";
import PropTypes from "prop-types";
declare function Terminal(props: any): JSX.Element;
declare function Terminal({ enableInput, caret, theme, showControlBar, showControlButtons, controlButtonLabels, prompt, commands, welcomeMessage, errorMessage, defaultHandler, }: {
enableInput?: boolean;
caret?: boolean;
theme?: string;
showControlBar?: boolean;
showControlButtons?: boolean;
controlButtonLabels?: string[];
prompt?: string;
commands?: {};
welcomeMessage?: string;
errorMessage?: string;
defaultHandler?: any;
}): React.JSX.Element;
declare namespace Terminal {

@@ -20,16 +32,3 @@ var propTypes: {

};
var defaultProps: {
enableInput: boolean;
caret: boolean;
theme: string;
showControlBar: boolean;
showControlButtons: boolean;
controlButtonLabels: string[];
prompt: string;
commands: {};
welcomeMessage: string;
errorMessage: string;
defaultHandler: any;
};
}
export default Terminal;

@@ -1,2 +0,2 @@

/// <reference types="react" />
export default function ContextProvider(props: any): JSX.Element;
import * as React from "react";
export default function ContextProvider(props: any): React.JSX.Element;
import * as React from "react";
export declare const styles: string;
export declare const StyleContext: React.Context<any>;
export declare const StyleContextProvider: (props: any) => JSX.Element;
export declare const StyleContextProvider: (props: any) => React.JSX.Element;
declare const _default: {
StyleContext: React.Context<any>;
StyleContextProvider: (props: any) => JSX.Element;
StyleContextProvider: (props: any) => React.JSX.Element;
};
export default _default;
import * as React from "react";
export declare const TerminalContext: React.Context<any>;
export declare const TerminalContextProvider: (props: any) => JSX.Element;
export type TerminalShell = {
bufferedContent: React.ReactNode;
temporaryContent: React.ReactNode;
setBufferedContent: React.Dispatch<React.SetStateAction<React.ReactNode>>;
setTemporaryContent: React.Dispatch<React.SetStateAction<React.ReactNode>>;
appendCommandToHistory: (command: string) => void;
getNextCommand: () => string;
getPreviousCommand: () => string;
};
export declare const TerminalContext: React.Context<TerminalShell>;
export declare const TerminalContextProvider: (props: any) => React.JSX.Element;
declare const _default: {
TerminalContext: React.Context<any>;
TerminalContextProvider: (props: any) => JSX.Element;
TerminalContext: React.Context<TerminalShell>;
TerminalContextProvider: (props: any) => React.JSX.Element;
};
export default _default;
import * as React from "react";
export declare const ThemeContext: React.Context<any>;
export declare const ThemeContextProvider: (props: any) => JSX.Element;
export declare const ThemeContextProvider: (props: any) => React.JSX.Element;
declare const _default: {
ThemeContext: React.Context<any>;
ThemeContextProvider: (props: any) => JSX.Element;
ThemeContextProvider: (props: any) => React.JSX.Element;
};
export default _default;

@@ -1,5 +0,5 @@

/// <reference types="react" />
import * as React from "react";
export declare const useEditorInput: (consoleFocused: boolean, editorInput: string, setEditorInput: any, setProcessCurrentLine: any, caretPosition: number, setCaretPosition: any, setBeforeCaretText: any, setAfterCaretText: any, enableInput: boolean) => void;
export declare const useBufferedContent: (processCurrentLine: any, setProcessCurrentLine: any, prompt: string, currentText: any, setCurrentText: any, setCaretPosition: any, setBeforeCaretText: any, setAfterCaretText: any, commands: any, errorMessage: any, defaultHandler: any) => void;
export declare const useCurrentLine: (caret: boolean, consoleFocused: boolean, prompt: string, commands: any, errorMessage: any, enableInput: boolean, defaultHandler: any, wrapperRef: any) => JSX.Element;
export declare const useBufferedContent: (processCurrentLine: any, setProcessCurrentLine: any, currentText: any, setCurrentText: any, setCaretPosition: any, setBeforeCaretText: any, setAfterCaretText: any, commands: any, errorMessage: any, defaultHandler: any) => void;
export declare const useCurrentLine: (caret: boolean, consoleFocused: boolean, prompt: string, commands: any, errorMessage: any, enableInput: boolean, defaultHandler: any, wrapperRef: any) => React.JSX.Element;
export declare const useScrollToBottom: (changesToWatch: any, wrapperRef: any) => void;

@@ -1,8 +0,10 @@

/// <reference types="react" />
import * as React from "react";
export declare function ReactTerminal(props: any): any;
export declare const TerminalContextProvider: (props: any) => JSX.Element;
export declare const TerminalContextProvider: (props: any) => React.JSX.Element;
export declare const TerminalContext: React.Context<import("./contexts/TerminalContext").TerminalShell>;
declare const _default: {
ReactTerminal: typeof ReactTerminal;
TerminalContextProvider: (props: any) => JSX.Element;
TerminalContextProvider: (props: any) => React.JSX.Element;
TerminalContext: React.Context<import("./contexts/TerminalContext").TerminalShell>;
};
export default _default;

@@ -1,1 +0,1 @@

import*as e from"react";import n from"prop-types";import{isMobile as t}from"react-device-detect";var o=function(){return o=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e},o.apply(this,arguments)};function r(e,n,t,o){return new(t||(t=Promise))((function(r,a){function i(e){try{c(o.next(e))}catch(e){a(e)}}function l(e){try{c(o.throw(e))}catch(e){a(e)}}function c(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(i,l)}c((o=o.apply(e,n||[])).next())}))}function a(e,n){var t,o,r,a,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(c){return function(l){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(t=1,o&&(r=2&l[0]?o.return:l[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,l[1])).done)return r;switch(o=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,o=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(r=i.trys,(r=r.length>0&&r[r.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){i.label=l[1];break}if(6===l[0]&&i.label<r[1]){i.label=r[1],r=l;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(l);break}r[2]&&i.ops.pop(),i.trys.pop();continue}l=n.call(e,i)}catch(e){l=[6,e],o=0}finally{t=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}!function(e,n){void 0===n&&(n={});var t=n.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===t&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}('@import url("https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap");\n#index_terminalContainer__4seT6 {\n --control-default-bg-color: #ccc;\n --control-close-bg-color: #fc5b57;\n --control-minimize-bg-color: #e5bf3c;\n --control-maximize-bg-color: #57c038;\n}\n\n.index_controls__sXDjs {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px;\n}\n.index_controls__sXDjs .index_consoleCtrl__DI2H1 {\n display: inline-block;\n width: 13px;\n height: 13px;\n margin: 0 3px;\n border-radius: 50%;\n background: var(--control-default-bg-color);\n}\n.index_controls__sXDjs .index_close__XGN9U {\n background: var(--control-close-bg-color);\n}\n.index_controls__sXDjs .index_minimize__pZYTU {\n background: var(--control-minimize-bg-color);\n}\n.index_controls__sXDjs .index_maximize__szRK7 {\n background: var(--control-maximize-bg-color);\n}\n\n.index_editor__JoDSg {\n text-align: left;\n height: 100%;\n padding: 10px 15px;\n overflow-wrap: break-word;\n overflow-y: scroll;\n outline: none;\n font-family: "Source Code Pro", monospace;\n font-size: 18px;\n line-height: 22px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n.index_editor__JoDSg .index_mobileInput__WloSq {\n position: absolute;\n top: -2000px;\n left: -2000px;\n}\n.index_editor__JoDSg .index_lineText__j6qNj {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px;\n}\n.index_editor__JoDSg .index_preWhiteSpace__7KwuG {\n white-space: pre-wrap;\n}\n.index_editor__JoDSg .index_caret__VS4iV {\n position: relative;\n -webkit-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -moz-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -o-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -ms-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n}\n.index_editor__JoDSg .index_caret__VS4iV .index_caretAfter__6aXPx {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10;\n}\n@-moz-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@-webkit-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@-o-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n.index_editor__JoDSg a {\n color: #1a87b5;\n}\n\n.index_editorWithTopBar__L6XKw {\n height: calc(100% - 46px);\n}\n\n.index_curvedTop__LX9XS {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n\n#index_terminalContainer__4seT6 {\n height: 100%;\n}\n\n.index_terminal__teubZ {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px;\n}');var i={terminalContainer:"index_terminalContainer__4seT6",controls:"index_controls__sXDjs",consoleCtrl:"index_consoleCtrl__DI2H1",close:"index_close__XGN9U",minimize:"index_minimize__pZYTU",maximize:"index_maximize__szRK7",editor:"index_editor__JoDSg",mobileInput:"index_mobileInput__WloSq",lineText:"index_lineText__j6qNj",preWhiteSpace:"index_preWhiteSpace__7KwuG",caret:"index_caret__VS4iV",blink:"index_blink__FJp0-",caretAfter:"index_caretAfter__6aXPx",editorWithTopBar:"index_editorWithTopBar__L6XKw",curvedTop:"index_curvedTop__LX9XS",terminal:"index_terminal__teubZ"},l=e.createContext(null),c=function(n){var t=n.children;return e.createElement(l.Provider,{value:i},t)},s={dark:{themeBGColor:"#022833",themeToolbarColor:"#131519",themeColor:"#839496",themePromptColor:"#a917a8"},light:{themeBGColor:"#fdf6e4",themeToolbarColor:"#d8d8d8",themeColor:"#333333",themePromptColor:"#a917a8"},dracula:{themeBGColor:"#272B36",themeToolbarColor:"#DBDBDB",themeColor:"#FFFEFC",themePromptColor:"#a917a8"},"material-dark":{themeBGColor:"#151515",themeToolbarColor:"#424242",themeColor:"#fff",themePromptColor:"#42A5F5"},"material-light":{themeBGColor:"#fafafa",themeToolbarColor:"#424242",themeColor:"#151515",themePromptColor:"#42A5F5"},"material-ocean":{themeBGColor:"#263238",themeToolbarColor:"#37474F",themeColor:"#fff",themePromptColor:"#C3D82C"},matrix:{themeBGColor:"#0D0208",themeToolbarColor:"#0D0208",themeColor:"#00FF41",themePromptColor:"#008F11"}},u=e.createContext(null),m=function(n){var t=n.children,r=o(o({},s),t.props.themes||{}),a=r[t.props.theme]||r.light;return e.createElement(u.Provider,{value:a},t)},d=function(n,o,r){var a=function(e){n.current&&!n.current.contains(e.target)?r(!1):r(!t||!o)};e.useEffect((function(){return document.addEventListener("mousedown",a),function(){document.removeEventListener("mousedown",a)}}))};function f(n){var t=e.useContext(l),o=n.controlButtonLabels,r=n.showControlButtons?o.map((function(n){return e.createElement("div",{key:n,className:"".concat(t.consoleCtrl," ").concat(t[n])})})):null;return e.createElement("div",{className:t.controls},r)}var p=e.createContext(null),_=function(){function e(){}return e.splitStringAtIndex=function(e,n){return e?[e.substring(0,n),e.substring(n)]:["",""]},e}(),h=function(n,o,i,c,s,m,d,f){var h=e.useContext(l),x=e.useContext(u),g=e.useContext(p).appendCommandToHistory,b=e.useRef(null),C=e.useState(""),v=C[0],y=C[1],w=e.useState(!1),E=w[0],T=w[1],S=e.useState(0),k=S[0],B=S[1],D=e.useState(""),F=D[0],N=D[1],P=e.useState(""),A=P[0],I=P[1];e.useEffect((function(){}),[o]),e.useEffect((function(){E&&g(v)}),[E]),e.useEffect((function(){null!==f.current&&null!==b.current&&(f.current.onclick=function(){b.current.focus()})}),[]);var X=t&&m?e.createElement("div",{className:h.mobileInput},e.createElement("input",{type:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",value:v,onChange:function(e){return y(e.target.value)},ref:b,"data-testid":"editor-input"})):null,z=E?e.createElement(e.Fragment,null,X,e.createElement("div",{className:h.lineText},o&&n?e.createElement("span",{className:h.caret},e.createElement("span",{className:h.caretAfter,style:{background:x.themeColor}})):null)):e.createElement(e.Fragment,null,X,e.createElement("span",{style:{color:x.themePromptColor}},i),e.createElement("div",{className:h.lineText},e.createElement("span",{className:h.preWhiteSpace},F),o&&n?e.createElement("span",{className:h.caret},e.createElement("span",{className:h.caretAfter,style:{background:x.themeColor}})):null,e.createElement("span",{className:h.preWhiteSpace},A)));return function(n,t,o,r,a,i,l,c,s){var u=e.useContext(p),m=u.getPreviousCommand,d=u.getNextCommand,f=function(e){if(n&&s){e.preventDefault();var l=e.key;if("Enter"!==l){var c=null;if("Backspace"===l){var u=_.splitStringAtIndex(t,a),f=u[0],p=u[1];c=f.slice(0,-1)+p,t&&0!==t.length&&i(a-1)}else if("ArrowUp"===l)(c=m())&&i(c.length);else if("ArrowDown"===l)c=d(),i(c?c.length:0);else if("ArrowLeft"===l)a>0&&i(a-1),c=t;else if("ArrowRight"===l)a<t.length&&i(a+1),c=t;else if((e.metaKey||e.ctrlKey)&&"v"===l.toLowerCase())navigator.clipboard.readText().then((function(e){var n=_.splitStringAtIndex(t||"",a),r=n[0],l=n[1];c=r+e+l,i(a+e.length),o(c)}));else if((e.metaKey||e.ctrlKey)&&"c"===l.toLowerCase()){var h=window.getSelection().toString();navigator.clipboard.writeText(h).then((function(){o(c=t)}))}else if(l&&1===l.length){var x=_.splitStringAtIndex(t,a);f=x[0],p=x[1],c=f+l+p,i(a+1)}else c=t;o(c),r(!1)}else r(!0)}};e.useEffect((function(){return document.addEventListener("keydown",f),function(){document.removeEventListener("keydown",f)}})),e.useEffect((function(){var e=_.splitStringAtIndex(t,a),n=e[0],o=e[1];l(n),c(o)}),[t,a])}(o,v,y,T,k,B,N,I,m),function(n,t,o,i,c,s,m,d,f,_,h){var x=e.useContext(p),g=x.bufferedContent,b=x.setBufferedContent,C=e.useContext(l),v=e.useContext(u);e.useEffect((function(){var l;n&&(l=i,r(void 0,void 0,void 0,(function(){var n,r,u,p,x,y,w,E;return a(this,(function(a){switch(a.label){case 0:return n=l.trim().split(" "),r=n[0],u=n.slice(1),p="","clear"===r?(b(""),c(""),t(!1),s(0),m(""),d(""),[2]):(x=e.createElement(e.Fragment,null,g,e.createElement("span",{style:{color:v.themePromptColor}},o),e.createElement("span",{className:"".concat(C.lineText," ").concat(C.preWhiteSpace)},i),e.createElement("br",null)),b(x),c(""),s(0),m(""),d(""),l?(y=u.join(" "),r&&f[r]?"function"!=typeof(w=f[r])?[3,2]:[4,w(y)]:[3,4]):[3,9]);case 1:return p=a.sent(),[3,3];case 2:p=w,a.label=3;case 3:return[3,9];case 4:return"function"!=typeof h?[3,6]:[4,h(r,y)];case 5:return p=a.sent(),[3,9];case 6:return"function"!=typeof _?[3,8]:[4,_(r,y)];case 7:return p=a.sent(),[3,9];case 8:p=_,a.label=9;case 9:return E=e.createElement(e.Fragment,null,g,e.createElement("span",{style:{color:v.themePromptColor}},o),e.createElement("span",{className:"".concat(C.lineText," ").concat(C.preWhiteSpace)},i),p?e.createElement("span",null,e.createElement("br",null),p):null,e.createElement("br",null)),b(E),t(!1),[2]}}))})))}),[n])}(E,T,i,v,y,B,N,I,c,s,d),z},x=function(n,t){e.useEffect((function(){t.current&&(t.current.scrollTop=t.current.scrollHeight)}),[n])};function g(n){var t=e.useRef(null),o=e.useContext(l),r=e.useContext(u),a=e.useContext(p).bufferedContent;x(a,t);var i=n.enableInput,c=n.caret,s=n.consoleFocused,m=n.prompt,d=n.commands,f=n.welcomeMessage,_=n.errorMessage,g=n.showControlBar,b=n.defaultHandler,C=h(c,s,m,d,_,i,b,t);return e.createElement("div",{id:"terminalEditor",ref:t,className:"".concat(o.editor," ").concat(g?null:o.curvedTop," ").concat(g?o.editorWithTopBar:null),style:{background:r.themeBGColor}},f,a,C)}function b(n){var o=e.useRef(null),r=e.useState(!t),a=r[0],i=r[1],c=e.useContext(l),s=e.useContext(u);d(o,a,i);var m=n.caret,p=n.theme,_=n.showControlBar,h=n.showControlButtons,x=n.controlButtonLabels,b=n.prompt,C=n.commands,v=n.welcomeMessage,y=n.errorMessage,w=n.enableInput,E=n.defaultHandler,T=_?e.createElement(f,{consoleFocused:a,showControlButtons:h,controlButtonLabels:x}):null,S=e.createElement(g,{caret:m,consoleFocused:a,prompt:b,commands:C,welcomeMessage:v,errorMessage:y,enableInput:w,showControlBar:_,defaultHandler:E});return e.createElement("div",{ref:o,id:c.terminalContainer,className:c["theme--".concat(p)],"data-testid":"terminal"},e.createElement("div",{className:"".concat(c.terminal),style:{background:s.themeToolbarColor,color:s.themeColor}},T,S))}function C(n){var t=n.children;return e.createElement(c,null,e.createElement(m,null,t))}function v(n){return e.createElement(C,null,e.createElement(b,o({},n)))}b.propTypes={enableInput:n.bool,caret:n.bool,theme:n.string,showControlBar:n.bool,showControlButtons:n.bool,controlButtonLabels:n.arrayOf(n.string),prompt:n.string,commands:n.objectOf(n.oneOfType([n.string,n.func,n.node])),welcomeMessage:n.oneOfType([n.string,n.func,n.node]),errorMessage:n.oneOfType([n.string,n.func,n.node]),defaultHandler:n.func},b.defaultProps={enableInput:!0,caret:!0,theme:"light",showControlBar:!0,showControlButtons:!0,controlButtonLabels:["close","minimize","maximize"],prompt:">>>",commands:{},welcomeMessage:"",errorMessage:"not found!",defaultHandler:null};var y=function(n){var t=n.children,o=e.useState(""),r=o[0],a=o[1],i=e.useState([]),l=i[0],c=i[1],s=e.useState(null),u=s[0],m=s[1];e.useEffect((function(){m(l.length)}),[l]);return e.createElement(p.Provider,{value:{bufferedContent:r,setBufferedContent:a,appendCommandToHistory:function(e){e&&c(l.concat(e))},getPreviousCommand:function(){if(0===u)return 0===l.length?"":l[0];var e=l[u-1];return u>0&&m(u-1),e},getNextCommand:function(){if(u+1<=l.length){var e=l[u+1];return m(u+1),e}return""}}},t)},w={ReactTerminal:v,TerminalContextProvider:y};export{v as ReactTerminal,y as TerminalContextProvider,w as default};
import*as e from"react";import n from"prop-types";import{isMobile as t}from"react-device-detect";var o=function(){return o=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e},o.apply(this,arguments)};function r(e,n,t,o){return new(t||(t=Promise))((function(r,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function l(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(a,l)}c((o=o.apply(e,n||[])).next())}))}function i(e,n){var t,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(c){return function(l){if(t)throw new TypeError("Generator is already executing.");for(;i&&(i=0,l[0]&&(a=0)),a;)try{if(t=1,o&&(r=2&l[0]?o.return:l[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,l[1])).done)return r;switch(o=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,o=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==l[0]&&2!==l[0])){a=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){a.label=l[1];break}if(6===l[0]&&a.label<r[1]){a.label=r[1],r=l;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(l);break}r[2]&&a.ops.pop(),a.trys.pop();continue}l=n.call(e,a)}catch(e){l=[6,e],o=0}finally{t=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}"function"==typeof SuppressedError&&SuppressedError;!function(e,n){void 0===n&&(n={});var t=n.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===t&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}('@import url("https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap");\n#index_terminalContainer__4seT6 {\n --control-default-bg-color: #ccc;\n --control-close-bg-color: #fc5b57;\n --control-minimize-bg-color: #e5bf3c;\n --control-maximize-bg-color: #57c038;\n}\n\n.index_controls__sXDjs {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px;\n}\n.index_controls__sXDjs .index_consoleCtrl__DI2H1 {\n display: inline-block;\n width: 13px;\n height: 13px;\n margin: 0 3px;\n border-radius: 50%;\n background: var(--control-default-bg-color);\n}\n.index_controls__sXDjs .index_close__XGN9U {\n background: var(--control-close-bg-color);\n}\n.index_controls__sXDjs .index_minimize__pZYTU {\n background: var(--control-minimize-bg-color);\n}\n.index_controls__sXDjs .index_maximize__szRK7 {\n background: var(--control-maximize-bg-color);\n}\n\n.index_editor__JoDSg {\n text-align: left;\n height: 100%;\n padding: 10px 15px;\n overflow-wrap: break-word;\n overflow-y: scroll;\n outline: none;\n font-family: "Source Code Pro", monospace;\n font-size: 18px;\n line-height: 22px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n.index_editor__JoDSg .index_mobileInput__WloSq {\n position: absolute;\n top: -2000px;\n left: -2000px;\n}\n.index_editor__JoDSg .index_lineText__j6qNj {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px;\n}\n.index_editor__JoDSg .index_preWhiteSpace__7KwuG {\n white-space: pre-wrap;\n}\n.index_editor__JoDSg .index_caret__VS4iV {\n position: relative;\n -webkit-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -moz-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -o-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -ms-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n}\n.index_editor__JoDSg .index_caret__VS4iV .index_caretAfter__6aXPx {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10;\n}\n@-moz-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@-webkit-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@-o-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n.index_editor__JoDSg a {\n color: #1a87b5;\n}\n\n.index_editorWithTopBar__L6XKw {\n height: calc(100% - 46px);\n}\n\n.index_curvedTop__LX9XS {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n\n#index_terminalContainer__4seT6 {\n height: 100%;\n}\n\n.index_terminal__teubZ {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px;\n}');var a={terminalContainer:"index_terminalContainer__4seT6",controls:"index_controls__sXDjs",consoleCtrl:"index_consoleCtrl__DI2H1",close:"index_close__XGN9U",minimize:"index_minimize__pZYTU",maximize:"index_maximize__szRK7",editor:"index_editor__JoDSg",mobileInput:"index_mobileInput__WloSq",lineText:"index_lineText__j6qNj",preWhiteSpace:"index_preWhiteSpace__7KwuG",caret:"index_caret__VS4iV",blink:"index_blink__FJp0-",caretAfter:"index_caretAfter__6aXPx",editorWithTopBar:"index_editorWithTopBar__L6XKw",curvedTop:"index_curvedTop__LX9XS",terminal:"index_terminal__teubZ"},l=e.createContext(null),c=function(n){var t=n.children;return e.createElement(l.Provider,{value:a},t)},s={dark:{themeBGColor:"#022833",themeToolbarColor:"#131519",themeColor:"#839496",themePromptColor:"#a917a8"},light:{themeBGColor:"#fdf6e4",themeToolbarColor:"#d8d8d8",themeColor:"#333333",themePromptColor:"#a917a8"},dracula:{themeBGColor:"#272B36",themeToolbarColor:"#DBDBDB",themeColor:"#FFFEFC",themePromptColor:"#a917a8"},"material-dark":{themeBGColor:"#151515",themeToolbarColor:"#424242",themeColor:"#fff",themePromptColor:"#42A5F5"},"material-light":{themeBGColor:"#fafafa",themeToolbarColor:"#424242",themeColor:"#151515",themePromptColor:"#42A5F5"},"material-ocean":{themeBGColor:"#263238",themeToolbarColor:"#37474F",themeColor:"#fff",themePromptColor:"#C3D82C"},matrix:{themeBGColor:"#0D0208",themeToolbarColor:"#0D0208",themeColor:"#00FF41",themePromptColor:"#008F11"}},u=e.createContext(null),m=function(n){var t=n.children,r=o(o({},s),t.props.themes||{}),i=r[t.props.theme]||r.light;return e.createElement(u.Provider,{value:i},t)},d=function(n,o,r){var i=function(e){n.current&&!n.current.contains(e.target)?r(!1):r(!t||!o)};e.useEffect((function(){return document.addEventListener("mousedown",i),function(){document.removeEventListener("mousedown",i)}}))};function f(n){var t=e.useContext(l),o=n.controlButtonLabels,r=n.showControlButtons?o.map((function(n){return e.createElement("div",{key:n,className:"".concat(t.consoleCtrl," ").concat(t[n])})})):null;return e.createElement("div",{className:t.controls},r)}var p=e.createContext({bufferedContent:"",temporaryContent:"",setBufferedContent:function(e){},setTemporaryContent:function(e){},appendCommandToHistory:function(){},getNextCommand:function(){return""},getPreviousCommand:function(){return""}}),_=function(){function e(){}return e.splitStringAtIndex=function(e,n){return e?[e.substring(0,n),e.substring(n)]:["",""]},e}(),h=function(n,o,a,c,s,m,d,f){var h=e.useContext(l),x=e.useContext(u),g=e.useContext(p),C=g.appendCommandToHistory,v=g.temporaryContent,b=e.useRef(null),y=e.useState(""),E=y[0],w=y[1],T=e.useState(!1),S=T[0],k=T[1],B=e.useState(0),F=B[0],D=B[1],N=e.useState(""),A=N[0],P=N[1],X=e.useState(""),z=X[0],I=X[1];e.useEffect((function(){}),[o]),e.useEffect((function(){S&&C(E)}),[S]),e.useEffect((function(){null!==f.current&&null!==b.current&&(f.current.onclick=function(){b.current.focus()})}),[]);var J=t&&m?e.createElement("div",{className:h.mobileInput},e.createElement("input",{type:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",value:E,onChange:function(e){return w(e.target.value)},ref:b,"data-testid":"editor-input"})):null,L=S?e.createElement(e.Fragment,null,J,e.createElement("div",{className:h.lineText},o&&n?e.createElement("span",{className:h.caret},e.createElement("span",{className:h.caretAfter,style:{background:x.themeColor}})):null,e.createElement("span",{className:h.preWhiteSpace},v))):e.createElement(e.Fragment,null,J,e.createElement("span",{style:{color:x.themePromptColor}},a),e.createElement("div",{className:h.lineText},e.createElement("span",{className:h.preWhiteSpace},A),o&&n?e.createElement("span",{className:h.caret},e.createElement("span",{className:h.caretAfter,style:{background:x.themeColor}})):null,e.createElement("span",{className:h.preWhiteSpace},z)));return function(n,t,o,r,i,a,l,c,s){var u=e.useContext(p),m=u.getPreviousCommand,d=u.getNextCommand,f=function(e){if(n&&s){e.preventDefault();var l=e.key;if("Enter"!==l){var c=null;if("Backspace"===l){var u=_.splitStringAtIndex(t,i),f=u[0],p=u[1];c=f.slice(0,-1)+p,t&&0!==t.length&&a(i-1)}else if("ArrowUp"===l)(c=m())&&a(c.length);else if("ArrowDown"===l)c=d(),a(c?c.length:0);else if("ArrowLeft"===l)i>0&&a(i-1),c=t;else if("ArrowRight"===l)i<t.length&&a(i+1),c=t;else if((e.metaKey||e.ctrlKey)&&"v"===l.toLowerCase())navigator.clipboard.readText().then((function(e){var n=_.splitStringAtIndex(t||"",i),r=n[0],l=n[1];c=r+e+l,a(i+e.length),o(c)}));else if((e.metaKey||e.ctrlKey)&&"c"===l.toLowerCase()){var h=window.getSelection().toString();navigator.clipboard.writeText(h).then((function(){o(c=t)}))}else if(l&&1===l.length){var x=_.splitStringAtIndex(t,i);f=x[0],p=x[1],c=f+l+p,a(i+1)}else c=t;o(c),r(!1)}else r(!0)}};e.useEffect((function(){return document.addEventListener("keydown",f),function(){document.removeEventListener("keydown",f)}})),e.useEffect((function(){var e=_.splitStringAtIndex(t,i),n=e[0],o=e[1];l(n),c(o)}),[t,i])}(o,E,w,k,F,D,P,I,m),function(n,t,o,a,c,s,m,d,f,_){var h=e.useContext(p);h.bufferedContent;var x=h.setBufferedContent,g=h.setTemporaryContent;e.useContext(l),e.useContext(u),e.useEffect((function(){var l;n&&(l=o,r(void 0,void 0,void 0,(function(){var n,r,u,p,h,C,v,b;return i(this,(function(i){switch(i.label){case 0:return n=l.trim().split(" "),r=n[0],u=n.slice(1),p="","clear"===r?(x(""),a(""),t(!1),c(0),s(""),m(""),[2]):(h=e.createElement(e.Fragment,null,e.createElement("span",null,o),e.createElement("br",null)),x((function(n){return e.createElement(e.Fragment,null,n,h)})),a(""),c(0),s(""),m(""),l?(C=u.join(" "),r&&d[r]?"function"!=typeof(v=d[r])?[3,2]:[4,v(C)]:[3,4]):[3,9]);case 1:return p=i.sent(),[3,3];case 2:p=v,i.label=3;case 3:return[3,9];case 4:return"function"!=typeof _?[3,6]:[4,_(r,C)];case 5:return p=i.sent(),[3,9];case 6:return"function"!=typeof f?[3,8]:[4,f(r,C)];case 7:return p=i.sent(),[3,9];case 8:p=f,i.label=9;case 9:return b=e.createElement(e.Fragment,null,p?e.createElement("span",null,p):null,e.createElement("br",null)),x((function(n){return e.createElement(e.Fragment,null,n,b)})),g(""),t(!1),[2]}}))})))}),[n])}(S,k,E,w,D,P,I,c,s,d),L},x=function(n,t){e.useEffect((function(){t.current&&(t.current.scrollTop=t.current.scrollHeight)}),[n])};function g(n){var t=e.useRef(null),o=e.useContext(l),r=e.useContext(u),i=e.useContext(p).bufferedContent;x(i,t);var a=n.enableInput,c=n.caret,s=n.consoleFocused,m=n.prompt,d=n.commands,f=n.welcomeMessage,_=n.errorMessage,g=n.showControlBar,C=n.defaultHandler,v=h(c,s,m,d,_,a,C,t);return e.createElement("div",{id:"terminalEditor",ref:t,className:"".concat(o.editor," ").concat(g?null:o.curvedTop," ").concat(g?o.editorWithTopBar:null),style:{background:r.themeBGColor}},f,i,v)}function C(n){var o=n.enableInput,r=void 0===o||o,i=n.caret,a=void 0===i||i,c=n.theme,s=void 0===c?"light":c,m=n.showControlBar,p=void 0===m||m,_=n.showControlButtons,h=void 0===_||_,x=n.controlButtonLabels,C=void 0===x?["close","minimize","maximize"]:x,v=n.prompt,b=void 0===v?">>>":v,y=n.commands,E=void 0===y?{}:y,w=n.welcomeMessage,T=void 0===w?"":w,S=n.errorMessage,k=void 0===S?"not found!":S,B=n.defaultHandler,F=void 0===B?null:B,D=e.useRef(null),N=e.useState(!t),A=N[0],P=N[1],X=e.useContext(l),z=e.useContext(u);d(D,A,P);var I=p?e.createElement(f,{consoleFocused:A,showControlButtons:h,controlButtonLabels:C}):null,J=e.createElement(g,{caret:a,consoleFocused:A,prompt:b,commands:E,welcomeMessage:T,errorMessage:k,enableInput:r,showControlBar:p,defaultHandler:F});return e.createElement("div",{ref:D,id:X.terminalContainer,className:X["theme--".concat(s)],"data-testid":"terminal"},e.createElement("div",{className:"".concat(X.terminal),style:{background:z.themeToolbarColor,color:z.themeColor}},I,J))}function v(n){var t=n.children;return e.createElement(c,null,e.createElement(m,null,t))}function b(n){return e.createElement(v,null,e.createElement(C,o({},n)))}C.propTypes={enableInput:n.bool,caret:n.bool,theme:n.string,showControlBar:n.bool,showControlButtons:n.bool,controlButtonLabels:n.arrayOf(n.string),prompt:n.string,commands:n.objectOf(n.oneOfType([n.string,n.func,n.node])),welcomeMessage:n.oneOfType([n.string,n.func,n.node]),errorMessage:n.oneOfType([n.string,n.func,n.node]),defaultHandler:n.func};var y=function(n){var t=n.children,o=e.useState(""),r=o[0],i=o[1],a=e.useState(""),l=a[0],c=a[1],s=e.useState([]),u=s[0],m=s[1],d=e.useState(null),f=d[0],_=d[1];e.useEffect((function(){_(u.length)}),[u]);return e.createElement(p.Provider,{value:{bufferedContent:r,temporaryContent:l,setTemporaryContent:c,setBufferedContent:i,appendCommandToHistory:function(e){e&&m(u.concat(e))},getPreviousCommand:function(){if(0===f)return 0===u.length?"":u[0];var e=u[f-1];return f>0&&_(f-1),e},getNextCommand:function(){if(f+1<=u.length){var e=u[f+1];return _(f+1),e}return""}}},t)},E=p,w={ReactTerminal:b,TerminalContextProvider:y,TerminalContext:E};export{b as ReactTerminal,E as TerminalContext,y as TerminalContextProvider,w as default};

@@ -1,1 +0,1 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("prop-types"),t=require("react-device-detect");function o(e){var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var r=o(e),a=function(){return a=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e},a.apply(this,arguments)};function i(e,n,t,o){return new(t||(t=Promise))((function(r,a){function i(e){try{c(o.next(e))}catch(e){a(e)}}function l(e){try{c(o.throw(e))}catch(e){a(e)}}function c(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(i,l)}c((o=o.apply(e,n||[])).next())}))}function l(e,n){var t,o,r,a,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(c){return function(l){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(t=1,o&&(r=2&l[0]?o.return:l[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,l[1])).done)return r;switch(o=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,o=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(r=i.trys,(r=r.length>0&&r[r.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){i.label=l[1];break}if(6===l[0]&&i.label<r[1]){i.label=r[1],r=l;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(l);break}r[2]&&i.ops.pop(),i.trys.pop();continue}l=n.call(e,i)}catch(e){l=[6,e],o=0}finally{t=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}!function(e,n){void 0===n&&(n={});var t=n.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===t&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}('@import url("https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap");\n#index_terminalContainer__4seT6 {\n --control-default-bg-color: #ccc;\n --control-close-bg-color: #fc5b57;\n --control-minimize-bg-color: #e5bf3c;\n --control-maximize-bg-color: #57c038;\n}\n\n.index_controls__sXDjs {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px;\n}\n.index_controls__sXDjs .index_consoleCtrl__DI2H1 {\n display: inline-block;\n width: 13px;\n height: 13px;\n margin: 0 3px;\n border-radius: 50%;\n background: var(--control-default-bg-color);\n}\n.index_controls__sXDjs .index_close__XGN9U {\n background: var(--control-close-bg-color);\n}\n.index_controls__sXDjs .index_minimize__pZYTU {\n background: var(--control-minimize-bg-color);\n}\n.index_controls__sXDjs .index_maximize__szRK7 {\n background: var(--control-maximize-bg-color);\n}\n\n.index_editor__JoDSg {\n text-align: left;\n height: 100%;\n padding: 10px 15px;\n overflow-wrap: break-word;\n overflow-y: scroll;\n outline: none;\n font-family: "Source Code Pro", monospace;\n font-size: 18px;\n line-height: 22px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n.index_editor__JoDSg .index_mobileInput__WloSq {\n position: absolute;\n top: -2000px;\n left: -2000px;\n}\n.index_editor__JoDSg .index_lineText__j6qNj {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px;\n}\n.index_editor__JoDSg .index_preWhiteSpace__7KwuG {\n white-space: pre-wrap;\n}\n.index_editor__JoDSg .index_caret__VS4iV {\n position: relative;\n -webkit-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -moz-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -o-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -ms-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n}\n.index_editor__JoDSg .index_caret__VS4iV .index_caretAfter__6aXPx {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10;\n}\n@-moz-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@-webkit-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@-o-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n.index_editor__JoDSg a {\n color: #1a87b5;\n}\n\n.index_editorWithTopBar__L6XKw {\n height: calc(100% - 46px);\n}\n\n.index_curvedTop__LX9XS {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n\n#index_terminalContainer__4seT6 {\n height: 100%;\n}\n\n.index_terminal__teubZ {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px;\n}');var c={terminalContainer:"index_terminalContainer__4seT6",controls:"index_controls__sXDjs",consoleCtrl:"index_consoleCtrl__DI2H1",close:"index_close__XGN9U",minimize:"index_minimize__pZYTU",maximize:"index_maximize__szRK7",editor:"index_editor__JoDSg",mobileInput:"index_mobileInput__WloSq",lineText:"index_lineText__j6qNj",preWhiteSpace:"index_preWhiteSpace__7KwuG",caret:"index_caret__VS4iV",blink:"index_blink__FJp0-",caretAfter:"index_caretAfter__6aXPx",editorWithTopBar:"index_editorWithTopBar__L6XKw",curvedTop:"index_curvedTop__LX9XS",terminal:"index_terminal__teubZ"},s=r.createContext(null),u=function(e){var n=e.children;return r.createElement(s.Provider,{value:c},n)},m={dark:{themeBGColor:"#022833",themeToolbarColor:"#131519",themeColor:"#839496",themePromptColor:"#a917a8"},light:{themeBGColor:"#fdf6e4",themeToolbarColor:"#d8d8d8",themeColor:"#333333",themePromptColor:"#a917a8"},dracula:{themeBGColor:"#272B36",themeToolbarColor:"#DBDBDB",themeColor:"#FFFEFC",themePromptColor:"#a917a8"},"material-dark":{themeBGColor:"#151515",themeToolbarColor:"#424242",themeColor:"#fff",themePromptColor:"#42A5F5"},"material-light":{themeBGColor:"#fafafa",themeToolbarColor:"#424242",themeColor:"#151515",themePromptColor:"#42A5F5"},"material-ocean":{themeBGColor:"#263238",themeToolbarColor:"#37474F",themeColor:"#fff",themePromptColor:"#C3D82C"},matrix:{themeBGColor:"#0D0208",themeToolbarColor:"#0D0208",themeColor:"#00FF41",themePromptColor:"#008F11"}},d=r.createContext(null),f=function(e){var n=e.children,t=a(a({},m),n.props.themes||{}),o=t[n.props.theme]||t.light;return r.createElement(d.Provider,{value:o},n)},p=function(e,n,o){var a=function(r){e.current&&!e.current.contains(r.target)?o(!1):t.isMobile?o(!n):o(!0)};r.useEffect((function(){return document.addEventListener("mousedown",a),function(){document.removeEventListener("mousedown",a)}}))};function _(e){var n=r.useContext(s),t=e.controlButtonLabels,o=e.showControlButtons?t.map((function(e){return r.createElement("div",{key:e,className:"".concat(n.consoleCtrl," ").concat(n[e])})})):null;return r.createElement("div",{className:n.controls},o)}var h=r.createContext(null),x=function(){function e(){}return e.splitStringAtIndex=function(e,n){return e?[e.substring(0,n),e.substring(n)]:["",""]},e}(),g=function(e,n,o,a,c,u,m,f){var p=r.useContext(s),_=r.useContext(d),g=r.useContext(h).appendCommandToHistory,b=r.useRef(null),C=r.useState(""),v=C[0],y=C[1],w=r.useState(!1),E=w[0],T=w[1],S=r.useState(0),k=S[0],B=S[1],D=r.useState(""),F=D[0],P=D[1],N=r.useState(""),A=N[0],j=N[1];r.useEffect((function(){t.isMobile}),[n]),r.useEffect((function(){E&&g(v)}),[E]),r.useEffect((function(){null!==f.current&&null!==b.current&&(f.current.onclick=function(){b.current.focus()})}),[]);var z=t.isMobile&&u?r.createElement("div",{className:p.mobileInput},r.createElement("input",{type:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",value:v,onChange:function(e){return y(e.target.value)},ref:b,"data-testid":"editor-input"})):null,I=E?r.createElement(r.Fragment,null,z,r.createElement("div",{className:p.lineText},n&&e?r.createElement("span",{className:p.caret},r.createElement("span",{className:p.caretAfter,style:{background:_.themeColor}})):null)):r.createElement(r.Fragment,null,z,r.createElement("span",{style:{color:_.themePromptColor}},o),r.createElement("div",{className:p.lineText},r.createElement("span",{className:p.preWhiteSpace},F),n&&e?r.createElement("span",{className:p.caret},r.createElement("span",{className:p.caretAfter,style:{background:_.themeColor}})):null,r.createElement("span",{className:p.preWhiteSpace},A)));return function(e,n,t,o,a,i,l,c,s){var u=r.useContext(h),m=u.getPreviousCommand,d=u.getNextCommand,f=function(r){if(e&&s){r.preventDefault();var l=r.key;if("Enter"!==l){var c=null;if("Backspace"===l){var u=x.splitStringAtIndex(n,a),f=u[0],p=u[1];c=f.slice(0,-1)+p,n&&0!==n.length&&i(a-1)}else if("ArrowUp"===l)(c=m())&&i(c.length);else if("ArrowDown"===l)c=d(),i(c?c.length:0);else if("ArrowLeft"===l)a>0&&i(a-1),c=n;else if("ArrowRight"===l)a<n.length&&i(a+1),c=n;else if((r.metaKey||r.ctrlKey)&&"v"===l.toLowerCase())navigator.clipboard.readText().then((function(e){var o=x.splitStringAtIndex(n||"",a),r=o[0],l=o[1];c=r+e+l,i(a+e.length),t(c)}));else if((r.metaKey||r.ctrlKey)&&"c"===l.toLowerCase()){var _=window.getSelection().toString();navigator.clipboard.writeText(_).then((function(){t(c=n)}))}else if(l&&1===l.length){var h=x.splitStringAtIndex(n,a);f=h[0],p=h[1],c=f+l+p,i(a+1)}else c=n;t(c),o(!1)}else o(!0)}};r.useEffect((function(){return document.addEventListener("keydown",f),function(){document.removeEventListener("keydown",f)}})),r.useEffect((function(){var e=x.splitStringAtIndex(n,a),t=e[0],o=e[1];l(t),c(o)}),[n,a])}(n,v,y,T,k,B,P,j,u),function(e,n,t,o,a,c,u,m,f,p,_){var x=r.useContext(h),g=x.bufferedContent,b=x.setBufferedContent,C=r.useContext(s),v=r.useContext(d);r.useEffect((function(){var s;e&&(s=o,i(void 0,void 0,void 0,(function(){var e,i,d,h,x,y,w,E;return l(this,(function(l){switch(l.label){case 0:return e=s.trim().split(" "),i=e[0],d=e.slice(1),h="","clear"===i?(b(""),a(""),n(!1),c(0),u(""),m(""),[2]):(x=r.createElement(r.Fragment,null,g,r.createElement("span",{style:{color:v.themePromptColor}},t),r.createElement("span",{className:"".concat(C.lineText," ").concat(C.preWhiteSpace)},o),r.createElement("br",null)),b(x),a(""),c(0),u(""),m(""),s?(y=d.join(" "),i&&f[i]?"function"!=typeof(w=f[i])?[3,2]:[4,w(y)]:[3,4]):[3,9]);case 1:return h=l.sent(),[3,3];case 2:h=w,l.label=3;case 3:return[3,9];case 4:return"function"!=typeof _?[3,6]:[4,_(i,y)];case 5:return h=l.sent(),[3,9];case 6:return"function"!=typeof p?[3,8]:[4,p(i,y)];case 7:return h=l.sent(),[3,9];case 8:h=p,l.label=9;case 9:return E=r.createElement(r.Fragment,null,g,r.createElement("span",{style:{color:v.themePromptColor}},t),r.createElement("span",{className:"".concat(C.lineText," ").concat(C.preWhiteSpace)},o),h?r.createElement("span",null,r.createElement("br",null),h):null,r.createElement("br",null)),b(E),n(!1),[2]}}))})))}),[e])}(E,T,o,v,y,B,P,j,a,c,m),I},b=function(e,n){r.useEffect((function(){n.current&&(n.current.scrollTop=n.current.scrollHeight)}),[e])};function C(e){var n=r.useRef(null),t=r.useContext(s),o=r.useContext(d),a=r.useContext(h).bufferedContent;b(a,n);var i=e.enableInput,l=e.caret,c=e.consoleFocused,u=e.prompt,m=e.commands,f=e.welcomeMessage,p=e.errorMessage,_=e.showControlBar,x=e.defaultHandler,C=g(l,c,u,m,p,i,x,n);return r.createElement("div",{id:"terminalEditor",ref:n,className:"".concat(t.editor," ").concat(_?null:t.curvedTop," ").concat(_?t.editorWithTopBar:null),style:{background:o.themeBGColor}},f,a,C)}function v(e){var n=r.useRef(null),o=r.useState(!t.isMobile),a=o[0],i=o[1],l=r.useContext(s),c=r.useContext(d);p(n,a,i);var u=e.caret,m=e.theme,f=e.showControlBar,h=e.showControlButtons,x=e.controlButtonLabels,g=e.prompt,b=e.commands,v=e.welcomeMessage,y=e.errorMessage,w=e.enableInput,E=e.defaultHandler,T=f?r.createElement(_,{consoleFocused:a,showControlButtons:h,controlButtonLabels:x}):null,S=r.createElement(C,{caret:u,consoleFocused:a,prompt:g,commands:b,welcomeMessage:v,errorMessage:y,enableInput:w,showControlBar:f,defaultHandler:E});return r.createElement("div",{ref:n,id:l.terminalContainer,className:l["theme--".concat(m)],"data-testid":"terminal"},r.createElement("div",{className:"".concat(l.terminal),style:{background:c.themeToolbarColor,color:c.themeColor}},T,S))}function y(e){var n=e.children;return r.createElement(u,null,r.createElement(f,null,n))}function w(e){return r.createElement(y,null,r.createElement(v,a({},e)))}v.propTypes={enableInput:n.bool,caret:n.bool,theme:n.string,showControlBar:n.bool,showControlButtons:n.bool,controlButtonLabels:n.arrayOf(n.string),prompt:n.string,commands:n.objectOf(n.oneOfType([n.string,n.func,n.node])),welcomeMessage:n.oneOfType([n.string,n.func,n.node]),errorMessage:n.oneOfType([n.string,n.func,n.node]),defaultHandler:n.func},v.defaultProps={enableInput:!0,caret:!0,theme:"light",showControlBar:!0,showControlButtons:!0,controlButtonLabels:["close","minimize","maximize"],prompt:">>>",commands:{},welcomeMessage:"",errorMessage:"not found!",defaultHandler:null};var E=function(e){var n=e.children,t=r.useState(""),o=t[0],a=t[1],i=r.useState([]),l=i[0],c=i[1],s=r.useState(null),u=s[0],m=s[1];r.useEffect((function(){m(l.length)}),[l]);return r.createElement(h.Provider,{value:{bufferedContent:o,setBufferedContent:a,appendCommandToHistory:function(e){e&&c(l.concat(e))},getPreviousCommand:function(){if(0===u)return 0===l.length?"":l[0];var e=l[u-1];return u>0&&m(u-1),e},getNextCommand:function(){if(u+1<=l.length){var e=l[u+1];return m(u+1),e}return""}}},n)},T={ReactTerminal:w,TerminalContextProvider:E};exports.ReactTerminal=w,exports.TerminalContextProvider=E,exports.default=T;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("prop-types"),t=require("react-device-detect");function o(e){var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var r=o(e),i=function(){return i=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e},i.apply(this,arguments)};function a(e,n,t,o){return new(t||(t=Promise))((function(r,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function l(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(a,l)}c((o=o.apply(e,n||[])).next())}))}function l(e,n){var t,o,r,i,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(c){return function(l){if(t)throw new TypeError("Generator is already executing.");for(;i&&(i=0,l[0]&&(a=0)),a;)try{if(t=1,o&&(r=2&l[0]?o.return:l[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,l[1])).done)return r;switch(o=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,o=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(r=a.trys,(r=r.length>0&&r[r.length-1])||6!==l[0]&&2!==l[0])){a=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){a.label=l[1];break}if(6===l[0]&&a.label<r[1]){a.label=r[1],r=l;break}if(r&&a.label<r[2]){a.label=r[2],a.ops.push(l);break}r[2]&&a.ops.pop(),a.trys.pop();continue}l=n.call(e,a)}catch(e){l=[6,e],o=0}finally{t=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}"function"==typeof SuppressedError&&SuppressedError;!function(e,n){void 0===n&&(n={});var t=n.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===t&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}('@import url("https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap");\n#index_terminalContainer__4seT6 {\n --control-default-bg-color: #ccc;\n --control-close-bg-color: #fc5b57;\n --control-minimize-bg-color: #e5bf3c;\n --control-maximize-bg-color: #57c038;\n}\n\n.index_controls__sXDjs {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px;\n}\n.index_controls__sXDjs .index_consoleCtrl__DI2H1 {\n display: inline-block;\n width: 13px;\n height: 13px;\n margin: 0 3px;\n border-radius: 50%;\n background: var(--control-default-bg-color);\n}\n.index_controls__sXDjs .index_close__XGN9U {\n background: var(--control-close-bg-color);\n}\n.index_controls__sXDjs .index_minimize__pZYTU {\n background: var(--control-minimize-bg-color);\n}\n.index_controls__sXDjs .index_maximize__szRK7 {\n background: var(--control-maximize-bg-color);\n}\n\n.index_editor__JoDSg {\n text-align: left;\n height: 100%;\n padding: 10px 15px;\n overflow-wrap: break-word;\n overflow-y: scroll;\n outline: none;\n font-family: "Source Code Pro", monospace;\n font-size: 18px;\n line-height: 22px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n.index_editor__JoDSg .index_mobileInput__WloSq {\n position: absolute;\n top: -2000px;\n left: -2000px;\n}\n.index_editor__JoDSg .index_lineText__j6qNj {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px;\n}\n.index_editor__JoDSg .index_preWhiteSpace__7KwuG {\n white-space: pre-wrap;\n}\n.index_editor__JoDSg .index_caret__VS4iV {\n position: relative;\n -webkit-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -moz-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -o-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n -ms-animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n animation: index_blink__FJp0- 0.75s ease-in-out infinite;\n}\n.index_editor__JoDSg .index_caret__VS4iV .index_caretAfter__6aXPx {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10;\n}\n@-moz-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@-webkit-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@-o-keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n@keyframes index_blink__FJp0- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0);\n }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none;\n }\n}\n.index_editor__JoDSg a {\n color: #1a87b5;\n}\n\n.index_editorWithTopBar__L6XKw {\n height: calc(100% - 46px);\n}\n\n.index_curvedTop__LX9XS {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n\n#index_terminalContainer__4seT6 {\n height: 100%;\n}\n\n.index_terminal__teubZ {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px;\n}');var c={terminalContainer:"index_terminalContainer__4seT6",controls:"index_controls__sXDjs",consoleCtrl:"index_consoleCtrl__DI2H1",close:"index_close__XGN9U",minimize:"index_minimize__pZYTU",maximize:"index_maximize__szRK7",editor:"index_editor__JoDSg",mobileInput:"index_mobileInput__WloSq",lineText:"index_lineText__j6qNj",preWhiteSpace:"index_preWhiteSpace__7KwuG",caret:"index_caret__VS4iV",blink:"index_blink__FJp0-",caretAfter:"index_caretAfter__6aXPx",editorWithTopBar:"index_editorWithTopBar__L6XKw",curvedTop:"index_curvedTop__LX9XS",terminal:"index_terminal__teubZ"},s=r.createContext(null),u=function(e){var n=e.children;return r.createElement(s.Provider,{value:c},n)},m={dark:{themeBGColor:"#022833",themeToolbarColor:"#131519",themeColor:"#839496",themePromptColor:"#a917a8"},light:{themeBGColor:"#fdf6e4",themeToolbarColor:"#d8d8d8",themeColor:"#333333",themePromptColor:"#a917a8"},dracula:{themeBGColor:"#272B36",themeToolbarColor:"#DBDBDB",themeColor:"#FFFEFC",themePromptColor:"#a917a8"},"material-dark":{themeBGColor:"#151515",themeToolbarColor:"#424242",themeColor:"#fff",themePromptColor:"#42A5F5"},"material-light":{themeBGColor:"#fafafa",themeToolbarColor:"#424242",themeColor:"#151515",themePromptColor:"#42A5F5"},"material-ocean":{themeBGColor:"#263238",themeToolbarColor:"#37474F",themeColor:"#fff",themePromptColor:"#C3D82C"},matrix:{themeBGColor:"#0D0208",themeToolbarColor:"#0D0208",themeColor:"#00FF41",themePromptColor:"#008F11"}},d=r.createContext(null),f=function(e){var n=e.children,t=i(i({},m),n.props.themes||{}),o=t[n.props.theme]||t.light;return r.createElement(d.Provider,{value:o},n)},p=function(e,n,o){var i=function(r){e.current&&!e.current.contains(r.target)?o(!1):t.isMobile?o(!n):o(!0)};r.useEffect((function(){return document.addEventListener("mousedown",i),function(){document.removeEventListener("mousedown",i)}}))};function _(e){var n=r.useContext(s),t=e.controlButtonLabels,o=e.showControlButtons?t.map((function(e){return r.createElement("div",{key:e,className:"".concat(n.consoleCtrl," ").concat(n[e])})})):null;return r.createElement("div",{className:n.controls},o)}var h=r.createContext({bufferedContent:"",temporaryContent:"",setBufferedContent:function(e){},setTemporaryContent:function(e){},appendCommandToHistory:function(){},getNextCommand:function(){return""},getPreviousCommand:function(){return""}}),x=function(){function e(){}return e.splitStringAtIndex=function(e,n){return e?[e.substring(0,n),e.substring(n)]:["",""]},e}(),g=function(e,n,o,i,c,u,m,f){var p=r.useContext(s),_=r.useContext(d),g=r.useContext(h),b=g.appendCommandToHistory,C=g.temporaryContent,v=r.useRef(null),y=r.useState(""),E=y[0],w=y[1],T=r.useState(!1),S=T[0],k=T[1],B=r.useState(0),D=B[0],F=B[1],P=r.useState(""),N=P[0],A=P[1],j=r.useState(""),z=j[0],X=j[1];r.useEffect((function(){t.isMobile}),[n]),r.useEffect((function(){S&&b(E)}),[S]),r.useEffect((function(){null!==f.current&&null!==v.current&&(f.current.onclick=function(){v.current.focus()})}),[]);var I=t.isMobile&&u?r.createElement("div",{className:p.mobileInput},r.createElement("input",{type:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",value:E,onChange:function(e){return w(e.target.value)},ref:v,"data-testid":"editor-input"})):null,O=S?r.createElement(r.Fragment,null,I,r.createElement("div",{className:p.lineText},n&&e?r.createElement("span",{className:p.caret},r.createElement("span",{className:p.caretAfter,style:{background:_.themeColor}})):null,r.createElement("span",{className:p.preWhiteSpace},C))):r.createElement(r.Fragment,null,I,r.createElement("span",{style:{color:_.themePromptColor}},o),r.createElement("div",{className:p.lineText},r.createElement("span",{className:p.preWhiteSpace},N),n&&e?r.createElement("span",{className:p.caret},r.createElement("span",{className:p.caretAfter,style:{background:_.themeColor}})):null,r.createElement("span",{className:p.preWhiteSpace},z)));return function(e,n,t,o,i,a,l,c,s){var u=r.useContext(h),m=u.getPreviousCommand,d=u.getNextCommand,f=function(r){if(e&&s){r.preventDefault();var l=r.key;if("Enter"!==l){var c=null;if("Backspace"===l){var u=x.splitStringAtIndex(n,i),f=u[0],p=u[1];c=f.slice(0,-1)+p,n&&0!==n.length&&a(i-1)}else if("ArrowUp"===l)(c=m())&&a(c.length);else if("ArrowDown"===l)c=d(),a(c?c.length:0);else if("ArrowLeft"===l)i>0&&a(i-1),c=n;else if("ArrowRight"===l)i<n.length&&a(i+1),c=n;else if((r.metaKey||r.ctrlKey)&&"v"===l.toLowerCase())navigator.clipboard.readText().then((function(e){var o=x.splitStringAtIndex(n||"",i),r=o[0],l=o[1];c=r+e+l,a(i+e.length),t(c)}));else if((r.metaKey||r.ctrlKey)&&"c"===l.toLowerCase()){var _=window.getSelection().toString();navigator.clipboard.writeText(_).then((function(){t(c=n)}))}else if(l&&1===l.length){var h=x.splitStringAtIndex(n,i);f=h[0],p=h[1],c=f+l+p,a(i+1)}else c=n;t(c),o(!1)}else o(!0)}};r.useEffect((function(){return document.addEventListener("keydown",f),function(){document.removeEventListener("keydown",f)}})),r.useEffect((function(){var e=x.splitStringAtIndex(n,i),t=e[0],o=e[1];l(t),c(o)}),[n,i])}(n,E,w,k,D,F,A,X,u),function(e,n,t,o,i,c,u,m,f,p){var _=r.useContext(h);_.bufferedContent;var x=_.setBufferedContent,g=_.setTemporaryContent;r.useContext(s),r.useContext(d),r.useEffect((function(){var s;e&&(s=t,a(void 0,void 0,void 0,(function(){var e,a,d,_,h,b,C,v;return l(this,(function(l){switch(l.label){case 0:return e=s.trim().split(" "),a=e[0],d=e.slice(1),_="","clear"===a?(x(""),o(""),n(!1),i(0),c(""),u(""),[2]):(h=r.createElement(r.Fragment,null,r.createElement("span",null,t),r.createElement("br",null)),x((function(e){return r.createElement(r.Fragment,null,e,h)})),o(""),i(0),c(""),u(""),s?(b=d.join(" "),a&&m[a]?"function"!=typeof(C=m[a])?[3,2]:[4,C(b)]:[3,4]):[3,9]);case 1:return _=l.sent(),[3,3];case 2:_=C,l.label=3;case 3:return[3,9];case 4:return"function"!=typeof p?[3,6]:[4,p(a,b)];case 5:return _=l.sent(),[3,9];case 6:return"function"!=typeof f?[3,8]:[4,f(a,b)];case 7:return _=l.sent(),[3,9];case 8:_=f,l.label=9;case 9:return v=r.createElement(r.Fragment,null,_?r.createElement("span",null,_):null,r.createElement("br",null)),x((function(e){return r.createElement(r.Fragment,null,e,v)})),g(""),n(!1),[2]}}))})))}),[e])}(S,k,E,w,F,A,X,i,c,m),O},b=function(e,n){r.useEffect((function(){n.current&&(n.current.scrollTop=n.current.scrollHeight)}),[e])};function C(e){var n=r.useRef(null),t=r.useContext(s),o=r.useContext(d),i=r.useContext(h).bufferedContent;b(i,n);var a=e.enableInput,l=e.caret,c=e.consoleFocused,u=e.prompt,m=e.commands,f=e.welcomeMessage,p=e.errorMessage,_=e.showControlBar,x=e.defaultHandler,C=g(l,c,u,m,p,a,x,n);return r.createElement("div",{id:"terminalEditor",ref:n,className:"".concat(t.editor," ").concat(_?null:t.curvedTop," ").concat(_?t.editorWithTopBar:null),style:{background:o.themeBGColor}},f,i,C)}function v(e){var n=e.enableInput,o=void 0===n||n,i=e.caret,a=void 0===i||i,l=e.theme,c=void 0===l?"light":l,u=e.showControlBar,m=void 0===u||u,f=e.showControlButtons,h=void 0===f||f,x=e.controlButtonLabels,g=void 0===x?["close","minimize","maximize"]:x,b=e.prompt,v=void 0===b?">>>":b,y=e.commands,E=void 0===y?{}:y,w=e.welcomeMessage,T=void 0===w?"":w,S=e.errorMessage,k=void 0===S?"not found!":S,B=e.defaultHandler,D=void 0===B?null:B,F=r.useRef(null),P=r.useState(!t.isMobile),N=P[0],A=P[1],j=r.useContext(s),z=r.useContext(d);p(F,N,A);var X=m?r.createElement(_,{consoleFocused:N,showControlButtons:h,controlButtonLabels:g}):null,I=r.createElement(C,{caret:a,consoleFocused:N,prompt:v,commands:E,welcomeMessage:T,errorMessage:k,enableInput:o,showControlBar:m,defaultHandler:D});return r.createElement("div",{ref:F,id:j.terminalContainer,className:j["theme--".concat(c)],"data-testid":"terminal"},r.createElement("div",{className:"".concat(j.terminal),style:{background:z.themeToolbarColor,color:z.themeColor}},X,I))}function y(e){var n=e.children;return r.createElement(u,null,r.createElement(f,null,n))}function E(e){return r.createElement(y,null,r.createElement(v,i({},e)))}v.propTypes={enableInput:n.bool,caret:n.bool,theme:n.string,showControlBar:n.bool,showControlButtons:n.bool,controlButtonLabels:n.arrayOf(n.string),prompt:n.string,commands:n.objectOf(n.oneOfType([n.string,n.func,n.node])),welcomeMessage:n.oneOfType([n.string,n.func,n.node]),errorMessage:n.oneOfType([n.string,n.func,n.node]),defaultHandler:n.func};var w=function(e){var n=e.children,t=r.useState(""),o=t[0],i=t[1],a=r.useState(""),l=a[0],c=a[1],s=r.useState([]),u=s[0],m=s[1],d=r.useState(null),f=d[0],p=d[1];r.useEffect((function(){p(u.length)}),[u]);return r.createElement(h.Provider,{value:{bufferedContent:o,temporaryContent:l,setTemporaryContent:c,setBufferedContent:i,appendCommandToHistory:function(e){e&&m(u.concat(e))},getPreviousCommand:function(){if(0===f)return 0===u.length?"":u[0];var e=u[f-1];return f>0&&p(f-1),e},getNextCommand:function(){if(f+1<=u.length){var e=u[f+1];return p(f+1),e}return""}}},n)},T=h,S={ReactTerminal:E,TerminalContextProvider:w,TerminalContext:T};exports.ReactTerminal=E,exports.TerminalContext=T,exports.TerminalContextProvider=w,exports.default=S;
{
"name": "react-terminal",
"version": "v1.3.1",
"version": "v1.4.0",
"description": "React component that renders a terminal",

@@ -36,4 +36,4 @@ "main": "dist/index.js",

"devDependencies": {
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/jest-dom": "^6.1.4",
"@testing-library/react": "^14.1.0",
"@testing-library/user-event": "^14.2.0",

@@ -66,6 +66,6 @@ "@types/enzyme": "^3.10.4",

"react-test-renderer": "^18.2.0",
"rollup": "^3.13.0",
"rollup": "^4.3.0",
"rollup-plugin-postcss": "^4.0.2",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.34.1",
"rollup-plugin-typescript2": "^0.36.0",
"sass": "^1.58.0",

@@ -72,0 +72,0 @@ "ts-jest": "^29.0.5",

@@ -80,3 +80,3 @@ <h1 align="center">

themes={{
my-custom-theme: {
"my-custom-theme": {
themeBGColor: "#272B36",

@@ -83,0 +83,0 @@ themeToolbarColor: "#DBDBDB",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc