Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/content_editor/extensions/task_item.js')
-rw-r--r--app/assets/javascripts/content_editor/extensions/task_item.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/app/assets/javascripts/content_editor/extensions/task_item.js b/app/assets/javascripts/content_editor/extensions/task_item.js
new file mode 100644
index 00000000000..6163c0e043b
--- /dev/null
+++ b/app/assets/javascripts/content_editor/extensions/task_item.js
@@ -0,0 +1,33 @@
+import { TaskItem } from '@tiptap/extension-task-item';
+
+export default TaskItem.extend({
+ defaultOptions: {
+ nested: true,
+ HTMLAttributes: {},
+ },
+
+ addAttributes() {
+ return {
+ checked: {
+ default: false,
+ parseHTML: (element) => {
+ const checkbox = element.querySelector('input[type=checkbox].task-list-item-checkbox');
+ return { checked: checkbox?.checked };
+ },
+ renderHTML: (attributes) => ({
+ 'data-checked': attributes.checked,
+ }),
+ keepOnSplit: false,
+ },
+ };
+ },
+
+ parseHTML() {
+ return [
+ {
+ tag: 'li.task-list-item',
+ priority: 100,
+ },
+ ];
+ },
+});