@titaui/pc 1.10.43 → 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 (105) 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/superset-charts/utils/axios.js +2 -2
  101. package/lib/components/upload/index.js +4 -2
  102. package/lib/components/upload/util.js +2 -0
  103. package/lib/index.js +8 -0
  104. package/package.json +20 -2
  105. package/yarn-error.log +22184 -0
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.joinListItemWithParentNestedList = void 0;
7
+
8
+ var _commond = require("../../commond");
9
+
10
+ var _node = require("../../utils/node");
11
+
12
+ //Case for two adjacent list items with the first being of greater indentation
13
+ var joinListItemWithParentNestedList = function joinListItemWithParentNestedList(_ref) {
14
+ var tr = _ref.tr,
15
+ $next = _ref.$next,
16
+ $head = _ref.$head;
17
+
18
+ /* CASE 4
19
+ * Initial Structure:
20
+ *
21
+ * List A {
22
+ * ListItem B {
23
+ * Paragraph C { text1 }
24
+ * ...Children D
25
+ * List E {
26
+ * ...
27
+ * List F { //May be multiple levels of lists
28
+ * ...Children G
29
+ * ListItem H { //Last node of the block
30
+ * ...Children I
31
+ * Paragraph J { text2 |$head||textInsertPos| } |childrenMInsertPos| //Cant have children since this ListItem is the last of the block
32
+ * }
33
+ * }
34
+ * ...
35
+ * |childrenOInsertPos| }
36
+ * }
37
+ * ListItem K { |$next|
38
+ * Paragraph L { text3 }
39
+ * ...Children M
40
+ * List? N {
41
+ * ...Children O
42
+ * }
43
+ * }
44
+ * }
45
+ *
46
+ * Converts to:
47
+ *
48
+ * List A {
49
+ * ListItem B {
50
+ * Paragraph C { text1 }
51
+ * ...Children D
52
+ * List E {
53
+ * ...
54
+ * List F {
55
+ * ...Children G
56
+ * ListItem H {
57
+ * ...Children I
58
+ * Paragraph J { text2text3 }
59
+ * ...Children M
60
+ * }
61
+ * }
62
+ * ...
63
+ * ...Children O
64
+ * }
65
+ * }
66
+ * }
67
+ *
68
+ */
69
+ var listItemK = $next.parent; //List must have at least one child
70
+
71
+ if (!listItemK.firstChild || !listItemK.lastChild) {
72
+ return false;
73
+ }
74
+
75
+ var beforeListItemK = $next.before();
76
+ var afterListItemB = $next.before();
77
+ var afterListItemK = $next.after();
78
+ var containsChildrenO = (0, _node.isListNode)(listItemK.lastChild);
79
+ var textInsertPos = $head.pos;
80
+ var childrenMInsertPos = $head.pos + 1;
81
+ var childrenOInsertPos = afterListItemB - 2;
82
+ var textContent = listItemK.firstChild.content;
83
+ var childrenMContent = containsChildrenO ? listItemK.content.cut(listItemK.firstChild.nodeSize, listItemK.nodeSize - listItemK.lastChild.nodeSize - 2 //Get the position before
84
+ ) : listItemK.content.cut(listItemK.firstChild.nodeSize);
85
+ var childrenOContent = listItemK.lastChild.content;
86
+ (0, _commond.insertContentDeleteRange)(tr, function (tr) {
87
+ return tr.doc.resolve(textInsertPos);
88
+ }, containsChildrenO ? [[textContent, textInsertPos], [childrenMContent, childrenMInsertPos], [childrenOContent, childrenOInsertPos]] : [[textContent, textInsertPos], [childrenMContent, childrenMInsertPos]], [[beforeListItemK, afterListItemK]]);
89
+ return true;
90
+ };
91
+
92
+ exports.joinListItemWithParentNestedList = joinListItemWithParentNestedList;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.joinNestedListWithParentListItem = void 0;
7
+
8
+ var _commond = require("../../commond");
9
+
10
+ var _node = require("../../utils/node");
11
+
12
+ //Case for two adjacent list items with the first being of lower indentation
13
+ var joinNestedListWithParentListItem = function joinNestedListWithParentListItem(_ref) {
14
+ var tr = _ref.tr,
15
+ $next = _ref.$next,
16
+ $head = _ref.$head;
17
+
18
+ /* CASE 3
19
+ * Initial Structure:
20
+ *
21
+ * List A {
22
+ * ListItem B {
23
+ * ...Children C
24
+ * Paragraph D { text1 |$head||textInsertPos| } |childrenHInsertPos|
25
+ * List E { |$next||childrenJInsertPos|
26
+ * ListItem F {
27
+ * Paragraph G { text2 }
28
+ * ...Children H
29
+ * List? I {
30
+ * ...Children J
31
+ * }
32
+ * }
33
+ * ...Children K
34
+ * }
35
+ * }
36
+ * }
37
+ *
38
+ * Converts to:
39
+ *
40
+ * List A {
41
+ * ListItem B {
42
+ * ...Children C
43
+ * Paragraph D { text1text2 }
44
+ * ...Children H
45
+ * List E {
46
+ * ...Children J
47
+ * ...Children K
48
+ * }
49
+ * }
50
+ * }
51
+ *
52
+ */
53
+ var listE = $next.parent;
54
+ var listItemF = $next.nodeAfter; //We know next is before a ListItem. ListItem must have at least one child
55
+
56
+ if (!listItemF || !listItemF.lastChild) {
57
+ return false;
58
+ }
59
+
60
+ var paragraphG = listItemF.firstChild; //ListItem must have at least one child
61
+
62
+ if (!paragraphG) {
63
+ return false;
64
+ }
65
+
66
+ var beforeListE = $next.before();
67
+ var beforeListItemF = $next.pos;
68
+ var afterParagraphD = $head.after();
69
+ var afterListE = $next.after();
70
+ var afterListItemF = tr.doc.resolve($next.pos + 1).after(); //List must always have at least one listItem
71
+
72
+ var containsChildrenJ = (0, _node.isListNode)(listItemF.lastChild);
73
+ var shouldRemoveListE = listE.childCount === 1 && !containsChildrenJ; //Assures no Children J and K
74
+
75
+ var textInsertPos = $head.pos;
76
+ var childrenHInsertPos = afterParagraphD;
77
+ var childrenJInsertPos = $next.pos;
78
+ var textContent = paragraphG.content;
79
+ var childrenHContent = containsChildrenJ ? listItemF.content.cut(paragraphG.nodeSize, listItemF.nodeSize - listItemF.lastChild.nodeSize - 2) : listItemF.content.cut(paragraphG.nodeSize); //If Children J doesn't exist then Children H will include the last node
80
+
81
+ var childrenJContent = listItemF.lastChild.content; //Will be invalid if there are no Children J but it will be unused
82
+
83
+ (0, _commond.insertContentDeleteRange)(tr, function (tr) {
84
+ return tr.doc.resolve(textInsertPos);
85
+ }, containsChildrenJ ? [[textContent, textInsertPos], [childrenHContent, childrenHInsertPos], [childrenJContent, childrenJInsertPos]] : [[textContent, textInsertPos], [childrenHContent, childrenHInsertPos]], [shouldRemoveListE ? [beforeListE, afterListE] : [beforeListItemF, afterListItemF]]);
86
+ return true;
87
+ };
88
+
89
+ exports.joinNestedListWithParentListItem = joinNestedListWithParentListItem;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.joinParagrapWithList = void 0;
7
+
8
+ var _commond = require("../../commond");
9
+
10
+ //Case for two adjacent nodes with the first being a list item and the last being a paragraph
11
+ var joinParagrapWithList = function joinParagrapWithList(_ref) {
12
+ var tr = _ref.tr,
13
+ $next = _ref.$next,
14
+ $head = _ref.$head;
15
+
16
+ /* CASE 1
17
+ * Initial Structure:
18
+ *
19
+ * List A {
20
+ * ListItem B {
21
+ * ...Children C
22
+ * Paragraph D { text1 |$head||textInsertPos| }
23
+ * }
24
+ * }
25
+ * Paragraph E { |$next| text 2 }
26
+ *
27
+ * Converts to:
28
+ *
29
+ * List A {
30
+ * ListItem B {
31
+ * ...Children C
32
+ * Paragraph D { text1text2 }
33
+ * }
34
+ * }
35
+ *
36
+ */
37
+ var paragraphE = $next.parent;
38
+ var beforeParagraphE = $next.before();
39
+ var afterParagraphE = $next.after();
40
+ var textInsertPos = $head.pos;
41
+ var textContent = paragraphE.content;
42
+ (0, _commond.insertContentDeleteRange)(tr, function (tr) {
43
+ return tr.doc.resolve(textInsertPos);
44
+ }, [[textContent, textInsertPos]], [[beforeParagraphE, afterParagraphE]]);
45
+ return true;
46
+ };
47
+
48
+ exports.joinParagrapWithList = joinParagrapWithList;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.joinSiblingListItems = void 0;
7
+
8
+ var _commond = require("../../commond");
9
+
10
+ //Case for two adjacent list items of the same indentation
11
+ var joinSiblingListItems = function joinSiblingListItems(_ref) {
12
+ var tr = _ref.tr,
13
+ $next = _ref.$next,
14
+ $head = _ref.$head;
15
+
16
+ /* CASE 2
17
+ * Initial Structure:
18
+ *
19
+ * List A {
20
+ * ListItem B {
21
+ * ...Children C
22
+ * Paragraph D { text1 |$head||textInsertPos| } //Cant have children since that would be Case 4
23
+ * |childrenGInsertPos| }
24
+ * ListItem E { |$next|
25
+ * Paragraph F { text2 }
26
+ * ...Children G
27
+ * }
28
+ * }
29
+ *
30
+ * Converts to:
31
+ *
32
+ * List A {
33
+ * ListItem B {
34
+ * ...Children C
35
+ * Paragraph C { text1text2 }
36
+ * ...Children G
37
+ * }
38
+ * }
39
+ *
40
+ */
41
+ var listItemE = $next.parent;
42
+ var paragraphF = $next.nodeAfter; //ListItem must have at least one child
43
+
44
+ if (!paragraphF) {
45
+ return false;
46
+ }
47
+
48
+ var beforeListItemE = $next.before();
49
+ var afterListItemE = $next.after();
50
+ var endListItemB = $head.end(-1);
51
+ var textInsertPos = $head.pos;
52
+ var childrenGInsertPos = endListItemB;
53
+ var textContent = paragraphF.content;
54
+ var childrenGContent = listItemE.content.cut(paragraphF.nodeSize);
55
+ (0, _commond.insertContentDeleteRange)(tr, function (tr) {
56
+ return tr.doc.resolve(textInsertPos);
57
+ }, [[textContent, textInsertPos], [childrenGContent, childrenGInsertPos]], [[beforeListItemE, afterListItemE]]);
58
+ return true;
59
+ };
60
+
61
+ exports.joinSiblingListItems = joinSiblingListItems;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mergeNextListAtPosition = mergeNextListAtPosition;
7
+
8
+ var _node = require("../utils/node");
9
+
10
+ function mergeNextListAtPosition(_ref) {
11
+ var tr = _ref.tr,
12
+ listPosition = _ref.listPosition;
13
+ var listNodeAtPosition = tr.doc.nodeAt(listPosition);
14
+
15
+ if (!(0, _node.isListNode)(listNodeAtPosition)) {
16
+ return;
17
+ }
18
+
19
+ var listPositionResolved = tr.doc.resolve(listPosition + listNodeAtPosition.nodeSize);
20
+ var pos = listPositionResolved.pos,
21
+ nodeAfter = listPositionResolved.nodeAfter,
22
+ nodeBefore = listPositionResolved.nodeBefore;
23
+
24
+ if (!(0, _node.isListNode)(nodeBefore) || !(0, _node.isListNode)(nodeAfter)) {
25
+ return;
26
+ }
27
+
28
+ if ((nodeAfter === null || nodeAfter === void 0 ? void 0 : nodeAfter.type.name) !== (nodeBefore === null || nodeBefore === void 0 ? void 0 : nodeBefore.type.name)) {
29
+ var previousListPosition = pos - nodeBefore.nodeSize;
30
+ tr.setNodeMarkup(previousListPosition, nodeAfter.type);
31
+ }
32
+
33
+ tr.join(pos);
34
+ }
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.outdentListItemsSelected = void 0;
7
+
8
+ var _prosemirrorState = require("prosemirror-state");
9
+
10
+ var _prosemirrorModel = require("prosemirror-model");
11
+
12
+ var _prosemirrorTransform = require("prosemirror-transform");
13
+
14
+ var _node = require("../utils/node");
15
+
16
+ var _find = require("../utils/find");
17
+
18
+ var _selection = require("../utils/selection");
19
+
20
+ // import { GapCursorSelection } from '../../selection/gap-cursor-selection';
21
+ var outdentListItemsSelected = function outdentListItemsSelected(tr) {
22
+ var originalSelection = tr.selection;
23
+ var normalizedSelection = (0, _selection.normalizeListItemsSelection)({
24
+ selection: tr.selection,
25
+ doc: tr.doc
26
+ });
27
+ var rootList = (0, _find.findRootParentListNode)(normalizedSelection.$from);
28
+
29
+ if (!rootList) {
30
+ return;
31
+ }
32
+
33
+ var commonList = normalizedSelection.$from.blockRange(rootList, _node.isListNode);
34
+
35
+ if (!commonList) {
36
+ return;
37
+ }
38
+
39
+ var hasNormalizedToPositionLiftedOut = false;
40
+ var hasNormalizedFromPositionLiftedOut = false;
41
+ var oldFrom = normalizedSelection.from,
42
+ oldTo = normalizedSelection.to;
43
+ var nodeRanges = splitRangeSelection(normalizedSelection);
44
+ nodeRanges.forEach(function (range) {
45
+ var $from = tr.doc.resolve(tr.mapping.map(range.from));
46
+ var $to = tr.doc.resolve(tr.mapping.map(range.to));
47
+ var mappedRange = $from.blockRange($to, _node.isListNode);
48
+
49
+ if (!mappedRange) {
50
+ return;
51
+ }
52
+
53
+ if ((0, _node.isListItemNode)($from.node(mappedRange.depth - 1))) {
54
+ outdentRangeToParentList({
55
+ tr: tr,
56
+ range: mappedRange
57
+ });
58
+ } else {
59
+ extractListItemsRangeFromList({
60
+ tr: tr,
61
+ range: mappedRange
62
+ });
63
+ hasNormalizedToPositionLiftedOut = hasNormalizedToPositionLiftedOut || oldTo >= range.from && oldTo < range.to;
64
+ hasNormalizedFromPositionLiftedOut = hasNormalizedFromPositionLiftedOut || oldFrom >= range.from && oldFrom < range.to;
65
+ }
66
+ });
67
+ var hasCommonListMoved = commonList.start !== tr.mapping.map(commonList.start);
68
+ var nextSelection = calculateNewSelection({
69
+ originalSelection: originalSelection,
70
+ normalizedSelection: normalizedSelection,
71
+ tr: tr,
72
+ hasCommonListMoved: hasCommonListMoved,
73
+ hasNormalizedToPositionLiftedOut: hasNormalizedToPositionLiftedOut,
74
+ hasNormalizedFromPositionLiftedOut: hasNormalizedFromPositionLiftedOut
75
+ });
76
+ tr.setSelection(nextSelection);
77
+ (0, _node.joinSiblingLists)({
78
+ tr: tr,
79
+ direction: _node.JoinDirection.RIGHT
80
+ });
81
+ };
82
+
83
+ exports.outdentListItemsSelected = outdentListItemsSelected;
84
+
85
+ var calculateNewSelection = function calculateNewSelection(_ref) {
86
+ var tr = _ref.tr,
87
+ originalSelection = _ref.originalSelection,
88
+ normalizedSelection = _ref.normalizedSelection,
89
+ hasCommonListMoved = _ref.hasCommonListMoved,
90
+ hasNormalizedToPositionLiftedOut = _ref.hasNormalizedToPositionLiftedOut,
91
+ hasNormalizedFromPositionLiftedOut = _ref.hasNormalizedFromPositionLiftedOut;
92
+ var $from = normalizedSelection.$from,
93
+ $to = normalizedSelection.$to;
94
+ var isCursorSelection = normalizedSelection.empty;
95
+ var from = tr.mapping.map($from.pos);
96
+ var to = tr.mapping.map($to.pos);
97
+ var LIST_STRUCTURE_CHANGED_OFFSET = 2;
98
+ var isToFromSameListItem = $from.sameParent($to);
99
+
100
+ if (hasNormalizedFromPositionLiftedOut) {
101
+ var fromMapped = isToFromSameListItem ? $from.pos : from;
102
+ from = hasNormalizedFromPositionLiftedOut ? $from.pos : fromMapped;
103
+ from = hasCommonListMoved ? from - LIST_STRUCTURE_CHANGED_OFFSET : from;
104
+ from = Math.max(from, 0);
105
+ }
106
+
107
+ if (hasNormalizedToPositionLiftedOut) {
108
+ var toMapped = isToFromSameListItem ? $to.pos : to;
109
+ to = hasNormalizedToPositionLiftedOut ? $to.pos : toMapped;
110
+ to = hasCommonListMoved ? to - LIST_STRUCTURE_CHANGED_OFFSET : to;
111
+ to = Math.min(to, tr.doc.nodeSize - 2);
112
+ } // if (normalizedSelection instanceof GapCursorSelection) {
113
+ // const nextSelectionFrom = tr.doc.resolve(from);
114
+ // return new GapCursorSelection(nextSelectionFrom, normalizedSelection.side);
115
+ // }
116
+
117
+
118
+ if (originalSelection instanceof _prosemirrorState.NodeSelection) {
119
+ return _prosemirrorState.NodeSelection.create(tr.doc, from);
120
+ }
121
+
122
+ if (isCursorSelection) {
123
+ return _prosemirrorState.TextSelection.between(tr.doc.resolve(to), tr.doc.resolve(to), -1);
124
+ }
125
+
126
+ return _prosemirrorState.TextSelection.between(tr.doc.resolve(from), tr.doc.resolve(to), -1);
127
+ };
128
+
129
+ var splitRangeSelection = function splitRangeSelection(selection) {
130
+ var commonListRange = (0, _selection.createListNodeRange)({
131
+ selection: selection
132
+ });
133
+
134
+ if (!commonListRange) {
135
+ return [];
136
+ }
137
+
138
+ var $from = selection.$from,
139
+ $to = selection.$to;
140
+
141
+ if ($from.pos === $to.pos && $from.sameParent($to)) {
142
+ return [{
143
+ from: commonListRange.start,
144
+ to: commonListRange.end,
145
+ depth: commonListRange.depth
146
+ }];
147
+ }
148
+
149
+ var lastListItem = findPreviousListItemSibling($from);
150
+
151
+ if (!lastListItem) {
152
+ return [];
153
+ }
154
+
155
+ var nodeRanges = [];
156
+ var doc = $from.doc;
157
+ var previousListItem = findPreviousListItemSibling($to);
158
+
159
+ while (previousListItem && previousListItem.pos >= lastListItem.pos && previousListItem.pos >= commonListRange.start) {
160
+ var node = doc.nodeAt(previousListItem.pos);
161
+
162
+ if (!node || !(0, _node.isListItemNode)(node)) {
163
+ return [];
164
+ }
165
+
166
+ var offset = 0;
167
+
168
+ if (node && node.lastChild && (0, _node.isListNode)(node.lastChild)) {
169
+ offset = node.lastChild.nodeSize;
170
+ }
171
+
172
+ var start = previousListItem.pos + 1;
173
+ nodeRanges.push({
174
+ from: start,
175
+ to: doc.resolve(start).end() - offset,
176
+ depth: previousListItem.depth
177
+ });
178
+ previousListItem = findPreviousListItemSibling(previousListItem);
179
+ }
180
+
181
+ return nodeRanges;
182
+ };
183
+
184
+ var outdentRangeToParentList = function outdentRangeToParentList(_ref2) {
185
+ var tr = _ref2.tr,
186
+ range = _ref2.range;
187
+ var end = range.end;
188
+ var endOfList = range.$to.end(range.depth);
189
+ var listItem = tr.doc.type.schema.nodes.listItem;
190
+
191
+ if (end < endOfList) {
192
+ var slice = new _prosemirrorModel.Slice(_prosemirrorModel.Fragment.from(listItem.create(null, range.parent.copy())), 1, 0);
193
+ var step = new _prosemirrorTransform.ReplaceAroundStep(end - 1, endOfList, end, endOfList, slice, 1, true);
194
+ tr.step(step);
195
+ range = new _prosemirrorModel.NodeRange(tr.doc.resolve(range.$from.pos), tr.doc.resolve(endOfList), range.depth);
196
+ }
197
+
198
+ var target = (0, _prosemirrorTransform.liftTarget)(range);
199
+
200
+ if (target) {
201
+ tr.lift(range, target);
202
+ }
203
+ };
204
+
205
+ var extractListItemsRangeFromList = function extractListItemsRangeFromList(_ref3) {
206
+ var tr = _ref3.tr,
207
+ range = _ref3.range;
208
+ var list = range.parent;
209
+ var $start = tr.doc.resolve(range.start);
210
+ var listStart = $start.start(range.depth);
211
+ var listEnd = $start.end(range.depth);
212
+ var isAtTop = listStart === range.start;
213
+ var isAtBottom = listEnd === range.end;
214
+ var isTheEntireList = isAtTop && isAtBottom;
215
+ var listItemContent = isAtTop ? _prosemirrorModel.Fragment.empty : _prosemirrorModel.Fragment.from(list.copy(_prosemirrorModel.Fragment.empty));
216
+
217
+ for (var i = range.startIndex; i < range.endIndex; i++) {
218
+ listItemContent = listItemContent.append(list.child(i).content);
219
+ }
220
+
221
+ if (isAtTop) {
222
+ for (var _i = 0; _i < listItemContent.childCount; _i++) {
223
+ var child = listItemContent.child(_i);
224
+
225
+ if (child && (0, _node.isListNode)(child) && child.type !== list.type) {
226
+ var newNestedList = list.type.create(null, child.content);
227
+ listItemContent = listItemContent.replaceChild(_i, newNestedList);
228
+ }
229
+ }
230
+ }
231
+
232
+ var nextListFragment = listItemContent.append(_prosemirrorModel.Fragment.from(list.copy(_prosemirrorModel.Fragment.empty)));
233
+
234
+ if (isTheEntireList) {
235
+ var slice = new _prosemirrorModel.Slice(listItemContent, 0, 0);
236
+ var step = new _prosemirrorTransform.ReplaceStep($start.pos - 1, range.end + 1, slice, false);
237
+ tr.step(step);
238
+ } else if (isAtTop) {
239
+ var _slice = new _prosemirrorModel.Slice(nextListFragment, 0, 1);
240
+
241
+ var _step = new _prosemirrorTransform.ReplaceStep($start.pos - 1, range.end, _slice, false);
242
+
243
+ tr.step(_step);
244
+ } else if (isAtBottom) {
245
+ var _slice2 = new _prosemirrorModel.Slice(listItemContent, 1, 0);
246
+
247
+ var _step2 = new _prosemirrorTransform.ReplaceStep($start.pos, listEnd + 1, _slice2, false);
248
+
249
+ tr.step(_step2);
250
+ } else {
251
+ var _slice3 = new _prosemirrorModel.Slice(nextListFragment, 1, 1);
252
+
253
+ var _step3 = new _prosemirrorTransform.ReplaceAroundStep($start.pos, listEnd, range.end, listEnd, _slice3, _slice3.size, false);
254
+
255
+ tr.step(_step3);
256
+ }
257
+ };
258
+
259
+ var findPreviousListItemSibling = function findPreviousListItemSibling($pos) {
260
+ var doc = $pos.doc;
261
+ var isPositionListItem = (0, _node.isListNode)($pos.node());
262
+ var listItemPosition = $pos;
263
+
264
+ if (!isPositionListItem) {
265
+ var listItem = (0, _find.findFirstParentListItemNode)($pos);
266
+
267
+ if (!listItem) {
268
+ return null;
269
+ }
270
+
271
+ return doc.resolve(listItem.pos);
272
+ }
273
+
274
+ var resolved = doc.resolve(listItemPosition.pos);
275
+
276
+ var foundPosition = _prosemirrorState.Selection.findFrom(resolved, -1);
277
+
278
+ if (!foundPosition) {
279
+ return null;
280
+ }
281
+
282
+ var parentListItemNode = (0, _find.findFirstParentListItemNode)(foundPosition.$from);
283
+
284
+ if (!parentListItemNode) {
285
+ return null;
286
+ }
287
+
288
+ return doc.resolve(parentListItemNode.pos);
289
+ };