@atlaskit/editor-common 100.1.0 → 100.1.2
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.
- package/CHANGELOG.md +21 -0
- package/dist/cjs/extensibility/ExtensionComponent.js +72 -374
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/ui/Mention/index.js +1 -13
- package/dist/cjs/ui/Mention/mention-with-providers.js +2 -105
- package/dist/cjs/ui-menu/DropdownMenu/index.js +1 -1
- package/dist/cjs/utils/editor-core-utils.js +6 -1
- package/dist/es2019/extensibility/ExtensionComponent.js +7 -287
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/ui/Mention/index.js +2 -14
- package/dist/es2019/ui/Mention/mention-with-providers.js +2 -83
- package/dist/es2019/ui-menu/DropdownMenu/index.js +3 -1
- package/dist/es2019/utils/editor-core-utils.js +6 -1
- package/dist/esm/extensibility/ExtensionComponent.js +69 -372
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/ui/Mention/index.js +2 -14
- package/dist/esm/ui/Mention/mention-with-providers.js +2 -105
- package/dist/esm/ui-menu/DropdownMenu/index.js +3 -1
- package/dist/esm/utils/editor-core-utils.js +6 -1
- package/dist/types/extensibility/ExtensionComponent.d.ts +1 -29
- package/dist/types/ui/Mention/mention-with-providers.d.ts +1 -8
- package/dist/types/ui-menu/DropdownMenu/index.d.ts +0 -4
- package/dist/types-ts4.5/extensibility/ExtensionComponent.d.ts +1 -29
- package/dist/types-ts4.5/ui/Mention/mention-with-providers.d.ts +1 -8
- package/dist/types-ts4.5/ui-menu/DropdownMenu/index.d.ts +0 -4
- package/package.json +9 -12
|
@@ -2,6 +2,7 @@ import { AllSelection, NodeSelection, TextSelection } from '@atlaskit/editor-pro
|
|
|
2
2
|
import { ReplaceAroundStep, ReplaceStep } from '@atlaskit/editor-prosemirror/transform';
|
|
3
3
|
import { hasParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
|
|
4
4
|
import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
|
|
5
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
6
|
import { closest } from './dom';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -43,7 +44,11 @@ export const extractSliceFromStep = step => {
|
|
|
43
44
|
};
|
|
44
45
|
export const isTextSelection = selection => selection instanceof TextSelection;
|
|
45
46
|
export const isElementInTableCell = element => {
|
|
46
|
-
|
|
47
|
+
if (fg('platform_editor_nested_tables_column_drag_fix')) {
|
|
48
|
+
return closest(element, 'td, th');
|
|
49
|
+
} else {
|
|
50
|
+
return closest(element, 'td') || closest(element, 'th');
|
|
51
|
+
}
|
|
47
52
|
};
|
|
48
53
|
export const isLastItemMediaGroup = node => {
|
|
49
54
|
const {
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
5
2
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
6
3
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
@@ -8,6 +5,9 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
8
5
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
9
6
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
10
7
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
9
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
10
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
11
11
|
var _excluded = ["extensionProvider", "showLivePagesBodiedMacrosRendererView", "node"];
|
|
12
12
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
13
13
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
@@ -16,7 +16,6 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
16
16
|
import React, { Component, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
17
17
|
import memoizeOne from 'memoize-one';
|
|
18
18
|
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
19
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
20
19
|
import { getExtensionModuleNodePrivateProps, getNodeRenderer } from '../extensions';
|
|
21
20
|
import { getExtensionRenderer, nodeToJSON, toJSON } from '../utils';
|
|
22
21
|
import Extension from './Extension/Extension';
|
|
@@ -35,17 +34,54 @@ var getBodiedExtensionContent = function getBodiedExtensionContent(node) {
|
|
|
35
34
|
});
|
|
36
35
|
return !!bodiedExtensionContent.length ? bodiedExtensionContent : node.attrs.text;
|
|
37
36
|
};
|
|
38
|
-
export var
|
|
39
|
-
|
|
37
|
+
export var ExtensionComponent = function ExtensionComponent(props) {
|
|
38
|
+
var extensionProviderResolver = props.extensionProvider,
|
|
39
|
+
showLivePagesBodiedMacrosRendererView = props.showLivePagesBodiedMacrosRendererView,
|
|
40
|
+
node = props.node,
|
|
41
|
+
restProps = _objectWithoutProperties(props, _excluded);
|
|
42
|
+
var _useState = useState(undefined),
|
|
43
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
44
|
+
extensionProvider = _useState2[0],
|
|
45
|
+
setExtensionProvider = _useState2[1];
|
|
46
|
+
var _useState3 = useState(!!(showLivePagesBodiedMacrosRendererView !== null && showLivePagesBodiedMacrosRendererView !== void 0 && showLivePagesBodiedMacrosRendererView(nodeToJSON(node))) && !isEmptyBodiedMacro(node)),
|
|
47
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
48
|
+
showBodiedExtensionRendererView = _useState4[0],
|
|
49
|
+
setShowBodiedExtensionRendererView = _useState4[1];
|
|
50
|
+
var mountedRef = useRef(true);
|
|
51
|
+
useLayoutEffect(function () {
|
|
52
|
+
mountedRef.current = true;
|
|
53
|
+
return function () {
|
|
54
|
+
mountedRef.current = false;
|
|
55
|
+
};
|
|
56
|
+
}, []);
|
|
57
|
+
useEffect(function () {
|
|
58
|
+
extensionProviderResolver === null || extensionProviderResolver === void 0 || extensionProviderResolver.then(function (provider) {
|
|
59
|
+
if (mountedRef.current) {
|
|
60
|
+
setExtensionProvider(provider);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}, [extensionProviderResolver]);
|
|
64
|
+
return /*#__PURE__*/React.createElement(ExtensionComponentInner
|
|
65
|
+
// Ignored via go/ees005
|
|
66
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
67
|
+
, _extends({}, restProps, {
|
|
68
|
+
extensionProvider: extensionProvider,
|
|
69
|
+
node: node,
|
|
70
|
+
showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
|
|
71
|
+
showBodiedExtensionRendererView: showBodiedExtensionRendererView,
|
|
72
|
+
setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView
|
|
73
|
+
}));
|
|
74
|
+
};
|
|
75
|
+
var ExtensionComponentInner = /*#__PURE__*/function (_Component) {
|
|
76
|
+
function ExtensionComponentInner() {
|
|
40
77
|
var _this;
|
|
41
|
-
_classCallCheck(this,
|
|
78
|
+
_classCallCheck(this, ExtensionComponentInner);
|
|
42
79
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
43
80
|
args[_key] = arguments[_key];
|
|
44
81
|
}
|
|
45
|
-
_this = _callSuper(this,
|
|
82
|
+
_this = _callSuper(this, ExtensionComponentInner, [].concat(args));
|
|
46
83
|
_defineProperty(_this, "privatePropsParsed", false);
|
|
47
84
|
_defineProperty(_this, "state", {});
|
|
48
|
-
_defineProperty(_this, "mounted", false);
|
|
49
85
|
// memoized to avoid rerender on extension state changes
|
|
50
86
|
_defineProperty(_this, "getNodeRenderer", memoizeOne(getNodeRenderer));
|
|
51
87
|
_defineProperty(_this, "getExtensionModuleNodePrivateProps", memoizeOne(getExtensionModuleNodePrivateProps));
|
|
@@ -57,21 +93,6 @@ export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
|
57
93
|
});
|
|
58
94
|
}
|
|
59
95
|
});
|
|
60
|
-
_defineProperty(_this, "setShowBodiedExtensionRendererView", function (showRendererView) {
|
|
61
|
-
_this.setState({
|
|
62
|
-
showBodiedExtensionRendererView: showRendererView
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
// Ignored via go/ees005
|
|
66
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
-
_defineProperty(_this, "setStateFromPromise", function (stateKey, promise) {
|
|
68
|
-
promise && promise.then(function (p) {
|
|
69
|
-
if (!_this.mounted) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
_this.setState(_defineProperty({}, stateKey, p));
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
96
|
/**
|
|
76
97
|
* Parses any private nodes once an extension provider is available.
|
|
77
98
|
*
|
|
@@ -84,7 +105,7 @@ export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
|
84
105
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
85
106
|
while (1) switch (_context.prev = _context.next) {
|
|
86
107
|
case 0:
|
|
87
|
-
if (!(_this.privatePropsParsed || !_this.
|
|
108
|
+
if (!(_this.privatePropsParsed || !_this.props.extensionProvider)) {
|
|
88
109
|
_context.next = 2;
|
|
89
110
|
break;
|
|
90
111
|
}
|
|
@@ -98,7 +119,7 @@ export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
|
98
119
|
*/
|
|
99
120
|
_context.prev = 4;
|
|
100
121
|
_context.next = 7;
|
|
101
|
-
return _this.getExtensionModuleNodePrivateProps(_this.
|
|
122
|
+
return _this.getExtensionModuleNodePrivateProps(_this.props.extensionProvider, extensionType, extensionKey);
|
|
102
123
|
case 7:
|
|
103
124
|
privateProps = _context.sent;
|
|
104
125
|
_this.setState({
|
|
@@ -124,8 +145,8 @@ export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
|
124
145
|
var _this$props = _this.props,
|
|
125
146
|
extensionHandlers = _this$props.extensionHandlers,
|
|
126
147
|
editorView = _this$props.editorView,
|
|
148
|
+
showBodiedExtensionRendererView = _this$props.showBodiedExtensionRendererView,
|
|
127
149
|
rendererExtensionHandlers = _this$props.rendererExtensionHandlers;
|
|
128
|
-
var showBodiedExtensionRendererView = _this.state.showBodiedExtensionRendererView; // State will only be true if the gate is on and meets requirements
|
|
129
150
|
var _pmNode$attrs = pmNode.attrs,
|
|
130
151
|
extensionType = _pmNode$attrs.extensionType,
|
|
131
152
|
extensionKey = _pmNode$attrs.extensionKey,
|
|
@@ -161,7 +182,7 @@ export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
|
161
182
|
result = render(node, editorView.state.doc, actions);
|
|
162
183
|
}
|
|
163
184
|
if (!result) {
|
|
164
|
-
var extensionHandlerFromProvider = _this.
|
|
185
|
+
var extensionHandlerFromProvider = _this.props.extensionProvider && _this.getNodeRenderer(_this.props.extensionProvider, extensionType, extensionKey);
|
|
165
186
|
if (extensionHandlerFromProvider) {
|
|
166
187
|
var NodeRenderer = extensionHandlerFromProvider;
|
|
167
188
|
if (node.type === 'multiBodiedExtension') {
|
|
@@ -182,321 +203,7 @@ export var ExtensionComponentOld = /*#__PURE__*/function (_Component) {
|
|
|
182
203
|
});
|
|
183
204
|
return _this;
|
|
184
205
|
}
|
|
185
|
-
_inherits(
|
|
186
|
-
return _createClass(ExtensionComponentOld, [{
|
|
187
|
-
key: "UNSAFE_componentWillMount",
|
|
188
|
-
value:
|
|
189
|
-
// Ignored via go/ees005
|
|
190
|
-
// eslint-disable-next-line react/no-unsafe
|
|
191
|
-
function UNSAFE_componentWillMount() {
|
|
192
|
-
this.mounted = true;
|
|
193
|
-
var _this$props2 = this.props,
|
|
194
|
-
node = _this$props2.node,
|
|
195
|
-
showLivePagesBodiedMacrosRendererView = _this$props2.showLivePagesBodiedMacrosRendererView;
|
|
196
|
-
// We only care about this empty state on first page load or insertion to determine the view
|
|
197
|
-
if (!!(showLivePagesBodiedMacrosRendererView !== null && showLivePagesBodiedMacrosRendererView !== void 0 && showLivePagesBodiedMacrosRendererView(nodeToJSON(node))) && !isEmptyBodiedMacro(node)) {
|
|
198
|
-
this.setState({
|
|
199
|
-
showBodiedExtensionRendererView: true
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}, {
|
|
204
|
-
key: "componentDidMount",
|
|
205
|
-
value: function componentDidMount() {
|
|
206
|
-
var extensionProvider = this.props.extensionProvider;
|
|
207
|
-
if (extensionProvider) {
|
|
208
|
-
this.setStateFromPromise('extensionProvider', extensionProvider);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}, {
|
|
212
|
-
key: "componentDidUpdate",
|
|
213
|
-
value: function componentDidUpdate() {
|
|
214
|
-
this.parsePrivateNodePropsIfNeeded();
|
|
215
|
-
}
|
|
216
|
-
}, {
|
|
217
|
-
key: "componentWillUnmount",
|
|
218
|
-
value: function componentWillUnmount() {
|
|
219
|
-
this.mounted = false;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// Ignored via go/ees005
|
|
223
|
-
// eslint-disable-next-line react/no-unsafe
|
|
224
|
-
}, {
|
|
225
|
-
key: "UNSAFE_componentWillReceiveProps",
|
|
226
|
-
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
227
|
-
var extensionProvider = nextProps.extensionProvider;
|
|
228
|
-
if (extensionProvider && this.props.extensionProvider !== extensionProvider) {
|
|
229
|
-
this.setStateFromPromise('extensionProvider', extensionProvider);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}, {
|
|
233
|
-
key: "render",
|
|
234
|
-
value: function render() {
|
|
235
|
-
var _this$state$_privateP;
|
|
236
|
-
var _this$props3 = this.props,
|
|
237
|
-
node = _this$props3.node,
|
|
238
|
-
handleContentDOMRef = _this$props3.handleContentDOMRef,
|
|
239
|
-
editorView = _this$props3.editorView,
|
|
240
|
-
references = _this$props3.references,
|
|
241
|
-
editorAppearance = _this$props3.editorAppearance,
|
|
242
|
-
pluginInjectionApi = _this$props3.pluginInjectionApi,
|
|
243
|
-
getPos = _this$props3.getPos,
|
|
244
|
-
eventDispatcher = _this$props3.eventDispatcher,
|
|
245
|
-
macroInteractionDesignFeatureFlags = _this$props3.macroInteractionDesignFeatureFlags,
|
|
246
|
-
showLivePagesBodiedMacrosRendererView = _this$props3.showLivePagesBodiedMacrosRendererView,
|
|
247
|
-
showUpdatedLivePages1PBodiedExtensionUI = _this$props3.showUpdatedLivePages1PBodiedExtensionUI,
|
|
248
|
-
isLivePageViewMode = _this$props3.isLivePageViewMode;
|
|
249
|
-
var selection = editorView.state.selection;
|
|
250
|
-
var selectedNode = selection instanceof NodeSelection && selection.node;
|
|
251
|
-
var position = typeof getPos === 'function' && getPos();
|
|
252
|
-
var resolvedPosition = position && editorView.state.doc.resolve(position);
|
|
253
|
-
var isNodeNested = !!(resolvedPosition && resolvedPosition.depth > 0);
|
|
254
|
-
if (node.type.name === 'multiBodiedExtension') {
|
|
255
|
-
return /*#__PURE__*/React.createElement(MultiBodiedExtension, {
|
|
256
|
-
node: node,
|
|
257
|
-
editorView: editorView,
|
|
258
|
-
getPos: getPos,
|
|
259
|
-
handleContentDOMRef: handleContentDOMRef,
|
|
260
|
-
tryExtensionHandler: this.tryExtensionHandler.bind(this),
|
|
261
|
-
eventDispatcher: eventDispatcher,
|
|
262
|
-
pluginInjectionApi: pluginInjectionApi,
|
|
263
|
-
editorAppearance: editorAppearance,
|
|
264
|
-
macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
|
|
265
|
-
isNodeSelected: selectedNode === node,
|
|
266
|
-
isNodeNested: isNodeNested,
|
|
267
|
-
isNodeHovered: this.state.isNodeHovered,
|
|
268
|
-
setIsNodeHovered: this.setIsNodeHovered,
|
|
269
|
-
isLivePageViewMode: isLivePageViewMode
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
var extensionHandlerResult = this.tryExtensionHandler(undefined);
|
|
273
|
-
switch (node.type.name) {
|
|
274
|
-
case 'extension':
|
|
275
|
-
case 'bodiedExtension':
|
|
276
|
-
return /*#__PURE__*/React.createElement(Extension, {
|
|
277
|
-
node: node,
|
|
278
|
-
getPos: this.props.getPos,
|
|
279
|
-
references: references,
|
|
280
|
-
extensionProvider: this.state.extensionProvider,
|
|
281
|
-
handleContentDOMRef: handleContentDOMRef,
|
|
282
|
-
view: editorView,
|
|
283
|
-
editorAppearance: editorAppearance,
|
|
284
|
-
hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
|
|
285
|
-
pluginInjectionApi: pluginInjectionApi,
|
|
286
|
-
macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
|
|
287
|
-
isNodeSelected: selectedNode === node,
|
|
288
|
-
isNodeHovered: this.state.isNodeHovered,
|
|
289
|
-
isNodeNested: isNodeNested,
|
|
290
|
-
setIsNodeHovered: this.setIsNodeHovered,
|
|
291
|
-
showLivePagesBodiedMacrosRendererView: !!(showLivePagesBodiedMacrosRendererView !== null && showLivePagesBodiedMacrosRendererView !== void 0 && showLivePagesBodiedMacrosRendererView(nodeToJSON(node))),
|
|
292
|
-
showUpdatedLivePages1PBodiedExtensionUI: !!(showUpdatedLivePages1PBodiedExtensionUI !== null && showUpdatedLivePages1PBodiedExtensionUI !== void 0 && showUpdatedLivePages1PBodiedExtensionUI(nodeToJSON(node))),
|
|
293
|
-
showBodiedExtensionRendererView: this.state.showBodiedExtensionRendererView,
|
|
294
|
-
setShowBodiedExtensionRendererView: this.setShowBodiedExtensionRendererView,
|
|
295
|
-
isLivePageViewMode: isLivePageViewMode
|
|
296
|
-
}, extensionHandlerResult);
|
|
297
|
-
case 'inlineExtension':
|
|
298
|
-
return /*#__PURE__*/React.createElement(InlineExtension, {
|
|
299
|
-
node: node,
|
|
300
|
-
macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
|
|
301
|
-
isNodeSelected: selectedNode === node,
|
|
302
|
-
pluginInjectionApi: pluginInjectionApi,
|
|
303
|
-
isNodeHovered: this.state.isNodeHovered,
|
|
304
|
-
setIsNodeHovered: this.setIsNodeHovered,
|
|
305
|
-
isLivePageViewMode: isLivePageViewMode
|
|
306
|
-
}, extensionHandlerResult);
|
|
307
|
-
default:
|
|
308
|
-
return null;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
}, {
|
|
312
|
-
key: "tryExtensionHandler",
|
|
313
|
-
value: function tryExtensionHandler(actions) {
|
|
314
|
-
var node = this.props.node;
|
|
315
|
-
try {
|
|
316
|
-
var extensionContent = this.handleExtension(node, actions);
|
|
317
|
-
if (extensionContent && /*#__PURE__*/React.isValidElement(extensionContent)) {
|
|
318
|
-
return extensionContent;
|
|
319
|
-
}
|
|
320
|
-
} catch (e) {
|
|
321
|
-
// eslint-disable-next-line no-console
|
|
322
|
-
console.error('Provided extension handler has thrown an error\n', e);
|
|
323
|
-
/** We don't want this error to block renderer */
|
|
324
|
-
/** We keep rendering the default content */
|
|
325
|
-
}
|
|
326
|
-
return null;
|
|
327
|
-
}
|
|
328
|
-
}]);
|
|
329
|
-
}(Component);
|
|
330
|
-
export var ExtensionComponentNew = function ExtensionComponentNew(props) {
|
|
331
|
-
var extensionProviderResolver = props.extensionProvider,
|
|
332
|
-
showLivePagesBodiedMacrosRendererView = props.showLivePagesBodiedMacrosRendererView,
|
|
333
|
-
node = props.node,
|
|
334
|
-
restProps = _objectWithoutProperties(props, _excluded);
|
|
335
|
-
var _useState = useState(undefined),
|
|
336
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
337
|
-
extensionProvider = _useState2[0],
|
|
338
|
-
setExtensionProvider = _useState2[1];
|
|
339
|
-
var _useState3 = useState(!!(showLivePagesBodiedMacrosRendererView !== null && showLivePagesBodiedMacrosRendererView !== void 0 && showLivePagesBodiedMacrosRendererView(nodeToJSON(node))) && !isEmptyBodiedMacro(node)),
|
|
340
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
341
|
-
showBodiedExtensionRendererView = _useState4[0],
|
|
342
|
-
setShowBodiedExtensionRendererView = _useState4[1];
|
|
343
|
-
var mountedRef = useRef(true);
|
|
344
|
-
useLayoutEffect(function () {
|
|
345
|
-
mountedRef.current = true;
|
|
346
|
-
return function () {
|
|
347
|
-
mountedRef.current = false;
|
|
348
|
-
};
|
|
349
|
-
}, []);
|
|
350
|
-
useEffect(function () {
|
|
351
|
-
extensionProviderResolver === null || extensionProviderResolver === void 0 || extensionProviderResolver.then(function (provider) {
|
|
352
|
-
if (mountedRef.current) {
|
|
353
|
-
setExtensionProvider(provider);
|
|
354
|
-
}
|
|
355
|
-
});
|
|
356
|
-
}, [extensionProviderResolver]);
|
|
357
|
-
return /*#__PURE__*/React.createElement(ExtensionComponentInner
|
|
358
|
-
// Ignored via go/ees005
|
|
359
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
360
|
-
, _extends({}, restProps, {
|
|
361
|
-
extensionProvider: extensionProvider,
|
|
362
|
-
node: node,
|
|
363
|
-
showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
|
|
364
|
-
showBodiedExtensionRendererView: showBodiedExtensionRendererView,
|
|
365
|
-
setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView
|
|
366
|
-
}));
|
|
367
|
-
};
|
|
368
|
-
var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
|
|
369
|
-
function ExtensionComponentInner() {
|
|
370
|
-
var _this2;
|
|
371
|
-
_classCallCheck(this, ExtensionComponentInner);
|
|
372
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
373
|
-
args[_key2] = arguments[_key2];
|
|
374
|
-
}
|
|
375
|
-
_this2 = _callSuper(this, ExtensionComponentInner, [].concat(args));
|
|
376
|
-
_defineProperty(_this2, "privatePropsParsed", false);
|
|
377
|
-
_defineProperty(_this2, "state", {});
|
|
378
|
-
// memoized to avoid rerender on extension state changes
|
|
379
|
-
_defineProperty(_this2, "getNodeRenderer", memoizeOne(getNodeRenderer));
|
|
380
|
-
_defineProperty(_this2, "getExtensionModuleNodePrivateProps", memoizeOne(getExtensionModuleNodePrivateProps));
|
|
381
|
-
_defineProperty(_this2, "setIsNodeHovered", function (isHovered) {
|
|
382
|
-
// Don't want to show hover interactions for live page view mode
|
|
383
|
-
if (!_this2.props.isLivePageViewMode) {
|
|
384
|
-
_this2.setState({
|
|
385
|
-
isNodeHovered: isHovered
|
|
386
|
-
});
|
|
387
|
-
}
|
|
388
|
-
});
|
|
389
|
-
/**
|
|
390
|
-
* Parses any private nodes once an extension provider is available.
|
|
391
|
-
*
|
|
392
|
-
* We do this separately from resolving a node renderer component since the
|
|
393
|
-
* private props come from extension provider, rather than an extension
|
|
394
|
-
* handler which only handles `render`/component concerns.
|
|
395
|
-
*/
|
|
396
|
-
_defineProperty(_this2, "parsePrivateNodePropsIfNeeded", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
397
|
-
var _this2$props$node$att, extensionType, extensionKey, privateProps;
|
|
398
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
399
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
400
|
-
case 0:
|
|
401
|
-
if (!(_this2.privatePropsParsed || !_this2.props.extensionProvider)) {
|
|
402
|
-
_context2.next = 2;
|
|
403
|
-
break;
|
|
404
|
-
}
|
|
405
|
-
return _context2.abrupt("return");
|
|
406
|
-
case 2:
|
|
407
|
-
_this2.privatePropsParsed = true;
|
|
408
|
-
_this2$props$node$att = _this2.props.node.attrs, extensionType = _this2$props$node$att.extensionType, extensionKey = _this2$props$node$att.extensionKey;
|
|
409
|
-
/**
|
|
410
|
-
* getExtensionModuleNodePrivateProps can throw if there are issues in the
|
|
411
|
-
* manifest
|
|
412
|
-
*/
|
|
413
|
-
_context2.prev = 4;
|
|
414
|
-
_context2.next = 7;
|
|
415
|
-
return _this2.getExtensionModuleNodePrivateProps(_this2.props.extensionProvider, extensionType, extensionKey);
|
|
416
|
-
case 7:
|
|
417
|
-
privateProps = _context2.sent;
|
|
418
|
-
_this2.setState({
|
|
419
|
-
_privateProps: privateProps
|
|
420
|
-
});
|
|
421
|
-
_context2.next = 14;
|
|
422
|
-
break;
|
|
423
|
-
case 11:
|
|
424
|
-
_context2.prev = 11;
|
|
425
|
-
_context2.t0 = _context2["catch"](4);
|
|
426
|
-
// eslint-disable-next-line no-console
|
|
427
|
-
console.error('Provided extension handler has thrown an error\n', _context2.t0);
|
|
428
|
-
/** We don't want this error to block renderer */
|
|
429
|
-
/** We keep rendering the default content */
|
|
430
|
-
case 14:
|
|
431
|
-
case "end":
|
|
432
|
-
return _context2.stop();
|
|
433
|
-
}
|
|
434
|
-
}, _callee2, null, [[4, 11]]);
|
|
435
|
-
})));
|
|
436
|
-
_defineProperty(_this2, "handleExtension", function (pmNode, actions) {
|
|
437
|
-
var _pmNode$marks2;
|
|
438
|
-
var _this2$props = _this2.props,
|
|
439
|
-
extensionHandlers = _this2$props.extensionHandlers,
|
|
440
|
-
editorView = _this2$props.editorView,
|
|
441
|
-
showBodiedExtensionRendererView = _this2$props.showBodiedExtensionRendererView,
|
|
442
|
-
rendererExtensionHandlers = _this2$props.rendererExtensionHandlers;
|
|
443
|
-
var _pmNode$attrs2 = pmNode.attrs,
|
|
444
|
-
extensionType = _pmNode$attrs2.extensionType,
|
|
445
|
-
extensionKey = _pmNode$attrs2.extensionKey,
|
|
446
|
-
parameters = _pmNode$attrs2.parameters,
|
|
447
|
-
text = _pmNode$attrs2.text;
|
|
448
|
-
var isBodiedExtension = pmNode.type.name === 'bodiedExtension';
|
|
449
|
-
if (isBodiedExtension && !showBodiedExtensionRendererView) {
|
|
450
|
-
return;
|
|
451
|
-
}
|
|
452
|
-
var fragmentLocalId = pmNode === null || pmNode === void 0 || (_pmNode$marks2 = pmNode.marks) === null || _pmNode$marks2 === void 0 || (_pmNode$marks2 = _pmNode$marks2.find(function (m) {
|
|
453
|
-
return m.type.name === 'fragment';
|
|
454
|
-
})) === null || _pmNode$marks2 === void 0 || (_pmNode$marks2 = _pmNode$marks2.attrs) === null || _pmNode$marks2 === void 0 ? void 0 : _pmNode$marks2.localId;
|
|
455
|
-
var content = isBodiedExtension ? getBodiedExtensionContent(pmNode) : text;
|
|
456
|
-
var node = {
|
|
457
|
-
type: pmNode.type.name,
|
|
458
|
-
extensionType: extensionType,
|
|
459
|
-
extensionKey: extensionKey,
|
|
460
|
-
parameters: parameters,
|
|
461
|
-
content: content,
|
|
462
|
-
localId: pmNode.attrs.localId,
|
|
463
|
-
fragmentLocalId: fragmentLocalId
|
|
464
|
-
};
|
|
465
|
-
if (isBodiedExtension) {
|
|
466
|
-
var rendererExtensionHandler = rendererExtensionHandlers === null || rendererExtensionHandlers === void 0 ? void 0 : rendererExtensionHandlers[extensionType];
|
|
467
|
-
// Forge bodied extensions don't get rendererExtensionHandlers passed in and use extensionHandlerFromProvider from the below logic instead
|
|
468
|
-
if (rendererExtensionHandler) {
|
|
469
|
-
return getExtensionRenderer(rendererExtensionHandler)(node, toJSON(editorView.state.doc));
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
var result;
|
|
473
|
-
if (extensionHandlers && extensionHandlers[extensionType]) {
|
|
474
|
-
var render = getExtensionRenderer(extensionHandlers[extensionType]);
|
|
475
|
-
result = render(node, editorView.state.doc, actions);
|
|
476
|
-
}
|
|
477
|
-
if (!result) {
|
|
478
|
-
var extensionHandlerFromProvider = _this2.props.extensionProvider && _this2.getNodeRenderer(_this2.props.extensionProvider, extensionType, extensionKey);
|
|
479
|
-
if (extensionHandlerFromProvider) {
|
|
480
|
-
var NodeRenderer = extensionHandlerFromProvider;
|
|
481
|
-
if (node.type === 'multiBodiedExtension') {
|
|
482
|
-
return /*#__PURE__*/React.createElement(NodeRenderer, {
|
|
483
|
-
node: node,
|
|
484
|
-
references: _this2.props.references,
|
|
485
|
-
actions: actions
|
|
486
|
-
});
|
|
487
|
-
} else {
|
|
488
|
-
return /*#__PURE__*/React.createElement(NodeRenderer, {
|
|
489
|
-
node: node,
|
|
490
|
-
references: _this2.props.references
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
return result;
|
|
496
|
-
});
|
|
497
|
-
return _this2;
|
|
498
|
-
}
|
|
499
|
-
_inherits(ExtensionComponentInner, _Component2);
|
|
206
|
+
_inherits(ExtensionComponentInner, _Component);
|
|
500
207
|
return _createClass(ExtensionComponentInner, [{
|
|
501
208
|
key: "componentDidUpdate",
|
|
502
209
|
value: function componentDidUpdate() {
|
|
@@ -505,23 +212,23 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
|
|
|
505
212
|
}, {
|
|
506
213
|
key: "render",
|
|
507
214
|
value: function render() {
|
|
508
|
-
var _this$state$
|
|
509
|
-
var _this$
|
|
510
|
-
node = _this$
|
|
511
|
-
handleContentDOMRef = _this$
|
|
512
|
-
editorView = _this$
|
|
513
|
-
references = _this$
|
|
514
|
-
editorAppearance = _this$
|
|
515
|
-
pluginInjectionApi = _this$
|
|
516
|
-
getPos = _this$
|
|
517
|
-
eventDispatcher = _this$
|
|
518
|
-
macroInteractionDesignFeatureFlags = _this$
|
|
519
|
-
extensionProvider = _this$
|
|
520
|
-
showLivePagesBodiedMacrosRendererView = _this$
|
|
521
|
-
showUpdatedLivePages1PBodiedExtensionUI = _this$
|
|
522
|
-
showBodiedExtensionRendererView = _this$
|
|
523
|
-
setShowBodiedExtensionRendererView = _this$
|
|
524
|
-
isLivePageViewMode = _this$
|
|
215
|
+
var _this$state$_privateP;
|
|
216
|
+
var _this$props2 = this.props,
|
|
217
|
+
node = _this$props2.node,
|
|
218
|
+
handleContentDOMRef = _this$props2.handleContentDOMRef,
|
|
219
|
+
editorView = _this$props2.editorView,
|
|
220
|
+
references = _this$props2.references,
|
|
221
|
+
editorAppearance = _this$props2.editorAppearance,
|
|
222
|
+
pluginInjectionApi = _this$props2.pluginInjectionApi,
|
|
223
|
+
getPos = _this$props2.getPos,
|
|
224
|
+
eventDispatcher = _this$props2.eventDispatcher,
|
|
225
|
+
macroInteractionDesignFeatureFlags = _this$props2.macroInteractionDesignFeatureFlags,
|
|
226
|
+
extensionProvider = _this$props2.extensionProvider,
|
|
227
|
+
showLivePagesBodiedMacrosRendererView = _this$props2.showLivePagesBodiedMacrosRendererView,
|
|
228
|
+
showUpdatedLivePages1PBodiedExtensionUI = _this$props2.showUpdatedLivePages1PBodiedExtensionUI,
|
|
229
|
+
showBodiedExtensionRendererView = _this$props2.showBodiedExtensionRendererView,
|
|
230
|
+
setShowBodiedExtensionRendererView = _this$props2.setShowBodiedExtensionRendererView,
|
|
231
|
+
isLivePageViewMode = _this$props2.isLivePageViewMode;
|
|
525
232
|
var selection = editorView.state.selection;
|
|
526
233
|
var selectedNode = selection instanceof NodeSelection && selection.node;
|
|
527
234
|
var position = typeof getPos === 'function' && getPos();
|
|
@@ -557,7 +264,7 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
|
|
|
557
264
|
handleContentDOMRef: handleContentDOMRef,
|
|
558
265
|
view: editorView,
|
|
559
266
|
editorAppearance: editorAppearance,
|
|
560
|
-
hideFrame: (_this$state$
|
|
267
|
+
hideFrame: (_this$state$_privateP = this.state._privateProps) === null || _this$state$_privateP === void 0 ? void 0 : _this$state$_privateP.__hideFrame,
|
|
561
268
|
pluginInjectionApi: pluginInjectionApi,
|
|
562
269
|
macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
|
|
563
270
|
isNodeSelected: selectedNode === node,
|
|
@@ -602,14 +309,4 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component2) {
|
|
|
602
309
|
return null;
|
|
603
310
|
}
|
|
604
311
|
}]);
|
|
605
|
-
}(Component);
|
|
606
|
-
export var ExtensionComponent = function ExtensionComponent(props) {
|
|
607
|
-
if (fg('platform_editor_react18_extension_component_v2')) {
|
|
608
|
-
// Ignored via go/ees005
|
|
609
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
610
|
-
return /*#__PURE__*/React.createElement(ExtensionComponentNew, props);
|
|
611
|
-
}
|
|
612
|
-
// Ignored via go/ees005
|
|
613
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
614
|
-
return /*#__PURE__*/React.createElement(ExtensionComponentOld, props);
|
|
615
|
-
};
|
|
312
|
+
}(Component);
|
|
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
7
7
|
import { isFedRamp } from './environment';
|
|
8
8
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
9
9
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
10
|
-
var packageVersion = "100.1.
|
|
10
|
+
var packageVersion = "100.1.2";
|
|
11
11
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
12
12
|
// Remove URL as it has UGC
|
|
13
13
|
// TODO: Sanitise the URL instead of just removing it
|
|
@@ -20,7 +20,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
|
|
|
20
20
|
import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
21
21
|
import Layer from '../Layer';
|
|
22
22
|
var packageName = "@atlaskit/editor-common";
|
|
23
|
-
var packageVersion = "100.1.
|
|
23
|
+
var packageVersion = "100.1.2";
|
|
24
24
|
var halfFocusRing = 1;
|
|
25
25
|
var dropOffset = '0, 8';
|
|
26
26
|
// Ignored via go/ees005
|
|
@@ -8,9 +8,8 @@ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstruct
|
|
|
8
8
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
9
|
/* eslint-disable @repo/internal/react/no-class-components */
|
|
10
10
|
import React, { PureComponent } from 'react';
|
|
11
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
12
11
|
import { ProviderFactory, WithProviders } from '../../provider-factory';
|
|
13
|
-
import { MentionWithProviders
|
|
12
|
+
import { MentionWithProviders } from './mention-with-providers';
|
|
14
13
|
var Mention = /*#__PURE__*/function (_PureComponent) {
|
|
15
14
|
function Mention(props) {
|
|
16
15
|
var _this;
|
|
@@ -25,18 +24,7 @@ var Mention = /*#__PURE__*/function (_PureComponent) {
|
|
|
25
24
|
localId = _this$props.localId;
|
|
26
25
|
var mentionProvider = providers.mentionProvider,
|
|
27
26
|
profilecardProvider = providers.profilecardProvider;
|
|
28
|
-
|
|
29
|
-
return /*#__PURE__*/React.createElement(MentionWithProviders, {
|
|
30
|
-
id: id,
|
|
31
|
-
text: text,
|
|
32
|
-
accessLevel: accessLevel,
|
|
33
|
-
localId: localId,
|
|
34
|
-
eventHandlers: eventHandlers,
|
|
35
|
-
mentionProvider: mentionProvider,
|
|
36
|
-
profilecardProvider: profilecardProvider
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
return /*#__PURE__*/React.createElement(MentionWithProvidersOld, {
|
|
27
|
+
return /*#__PURE__*/React.createElement(MentionWithProviders, {
|
|
40
28
|
id: id,
|
|
41
29
|
text: text,
|
|
42
30
|
accessLevel: accessLevel,
|