react-terminal-plus
Advanced tools
Comparing version
@@ -0,1 +1,11 @@ | ||
## 0.0.13 (6th October 2023) | ||
### Changed | ||
- The letter under the caret has now the same color as the background color | ||
### Feature | ||
- Added a prop `rounded` to control the border radius of the terminal | ||
## 0.0.12 (5th October 2023) | ||
@@ -2,0 +12,0 @@ |
@@ -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 l(e){try{c(r.next(e))}catch(e){a(e)}}function i(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(l,i)}c((r=r.apply(e,t||[])).next())}))}function o(e,t){var n,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(c){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(l=0)),l;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,r=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(o=l.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){l.label=i[1];break}if(6===i[0]&&l.label<o[1]){l.label=o[1],o=i;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(i);break}o[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}!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-module_terminalContainer__i6yCT {\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-module_controls__-Pz-7 {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px;\n}\n.index-module_controls__-Pz-7 .index-module_consoleCtrl__wASVf {\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-module_controls__-Pz-7 .index-module_close__Etu85 {\n background: var(--control-close-bg-color);\n}\n.index-module_controls__-Pz-7 .index-module_minimize__bT0-I {\n background: var(--control-minimize-bg-color);\n}\n.index-module_controls__-Pz-7 .index-module_maximize__mPPF7 {\n background: var(--control-maximize-bg-color);\n}\n\n.index-module_editor__CBDCJ {\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 caret-color: transparent;\n --scroll-bar-thumb-color: transparent;\n --scroll-bar-track-color: transparent;\n --scroll-bar-width: 10px;\n scrollbar-color: var(--scroll-bar-thumb-color) var(--scroll-bar-track-color);\n scrollbar-width: var(--scroll-bar-width);\n}\n.index-module_editor__CBDCJ::selection {\n background: transparent;\n}\n.index-module_editor__CBDCJ:focus, .index-module_editor__CBDCJ:hover {\n --scroll-bar-thumb-color: rgb(211 211 211 / 40%);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar {\n width: var(--scroll-bar-width);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar-track {\n background-color: var(--scroll-bar-track-color);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar-thumb {\n background-color: var(--scroll-bar-thumb-color);\n}\n.index-module_editor__CBDCJ .index-module_lineText__avQ48 {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px;\n}\n.index-module_editor__CBDCJ .index-module_preWhiteSpace__v4IYf {\n white-space: pre-wrap;\n}\n.index-module_editor__CBDCJ .index-module_preWhiteSpace__v4IYf:focus-visible {\n outline: none;\n}\n.index-module_editor__CBDCJ .index-module_caret__YobLn {\n position: relative;\n}\n.index-module_editor__CBDCJ .index-module_caret__YobLn .index-module_caretAfter__SMMlh {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10;\n}\n@-moz-keyframes index-module_blink__l83VF {\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-module_blink__l83VF {\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-module_blink__l83VF {\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-module_blink__l83VF {\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-module_editor__CBDCJ a {\n color: #1a87b5;\n}\n\n.index-module_editorWithTopBar__opXWp {\n height: calc(100% - 46px);\n}\n\n.index-module_curvedTop__vzisj {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n\n#index-module_terminalContainer__i6yCT {\n height: 100%;\n}\n\n.index-module_terminal__EWHbJ {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px;\n}');var a={terminalContainer:"index-module_terminalContainer__i6yCT",controls:"index-module_controls__-Pz-7",consoleCtrl:"index-module_consoleCtrl__wASVf",close:"index-module_close__Etu85",minimize:"index-module_minimize__bT0-I",maximize:"index-module_maximize__mPPF7",editor:"index-module_editor__CBDCJ",lineText:"index-module_lineText__avQ48",preWhiteSpace:"index-module_preWhiteSpace__v4IYf",caret:"index-module_caret__YobLn",caretAfter:"index-module_caretAfter__SMMlh",editorWithTopBar:"index-module_editorWithTopBar__opXWp",curvedTop:"index-module_curvedTop__vzisj",terminal:"index-module_terminal__EWHbJ",blink:"index-module_blink__l83VF"},l=e.createContext(null),i=function(t){var n=t.children;return e.createElement(l.Provider,{value:a},n)},c={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),s=function(t){var r=t.children,o=n(n({},c),r.props.themes||{}),a=o[r.props.theme]||o.light;return e.createElement(u.Provider,{value:a},r)},d=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 m(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=["clear","cls"],p=function(e){return f.includes(e)},C=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),h="react-terminal-plus-commandHistory",_=function(){var e;try{var t=null!==(e=localStorage.getItem(h))&&void 0!==e?e:"[]";return JSON.parse(t)}catch(e){return console.error(e),[]}},x=function(e){var t=_();t.push(e);try{JSON.stringify(t).length>20&&(t=t.slice(50)),localStorage.setItem(h,JSON.stringify(t))}catch(n){console.error(n),t=[e],localStorage.setItem(h,JSON.stringify(t))}},b=e.createContext(null);function v(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":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=function(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))}([],e.commandsHistory,!0);return r&&r!==o[o.length-1]&&(o.push(r),x(r)),p(r)?n(n({},e),{commandsHistory:o,bufferedContent:null,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""}):n(n({},e),{commandsHistory:o,bufferedContent:t.loaderNode,currentLineStatus:"processing",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"TYPE":var a=g(e),l=a[0],i=a[1],c=y(_=l+t.text+i,v=e.caretPosition+1),u=c[0],s=c[1];return n(n({},e),{caretPosition:v,editorInput:_,textAfterCaret:s,textBeforeCaret:u});case"DELETE":var d=g(e),m=(l=d[0],i=d[1],y(_=l.slice(0,-1)+i,v=e.caretPosition-1));u=m[0],s=m[1];return n(n({},e),{editorInput:_,caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"COPY":return e;case"PASTE":var f=g(e),C=(l=f[0],i=f[1],y(_=l+t.text+i,v=e.caretPosition+t.text.length));u=C[0],s=C[1];return n(n({},e),{editorInput:_,caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"ARROW_UP":var h=y(_=t.previousCommand,v=t.previousCommand.length);u=h[0],s=h[1];return n(n({},e),{editorInput:_,caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"ARROW_DOWN":var _,b=y(_=t.nextCommand,v=t.nextCommand.length);u=b[0],s=b[1];return n(n({},e),{editorInput:_,caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"RESET_CARET_POSITION":return n(n({},e),{editorInput:"",textBeforeCaret:"",textAfterCaret:"",caretPosition:0});case"ARROW_LEFT":var v=e.caretPosition-1,E=y(e.editorInput,v);u=E[0],s=E[1];return n(n({},e),{caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"ARROW_RIGHT":v=e.caretPosition+1;var w=y(e.editorInput,v);u=w[0],s=w[1];return n(n({},e),{caretPosition:v,textAfterCaret:s,textBeforeCaret:u});default:throw new Error("Unhandled action type: ".concat(JSON.stringify(t)))}default:return e}}function g(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]]}function E(){var t=e.useContext(b);if(void 0===t)throw new Error("useTerminal must be used within a TerminalContextProvider");return t}var w=function(n,a,i,c,s,d,m){var f=e.useContext(l),C=e.useContext(u),h=E().store,_="processing"!==h.currentLineStatus?e.createElement(e.Fragment,null,e.createElement("span",{style:{color:C.themePromptColor}},i),e.createElement("div",{className:f.lineText},e.createElement("span",{className:f.preWhiteSpace},h.textBeforeCaret),a&&n?e.createElement("span",{className:f.caret},e.createElement("span",{className:f.caretAfter,style:{background:C.themeColor}})):null,e.createElement("span",{className:f.preWhiteSpace},h.textAfterCaret))):e.createElement(e.Fragment,null,e.createElement("div",{className:f.lineText},a&&n?e.createElement("span",{className:f.caret},e.createElement("span",{className:f.caretAfter,style:{background:C.themeColor}})):null));return function(n){var a=n.consoleFocused,i=n.enableInput,c=n.commands,s=n.defaultHandler,d=n.errorMessage,m=n.prompt,f=e.useContext(l),C=e.useContext(u),h=E(),_=h.getPreviousCommand,x=h.getNextCommand,b=h.store,v=h.send,g=e.useRef(null),y=e.useCallback((function(){g.current&&g.current.cancel();var t=e.createElement(e.Fragment,null,b.bufferedContent,e.createElement("span",{style:{color:C.themePromptColor}},m),e.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),e.createElement("br",null));"processing"===b.currentLineStatus&&(t=e.createElement(e.Fragment,null,b.bufferedContent)),v({type:"CANCEL",cancelNode:t})}),[m,v,b.bufferedContent,b.currentLineStatus,b.editorInput,f.lineText,f.preWhiteSpace,C.themePromptColor]),w=e.useCallback((function(){return r(void 0,void 0,void 0,(function(){var n,r,a,l,i,u,h,_,x;return o(this,(function(o){switch(o.label){case 0:return n=b.editorInput.trim().split(" "),r=n[0],a=n.slice(1),l=b.editorInput.trim(),i="",u=e.createElement(e.Fragment,null,b.bufferedContent,e.createElement("span",{style:{color:C.themePromptColor}},m),e.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),e.createElement("br",null)),v({type:"SUBMIT",loaderNode:u,command:l}),p(l)?[2]:b.editorInput?(h=a.join(" "),l&&c[l]?"function"!=typeof(_=c[l])?[3,2]:(g.current=new t((function(e){e(_(h))})),[4,g.current]):[3,4]):[3,9];case 1:return i=o.sent(),[3,3];case 2:i=_,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,h))})),[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,h))})),[4,g.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,b.bufferedContent,e.createElement("span",{style:{color:C.themePromptColor}},m),e.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),i?e.createElement("span",null,e.createElement("br",null),i):null,e.createElement("br",null)),v({type:"SUBMIT_SUCCESS",successNode:x}),[2]}}))}))}),[v,b.bufferedContent,b.editorInput]),P=e.useCallback((function(e){if(a&&i){e.preventDefault();var t=e.key,n=null;if("Enter"===t)"processing"!==b.currentLineStatus&&w();else if("Backspace"===t)b.editorInput&&0!==b.editorInput.length&&v({type:"DELETE"});else if("ArrowUp"===t)(n=_())&&v({type:"ARROW_UP",previousCommand:n});else if("ArrowDown"===t)n=x(),v(n?{type:"ARROW_DOWN",nextCommand:n}:{type:"RESET_CARET_POSITION"});else if("ArrowLeft"===t)b.caretPosition>0&&v({type:"ARROW_LEFT"}),n=b.editorInput;else if("ArrowRight"===t)b.caretPosition<b.editorInput.length&&v({type:"ARROW_RIGHT"}),n=b.editorInput;else if((e.metaKey||e.ctrlKey)&&"l"===t.toLowerCase())v({type:"CLEAR"});else if((e.metaKey||e.ctrlKey)&&"v"===t.toLowerCase())navigator.clipboard.readText().then((function(e){v({type:"PASTE",text:e})}));else if((e.metaKey||e.ctrlKey)&&"c"===t.toLowerCase()){var r=window.getSelection().toString();r?navigator.clipboard.writeText(r).then((function(){v({type:"COPY"})})):y()}else t&&1===t.length&&v({type:"TYPE",text:t})}}),[y,a,i,x,_,w,v,b.caretPosition,b.currentLineStatus,b.editorInput]);e.useEffect((function(){return document.addEventListener("keydown",P),function(){document.removeEventListener("keydown",P)}}),[P])}({commands:c,errorMessage:s,defaultHandler:m,enableInput:d,prompt:i,consoleFocused:a}),_},P=function(t,n){e.useEffect((function(){n.current&&(n.current.scrollTop=n.current.scrollHeight)}),[t])};function T(t){var n=e.useRef(null),r=e.useContext(l),o=e.useContext(u),a=E(),i=a.store,c=a.send;P(i.bufferedContent,n);var s=t.enableInput,d=t.caret,m=t.consoleFocused,f=t.prompt,p=t.commands,C=t.welcomeMessage,h=t.errorMessage,_=t.showControlBar,x=t.defaultHandler,b=w(d,m,f,p,h,s,x);return e.createElement("div",{id:"terminalEditor",tabIndex:0,ref:n,onMouseDown:function(e){n.current&&2===e.button&&(n.current.contentEditable="true",setTimeout((function(){n.current.contentEditable="false"}),20))},onPaste:function(e){e.preventDefault(),c({type:"PASTE",text:e.clipboardData.getData("text")})},className:"".concat(r.editor," ").concat(_?null:r.curvedTop," ").concat(_?r.editorWithTopBar:null),style:{background:o.themeBGColor}},C,i.bufferedContent,b)}function S(t){var n=e.useRef(null),r=e.useState(!0),o=r[0],a=r[1],i=e.useContext(l),c=e.useContext(u);d(n,o,a);var s=t.caret,f=void 0===s||s,p=t.theme,C=void 0===p?"light":p,h=t.showControlBar,_=void 0===h||h,x=t.showControlButtons,b=void 0===x||x,v=t.controlButtonLabels,g=void 0===v?["close","minimize","maximize"]:v,y=t.prompt,E=void 0===y?">>>":y,w=t.commands,P=void 0===w?{}:w,S=t.welcomeMessage,B=void 0===S?"":S,I=t.errorMessage,A=void 0===I?"not found!":I,k=t.enableInput,N=void 0===k||k,L=t.defaultHandler,D=void 0===L?null:L,F=_?e.createElement(m,{consoleFocused:o,showControlButtons:b,controlButtonLabels:g}):null,R=e.createElement(T,{caret:f,consoleFocused:o,prompt:E,commands:P,welcomeMessage:B,errorMessage:A,enableInput:N,showControlBar:_,defaultHandler:D});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}},F,R))}function B(t){var n=t.children;return e.createElement(i,null,e.createElement(s,null,n))}function I(t){return e.createElement(B,null,e.createElement(S,n({},t)))}var A=function(t){var n=t.children,r=t.useLocalStorage,o=void 0===r||r,a=e.useState(null),l=a[0],i=a[1],c={bufferedContent:null,commandsHistory:o?_():[],editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""},u=e.useReducer(v,c),s=u[0],d=u[1],m=e.useCallback((function(e){"SUBMIT"===e.type&&i(s.commandsHistory.length),d(e)}),[s.commandsHistory.length]);e.useEffect((function(){i(s.commandsHistory.length)}),[s.commandsHistory.length]);var f=e.useMemo((function(){return{send:m,store:s,getPreviousCommand:function(){if(0===l)return 0===s.commandsHistory.length?"":s.commandsHistory[0];var e=s.commandsHistory[l-1];return l>0&&i(l-1),e},getNextCommand:function(){if(l+1<=s.commandsHistory.length){var e=s.commandsHistory[l+1];return i(l+1),e}return""}}}),[l,m,s]);return e.createElement(b.Provider,{value:f},n)},k={ReactTerminal:I,TerminalContextProvider:A};export{I as ReactTerminal,A as TerminalContextProvider,k 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 l(e){try{c(r.next(e))}catch(e){a(e)}}function i(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(l,i)}c((r=r.apply(e,t||[])).next())}))}function o(e,t){var n,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(c){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(l=0)),l;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,r=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(o=l.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){l.label=i[1];break}if(6===i[0]&&l.label<o[1]){l.label=o[1],o=i;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(i);break}o[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}!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-module_terminalContainer__i6yCT {\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-module_controls__-Pz-7 {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px;\n}\n.index-module_controls__-Pz-7 .index-module_consoleCtrl__wASVf {\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-module_controls__-Pz-7 .index-module_close__Etu85 {\n background: var(--control-close-bg-color);\n}\n.index-module_controls__-Pz-7 .index-module_minimize__bT0-I {\n background: var(--control-minimize-bg-color);\n}\n.index-module_controls__-Pz-7 .index-module_maximize__mPPF7 {\n background: var(--control-maximize-bg-color);\n}\n\n.index-module_editor__CBDCJ {\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 caret-color: transparent;\n --scroll-bar-thumb-color: transparent;\n --scroll-bar-track-color: transparent;\n --scroll-bar-width: 10px;\n scrollbar-color: var(--scroll-bar-thumb-color) var(--scroll-bar-track-color);\n scrollbar-width: var(--scroll-bar-width);\n}\n.index-module_editor__CBDCJ::selection {\n background: transparent;\n}\n.index-module_editor__CBDCJ:focus, .index-module_editor__CBDCJ:hover {\n --scroll-bar-thumb-color: rgb(211 211 211 / 40%);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar {\n width: var(--scroll-bar-width);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar-track {\n background-color: var(--scroll-bar-track-color);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar-thumb {\n background-color: var(--scroll-bar-thumb-color);\n}\n.index-module_editor__CBDCJ .index-module_lineText__avQ48 {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px;\n}\n.index-module_editor__CBDCJ .index-module_preWhiteSpace__v4IYf {\n white-space: pre-wrap;\n}\n.index-module_editor__CBDCJ .index-module_preWhiteSpace__v4IYf:focus-visible {\n outline: none;\n}\n.index-module_editor__CBDCJ .index-module_textAfterCaret__Tts2A {\n z-index: 10;\n position: relative;\n display: inline-block;\n}\n.index-module_editor__CBDCJ .index-module_textAfterCaret__Tts2A::first-letter {\n color: var(--caret-letter-color);\n}\n.index-module_editor__CBDCJ .index-module_caret__YobLn {\n position: relative;\n}\n.index-module_editor__CBDCJ .index-module_caret__YobLn .index-module_caretAfter__SMMlh {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10;\n}\n@-moz-keyframes index-module_blink__l83VF {\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-module_blink__l83VF {\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-module_blink__l83VF {\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-module_blink__l83VF {\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-module_editor__CBDCJ a {\n color: #1a87b5;\n}\n\n.index-module_editorWithTopBar__opXWp {\n height: calc(100% - 46px);\n}\n\n.index-module_curvedTop__vzisj {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n\n#index-module_terminalContainer__i6yCT {\n height: 100%;\n}\n\n.index-module_terminal__EWHbJ {\n height: 100%;\n width: 100%;\n margin: auto;\n}\n.index-module_terminal--rounded__DZuxh {\n border-radius: 5px;\n}');var a={terminalContainer:"index-module_terminalContainer__i6yCT",controls:"index-module_controls__-Pz-7",consoleCtrl:"index-module_consoleCtrl__wASVf",close:"index-module_close__Etu85",minimize:"index-module_minimize__bT0-I",maximize:"index-module_maximize__mPPF7",editor:"index-module_editor__CBDCJ",lineText:"index-module_lineText__avQ48",preWhiteSpace:"index-module_preWhiteSpace__v4IYf",textAfterCaret:"index-module_textAfterCaret__Tts2A",caret:"index-module_caret__YobLn",caretAfter:"index-module_caretAfter__SMMlh",editorWithTopBar:"index-module_editorWithTopBar__opXWp",curvedTop:"index-module_curvedTop__vzisj",terminal:"index-module_terminal__EWHbJ","terminal--rounded":"index-module_terminal--rounded__DZuxh",blink:"index-module_blink__l83VF"},l=e.createContext(null),i=function(t){var n=t.children;return e.createElement(l.Provider,{value:a},n)},c={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),s=function(t){var r=t.children,o=n(n({},c),r.props.themes||{}),a=o[r.props.theme]||o.light;return e.createElement(u.Provider,{value:a},r)},d=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 m(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=["clear","cls"],p=function(e){return f.includes(e)},C=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),_="react-terminal-plus-commandHistory",x=function(){var e;try{var t=null!==(e=localStorage.getItem(_))&&void 0!==e?e:"[]";return JSON.parse(t)}catch(e){return console.error(e),[]}},h=function(e){var t=x();t.push(e);try{JSON.stringify(t).length>20&&(t=t.slice(50)),localStorage.setItem(_,JSON.stringify(t))}catch(n){console.error(n),t=[e],localStorage.setItem(_,JSON.stringify(t))}},b=e.createContext(null);function v(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":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=function(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))}([],e.commandsHistory,!0);return r&&r!==o[o.length-1]&&(o.push(r),h(r)),p(r)?n(n({},e),{commandsHistory:o,bufferedContent:null,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""}):n(n({},e),{commandsHistory:o,bufferedContent:t.loaderNode,currentLineStatus:"processing",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"TYPE":var a=g(e),l=a[0],i=a[1],c=y(x=l+t.text+i,v=e.caretPosition+1),u=c[0],s=c[1];return n(n({},e),{caretPosition:v,editorInput:x,textAfterCaret:s,textBeforeCaret:u});case"DELETE":var d=g(e),m=(l=d[0],i=d[1],y(x=l.slice(0,-1)+i,v=e.caretPosition-1));u=m[0],s=m[1];return n(n({},e),{editorInput:x,caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"COPY":return e;case"PASTE":var f=g(e),C=(l=f[0],i=f[1],y(x=l+t.text+i,v=e.caretPosition+t.text.length));u=C[0],s=C[1];return n(n({},e),{editorInput:x,caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"ARROW_UP":var _=y(x=t.previousCommand,v=t.previousCommand.length);u=_[0],s=_[1];return n(n({},e),{editorInput:x,caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"ARROW_DOWN":var x,b=y(x=t.nextCommand,v=t.nextCommand.length);u=b[0],s=b[1];return n(n({},e),{editorInput:x,caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"RESET_CARET_POSITION":return n(n({},e),{editorInput:"",textBeforeCaret:"",textAfterCaret:"",caretPosition:0});case"ARROW_LEFT":var v=e.caretPosition-1,E=y(e.editorInput,v);u=E[0],s=E[1];return n(n({},e),{caretPosition:v,textAfterCaret:s,textBeforeCaret:u});case"ARROW_RIGHT":v=e.caretPosition+1;var T=y(e.editorInput,v);u=T[0],s=T[1];return n(n({},e),{caretPosition:v,textAfterCaret:s,textBeforeCaret:u});default:throw new Error("Unhandled action type: ".concat(JSON.stringify(t)))}default:return e}}function g(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]]}function E(){var t=e.useContext(b);if(void 0===t)throw new Error("useTerminal must be used within a TerminalContextProvider");return t}var T=function(n,a,i,c,s,d,m){var f=e.useContext(l),C=e.useContext(u),_=E().store,x="processing"!==_.currentLineStatus?e.createElement(e.Fragment,null,e.createElement("span",{style:{color:C.themePromptColor}},i),e.createElement("div",{className:f.lineText},e.createElement("span",{className:f.preWhiteSpace},_.textBeforeCaret),a&&n?e.createElement("span",{className:f.caret},e.createElement("span",{className:f.caretAfter,style:{background:C.themeColor}})):null,e.createElement("span",{style:{"--caret-letter-color":C.themeBGColor},className:"".concat(f.preWhiteSpace," ").concat(f.textAfterCaret)},_.textAfterCaret))):e.createElement(e.Fragment,null,e.createElement("div",{className:f.lineText},a&&n?e.createElement("span",{className:f.caret},e.createElement("span",{className:f.caretAfter,style:{background:C.themeColor}})):null));return function(n){var a=n.consoleFocused,i=n.enableInput,c=n.commands,s=n.defaultHandler,d=n.errorMessage,m=n.prompt,f=e.useContext(l),C=e.useContext(u),_=E(),x=_.getPreviousCommand,h=_.getNextCommand,b=_.store,v=_.send,g=e.useRef(null),y=e.useCallback((function(){g.current&&g.current.cancel();var t=e.createElement(e.Fragment,null,b.bufferedContent,e.createElement("span",{style:{color:C.themePromptColor}},m),e.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),e.createElement("br",null));"processing"===b.currentLineStatus&&(t=e.createElement(e.Fragment,null,b.bufferedContent)),v({type:"CANCEL",cancelNode:t})}),[m,v,b.bufferedContent,b.currentLineStatus,b.editorInput,f.lineText,f.preWhiteSpace,C.themePromptColor]),T=e.useCallback((function(){return r(void 0,void 0,void 0,(function(){var n,r,a,l,i,u,_,x,h;return o(this,(function(o){switch(o.label){case 0:return n=b.editorInput.trim().split(" "),r=n[0],a=n.slice(1),l=b.editorInput.trim(),i="",u=e.createElement(e.Fragment,null,b.bufferedContent,e.createElement("span",{style:{color:C.themePromptColor}},m),e.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),e.createElement("br",null)),v({type:"SUBMIT",loaderNode:u,command:l}),p(l)?[2]:b.editorInput?(_=a.join(" "),l&&c[l]?"function"!=typeof(x=c[l])?[3,2]:(g.current=new t((function(e){e(x(_))})),[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,_))})),[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,_))})),[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,b.bufferedContent,e.createElement("span",{style:{color:C.themePromptColor}},m),e.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),i?e.createElement("span",null,e.createElement("br",null),i):null,e.createElement("br",null)),v({type:"SUBMIT_SUCCESS",successNode:h}),[2]}}))}))}),[v,b.bufferedContent,b.editorInput]),w=e.useCallback((function(e){if(a&&i){e.preventDefault();var t=e.key,n=null;if("Enter"===t)"processing"!==b.currentLineStatus&&T();else if("Backspace"===t)b.editorInput&&0!==b.editorInput.length&&v({type:"DELETE"});else if("ArrowUp"===t)(n=x())&&v({type:"ARROW_UP",previousCommand:n});else if("ArrowDown"===t)n=h(),v(n?{type:"ARROW_DOWN",nextCommand:n}:{type:"RESET_CARET_POSITION"});else if("ArrowLeft"===t)b.caretPosition>0&&v({type:"ARROW_LEFT"}),n=b.editorInput;else if("ArrowRight"===t)b.caretPosition<b.editorInput.length&&v({type:"ARROW_RIGHT"}),n=b.editorInput;else if((e.metaKey||e.ctrlKey)&&"l"===t.toLowerCase())v({type:"CLEAR"});else if((e.metaKey||e.ctrlKey)&&"v"===t.toLowerCase())navigator.clipboard.readText().then((function(e){v({type:"PASTE",text:e})}));else if((e.metaKey||e.ctrlKey)&&"c"===t.toLowerCase()){var r=window.getSelection().toString();r?navigator.clipboard.writeText(r).then((function(){v({type:"COPY"})})):y()}else t&&1===t.length&&v({type:"TYPE",text:t})}}),[y,a,i,h,x,T,v,b.caretPosition,b.currentLineStatus,b.editorInput]);e.useEffect((function(){return document.addEventListener("keydown",w),function(){document.removeEventListener("keydown",w)}}),[w])}({commands:c,errorMessage:s,defaultHandler:m,enableInput:d,prompt:i,consoleFocused:a}),x},w=function(t,n){e.useEffect((function(){n.current&&(n.current.scrollTop=n.current.scrollHeight)}),[t])};function P(t){var n=e.useRef(null),r=e.useContext(l),o=e.useContext(u),a=E(),i=a.store,c=a.send;w(i.bufferedContent,n);var s=t.enableInput,d=t.caret,m=t.consoleFocused,f=t.prompt,p=t.commands,C=t.welcomeMessage,_=t.errorMessage,x=t.showControlBar,h=t.defaultHandler,b=T(d,m,f,p,_,s,h);return e.createElement("div",{id:"terminalEditor",tabIndex:0,ref:n,onMouseDown:function(e){n.current&&2===e.button&&(n.current.contentEditable="true",setTimeout((function(){n.current.contentEditable="false"}),20))},onPaste:function(e){e.preventDefault(),c({type:"PASTE",text:e.clipboardData.getData("text")})},className:"".concat(r.editor," ").concat(x?null:r.curvedTop," ").concat(x?r.editorWithTopBar:null),style:{background:o.themeBGColor}},C,i.bufferedContent,b)}function S(t){var n=e.useRef(null),r=e.useState(!0),o=r[0],a=r[1],i=e.useContext(l),c=e.useContext(u);d(n,o,a);var s=t.caret,f=void 0===s||s,p=t.theme,C=void 0===p?"light":p,_=t.showControlBar,x=void 0===_||_,h=t.showControlButtons,b=void 0===h||h,v=t.controlButtonLabels,g=void 0===v?["close","minimize","maximize"]:v,y=t.prompt,E=void 0===y?">>>":y,T=t.commands,w=void 0===T?{}:T,S=t.welcomeMessage,B=void 0===S?"":S,A=t.errorMessage,I=void 0===A?"not found!":A,k=t.enableInput,N=void 0===k||k,D=t.defaultHandler,L=void 0===D?null:D,F=t.rounded,R=void 0!==F&&F?i["terminal--rounded"]:"",O=x?e.createElement(m,{consoleFocused:o,showControlButtons:b,controlButtonLabels:g}):null,W=e.createElement(P,{caret:f,consoleFocused:o,prompt:E,commands:w,welcomeMessage:B,errorMessage:I,enableInput:N,showControlBar:x,defaultHandler:L});return e.createElement("div",{ref:n,id:i.terminalContainer,className:i["theme--".concat(C)],"data-testid":"terminal"},e.createElement("div",{className:"".concat(i.terminal," ").concat(R),style:{background:c.themeToolbarColor,color:c.themeColor}},O,W))}function B(t){var n=t.children;return e.createElement(i,null,e.createElement(s,null,n))}function A(t){return e.createElement(B,null,e.createElement(S,n({},t)))}var I=function(t){var n=t.children,r=t.useLocalStorage,o=void 0===r||r,a=e.useState(null),l=a[0],i=a[1],c={bufferedContent:null,commandsHistory:o?x():[],editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""},u=e.useReducer(v,c),s=u[0],d=u[1],m=e.useCallback((function(e){"SUBMIT"===e.type&&i(s.commandsHistory.length),d(e)}),[s.commandsHistory.length]);e.useEffect((function(){i(s.commandsHistory.length)}),[s.commandsHistory.length]);var f=e.useMemo((function(){return{send:m,store:s,getPreviousCommand:function(){if(0===l)return 0===s.commandsHistory.length?"":s.commandsHistory[0];var e=s.commandsHistory[l-1];return l>0&&i(l-1),e},getNextCommand:function(){if(l+1<=s.commandsHistory.length){var e=s.commandsHistory[l+1];return i(l+1),e}return""}}}),[l,m,s]);return e.createElement(b.Provider,{value:f},n)},k={ReactTerminal:A,TerminalContextProvider:I};export{A as ReactTerminal,I as TerminalContextProvider,k 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 l(e){try{c(r.next(e))}catch(e){a(e)}}function i(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(l,i)}c((r=r.apply(e,t||[])).next())}))}function l(e,t){var n,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(c){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(l=0)),l;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,r=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(o=l.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){l.label=i[1];break}if(6===i[0]&&l.label<o[1]){l.label=o[1],o=i;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(i);break}o[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}!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-module_terminalContainer__i6yCT {\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-module_controls__-Pz-7 {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px;\n}\n.index-module_controls__-Pz-7 .index-module_consoleCtrl__wASVf {\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-module_controls__-Pz-7 .index-module_close__Etu85 {\n background: var(--control-close-bg-color);\n}\n.index-module_controls__-Pz-7 .index-module_minimize__bT0-I {\n background: var(--control-minimize-bg-color);\n}\n.index-module_controls__-Pz-7 .index-module_maximize__mPPF7 {\n background: var(--control-maximize-bg-color);\n}\n\n.index-module_editor__CBDCJ {\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 caret-color: transparent;\n --scroll-bar-thumb-color: transparent;\n --scroll-bar-track-color: transparent;\n --scroll-bar-width: 10px;\n scrollbar-color: var(--scroll-bar-thumb-color) var(--scroll-bar-track-color);\n scrollbar-width: var(--scroll-bar-width);\n}\n.index-module_editor__CBDCJ::selection {\n background: transparent;\n}\n.index-module_editor__CBDCJ:focus, .index-module_editor__CBDCJ:hover {\n --scroll-bar-thumb-color: rgb(211 211 211 / 40%);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar {\n width: var(--scroll-bar-width);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar-track {\n background-color: var(--scroll-bar-track-color);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar-thumb {\n background-color: var(--scroll-bar-thumb-color);\n}\n.index-module_editor__CBDCJ .index-module_lineText__avQ48 {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px;\n}\n.index-module_editor__CBDCJ .index-module_preWhiteSpace__v4IYf {\n white-space: pre-wrap;\n}\n.index-module_editor__CBDCJ .index-module_preWhiteSpace__v4IYf:focus-visible {\n outline: none;\n}\n.index-module_editor__CBDCJ .index-module_caret__YobLn {\n position: relative;\n}\n.index-module_editor__CBDCJ .index-module_caret__YobLn .index-module_caretAfter__SMMlh {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10;\n}\n@-moz-keyframes index-module_blink__l83VF {\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-module_blink__l83VF {\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-module_blink__l83VF {\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-module_blink__l83VF {\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-module_editor__CBDCJ a {\n color: #1a87b5;\n}\n\n.index-module_editorWithTopBar__opXWp {\n height: calc(100% - 46px);\n}\n\n.index-module_curvedTop__vzisj {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n\n#index-module_terminalContainer__i6yCT {\n height: 100%;\n}\n\n.index-module_terminal__EWHbJ {\n height: 100%;\n width: 100%;\n margin: auto;\n border-radius: 5px;\n}');var i={terminalContainer:"index-module_terminalContainer__i6yCT",controls:"index-module_controls__-Pz-7",consoleCtrl:"index-module_consoleCtrl__wASVf",close:"index-module_close__Etu85",minimize:"index-module_minimize__bT0-I",maximize:"index-module_maximize__mPPF7",editor:"index-module_editor__CBDCJ",lineText:"index-module_lineText__avQ48",preWhiteSpace:"index-module_preWhiteSpace__v4IYf",caret:"index-module_caret__YobLn",caretAfter:"index-module_caretAfter__SMMlh",editorWithTopBar:"index-module_editorWithTopBar__opXWp",curvedTop:"index-module_curvedTop__vzisj",terminal:"index-module_terminal__EWHbJ",blink:"index-module_blink__l83VF"},c=r.createContext(null),u=function(e){var t=e.children;return r.createElement(c.Provider,{value:i},t)},s={dark:{themeBGColor:"#022833",themeToolbarColor:"#131519",themeColor:"#839496",themePromptColor:"#a917a8"},light:{themeBGColor:"#fdf6e4",themeToolbarColor:"#d8d8d8",themeColor:"#333333",themePromptColor:"#a917a8"},dracula:{themeBGColor:"#272B36",themeToolbarColor:"#DBDBDB",themeColor:"#FFFEFC",themePromptColor:"#a917a8"},"material-dark":{themeBGColor:"#151515",themeToolbarColor:"#424242",themeColor:"#fff",themePromptColor:"#42A5F5"},"material-light":{themeBGColor:"#fafafa",themeToolbarColor:"#424242",themeColor:"#151515",themePromptColor:"#42A5F5"},"material-ocean":{themeBGColor:"#263238",themeToolbarColor:"#37474F",themeColor:"#fff",themePromptColor:"#C3D82C"},matrix:{themeBGColor:"#0D0208",themeToolbarColor:"#0D0208",themeColor:"#00FF41",themePromptColor:"#008F11"}},d=r.createContext(null),m=function(e){var t=e.children,n=o(o({},s),t.props.themes||{}),a=n[t.props.theme]||n.light;return r.createElement(d.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 p(e){var t=r.useContext(c),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=["clear","cls"],h=function(e){return C.includes(e)},_=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),x="react-terminal-plus-commandHistory",b=function(){var e;try{var t=null!==(e=localStorage.getItem(x))&&void 0!==e?e:"[]";return JSON.parse(t)}catch(e){return console.error(e),[]}},v=function(e){var t=b();t.push(e);try{JSON.stringify(t).length>20&&(t=t.slice(50)),localStorage.setItem(x,JSON.stringify(t))}catch(n){console.error(n),t=[e],localStorage.setItem(x,JSON.stringify(t))}},g=r.createContext(null);function y(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":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=function(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))}([],e.commandsHistory,!0);return n&&n!==r[r.length-1]&&(r.push(n),v(n)),h(n)?o(o({},e),{commandsHistory:r,bufferedContent:null,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""}):o(o({},e),{commandsHistory:r,bufferedContent:t.loaderNode,currentLineStatus:"processing",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"TYPE":var a=E(e),l=a[0],i=a[1],c=P(_=l+t.text+i,b=e.caretPosition+1),u=c[0],s=c[1];return o(o({},e),{caretPosition:b,editorInput:_,textAfterCaret:s,textBeforeCaret:u});case"DELETE":var d=E(e),m=(l=d[0],i=d[1],P(_=l.slice(0,-1)+i,b=e.caretPosition-1));u=m[0],s=m[1];return o(o({},e),{editorInput:_,caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"COPY":return e;case"PASTE":var f=E(e),p=(l=f[0],i=f[1],P(_=l+t.text+i,b=e.caretPosition+t.text.length));u=p[0],s=p[1];return o(o({},e),{editorInput:_,caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"ARROW_UP":var C=P(_=t.previousCommand,b=t.previousCommand.length);u=C[0],s=C[1];return o(o({},e),{editorInput:_,caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"ARROW_DOWN":var _,x=P(_=t.nextCommand,b=t.nextCommand.length);u=x[0],s=x[1];return o(o({},e),{editorInput:_,caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"RESET_CARET_POSITION":return o(o({},e),{editorInput:"",textBeforeCaret:"",textAfterCaret:"",caretPosition:0});case"ARROW_LEFT":var b=e.caretPosition-1,g=P(e.editorInput,b);u=g[0],s=g[1];return o(o({},e),{caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"ARROW_RIGHT":b=e.caretPosition+1;var y=P(e.editorInput,b);u=y[0],s=y[1];return o(o({},e),{caretPosition:b,textAfterCaret:s,textBeforeCaret:u});default:throw new Error("Unhandled action type: ".concat(JSON.stringify(t)))}default:return e}}function E(e){var t=_.splitStringAtIndex(e.editorInput,e.caretPosition);return[t[0],t[1]]}function P(e,t){var n=_.splitStringAtIndex(e,t);return[n[0],n[1]]}function w(){var e=r.useContext(g);if(void 0===e)throw new Error("useTerminal must be used within a TerminalContextProvider");return e}var T=function(e,n,o,i,u,s,m){var f=r.useContext(c),p=r.useContext(d),C=w().store,_="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,i=e.commands,u=e.defaultHandler,s=e.errorMessage,m=e.prompt,f=r.useContext(c),p=r.useContext(d),C=w(),_=C.getPreviousCommand,x=C.getNextCommand,b=C.store,v=C.send,g=r.useRef(null),y=r.useCallback((function(){g.current&&g.current.cancel();var e=r.createElement(r.Fragment,null,b.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},m),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),r.createElement("br",null));"processing"===b.currentLineStatus&&(e=r.createElement(r.Fragment,null,b.bufferedContent)),v({type:"CANCEL",cancelNode:e})}),[m,v,b.bufferedContent,b.currentLineStatus,b.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,c,d,C,_,x;return l(this,(function(l){switch(l.label){case 0:return e=b.editorInput.trim().split(" "),n=e[0],o=e.slice(1),a=b.editorInput.trim(),c="",d=r.createElement(r.Fragment,null,b.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},m),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),r.createElement("br",null)),v({type:"SUBMIT",loaderNode:d,command:a}),h(a)?[2]:b.editorInput?(C=o.join(" "),a&&i[a]?"function"!=typeof(_=i[a])?[3,2]:(g.current=new t.CancelablePromise((function(e){e(_(C))})),[4,g.current]):[3,4]):[3,9];case 1:return c=l.sent(),[3,3];case 2:c=_,l.label=3;case 3:return[3,9];case 4:return"function"!=typeof u?[3,6]:(g.current=new t.CancelablePromise((function(e){e(u(n,C))})),[4,g.current]);case 5:return c=l.sent(),[3,9];case 6:return"function"!=typeof s?[3,8]:(g.current=new t.CancelablePromise((function(e){e(s(n,C))})),[4,g.current]);case 7:return c=l.sent(),[3,9];case 8:c=s,l.label=9;case 9:return x=r.createElement(r.Fragment,null,b.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},m),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),c?r.createElement("span",null,r.createElement("br",null),c):null,r.createElement("br",null)),v({type:"SUBMIT_SUCCESS",successNode:x}),[2]}}))}))}),[v,b.bufferedContent,b.editorInput]),P=r.useCallback((function(e){if(n&&o){e.preventDefault();var t=e.key,r=null;if("Enter"===t)"processing"!==b.currentLineStatus&&E();else if("Backspace"===t)b.editorInput&&0!==b.editorInput.length&&v({type:"DELETE"});else if("ArrowUp"===t)(r=_())&&v({type:"ARROW_UP",previousCommand:r});else if("ArrowDown"===t)r=x(),v(r?{type:"ARROW_DOWN",nextCommand:r}:{type:"RESET_CARET_POSITION"});else if("ArrowLeft"===t)b.caretPosition>0&&v({type:"ARROW_LEFT"}),r=b.editorInput;else if("ArrowRight"===t)b.caretPosition<b.editorInput.length&&v({type:"ARROW_RIGHT"}),r=b.editorInput;else if((e.metaKey||e.ctrlKey)&&"l"===t.toLowerCase())v({type:"CLEAR"});else if((e.metaKey||e.ctrlKey)&&"v"===t.toLowerCase())navigator.clipboard.readText().then((function(e){v({type:"PASTE",text:e})}));else if((e.metaKey||e.ctrlKey)&&"c"===t.toLowerCase()){var a=window.getSelection().toString();a?navigator.clipboard.writeText(a).then((function(){v({type:"COPY"})})):y()}else t&&1===t.length&&v({type:"TYPE",text:t})}}),[y,n,o,x,_,E,v,b.caretPosition,b.currentLineStatus,b.editorInput]);r.useEffect((function(){return document.addEventListener("keydown",P),function(){document.removeEventListener("keydown",P)}}),[P])}({commands:i,errorMessage:u,defaultHandler:m,enableInput:s,prompt:o,consoleFocused:n}),_},S=function(e,t){r.useEffect((function(){t.current&&(t.current.scrollTop=t.current.scrollHeight)}),[e])};function B(e){var t=r.useRef(null),n=r.useContext(c),o=r.useContext(d),a=w(),l=a.store,i=a.send;S(l.bufferedContent,t);var u=e.enableInput,s=e.caret,m=e.consoleFocused,f=e.prompt,p=e.commands,C=e.welcomeMessage,h=e.errorMessage,_=e.showControlBar,x=e.defaultHandler,b=T(s,m,f,p,h,u,x);return r.createElement("div",{id:"terminalEditor",tabIndex:0,ref:t,onMouseDown:function(e){t.current&&2===e.button&&(t.current.contentEditable="true",setTimeout((function(){t.current.contentEditable="false"}),20))},onPaste:function(e){e.preventDefault(),i({type:"PASTE",text:e.clipboardData.getData("text")})},className:"".concat(n.editor," ").concat(_?null:n.curvedTop," ").concat(_?n.editorWithTopBar:null),style:{background:o.themeBGColor}},C,l.bufferedContent,b)}function I(e){var t=r.useRef(null),n=r.useState(!0),o=n[0],a=n[1],l=r.useContext(c),i=r.useContext(d);f(t,o,a);var u=e.caret,s=void 0===u||u,m=e.theme,C=void 0===m?"light":m,h=e.showControlBar,_=void 0===h||h,x=e.showControlButtons,b=void 0===x||x,v=e.controlButtonLabels,g=void 0===v?["close","minimize","maximize"]:v,y=e.prompt,E=void 0===y?">>>":y,P=e.commands,w=void 0===P?{}:P,T=e.welcomeMessage,S=void 0===T?"":T,I=e.errorMessage,A=void 0===I?"not found!":I,k=e.enableInput,N=void 0===k||k,L=e.defaultHandler,D=void 0===L?null:L,O=_?r.createElement(p,{consoleFocused:o,showControlButtons:b,controlButtonLabels:g}):null,R=r.createElement(B,{caret:s,consoleFocused:o,prompt:E,commands:w,welcomeMessage:S,errorMessage:A,enableInput:N,showControlBar:_,defaultHandler:D});return r.createElement("div",{ref:t,id:l.terminalContainer,className:l["theme--".concat(C)],"data-testid":"terminal"},r.createElement("div",{className:"".concat(l.terminal),style:{background:i.themeToolbarColor,color:i.themeColor}},O,R))}function A(e){var t=e.children;return r.createElement(u,null,r.createElement(m,null,t))}function k(e){return r.createElement(A,null,r.createElement(I,o({},e)))}var N=function(e){var t=e.children,n=e.useLocalStorage,o=void 0===n||n,a=r.useState(null),l=a[0],i=a[1],c={bufferedContent:null,commandsHistory:o?b():[],editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""},u=r.useReducer(y,c),s=u[0],d=u[1],m=r.useCallback((function(e){"SUBMIT"===e.type&&i(s.commandsHistory.length),d(e)}),[s.commandsHistory.length]);r.useEffect((function(){i(s.commandsHistory.length)}),[s.commandsHistory.length]);var f=r.useMemo((function(){return{send:m,store:s,getPreviousCommand:function(){if(0===l)return 0===s.commandsHistory.length?"":s.commandsHistory[0];var e=s.commandsHistory[l-1];return l>0&&i(l-1),e},getNextCommand:function(){if(l+1<=s.commandsHistory.length){var e=s.commandsHistory[l+1];return i(l+1),e}return""}}}),[l,m,s]);return r.createElement(g.Provider,{value:f},t)},L={ReactTerminal:k,TerminalContextProvider:N};exports.ReactTerminal=k,exports.TerminalContextProvider=N,exports.default=L; | ||
"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 l(e){try{c(r.next(e))}catch(e){a(e)}}function i(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(l,i)}c((r=r.apply(e,t||[])).next())}))}function l(e,t){var n,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(c){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(l=0)),l;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,r=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(o=l.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){l.label=i[1];break}if(6===i[0]&&l.label<o[1]){l.label=o[1],o=i;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(i);break}o[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}!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-module_terminalContainer__i6yCT {\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-module_controls__-Pz-7 {\n text-align: left;\n height: 26px;\n position: relative;\n top: 4px;\n margin-left: 4px;\n}\n.index-module_controls__-Pz-7 .index-module_consoleCtrl__wASVf {\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-module_controls__-Pz-7 .index-module_close__Etu85 {\n background: var(--control-close-bg-color);\n}\n.index-module_controls__-Pz-7 .index-module_minimize__bT0-I {\n background: var(--control-minimize-bg-color);\n}\n.index-module_controls__-Pz-7 .index-module_maximize__mPPF7 {\n background: var(--control-maximize-bg-color);\n}\n\n.index-module_editor__CBDCJ {\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 caret-color: transparent;\n --scroll-bar-thumb-color: transparent;\n --scroll-bar-track-color: transparent;\n --scroll-bar-width: 10px;\n scrollbar-color: var(--scroll-bar-thumb-color) var(--scroll-bar-track-color);\n scrollbar-width: var(--scroll-bar-width);\n}\n.index-module_editor__CBDCJ::selection {\n background: transparent;\n}\n.index-module_editor__CBDCJ:focus, .index-module_editor__CBDCJ:hover {\n --scroll-bar-thumb-color: rgb(211 211 211 / 40%);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar {\n width: var(--scroll-bar-width);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar-track {\n background-color: var(--scroll-bar-track-color);\n}\n.index-module_editor__CBDCJ::-webkit-scrollbar-thumb {\n background-color: var(--scroll-bar-thumb-color);\n}\n.index-module_editor__CBDCJ .index-module_lineText__avQ48 {\n display: inline;\n position: relative;\n top: -1px;\n margin-left: 8px;\n}\n.index-module_editor__CBDCJ .index-module_preWhiteSpace__v4IYf {\n white-space: pre-wrap;\n}\n.index-module_editor__CBDCJ .index-module_preWhiteSpace__v4IYf:focus-visible {\n outline: none;\n}\n.index-module_editor__CBDCJ .index-module_textAfterCaret__Tts2A {\n z-index: 10;\n position: relative;\n display: inline-block;\n}\n.index-module_editor__CBDCJ .index-module_textAfterCaret__Tts2A::first-letter {\n color: var(--caret-letter-color);\n}\n.index-module_editor__CBDCJ .index-module_caret__YobLn {\n position: relative;\n}\n.index-module_editor__CBDCJ .index-module_caret__YobLn .index-module_caretAfter__SMMlh {\n content: "";\n position: absolute;\n top: 2px;\n width: 10px;\n height: 22px;\n z-index: 10;\n}\n@-moz-keyframes index-module_blink__l83VF {\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-module_blink__l83VF {\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-module_blink__l83VF {\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-module_blink__l83VF {\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-module_editor__CBDCJ a {\n color: #1a87b5;\n}\n\n.index-module_editorWithTopBar__opXWp {\n height: calc(100% - 46px);\n}\n\n.index-module_curvedTop__vzisj {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n\n#index-module_terminalContainer__i6yCT {\n height: 100%;\n}\n\n.index-module_terminal__EWHbJ {\n height: 100%;\n width: 100%;\n margin: auto;\n}\n.index-module_terminal--rounded__DZuxh {\n border-radius: 5px;\n}');var i={terminalContainer:"index-module_terminalContainer__i6yCT",controls:"index-module_controls__-Pz-7",consoleCtrl:"index-module_consoleCtrl__wASVf",close:"index-module_close__Etu85",minimize:"index-module_minimize__bT0-I",maximize:"index-module_maximize__mPPF7",editor:"index-module_editor__CBDCJ",lineText:"index-module_lineText__avQ48",preWhiteSpace:"index-module_preWhiteSpace__v4IYf",textAfterCaret:"index-module_textAfterCaret__Tts2A",caret:"index-module_caret__YobLn",caretAfter:"index-module_caretAfter__SMMlh",editorWithTopBar:"index-module_editorWithTopBar__opXWp",curvedTop:"index-module_curvedTop__vzisj",terminal:"index-module_terminal__EWHbJ","terminal--rounded":"index-module_terminal--rounded__DZuxh",blink:"index-module_blink__l83VF"},c=r.createContext(null),u=function(e){var t=e.children;return r.createElement(c.Provider,{value:i},t)},s={dark:{themeBGColor:"#022833",themeToolbarColor:"#131519",themeColor:"#839496",themePromptColor:"#a917a8"},light:{themeBGColor:"#fdf6e4",themeToolbarColor:"#d8d8d8",themeColor:"#333333",themePromptColor:"#a917a8"},dracula:{themeBGColor:"#272B36",themeToolbarColor:"#DBDBDB",themeColor:"#FFFEFC",themePromptColor:"#a917a8"},"material-dark":{themeBGColor:"#151515",themeToolbarColor:"#424242",themeColor:"#fff",themePromptColor:"#42A5F5"},"material-light":{themeBGColor:"#fafafa",themeToolbarColor:"#424242",themeColor:"#151515",themePromptColor:"#42A5F5"},"material-ocean":{themeBGColor:"#263238",themeToolbarColor:"#37474F",themeColor:"#fff",themePromptColor:"#C3D82C"},matrix:{themeBGColor:"#0D0208",themeToolbarColor:"#0D0208",themeColor:"#00FF41",themePromptColor:"#008F11"}},d=r.createContext(null),m=function(e){var t=e.children,n=o(o({},s),t.props.themes||{}),a=n[t.props.theme]||n.light;return r.createElement(d.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 p(e){var t=r.useContext(c),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=["clear","cls"],_=function(e){return C.includes(e)},x=function(){function e(){}return e.splitStringAtIndex=function(e,t){return e?[e.substring(0,t),e.substring(t)]:["",""]},e}(),h="react-terminal-plus-commandHistory",b=function(){var e;try{var t=null!==(e=localStorage.getItem(h))&&void 0!==e?e:"[]";return JSON.parse(t)}catch(e){return console.error(e),[]}},v=function(e){var t=b();t.push(e);try{JSON.stringify(t).length>20&&(t=t.slice(50)),localStorage.setItem(h,JSON.stringify(t))}catch(n){console.error(n),t=[e],localStorage.setItem(h,JSON.stringify(t))}},g=r.createContext(null);function y(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":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=function(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))}([],e.commandsHistory,!0);return n&&n!==r[r.length-1]&&(r.push(n),v(n)),_(n)?o(o({},e),{commandsHistory:r,bufferedContent:null,editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""}):o(o({},e),{commandsHistory:r,bufferedContent:t.loaderNode,currentLineStatus:"processing",editorInput:"",caretPosition:0,textBeforeCaret:"",textAfterCaret:""});case"TYPE":var a=E(e),l=a[0],i=a[1],c=P(x=l+t.text+i,b=e.caretPosition+1),u=c[0],s=c[1];return o(o({},e),{caretPosition:b,editorInput:x,textAfterCaret:s,textBeforeCaret:u});case"DELETE":var d=E(e),m=(l=d[0],i=d[1],P(x=l.slice(0,-1)+i,b=e.caretPosition-1));u=m[0],s=m[1];return o(o({},e),{editorInput:x,caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"COPY":return e;case"PASTE":var f=E(e),p=(l=f[0],i=f[1],P(x=l+t.text+i,b=e.caretPosition+t.text.length));u=p[0],s=p[1];return o(o({},e),{editorInput:x,caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"ARROW_UP":var C=P(x=t.previousCommand,b=t.previousCommand.length);u=C[0],s=C[1];return o(o({},e),{editorInput:x,caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"ARROW_DOWN":var x,h=P(x=t.nextCommand,b=t.nextCommand.length);u=h[0],s=h[1];return o(o({},e),{editorInput:x,caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"RESET_CARET_POSITION":return o(o({},e),{editorInput:"",textBeforeCaret:"",textAfterCaret:"",caretPosition:0});case"ARROW_LEFT":var b=e.caretPosition-1,g=P(e.editorInput,b);u=g[0],s=g[1];return o(o({},e),{caretPosition:b,textAfterCaret:s,textBeforeCaret:u});case"ARROW_RIGHT":b=e.caretPosition+1;var y=P(e.editorInput,b);u=y[0],s=y[1];return o(o({},e),{caretPosition:b,textAfterCaret:s,textBeforeCaret:u});default:throw new Error("Unhandled action type: ".concat(JSON.stringify(t)))}default:return e}}function E(e){var t=x.splitStringAtIndex(e.editorInput,e.caretPosition);return[t[0],t[1]]}function P(e,t){var n=x.splitStringAtIndex(e,t);return[n[0],n[1]]}function T(){var e=r.useContext(g);if(void 0===e)throw new Error("useTerminal must be used within a TerminalContextProvider");return e}var w=function(e,n,o,i,u,s,m){var f=r.useContext(c),p=r.useContext(d),C=T().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",{style:{"--caret-letter-color":p.themeBGColor},className:"".concat(f.preWhiteSpace," ").concat(f.textAfterCaret)},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,i=e.commands,u=e.defaultHandler,s=e.errorMessage,m=e.prompt,f=r.useContext(c),p=r.useContext(d),C=T(),x=C.getPreviousCommand,h=C.getNextCommand,b=C.store,v=C.send,g=r.useRef(null),y=r.useCallback((function(){g.current&&g.current.cancel();var e=r.createElement(r.Fragment,null,b.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},m),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),r.createElement("br",null));"processing"===b.currentLineStatus&&(e=r.createElement(r.Fragment,null,b.bufferedContent)),v({type:"CANCEL",cancelNode:e})}),[m,v,b.bufferedContent,b.currentLineStatus,b.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,c,d,C,x,h;return l(this,(function(l){switch(l.label){case 0:return e=b.editorInput.trim().split(" "),n=e[0],o=e.slice(1),a=b.editorInput.trim(),c="",d=r.createElement(r.Fragment,null,b.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},m),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),r.createElement("br",null)),v({type:"SUBMIT",loaderNode:d,command:a}),_(a)?[2]:b.editorInput?(C=o.join(" "),a&&i[a]?"function"!=typeof(x=i[a])?[3,2]:(g.current=new t.CancelablePromise((function(e){e(x(C))})),[4,g.current]):[3,4]):[3,9];case 1:return c=l.sent(),[3,3];case 2:c=x,l.label=3;case 3:return[3,9];case 4:return"function"!=typeof u?[3,6]:(g.current=new t.CancelablePromise((function(e){e(u(n,C))})),[4,g.current]);case 5:return c=l.sent(),[3,9];case 6:return"function"!=typeof s?[3,8]:(g.current=new t.CancelablePromise((function(e){e(s(n,C))})),[4,g.current]);case 7:return c=l.sent(),[3,9];case 8:c=s,l.label=9;case 9:return h=r.createElement(r.Fragment,null,b.bufferedContent,r.createElement("span",{style:{color:p.themePromptColor}},m),r.createElement("span",{className:"".concat(f.lineText," ").concat(f.preWhiteSpace)},b.editorInput),c?r.createElement("span",null,r.createElement("br",null),c):null,r.createElement("br",null)),v({type:"SUBMIT_SUCCESS",successNode:h}),[2]}}))}))}),[v,b.bufferedContent,b.editorInput]),P=r.useCallback((function(e){if(n&&o){e.preventDefault();var t=e.key,r=null;if("Enter"===t)"processing"!==b.currentLineStatus&&E();else if("Backspace"===t)b.editorInput&&0!==b.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)b.caretPosition>0&&v({type:"ARROW_LEFT"}),r=b.editorInput;else if("ArrowRight"===t)b.caretPosition<b.editorInput.length&&v({type:"ARROW_RIGHT"}),r=b.editorInput;else if((e.metaKey||e.ctrlKey)&&"l"===t.toLowerCase())v({type:"CLEAR"});else if((e.metaKey||e.ctrlKey)&&"v"===t.toLowerCase())navigator.clipboard.readText().then((function(e){v({type:"PASTE",text:e})}));else if((e.metaKey||e.ctrlKey)&&"c"===t.toLowerCase()){var a=window.getSelection().toString();a?navigator.clipboard.writeText(a).then((function(){v({type:"COPY"})})):y()}else t&&1===t.length&&v({type:"TYPE",text:t})}}),[y,n,o,h,x,E,v,b.caretPosition,b.currentLineStatus,b.editorInput]);r.useEffect((function(){return document.addEventListener("keydown",P),function(){document.removeEventListener("keydown",P)}}),[P])}({commands:i,errorMessage:u,defaultHandler:m,enableInput:s,prompt:o,consoleFocused:n}),x},S=function(e,t){r.useEffect((function(){t.current&&(t.current.scrollTop=t.current.scrollHeight)}),[e])};function B(e){var t=r.useRef(null),n=r.useContext(c),o=r.useContext(d),a=T(),l=a.store,i=a.send;S(l.bufferedContent,t);var u=e.enableInput,s=e.caret,m=e.consoleFocused,f=e.prompt,p=e.commands,C=e.welcomeMessage,_=e.errorMessage,x=e.showControlBar,h=e.defaultHandler,b=w(s,m,f,p,_,u,h);return r.createElement("div",{id:"terminalEditor",tabIndex:0,ref:t,onMouseDown:function(e){t.current&&2===e.button&&(t.current.contentEditable="true",setTimeout((function(){t.current.contentEditable="false"}),20))},onPaste:function(e){e.preventDefault(),i({type:"PASTE",text:e.clipboardData.getData("text")})},className:"".concat(n.editor," ").concat(x?null:n.curvedTop," ").concat(x?n.editorWithTopBar:null),style:{background:o.themeBGColor}},C,l.bufferedContent,b)}function A(e){var t=r.useRef(null),n=r.useState(!0),o=n[0],a=n[1],l=r.useContext(c),i=r.useContext(d);f(t,o,a);var u=e.caret,s=void 0===u||u,m=e.theme,C=void 0===m?"light":m,_=e.showControlBar,x=void 0===_||_,h=e.showControlButtons,b=void 0===h||h,v=e.controlButtonLabels,g=void 0===v?["close","minimize","maximize"]:v,y=e.prompt,E=void 0===y?">>>":y,P=e.commands,T=void 0===P?{}:P,w=e.welcomeMessage,S=void 0===w?"":w,A=e.errorMessage,I=void 0===A?"not found!":A,k=e.enableInput,D=void 0===k||k,N=e.defaultHandler,L=void 0===N?null:N,O=e.rounded,R=void 0!==O&&O?l["terminal--rounded"]:"",F=x?r.createElement(p,{consoleFocused:o,showControlButtons:b,controlButtonLabels:g}):null,W=r.createElement(B,{caret:s,consoleFocused:o,prompt:E,commands:T,welcomeMessage:S,errorMessage:I,enableInput:D,showControlBar:x,defaultHandler:L});return r.createElement("div",{ref:t,id:l.terminalContainer,className:l["theme--".concat(C)],"data-testid":"terminal"},r.createElement("div",{className:"".concat(l.terminal," ").concat(R),style:{background:i.themeToolbarColor,color:i.themeColor}},F,W))}function I(e){var t=e.children;return r.createElement(u,null,r.createElement(m,null,t))}function k(e){return r.createElement(I,null,r.createElement(A,o({},e)))}var D=function(e){var t=e.children,n=e.useLocalStorage,o=void 0===n||n,a=r.useState(null),l=a[0],i=a[1],c={bufferedContent:null,commandsHistory:o?b():[],editorInput:"",currentLineStatus:"idle",caretPosition:0,textBeforeCaret:"",textAfterCaret:""},u=r.useReducer(y,c),s=u[0],d=u[1],m=r.useCallback((function(e){"SUBMIT"===e.type&&i(s.commandsHistory.length),d(e)}),[s.commandsHistory.length]);r.useEffect((function(){i(s.commandsHistory.length)}),[s.commandsHistory.length]);var f=r.useMemo((function(){return{send:m,store:s,getPreviousCommand:function(){if(0===l)return 0===s.commandsHistory.length?"":s.commandsHistory[0];var e=s.commandsHistory[l-1];return l>0&&i(l-1),e},getNextCommand:function(){if(l+1<=s.commandsHistory.length){var e=s.commandsHistory[l+1];return i(l+1),e}return""}}}),[l,m,s]);return r.createElement(g.Provider,{value:f},t)},N={ReactTerminal:k,TerminalContextProvider:D};exports.ReactTerminal=k,exports.TerminalContextProvider=D,exports.default=N; |
@@ -21,2 +21,3 @@ import * as React from "react"; | ||
errorMessage?: TerminalMessage; | ||
rounded?: boolean; | ||
themes?: Record<ThemesT, ThemeSchema>; | ||
@@ -23,0 +24,0 @@ theme?: NoInfer<ThemesT> | DefaultThemes; |
@@ -6,3 +6,3 @@ { | ||
}, | ||
"version": "0.0.12", | ||
"version": "0.0.13", | ||
"description": "A fork of the the 'react-terminal' package, with some extra features - react-terminal-plus", | ||
@@ -9,0 +9,0 @@ "main": "dist/index.js", |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
56787
2.46%402
1.26%