diff --git a/packages/example/src/App.vue b/packages/example/src/App.vue index 9005ee8..d4d05a9 100644 --- a/packages/example/src/App.vue +++ b/packages/example/src/App.vue @@ -17,6 +17,10 @@ Readonly +
Documentation on @@ -26,7 +30,7 @@
({ lineNumbers: true, readonly: false, + fixedHeight: false, /* eslint-disable */ code: require('./example.js').default /* eslint-enable */, }), + computed: { + editorClasses() { + return this.fixedHeight ? 'my-editor set-height' : 'my-editor'; + }, + }, methods: { highlight(code) { return highlight( @@ -87,4 +97,7 @@ export default { line-height: 1.5; padding: 5px 10px; } +.set-height { + height: 20em; /* 20 lines */ +} diff --git a/packages/vue-prism-editor/src/Editor.ts b/packages/vue-prism-editor/src/Editor.ts index b15d316..29aba04 100644 --- a/packages/vue-prism-editor/src/Editor.ts +++ b/packages/vue-prism-editor/src/Editor.ts @@ -589,6 +589,18 @@ export const PrismEditor = Vue.extend({ }, }); const editorContainer = h('div', { staticClass: 'prism-editor__container' }, [textarea, preview]); - return h('div', { staticClass: 'prism-editor-wrapper' }, [this.lineNumbers && lineNumbers, editorContainer]); + return h( + 'div', + { + on: { + click: (): void => { + const input = this.$refs.textarea as HTMLTextAreaElement; + input.focus(); + }, + }, + staticClass: 'prism-editor-wrapper', + }, + [this.lineNumbers && lineNumbers, editorContainer] + ); }, });