add primevue splitter

This commit is contained in:
2022-10-26 09:50:18 +02:00
parent 31f1a19807
commit f3a875f489
5 changed files with 68 additions and 15 deletions

28
package-lock.json generated
View File

@@ -12,6 +12,7 @@
"@codemirror/theme-one-dark": "^6.1.0", "@codemirror/theme-one-dark": "^6.1.0",
"codemirror": "^6.0.1", "codemirror": "^6.0.1",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"primevue": "^3.18.0",
"vue": "^3.2.41", "vue": "^3.2.41",
"vue-codemirror": "^6.1.1", "vue-codemirror": "^6.1.1",
"vue-router": "^4.1.5" "vue-router": "^4.1.5"
@@ -1505,6 +1506,21 @@
"node": ">= 0.8.0" "node": ">= 0.8.0"
} }
}, },
"node_modules/primeicons": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/primeicons/-/primeicons-6.0.1.tgz",
"integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==",
"peer": true
},
"node_modules/primevue": {
"version": "3.18.0",
"resolved": "https://registry.npmjs.org/primevue/-/primevue-3.18.0.tgz",
"integrity": "sha512-7E3BTQRlvdVMh8OXIKqDVHFvF6UrrKacd80drTwiTHgjO98NLWtpDthxByM2z2yooGURx8JJ7GeFoMj8kKrScg==",
"peerDependencies": {
"primeicons": "^5.0.0 || ^6.0.0",
"vue": "^3.0.0"
}
},
"node_modules/punycode": { "node_modules/punycode": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
@@ -3158,6 +3174,18 @@
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true "dev": true
}, },
"primeicons": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/primeicons/-/primeicons-6.0.1.tgz",
"integrity": "sha512-KDeO94CbWI4pKsPnYpA1FPjo79EsY9I+M8ywoPBSf9XMXoe/0crjbUK7jcQEDHuc0ZMRIZsxH3TYLv4TUtHmAA==",
"peer": true
},
"primevue": {
"version": "3.18.0",
"resolved": "https://registry.npmjs.org/primevue/-/primevue-3.18.0.tgz",
"integrity": "sha512-7E3BTQRlvdVMh8OXIKqDVHFvF6UrrKacd80drTwiTHgjO98NLWtpDthxByM2z2yooGURx8JJ7GeFoMj8kKrScg==",
"requires": {}
},
"punycode": { "punycode": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",

View File

@@ -12,6 +12,7 @@
"@codemirror/theme-one-dark": "^6.1.0", "@codemirror/theme-one-dark": "^6.1.0",
"codemirror": "^6.0.1", "codemirror": "^6.0.1",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"primevue": "^3.18.0",
"vue": "^3.2.41", "vue": "^3.2.41",
"vue-codemirror": "^6.1.1", "vue-codemirror": "^6.1.1",
"vue-router": "^4.1.5" "vue-router": "^4.1.5"

View File

@@ -1,7 +1,11 @@
@import 'normalize.css'; @import 'normalize.css';
/*@import 'primevue/resources/primevue.min.css';*/
/*@import 'primevue/resources/themes/saga-blue/theme.css';*/
@import 'primevue/resources/themes/bootstrap4-dark-blue/theme.css';
html, body { html, body {
height: 100%; height: 100%;
overflow: hidden;
} }
#app { #app {

View File

@@ -4,8 +4,11 @@ import router from './router'
import './assets/main.css' import './assets/main.css'
import PrimeVue from 'primevue/config';
const app = createApp(App) const app = createApp(App)
app.use(router) app.use(router)
app.use(PrimeVue);
app.mount('#app') app.mount('#app')

View File

@@ -5,6 +5,9 @@ const worker = new Worker();
// const lodash = await fetch('https://registry.npmjs.org/lodash'); // const lodash = await fetch('https://registry.npmjs.org/lodash');
import Splitter from 'primevue/splitter';
import SplitterPanel from 'primevue/splitterpanel';
import { defineComponent, shallowRef } from 'vue' import { defineComponent, shallowRef } from 'vue'
import { Codemirror } from 'vue-codemirror' import { Codemirror } from 'vue-codemirror'
import { javascript } from '@codemirror/lang-javascript' import { javascript } from '@codemirror/lang-javascript'
@@ -12,7 +15,8 @@ import { oneDark } from '@codemirror/theme-one-dark'
export default defineComponent({ export default defineComponent({
components: { components: {
Codemirror Codemirror,
Splitter, SplitterPanel,
}, },
setup() { setup() {
const code = `console.log('Hello, world!')`; const code = `console.log('Hello, world!')`;
@@ -53,20 +57,33 @@ main {
} }
</style> </style>
<style>
.p-splitter-gutter-handle:focus {
box-shadow: none !important;
}
</style>
<template> <template>
<main> <main>
<codemirror <Splitter style="height: 100%" :step="50" :gutterSize="8" layout="horizontal">
v-model="code" <SplitterPanel>
placeholder="Code goes here..." <codemirror
:style="{ height: '100%' }" v-model="code"
:autofocus="true" placeholder="Code goes here..."
:indent-with-tab="true" :style="{ height: '100%' }"
:tab-size="2" :autofocus="true"
:extensions="extensions" :indent-with-tab="true"
@ready="handleReady" :tab-size="2"
@change="log('change', $event)" :extensions="extensions"
@focus="log('focus', $event)" @ready="handleReady"
@blur="log('blur', $event)" @change="log('change', $event)"
/> @focus="log('focus', $event)"
@blur="log('blur', $event)"
/>
</SplitterPanel>
<SplitterPanel>
Right Pane
</SplitterPanel>
</Splitter>
</main> </main>
</template> </template>