@titaui/pc 1.10.44 → 1.10.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/lib/components/rich-editor/basic/schema.js +47 -0
  2. package/lib/components/rich-editor/consts/events.js +12 -0
  3. package/lib/components/rich-editor/enums.js +42 -0
  4. package/lib/components/rich-editor/index.js +58 -0
  5. package/lib/components/rich-editor/keymap.js +119 -0
  6. package/lib/components/rich-editor/keymaps/index.js +241 -0
  7. package/lib/components/rich-editor/models/controller.js +18 -0
  8. package/lib/components/rich-editor/models/editor.js +47 -0
  9. package/lib/components/rich-editor/models/plugin.js +20 -0
  10. package/lib/components/rich-editor/models/schema.js +121 -0
  11. package/lib/components/rich-editor/plugins/block/block-quote/commond.js +27 -0
  12. package/lib/components/rich-editor/plugins/block/block-quote/index.js +126 -0
  13. package/lib/components/rich-editor/plugins/block/heading/commonds.js +31 -0
  14. package/lib/components/rich-editor/plugins/block/heading/index.js +188 -0
  15. package/lib/components/rich-editor/plugins/block/index.js +57 -0
  16. package/lib/components/rich-editor/plugins/block/lists/actions/conversions.js +172 -0
  17. package/lib/components/rich-editor/plugins/block/lists/actions/indent-list-items-selected.js +163 -0
  18. package/lib/components/rich-editor/plugins/block/lists/actions/indent-list.js +59 -0
  19. package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-forward.js +74 -0
  20. package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/index.js +45 -0
  21. package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-list-item-with-paragraph.js +104 -0
  22. package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-list-item-with-parent-nested-list.js +92 -0
  23. package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-nested-list-with-parent-list-item.js +89 -0
  24. package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-paragraph-with-list.js +48 -0
  25. package/lib/components/rich-editor/plugins/block/lists/actions/join-list-items-scenarios/join-sibling-list-items.js +61 -0
  26. package/lib/components/rich-editor/plugins/block/lists/actions/merge-lists.js +34 -0
  27. package/lib/components/rich-editor/plugins/block/lists/actions/outdent-list-items-selected.js +289 -0
  28. package/lib/components/rich-editor/plugins/block/lists/actions/wrap-and-join-lists.js +180 -0
  29. package/lib/components/rich-editor/plugins/block/lists/baseCommand.js +328 -0
  30. package/lib/components/rich-editor/plugins/block/lists/commond/indent-list.js +60 -0
  31. package/lib/components/rich-editor/plugins/block/lists/commond/index.js +396 -0
  32. package/lib/components/rich-editor/plugins/block/lists/commond/join-list-item-forward.js +45 -0
  33. package/lib/components/rich-editor/plugins/block/lists/commond/listBackspace.js +302 -0
  34. package/lib/components/rich-editor/plugins/block/lists/commond/outdent-list.js +43 -0
  35. package/lib/components/rich-editor/plugins/block/lists/index.js +222 -0
  36. package/lib/components/rich-editor/plugins/block/lists/messages.js +38 -0
  37. package/lib/components/rich-editor/plugins/block/lists/pm-plugins/input-rule.js +152 -0
  38. package/lib/components/rich-editor/plugins/block/lists/pm-plugins/keymap.js +33 -0
  39. package/lib/components/rich-editor/plugins/block/lists/pm-plugins/main.js +94 -0
  40. package/lib/components/rich-editor/plugins/block/lists/styles.js +15 -0
  41. package/lib/components/rich-editor/plugins/block/lists/transforms.js +347 -0
  42. package/lib/components/rich-editor/plugins/block/lists/utils/analytics.js +48 -0
  43. package/lib/components/rich-editor/plugins/block/lists/utils/find.js +126 -0
  44. package/lib/components/rich-editor/plugins/block/lists/utils/indentation.js +87 -0
  45. package/lib/components/rich-editor/plugins/block/lists/utils/node.js +144 -0
  46. package/lib/components/rich-editor/plugins/block/lists/utils/replace-content.js +31 -0
  47. package/lib/components/rich-editor/plugins/block/lists/utils/selection.js +201 -0
  48. package/lib/components/rich-editor/plugins/block/lists/utils.js +52 -0
  49. package/lib/components/rich-editor/plugins/block/paragraph/index.js +91 -0
  50. package/lib/components/rich-editor/plugins/core/index.js +90 -0
  51. package/lib/components/rich-editor/plugins/core/pm-plugins/focus-handler.js +67 -0
  52. package/lib/components/rich-editor/plugins/core/pm-plugins/keymap.js +29 -0
  53. package/lib/components/rich-editor/plugins/core/pm-plugins/reactNodeView.js +80 -0
  54. package/lib/components/rich-editor/plugins/extension/alignment/commond.js +24 -0
  55. package/lib/components/rich-editor/plugins/extension/alignment/index.js +111 -0
  56. package/lib/components/rich-editor/plugins/extension/alignment/utils.js +19 -0
  57. package/lib/components/rich-editor/plugins/extension/index.js +18 -0
  58. package/lib/components/rich-editor/plugins/index.js +44 -0
  59. package/lib/components/rich-editor/plugins/inline/color/commond.js +128 -0
  60. package/lib/components/rich-editor/plugins/inline/color/consts.js +43 -0
  61. package/lib/components/rich-editor/plugins/inline/color/index.css +61 -0
  62. package/lib/components/rich-editor/plugins/inline/color/index.js +209 -0
  63. package/lib/components/rich-editor/plugins/inline/color/selector.js +250 -0
  64. package/lib/components/rich-editor/plugins/inline/delete-line/index.js +147 -0
  65. package/lib/components/rich-editor/plugins/inline/em/index.js +93 -0
  66. package/lib/components/rich-editor/plugins/inline/index.js +83 -0
  67. package/lib/components/rich-editor/plugins/inline/link/commands.js +256 -0
  68. package/lib/components/rich-editor/plugins/inline/link/index.js +149 -0
  69. package/lib/components/rich-editor/plugins/inline/link/pm-plugins/fake-cursor-for-toolbar.js +77 -0
  70. package/lib/components/rich-editor/plugins/inline/link/pm-plugins/main.js +293 -0
  71. package/lib/components/rich-editor/plugins/inline/link/ui/index.css +79 -0
  72. package/lib/components/rich-editor/plugins/inline/link/ui/linkEditor.js +148 -0
  73. package/lib/components/rich-editor/plugins/inline/link/ui/linkToolbar.js +88 -0
  74. package/lib/components/rich-editor/plugins/inline/link/ui/toolbarBtn.js +117 -0
  75. package/lib/components/rich-editor/plugins/inline/link/utils.js +33 -0
  76. package/lib/components/rich-editor/plugins/inline/strong/index.js +137 -0
  77. package/lib/components/rich-editor/plugins/inline/under-line/index.js +145 -0
  78. package/lib/components/rich-editor/plugins/util.js +281 -0
  79. package/lib/components/rich-editor/react/reactNodeView.js +383 -0
  80. package/lib/components/rich-editor/react/uiProvider.js +185 -0
  81. package/lib/components/rich-editor/schemas/basic.js +309 -0
  82. package/lib/components/rich-editor/schemas/index.js +19 -0
  83. package/lib/components/rich-editor/schemas/list.js +342 -0
  84. package/lib/components/rich-editor/types/commond.js +5 -0
  85. package/lib/components/rich-editor/types/index.js +18 -0
  86. package/lib/components/rich-editor/ui/Popup/index.js +247 -0
  87. package/lib/components/rich-editor/ui/Popup/utils.js +399 -0
  88. package/lib/components/rich-editor/ui/editor/index.css +144 -0
  89. package/lib/components/rich-editor/ui/editor/index.js +143 -0
  90. package/lib/components/rich-editor/ui/normal-toolbar/index.css +29 -0
  91. package/lib/components/rich-editor/ui/normal-toolbar/index.js +109 -0
  92. package/lib/components/rich-editor/utils/browser.js +35 -0
  93. package/lib/components/rich-editor/utils/commands.js +266 -0
  94. package/lib/components/rich-editor/utils/document.js +160 -0
  95. package/lib/components/rich-editor/utils/event.js +79 -0
  96. package/lib/components/rich-editor/utils/helpers.js +16 -0
  97. package/lib/components/rich-editor/utils/mark.js +168 -0
  98. package/lib/components/rich-editor/utils/slice.js +85 -0
  99. package/lib/components/rich-editor/utils/toolbar.js +228 -0
  100. package/lib/components/upload/index.js +4 -2
  101. package/lib/components/upload/util.js +2 -0
  102. package/lib/index.js +8 -0
  103. package/package.json +20 -2
  104. package/yarn-error.log +22184 -0
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCommonListAnalyticsAttributes = exports.countListItemsInSelection = void 0;
7
+
8
+ var _node = require("./node");
9
+
10
+ var _selection = require("./selection");
11
+
12
+ var getCommonListAnalyticsAttributes = function getCommonListAnalyticsAttributes(state) {
13
+ var _state$selection = state.selection,
14
+ $from = _state$selection.$from,
15
+ $to = _state$selection.$to;
16
+ var fromAttrs = (0, _selection.getListItemAttributes)($from);
17
+ var toAttrs = (0, _selection.getListItemAttributes)($to);
18
+ return {
19
+ itemIndexAtSelectionStart: fromAttrs.itemIndex,
20
+ itemIndexAtSelectionEnd: toAttrs.itemIndex,
21
+ indentLevelAtSelectionStart: fromAttrs.indentLevel,
22
+ indentLevelAtSelectionEnd: toAttrs.indentLevel,
23
+ itemsInSelection: countListItemsInSelection(state)
24
+ };
25
+ };
26
+
27
+ exports.getCommonListAnalyticsAttributes = getCommonListAnalyticsAttributes;
28
+
29
+ var countListItemsInSelection = function countListItemsInSelection(state) {
30
+ var _state$selection2 = state.selection,
31
+ from = _state$selection2.from,
32
+ to = _state$selection2.to;
33
+
34
+ if (from === to) {
35
+ return 1;
36
+ }
37
+
38
+ var count = 0;
39
+ var listSlice = state.doc.cut(from, to);
40
+ listSlice.content.nodesBetween(0, listSlice.content.size, function (node, pos, parent, index) {
41
+ if (parent && (0, _node.isListItemNode)(parent) && !(0, _node.isListNode)(node) && index === 0) {
42
+ count++;
43
+ }
44
+ });
45
+ return count;
46
+ };
47
+
48
+ exports.countListItemsInSelection = countListItemsInSelection;
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.findFirstNestedList = findFirstNestedList;
7
+ exports.findFirstParentListItemNode = findFirstParentListItemNode;
8
+ exports.findFirstParentListNode = findFirstParentListNode;
9
+ exports.findRootParentListNode = findRootParentListNode;
10
+
11
+ var _prosemirrorUtils = require("prosemirror-utils");
12
+
13
+ var _node = require("./node");
14
+
15
+ function findFirstNestedList($pos) {
16
+ var currentNode = $pos.doc.nodeAt($pos.pos);
17
+ var currentListItemPos = null;
18
+
19
+ if ((0, _node.isListItemNode)(currentNode)) {
20
+ currentListItemPos = $pos.pos;
21
+ } else {
22
+ var result = (0, _prosemirrorUtils.findParentNodeClosestToPos)($pos, _node.isListItemNode);
23
+ currentListItemPos = (result === null || result === void 0 ? void 0 : result.pos) || null;
24
+ }
25
+
26
+ if (!currentListItemPos) {
27
+ return null;
28
+ }
29
+
30
+ var currentListItemNode = $pos.doc.nodeAt(currentListItemPos);
31
+
32
+ if (!currentListItemNode) {
33
+ return null;
34
+ }
35
+
36
+ var lastListItemChild = currentListItemNode.child(currentListItemNode.childCount - 1);
37
+
38
+ if (!(0, _node.isListNode)(lastListItemChild)) {
39
+ return null;
40
+ }
41
+
42
+ var firstNestedListPosition = currentListItemNode.nodeSize - lastListItemChild.nodeSize;
43
+ var firstNestedListNode = $pos.doc.nodeAt(firstNestedListPosition);
44
+
45
+ if (!(0, _node.isListNode)(firstNestedListNode)) {
46
+ return null;
47
+ }
48
+
49
+ return $pos.doc.resolve(firstNestedListPosition);
50
+ }
51
+
52
+ function findFirstParentListNode($pos) {
53
+ var currentNode = $pos.doc.nodeAt($pos.pos);
54
+ var listNodePosition = null;
55
+
56
+ if ((0, _node.isListNode)(currentNode)) {
57
+ listNodePosition = $pos.pos;
58
+ } else {
59
+ var result = (0, _prosemirrorUtils.findParentNodeClosestToPos)($pos, _node.isListNode);
60
+ listNodePosition = result && result.pos;
61
+ }
62
+
63
+ if (listNodePosition == null) {
64
+ return null;
65
+ }
66
+
67
+ var node = $pos.doc.nodeAt(listNodePosition);
68
+
69
+ if (!node) {
70
+ return null;
71
+ }
72
+
73
+ return {
74
+ node: node,
75
+ pos: listNodePosition
76
+ };
77
+ }
78
+
79
+ function findFirstParentListItemNode($pos) {
80
+ var currentNode = $pos.doc.nodeAt($pos.pos);
81
+ var listItemNodePosition = (0, _node.isListItemNode)(currentNode) ? $pos : (0, _prosemirrorUtils.findParentNodeClosestToPos)($pos, _node.isListItemNode);
82
+
83
+ if (!listItemNodePosition || listItemNodePosition.pos === null) {
84
+ return null;
85
+ }
86
+
87
+ var node = $pos.doc.nodeAt(listItemNodePosition.pos);
88
+
89
+ if (!node) {
90
+ return null;
91
+ }
92
+
93
+ return {
94
+ node: node,
95
+ pos: listItemNodePosition.pos
96
+ };
97
+ }
98
+
99
+ function findRootParentListNode($pos) {
100
+ var doc = $pos.doc;
101
+
102
+ if ($pos.pos + 1 > doc.content.size) {
103
+ return null;
104
+ }
105
+
106
+ if ($pos.depth === 0) {
107
+ return doc.resolve($pos.pos + 1);
108
+ }
109
+
110
+ var currentNode = doc.nodeAt($pos.pos);
111
+ var beforePosition = $pos.before();
112
+ var nodeBefore = doc.nodeAt(beforePosition);
113
+
114
+ if ((0, _node.isListNode)(currentNode) && !(0, _node.isListItemNode)(nodeBefore)) {
115
+ return doc.resolve($pos.pos + 1);
116
+ }
117
+
118
+ var parentList = (0, _prosemirrorUtils.findParentNodeClosestToPos)($pos, _node.isListNode);
119
+
120
+ if (!parentList) {
121
+ return null;
122
+ }
123
+
124
+ var listNodePosition = doc.resolve(parentList.pos);
125
+ return findRootParentListNode(listNodePosition);
126
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.hasValidListIndentationLevel = exports.getNextSiblingListItemPosition = exports.getListLiftTarget = void 0;
7
+
8
+ var _selection = require("./selection");
9
+
10
+ var _node = require("./node");
11
+
12
+ // This will return (depth - 1) for root list parent of a list.
13
+ var getListLiftTarget = function getListLiftTarget(resPos) {
14
+ var target = resPos.depth;
15
+
16
+ for (var i = resPos.depth; i > 0; i--) {
17
+ var node = resPos.node(i);
18
+
19
+ if ((0, _node.isListNode)(node)) {
20
+ target = i;
21
+ }
22
+
23
+ if (!(0, _node.isListItemNode)(node) && !(0, _node.isListNode)(node)) {
24
+ break;
25
+ }
26
+ }
27
+
28
+ return target - 1;
29
+ };
30
+
31
+ exports.getListLiftTarget = getListLiftTarget;
32
+
33
+ var getNextSiblingListItemPosition = function getNextSiblingListItemPosition($pos) {
34
+ var _$pos$doc$nodeAt;
35
+
36
+ var target = $pos.depth;
37
+ var found = false;
38
+
39
+ for (var i = $pos.depth; i > 0; i--) {
40
+ var node = $pos.node(i);
41
+
42
+ if ((0, _node.isListItemNode)(node)) {
43
+ target = i;
44
+ found = true;
45
+ }
46
+
47
+ if (found) {
48
+ break;
49
+ }
50
+ }
51
+
52
+ var listItemPosition = target - 1;
53
+ var listItemNodePosition = ((_$pos$doc$nodeAt = $pos.doc.nodeAt(listItemPosition)) === null || _$pos$doc$nodeAt === void 0 ? void 0 : _$pos$doc$nodeAt.nodeSize) || 0;
54
+ var nextListItemPosition = listItemPosition + listItemNodePosition;
55
+ var nextListItemNode = $pos.doc.nodeAt(nextListItemPosition);
56
+
57
+ if (nextListItemNode) {
58
+ return $pos.doc.resolve(nextListItemPosition);
59
+ }
60
+
61
+ return null;
62
+ };
63
+
64
+ exports.getNextSiblingListItemPosition = getNextSiblingListItemPosition;
65
+
66
+ var hasValidListIndentationLevel = function hasValidListIndentationLevel(_ref) {
67
+ var tr = _ref.tr,
68
+ maxIndentation = _ref.maxIndentation;
69
+ var initialIndentationLevel = (0, _selection.numberNestedLists)(tr.selection.$from);
70
+ var currentIndentationLevel;
71
+ var currentPos = tr.selection.$to.pos;
72
+
73
+ do {
74
+ var resolvedPos = tr.doc.resolve(currentPos);
75
+ currentIndentationLevel = (0, _selection.numberNestedLists)(resolvedPos);
76
+
77
+ if (currentIndentationLevel > maxIndentation) {
78
+ return false;
79
+ }
80
+
81
+ currentPos++;
82
+ } while (currentIndentationLevel >= initialIndentationLevel);
83
+
84
+ return true;
85
+ };
86
+
87
+ exports.hasValidListIndentationLevel = hasValidListIndentationLevel;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.JoinDirection = void 0;
7
+ exports.isBulletList = isBulletList;
8
+ exports.isDocumentNode = isDocumentNode;
9
+ exports.isListItemNode = isListItemNode;
10
+ exports.isListNode = isListNode;
11
+ exports.isListNodeValidContent = isListNodeValidContent;
12
+ exports.isParagraphNode = isParagraphNode;
13
+ exports.joinSiblingLists = void 0;
14
+
15
+ var _prosemirrorModel = require("prosemirror-model");
16
+
17
+ function isDocumentNode(node) {
18
+ return Boolean(node && node.type && node.type.name === 'doc');
19
+ }
20
+
21
+ function isListNode(node) {
22
+ return Boolean(node && node.type && ['orderedList', 'bulletList'].includes(node.type.name));
23
+ }
24
+
25
+ function isParagraphNode(node) {
26
+ return Boolean(node && node.type && 'paragraph' === node.type.name);
27
+ }
28
+
29
+ function isListItemNode(node) {
30
+ return Boolean(node && node.type && 'listItem' === node.type.name);
31
+ }
32
+
33
+ function isBulletList(node) {
34
+ return Boolean(node && node.type && 'bulletList' === node.type.name);
35
+ }
36
+
37
+ function isListNodeValidContent(node) {
38
+ var bulletList = node.type.schema.nodes.bulletList;
39
+
40
+ if (!bulletList) {
41
+ return false;
42
+ }
43
+
44
+ var listFragment = _prosemirrorModel.Fragment.from(bulletList.createAndFill());
45
+
46
+ return !isListItemNode(node) && node.type.validContent(listFragment);
47
+ }
48
+
49
+ var JoinDirection;
50
+ exports.JoinDirection = JoinDirection;
51
+
52
+ (function (JoinDirection) {
53
+ JoinDirection[JoinDirection["LEFT"] = 1] = "LEFT";
54
+ JoinDirection[JoinDirection["RIGHT"] = -1] = "RIGHT";
55
+ })(JoinDirection || (exports.JoinDirection = JoinDirection = {}));
56
+
57
+ var joinSiblingLists = function joinSiblingLists(_ref) {
58
+ var tr = _ref.tr,
59
+ direction = _ref.direction,
60
+ forceListType = _ref.forceListType;
61
+ var result = {
62
+ orderedList: 0,
63
+ bulletList: 0
64
+ };
65
+ var doc = tr.doc,
66
+ _tr$selection = tr.selection,
67
+ $from = _tr$selection.$from,
68
+ $to = _tr$selection.$to,
69
+ selection = tr.selection;
70
+ var range = $from.blockRange($to, isListNodeValidContent);
71
+
72
+ if (!range) {
73
+ return result;
74
+ }
75
+
76
+ var rootListNode = doc.nodeAt(range.start);
77
+ var from = isListNode(rootListNode) ? range.start : 0;
78
+ var to = isListNode(rootListNode) ? range.end : tr.doc.content.size;
79
+ var joins = [];
80
+ doc.nodesBetween(from, to, function (node, pos, parent) {
81
+ var resolvedPos = doc.resolve(pos);
82
+ var nodeBefore = resolvedPos.nodeBefore,
83
+ nodeAfter = resolvedPos.nodeAfter;
84
+
85
+ if (!nodeBefore || !nodeAfter || !isListNode(nodeBefore) || !isListNode(nodeAfter)) {
86
+ return;
87
+ }
88
+
89
+ var isNestedList = isListItemNode(parent);
90
+
91
+ if (!isNestedList && nodeBefore.type !== nodeAfter.type && !forceListType) {
92
+ return;
93
+ }
94
+
95
+ var index = resolvedPos.index();
96
+ var positionPreviousNode = resolvedPos.posAtIndex(index - 1);
97
+ var positionCurrentNode = resolvedPos.posAtIndex(index); // If the previous node is part of the selection, OR
98
+ // If the previous node is not part of the selection and the previous node has the same list type that we’re converting to
99
+
100
+ var joinBefore = positionPreviousNode >= from || nodeBefore.type === forceListType;
101
+
102
+ if (forceListType) {
103
+ if (joinBefore) {
104
+ tr.setNodeMarkup(positionPreviousNode, forceListType);
105
+ }
106
+
107
+ tr.setNodeMarkup(positionCurrentNode, forceListType);
108
+ }
109
+
110
+ if (isNestedList && nodeBefore.type !== nodeAfter.type) {
111
+ var nodeType = direction === JoinDirection.RIGHT ? nodeAfter.type : nodeBefore.type;
112
+ tr.setNodeMarkup(positionPreviousNode, nodeType);
113
+ }
114
+
115
+ if (joinBefore) {
116
+ joins.push(pos);
117
+ }
118
+ });
119
+
120
+ if (selection.empty && rootListNode && isListNode(rootListNode)) {
121
+ var resolvedPos = doc.resolve(range.start + rootListNode.nodeSize);
122
+ var nodeBefore = resolvedPos.nodeBefore,
123
+ nodeAfter = resolvedPos.nodeAfter;
124
+
125
+ if (nodeBefore && nodeAfter && isListNode(nodeBefore) && isListNode(nodeAfter) && nodeAfter.type === nodeBefore.type) {
126
+ joins.push(resolvedPos.pos);
127
+ }
128
+ }
129
+
130
+ for (var i = joins.length - 1; i >= 0; i--) {
131
+ var listNode = tr.doc.nodeAt(joins[i]);
132
+
133
+ if (listNode) {
134
+ var amount = result[listNode.type.name] || 0;
135
+ result[listNode.type.name] = amount + 1;
136
+ }
137
+
138
+ tr.join(joins[i]);
139
+ }
140
+
141
+ return result;
142
+ };
143
+
144
+ exports.joinSiblingLists = joinSiblingLists;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.moveTargetIntoList = void 0;
7
+
8
+ var _prosemirrorTransform = require("prosemirror-transform");
9
+
10
+ var moveTargetIntoList = function moveTargetIntoList(_ref) {
11
+ var _$target$nodeAfter;
12
+
13
+ var insertPosition = _ref.insertPosition,
14
+ $target = _ref.$target;
15
+ // take the text content of the paragraph and insert after the paragraph up until before the the cut
16
+ var from = insertPosition;
17
+ var to = $target.pos + (((_$target$nodeAfter = $target.nodeAfter) === null || _$target$nodeAfter === void 0 ? void 0 : _$target$nodeAfter.nodeSize) || 0); //$cut.pos + $cut.nodeAfter.nodeSize;
18
+
19
+ var gapFrom = $target.posAtIndex(0, $target.depth + 1); // start pos of the child
20
+
21
+ var gapTo = $target.doc.resolve(gapFrom).end(); // end pos of the paragraph
22
+
23
+ if (gapTo - gapFrom === 0) {
24
+ return new _prosemirrorTransform.ReplaceStep(from, to, $target.doc.slice(insertPosition, $target.pos));
25
+ }
26
+
27
+ var step = new _prosemirrorTransform.ReplaceAroundStep(from, to, gapFrom, gapTo, $target.doc.slice(insertPosition, $target.pos), 0, true);
28
+ return step;
29
+ };
30
+
31
+ exports.moveTargetIntoList = moveTargetIntoList;
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.selectionContainsList = exports.resolvePositionToStartOfListItem = exports.resolvePositionToEndOfListItem = exports.numberNestedLists = exports.normalizeListItemsSelection = exports.isWrappingPossible = exports.isPosInsideParagraph = exports.isPosInsideList = exports.isInsideTableCell = exports.isInsideListItem = exports.getListItemAttributes = exports.createListNodeRange = exports.createListItemNodeRange = exports.canJoinToPreviousListItem = void 0;
7
+
8
+ var _prosemirrorTransform = require("prosemirror-transform");
9
+
10
+ var _prosemirrorState = require("prosemirror-state");
11
+
12
+ var _prosemirrorUtils = require("prosemirror-utils");
13
+
14
+ var _node = require("./node");
15
+
16
+ // import { GapCursorSelection } from '../../selection/gap-cursor-selection';
17
+ var isPosInsideParagraph = function isPosInsideParagraph($pos) {
18
+ return $pos.parent.type.name === 'paragraph';
19
+ };
20
+
21
+ exports.isPosInsideParagraph = isPosInsideParagraph;
22
+
23
+ var isPosInsideList = function isPosInsideList($pos) {
24
+ var posGrandParent = $pos.node(-1);
25
+ return (0, _node.isListItemNode)($pos.parent) || (0, _node.isListNode)($pos.parent) || (0, _node.isListItemNode)(posGrandParent);
26
+ };
27
+
28
+ exports.isPosInsideList = isPosInsideList;
29
+
30
+ var isWrappingPossible = function isWrappingPossible(nodeType, selection) {
31
+ var $from = selection.$from,
32
+ $to = selection.$to;
33
+ var range = $from.blockRange($to);
34
+
35
+ if (!range) {
36
+ return false;
37
+ }
38
+
39
+ var wrap = (0, _prosemirrorTransform.findWrapping)(range, nodeType);
40
+
41
+ if (!wrap) {
42
+ return false;
43
+ }
44
+
45
+ return true;
46
+ }; // canOutdent
47
+
48
+
49
+ exports.isWrappingPossible = isWrappingPossible;
50
+
51
+ var isInsideListItem = function isInsideListItem(state) {
52
+ var parent = state.selection.$from.parent;
53
+ var listItem = state.schema.nodes.listItem; // if (state.selection instanceof GapCursorSelection) {
54
+ // return isListItemNode(parent);
55
+ // }
56
+
57
+ return (0, _prosemirrorUtils.hasParentNodeOfType)(listItem)(state.selection) && (0, _node.isParagraphNode)(parent);
58
+ };
59
+
60
+ exports.isInsideListItem = isInsideListItem;
61
+
62
+ var isInsideTableCell = function isInsideTableCell(state) {
63
+ var _state$schema$nodes = state.schema.nodes,
64
+ tableCell = _state$schema$nodes.tableCell,
65
+ tableHeader = _state$schema$nodes.tableHeader;
66
+ return !!(0, _prosemirrorUtils.findParentNodeOfType)([tableCell, tableHeader])(state.selection);
67
+ };
68
+
69
+ exports.isInsideTableCell = isInsideTableCell;
70
+
71
+ var canJoinToPreviousListItem = function canJoinToPreviousListItem(state) {
72
+ var $from = state.selection.$from;
73
+ var $before = state.doc.resolve($from.pos - 1);
74
+ var nodeBefore = $before ? $before.nodeBefore : null; // if (state.selection instanceof GapCursorSelection) {
75
+ // nodeBefore = $from.nodeBefore;
76
+ // }
77
+
78
+ return (0, _node.isListNode)(nodeBefore);
79
+ };
80
+
81
+ exports.canJoinToPreviousListItem = canJoinToPreviousListItem;
82
+
83
+ var selectionContainsList = function selectionContainsList(tr) {
84
+ var _tr$selection = tr.selection,
85
+ from = _tr$selection.from,
86
+ to = _tr$selection.to;
87
+ var foundListNode = null;
88
+ tr.doc.nodesBetween(from, to, function (node) {
89
+ if ((0, _node.isListNode)(node)) {
90
+ foundListNode = node;
91
+ }
92
+
93
+ if (foundListNode) {
94
+ return false;
95
+ }
96
+
97
+ return true;
98
+ });
99
+ return foundListNode;
100
+ };
101
+
102
+ exports.selectionContainsList = selectionContainsList;
103
+
104
+ var numberNestedLists = function numberNestedLists(resolvedPos) {
105
+ var count = 0;
106
+
107
+ for (var i = resolvedPos.depth - 1; i > 0; i--) {
108
+ var node = resolvedPos.node(i);
109
+
110
+ if ((0, _node.isListNode)(node)) {
111
+ count += 1;
112
+ }
113
+ }
114
+
115
+ return count;
116
+ };
117
+
118
+ exports.numberNestedLists = numberNestedLists;
119
+
120
+ var getListItemAttributes = function getListItemAttributes($pos) {
121
+ var indentLevel = numberNestedLists($pos) - 1;
122
+ var itemAtPos = (0, _prosemirrorUtils.findParentNodeClosestToPos)($pos, _node.isListItemNode); // Get the index of the current item relative to parent (parent is at item depth - 1)
123
+
124
+ var itemIndex = $pos.index(itemAtPos ? itemAtPos.depth - 1 : undefined);
125
+ return {
126
+ indentLevel: indentLevel,
127
+ itemIndex: itemIndex
128
+ };
129
+ };
130
+
131
+ exports.getListItemAttributes = getListItemAttributes;
132
+
133
+ var normalizeListItemsSelection = function normalizeListItemsSelection(_ref) {
134
+ var selection = _ref.selection,
135
+ doc = _ref.doc;
136
+
137
+ if (selection.empty) {
138
+ return selection;
139
+ }
140
+
141
+ var $from = selection.$from,
142
+ $to = selection.$to;
143
+
144
+ if (selection instanceof _prosemirrorState.NodeSelection) {
145
+ var _head = resolvePositionToStartOfListItem($from);
146
+
147
+ return new _prosemirrorState.TextSelection(_head, _head);
148
+ }
149
+
150
+ var head = resolvePositionToStartOfListItem($from);
151
+ var anchor = resolvePositionToEndOfListItem($to);
152
+ return new _prosemirrorState.TextSelection(anchor, head);
153
+ };
154
+
155
+ exports.normalizeListItemsSelection = normalizeListItemsSelection;
156
+
157
+ var resolvePositionToStartOfListItem = function resolvePositionToStartOfListItem($pos) {
158
+ var fromRange = $pos.blockRange($pos, _node.isListItemNode);
159
+ var fromPosition = fromRange && $pos.textOffset === 0 && fromRange.end - 1 === $pos.pos ? _prosemirrorState.Selection.near($pos.doc.resolve(fromRange.end + 1), 1).$from : $pos;
160
+ return fromPosition;
161
+ };
162
+
163
+ exports.resolvePositionToStartOfListItem = resolvePositionToStartOfListItem;
164
+
165
+ var resolvePositionToEndOfListItem = function resolvePositionToEndOfListItem($pos) {
166
+ var toRange = $pos.blockRange($pos, _node.isListItemNode);
167
+ var toPosition = toRange && $pos.textOffset === 0 && toRange.start + 1 === $pos.pos ? _prosemirrorState.Selection.near($pos.doc.resolve(toRange.start - 1), -1).$to : $pos;
168
+ return toPosition;
169
+ };
170
+
171
+ exports.resolvePositionToEndOfListItem = resolvePositionToEndOfListItem;
172
+
173
+ var createListNodeRange = function createListNodeRange(_ref2) {
174
+ var selection = _ref2.selection;
175
+ var $from = selection.$from,
176
+ $to = selection.$to;
177
+ var range = $from.blockRange($to, _node.isListNode);
178
+
179
+ if (!range) {
180
+ return null;
181
+ }
182
+
183
+ return range;
184
+ };
185
+
186
+ exports.createListNodeRange = createListNodeRange;
187
+
188
+ var createListItemNodeRange = function createListItemNodeRange(_ref3) {
189
+ var selection = _ref3.selection;
190
+ var $from = selection.$from,
191
+ $to = selection.$to;
192
+ var range = $from.blockRange($to, _node.isListItemNode);
193
+
194
+ if (!range) {
195
+ return null;
196
+ }
197
+
198
+ return range;
199
+ };
200
+
201
+ exports.createListItemNodeRange = createListItemNodeRange;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isWrappingPossible = exports.getListLiftTarget = void 0;
7
+
8
+ var _prosemirrorTransform = require("prosemirror-transform");
9
+
10
+ var _node = require("./utils/node");
11
+
12
+ var isWrappingPossible = function isWrappingPossible(nodeType, state) {
13
+ var _state$selection = state.selection,
14
+ $from = _state$selection.$from,
15
+ $to = _state$selection.$to;
16
+ var range = $from.blockRange($to);
17
+
18
+ if (!range) {
19
+ return false;
20
+ }
21
+
22
+ var wrap = (0, _prosemirrorTransform.findWrapping)(range, nodeType);
23
+
24
+ if (!wrap) {
25
+ return false;
26
+ }
27
+
28
+ return true;
29
+ }; // This will return (depth - 1) for root list parent of a list.
30
+
31
+
32
+ exports.isWrappingPossible = isWrappingPossible;
33
+
34
+ var getListLiftTarget = function getListLiftTarget(resPos) {
35
+ var target = resPos.depth;
36
+
37
+ for (var i = resPos.depth; i > 0; i--) {
38
+ var node = resPos.node(i);
39
+
40
+ if ((0, _node.isListNode)(node)) {
41
+ target = i;
42
+ }
43
+
44
+ if (!(0, _node.isListItemNode)(node) && !(0, _node.isListNode)(node)) {
45
+ break;
46
+ }
47
+ }
48
+
49
+ return target - 1;
50
+ };
51
+
52
+ exports.getListLiftTarget = getListLiftTarget;