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

quill

Package Overview
Dependencies
Maintainers
1
Versions
96
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

quill - npm Package Compare versions

Comparing version 1.0.6 to 1.1.0

2

blots/block.js
import extend from 'extend';
import Delta from 'rich-text/lib/delta';
import Delta from 'quill-delta';
import Parchment from 'parchment';

@@ -4,0 +4,0 @@ import Break from './break';

@@ -5,3 +5,3 @@ import Embed from './embed';

class Break extends Embed {
static value(domNode) {
static value() {
return undefined;

@@ -13,2 +13,4 @@ }

super.insertInto(parent, ref);
} else {
this.remove();
}

@@ -15,0 +17,0 @@ }

import Parchment from 'parchment';
import Embed from './embed';
import TextBlot from './text';
import Emitter from '../core/emitter';

@@ -7,3 +8,3 @@

class Cursor extends Embed {
static value(domNode) {
static value() {
return undefined;

@@ -51,3 +52,3 @@ }

position(index) {
position() {
return [this.textNode, this.textNode.data.length];

@@ -66,2 +67,6 @@ }

let range = this.selection.getNativeRange();
let restoreText, start, end;
if (range != null && range.start.node === textNode && range.end.node === textNode) {
[restoreText, start, end] = [textNode, range.start.offset, range.end.offset];
}
// Link format will insert text outside of anchor tag

@@ -72,16 +77,22 @@ while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {

if (this.textNode.data !== Cursor.CONTENTS) {
this.textNode.data = this.textNode.data.split(Cursor.CONTENTS).join('');
this.parent.insertBefore(Parchment.create(this.textNode), this);
this.textNode = document.createTextNode(Cursor.CONTENTS);
this.domNode.appendChild(this.textNode);
let text = this.textNode.data.split(Cursor.CONTENTS).join('');
if (this.next instanceof TextBlot) {
restoreText = this.next.domNode;
this.next.insertAt(0, text);
this.textNode.data = Cursor.CONTENTS;
} else {
this.textNode.data = text;
this.parent.insertBefore(Parchment.create(this.textNode), this);
this.textNode = document.createTextNode(Cursor.CONTENTS);
this.domNode.appendChild(this.textNode);
}
}
this.remove();
if (range != null && range.start.node === textNode && range.end.node === textNode) {
this.selection.emitter.once(Emitter.events.SCROLL_OPTIMIZE, () => {
let [start, end] = [range.start.offset, range.end.offset].map(function(offset) {
return Math.max(0, Math.min(textNode.data.length, offset - 1));
});
this.selection.setNativeRange(textNode, start, textNode, end);
if (start == null) return;
this.selection.emitter.once(Emitter.events.SCROLL_OPTIMIZE, () => {
[start, end] = [start, end].map(function(offset) {
return Math.max(0, Math.min(restoreText.data.length, offset - 1));
});
}
this.selection.setNativeRange(restoreText, start, restoreText, end);
});
}

@@ -88,0 +99,0 @@

@@ -1,2 +0,1 @@

import extend from 'extend';
import Embed from './embed';

@@ -35,4 +34,4 @@ import Text from './text';

super.optimize();
let ref = this.parent.parent;
if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {
if (this.parent instanceof Inline &&
Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {
let parent = this.parent.isolate(this.offset(), this.length());

@@ -39,0 +38,0 @@ this.moveChildren(parent);

@@ -83,2 +83,5 @@ import Parchment from 'parchment';

line(index) {
if (index === this.length()) {
return this.line(index - 1);
}
return this.descendant(isLine, index);

@@ -85,0 +88,0 @@ }

@@ -0,1 +1,24 @@

# 1.1.0
### Additions
Quill has always allowed API calls, even when the editor is in readOnly mode. All API calls also took a `source` parameter to indicate the origin of the change. For example, a click handler in the toolbar would call `formatText` with `source` set to `"user"`. When the editor is in readOnly mode, it would make sense for user initiated actions to be ignored. For example the user cannot focus or type into the editor. However because API calls are allowed, the user could still modify the editor contents [#909](https://github.com/quilljs/quill/issues/909). The natural fix is to ignore user initiated actions, even if it came through an API call, when the editor is in readOnly mode.
However, the documentation never stated API calls with `source` set to `"user"` would be ignored sometimes, so this would be a breaking change under semver. Some could argue this is a bug fix and would only warrant a patch version bump, but this seems disingenuous for this particular case. The fact that almost no one took advantage of the `source` beyond default values is irrelevant under the eyes of semver.
So a `strict` configuration option has been added. It is true by default so the above behavior is unchanged, and [#909](https://github.com/quilljs/quill/issues/909) is unfixed. Changing this to `false`, will use new behavior of ignoring user initiated changes on a disabled editor, even if through an API call.
### Fixes
- Fix undo when preformatted text inserted before plain text [#1019](https://github.com/quilljs/quill/issues/1019)
- Add focus indicator on toolbar buttons [#1020](https://github.com/quilljs/quill/issues/1020)
- Do not steal focus on API calls [#1029](https://github.com/quilljs/quill/issues/1029)
- Disable paste when Quill is disabled [#1038](https://github.com/quilljs/quill/issues/1038)
- Fix blank detection [#1043](https://github.com/quilljs/quill/issues/1043)
- Enable yarn [#1041](https://github.com/quilljs/quill/issues/1041)
- Documentation fixes [#1026](https://github.com/quilljs/quill/pull/1026), [#1027](https://github.com/quilljs/quill/pull/1027), [#1032](https://github.com/quilljs/quill/pull/1032)
Thank you [@benbro](https://github.com/benbro), [@cutteroid](https://github.com/cutteroid), [@evansolomon](https://github.com/evansolomon), [@felipeochoa](https://github.com/felipeochoa), [jackmu95](https://github.com/jackmu95), [@joedynamite](https://github.com/joedynamite), [@lance13c](https://github.com/lance13c), [@leebenson](https://github.com/leebenson), [@maartenvanvliet](https://github.com/maartenvanvliet), [@sarbbottam](https://github.com/sarbbottam), [@viljark](https://github.com/viljark), [@w00fz](https://github.com/w00fz) for their contributions to this release.
# 1.0.6

@@ -2,0 +25,0 @@

@@ -1,3 +0,3 @@

import Delta from 'rich-text/lib/delta';
import DeltaOp from 'rich-text/lib/op';
import Delta from 'quill-delta';
import DeltaOp from 'quill-delta/lib/op';
import Emitter from './emitter';

@@ -87,3 +87,3 @@ import Parchment from 'parchment';

let lengthRemaining = length;
lines.forEach((line, i) => {
lines.forEach((line) => {
let lineLength = line.length();

@@ -90,0 +90,0 @@ if (!(line instanceof CodeBlock)) {

@@ -6,3 +6,3 @@ let levels = ['error', 'warn', 'log', 'info'];

if (levels.indexOf(method) <= levels.indexOf(level)) {
console[method].apply(console, args);
console[method].apply(console, args); // eslint-disable-line no-console
}

@@ -9,0 +9,0 @@ }

import './polyfill';
import Delta from 'rich-text/lib/delta';
import Delta from 'quill-delta';
import Editor from './editor';

@@ -51,9 +51,9 @@ import Emitter from './emitter';

constructor(container, options = {}) {
options = expandConfig(container, options);
this.container = options.container;
this.options = expandConfig(container, options);
this.container = this.options.container;
if (this.container == null) {
return debug.error('Invalid Quill container', container);
}
if (options.debug) {
Quill.debug(options.debug);
if (this.options.debug) {
Quill.debug(this.options.debug);
}

@@ -67,7 +67,7 @@ let html = this.container.innerHTML.trim();

emitter: this.emitter,
whitelist: options.formats
whitelist: this.options.formats
});
this.editor = new Editor(this.scroll, this.emitter);
this.selection = new Selection(this.scroll, this.emitter);
this.theme = new options.theme(this, options);
this.theme = new this.options.theme(this, this.options);
this.keyboard = this.theme.addModule('keyboard');

@@ -77,15 +77,16 @@ this.clipboard = this.theme.addModule('clipboard');

this.theme.init();
this.emitter.on(Emitter.events.EDITOR_CHANGE, (type) => {
if (type === Emitter.events.TEXT_CHANGE) {
this.root.classList.toggle('ql-blank', this.editor.isBlank());
}
});
let contents = this.clipboard.convert(`<div class='ql-editor' style="white-space: normal;">${html}<p><br></p></div>`);
this.setContents(contents);
this.history.clear();
if (options.readOnly) {
if (this.options.placeholder) {
this.root.setAttribute('data-placeholder', this.options.placeholder);
}
if (this.options.readOnly) {
this.disable();
}
if (options.placeholder) {
this.root.setAttribute('data-placeholder', options.placeholder);
}
this.root.classList.toggle('ql-blank', this.editor.isBlank());
this.emitter.on(Emitter.events.TEXT_CHANGE, (delta) => {
this.root.classList.toggle('ql-blank', this.editor.isBlank());
});
}

@@ -109,7 +110,5 @@

[index, length, , source] = overload(index, length, source);
let range = this.getSelection();
let change = this.editor.deleteText(index, length, source);
range = shiftRange(range, index, -1*length, source);
this.setSelection(range, Emitter.sources.SILENT);
return change;
return modify.call(this, source, index, -1*length, () => {
return this.editor.deleteText(index, length, source);
});
}

@@ -123,2 +122,3 @@

this.editor.enable(enabled);
this.container.classList.toggle('ql-disabled', !enabled);
if (!enabled) {

@@ -135,2 +135,5 @@ this.blur();

format(name, value, source = Emitter.sources.API) {
if (!this.options.strict && !this.isEnabled() && source === Emitter.sources.USER) {
return new Delta();
}
let range = this.getSelection(true);

@@ -154,7 +157,5 @@ let change = new Delta();

[index, length, formats, source] = overload(index, length, name, value, source);
let range = this.getSelection();
let change = this.editor.formatLine(index, length, formats, source);
this.selection.setRange(range, true, Emitter.sources.SILENT);
this.selection.scrollIntoView();
return change;
return modify.call(this, source, index, 0, () => {
return this.editor.formatLine(index, length, formats, source);
});
}

@@ -165,7 +166,5 @@

[index, length, formats, source] = overload(index, length, name, value, source);
let range = this.getSelection();
let change = this.editor.formatText(index, length, formats, source);
this.selection.setRange(range, true, Emitter.sources.SILENT);
this.selection.scrollIntoView();
return change;
return modify.call(this, source, index, 0, () => {
return this.editor.formatText(index, length, formats, source);
});
}

@@ -218,18 +217,19 @@

insertEmbed(index, embed, value, source = Quill.sources.API) {
let range = this.getSelection();
let change = this.editor.insertEmbed(index, embed, value, source);
range = shiftRange(range, change, source);
this.setSelection(range, Emitter.sources.SILENT);
return change;
return modify.call(this, source, index, null, () => {
return this.editor.insertEmbed(index, embed, value, source);
});
}
insertText(index, text, name, value, source) {
let formats, range = this.getSelection();
let formats;
[index, , formats, source] = overload(index, 0, name, value, source);
let change = this.editor.insertText(index, text, formats, source);
range = shiftRange(range, index, text.length, source);
this.setSelection(range, Emitter.sources.SILENT);
return change;
return modify.call(this, source, index, text.length, () => {
return this.editor.insertText(index, text, formats, source);
});
}
isEnabled() {
return !this.container.classList.contains('ql-disabled');
}
off() {

@@ -252,11 +252,12 @@ return this.emitter.off.apply(this.emitter, arguments);

removeFormat(index, length, source) {
let range = this.getSelection();
[index, length, , source] = overload(index, length, source);
let change = this.editor.removeFormat(index, length, source);
range = shiftRange(range, change, source);
this.setSelection(range, Emitter.sources.SILENT);
return change;
return modify.call(this, source, index, null, () => {
return this.editor.removeFormat(index, length, source);
});
}
setContents(delta, source = Emitter.sources.API) {
if (!this.options.strict && !this.isEnabled() && source === Emitter.sources.USER) {
return new Delta();
}
delta = new Delta(delta).slice();

@@ -294,2 +295,5 @@ let lastOp = delta.ops[delta.ops.length - 1];

updateContents(delta, source = Emitter.sources.API) {
if (!this.options.strict && !this.isEnabled() && source === Emitter.sources.USER) {
return new Delta();
}
let range = this.getSelection();

@@ -313,2 +317,3 @@ if (Array.isArray(delta)) {

readOnly: false,
strict: true,
theme: 'default'

@@ -318,2 +323,3 @@ };

Quill.sources = Emitter.sources;
// eslint-disable-next-line no-undef
Quill.version = typeof(QUILL_VERSION) === 'undefined' ? 'dev' : QUILL_VERSION;

@@ -387,2 +393,20 @@

function modify(source, index, shift, modifier) {
let change = new Delta();
if (!this.options.strict && !this.isEnabled() && source === Emitter.sources.USER) {
return new Delta();
}
let range = this.getSelection();
change = modifier();
if (range != null) {
if (shift === null) {
range = shiftRange(range, index, change, source);
} else if (shift !== 0) {
range = shiftRange(range, index, shift, source);
}
this.setSelection(range, Emitter.sources.SILENT);
}
return change;
}
function overload(index, length, name, value, source) {

@@ -389,0 +413,0 @@ let formats = {};

import Parchment from 'parchment';
import clone from 'clone';
import equal from 'deep-equal';
import BreakBlot from '../blots/break';
import Emitter from './emitter';

@@ -107,2 +106,3 @@ import logger from './logger';

let side = 'left';
let rect;
if (node instanceof Text) {

@@ -117,5 +117,5 @@ if (offset < node.data.length) {

}
var rect = range.getBoundingClientRect();
rect = range.getBoundingClientRect();
} else {
var rect = leaf.domNode.getBoundingClientRect();
rect = leaf.domNode.getBoundingClientRect();
if (offset > 0) side = 'right';

@@ -122,0 +122,0 @@ }

@@ -1,5 +0,1 @@

import extend from 'extend';
import Emitter from './emitter';
class Theme {

@@ -6,0 +2,0 @@ constructor(quill, options) {

import Inline from '../blots/inline';
class Bold extends Inline {
static create(value) {
static create() {
return super.create();
}
static formats(domNode) {
static formats() {
return true;

@@ -10,0 +10,0 @@ }

@@ -1,2 +0,2 @@

import Delta from 'rich-text/lib/delta';
import Delta from 'quill-delta';
import Parchment from 'parchment';

@@ -20,3 +20,3 @@ import Block from '../blots/block';

static formats(domNode) {
static formats() {
return true;

@@ -23,0 +23,0 @@ }

import Embed from '../blots/embed';
import Link, { sanitize } from '../formats/link';
import { sanitize } from '../formats/link';

@@ -4,0 +4,0 @@ const ATTRIBUTES = [

@@ -1,3 +0,1 @@

import extend from 'extend';
import Delta from 'rich-text/lib/delta';
import Parchment from 'parchment';

@@ -4,0 +2,0 @@ import Block from '../blots/block';

@@ -1,2 +0,2 @@

import Delta from 'rich-text/lib/delta';
import Delta from 'quill-delta';
import Parchment from 'parchment';

@@ -133,3 +133,3 @@ import Quill from '../core/quill';

onPaste(e) {
if (e.defaultPrevented) return;
if (e.defaultPrevented || !this.quill.isEnabled()) return;
let range = this.quill.getSelection();

@@ -231,3 +231,3 @@ let delta = new Delta().retain(range.index).delete(range.length);

function matchIgnore(node, delta) {
function matchIgnore() {
return new Delta();

@@ -275,6 +275,7 @@ }

if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {
function replacer(collapse, match) {
// eslint-disable-next-line func-style
let replacer = function(collapse, match) {
match = match.replace(/[^\u00a0]/g, ''); // \u00a0 is nbsp;
return match.length < 1 && collapse ? ' ' : match;
}
};
text = text.replace(/\r\n/g, ' ').replace(/\n/g, ' ');

@@ -281,0 +282,0 @@ text = text.replace(/\s\s+/g, replacer.bind(replacer, true)); // collapse whitespace

@@ -9,3 +9,3 @@ import Embed from '../blots/embed';

if (typeof value === 'string') {
katex.render(value, node);
window.katex.render(value, node);
node.setAttribute('data-value', value);

@@ -21,3 +21,3 @@ }

index(node, offset) {
index() {
return 1;

@@ -24,0 +24,0 @@ }

import clone from 'clone';
import equal from 'deep-equal';
import extend from 'extend';
import Delta from 'rich-text/lib/delta';
import DeltaOp from 'rich-text/lib/op';
import DeltaOp from 'quill-delta/lib/op';
import Parchment from 'parchment';

@@ -10,3 +9,2 @@ import Quill from '../core/quill';

import Module from '../core/module';
import Block from '../blots/block';

@@ -40,23 +38,10 @@ let debug = logger('quill:keyboard');

this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function() {});
this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, function(range, context) {
if (range.index === 0) return;
let [line, ] = this.quill.scroll.line(range.index);
let formats = {};
if (context.offset === 0) {
let curFormats = line.formats();
let prevFormats = this.quill.getFormat(range.index-1, 1);
formats = DeltaOp.attributes.diff(curFormats, prevFormats) || {};
}
this.quill.deleteText(range.index-1, 1, Quill.sources.USER);
if (Object.keys(formats).length > 0) {
this.quill.formatLine(range.index-1, 1, formats, Quill.sources.USER);
}
this.quill.selection.scrollIntoView();
});
this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^$/ }, function(range) {
if (range.index >= this.quill.getLength() - 1) return;
this.quill.deleteText(range.index, 1, Quill.sources.USER);
});
this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDelete);
this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDelete);
this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);
this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^$/ }, handleDelete);
this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);
this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);
if (/Trident/i.test(navigator.userAgent)) {
this.addBinding({ key: Keyboard.keys.BACKSPACE, shortKey: true }, handleBackspace);
this.addBinding({ key: Keyboard.keys.DELETE, shortKey: true }, handleDelete);
}
this.listen();

@@ -90,3 +75,3 @@ }

let range = this.quill.getSelection();
if (range == null) return; // implies we do not have focus
if (range == null || !this.quill.hasFocus()) return;
let [line, offset] = this.quill.scroll.line(range.index);

@@ -195,3 +180,3 @@ let [leafStart, offsetStart] = this.quill.scroll.leaf(range.index);

prefix: /\t$/,
handler: function(range, context) {
handler: function(range) {
this.quill.deleteText(range.index - 1, 1, Quill.sources.USER);

@@ -250,3 +235,24 @@ }

function handleBackspace(range, context) {
if (range.index === 0) return;
let [line, ] = this.quill.scroll.line(range.index);
let formats = {};
if (context.offset === 0) {
let curFormats = line.formats();
let prevFormats = this.quill.getFormat(range.index-1, 1);
formats = DeltaOp.attributes.diff(curFormats, prevFormats) || {};
}
this.quill.deleteText(range.index-1, 1, Quill.sources.USER);
if (Object.keys(formats).length > 0) {
this.quill.formatLine(range.index-1, 1, formats, Quill.sources.USER);
}
this.quill.selection.scrollIntoView();
}
function handleDelete(range) {
if (range.index >= this.quill.getLength() - 1) return;
this.quill.deleteText(range.index, 1, Quill.sources.USER);
}
function handleDeleteRange(range) {
this.quill.deleteText(range, Quill.sources.USER);

@@ -253,0 +259,0 @@ this.quill.setSelection(range.index, Quill.sources.SILENT);

@@ -1,3 +0,2 @@

import extend from 'extend';
import Delta from 'rich-text/lib/delta';
import Delta from 'quill-delta';
import Parchment from 'parchment';

@@ -205,3 +204,3 @@ import Quill from '../core/quill';

handlers: {
clean: function(value) {
clean: function() {
let range = this.quill.getSelection();

@@ -208,0 +207,0 @@ if (range == null) return;

{
"name": "quill",
"version": "1.0.6",
"version": "1.1.0",
"description": "Your powerful, rich text editor",

@@ -39,4 +39,4 @@ "author": "Jason Chen <jhchen7@gmail.com>",

"extend": "~3.0.0",
"parchment": "1.0.1",
"rich-text": "~3.0.2"
"parchment": "1.0.2",
"quill-delta": "3.2.0"
},

@@ -50,2 +50,4 @@ "devDependencies": {

"css-loader": "~0.25.0",
"eslint": "^3.8.0",
"eslint-loader": "^1.5.0",
"extract-text-webpack-plugin": "^1.0.1",

@@ -64,3 +66,3 @@ "html-loader": "~0.4.4",

"stylus-loader": "^2.3.1",
"ts-loader": "~0.8.2",
"ts-loader": "~0.9.0",
"typescript": "^2.0.3",

@@ -67,0 +69,0 @@ "wdio-jasmine-framework": "~0.2.6",

import Quill from './core';
import { AlignAttribute, AlignClass, AlignStyle } from './formats/align';
import { AlignClass, AlignStyle } from './formats/align';
import { DirectionAttribute, DirectionClass, DirectionStyle } from './formats/direction';

@@ -5,0 +5,0 @@ import { IndentClass as Indent } from './formats/indent';

import extend from 'extend';
import Delta from 'rich-text/lib/delta';
import Delta from 'quill-delta';
import Emitter from '../core/emitter';

@@ -120,6 +120,6 @@ import Keyboard from '../modules/keyboard';

handlers: {
formula: function(value) {
formula: function() {
this.quill.theme.tooltip.edit('formula');
},
image: function(value) {
image: function() {
let fileInput = this.container.querySelector('input.ql-image[type=file]');

@@ -150,3 +150,3 @@ if (fileInput == null) {

},
video: function(value) {
video: function() {
this.quill.theme.tooltip.edit('video');

@@ -206,3 +206,3 @@ }

switch(this.root.getAttribute('data-mode')) {
case 'link':
case 'link': {
let scrollTop = this.quill.root.scrollTop;

@@ -218,3 +218,4 @@ if (this.linkRange) {

break;
case 'video':
}
case 'video': {
let match = value.match(/^(https?):\/\/(www\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/) ||

@@ -224,7 +225,7 @@ value.match(/^(https?):\/\/(www\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);

value = match[1] + '://www.youtube.com/embed/' + match[3] + '?showinfo=0';
} else if (match = value.match(/^(https?):\/\/(www\.)?vimeo\.com\/(\d+)/)) {
} else if (match = value.match(/^(https?):\/\/(www\.)?vimeo\.com\/(\d+)/)) { // eslint-disable-line no-cond-assign
value = match[1] + '://player.vimeo.com/video/' + match[3] + '/';
}
// fallthrough
case 'formula':
} // eslint-disable-next-line no-fallthrough
case 'formula': {
let range = this.quill.getSelection(true);

@@ -240,2 +241,3 @@ let index = range.index + range.length;

break;
}
default:

@@ -242,0 +244,0 @@ }

import extend from 'extend';
import Emitter from '../core/emitter';
import Keyboard from '../modules/keyboard';
import BaseTheme, { BaseTooltip } from './base';
import icons from '../ui/icons';
import { Range } from '../core/selection';

@@ -76,3 +74,3 @@

super.listen();
this.root.querySelector('.ql-close').addEventListener('click', (event) => {
this.root.querySelector('.ql-close').addEventListener('click', () => {
this.root.classList.remove('ql-editing');

@@ -79,0 +77,0 @@ });

@@ -5,3 +5,2 @@ import extend from 'extend';

import LinkBlot from '../formats/link';
import Picker from '../ui/picker';
import { Range } from '../core/selection';

@@ -8,0 +7,0 @@

@@ -11,3 +11,3 @@ import DropdownIcon from '../assets/icons/dropdown.svg';

this.select.parentNode.insertBefore(this.container, this.select);
this.label.addEventListener('click', (event) => {
this.label.addEventListener('click', () => {
this.container.classList.toggle('ql-expanded');

@@ -27,3 +27,3 @@ });

}
item.addEventListener('click', (event) => {
item.addEventListener('click', () => {
this.selectItem(item, true);

@@ -30,0 +30,0 @@ });

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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