123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import Block from '../blots/block';
- import Container from '../blots/container';
- import Quill from '../core/quill';
- 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(options) {
- Quill.register(ListContainer, options);
- }
- 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 };
|