<template lang='pug'> .editor-wysiwyg div(ref='editor') </template> <script> import 'grapesjs/dist/css/grapes.min.css' import grapesjs from 'grapesjs' let editor export default { mounted() { editor = grapesjs.init({ container: this.$refs.editor, width: 'auto', height: 'calc(100vh - 64px)', storageManager: { type: null }, // panels: { defaults: [] } blockManager: { blocks: [ { id: 'section', // id is mandatory label: '<b>Section</b>', // You can use HTML/SVG inside labels attributes: { class: 'gjs-block-section' }, content: `<section> <h1>This is a simple title</h1> <div>This is just a Lorem text: Lorem ipsum dolor sit amet</div> </section>` }, { id: 'text', label: 'Text', content: '<div data-gjs-type="text">Insert your text here</div>', }, { id: 'image', label: 'Image', // Select the component once it's dropped select: true, // You can pass components as a JSON instead of a simple HTML string, // in this case we also use a defined component type `image` content: { type: 'image' }, // This triggers `active` event on dropped components and the `image` // reacts by opening the AssetManager activate: true } ] } }) } } </script> <style lang="scss"> .gjs-block { width: auto; height: auto; min-height: auto; } </style>