primevue-mirror/doc/terminal/pt/PTDoc.vue

186 lines
5.1 KiB
Vue

<template>
<DocSectionText v-bind="$attrs" :level="2" />
<div class="card">
<p>Enter "<strong>date</strong>" to display the current date, "<strong>greet {0}</strong>" for a message and "<strong>random</strong>" to get a random number.</p>
<Terminal
welcomeMessage="Welcome to PrimeVue"
prompt="primevue $"
:pt="{
root: { class: 'surface-900 text-white' },
command: { class: 'text-blue-500' },
prompt: { class: 'text-yellow-500' },
response: { class: 'text-purple-500' }
}"
/>
</div>
<DocSectionCode :code="code" />
</template>
<script>
import TerminalService from 'primevue/terminalservice';
export default {
data() {
return {
code: {
basic: `
<Terminal
welcomeMessage="Welcome to PrimeVue"
prompt="primevue $"
:pt="{
root: { class: 'surface-900 text-white' },
command: { class: 'text-blue-500' },
prompt: { class: 'text-yellow-500' },
response: { class: 'text-purple-500' }
}"
/>
`,
options: `
<template>
<div>
<p>Enter "date" to display the current date, "greet {0}" for a message and "random" to get a random number.</p>
<Terminal
welcomeMessage="Welcome to PrimeVue"
prompt="primevue $"
:pt="{
root: { class: 'surface-900 text-white' },
command: { class: 'text-blue-500' },
prompt: { class: 'text-yellow-500' },
response: { class: 'text-purple-500' }
}"
/>
</div>
</template>
<script>
import TerminalService from "primevue/terminalservice";
export default {
methods: {
commandHandler(text) {
let response;
let argsIndex = text.indexOf(' ');
let command = argsIndex !== -1 ? text.substring(0, argsIndex) : text;
switch(command) {
case "date":
response = 'Today is ' + new Date().toDateString();
break;
case "greet":
response = 'Hola ' + text.substring(argsIndex + 1);
break;
case "random":
response = Math.floor(Math.random() * 100);
break;
default:
response = "Unknown command: " + command;
}
TerminalService.emit('response', response);
}
},
mounted() {
TerminalService.on('command', this.commandHandler);
},
beforeUnmount() {
TerminalService.off('command', this.commandHandler);
}
}
<\/script>
`,
composition: `
<template>
<div>
<p>Enter "date" to display the current date, "greet {0}" for a message and "random" to get a random number.</p>
<Terminal
welcomeMessage="Welcome to PrimeVue"
prompt="primevue $"
:pt="{
root: { class: 'surface-900 text-white' },
command: { class: 'text-blue-500' },
prompt: { class: 'text-yellow-500' },
response: { class: 'text-purple-500' }
}"
/>
</div>
</template>
<script setup>
import { onMounted, onBeforeUnmount } from 'vue';
import TerminalService from "primevue/terminalservice";
onMounted(() => {
TerminalService.on('command', commandHandler);
})
onBeforeUnmount(() => {
TerminalService.off('command', commandHandler);
})
const commandHandler = (text) => {
let response;
let argsIndex = text.indexOf(' ');
let command = argsIndex !== -1 ? text.substring(0, argsIndex) : text;
switch(command) {
case "date":
response = 'Today is ' + new Date().toDateString();
break;
case "greet":
response = 'Hola ' + text.substring(argsIndex + 1);
break;
case "random":
response = Math.floor(Math.random() * 100);
break;
default:
response = "Unknown command: " + command;
}
TerminalService.emit('response', response);
}
<\/script>
`
}
};
},
mounted() {
TerminalService.on('command', this.commandHandler);
},
beforeUnmount() {
TerminalService.off('command', this.commandHandler);
},
methods: {
commandHandler(text) {
let response;
let argsIndex = text.indexOf(' ');
let command = argsIndex !== -1 ? text.substring(0, argsIndex) : text;
switch (command) {
case 'date':
response = 'Today is ' + new Date().toDateString();
break;
case 'greet':
response = 'Hola ' + text.substring(argsIndex + 1);
break;
case 'random':
response = Math.floor(Math.random() * 100);
break;
default:
response = 'Unknown command: ' + command;
}
TerminalService.emit('response', response);
}
}
};
</script>