UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime

2 lines (1 loc) 4.17 kB
this.primereact=this.primereact||{},this.primereact.terminal=function(e,t,r,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=a(t);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},i.apply(this,arguments)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function c(e){if(Array.isArray(e))return o(e)}function u(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function s(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){return c(e)||u(e)||s(e)||m()}function p(e){if(Array.isArray(e))return e}function y(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l=[],i=!0,o=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(l.push(n.value),!t||l.length!==t);i=!0);}catch(e){o=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(o)throw a}}return l}}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function v(e,t){return p(e)||y(e,t)||s(e,t)||d()}var b=l.memo(l.forwardRef((function(e,t){var a=v(l.useState(""),2),o=a[0],c=a[1],u=v(l.useState([]),2),s=u[0],m=u[1],p=v(l.useState(0),2),y=p[0],d=p[1],h=v(l.useState(""),2),g=h[0],E=h[1],S=l.useRef(null),w=l.useRef(null),j=l.useRef(!1),O=function(e){c(e.target.value)},N=function(e){switch(e.which||e.keyCode){case 38:if(s&&s.length){var t=y-1<0?s.length-1:y-1,r=s[t];d(t),c(r.text)}break;case 13:if(o){var n=f(s);n.push({text:o}),d((function(e){return e+1})),c(""),m(n),E(o),j.current=!0}}};l.useImperativeHandle(t,(function(){return{props:e,getElement:function(){return S.current}}})),l.useEffect((function(){var e=function(e){if(s&&s.length>0){var t=f(s);t[t.length-1].response=e,m(t)}},t=function(){m([]),d(0)};return r.TerminalService.on("response",e),r.TerminalService.on("clear",t),function(){r.TerminalService.off("response",e),r.TerminalService.off("clear",t)}}),[s]),l.useEffect((function(){j.current&&(r.TerminalService.emit("command",g),j.current=!1),S.current.scrollTop=S.current.scrollHeight}));var T=function(t,r){var n=t.text,a=t.response;return l.createElement("div",{key:n+"_"+r},l.createElement("span",{className:"p-terminal-prompt"},e.prompt," "),l.createElement("span",{className:"p-terminal-command"},n),l.createElement("div",{className:"p-terminal-response"},a))},A=n.ObjectUtils.findDiffKeys(e,b.defaultProps),P=n.classNames("p-terminal p-component",e.className),_=e.welcomeMessage?l.createElement("div",null,e.welcomeMessage):null,I=function(){var e=s.map(T);return l.createElement("div",{className:"p-terminal-content"},e)}(),M=l.createElement("div",{className:"p-terminal-prompt-container"},l.createElement("span",{className:"p-terminal-prompt"},e.prompt," "),l.createElement("input",{ref:w,type:"text",value:o,className:"p-terminal-input",autoComplete:"off",onChange:O,onKeyDown:N}));return l.createElement("div",i({ref:S,id:e.id,className:P,style:e.style},A,{onClick:function(){n.DomHandler.focus(w.current)}}),_,I,M)})));return b.displayName="Terminal",b.defaultProps={__TYPE:"Terminal",id:null,style:null,className:null,welcomeMessage:null,prompt:null},e.Terminal=b,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.terminalservice,primereact.utils);