37 lines
783 B
JavaScript
37 lines
783 B
JavaScript
import { TaskItem } from '@tiptap/extension-task-item';
|
|
import { PARSE_HTML_PRIORITY_HIGHEST } from '../constants';
|
|
|
|
export default TaskItem.extend({
|
|
addOptions() {
|
|
return {
|
|
nested: true,
|
|
HTMLAttributes: {},
|
|
};
|
|
},
|
|
|
|
addAttributes() {
|
|
return {
|
|
checked: {
|
|
default: false,
|
|
parseHTML: (element) => {
|
|
const checkbox = element.querySelector('input[type=checkbox].task-list-item-checkbox');
|
|
|
|
return checkbox?.checked;
|
|
},
|
|
renderHTML: (attributes) => ({
|
|
'data-checked': attributes.checked,
|
|
}),
|
|
keepOnSplit: false,
|
|
},
|
|
};
|
|
},
|
|
|
|
parseHTML() {
|
|
return [
|
|
{
|
|
tag: 'li.task-list-item',
|
|
priority: PARSE_HTML_PRIORITY_HIGHEST,
|
|
},
|
|
];
|
|
},
|
|
});
|