UNPKG

quill

Version:

Your powerful, rich text editor

50 lines 1.57 kB
import Block from '../blots/block.js'; import Container from '../blots/container.js'; import Quill from '../core/quill.js'; class ListContainer extends Container {} ListContainer.blotName = 'list-container'; ListContainer.tagName = 'OL'; class ListItem extends Block { static create(value) { const node = super.create(); node.setAttribute('data-list', value); return node; } static formats(domNode) { return domNode.getAttribute('data-list') || undefined; } static register() { Quill.register(ListContainer); } constructor(scroll, domNode) { super(scroll, domNode); const ui = domNode.ownerDocument.createElement('span'); const listEventHandler = e => { if (!scroll.isEnabled()) return; const format = this.statics.formats(domNode, scroll); if (format === 'checked') { this.format('list', 'unchecked'); e.preventDefault(); } else if (format === 'unchecked') { this.format('list', 'checked'); e.preventDefault(); } }; ui.addEventListener('mousedown', listEventHandler); ui.addEventListener('touchstart', listEventHandler); this.attachUI(ui); } format(name, value) { if (name === this.statics.blotName && value) { this.domNode.setAttribute('data-list', value); } else { super.format(name, value); } } } ListItem.blotName = 'list'; ListItem.tagName = 'LI'; ListContainer.allowedChildren = [ListItem]; ListItem.requiredContainer = ListContainer; export { ListContainer, ListItem as default }; //# sourceMappingURL=list.js.map