@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,383 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.SelectionBasedNodeView = void 0;
9
+
10
+ var React = _interopRequireWildcard(require("react"));
11
+
12
+ var _prosemirrorState = require("prosemirror-state");
13
+
14
+ var _reactNodeView = require("../plugins/base/pm-plugins/reactNodeView");
15
+
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
20
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
21
+
22
+ function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
23
+
24
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
25
+
26
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
27
+
28
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
29
+
30
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
31
+
32
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
33
+
34
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
+
36
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
37
+
38
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
39
+
40
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
+
42
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
43
+
44
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
45
+
46
+ var ReactNodeView = /*#__PURE__*/function () {
47
+ function ReactNodeView(node, view, getPos, portalProviderAPI, reactComponentProps, reactComponent) {
48
+ var hasContext = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
49
+ var viewShouldUpdate = arguments.length > 7 ? arguments[7] : undefined;
50
+
51
+ _classCallCheck(this, ReactNodeView);
52
+
53
+ _initialiseProps.call(this);
54
+
55
+ this.node = node;
56
+ this.view = view;
57
+ this.getPos = getPos;
58
+ this.portalProviderAPI = portalProviderAPI;
59
+ this.reactComponentProps = reactComponentProps || {};
60
+ this.reactComponent = reactComponent;
61
+ this.hasContext = hasContext;
62
+ this._viewShouldUpdate = viewShouldUpdate;
63
+ }
64
+ /**
65
+ * This method exists to move initialization logic out of the constructor,
66
+ * so object can be initialized properly before calling render first time.
67
+ *
68
+ * Example:
69
+ * Instance properties get added to an object only after super call in
70
+ * constructor, which leads to some methods being undefined during the
71
+ * first render.
72
+ */
73
+
74
+
75
+ _createClass(ReactNodeView, [{
76
+ key: "init",
77
+ value: function init() {
78
+ var _this = this;
79
+
80
+ this.domRef = this.createDomRef();
81
+ this.setDomAttrs(this.node, this.domRef);
82
+
83
+ var _ref = this.getContentDOM() || {
84
+ dom: undefined,
85
+ contentDOM: undefined
86
+ },
87
+ contentDOMWrapper = _ref.dom,
88
+ contentDOM = _ref.contentDOM;
89
+
90
+ if (this.domRef && contentDOMWrapper) {
91
+ this.domRef.appendChild(contentDOMWrapper);
92
+ this.contentDOM = contentDOM ? contentDOM : contentDOMWrapper;
93
+ this.contentDOMWrapper = contentDOMWrapper || contentDOM;
94
+ } // @see ED-3790
95
+ // something gets messed up during mutation processing inside of a
96
+ // nodeView if DOM structure has nested plain "div"s, it doesn't see the
97
+ // difference between them and it kills the nodeView
98
+
99
+
100
+ this.domRef.classList.add("".concat(this.node.type.name, "View-content-wrap"));
101
+ this.renderReactComponent(function () {
102
+ return _this.render(_this.reactComponentProps, _this.handleRef);
103
+ });
104
+ return this;
105
+ }
106
+ }, {
107
+ key: "renderReactComponent",
108
+ value: function renderReactComponent(component) {
109
+ if (!this.domRef || !component) {
110
+ return;
111
+ }
112
+
113
+ this.portalProviderAPI.render(component, this.domRef, this.hasContext);
114
+ }
115
+ }, {
116
+ key: "createDomRef",
117
+ value: function createDomRef() {
118
+ return this.node.isInline ? document.createElement('span') : document.createElement('div');
119
+ }
120
+ }, {
121
+ key: "getContentDOM",
122
+ value: function getContentDOM() {
123
+ return undefined;
124
+ }
125
+ }, {
126
+ key: "_handleRef",
127
+ value: function _handleRef(node) {
128
+ var contentDOM = this.contentDOMWrapper || this.contentDOM; // move the contentDOM node inside the inner reference after rendering
129
+
130
+ if (node && contentDOM && !node.contains(contentDOM)) {
131
+ node.appendChild(contentDOM);
132
+ }
133
+ }
134
+ }, {
135
+ key: "render",
136
+ value: function render(props, forwardRef) {
137
+ return this.reactComponent ? /*#__PURE__*/React.createElement(this.reactComponent, _extends({
138
+ view: this.view,
139
+ getPos: this.getPos,
140
+ node: this.node,
141
+ forwardRef: forwardRef
142
+ }, props)) : null;
143
+ } //@ts-ignore
144
+
145
+ }, {
146
+ key: "update",
147
+ value: function update(node, _decorations) {
148
+ var _this2 = this;
149
+
150
+ var validUpdate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {
151
+ return true;
152
+ };
153
+ // @see https://github.com/ProseMirror/prosemirror/issues/648
154
+ var isValidUpdate = this.node.type === node.type && validUpdate(this.node, node);
155
+
156
+ if (!isValidUpdate) {
157
+ return false;
158
+ }
159
+
160
+ if (this.domRef && !this.node.sameMarkup(node)) {
161
+ this.setDomAttrs(node, this.domRef);
162
+ } // View should not process a re-render if this is false.
163
+ // We dont want to destroy the view, so we return true.
164
+
165
+
166
+ if (!this.viewShouldUpdate(node)) {
167
+ this.node = node;
168
+ return true;
169
+ }
170
+
171
+ this.node = node;
172
+ this.renderReactComponent(function () {
173
+ return _this2.render(_this2.reactComponentProps, _this2.handleRef);
174
+ });
175
+ return true;
176
+ }
177
+ }, {
178
+ key: "viewShouldUpdate",
179
+ value: function viewShouldUpdate(nextNode) {
180
+ if (this._viewShouldUpdate) {
181
+ return this._viewShouldUpdate(nextNode);
182
+ }
183
+
184
+ return true;
185
+ }
186
+ /**
187
+ * Copies the attributes from a ProseMirror Node to a DOM node.
188
+ * @param node The Prosemirror Node from which to source the attributes
189
+ */
190
+
191
+ }, {
192
+ key: "setDomAttrs",
193
+ value: function setDomAttrs(node, element) {
194
+ Object.keys(node.attrs || {}).forEach(function (attr) {
195
+ element.setAttribute(attr, node.attrs[attr]);
196
+ });
197
+ }
198
+ }, {
199
+ key: "dom",
200
+ get: function get() {
201
+ return this.domRef;
202
+ }
203
+ }, {
204
+ key: "destroy",
205
+ value: function destroy() {
206
+ if (!this.domRef) {
207
+ return;
208
+ }
209
+
210
+ this.portalProviderAPI.remove(this.domRef);
211
+ this.domRef = undefined;
212
+ this.contentDOM = undefined;
213
+ }
214
+ }], [{
215
+ key: "fromComponent",
216
+ value: function fromComponent(component, portalProviderAPI, props, viewShouldUpdate) {
217
+ return function (node, view, getPos) {
218
+ return new ReactNodeView(node, view, getPos, portalProviderAPI, props, component, false, viewShouldUpdate).init();
219
+ };
220
+ }
221
+ }]);
222
+
223
+ return ReactNodeView;
224
+ }();
225
+ /**
226
+ * A ReactNodeView that handles React components sensitive
227
+ * to selection changes.
228
+ *
229
+ * If the selection changes, it will attempt to re-render the
230
+ * React component. Otherwise it does nothing.
231
+ *
232
+ * You can subclass `viewShouldUpdate` to include other
233
+ * props that your component might want to consider before
234
+ * entering the React lifecycle. These are usually props you
235
+ * compare in `shouldComponentUpdate`.
236
+ *
237
+ * An example:
238
+ *
239
+ * ```
240
+ * viewShouldUpdate(nextNode) {
241
+ * if (nextNode.attrs !== this.node.attrs) {
242
+ * return true;
243
+ * }
244
+ *
245
+ * return super.viewShouldUpdate(nextNode);
246
+ * }```
247
+ */
248
+
249
+
250
+ exports["default"] = ReactNodeView;
251
+
252
+ var _initialiseProps = function _initialiseProps() {
253
+ var _this3 = this;
254
+
255
+ this.handleRef = function (node) {
256
+ return _this3._handleRef(node);
257
+ };
258
+ };
259
+
260
+ var SelectionBasedNodeView = /*#__PURE__*/function (_ReactNodeView) {
261
+ _inherits(SelectionBasedNodeView, _ReactNodeView);
262
+
263
+ var _super = _createSuper(SelectionBasedNodeView);
264
+
265
+ function SelectionBasedNodeView(node, view, getPos, portalProviderAPI, reactComponentProps, reactComponent) {
266
+ var _this4;
267
+
268
+ var hasContext = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
269
+ var viewShouldUpdate = arguments.length > 7 ? arguments[7] : undefined;
270
+
271
+ _classCallCheck(this, SelectionBasedNodeView);
272
+
273
+ _this4 = _super.call(this, node, view, getPos, portalProviderAPI, reactComponentProps, reactComponent, hasContext, viewShouldUpdate);
274
+
275
+ _this4.isSelectionInsideNode = function (from, to, pos, posEnd) {
276
+ pos = typeof pos !== 'number' ? _this4.pos : pos;
277
+ posEnd = typeof posEnd !== 'number' ? _this4.posEnd : posEnd;
278
+
279
+ if (typeof pos !== 'number' || typeof posEnd !== 'number') {
280
+ return false;
281
+ }
282
+
283
+ return pos < from && to < posEnd;
284
+ };
285
+
286
+ _this4.isSelectedNode = function (selection) {
287
+ if (selection instanceof _prosemirrorState.NodeSelection) {
288
+ var _this4$view$state$sel = _this4.view.state.selection,
289
+ from = _this4$view$state$sel.from,
290
+ to = _this4$view$state$sel.to;
291
+ return selection.node === _this4.node || // If nodes are not the same object, we check if they are referring to the same document node
292
+ _this4.pos === from && _this4.posEnd === to && selection.node.eq(_this4.node);
293
+ }
294
+
295
+ return false;
296
+ };
297
+
298
+ _this4.insideSelection = function () {
299
+ var _this4$view$state$sel2 = _this4.view.state.selection,
300
+ from = _this4$view$state$sel2.from,
301
+ to = _this4$view$state$sel2.to;
302
+ return _this4.isSelectedNode(_this4.view.state.selection) || _this4.isSelectionInsideNode(from, to);
303
+ };
304
+
305
+ _this4.onSelectionChange = function () {
306
+ _this4.update(_this4.node, []);
307
+ };
308
+
309
+ _this4.updatePos();
310
+
311
+ _this4.oldSelection = view.state.selection;
312
+ _this4.selectionChangeState = _reactNodeView.stateKey.getState(_this4.view.state);
313
+
314
+ _this4.selectionChangeState.subscribe(_this4.onSelectionChange);
315
+
316
+ return _this4;
317
+ }
318
+ /**
319
+ * Update current node's start and end positions.
320
+ *
321
+ * Prefer `this.pos` rather than getPos(), because calling getPos is
322
+ * expensive, unless you know you're definitely going to render.
323
+ */
324
+
325
+
326
+ _createClass(SelectionBasedNodeView, [{
327
+ key: "updatePos",
328
+ value: function updatePos() {
329
+ if (typeof this.getPos === 'boolean') {
330
+ return;
331
+ }
332
+
333
+ this.pos = this.getPos();
334
+ this.posEnd = this.pos + this.node.nodeSize;
335
+ }
336
+ }, {
337
+ key: "viewShouldUpdate",
338
+ value: function viewShouldUpdate(_nextNode) {
339
+ var selection = this.view.state.selection; // update selection
340
+
341
+ var oldSelection = this.oldSelection;
342
+ this.oldSelection = selection; // update cached positions
343
+
344
+ var oldPos = this.pos,
345
+ oldPosEnd = this.posEnd;
346
+ this.updatePos();
347
+ var from = selection.from,
348
+ to = selection.to;
349
+ var oldFrom = oldSelection.from,
350
+ oldTo = oldSelection.to;
351
+
352
+ if (this.node.type.spec.selectable) {
353
+ var newNodeSelection = selection instanceof _prosemirrorState.NodeSelection && selection.from === this.pos;
354
+ var oldNodeSelection = oldSelection instanceof _prosemirrorState.NodeSelection && oldSelection.from === this.pos;
355
+
356
+ if (newNodeSelection && !oldNodeSelection || oldNodeSelection && !newNodeSelection) {
357
+ return true;
358
+ }
359
+ }
360
+
361
+ var movedInToSelection = this.isSelectionInsideNode(from, to) && !this.isSelectionInsideNode(oldFrom, oldTo);
362
+ var movedOutOfSelection = !this.isSelectionInsideNode(from, to) && this.isSelectionInsideNode(oldFrom, oldTo);
363
+ var moveOutFromOldSelection = this.isSelectionInsideNode(from, to, oldPos, oldPosEnd) && !this.isSelectionInsideNode(from, to);
364
+
365
+ if (movedInToSelection || movedOutOfSelection || moveOutFromOldSelection) {
366
+ return true;
367
+ }
368
+
369
+ return false;
370
+ }
371
+ }, {
372
+ key: "destroy",
373
+ value: function destroy() {
374
+ this.selectionChangeState.unsubscribe(this.onSelectionChange);
375
+
376
+ _get(_getPrototypeOf(SelectionBasedNodeView.prototype), "destroy", this).call(this);
377
+ }
378
+ }]);
379
+
380
+ return SelectionBasedNodeView;
381
+ }(ReactNodeView);
382
+
383
+ exports.SelectionBasedNodeView = SelectionBasedNodeView;
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PortalRenderer = exports.PortalProviderAPI = exports.PortalProvider = void 0;
9
+
10
+ var React = _interopRequireWildcard(require("react"));
11
+
12
+ var _reactDom = require("react-dom");
13
+
14
+ var _event = require("../utils/event");
15
+
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
20
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
+
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
28
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
29
+
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+
32
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33
+
34
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
35
+
36
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
37
+
38
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
39
+
40
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
41
+
42
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
43
+
44
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
45
+
46
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
47
+
48
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
+
50
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
51
+
52
+ var PortalProviderAPI = /*#__PURE__*/function (_EventDispatcher) {
53
+ _inherits(PortalProviderAPI, _EventDispatcher);
54
+
55
+ var _super = _createSuper(PortalProviderAPI);
56
+
57
+ function PortalProviderAPI() {
58
+ var _this;
59
+
60
+ _classCallCheck(this, PortalProviderAPI);
61
+
62
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
63
+ args[_key] = arguments[_key];
64
+ }
65
+
66
+ return _possibleConstructorReturn(_this, (_this = _super.call.apply(_super, [this].concat(args)), _this.portals = new Map(), _this.setContext = function (context) {
67
+ _this.context = context;
68
+ }, _assertThisInitialized(_this)));
69
+ }
70
+
71
+ _createClass(PortalProviderAPI, [{
72
+ key: "render",
73
+ value: function render(children, container) {
74
+ var hasReactContext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
75
+ this.portals.set(container, {
76
+ children: children,
77
+ hasReactContext: hasReactContext
78
+ });
79
+ (0, _reactDom.unstable_renderSubtreeIntoContainer)(this.context, children(), container);
80
+ } // TODO: until https://product-fabric.atlassian.net/browse/ED-5013
81
+ // we (unfortunately) need to re-render to pass down any updated context.
82
+ // selectively do this for nodeviews that opt-in via `hasReactContext`
83
+
84
+ }, {
85
+ key: "forceUpdate",
86
+ value: function forceUpdate() {
87
+ var _this2 = this;
88
+
89
+ this.portals.forEach(function (portal, container) {
90
+ if (!portal.hasReactContext) {
91
+ return;
92
+ }
93
+
94
+ (0, _reactDom.unstable_renderSubtreeIntoContainer)(_this2.context, portal.children(), container);
95
+ });
96
+ }
97
+ }, {
98
+ key: "remove",
99
+ value: function remove(container) {
100
+ this.portals["delete"](container);
101
+ (0, _reactDom.unmountComponentAtNode)(container);
102
+ }
103
+ }]);
104
+
105
+ return PortalProviderAPI;
106
+ }(_event.EventDispatcher);
107
+
108
+ exports.PortalProviderAPI = PortalProviderAPI;
109
+
110
+ var PortalProvider = /*#__PURE__*/function (_React$Component) {
111
+ _inherits(PortalProvider, _React$Component);
112
+
113
+ var _super2 = _createSuper(PortalProvider);
114
+
115
+ function PortalProvider(props) {
116
+ var _this3;
117
+
118
+ _classCallCheck(this, PortalProvider);
119
+
120
+ _this3 = _super2.call(this, props);
121
+ _this3.portalProviderAPI = new PortalProviderAPI();
122
+ return _this3;
123
+ }
124
+
125
+ _createClass(PortalProvider, [{
126
+ key: "render",
127
+ value: function render() {
128
+ return this.props.render(this.portalProviderAPI);
129
+ }
130
+ }, {
131
+ key: "componentDidUpdate",
132
+ value: function componentDidUpdate() {
133
+ this.portalProviderAPI.forceUpdate();
134
+ }
135
+ }]);
136
+
137
+ return PortalProvider;
138
+ }(React.Component);
139
+
140
+ exports.PortalProvider = PortalProvider;
141
+
142
+ var PortalRenderer = /*#__PURE__*/function (_React$Component2) {
143
+ _inherits(PortalRenderer, _React$Component2);
144
+
145
+ var _super3 = _createSuper(PortalRenderer);
146
+
147
+ function PortalRenderer(props) {
148
+ var _this4;
149
+
150
+ _classCallCheck(this, PortalRenderer);
151
+
152
+ _this4 = _super3.call(this, props);
153
+
154
+ _this4.handleUpdate = function (portals) {
155
+ return _this4.setState({
156
+ portals: portals
157
+ });
158
+ };
159
+
160
+ props.portalProviderAPI.setContext(_assertThisInitialized(_this4));
161
+ props.portalProviderAPI.on('update', _this4.handleUpdate);
162
+ _this4.state = {
163
+ portals: new Map()
164
+ };
165
+ return _this4;
166
+ }
167
+
168
+ _createClass(PortalRenderer, [{
169
+ key: "render",
170
+ value: function render() {
171
+ var portals = this.state.portals;
172
+ return /*#__PURE__*/React.createElement(React.Fragment, null, Array.from(portals.entries()).map(function (_ref) {
173
+ var _ref2 = _slicedToArray(_ref, 2),
174
+ container = _ref2[0],
175
+ children = _ref2[1];
176
+
177
+ return /*#__PURE__*/(0, _reactDom.createPortal)(children, container);
178
+ }));
179
+ }
180
+ }]);
181
+
182
+ return PortalRenderer;
183
+ }(React.Component);
184
+
185
+ exports.PortalRenderer = PortalRenderer;