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.2.1 to 1.2.3

2

dist/common/Utils.d.ts
export default class Utils {
static getCSSVariable(name: string): string;
static splitStringAtIndex(value: string, index: number): string[];
}

@@ -13,5 +13,5 @@ import PropTypes from "prop-types";

commands: PropTypes.Requireable<{
[x: string]: PropTypes.ReactNodeLike;
[x: string]: ((...args: any[]) => any) | PropTypes.ReactNodeLike;
}>;
welcomeMessage: PropTypes.Requireable<PropTypes.ReactNodeLike>;
welcomeMessage: PropTypes.Requireable<((...args: any[]) => any) | PropTypes.ReactNodeLike>;
errorMessage: PropTypes.Requireable<string | object>;

@@ -18,0 +18,0 @@ };

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

export declare const useEditorInput: (consoleFocused: boolean, editorInput: string, setEditorInput: any, setProcessCurrentLine: any, enableInput: boolean) => void;
export declare const useBufferedContent: (processCurrentLine: any, setProcessCurrentLine: any, prompt: string, currentText: any, setCurrentText: any, commands: any, errorMessage: any) => void;
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) => void;
export declare const useCurrentLine: (caret: boolean, consoleFocused: boolean, prompt: string, commands: any, errorMessage: any, enableInput: boolean) => JSX.Element;
export declare const useScrollToBottom: (changesToWatch: any, wrapperRef: any) => void;

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

