forked from zicloud/bigscreen_admin
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
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
|