UNPKG

primevue

Version:

PrimeVue is an open source UI library for Vue 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 PrimeBloc

2 lines (1 loc) 2.73 kB
"use strict";var e=require("primevue/terminalservice"),t=require("primevue/basecomponent"),n=require("primevue/terminal/style"),o=require("vue");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(e),m={name:"Terminal",extends:{name:"BaseTerminal",extends:r(t).default,props:{welcomeMessage:{type:String,default:null},prompt:{type:String,default:null}},style:r(n).default,provide:function(){return{$parentInstance:this}}},data:function(){return{commandText:null,commands:[]}},mounted:function(){s.default.on("response",this.responseListener),this.$refs.input.focus()},updated:function(){this.$el.scrollTop=this.$el.scrollHeight},beforeUnmount:function(){s.default.off("response",this.responseListener)},methods:{onClick:function(){this.$refs.input.focus()},onKeydown:function(e){"Enter"!==e.code&&"NumpadEnter"!==e.code||!this.commandText||(this.commands.push({text:this.commandText}),s.default.emit("command",this.commandText),this.commandText="")},responseListener:function(e){this.commands[this.commands.length-1].response=e}}};m.render=function(e,t,n,r,s,m){return o.openBlock(),o.createElementBlock("div",o.mergeProps({class:e.cx("root"),onClick:t[2]||(t[2]=function(){return m.onClick&&m.onClick.apply(m,arguments)})},e.ptm("root"),{"data-pc-name":"terminal"}),[e.welcomeMessage?(o.openBlock(),o.createElementBlock("div",o.normalizeProps(o.mergeProps({key:0},e.ptm("welcomeMessage"))),o.toDisplayString(e.welcomeMessage),17)):o.createCommentVNode("",!0),o.createElementVNode("div",o.mergeProps({class:e.cx("content")},e.ptm("content")),[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.commands,(function(t,n){return o.openBlock(),o.createElementBlock("div",o.mergeProps({key:t.text+n.toString()},e.ptm("commands")),[o.createElementVNode("span",o.mergeProps({class:e.cx("prompt")},e.ptm("prompt")),o.toDisplayString(e.prompt),17),o.createElementVNode("span",o.mergeProps({class:e.cx("command")},e.ptm("command")),o.toDisplayString(t.text),17),o.createElementVNode("div",o.mergeProps({class:e.cx("response"),"aria-live":"polite"},e.ptm("response")),o.toDisplayString(t.response),17)],16)})),128))],16),o.createElementVNode("div",o.mergeProps({class:e.cx("container")},e.ptm("container")),[o.createElementVNode("span",o.mergeProps({class:e.cx("prompt")},e.ptm("prompt")),o.toDisplayString(e.prompt),17),o.withDirectives(o.createElementVNode("input",o.mergeProps({ref:"input","onUpdate:modelValue":t[0]||(t[0]=function(e){return s.commandText=e}),type:"text",class:e.cx("commandText"),autocomplete:"off",onKeydown:t[1]||(t[1]=function(){return m.onKeydown&&m.onKeydown.apply(m,arguments)})},e.ptm("commandText")),null,16),[[o.vModelText,s.commandText]])],16)],16)},module.exports=m;