import{createContext as e,createElement as n,useEffect as o,useContext as t,useState as r,useRef as i,Fragment as l}from"react";import a from"prop-types";import{isMobile as c}from"react-device-detect";
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */var s=function(){return(s=Object.assign||function(e){for(var n,o=1,t=arguments.length;o<t;o++)for(var r in n=arguments[o])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e}).apply(this,arguments)};function u(e,n){var o,t,r,i,l={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,t&&(r=2&i[0]?t.return:i[0]?t.throw||((r=t.return)&&r.call(t),0):t.next)&&!(r=r.call(t,i[1])).done)return r;switch(t=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,t=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(r=(r=l.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){l=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){l.label=i[1];break}if(6===i[0]&&l.label<r[1]){l.label=r[1],r=i;break}if(r&&l.label<r[2]){l.label=r[2],l.ops.push(i);break}r[2]&&l.ops.pop(),l.trys.pop();continue}i=n.call(e,l)}catch(e){i=[6,e],t=0}finally{o=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}!function(e,n){void 0===n&&(n={});var o=n.insertAt;if(e&&"undefined"!=typeof document){var t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===o&&t.firstChild?t.insertBefore(r,t.firstChild):t.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__3q4m3 {\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.index_controls__9z-dM {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px; }\n .index_controls__9z-dM .index_consoleCtrl__PQnAL {\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 .index_controls__9z-dM .index_close__2o6CK {\n background: var(--control-close-bg-color); }\n .index_controls__9z-dM .index_minimize__E9mwB {\n background: var(--control-minimize-bg-color); }\n .index_controls__9z-dM .index_maximize__sbbYF {\n background: var(--control-maximize-bg-color); }\n\n.index_editor__2tqRz {\n text-align: left;\n height: calc(100% - 46px);\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 .index_editor__2tqRz .index_mobileInput__jGtyc {\n position: absolute;\n top: -2000px;\n left: -2000px; }\n .index_editor__2tqRz .index_lineText__2Poex {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px; }\n .index_editor__2tqRz .index_preWhiteSpace__3nCT2 {\n white-space: pre-wrap; }\n .index_editor__2tqRz .index_caret__MYxcn {\n position: relative;\n -webkit-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -moz-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -o-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -ms-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n animation: index_blink__RQDX- 0.75s ease-in-out infinite; }\n .index_editor__2tqRz .index_caret__MYxcn .index_caretAfter__2B8sk {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10; }\n\n@-moz-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@-webkit-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@-o-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n .index_editor__2tqRz a {\n color: #1a87b5; }\n\n.index_curvedTop__3RecJ {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px; }\n\n#index_terminalContainer__3q4m3 {\n height: 100%; }\n\n.index_terminal__1dSq1 {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px; }\n');var m={terminalContainer:"index_terminalContainer__3q4m3",controls:"index_controls__9z-dM",consoleCtrl:"index_consoleCtrl__PQnAL",close:"index_close__2o6CK",minimize:"index_minimize__E9mwB",maximize:"index_maximize__sbbYF",editor:"index_editor__2tqRz",mobileInput:"index_mobileInput__jGtyc",lineText:"index_lineText__2Poex",preWhiteSpace:"index_preWhiteSpace__3nCT2",caret:"index_caret__MYxcn",blink:"index_blink__RQDX-",caretAfter:"index_caretAfter__2B8sk",curvedTop:"index_curvedTop__3RecJ",terminal:"index_terminal__1dSq1"},d=e(null),p=function(e){var o=e.children;return n(d.Provider,{value:m},o)},f={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"}},_=e(null),h=function(e){var o=e.children,t=s(s({},f),o.props.themes||{}),r=t[o.props.theme]||t.light;return n(_.Provider,{value:r},o)};function x(e){var o=t(d),r=e.controlButtonLabels,i=e.showControlButtons?r.map((function(e){return n("div",{key:e,className:o.consoleCtrl+" "+o[e]})})):null;return n("div",{className:o.controls},i)}var b=e(null),C=function(e,r,i,a,c,s,m){var p=t(b),f=p.bufferedContent,h=p.setBufferedContent,x=t(d),C=t(_);o((function(){if(e){var o,t,d,p,_;o=a,t=void 0,d=void 0,_=function(){var e,t,d,p,_,b,g,v;return u(this,(function(u){switch(u.label){case 0:return e=o.trim().split(" "),t=e[0],d=e.slice(1),p="","clear"===t?(h(""),c(""),r(!1),[2]):(_=n(l,null,f,n("span",{style:{color:C.themePromptColor}},i),n("span",{className:x.lineText+" "+x.preWhiteSpace},a),n("br",null)),h(_),c(""),o?(b=d.join(" "),t&&s[t]?"function"!=typeof(g=s[t])?[3,2]:[4,g(b)]:[3,4]):[3,7]);case 1:return p=u.sent(),[3,3];case 2:p=g,u.label=3;case 3:return[3,7];case 4:return"function"!=typeof m?[3,6]:[4,m(b)];case 5:return p=u.sent(),[3,7];case 6:p=m,u.label=7;case 7:return v=n(l,null,f,n("span",{style:{color:C.themePromptColor}},i),n("span",{className:x.lineText+" "+x.preWhiteSpace},a),p?n("span",null,n("br",null),p):null,n("br",null)),h(v),r(!1),[2]}}))},new((p=void 0)||(p=Promise))((function(e,n){function o(e){try{i(_.next(e))}catch(e){n(e)}}function r(e){try{i(_.throw(e))}catch(e){n(e)}}function i(n){n.done?e(n.value):new p((function(e){e(n.value)})).then(o,r)}i((_=_.apply(t,d||[])).next())}))}}),[e])},g=function(e,a,s,u,m,p){var f=t(d),h=t(_),x=t(b).appendCommandToHistory,g=i(null),v=r(""),y=v[0],w=v[1],k=r(!1),T=k[0],B=k[1];o((function(){c&&a&&g.current.focus()}),[a]),o((function(){T&&x(y)}),[T]);var z=c&&p?n("div",{className:f.mobileInput},n("input",{type:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",value:y,onChange:function(e){return w(e.target.value)},ref:g})):null,P=T?n(l,null,z,n("div",{className:f.lineText},a&&e?n("span",{className:f.caret},n("span",{className:f.caretAfter,style:{background:h.themeColor}})):null)):n(l,null,z,n("span",{style:{color:h.themePromptColor}},s),n("div",{className:f.lineText},n("span",{className:f.preWhiteSpace},y),a&&e?n("span",{className:f.caret},n("span",{className:f.caretAfter,style:{background:h.themeColor}})):null));return function(e,n,r,i,l){var a=t(b),c=a.getPreviousCommand,s=a.getNextCommand,u=function(o){if(e&&l){o.preventDefault();var t=o.key;if("Enter"!==t){var a=null;a="Backspace"===t?n.slice(0,-1):"ArrowUp"===t?c():"ArrowDown"===t?s():t&&1===t.length?n+t:n,r(a),i(!1)}else i(!0)}};o((function(){return document.addEventListener("keydown",u),function(){document.removeEventListener("keydown",u)}}))}(a,y,w,B,p),C(T,B,s,y,w,u,m),P};function v(e){var r=i(null),l=t(d),a=t(_),c=t(b).bufferedContent;!function(e,n){o((function(){n.current.scrollTop=n.current.scrollHeight}),[e])}(c,r);var s=e.enableInput,u=e.caret,m=e.consoleFocused,p=e.prompt,f=e.commands,h=e.welcomeMessage,x=e.errorMessage,C=e.curvedTop,v=g(u,m,p,f,x,s);return n("div",{ref:r,className:l.editor+" "+(C?l.curvedTop:null),style:{background:a.themeBGColor}},h,c,v)}function y(e){var l,a,s,u,m=i(null),p=r(!c),f=p[0],h=p[1],b=t(d),C=t(_);l=m,a=f,s=h,u=function(e){l.current&&!l.current.contains(e.target)?s(!1):s(!c||!a)},o((function(){return document.addEventListener("mousedown",u),function(){document.removeEventListener("mousedown",u)}}));var g=e.caret,y=e.theme,w=e.showControlBar,k=e.showControlButtons,T=e.controlButtonLabels,B=e.prompt,z=e.commands,P=e.welcomeMessage,M=e.errorMessage,D=e.enableInput,R=w?n(x,{consoleFocused:f,showControlButtons:k,controlButtonLabels:T}):null,N=n(v,{caret:g,consoleFocused:f,prompt:B,commands:z,welcomeMessage:P,errorMessage:M,enableInput:D,curvedTop:!w});return n("div",{ref:m,id:b.terminalContainer,className:b["theme--"+y]},n("div",{className:""+b.terminal,style:{background:C.themeToolbarColor,color:C.themeColor}},R,N))}function w(e){var o=e.children;return n(p,null,n(h,null,o))}function k(e){return n(w,null,n(y,s({},e)))}y.propTypes={enableInput:a.bool,caret:a.bool,theme:a.string,showControlBar:a.bool,showControlButtons:a.bool,controlButtonLabels:a.arrayOf(a.string),prompt:a.string,commands:a.objectOf(a.oneOfType([a.string,a.func,a.node])),welcomeMessage:a.oneOfType([a.string,a.func,a.node]),errorMessage:a.oneOfType([a.string,a.object])},y.defaultProps={enableInput:!0,caret:!0,theme:"light",showControlBar:!0,showControlButtons:!0,controlButtonLabels:["close","minimize","maximize"],prompt:">>>",commands:{},welcomeMessage:"",errorMessage:"not found!"};var T=function(e){var t=e.children,i=r(""),l=i[0],a=i[1],c=r([]),s=c[0],u=c[1],m=r(null),d=m[0],p=m[1];o((function(){p(s.length)}),[s]);return n(b.Provider,{value:{bufferedContent:l,setBufferedContent:a,appendCommandToHistory:function(e){e&&u(s.concat(e))},getPreviousCommand:function(){if(0===d)return 0===s.length?"":s[0];var e=s[d-1];return d>0&&p(d-1),e},getNextCommand:function(){if(d+1<=s.length){if(d===s.length)return"";var e=s[d+1];return p(d+1),e}return""}}},t)},B={ReactTerminal:k,TerminalContextProvider:T};export default B;export{k as ReactTerminal,T as TerminalContextProvider};
import{createContext as e,createElement as n,useEffect as t,useContext as o,useState as r,useRef as i,Fragment as l}from"react";import a from"prop-types";import{isMobile as c}from"react-device-detect";var s=function(){return(s=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}).apply(this,arguments)};function u(e,n,t,o){return new(t||(t=Promise))((function(r,i){function l(e){try{c(o.next(e))}catch(e){i(e)}}function a(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(l,a)}c((o=o.apply(e,n||[])).next())}))}function m(e,n){var t,o,r,i,l={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;l;)try{if(t=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,o=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(r=l.trys,(r=r.length>0&&r[r.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){l.label=i[1];break}if(6===i[0]&&l.label<r[1]){l.label=r[1],r=i;break}if(r&&l.label<r[2]){l.label=r[2],l.ops.push(i);break}r[2]&&l.ops.pop(),l.trys.pop();continue}i=n.call(e,l)}catch(e){i=[6,e],o=0}finally{t=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}}!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__3q4m3 {\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.index_controls__9z-dM {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px; }\n .index_controls__9z-dM .index_consoleCtrl__PQnAL {\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 .index_controls__9z-dM .index_close__2o6CK {\n background: var(--control-close-bg-color); }\n .index_controls__9z-dM .index_minimize__E9mwB {\n background: var(--control-minimize-bg-color); }\n .index_controls__9z-dM .index_maximize__sbbYF {\n background: var(--control-maximize-bg-color); }\n\n.index_editor__2tqRz {\n text-align: left;\n height: calc(100% - 46px);\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 .index_editor__2tqRz .index_mobileInput__jGtyc {\n position: absolute;\n top: -2000px;\n left: -2000px; }\n .index_editor__2tqRz .index_lineText__2Poex {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px; }\n .index_editor__2tqRz .index_preWhiteSpace__3nCT2 {\n white-space: pre-wrap; }\n .index_editor__2tqRz .index_caret__MYxcn {\n position: relative;\n -webkit-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -moz-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -o-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -ms-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n animation: index_blink__RQDX- 0.75s ease-in-out infinite; }\n .index_editor__2tqRz .index_caret__MYxcn .index_caretAfter__2B8sk {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10; }\n\n@-moz-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@-webkit-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@-o-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n .index_editor__2tqRz a {\n color: #1a87b5; }\n\n.index_curvedTop__3RecJ {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px; }\n\n#index_terminalContainer__3q4m3 {\n height: 100%; }\n\n.index_terminal__1dSq1 {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px; }\n');var d={terminalContainer:"index_terminalContainer__3q4m3",controls:"index_controls__9z-dM",consoleCtrl:"index_consoleCtrl__PQnAL",close:"index_close__2o6CK",minimize:"index_minimize__E9mwB",maximize:"index_maximize__sbbYF",editor:"index_editor__2tqRz",mobileInput:"index_mobileInput__jGtyc",lineText:"index_lineText__2Poex",preWhiteSpace:"index_preWhiteSpace__3nCT2",caret:"index_caret__MYxcn",blink:"index_blink__RQDX-",caretAfter:"index_caretAfter__2B8sk",curvedTop:"index_curvedTop__3RecJ",terminal:"index_terminal__1dSq1"},p=e(null),f=function(e){var t=e.children;return n(p.Provider,{value:d},t)},_={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"}},h=e(null),x=function(e){var t=e.children,o=s(s({},_),t.props.themes||{}),r=o[t.props.theme]||o.light;return n(h.Provider,{value:r},t)};function b(e){var t=o(p),r=e.controlButtonLabels,i=e.showControlButtons?r.map((function(e){return n("div",{key:e,className:"".concat(t.consoleCtrl," ").concat(t[e])})})):null;return n("div",{className:t.controls},i)}var g=e(null),v=function(){function e(){}return e.splitStringAtIndex=function(e,n){return e?[e.substring(0,n),e.substring(n)]:["",""]},e}(),C=function(e,a,s,d,f,_){var x=o(p),b=o(h),C=o(g).appendCommandToHistory,y=i(null),w=r(""),T=w[0],k=w[1],B=r(!1),z=B[0],P=B[1],A=r(0),M=A[0],D=A[1],R=r(""),S=R[0],N=R[1],I=r(""),F=I[0],L=I[1];t((function(){c&&a&&y.current.focus()}),[a]),t((function(){z&&C(T)}),[z]);var X=c&&_?n("div",{className:x.mobileInput},n("input",{type:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",value:T,onChange:function(e){return k(e.target.value)},ref:y})):null,q=z?n(l,null,X,n("div",{className:x.lineText},a&&e?n("span",{className:x.caret},n("span",{className:x.caretAfter,style:{background:b.themeColor}})):null)):n(l,null,X,n("span",{style:{color:b.themePromptColor}},s),n("div",{className:x.lineText},n("span",{className:x.preWhiteSpace},S),a&&e?n("span",{className:x.caret},n("span",{className:x.caretAfter,style:{background:b.themeColor}})):null,n("span",{className:x.preWhiteSpace},F)));return function(e,n,r,i,l,a,c,s,u){var m=o(g),d=m.getPreviousCommand,p=m.getNextCommand,f=function(t){if(e&&u){t.preventDefault();var o=t.key;if("Enter"!==o){var c=null;if("Backspace"===o){var s=v.splitStringAtIndex(n,l),m=s[0],f=s[1];c=m.slice(0,-1)+f,n&&0!==n.length&&a(l-1)}else if("ArrowUp"===o)(c=d())&&a(c.length);else if("ArrowDown"===o)c=p(),a(c?c.length:0);else if("ArrowLeft"===o)l>0&&a(l-1),c=n;else if("ArrowRight"===o)l<n.length&&a(l+1),c=n;else if((t.metaKey||t.ctrlKey)&&"v"===o.toLowerCase())navigator.clipboard.readText().then((function(e){var t=v.splitStringAtIndex(n||"",l),o=t[0],i=t[1];c=c=o+e+i,a(l+e.length),r(c)}));else if((t.metaKey||t.ctrlKey)&&"c"===o.toLowerCase()){var _=window.getSelection().toString();navigator.clipboard.writeText(_).then((function(){r(c=n)}))}else if(o&&1===o.length){var h=v.splitStringAtIndex(n,l);m=h[0],f=h[1];c=m+o+f,a(l+1)}else c=n;r(c),i(!1)}else i(!0)}};t((function(){return document.addEventListener("keydown",f),function(){document.removeEventListener("keydown",f)}})),t((function(){var e=v.splitStringAtIndex(n,l),t=e[0],o=e[1];c(t),s(o)}),[l])}(a,T,k,P,M,D,N,L,_),function(e,r,i,a,c,s,d,f,_,x){var b=o(g),v=b.bufferedContent,C=b.setBufferedContent,y=o(p),w=o(h);t((function(){if(e){var t;t=a,u(void 0,void 0,void 0,(function(){var e,o,u,p,h,b,g,T;return m(this,(function(m){switch(m.label){case 0:return e=t.trim().split(" "),o=e[0],u=e.slice(1),p="","clear"===o?(C(""),c(""),r(!1),s(0),d(""),f(""),[2]):(h=n(l,null,v,n("span",{style:{color:w.themePromptColor}},i),n("span",{className:"".concat(y.lineText," ").concat(y.preWhiteSpace)},a),n("br",null)),C(h),c(""),s(0),d(""),f(""),t?(b=u.join(" "),o&&_[o]?"function"!=typeof(g=_[o])?[3,2]:[4,g(b)]:[3,4]):[3,7]);case 1:return p=m.sent(),[3,3];case 2:p=g,m.label=3;case 3:return[3,7];case 4:return"function"!=typeof x?[3,6]:[4,x(b)];case 5:return p=m.sent(),[3,7];case 6:p=x,m.label=7;case 7:return T=n(l,null,v,n("span",{style:{color:w.themePromptColor}},i),n("span",{className:"".concat(y.lineText," ").concat(y.preWhiteSpace)},a),p?n("span",null,n("br",null),p):null,n("br",null)),C(T),r(!1),[2]}}))}))}}),[e])}(z,P,s,T,k,D,N,L,d,f),q};function y(e){var r=i(null),l=o(p),a=o(h),c=o(g).bufferedContent;!function(e,n){t((function(){n.current&&(n.current.scrollTop=n.current.scrollHeight)}),[e])}(c,r);var s=e.enableInput,u=e.caret,m=e.consoleFocused,d=e.prompt,f=e.commands,_=e.welcomeMessage,x=e.errorMessage,b=e.curvedTop,v=C(u,m,d,f,x,s);return n("div",{ref:r,className:"".concat(l.editor," ").concat(b?l.curvedTop:null),style:{background:a.themeBGColor}},_,c,v)}function w(e){var l,a,s,u,m=i(null),d=r(!c),f=d[0],_=d[1],x=o(p),g=o(h);l=m,a=f,s=_,u=function(e){l.current&&!l.current.contains(e.target)?s(!1):s(!c||!a)},t((function(){return document.addEventListener("mousedown",u),function(){document.removeEventListener("mousedown",u)}}));var v=e.caret,C=e.theme,w=e.showControlBar,T=e.showControlButtons,k=e.controlButtonLabels,B=e.prompt,z=e.commands,P=e.welcomeMessage,A=e.errorMessage,M=e.enableInput,D=w?n(b,{consoleFocused:f,showControlButtons:T,controlButtonLabels:k}):null,R=n(y,{caret:v,consoleFocused:f,prompt:B,commands:z,welcomeMessage:P,errorMessage:A,enableInput:M,curvedTop:!w});return n("div",{ref:m,id:x.terminalContainer,className:x["theme--".concat(C)]},n("div",{className:"".concat(x.terminal),style:{background:g.themeToolbarColor,color:g.themeColor}},D,R))}function T(e){var t=e.children;return n(f,null,n(x,null,t))}function k(e){return n(T,null,n(w,s({},e)))}w.propTypes={enableInput:a.bool,caret:a.bool,theme:a.string,showControlBar:a.bool,showControlButtons:a.bool,controlButtonLabels:a.arrayOf(a.string),prompt:a.string,commands:a.objectOf(a.oneOfType([a.string,a.func,a.node])),welcomeMessage:a.oneOfType([a.string,a.func,a.node]),errorMessage:a.oneOfType([a.string,a.object])},w.defaultProps={enableInput:!0,caret:!0,theme:"light",showControlBar:!0,showControlButtons:!0,controlButtonLabels:["close","minimize","maximize"],prompt:">>>",commands:{},welcomeMessage:"",errorMessage:"not found!"};var B=function(e){var o=e.children,i=r(""),l=i[0],a=i[1],c=r([]),s=c[0],u=c[1],m=r(null),d=m[0],p=m[1];t((function(){p(s.length)}),[s]);return n(g.Provider,{value:{bufferedContent:l,setBufferedContent:a,appendCommandToHistory:function(e){e&&u(s.concat(e))},getPreviousCommand:function(){if(0===d)return 0===s.length?"":s[0];var e=s[d-1];return d>0&&p(d-1),e},getNextCommand:function(){if(d+1<=s.length){if(d===s.length)return"";var e=s[d+1];return p(d+1),e}return""}}},o)},z={ReactTerminal:k,TerminalContextProvider:B};export default z;export{k as ReactTerminal,B as TerminalContextProvider};

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

"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),PropTypes=_interopDefault(require("prop-types")),reactDeviceDetect=require("react-device-detect"),__assign=function(){return(__assign=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function __awaiter(e,t,n,o){return new(n||(n=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){e.done?r(e.value):new n((function(t){t(e.value)})).then(i,l)}c((o=o.apply(e,t||[])).next())}))}function __generator(e,t){var n,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(a){return function(l){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,o&&(r=2&a[0]?o.return:a[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,a[1])).done)return r;switch(o=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,o=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(r=(r=i.trys).length>0&&r[r.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){i.label=a[1];break}if(6===a[0]&&i.label<r[1]){i.label=r[1],r=a;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(a);break}r[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],o=0}finally{n=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}function styleInject(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&o.firstChild?o.insertBefore(r,o.firstChild):o.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}var css='@import url("https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap");\n#index_terminalContainer__3q4m3 {\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.index_controls__9z-dM {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px; }\n .index_controls__9z-dM .index_consoleCtrl__PQnAL {\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 .index_controls__9z-dM .index_close__2o6CK {\n background: var(--control-close-bg-color); }\n .index_controls__9z-dM .index_minimize__E9mwB {\n background: var(--control-minimize-bg-color); }\n .index_controls__9z-dM .index_maximize__sbbYF {\n background: var(--control-maximize-bg-color); }\n\n.index_editor__2tqRz {\n text-align: left;\n height: calc(100% - 46px);\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 .index_editor__2tqRz .index_mobileInput__jGtyc {\n position: absolute;\n top: -2000px;\n left: -2000px; }\n .index_editor__2tqRz .index_lineText__2Poex {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px; }\n .index_editor__2tqRz .index_preWhiteSpace__3nCT2 {\n white-space: pre-wrap; }\n .index_editor__2tqRz .index_caret__MYxcn {\n position: relative;\n -webkit-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -moz-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -o-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -ms-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n animation: index_blink__RQDX- 0.75s ease-in-out infinite; }\n .index_editor__2tqRz .index_caret__MYxcn .index_caretAfter__2B8sk {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10; }\n\n@-moz-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@-webkit-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@-o-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n .index_editor__2tqRz a {\n color: #1a87b5; }\n\n.index_curvedTop__3RecJ {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px; }\n\n#index_terminalContainer__3q4m3 {\n height: 100%; }\n\n.index_terminal__1dSq1 {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px; }\n',index={terminalContainer:"index_terminalContainer__3q4m3",controls:"index_controls__9z-dM",consoleCtrl:"index_consoleCtrl__PQnAL",close:"index_close__2o6CK",minimize:"index_minimize__E9mwB",maximize:"index_maximize__sbbYF",editor:"index_editor__2tqRz",mobileInput:"index_mobileInput__jGtyc",lineText:"index_lineText__2Poex",preWhiteSpace:"index_preWhiteSpace__3nCT2",caret:"index_caret__MYxcn",blink:"index_blink__RQDX-",caretAfter:"index_caretAfter__2B8sk",curvedTop:"index_curvedTop__3RecJ",terminal:"index_terminal__1dSq1"};styleInject(css);var styles=index,StyleContext=React.createContext(null),StyleContextProvider=function(e){var t=e.children;return React.createElement(StyleContext.Provider,{value:styles},t)},darkTheme={themeBGColor:"#022833",themeToolbarColor:"#131519",themeColor:"#839496",themePromptColor:"#a917a8"},lightTheme={themeBGColor:"#fdf6e4",themeToolbarColor:"#d8d8d8",themeColor:"#333333",themePromptColor:"#a917a8"},draculaTheme={themeBGColor:"#272B36",themeToolbarColor:"#DBDBDB",themeColor:"#FFFEFC",themePromptColor:"#a917a8"},materialDarkTheme={themeBGColor:"#151515",themeToolbarColor:"#424242",themeColor:"#fff",themePromptColor:"#42A5F5"},materialLightTheme={themeBGColor:"#fafafa",themeToolbarColor:"#424242",themeColor:"#151515",themePromptColor:"#42A5F5"},materialOceanTheme={themeBGColor:"#263238",themeToolbarColor:"#37474F",themeColor:"#fff",themePromptColor:"#C3D82C"},matrixTheme={themeBGColor:"#0D0208",themeToolbarColor:"#0D0208",themeColor:"#00FF41",themePromptColor:"#008F11"},defaultThemes={dark:darkTheme,light:lightTheme,dracula:draculaTheme,"material-dark":materialDarkTheme,"material-light":materialLightTheme,"material-ocean":materialOceanTheme,matrix:matrixTheme},ThemeContext=React.createContext(null),ThemeContextProvider=function(e){var t=e.children,n=__assign(__assign({},defaultThemes),t.props.themes||{}),o=n[t.props.theme]||n.light;return React.createElement(ThemeContext.Provider,{value:o},t)},useClickOutsideEvent=function(e,t,n){var o=function(o){e.current&&!e.current.contains(o.target)?n(!1):reactDeviceDetect.isMobile?n(!t):n(!0)};React.useEffect((function(){return document.addEventListener("mousedown",o),function(){document.removeEventListener("mousedown",o)}}))};function Controls(e){var t=React.useContext(StyleContext),n=e.controlButtonLabels,o=e.showControlButtons?n.map((function(e){return React.createElement("div",{key:e,className:t.consoleCtrl+" "+t[e]})})):null;return React.createElement("div",{className:t.controls},o)}var TerminalContext=React.createContext(null),TerminalContextProvider=function(e){var t=e.children,n=React.useState(""),o=n[0],r=n[1],a=React.useState([]),i=a[0],l=a[1],c=React.useState(null),s=c[0],m=c[1];React.useEffect((function(){m(i.length)}),[i]);return React.createElement(TerminalContext.Provider,{value:{bufferedContent:o,setBufferedContent:r,appendCommandToHistory:function(e){e&&l(i.concat(e))},getPreviousCommand:function(){if(0===s)return 0===i.length?"":i[0];var e=i[s-1];return s>0&&m(s-1),e},getNextCommand:function(){if(s+1<=i.length){if(s===i.length)return"";var e=i[s+1];return m(s+1),e}return""}}},t)},useEditorInput=function(e,t,n,o,r){var a=React.useContext(TerminalContext),i=a.getPreviousCommand,l=a.getNextCommand,c=function(a){if(e&&r){a.preventDefault();var c=a.key;if("Enter"!==c){var s=null;s="Backspace"===c?t.slice(0,-1):"ArrowUp"===c?i():"ArrowDown"===c?l():c&&1===c.length?t+c:t,n(s),o(!1)}else o(!0)}};React.useEffect((function(){return document.addEventListener("keydown",c),function(){document.removeEventListener("keydown",c)}}))},useBufferedContent=function(e,t,n,o,r,a,i){var l=React.useContext(TerminalContext),c=l.bufferedContent,s=l.setBufferedContent,m=React.useContext(StyleContext),u=React.useContext(ThemeContext);React.useEffect((function(){if(e){var l;l=o,__awaiter(void 0,void 0,void 0,(function(){var e,p,d,f,_,x,h,C;return __generator(this,(function(y){switch(y.label){case 0:return e=l.trim().split(" "),p=e[0],d=e.slice(1),f="","clear"===p?(s(""),r(""),t(!1),[2]):(_=React.createElement(React.Fragment,null,c,React.createElement("span",{style:{color:u.themePromptColor}},n),React.createElement("span",{className:m.lineText+" "+m.preWhiteSpace},o),React.createElement("br",null)),s(_),r(""),l?(x=d.join(" "),p&&a[p]?"function"!=typeof(h=a[p])?[3,2]:[4,h(x)]:[3,4]):[3,7]);case 1:return f=y.sent(),[3,3];case 2:f=h,y.label=3;case 3:return[3,7];case 4:return"function"!=typeof i?[3,6]:[4,i(x)];case 5:return f=y.sent(),[3,7];case 6:f=i,y.label=7;case 7:return C=React.createElement(React.Fragment,null,c,React.createElement("span",{style:{color:u.themePromptColor}},n),React.createElement("span",{className:m.lineText+" "+m.preWhiteSpace},o),f?React.createElement("span",null,React.createElement("br",null),f):null,React.createElement("br",null)),s(C),t(!1),[2]}}))}))}}),[e])},useCurrentLine=function(e,t,n,o,r,a){var i=React.useContext(StyleContext),l=React.useContext(ThemeContext),c=React.useContext(TerminalContext).appendCommandToHistory,s=React.useRef(null),m=React.useState(""),u=m[0],p=m[1],d=React.useState(!1),f=d[0],_=d[1];React.useEffect((function(){reactDeviceDetect.isMobile&&t&&s.current.focus()}),[t]),React.useEffect((function(){f&&c(u)}),[f]);var x=reactDeviceDetect.isMobile&&a?React.createElement("div",{className:i.mobileInput},React.createElement("input",{type:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",value:u,onChange:function(e){return p(e.target.value)},ref:s})):null,h=f?React.createElement(React.Fragment,null,x,React.createElement("div",{className:i.lineText},t&&e?React.createElement("span",{className:i.caret},React.createElement("span",{className:i.caretAfter,style:{background:l.themeColor}})):null)):React.createElement(React.Fragment,null,x,React.createElement("span",{style:{color:l.themePromptColor}},n),React.createElement("div",{className:i.lineText},React.createElement("span",{className:i.preWhiteSpace},u),t&&e?React.createElement("span",{className:i.caret},React.createElement("span",{className:i.caretAfter,style:{background:l.themeColor}})):null));return useEditorInput(t,u,p,_,a),useBufferedContent(f,_,n,u,p,o,r),h},useScrollToBottom=function(e,t){React.useEffect((function(){t.current.scrollTop=t.current.scrollHeight}),[e])};function Editor(e){var t=React.useRef(null),n=React.useContext(StyleContext),o=React.useContext(ThemeContext),r=React.useContext(TerminalContext).bufferedContent;useScrollToBottom(r,t);var a=e.enableInput,i=e.caret,l=e.consoleFocused,c=e.prompt,s=e.commands,m=e.welcomeMessage,u=e.errorMessage,p=e.curvedTop,d=useCurrentLine(i,l,c,s,u,a);return React.createElement("div",{ref:t,className:n.editor+" "+(p?n.curvedTop:null),style:{background:o.themeBGColor}},m,r,d)}function Terminal(e){var t=React.useRef(null),n=React.useState(!reactDeviceDetect.isMobile),o=n[0],r=n[1],a=React.useContext(StyleContext),i=React.useContext(ThemeContext);useClickOutsideEvent(t,o,r);var l=e.caret,c=e.theme,s=e.showControlBar,m=e.showControlButtons,u=e.controlButtonLabels,p=e.prompt,d=e.commands,f=e.welcomeMessage,_=e.errorMessage,x=e.enableInput,h=s?React.createElement(Controls,{consoleFocused:o,showControlButtons:m,controlButtonLabels:u}):null,C=React.createElement(Editor,{caret:l,consoleFocused:o,prompt:p,commands:d,welcomeMessage:f,errorMessage:_,enableInput:x,curvedTop:!s});return React.createElement("div",{ref:t,id:a.terminalContainer,className:a["theme--"+c]},React.createElement("div",{className:""+a.terminal,style:{background:i.themeToolbarColor,color:i.themeColor}},h,C))}function ContextProvider(e){var t=e.children;return React.createElement(StyleContextProvider,null,React.createElement(ThemeContextProvider,null,t))}function ReactTerminal(e){return React.createElement(ContextProvider,null,React.createElement(Terminal,__assign({},e)))}Terminal.propTypes={enableInput:PropTypes.bool,caret:PropTypes.bool,theme:PropTypes.string,showControlBar:PropTypes.bool,showControlButtons:PropTypes.bool,controlButtonLabels:PropTypes.arrayOf(PropTypes.string),prompt:PropTypes.string,commands:PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string,PropTypes.func,PropTypes.node])),welcomeMessage:PropTypes.oneOfType([PropTypes.string,PropTypes.func,PropTypes.node]),errorMessage:PropTypes.oneOfType([PropTypes.string,PropTypes.object])},Terminal.defaultProps={enableInput:!0,caret:!0,theme:"light",showControlBar:!0,showControlButtons:!0,controlButtonLabels:["close","minimize","maximize"],prompt:">>>",commands:{},welcomeMessage:"",errorMessage:"not found!"};var TerminalContextProvider$1=TerminalContextProvider,index$1={ReactTerminal:ReactTerminal,TerminalContextProvider:TerminalContextProvider$1};exports.ReactTerminal=ReactTerminal,exports.TerminalContextProvider=TerminalContextProvider$1,exports.default=index$1;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=require("prop-types"))&&"object"==typeof e&&"default"in e?e.default:e,o=require("react-device-detect"),r=function(){return(r=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)};function a(e,t,n,o){return new(n||(n=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 t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((o=o.apply(e,t||[])).next())}))}function i(e,t){var n,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(a){return function(l){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,o&&(r=2&a[0]?o.return:a[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,a[1])).done)return r;switch(o=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,o=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(r=i.trys,(r=r.length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){i.label=a[1];break}if(6===a[0]&&i.label<r[1]){i.label=r[1],r=a;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(a);break}r[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],o=0}finally{n=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&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__3q4m3 {\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.index_controls__9z-dM {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px; }\n .index_controls__9z-dM .index_consoleCtrl__PQnAL {\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 .index_controls__9z-dM .index_close__2o6CK {\n background: var(--control-close-bg-color); }\n .index_controls__9z-dM .index_minimize__E9mwB {\n background: var(--control-minimize-bg-color); }\n .index_controls__9z-dM .index_maximize__sbbYF {\n background: var(--control-maximize-bg-color); }\n\n.index_editor__2tqRz {\n text-align: left;\n height: calc(100% - 46px);\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 .index_editor__2tqRz .index_mobileInput__jGtyc {\n position: absolute;\n top: -2000px;\n left: -2000px; }\n .index_editor__2tqRz .index_lineText__2Poex {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px; }\n .index_editor__2tqRz .index_preWhiteSpace__3nCT2 {\n white-space: pre-wrap; }\n .index_editor__2tqRz .index_caret__MYxcn {\n position: relative;\n -webkit-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -moz-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -o-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n -ms-animation: index_blink__RQDX- 0.75s ease-in-out infinite;\n animation: index_blink__RQDX- 0.75s ease-in-out infinite; }\n .index_editor__2tqRz .index_caret__MYxcn .index_caretAfter__2B8sk {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10; }\n\n@-moz-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@-webkit-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@-o-keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n\n@keyframes index_blink__RQDX- {\n 0% {\n opacity: 0;\n -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";\n filter: alpha(opacity=0); }\n 100% {\n opacity: 1;\n -ms-filter: none;\n filter: none; } }\n .index_editor__2tqRz a {\n color: #1a87b5; }\n\n.index_curvedTop__3RecJ {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px; }\n\n#index_terminalContainer__3q4m3 {\n height: 100%; }\n\n.index_terminal__1dSq1 {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px; }\n');var l={terminalContainer:"index_terminalContainer__3q4m3",controls:"index_controls__9z-dM",consoleCtrl:"index_consoleCtrl__PQnAL",close:"index_close__2o6CK",minimize:"index_minimize__E9mwB",maximize:"index_maximize__sbbYF",editor:"index_editor__2tqRz",mobileInput:"index_mobileInput__jGtyc",lineText:"index_lineText__2Poex",preWhiteSpace:"index_preWhiteSpace__3nCT2",caret:"index_caret__MYxcn",blink:"index_blink__RQDX-",caretAfter:"index_caretAfter__2B8sk",curvedTop:"index_curvedTop__3RecJ",terminal:"index_terminal__1dSq1"},c=t.createContext(null),s=function(e){var n=e.children;return t.createElement(c.Provider,{value:l},n)},u={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"}},m=t.createContext(null),d=function(e){var n=e.children,o=r(r({},u),n.props.themes||{}),a=o[n.props.theme]||o.light;return t.createElement(m.Provider,{value:a},n)};function f(e){var n=t.useContext(c),o=e.controlButtonLabels,r=e.showControlButtons?o.map((function(e){return t.createElement("div",{key:e,className:"".concat(n.consoleCtrl," ").concat(n[e])})})):null;return t.createElement("div",{className:n.controls},r)}var p=t.createContext(null),_=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),h=function(e,n,r,l,s,u){var d=t.useContext(c),f=t.useContext(m),h=t.useContext(p).appendCommandToHistory,x=t.useRef(null),b=t.useState(""),g=b[0],C=b[1],v=t.useState(!1),y=v[0],E=v[1],w=t.useState(0),T=w[0],k=w[1],B=t.useState(""),z=B[0],S=B[1],M=t.useState(""),P=M[0],R=M[1];t.useEffect((function(){o.isMobile&&n&&x.current.focus()}),[n]),t.useEffect((function(){y&&h(g)}),[y]);var A=o.isMobile&&u?t.createElement("div",{className:d.mobileInput},t.createElement("input",{type:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false",value:g,onChange:function(e){return C(e.target.value)},ref:x})):null,D=y?t.createElement(t.Fragment,null,A,t.createElement("div",{className:d.lineText},n&&e?t.createElement("span",{className:d.caret},t.createElement("span",{className:d.caretAfter,style:{background:f.themeColor}})):null)):t.createElement(t.Fragment,null,A,t.createElement("span",{style:{color:f.themePromptColor}},r),t.createElement("div",{className:d.lineText},t.createElement("span",{className:d.preWhiteSpace},z),n&&e?t.createElement("span",{className:d.caret},t.createElement("span",{className:d.caretAfter,style:{background:f.themeColor}})):null,t.createElement("span",{className:d.preWhiteSpace},P)));return function(e,n,o,r,a,i,l,c,s){var u=t.useContext(p),m=u.getPreviousCommand,d=u.getNextCommand,f=function(t){if(e&&s){t.preventDefault();var l=t.key;if("Enter"!==l){var c=null;if("Backspace"===l){var u=_.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((t.metaKey||t.ctrlKey)&&"v"===l.toLowerCase())navigator.clipboard.readText().then((function(e){var t=_.splitStringAtIndex(n||"",a),r=t[0],l=t[1];c=c=r+e+l,i(a+e.length),o(c)}));else if((t.metaKey||t.ctrlKey)&&"c"===l.toLowerCase()){var h=window.getSelection().toString();navigator.clipboard.writeText(h).then((function(){o(c=n)}))}else if(l&&1===l.length){var x=_.splitStringAtIndex(n,a);f=x[0],p=x[1];c=f+l+p,i(a+1)}else c=n;o(c),r(!1)}else r(!0)}};t.useEffect((function(){return document.addEventListener("keydown",f),function(){document.removeEventListener("keydown",f)}})),t.useEffect((function(){var e=_.splitStringAtIndex(n,a),t=e[0],o=e[1];l(t),c(o)}),[a])}(n,g,C,E,T,k,S,R,u),function(e,n,o,r,l,s,u,d,f,_){var h=t.useContext(p),x=h.bufferedContent,b=h.setBufferedContent,g=t.useContext(c),C=t.useContext(m);t.useEffect((function(){if(e){var c;c=r,a(void 0,void 0,void 0,(function(){var e,a,m,p,h,v,y,E;return i(this,(function(i){switch(i.label){case 0:return e=c.trim().split(" "),a=e[0],m=e.slice(1),p="","clear"===a?(b(""),l(""),n(!1),s(0),u(""),d(""),[2]):(h=t.createElement(t.Fragment,null,x,t.createElement("span",{style:{color:C.themePromptColor}},o),t.createElement("span",{className:"".concat(g.lineText," ").concat(g.preWhiteSpace)},r),t.createElement("br",null)),b(h),l(""),s(0),u(""),d(""),c?(v=m.join(" "),a&&f[a]?"function"!=typeof(y=f[a])?[3,2]:[4,y(v)]:[3,4]):[3,7]);case 1:return p=i.sent(),[3,3];case 2:p=y,i.label=3;case 3:return[3,7];case 4:return"function"!=typeof _?[3,6]:[4,_(v)];case 5:return p=i.sent(),[3,7];case 6:p=_,i.label=7;case 7:return E=t.createElement(t.Fragment,null,x,t.createElement("span",{style:{color:C.themePromptColor}},o),t.createElement("span",{className:"".concat(g.lineText," ").concat(g.preWhiteSpace)},r),p?t.createElement("span",null,t.createElement("br",null),p):null,t.createElement("br",null)),b(E),n(!1),[2]}}))}))}}),[e])}(y,E,r,g,C,k,S,R,l,s),D};function x(e){var n=t.useRef(null),o=t.useContext(c),r=t.useContext(m),a=t.useContext(p).bufferedContent;!function(e,n){t.useEffect((function(){n.current&&(n.current.scrollTop=n.current.scrollHeight)}),[e])}(a,n);var i=e.enableInput,l=e.caret,s=e.consoleFocused,u=e.prompt,d=e.commands,f=e.welcomeMessage,_=e.errorMessage,x=e.curvedTop,b=h(l,s,u,d,_,i);return t.createElement("div",{ref:n,className:"".concat(o.editor," ").concat(x?o.curvedTop:null),style:{background:r.themeBGColor}},f,a,b)}function b(e){var n,r,a,i,l=t.useRef(null),s=t.useState(!o.isMobile),u=s[0],d=s[1],p=t.useContext(c),_=t.useContext(m);n=l,r=u,a=d,i=function(e){n.current&&!n.current.contains(e.target)?a(!1):o.isMobile?a(!r):a(!0)},t.useEffect((function(){return document.addEventListener("mousedown",i),function(){document.removeEventListener("mousedown",i)}}));var h=e.caret,b=e.theme,g=e.showControlBar,C=e.showControlButtons,v=e.controlButtonLabels,y=e.prompt,E=e.commands,w=e.welcomeMessage,T=e.errorMessage,k=e.enableInput,B=g?t.createElement(f,{consoleFocused:u,showControlButtons:C,controlButtonLabels:v}):null,z=t.createElement(x,{caret:h,consoleFocused:u,prompt:y,commands:E,welcomeMessage:w,errorMessage:T,enableInput:k,curvedTop:!g});return t.createElement("div",{ref:l,id:p.terminalContainer,className:p["theme--".concat(b)]},t.createElement("div",{className:"".concat(p.terminal),style:{background:_.themeToolbarColor,color:_.themeColor}},B,z))}function g(e){var n=e.children;return t.createElement(s,null,t.createElement(d,null,n))}function C(e){return t.createElement(g,null,t.createElement(b,r({},e)))}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.object])},b.defaultProps={enableInput:!0,caret:!0,theme:"light",showControlBar:!0,showControlButtons:!0,controlButtonLabels:["close","minimize","maximize"],prompt:">>>",commands:{},welcomeMessage:"",errorMessage:"not found!"};var v=function(e){var n=e.children,o=t.useState(""),r=o[0],a=o[1],i=t.useState([]),l=i[0],c=i[1],s=t.useState(null),u=s[0],m=s[1];t.useEffect((function(){m(l.length)}),[l]);return t.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){if(u===l.length)return"";var e=l[u+1];return m(u+1),e}return""}}},n)},y={ReactTerminal:C,TerminalContextProvider:v};exports.ReactTerminal=C,exports.TerminalContextProvider=v,exports.default=y;
declare const _default: {
"dark": {
dark: {
themeBGColor: string;

@@ -8,3 +8,3 @@ themeToolbarColor: string;

};
"light": {
light: {
themeBGColor: string;

@@ -15,3 +15,3 @@ themeToolbarColor: string;

};
"dracula": {
dracula: {
themeBGColor: string;

@@ -40,3 +40,3 @@ themeToolbarColor: string;

};
"matrix": {
matrix: {
themeBGColor: string;

@@ -43,0 +43,0 @@ themeToolbarColor: string;

{
"name": "react-terminal",
"version": "v1.2.1",
"version": "v1.2.3",
"description": "React component that renders a terminal",

@@ -39,3 +39,3 @@ "main": "dist/index.js",

"@types/jest": "^24.0.25",
"@types/react": "^17.0.2",
"@types/react": "^18.0.12",
"@types/react-dom": "^17.0.2",

@@ -45,3 +45,2 @@ "@types/react-test-renderer": "^16.9.1",

"@typescript-eslint/parser": "^2.14.0",
"codecov": "^3.6.1",
"cross-env": "^6.0.3",

@@ -59,15 +58,15 @@ "enzyme": "^3.11.0",

"jest": "^24.9.0",
"node-sass": "^4.13.1",
"node-sass": "^7.0.1",
"npm-install-peers": "^1.2.1",
"react-test-renderer": "^16.12.0",
"react-test-renderer": "^17.0.2",
"rollup": "^1.27.14",
"rollup-plugin-postcss": "^2.0.3",
"rollup-plugin-postcss": "^3.1.8",
"rollup-plugin-terser": "^5.1.3",
"rollup-plugin-typescript2": "^0.25.3",
"source-map-loader": "^0.2.4",
"rollup-plugin-typescript2": "^0.32.1",
"source-map-loader": "^1.1.3",
"ts-jest": "^24.2.0",
"ts-loader": "^6.2.1",
"typescript": "^3.7.4",
"webpack": "^4.41.5",
"webpack-cli": "^3.3.10"
"typescript": "^4.3.5",
"webpack": "^5.73.0",
"webpack-cli": "^4.9.2"
},

@@ -108,4 +107,4 @@ "peerDependencies": {

"prop-types": "^15.7.2",
"react-device-detect": "^1.17.0"
"react-device-detect": "^2.2.2"
}
}

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

- Command history using arrow up and down. 🔼
- Support for copy/paste. 📋
- In-built themes and support to create more. 🚀

@@ -34,7 +35,7 @@

```
npm install --save-dev react-terminal
npm install react-terminal
```
OR
```
yarn add --dev react-terminal
yarn add react-terminal
```

@@ -46,3 +47,3 @@

function MyComponent(props) {
function App(props) {
// Define commands here

@@ -97,3 +98,3 @@ const commands = {

| `prompt` | Terminal prompt | >>>
| `commands` | List of commands to be provided as a key value pair where value can be either a string, JSX or callback | null
| `commands` | List of commands to be provided as a key value pair where value can be either a string, JSX/HTML tag or callback | null
| `errorMessage` | Message to show when unidentified command executed | "not found!"

@@ -100,0 +101,0 @@ | `enableInput` | Whether to enable user input | true

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