react-terminal-plus
Advanced tools
Comparing version
@@ -15,2 +15,3 @@ ## 0.0.1 (7th June 2023) | ||
- Shortcut to paste is now `ctrl + shift + v` instead of `ctrl + v` | ||
- The terminal cursor no longer blinks | ||
@@ -22,1 +23,18 @@ ### Internal | ||
https://docs.gitlab.com/ee/development/changelog.html | ||
## 0.0.2 (7th June 2023) | ||
--- | ||
### Internal | ||
- Add tooling for changelogs and releasing | ||
## 0.0.3 (9th June 2023) | ||
--- | ||
### Fixes | ||
- Don't allow any commands to be executed while another command is running | ||
- Fix a small UI bug when doing `ctrl + c` with text in the buffer |
@@ -15,2 +15,4 @@ import * as React from "react"; | ||
} | { | ||
type: "CLEAR_BY_COMMAND"; | ||
} | { | ||
type: "CANCEL"; | ||
@@ -17,0 +19,0 @@ cancelNode: React.ReactNode; |
@@ -1,1 +0,1 @@ | ||
import*as e from"react";import{CancelablePromise as t}from"cancelable-promise";var n=function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function r(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function l(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((r=r.apply(e,t||[])).next())}))}function o(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[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(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}function a(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.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_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}\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",lineText:"index_lineText__j6qNj",preWhiteSpace:"index_preWhiteSpace__7KwuG",caret:"index_caret__VS4iV",caretAfter:"index_caretAfter__6aXPx",editorWithTopBar:"index_editorWithTopBar__L6XKw",curvedTop:"index_curvedTop__LX9XS",terminal:"index_terminal__teubZ",blink:"index_blink__FJp0-"},l=e.createContext(null),c=function(t){var n=t.children;return e.createElement(l.Provider,{value:i},n)},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),d=function(t){var r=t.children,o=n(n({},s),r.props.themes||{}),a=o[r.props.theme]||o.light;return e.createElement(u.Provider,{value:a},r)},m=function(t,n,r){var o=function(e){t.current&&!t.current.contains(e.target)?r(!1):r(!0)};e.useEffect((function(){return document.addEventListener("mousedown",o),function(){document.removeEventListener("mousedown",o)}}))};function p(t){var n=e.useContext(l),r=t.controlButtonLabels,o=t.showControlButtons?r.map((function(t){return e.createElement("div",{key:t,className:"".concat(n.consoleCtrl," ").concat(n[t])})})):null;return e.createElement("div",{className:n.controls},o)}var f=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),x=e.createContext(null);function h(e,t){switch(t.type){case"CLEAR":return n(n({},e),{bufferedContent:null,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"CANCEL":return n(n({},e),{bufferedContent:t.cancelNode,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"SUBMIT":var r=t.command,o=r?a(a([],e.commandsHistory,!0),[r],!1):e.commandsHistory;return n(n({},e),{commandsHistory:o,bufferedContent:t.loaderNode,currentLineStatus:"processing",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"SUBMIT_SUCCESS":return n(n({},e),{bufferedContent:t.successNode,currentLineStatus:"success",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"TYPE":var i=C(e),l=i[0],c=i[1],s=_(v=l+t.text+c,g=e.caretPosition+1),u=s[0],d=s[1];return n(n({},e),{caretPosition:g,editorInput:v,textAfterCaret:d,textBeforeCaret:u});case"DELETE":var m=C(e),p=(l=m[0],c=m[1],_(v=l.slice(0,-1)+c,g=e.caretPosition-1));u=p[0],d=p[1];return n(n({},e),{editorInput:v,caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"COPY":return e;case"PASTE":var f=C(e),x=(l=f[0],c=f[1],_(v=l+t.text+c,g=e.caretPosition+t.text.length));u=x[0],d=x[1];return n(n({},e),{editorInput:v,caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"ARROW_UP":var h=_(v=t.previousCommand,g=t.previousCommand.length);u=h[0],d=h[1];return n(n({},e),{editorInput:v,caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"ARROW_DOWN":var v,y=_(v=t.nextCommand,g=t.nextCommand.length);u=y[0],d=y[1];return n(n({},e),{editorInput:v,caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"RESET_CARET_POSITION":return n(n({},e),{textBeforeCaret:"",textAfterCaret:"",caretPosition:0});case"ARROW_LEFT":var g=e.caretPosition-1,b=_(e.editorInput,g);u=b[0],d=b[1];return n(n({},e),{caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"ARROW_RIGHT":g=e.caretPosition+1;var E=_(e.editorInput,g);u=E[0],d=E[1];return n(n({},e),{caretPosition:g,textAfterCaret:d,textBeforeCaret:u});default:throw new Error("Unhandled action type: ".concat(JSON.stringify(t)))}}function C(e){var t=f.splitStringAtIndex(e.editorInput,e.caretPosition);return[t[0],t[1]]}function _(e,t){var n=f.splitStringAtIndex(e,t);return[n[0],n[1]]}var v={bufferedContent:null,commandsHistory:[],editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""};function y(){var t=e.useContext(x);if(void 0===t)throw new Error("useTerminal must be used within a TerminalContextProvider");return t}var g=function(n,a,i,c,s,d,m){var p=e.useContext(l),f=e.useContext(u),x=y().store,h="processing"!==x.currentLineStatus?e.createElement(e.Fragment,null,e.createElement("span",{style:{color:f.themePromptColor}},i),e.createElement("div",{className:p.lineText},e.createElement("span",{className:p.preWhiteSpace},x.textBeforeCaret),a&&n?e.createElement("span",{className:p.caret},e.createElement("span",{className:p.caretAfter,style:{background:f.themeColor}})):null,e.createElement("span",{className:p.preWhiteSpace},x.textAfterCaret))):e.createElement(e.Fragment,null,e.createElement("div",{className:p.lineText},a&&n?e.createElement("span",{className:p.caret},e.createElement("span",{className:p.caretAfter,style:{background:f.themeColor}})):null));return function(n){var a=n.consoleFocused,i=n.enableInput,c=n.commands,s=n.defaultHandler,d=n.errorMessage,m=n.prompt,p=e.useContext(l),f=e.useContext(u),x=y(),h=x.getPreviousCommand,C=x.getNextCommand,_=x.store,v=x.send,g=e.useRef(null),b=e.useCallback((function(){g.current&&g.current.cancel();var t=e.createElement(e.Fragment,null,_.bufferedContent,e.createElement("span",{style:{color:f.themePromptColor}},m),e.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),e.createElement("br",null));v({type:"CANCEL",cancelNode:t})}),[m,v,_.bufferedContent,_.editorInput,p.lineText,p.preWhiteSpace,f.themePromptColor]),E=e.useCallback((function(){return r(void 0,void 0,void 0,(function(){var n,r,a,i,l,u,x,h;return o(this,(function(o){switch(o.label){case 0:return n=_.editorInput.trim().split(" "),r=n[0],a=n.slice(1),i="","clear"===r||"cls"===r?(v({type:"CLEAR"}),[2]):(l=e.createElement(e.Fragment,null,_.bufferedContent,e.createElement("span",{style:{color:f.themePromptColor}},m),e.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),e.createElement("br",null)),v({type:"SUBMIT",loaderNode:l,command:r}),_.editorInput?(u=a.join(" "),r&&c[r]?"function"!=typeof(x=c[r])?[3,2]:(g.current=new t((function(e){e(x(u))})),[4,g.current]):[3,4]):[3,9]);case 1:return i=o.sent(),[3,3];case 2:i=x,o.label=3;case 3:return[3,9];case 4:return"function"!=typeof s?[3,6]:(g.current=new t((function(e){e(s(r,u))})),[4,g.current]);case 5:return i=o.sent(),[3,9];case 6:return"function"!=typeof d?[3,8]:(g.current=new t((function(e){e(d(r,u))})),[4,g.current]);case 7:return i=o.sent(),[3,9];case 8:i=d,o.label=9;case 9:return h=e.createElement(e.Fragment,null,_.bufferedContent,e.createElement("span",{style:{color:f.themePromptColor}},m),e.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),i?e.createElement("span",null,e.createElement("br",null),i):null,e.createElement("br",null)),v({type:"SUBMIT_SUCCESS",successNode:h}),[2]}}))}))}),[v,_.bufferedContent,_.editorInput]),T=e.useCallback((function(e){if(a&&i){e.preventDefault();var t=e.key;if("Enter"!==t){var n=null;if("Backspace"===t)_.editorInput&&0!==_.editorInput.length&&v({type:"DELETE"});else if("ArrowUp"===t)(n=h())&&v({type:"ARROW_UP",previousCommand:n});else if("ArrowDown"===t)n=C(),v(n?{type:"ARROW_DOWN",nextCommand:n}:{type:"RESET_CARET_POSITION"});else if("ArrowLeft"===t)_.caretPosition>0&&v({type:"ARROW_LEFT"}),n=_.editorInput;else if("ArrowRight"===t)_.caretPosition<_.editorInput.length&&v({type:"ARROW_RIGHT"}),n=_.editorInput;else if((e.metaKey||e.ctrlKey)&&"l"===t.toLowerCase())v({type:"CLEAR"});else if((e.metaKey||e.ctrlKey)&&e.shiftKey&&"v"===t.toLowerCase())navigator.clipboard.readText().then((function(e){v({type:"PASTE",text:e})}));else if((e.metaKey||e.ctrlKey)&&e.shiftKey&&"c"===t.toLowerCase()){var r=window.getSelection().toString();navigator.clipboard.writeText(r).then((function(){v({type:"COPY"})}))}else(e.metaKey||e.ctrlKey)&&"c"===t.toLowerCase()?(g.current&&g.current.cancel(),b()):t&&1===t.length&&v({type:"TYPE",text:t})}else E()}}),[b,a,i,C,h,E,v,_.caretPosition,_.editorInput]);e.useEffect((function(){return document.addEventListener("keydown",T),function(){document.removeEventListener("keydown",T)}}),[T])}({commands:c,errorMessage:s,defaultHandler:m,enableInput:d,prompt:i,consoleFocused:a}),h},b=function(t,n){e.useEffect((function(){n.current&&(n.current.scrollTop=n.current.scrollHeight)}),[t])};function E(t){var n=e.useRef(null),r=e.useContext(l),o=e.useContext(u),a=y().store;b(a.bufferedContent,n);var i=t.enableInput,c=t.caret,s=t.consoleFocused,d=t.prompt,m=t.commands,p=t.welcomeMessage,f=t.errorMessage,x=t.showControlBar,h=t.defaultHandler,C=g(c,s,d,m,f,i,h);return e.createElement("div",{id:"terminalEditor",ref:n,className:"".concat(r.editor," ").concat(x?null:r.curvedTop," ").concat(x?r.editorWithTopBar:null),style:{background:o.themeBGColor}},p,a.bufferedContent,C)}function T(t){var n=e.useRef(null),r=e.useState(!0),o=r[0],a=r[1],i=e.useContext(l),c=e.useContext(u);m(n,o,a);var s=t.caret,d=void 0===s||s,f=t.theme,x=void 0===f?"light":f,h=t.showControlBar,C=void 0===h||h,_=t.showControlButtons,v=void 0===_||_,y=t.controlButtonLabels,g=void 0===y?["close","minimize","maximize"]:y,b=t.prompt,T=void 0===b?">>>":b,w=t.commands,P=void 0===w?{}:w,S=t.welcomeMessage,A=void 0===S?"":S,I=t.errorMessage,B=void 0===I?"not found!":I,N=t.enableInput,k=void 0===N||N,R=t.defaultHandler,D=void 0===R?null:R,L=C?e.createElement(p,{consoleFocused:o,showControlButtons:v,controlButtonLabels:g}):null,F=e.createElement(E,{caret:d,consoleFocused:o,prompt:T,commands:P,welcomeMessage:A,errorMessage:B,enableInput:k,showControlBar:C,defaultHandler:D});return e.createElement("div",{ref:n,id:i.terminalContainer,className:i["theme--".concat(x)],"data-testid":"terminal"},e.createElement("div",{className:"".concat(i.terminal),style:{background:c.themeToolbarColor,color:c.themeColor}},L,F))}function w(t){var n=t.children;return e.createElement(c,null,e.createElement(d,null,n))}function P(t){return e.createElement(w,null,e.createElement(T,n({},t)))}var S=function(t){var n=t.children,r=e.useState(null),o=r[0],a=r[1],i=e.useReducer(h,v),l=i[0],c=i[1];e.useEffect((function(){a(l.commandsHistory.length)}),[l.commandsHistory]);var s=e.useMemo((function(){return{send:c,store:l,getPreviousCommand:function(){if(0===o)return 0===l.commandsHistory.length?"":l.commandsHistory[0];var e=l.commandsHistory[o-1];return o>0&&a(o-1),e},getNextCommand:function(){if(o+1<=l.commandsHistory.length){var e=l.commandsHistory[o+1];return a(o+1),e}return""}}}),[o,l]);return e.createElement(x.Provider,{value:s},n)},A={ReactTerminal:P,TerminalContextProvider:S};export{P as ReactTerminal,S as TerminalContextProvider,A as default}; | ||
import*as e from"react";import{CancelablePromise as t}from"cancelable-promise";var n=function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function r(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function l(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((r=r.apply(e,t||[])).next())}))}function o(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[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(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}function a(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.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_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}\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",lineText:"index_lineText__j6qNj",preWhiteSpace:"index_preWhiteSpace__7KwuG",caret:"index_caret__VS4iV",caretAfter:"index_caretAfter__6aXPx",editorWithTopBar:"index_editorWithTopBar__L6XKw",curvedTop:"index_curvedTop__LX9XS",terminal:"index_terminal__teubZ",blink:"index_blink__FJp0-"},l=e.createContext(null),c=function(t){var n=t.children;return e.createElement(l.Provider,{value:i},n)},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),d=function(t){var r=t.children,o=n(n({},s),r.props.themes||{}),a=o[r.props.theme]||o.light;return e.createElement(u.Provider,{value:a},r)},m=function(t,n,r){var o=function(e){t.current&&!t.current.contains(e.target)?r(!1):r(!0)};e.useEffect((function(){return document.addEventListener("mousedown",o),function(){document.removeEventListener("mousedown",o)}}))};function p(t){var n=e.useContext(l),r=t.controlButtonLabels,o=t.showControlButtons?r.map((function(t){return e.createElement("div",{key:t,className:"".concat(n.consoleCtrl," ").concat(n[t])})})):null;return e.createElement("div",{className:n.controls},o)}var f=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),C=e.createContext(null);function x(e,t){switch(e.currentLineStatus){case"processing":switch(t.type){case"CANCEL":return n(n({},e),{bufferedContent:t.cancelNode,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"SUBMIT_SUCCESS":return n(n({},e),{bufferedContent:t.successNode,currentLineStatus:"success",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});default:return e}case"success":case"error":case"idle":switch(t.type){case"CLEAR_BY_COMMAND":return n(n({},e),{bufferedContent:null,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"CLEAR":return n(n({},e),{bufferedContent:null});case"CANCEL":return n(n({},e),{bufferedContent:t.cancelNode,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"SUBMIT":var r=t.command,o=r?a(a([],e.commandsHistory,!0),[r],!1):e.commandsHistory;return n(n({},e),{commandsHistory:o,bufferedContent:t.loaderNode,currentLineStatus:"processing",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"TYPE":var i=h(e),l=i[0],c=i[1],s=_(g=l+t.text+c,y=e.caretPosition+1),u=s[0],d=s[1];return n(n({},e),{caretPosition:y,editorInput:g,textAfterCaret:d,textBeforeCaret:u});case"DELETE":var m=h(e),p=(l=m[0],c=m[1],_(g=l.slice(0,-1)+c,y=e.caretPosition-1));u=p[0],d=p[1];return n(n({},e),{editorInput:g,caretPosition:y,textAfterCaret:d,textBeforeCaret:u});case"COPY":return e;case"PASTE":var f=h(e),C=(l=f[0],c=f[1],_(g=l+t.text+c,y=e.caretPosition+t.text.length));u=C[0],d=C[1];return n(n({},e),{editorInput:g,caretPosition:y,textAfterCaret:d,textBeforeCaret:u});case"ARROW_UP":var x=_(g=t.previousCommand,y=t.previousCommand.length);u=x[0],d=x[1];return n(n({},e),{editorInput:g,caretPosition:y,textAfterCaret:d,textBeforeCaret:u});case"ARROW_DOWN":var g,v=_(g=t.nextCommand,y=t.nextCommand.length);u=v[0],d=v[1];return n(n({},e),{editorInput:g,caretPosition:y,textAfterCaret:d,textBeforeCaret:u});case"RESET_CARET_POSITION":return n(n({},e),{textBeforeCaret:"",textAfterCaret:"",caretPosition:0});case"ARROW_LEFT":var y=e.caretPosition-1,b=_(e.editorInput,y);u=b[0],d=b[1];return n(n({},e),{caretPosition:y,textAfterCaret:d,textBeforeCaret:u});case"ARROW_RIGHT":y=e.caretPosition+1;var E=_(e.editorInput,y);u=E[0],d=E[1];return n(n({},e),{caretPosition:y,textAfterCaret:d,textBeforeCaret:u});default:throw new Error("Unhandled action type: ".concat(JSON.stringify(t)))}default:return e}}function h(e){var t=f.splitStringAtIndex(e.editorInput,e.caretPosition);return[t[0],t[1]]}function _(e,t){var n=f.splitStringAtIndex(e,t);return[n[0],n[1]]}var g={bufferedContent:null,commandsHistory:[],editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""};function v(){var t=e.useContext(C);if(void 0===t)throw new Error("useTerminal must be used within a TerminalContextProvider");return t}var y=function(n,a,i,c,s,d,m){var p=e.useContext(l),f=e.useContext(u),C=v().store,x="processing"!==C.currentLineStatus?e.createElement(e.Fragment,null,e.createElement("span",{style:{color:f.themePromptColor}},i),e.createElement("div",{className:p.lineText},e.createElement("span",{className:p.preWhiteSpace},C.textBeforeCaret),a&&n?e.createElement("span",{className:p.caret},e.createElement("span",{className:p.caretAfter,style:{background:f.themeColor}})):null,e.createElement("span",{className:p.preWhiteSpace},C.textAfterCaret))):e.createElement(e.Fragment,null,e.createElement("div",{className:p.lineText},a&&n?e.createElement("span",{className:p.caret},e.createElement("span",{className:p.caretAfter,style:{background:f.themeColor}})):null));return function(n){var a=n.consoleFocused,i=n.enableInput,c=n.commands,s=n.defaultHandler,d=n.errorMessage,m=n.prompt,p=e.useContext(l),f=e.useContext(u),C=v(),x=C.getPreviousCommand,h=C.getNextCommand,_=C.store,g=C.send,y=e.useRef(null),b=e.useCallback((function(){y.current&&y.current.cancel();var t=e.createElement(e.Fragment,null,_.bufferedContent,e.createElement("span",{style:{color:f.themePromptColor}},m),e.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),e.createElement("br",null));"processing"===_.currentLineStatus&&(t=e.createElement(e.Fragment,null,_.bufferedContent)),g({type:"CANCEL",cancelNode:t})}),[m,g,_.bufferedContent,_.currentLineStatus,_.editorInput,p.lineText,p.preWhiteSpace,f.themePromptColor]),E=e.useCallback((function(){return r(void 0,void 0,void 0,(function(){var n,r,a,i,l,u,C,x;return o(this,(function(o){switch(o.label){case 0:return n=_.editorInput.trim().split(" "),r=n[0],a=n.slice(1),i="","clear"===r||"cls"===r?(g({type:"CLEAR_BY_COMMAND"}),[2]):(l=e.createElement(e.Fragment,null,_.bufferedContent,e.createElement("span",{style:{color:f.themePromptColor}},m),e.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),e.createElement("br",null)),g({type:"SUBMIT",loaderNode:l,command:r}),_.editorInput?(u=a.join(" "),r&&c[r]?"function"!=typeof(C=c[r])?[3,2]:(y.current=new t((function(e){e(C(u))})),[4,y.current]):[3,4]):[3,9]);case 1:return i=o.sent(),[3,3];case 2:i=C,o.label=3;case 3:return[3,9];case 4:return"function"!=typeof s?[3,6]:(y.current=new t((function(e){e(s(r,u))})),[4,y.current]);case 5:return i=o.sent(),[3,9];case 6:return"function"!=typeof d?[3,8]:(y.current=new t((function(e){e(d(r,u))})),[4,y.current]);case 7:return i=o.sent(),[3,9];case 8:i=d,o.label=9;case 9:return x=e.createElement(e.Fragment,null,_.bufferedContent,e.createElement("span",{style:{color:f.themePromptColor}},m),e.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),i?e.createElement("span",null,e.createElement("br",null),i):null,e.createElement("br",null)),g({type:"SUBMIT_SUCCESS",successNode:x}),[2]}}))}))}),[g,_.bufferedContent,_.editorInput]),T=e.useCallback((function(e){if(a&&i){e.preventDefault();var t=e.key,n=null;if("Enter"===t)"processing"!==_.currentLineStatus&&E();else if("Backspace"===t)_.editorInput&&0!==_.editorInput.length&&g({type:"DELETE"});else if("ArrowUp"===t)(n=x())&&g({type:"ARROW_UP",previousCommand:n});else if("ArrowDown"===t)n=h(),g(n?{type:"ARROW_DOWN",nextCommand:n}:{type:"RESET_CARET_POSITION"});else if("ArrowLeft"===t)_.caretPosition>0&&g({type:"ARROW_LEFT"}),n=_.editorInput;else if("ArrowRight"===t)_.caretPosition<_.editorInput.length&&g({type:"ARROW_RIGHT"}),n=_.editorInput;else if((e.metaKey||e.ctrlKey)&&"l"===t.toLowerCase())g({type:"CLEAR"});else if((e.metaKey||e.ctrlKey)&&e.shiftKey&&"v"===t.toLowerCase())navigator.clipboard.readText().then((function(e){g({type:"PASTE",text:e})}));else if((e.metaKey||e.ctrlKey)&&e.shiftKey&&"c"===t.toLowerCase()){var r=window.getSelection().toString();navigator.clipboard.writeText(r).then((function(){g({type:"COPY"})}))}else(e.metaKey||e.ctrlKey)&&"c"===t.toLowerCase()?(y.current&&y.current.cancel(),b()):t&&1===t.length&&g({type:"TYPE",text:t})}}),[b,a,i,h,x,E,g,_.caretPosition,_.editorInput]);e.useEffect((function(){return document.addEventListener("keydown",T),function(){document.removeEventListener("keydown",T)}}),[T])}({commands:c,errorMessage:s,defaultHandler:m,enableInput:d,prompt:i,consoleFocused:a}),x},b=function(t,n){e.useEffect((function(){n.current&&(n.current.scrollTop=n.current.scrollHeight)}),[t])};function E(t){var n=e.useRef(null),r=e.useContext(l),o=e.useContext(u),a=v().store;b(a.bufferedContent,n);var i=t.enableInput,c=t.caret,s=t.consoleFocused,d=t.prompt,m=t.commands,p=t.welcomeMessage,f=t.errorMessage,C=t.showControlBar,x=t.defaultHandler,h=y(c,s,d,m,f,i,x);return e.createElement("div",{id:"terminalEditor",ref:n,className:"".concat(r.editor," ").concat(C?null:r.curvedTop," ").concat(C?r.editorWithTopBar:null),style:{background:o.themeBGColor}},p,a.bufferedContent,h)}function T(t){var n=e.useRef(null),r=e.useState(!0),o=r[0],a=r[1],i=e.useContext(l),c=e.useContext(u);m(n,o,a);var s=t.caret,d=void 0===s||s,f=t.theme,C=void 0===f?"light":f,x=t.showControlBar,h=void 0===x||x,_=t.showControlButtons,g=void 0===_||_,v=t.controlButtonLabels,y=void 0===v?["close","minimize","maximize"]:v,b=t.prompt,T=void 0===b?">>>":b,w=t.commands,S=void 0===w?{}:w,P=t.welcomeMessage,A=void 0===P?"":P,I=t.errorMessage,B=void 0===I?"not found!":I,N=t.enableInput,L=void 0===N||N,k=t.defaultHandler,R=void 0===k?null:k,D=h?e.createElement(p,{consoleFocused:o,showControlButtons:g,controlButtonLabels:y}):null,F=e.createElement(E,{caret:d,consoleFocused:o,prompt:T,commands:S,welcomeMessage:A,errorMessage:B,enableInput:L,showControlBar:h,defaultHandler:R});return e.createElement("div",{ref:n,id:i.terminalContainer,className:i["theme--".concat(C)],"data-testid":"terminal"},e.createElement("div",{className:"".concat(i.terminal),style:{background:c.themeToolbarColor,color:c.themeColor}},D,F))}function w(t){var n=t.children;return e.createElement(c,null,e.createElement(d,null,n))}function S(t){return e.createElement(w,null,e.createElement(T,n({},t)))}var P=function(t){var n=t.children,r=e.useState(null),o=r[0],a=r[1],i=e.useReducer(x,g),l=i[0],c=i[1];e.useEffect((function(){a(l.commandsHistory.length)}),[l.commandsHistory]);var s=e.useMemo((function(){return{send:c,store:l,getPreviousCommand:function(){if(0===o)return 0===l.commandsHistory.length?"":l.commandsHistory[0];var e=l.commandsHistory[o-1];return o>0&&a(o-1),e},getNextCommand:function(){if(o+1<=l.commandsHistory.length){var e=l.commandsHistory[o+1];return a(o+1),e}return""}}}),[o,l]);return e.createElement(C.Provider,{value:s},n)},A={ReactTerminal:S,TerminalContextProvider:P};export{S as ReactTerminal,P as TerminalContextProvider,A as default}; |
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("cancelable-promise");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=n(e),o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)};function a(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function l(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((r=r.apply(e,t||[])).next())}))}function i(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[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(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}function l(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.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_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}\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",lineText:"index_lineText__j6qNj",preWhiteSpace:"index_preWhiteSpace__7KwuG",caret:"index_caret__VS4iV",caretAfter:"index_caretAfter__6aXPx",editorWithTopBar:"index_editorWithTopBar__L6XKw",curvedTop:"index_curvedTop__LX9XS",terminal:"index_terminal__teubZ",blink:"index_blink__FJp0-"},s=r.createContext(null),u=function(e){var t=e.children;return r.createElement(s.Provider,{value:c},t)},d={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=r.createContext(null),p=function(e){var t=e.children,n=o(o({},d),t.props.themes||{}),a=n[t.props.theme]||n.light;return r.createElement(m.Provider,{value:a},t)},f=function(e,t,n){var o=function(t){e.current&&!e.current.contains(t.target)?n(!1):n(!0)};r.useEffect((function(){return document.addEventListener("mousedown",o),function(){document.removeEventListener("mousedown",o)}}))};function x(e){var t=r.useContext(s),n=e.controlButtonLabels,o=e.showControlButtons?n.map((function(e){return r.createElement("div",{key:e,className:"".concat(t.consoleCtrl," ").concat(t[e])})})):null;return r.createElement("div",{className:t.controls},o)}var C=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),h=r.createContext(null);function _(e,t){switch(t.type){case"CLEAR":return o(o({},e),{bufferedContent:null,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"CANCEL":return o(o({},e),{bufferedContent:t.cancelNode,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"SUBMIT":var n=t.command,r=n?l(l([],e.commandsHistory,!0),[n],!1):e.commandsHistory;return o(o({},e),{commandsHistory:r,bufferedContent:t.loaderNode,currentLineStatus:"processing",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"SUBMIT_SUCCESS":return o(o({},e),{bufferedContent:t.successNode,currentLineStatus:"success",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"TYPE":var a=v(e),i=a[0],c=a[1],s=y(h=i+t.text+c,b=e.caretPosition+1),u=s[0],d=s[1];return o(o({},e),{caretPosition:b,editorInput:h,textAfterCaret:d,textBeforeCaret:u});case"DELETE":var m=v(e),p=(i=m[0],c=m[1],y(h=i.slice(0,-1)+c,b=e.caretPosition-1));u=p[0],d=p[1];return o(o({},e),{editorInput:h,caretPosition:b,textAfterCaret:d,textBeforeCaret:u});case"COPY":return e;case"PASTE":var f=v(e),x=(i=f[0],c=f[1],y(h=i+t.text+c,b=e.caretPosition+t.text.length));u=x[0],d=x[1];return o(o({},e),{editorInput:h,caretPosition:b,textAfterCaret:d,textBeforeCaret:u});case"ARROW_UP":var C=y(h=t.previousCommand,b=t.previousCommand.length);u=C[0],d=C[1];return o(o({},e),{editorInput:h,caretPosition:b,textAfterCaret:d,textBeforeCaret:u});case"ARROW_DOWN":var h,_=y(h=t.nextCommand,b=t.nextCommand.length);u=_[0],d=_[1];return o(o({},e),{editorInput:h,caretPosition:b,textAfterCaret:d,textBeforeCaret:u});case"RESET_CARET_POSITION":return o(o({},e),{textBeforeCaret:"",textAfterCaret:"",caretPosition:0});case"ARROW_LEFT":var b=e.caretPosition-1,g=y(e.editorInput,b);u=g[0],d=g[1];return o(o({},e),{caretPosition:b,textAfterCaret:d,textBeforeCaret:u});case"ARROW_RIGHT":b=e.caretPosition+1;var E=y(e.editorInput,b);u=E[0],d=E[1];return o(o({},e),{caretPosition:b,textAfterCaret:d,textBeforeCaret:u});default:throw new Error("Unhandled action type: ".concat(JSON.stringify(t)))}}function v(e){var t=C.splitStringAtIndex(e.editorInput,e.caretPosition);return[t[0],t[1]]}function y(e,t){var n=C.splitStringAtIndex(e,t);return[n[0],n[1]]}var b={bufferedContent:null,commandsHistory:[],editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""};function g(){var e=r.useContext(h);if(void 0===e)throw new Error("useTerminal must be used within a TerminalContextProvider");return e}var E=function(e,n,o,l,c,u,d){var p=r.useContext(s),f=r.useContext(m),x=g().store,C="processing"!==x.currentLineStatus?r.createElement(r.Fragment,null,r.createElement("span",{style:{color:f.themePromptColor}},o),r.createElement("div",{className:p.lineText},r.createElement("span",{className:p.preWhiteSpace},x.textBeforeCaret),n&&e?r.createElement("span",{className:p.caret},r.createElement("span",{className:p.caretAfter,style:{background:f.themeColor}})):null,r.createElement("span",{className:p.preWhiteSpace},x.textAfterCaret))):r.createElement(r.Fragment,null,r.createElement("div",{className:p.lineText},n&&e?r.createElement("span",{className:p.caret},r.createElement("span",{className:p.caretAfter,style:{background:f.themeColor}})):null));return function(e){var n=e.consoleFocused,o=e.enableInput,l=e.commands,c=e.defaultHandler,u=e.errorMessage,d=e.prompt,p=r.useContext(s),f=r.useContext(m),x=g(),C=x.getPreviousCommand,h=x.getNextCommand,_=x.store,v=x.send,y=r.useRef(null),b=r.useCallback((function(){y.current&&y.current.cancel();var e=r.createElement(r.Fragment,null,_.bufferedContent,r.createElement("span",{style:{color:f.themePromptColor}},d),r.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),r.createElement("br",null));v({type:"CANCEL",cancelNode:e})}),[d,v,_.bufferedContent,_.editorInput,p.lineText,p.preWhiteSpace,f.themePromptColor]),E=r.useCallback((function(){return a(void 0,void 0,void 0,(function(){var e,n,o,a,s,m,x,C;return i(this,(function(i){switch(i.label){case 0:return e=_.editorInput.trim().split(" "),n=e[0],o=e.slice(1),a="","clear"===n||"cls"===n?(v({type:"CLEAR"}),[2]):(s=r.createElement(r.Fragment,null,_.bufferedContent,r.createElement("span",{style:{color:f.themePromptColor}},d),r.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),r.createElement("br",null)),v({type:"SUBMIT",loaderNode:s,command:n}),_.editorInput?(m=o.join(" "),n&&l[n]?"function"!=typeof(x=l[n])?[3,2]:(y.current=new t.CancelablePromise((function(e){e(x(m))})),[4,y.current]):[3,4]):[3,9]);case 1:return a=i.sent(),[3,3];case 2:a=x,i.label=3;case 3:return[3,9];case 4:return"function"!=typeof c?[3,6]:(y.current=new t.CancelablePromise((function(e){e(c(n,m))})),[4,y.current]);case 5:return a=i.sent(),[3,9];case 6:return"function"!=typeof u?[3,8]:(y.current=new t.CancelablePromise((function(e){e(u(n,m))})),[4,y.current]);case 7:return a=i.sent(),[3,9];case 8:a=u,i.label=9;case 9:return C=r.createElement(r.Fragment,null,_.bufferedContent,r.createElement("span",{style:{color:f.themePromptColor}},d),r.createElement("span",{className:"".concat(p.lineText," ").concat(p.preWhiteSpace)},_.editorInput),a?r.createElement("span",null,r.createElement("br",null),a):null,r.createElement("br",null)),v({type:"SUBMIT_SUCCESS",successNode:C}),[2]}}))}))}),[v,_.bufferedContent,_.editorInput]),T=r.useCallback((function(e){if(n&&o){e.preventDefault();var t=e.key;if("Enter"!==t){var r=null;if("Backspace"===t)_.editorInput&&0!==_.editorInput.length&&v({type:"DELETE"});else if("ArrowUp"===t)(r=C())&&v({type:"ARROW_UP",previousCommand:r});else if("ArrowDown"===t)r=h(),v(r?{type:"ARROW_DOWN",nextCommand:r}:{type:"RESET_CARET_POSITION"});else if("ArrowLeft"===t)_.caretPosition>0&&v({type:"ARROW_LEFT"}),r=_.editorInput;else if("ArrowRight"===t)_.caretPosition<_.editorInput.length&&v({type:"ARROW_RIGHT"}),r=_.editorInput;else if((e.metaKey||e.ctrlKey)&&"l"===t.toLowerCase())v({type:"CLEAR"});else if((e.metaKey||e.ctrlKey)&&e.shiftKey&&"v"===t.toLowerCase())navigator.clipboard.readText().then((function(e){v({type:"PASTE",text:e})}));else if((e.metaKey||e.ctrlKey)&&e.shiftKey&&"c"===t.toLowerCase()){var a=window.getSelection().toString();navigator.clipboard.writeText(a).then((function(){v({type:"COPY"})}))}else(e.metaKey||e.ctrlKey)&&"c"===t.toLowerCase()?(y.current&&y.current.cancel(),b()):t&&1===t.length&&v({type:"TYPE",text:t})}else E()}}),[b,n,o,h,C,E,v,_.caretPosition,_.editorInput]);r.useEffect((function(){return document.addEventListener("keydown",T),function(){document.removeEventListener("keydown",T)}}),[T])}({commands:l,errorMessage:c,defaultHandler:d,enableInput:u,prompt:o,consoleFocused:n}),C},T=function(e,t){r.useEffect((function(){t.current&&(t.current.scrollTop=t.current.scrollHeight)}),[e])};function P(e){var t=r.useRef(null),n=r.useContext(s),o=r.useContext(m),a=g().store;T(a.bufferedContent,t);var i=e.enableInput,l=e.caret,c=e.consoleFocused,u=e.prompt,d=e.commands,p=e.welcomeMessage,f=e.errorMessage,x=e.showControlBar,C=e.defaultHandler,h=E(l,c,u,d,f,i,C);return r.createElement("div",{id:"terminalEditor",ref:t,className:"".concat(n.editor," ").concat(x?null:n.curvedTop," ").concat(x?n.editorWithTopBar:null),style:{background:o.themeBGColor}},p,a.bufferedContent,h)}function w(e){var t=r.useRef(null),n=r.useState(!0),o=n[0],a=n[1],i=r.useContext(s),l=r.useContext(m);f(t,o,a);var c=e.caret,u=void 0===c||c,d=e.theme,p=void 0===d?"light":d,C=e.showControlBar,h=void 0===C||C,_=e.showControlButtons,v=void 0===_||_,y=e.controlButtonLabels,b=void 0===y?["close","minimize","maximize"]:y,g=e.prompt,E=void 0===g?">>>":g,T=e.commands,w=void 0===T?{}:T,S=e.welcomeMessage,A=void 0===S?"":S,I=e.errorMessage,B=void 0===I?"not found!":I,N=e.enableInput,k=void 0===N||N,R=e.defaultHandler,D=void 0===R?null:R,L=h?r.createElement(x,{consoleFocused:o,showControlButtons:v,controlButtonLabels:b}):null,O=r.createElement(P,{caret:u,consoleFocused:o,prompt:E,commands:w,welcomeMessage:A,errorMessage:B,enableInput:k,showControlBar:h,defaultHandler:D});return r.createElement("div",{ref:t,id:i.terminalContainer,className:i["theme--".concat(p)],"data-testid":"terminal"},r.createElement("div",{className:"".concat(i.terminal),style:{background:l.themeToolbarColor,color:l.themeColor}},L,O))}function S(e){var t=e.children;return r.createElement(u,null,r.createElement(p,null,t))}function A(e){return r.createElement(S,null,r.createElement(w,o({},e)))}var I=function(e){var t=e.children,n=r.useState(null),o=n[0],a=n[1],i=r.useReducer(_,b),l=i[0],c=i[1];r.useEffect((function(){a(l.commandsHistory.length)}),[l.commandsHistory]);var s=r.useMemo((function(){return{send:c,store:l,getPreviousCommand:function(){if(0===o)return 0===l.commandsHistory.length?"":l.commandsHistory[0];var e=l.commandsHistory[o-1];return o>0&&a(o-1),e},getNextCommand:function(){if(o+1<=l.commandsHistory.length){var e=l.commandsHistory[o+1];return a(o+1),e}return""}}}),[o,l]);return r.createElement(h.Provider,{value:s},t)},B={ReactTerminal:A,TerminalContextProvider:I};exports.ReactTerminal=A,exports.TerminalContextProvider=I,exports.default=B; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("cancelable-promise");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=n(e),o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)};function a(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function l(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((r=r.apply(e,t||[])).next())}))}function i(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[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(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}function l(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.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_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}\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",lineText:"index_lineText__j6qNj",preWhiteSpace:"index_preWhiteSpace__7KwuG",caret:"index_caret__VS4iV",caretAfter:"index_caretAfter__6aXPx",editorWithTopBar:"index_editorWithTopBar__L6XKw",curvedTop:"index_curvedTop__LX9XS",terminal:"index_terminal__teubZ",blink:"index_blink__FJp0-"},s=r.createContext(null),u=function(e){var t=e.children;return r.createElement(s.Provider,{value:c},t)},d={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=r.createContext(null),f=function(e){var t=e.children,n=o(o({},d),t.props.themes||{}),a=n[t.props.theme]||n.light;return r.createElement(m.Provider,{value:a},t)},p=function(e,t,n){var o=function(t){e.current&&!e.current.contains(t.target)?n(!1):n(!0)};r.useEffect((function(){return document.addEventListener("mousedown",o),function(){document.removeEventListener("mousedown",o)}}))};function C(e){var t=r.useContext(s),n=e.controlButtonLabels,o=e.showControlButtons?n.map((function(e){return r.createElement("div",{key:e,className:"".concat(t.consoleCtrl," ").concat(t[e])})})):null;return r.createElement("div",{className:t.controls},o)}var x=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),h=r.createContext(null);function _(e,t){switch(e.currentLineStatus){case"processing":switch(t.type){case"CANCEL":return o(o({},e),{bufferedContent:t.cancelNode,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"SUBMIT_SUCCESS":return o(o({},e),{bufferedContent:t.successNode,currentLineStatus:"success",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});default:return e}case"success":case"error":case"idle":switch(t.type){case"CLEAR_BY_COMMAND":return o(o({},e),{bufferedContent:null,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"CLEAR":return o(o({},e),{bufferedContent:null});case"CANCEL":return o(o({},e),{bufferedContent:t.cancelNode,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"SUBMIT":var n=t.command,r=n?l(l([],e.commandsHistory,!0),[n],!1):e.commandsHistory;return o(o({},e),{commandsHistory:r,bufferedContent:t.loaderNode,currentLineStatus:"processing",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"TYPE":var a=v(e),i=a[0],c=a[1],s=b(h=i+t.text+c,g=e.caretPosition+1),u=s[0],d=s[1];return o(o({},e),{caretPosition:g,editorInput:h,textAfterCaret:d,textBeforeCaret:u});case"DELETE":var m=v(e),f=(i=m[0],c=m[1],b(h=i.slice(0,-1)+c,g=e.caretPosition-1));u=f[0],d=f[1];return o(o({},e),{editorInput:h,caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"COPY":return e;case"PASTE":var p=v(e),C=(i=p[0],c=p[1],b(h=i+t.text+c,g=e.caretPosition+t.text.length));u=C[0],d=C[1];return o(o({},e),{editorInput:h,caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"ARROW_UP":var x=b(h=t.previousCommand,g=t.previousCommand.length);u=x[0],d=x[1];return o(o({},e),{editorInput:h,caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"ARROW_DOWN":var h,_=b(h=t.nextCommand,g=t.nextCommand.length);u=_[0],d=_[1];return o(o({},e),{editorInput:h,caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"RESET_CARET_POSITION":return o(o({},e),{textBeforeCaret:"",textAfterCaret:"",caretPosition:0});case"ARROW_LEFT":var g=e.caretPosition-1,y=b(e.editorInput,g);u=y[0],d=y[1];return o(o({},e),{caretPosition:g,textAfterCaret:d,textBeforeCaret:u});case"ARROW_RIGHT":g=e.caretPosition+1;var E=b(e.editorInput,g);u=E[0],d=E[1];return o(o({},e),{caretPosition:g,textAfterCaret:d,textBeforeCaret:u});default:throw new Error("Unhandled action type: ".concat(JSON.stringify(t)))}default:return e}}function v(e){var t=x.splitStringAtIndex(e.editorInput,e.caretPosition);return[t[0],t[1]]}function b(e,t){var n=x.splitStringAtIndex(e,t);return[n[0],n[1]]}var g={bufferedContent:null,commandsHistory:[],editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""};function y(){var e=r.useContext(h);if(void 0===e)throw new Error("useTerminal must be used within a TerminalContextProvider");return e}var E=function(e,n,o,l,c,u,d){var f=r.useContext(s),p=r.useContext(m),C=y().store,x="processing"!==C.currentLineStatus?r.createElement(r.Fragment,null,r.createElement("span",{style:{color:p.themePromptColor}},o),r.createElement("div",{className:f.lineText},r.createElement("span",{className:f.preWhiteSpace},C.textBeforeCaret),n&&e?r.createElement("span",{className:f.caret},r.createElement("span",{className:f.caretAfter,style:{background:p.themeColor}})):null,r.createElement("span",{className:f.preWhiteSpace},C.textAfterCaret))):r.createElement(r.Fragment,null,r.createElement("div",{className:f.lineText},n&&e?r.createElement("span",{className:f.caret},r.createElement("span",{className:f.caretAfter,style:{background:p.themeColor}})):null));return function(e){var n=e.consoleFocused,o=e.enableInput,l=e.commands,c=e.defaultHandler,u=e.errorMessage,d=e.prompt,f=r.useContext(s),p=r.useContext(m),C=y(),x=C.getPreviousCommand,h=C.getNextCommand,_=C.store,v=C.send,b=r.useRef(null),g=r.useCallback((function(){b.current&&b.current.cancel();var e=r.createElement(r.Fragment,null,_.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},d),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},_.editorInput),r.createElement("br",null));"processing"===_.currentLineStatus&&(e=r.createElement(r.Fragment,null,_.bufferedContent)),v({type:"CANCEL",cancelNode:e})}),[d,v,_.bufferedContent,_.currentLineStatus,_.editorInput,f.lineText,f.preWhiteSpace,p.themePromptColor]),E=r.useCallback((function(){return a(void 0,void 0,void 0,(function(){var e,n,o,a,s,m,C,x;return i(this,(function(i){switch(i.label){case 0:return e=_.editorInput.trim().split(" "),n=e[0],o=e.slice(1),a="","clear"===n||"cls"===n?(v({type:"CLEAR_BY_COMMAND"}),[2]):(s=r.createElement(r.Fragment,null,_.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},d),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},_.editorInput),r.createElement("br",null)),v({type:"SUBMIT",loaderNode:s,command:n}),_.editorInput?(m=o.join(" "),n&&l[n]?"function"!=typeof(C=l[n])?[3,2]:(b.current=new t.CancelablePromise((function(e){e(C(m))})),[4,b.current]):[3,4]):[3,9]);case 1:return a=i.sent(),[3,3];case 2:a=C,i.label=3;case 3:return[3,9];case 4:return"function"!=typeof c?[3,6]:(b.current=new t.CancelablePromise((function(e){e(c(n,m))})),[4,b.current]);case 5:return a=i.sent(),[3,9];case 6:return"function"!=typeof u?[3,8]:(b.current=new t.CancelablePromise((function(e){e(u(n,m))})),[4,b.current]);case 7:return a=i.sent(),[3,9];case 8:a=u,i.label=9;case 9:return x=r.createElement(r.Fragment,null,_.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},d),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},_.editorInput),a?r.createElement("span",null,r.createElement("br",null),a):null,r.createElement("br",null)),v({type:"SUBMIT_SUCCESS",successNode:x}),[2]}}))}))}),[v,_.bufferedContent,_.editorInput]),T=r.useCallback((function(e){if(n&&o){e.preventDefault();var t=e.key,r=null;if("Enter"===t)"processing"!==_.currentLineStatus&&E();else if("Backspace"===t)_.editorInput&&0!==_.editorInput.length&&v({type:"DELETE"});else if("ArrowUp"===t)(r=x())&&v({type:"ARROW_UP",previousCommand:r});else if("ArrowDown"===t)r=h(),v(r?{type:"ARROW_DOWN",nextCommand:r}:{type:"RESET_CARET_POSITION"});else if("ArrowLeft"===t)_.caretPosition>0&&v({type:"ARROW_LEFT"}),r=_.editorInput;else if("ArrowRight"===t)_.caretPosition<_.editorInput.length&&v({type:"ARROW_RIGHT"}),r=_.editorInput;else if((e.metaKey||e.ctrlKey)&&"l"===t.toLowerCase())v({type:"CLEAR"});else if((e.metaKey||e.ctrlKey)&&e.shiftKey&&"v"===t.toLowerCase())navigator.clipboard.readText().then((function(e){v({type:"PASTE",text:e})}));else if((e.metaKey||e.ctrlKey)&&e.shiftKey&&"c"===t.toLowerCase()){var a=window.getSelection().toString();navigator.clipboard.writeText(a).then((function(){v({type:"COPY"})}))}else(e.metaKey||e.ctrlKey)&&"c"===t.toLowerCase()?(b.current&&b.current.cancel(),g()):t&&1===t.length&&v({type:"TYPE",text:t})}}),[g,n,o,h,x,E,v,_.caretPosition,_.editorInput]);r.useEffect((function(){return document.addEventListener("keydown",T),function(){document.removeEventListener("keydown",T)}}),[T])}({commands:l,errorMessage:c,defaultHandler:d,enableInput:u,prompt:o,consoleFocused:n}),x},T=function(e,t){r.useEffect((function(){t.current&&(t.current.scrollTop=t.current.scrollHeight)}),[e])};function P(e){var t=r.useRef(null),n=r.useContext(s),o=r.useContext(m),a=y().store;T(a.bufferedContent,t);var i=e.enableInput,l=e.caret,c=e.consoleFocused,u=e.prompt,d=e.commands,f=e.welcomeMessage,p=e.errorMessage,C=e.showControlBar,x=e.defaultHandler,h=E(l,c,u,d,p,i,x);return r.createElement("div",{id:"terminalEditor",ref:t,className:"".concat(n.editor," ").concat(C?null:n.curvedTop," ").concat(C?n.editorWithTopBar:null),style:{background:o.themeBGColor}},f,a.bufferedContent,h)}function w(e){var t=r.useRef(null),n=r.useState(!0),o=n[0],a=n[1],i=r.useContext(s),l=r.useContext(m);p(t,o,a);var c=e.caret,u=void 0===c||c,d=e.theme,f=void 0===d?"light":d,x=e.showControlBar,h=void 0===x||x,_=e.showControlButtons,v=void 0===_||_,b=e.controlButtonLabels,g=void 0===b?["close","minimize","maximize"]:b,y=e.prompt,E=void 0===y?">>>":y,T=e.commands,w=void 0===T?{}:T,S=e.welcomeMessage,A=void 0===S?"":S,I=e.errorMessage,B=void 0===I?"not found!":I,N=e.enableInput,L=void 0===N||N,k=e.defaultHandler,R=void 0===k?null:k,D=h?r.createElement(C,{consoleFocused:o,showControlButtons:v,controlButtonLabels:g}):null,O=r.createElement(P,{caret:u,consoleFocused:o,prompt:E,commands:w,welcomeMessage:A,errorMessage:B,enableInput:L,showControlBar:h,defaultHandler:R});return r.createElement("div",{ref:t,id:i.terminalContainer,className:i["theme--".concat(f)],"data-testid":"terminal"},r.createElement("div",{className:"".concat(i.terminal),style:{background:l.themeToolbarColor,color:l.themeColor}},D,O))}function S(e){var t=e.children;return r.createElement(u,null,r.createElement(f,null,t))}function A(e){return r.createElement(S,null,r.createElement(w,o({},e)))}var I=function(e){var t=e.children,n=r.useState(null),o=n[0],a=n[1],i=r.useReducer(_,g),l=i[0],c=i[1];r.useEffect((function(){a(l.commandsHistory.length)}),[l.commandsHistory]);var s=r.useMemo((function(){return{send:c,store:l,getPreviousCommand:function(){if(0===o)return 0===l.commandsHistory.length?"":l.commandsHistory[0];var e=l.commandsHistory[o-1];return o>0&&a(o-1),e},getNextCommand:function(){if(o+1<=l.commandsHistory.length){var e=l.commandsHistory[o+1];return a(o+1),e}return""}}}),[o,l]);return r.createElement(h.Provider,{value:s},t)},B={ReactTerminal:A,TerminalContextProvider:I};exports.ReactTerminal=A,exports.TerminalContextProvider=I,exports.default=B; |
@@ -6,3 +6,3 @@ { | ||
}, | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "A fork of the the 'react-terminal' package, with some extra features - react-terminal-plus", | ||
@@ -9,0 +9,0 @@ "main": "dist/index.js", |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
48237
3.95%27
3.85%374
4.76%0
-100%