File tree Expand file tree Collapse file tree 7 files changed +30
-46
lines changed
Expand file tree Collapse file tree 7 files changed +30
-46
lines changed Original file line number Diff line number Diff line change 5454 "@rollup/plugin-replace" : " ^5.0.2" ,
5555 "@types/codemirror" : " ^5.60.2" ,
5656 "@types/node" : " ^18.15.3" ,
57- "@vitejs/plugin-vue" : " ^4.1.0 " ,
57+ "@vitejs/plugin-vue" : " ^4.2.3 " ,
5858 "@volar/monaco" : " 1.7.8" ,
5959 "@volar/typescript" : " 1.7.8" ,
6060 "@vue/language-service" : " 1.8.1" ,
Original file line number Diff line number Diff line change 11<script setup lang="ts">
22import CodeMirror , { type Props } from ' ../codemirror/CodeMirror.vue'
33import { computed } from ' vue'
4- import type { PreviewMode } from ' ./types'
4+ import type { EditorEmits , EditorProps } from ' ./types'
55
66defineOptions ({
77 editorType: ' codemirror' ,
88})
99
10- const props = defineProps <{
11- value: string
12- filename: string
13- readonly? : boolean
14- mode? : PreviewMode
15- }>()
16-
17- const emits = defineEmits <{
18- (e : ' change' , code : string ): void
19- }>()
10+ const props = defineProps <EditorProps >()
11+ const emit = defineEmits <EditorEmits >()
2012
2113const onChange = (code : string ) => {
22- emits (' change' , code )
14+ emit (' change' , code )
2315}
2416
2517const modes: Record <string , Props [' mode' ]> = {
Original file line number Diff line number Diff line change 11<script setup lang="ts">
2- withDefaults (
3- defineProps <{
4- modelValue? : boolean
5- }>(),
6- {
7- modelValue: false ,
8- }
9- )
10-
11- defineEmits <{
12- (e : ' update:modelValue' , value : boolean ): void
13- }>()
2+ const visible = defineModel <boolean >()
143 </script >
4+
155<template >
16- <div class =" wrapper" @click =" $emit('update:modelValue', !modelValue) " >
6+ <div class =" wrapper" @click =" visible = !visible " >
177 <span >Show Error</span >
188 <div class =" toggle" :class =" [{ active: modelValue }]" >
199 <div class =" indicator" />
2010 </div >
2111 </div >
2212</template >
13+
2314<style scoped>
2415.wrapper {
2516 position : absolute ;
Original file line number Diff line number Diff line change 11<script setup lang="ts">
22import Monaco from ' ../monaco/Monaco.vue'
3- import type { PreviewMode } from ' ./types'
3+ import type { EditorEmits , EditorProps } from ' ./types'
44
5- defineProps <{
6- value: string
7- filename: string
8- readonly? : boolean
9- mode? : PreviewMode
10- }>()
11-
12- const emit = defineEmits <{
13- (e : ' change' , code : string ): void
14- }>()
5+ defineProps <EditorProps >()
6+ const emit = defineEmits <EditorEmits >()
157
168defineOptions ({
179 editorType: ' monaco' ,
Original file line number Diff line number Diff line change 1- import { Component } from 'vue'
1+ import { type FunctionalComponent } from 'vue'
22
33export type PreviewMode = 'js' | 'css' | 'ssr'
44
5- interface EditorProps {
5+ export interface EditorProps {
66 value : string
77 filename : string
88 readonly ?: boolean
99 mode ?: PreviewMode
1010}
1111
12- interface EditorEmits {
12+ export interface EditorEmits {
1313 ( e : 'change' , code : string ) : void
1414}
1515
16- export type EditorComponentType = Component < EditorProps , EditorEmits > & {
16+ export type EditorComponentType = FunctionalComponent <
17+ EditorProps ,
18+ { change : ( code : string ) => void }
19+ > & {
1720 editorType : 'monaco' | 'codemirror'
1821}
1922
Original file line number Diff line number Diff line change @@ -3,7 +3,13 @@ import vue from '@vitejs/plugin-vue'
33import replace from '@rollup/plugin-replace'
44
55export default defineConfig ( {
6- plugins : [ vue ( ) ] ,
6+ plugins : [
7+ vue ( {
8+ script : {
9+ defineModel : true ,
10+ } ,
11+ } ) ,
12+ ] ,
713 resolve : {
814 alias : {
915 path : 'path-browserify' ,
You can’t perform that action at this time.
0 commit comments