0.1.9 • Published 4 years ago

leejr-grapesjs-tui-image-editor v0.1.9

Weekly downloads
664
License
BSD-3-Clause
Repository
github
Last release
4 years ago

IMPORTANT!

this package is a FORK of the https://classic.yarnpkg.com/en/package/grapesjs-tui-image-editor

these are very likely not the droids you're looking for

GrapesJS TOAST UI Image Editor

Add the TOAST UI Image Editor on Image Components in GrapesJS

Demo

Preview

Summary

  • Plugin name: grapesjs-tui-image-editor
  • Commands
    • tui-image-editor - Open the modal with the image editor Options:
      • target - component on which to get and update the image

Options

OptionDescriptionDefault
configTOAST UI's configuration object{}
constructorPass the editor constructor. By default, the tui.ImageEditor will be called
labelImageEditorLabel for the image editor (used in the modal)Image Editor
labelApplyLabel used on the apply buttonApply
heightDefault editor height650px
widthDefault editor width100%
commandIdId to use to create the image editor commandtui-image-editor
toolbarIconIcon used in the component toolbar<svg ....
hideHeaderHide the default editor headertrue
onApplyBy default, GrapesJS takes the modified image, adds it to the Asset Manager and update the target. If you need some custom logic you can use this custom 'onApply' function. onApply: (imageEditor, imageModel) => {...}null
addToAssetsIf no custom onApply is passed and this option is true, the result image will be added to assetstrue
getImageURLBy default, the URL of the image to be edited will be taken from the imageModel's src value. If you need some custom logic you can use this custom 'getImageURL' function. It must return either a standard URL, or a data URL. getImageURL: (imageModel) => {...}null
uploadIf no custom onApply is passed, on confirm, the edited image, will be passed to the AssetManager's uploader and the result (eg. instead of having the dataURL you'll have the URL) will be passed to the default onApply process (update target, etc.)false
onApplyButtonThe apply button (HTMLElement) will be passed as an argument to this function, once created. This will allow you a higher customization.null
iconsThe TOAST UI editor isn't compiled with icons, so generally, you should download them and indicate the local path in the includeUI.theme configurations. Use this option to change them or set it to false to keep what is come in includeUI.theme. By default, the plugin will try to use the editor's remote icons (which involves a cross-origin async request, indicated as unsafe by most of the browsers){'menu.normalIcon.path': ...
scriptScripts to load dynamically in case no TOAST UI editor constructor is found['...fabric.js', '...tui-code-snippet.js', '...tui-color-picker.js', '...tui-image-editor.min.js']
styleIn case the script is loaded this style will be loaded too['...tui-color-picker.css', '...tui-image-editor.css']

Download

  • CDN
    • https://unpkg.com/grapesjs-tui-image-editor
  • NPM
    • npm i grapesjs-tui-image-editor
  • GIT
    • git clone https://github.com/artf/grapesjs-tui-image-editor.git

Usage

Directly in the browser

<link href="https://unpkg.com/grapesjs/dist/css/grapes.min.css" rel="stylesheet"/>
<script src="https://unpkg.com/grapesjs"></script>
<script src="path/to/grapesjs-tui-image-editor.min.js"></script>

<div id="gjs"></div>

<script type="text/javascript">
  var editor = grapesjs.init({
      container : '#gjs',
      // ...
      plugins: ['grapesjs-tui-image-editor'],
      pluginsOpts: {
        'grapesjs-tui-image-editor': {
          config: {
            includeUI: {
              initMenu: 'filter',
            },
          },
          icons: {
            'menu.normalIcon.path': '../icon-d.svg',
            'menu.activeIcon.path': '../icon-b.svg',
            'menu.disabledIcon.path': '../icon-a.svg',
            'menu.hoverIcon.path': '../icon-c.svg',
            'submenu.normalIcon.path': '../icon-d.svg',
            'submenu.activeIcon.path': '../icon-c.svg',
          },
        }
      }
  });
</script>

Modern javascript

import grapesjs from 'grapesjs';
import tUIImageEditor from 'grapesjs-tui-image-editor';

const editor = grapesjs.init({
  container : '#gjs',
  // ...
  plugins: [tUIImageEditor],
  pluginsOpts: {
    [tUIImageEditor]: { /* options */ }
  }
  // or
  plugins: [
    editor => tUIImageEditor(editor, { /* options */ }),
  ],
});

Development

Clone the repository

$ git clone https://github.com/artf/grapesjs-tui-image-editor.git
$ cd grapesjs-tui-image-editor

Install dependencies

$ npm i

Start the dev server

$ npm start

License

BSD 3-Clause