Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

stencil-quill

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

stencil-quill

Native web component for quill editor

  • 11.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

stencil-quill Build Status

Native web components for the Quill Rich Text Editor

Built With Stencil

Donate/Support

If you like my work, feel free to support it. Donations to the project are always welcomed :)

PayPal: PayPal.Me/bengtler

Buy Me A Coffee

Examples

  • Live Demo

Installation

  • npm install stencil-quill
  • load node_modules/stencil-quill/dist/quill-components.js in your index.html or add it to your build process or project
  • do not forget to install quill v2! and include it + theme css in your buildprocess, module or index.html! (the component is using the global Quill object)

QuillEditor component

HTML-Tag

<quill-editor content="" format="html" theme="snow"></quill-editor>

Config

  • Check the component readme
  • content - the base content of the editor passed as string or JSON string
  • readOnly (true | false) if user can edit content
  • formats - array of allowed formats/groupings
  • format - model format - default: html, values: html | text | json, sets the model value type - html = html string, json = quill operations as json string, text = plain text
  • modules - configure/disable quill modules, passed as JSON-string!, e.g toolbar or add custom toolbar via html element default is
{
  toolbar: [
    ['bold', 'italic', 'underline', 'strike'],        // toggled buttons
    ['blockquote', 'code-block'],

    [{ 'header': 1 }, { 'header': 2 }],               // custom button values
    [{ 'list': 'ordered'}, { 'list': 'bullet' }],
    [{ 'script': 'sub'}, { 'script': 'super' }],      // superscript/subscript
    [{ 'indent': '-1'}, { 'indent': '+1' }],          // outdent/indent
    [{ 'direction': 'rtl' }],                         // text direction

    [{ 'size': ['small', false, 'large', 'huge'] }],  // custom dropdown
    [{ 'header': [1, 2, 3, 4, 5, 6, false] }],

    [{ 'color': [] }, { 'background': [] }],          // dropdown with defaults from theme
    [{ 'font': [] }],
    [{ 'align': [] }],

    ['clean'],                                         // remove formatting button

    ['link', 'image', 'video']                         // link and image, video
  ]
};
  • theme - bubble/snow, default is snow
  • styles - set a styles object, e.g. styles="{height: '250px'}"
  • placeholder - placeholder text, default is Insert text here ...
  • bounds - boundary of the editor, default document.body, pass 'self' to attach the editor element
  • possbility to create a custom toolbar via a custom slot quill-toolbar:
<quill-component content="test">
  <div slot="quill-toolbar">
    <span class="ql-formats">
      <select class="ql-font">
        <option value="aref">Aref Ruqaa</option>
        <option value="mirza">Mirza</option>
        <option selected>Roboto</option>
      </select>
      <select class="ql-align" title="Aligment">
        <option selected></option>
        <option value="center"></option>
        <option value="right"></option>
        <option value="justify"></option>
      </select>
      <select class="ql-align" title="Aligment2">
        <option selected></option>
        <option value="center"></option>
        <option value="right"></option>
        <option value="justify"></option>
      </select>
    </span>
    <span class="ql-formats">
      <div id="counter"></div>
    </span>
  </div>
</quill-component>
  • customToolbarPosition - if you are working with a custom toolbar you can switch the position :). - default: top, possible values top, bottom
  • debug - set log level warn, error, log or false to deactivate logging, default: warn
  • defaultEmptValue - set the default empty value, e.g. empty string, default null

Full Quill Toolbar HTML

Events

  • editorInit - editor instance
editor
  • editorContentChange - text is updated by 'user'
{
  editor: editorInstance,
  html: html,
  text: text,
  content: content,
  delta: delta,
  oldDelta: oldDelta,
  source: source
}
  • editorSelectionChange - selection is updated, also triggered for onBlur and onFocus, because the selection changed
{
  editor: editorInstance,
  range: range,
  oldRange: oldRange,
  source: source
}
  • editorChange - text or selection is updated - independent of the source
{
  editor: editorInstance, // Quill
  event: 'text-change' // event type
  html: html, // html string
  text: text, // plain text string
  content: content, // Content - operatins representation
  delta: delta, // Delta
  oldDelta: oldDelta, // Delta
  source: source // ('user', 'api', 'silent' , undefined)
}

or

{
  editor: editorInstance, // Quill
  event: 'selection-change' // event type
  range: range, // Range
  oldRange: oldRange, // Range
  source: source // ('user', 'api', 'silent' , undefined)
}
  • editorFocus - editor is focused
{
  editor: editorInstance, // Quill
  source: source // ('user', 'api', 'silent' , undefined)
}
  • editorBlur - editor is blured
{
  editor: editorInstance, // Quill
  source: source // ('user', 'api', 'silent' , undefined)
}

QuillView component

It renders a readOnly quilljs editor without a border and toolbar. Does not provide any Events, but has similar properties.

HTML-Tag

<quill-view content="" format="html" theme="snow"></quill-view>

Config

  • Check the component readme
  • content - the base content of the editor passed as string or JSON string
  • formats - array of allowed formats/groupings
  • format - model format - default: html, values: html | text | json, sets the model value type - html = html string, json = quill operations as json string, text = plain text
  • modules - configure/disable quill modules, passed as JSON-string! - keep in mind toolbar will be set to false anyways
  • theme - bubble/snow, default is snow
  • styles - set a styles object, e.g. styles="{height: '250px'}"
  • debug - set log level warn, error, log or false to deactivate logging, default: warn
  • defaultEmptValue - set the default empty value, e.g. empty string, default null

QuillViewHTML component

It renders an quilljs html string as you would expect it without createing a quilljs instance.

HTML-Tag

<quill-view-html content="" theme="snow"></quill-view-html>

Config

  • Check the component readme
  • content - the base content of the editor passed as string or JSON string
  • theme - bubble/snow, default is snow

Using the components

Script tag

  • Publish to NPM
  • Put a script tag similar to this <script src='https://unpkg.com/stencil-quill/dist/quill-components/quill-components.js'></script> in the head of your index.html
  • Then you can use the element anywhere in your template, JSX, html etc

Node Modules

  • Run npm install stencil-quill --save
  • Put a script tag similar to this <script src='node_modules/stencil-quill/dist/quill-components/quill-components.js'></script> in the head of your index.html
  • Then you can use the element anywhere in your template, JSX, html etc

In a stencil-starter app

  • Run npm install stencil-quill --save
  • Add an import to the npm packages import quill-components;
  • Then you can use the element anywhere in your template, JSX, html etc

Keywords

FAQs

Package last updated on 16 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc