@atlaskit/editor-common 116.24.3 → 116.24.5
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 +15 -0
- package/dist/cjs/extensibility/Extension/Lozenge/ExtensionLabel.js +11 -17
- package/dist/cjs/extensibility/Extension/Lozenge/LozengeComponent.js +6 -2
- package/dist/cjs/extensibility/Extension/Lozenge/index.js +4 -2
- package/dist/cjs/extensibility/Extension.js +2 -0
- package/dist/cjs/extensibility/ExtensionComponent.js +6 -2
- package/dist/cjs/extensibility/MultiBodiedExtension/index.js +75 -9
- package/dist/cjs/extensibility/extensionNodeView.js +3 -1
- package/dist/cjs/extensions/extension-handlers.js +3 -0
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/es2019/extensibility/Extension/Lozenge/ExtensionLabel.js +10 -16
- package/dist/es2019/extensibility/Extension/Lozenge/LozengeComponent.js +6 -2
- package/dist/es2019/extensibility/Extension/Lozenge/index.js +4 -2
- package/dist/es2019/extensibility/Extension.js +2 -0
- package/dist/es2019/extensibility/ExtensionComponent.js +7 -3
- package/dist/es2019/extensibility/MultiBodiedExtension/index.js +66 -5
- package/dist/es2019/extensibility/extensionNodeView.js +3 -1
- package/dist/es2019/extensions/extension-handlers.js +3 -0
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/esm/extensibility/Extension/Lozenge/ExtensionLabel.js +10 -16
- package/dist/esm/extensibility/Extension/Lozenge/LozengeComponent.js +6 -2
- package/dist/esm/extensibility/Extension/Lozenge/index.js +4 -2
- package/dist/esm/extensibility/Extension.js +2 -0
- package/dist/esm/extensibility/ExtensionComponent.js +6 -2
- package/dist/esm/extensibility/MultiBodiedExtension/index.js +76 -10
- package/dist/esm/extensibility/extensionNodeView.js +3 -1
- package/dist/esm/extensions/extension-handlers.js +3 -0
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/types/extensibility/Extension/Lozenge/ExtensionLabel.d.ts +3 -2
- package/dist/types/extensibility/Extension/Lozenge/LozengeComponent.d.ts +2 -1
- package/dist/types/extensibility/Extension/Lozenge/index.d.ts +1 -0
- package/dist/types/extensibility/Extension.d.ts +1 -0
- package/dist/types/extensibility/ExtensionComponent.d.ts +1 -0
- package/dist/types/extensibility/extensionNodeView.d.ts +3 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 116.24.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`07226ab3fad50`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/07226ab3fad50) -
|
|
8
|
+
[ux] Reserve native embed first-paint layout
|
|
9
|
+
|
|
10
|
+
## 116.24.4
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`f813190f05f57`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f813190f05f57) -
|
|
15
|
+
Update multi bodied extension chrome to match extension presentation.
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
|
|
3
18
|
## 116.24.3
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -4,13 +4,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.ExtensionLabel = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _react = require("react");
|
|
10
10
|
var _react2 = require("@emotion/react");
|
|
11
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
12
12
|
var _reactIntl = require("react-intl");
|
|
13
13
|
var _customize = _interopRequireDefault(require("@atlaskit/icon/core/customize"));
|
|
14
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
15
|
var _primitives = require("@atlaskit/primitives");
|
|
15
16
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
16
17
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
@@ -117,32 +118,25 @@ var i18n = (0, _reactIntl.defineMessages)({
|
|
|
117
118
|
description: 'Text in tooltip that tells user they can configure the specific macro.'
|
|
118
119
|
}
|
|
119
120
|
});
|
|
120
|
-
var getShouldShowBodiedMacroLabel = exports.getShouldShowBodiedMacroLabel = function getShouldShowBodiedMacroLabel(isBodiedMacro, isNodeHovered, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView, showUpdatedLivePages1PBodiedExtensionUI) {
|
|
121
|
-
// Bodied macros show the label by default except for the new live pages 1P bodied macro experience where we only show it on hover
|
|
122
|
-
if (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI) {
|
|
123
|
-
return isNodeHovered;
|
|
124
|
-
}
|
|
125
|
-
if (!showLivePagesBodiedMacrosRendererView) {
|
|
126
|
-
return true;
|
|
127
|
-
} // Keep showing labels as usual for default experience for bodied macros
|
|
128
|
-
return !!(isNodeHovered && !showBodiedExtensionRendererView); // For the new live pages bodied macro experience, we only show the label on hover in the "edit" view
|
|
129
|
-
};
|
|
130
121
|
// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
|
|
131
122
|
var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
|
|
132
123
|
var text = _ref.text,
|
|
133
124
|
extensionName = _ref.extensionName,
|
|
134
125
|
customContainerStyles = _ref.customContainerStyles,
|
|
135
126
|
isNodeNested = _ref.isNodeNested,
|
|
127
|
+
isNodeSelected = _ref.isNodeSelected,
|
|
136
128
|
setIsNodeHovered = _ref.setIsNodeHovered,
|
|
137
129
|
isBodiedMacro = _ref.isBodiedMacro,
|
|
138
130
|
showUpdatedLivePages1PBodiedExtensionUI = _ref.showUpdatedLivePages1PBodiedExtensionUI,
|
|
139
131
|
showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView,
|
|
140
132
|
showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView,
|
|
141
|
-
_pluginInjectionApi = _ref.pluginInjectionApi
|
|
133
|
+
_pluginInjectionApi = _ref.pluginInjectionApi,
|
|
134
|
+
isMultiBodiedMacro = _ref.isMultiBodiedMacro;
|
|
142
135
|
var isInlineExtension = extensionName === 'inlineExtension';
|
|
143
136
|
var showDefaultBodiedStyles = isBodiedMacro;
|
|
137
|
+
var shouldUseMultiBodiedMacroPresentation = isMultiBodiedMacro && (0, _platformFeatureFlags.fg)('confluence_frontend_native_tabs_extension');
|
|
144
138
|
var containerClassNames = (0, _classnames.default)({
|
|
145
|
-
bodied: isBodiedMacro
|
|
139
|
+
bodied: isBodiedMacro && !shouldUseMultiBodiedMacroPresentation
|
|
146
140
|
});
|
|
147
141
|
var labelClassNames = (0, _classnames.default)('extension-label', {
|
|
148
142
|
nested: isNodeNested,
|
|
@@ -153,8 +147,8 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
|
|
|
153
147
|
'with-bodied-macro-live-page-styles': isBodiedMacro && showLivePagesBodiedMacrosRendererView,
|
|
154
148
|
'always-hide-label': isBodiedMacro && showBodiedExtensionRendererView,
|
|
155
149
|
// Need this separate class since we don't ever want to show the label during view mode
|
|
156
|
-
'remove-left-margin': !isBodiedMacro && !isInlineExtension && !isNodeNested,
|
|
157
|
-
'remove-nested-left-margin': isNodeNested && !isBodiedMacro && !isInlineExtension
|
|
150
|
+
'remove-left-margin': (!isBodiedMacro || shouldUseMultiBodiedMacroPresentation) && !isInlineExtension && !isNodeNested,
|
|
151
|
+
'remove-nested-left-margin': isNodeNested && (!isBodiedMacro || shouldUseMultiBodiedMacroPresentation) && !isInlineExtension
|
|
158
152
|
});
|
|
159
153
|
var iconClassNames = (0, _classnames.default)({
|
|
160
154
|
'extension-icon': true
|
|
@@ -206,12 +200,12 @@ var ExtensionLabel = exports.ExtensionLabel = function ExtensionLabel(_ref) {
|
|
|
206
200
|
// Ignored via go/ees005
|
|
207
201
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
208
202
|
}, tooltipProps, {
|
|
209
|
-
css: [labelStyles, !showLivePagesBodiedMacrosRendererView && showLabelStyles, (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI) && hideLabelStyles]
|
|
203
|
+
css: [labelStyles, !showLivePagesBodiedMacrosRendererView && showLabelStyles, (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI || shouldUseMultiBodiedMacroPresentation && !isNodeSelected) && hideLabelStyles]
|
|
210
204
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
211
205
|
,
|
|
212
206
|
className: labelClassNames
|
|
213
207
|
}), text, (0, _react2.jsx)("span", {
|
|
214
|
-
css: [iconStyles, isBodiedMacro && bodiedMacroIconStyles]
|
|
208
|
+
css: [iconStyles, isBodiedMacro && !shouldUseMultiBodiedMacroPresentation && bodiedMacroIconStyles]
|
|
215
209
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
216
210
|
,
|
|
217
211
|
className: iconClassNames,
|
|
@@ -32,13 +32,15 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
|
|
|
32
32
|
customContainerStyles = _ref.customContainerStyles,
|
|
33
33
|
isNodeHovered = _ref.isNodeHovered,
|
|
34
34
|
isNodeNested = _ref.isNodeNested,
|
|
35
|
+
isNodeSelected = _ref.isNodeSelected,
|
|
35
36
|
setIsNodeHovered = _ref.setIsNodeHovered,
|
|
36
37
|
isBodiedMacro = _ref.isBodiedMacro,
|
|
37
38
|
showLivePagesBodiedMacrosRendererView = _ref.showLivePagesBodiedMacrosRendererView,
|
|
38
39
|
showUpdatedLivePages1PBodiedExtensionUI = _ref.showUpdatedLivePages1PBodiedExtensionUI,
|
|
39
40
|
showBodiedExtensionRendererView = _ref.showBodiedExtensionRendererView,
|
|
40
41
|
setShowBodiedExtensionRendererView = _ref.setShowBodiedExtensionRendererView,
|
|
41
|
-
pluginInjectionApi = _ref.pluginInjectionApi
|
|
42
|
+
pluginInjectionApi = _ref.pluginInjectionApi,
|
|
43
|
+
isMultiBodiedMacro = _ref.isMultiBodiedMacro;
|
|
42
44
|
var capitalizedTitle = capitalizeFirstLetter(title);
|
|
43
45
|
if (showMacroInteractionDesignUpdates) {
|
|
44
46
|
return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_ExtensionLabel.ExtensionLabel, {
|
|
@@ -46,13 +48,15 @@ var LozengeComponent = exports.LozengeComponent = function LozengeComponent(_ref
|
|
|
46
48
|
extensionName: extensionName,
|
|
47
49
|
isNodeHovered: isNodeHovered,
|
|
48
50
|
isNodeNested: isNodeNested,
|
|
51
|
+
isNodeSelected: isNodeSelected,
|
|
49
52
|
customContainerStyles: customContainerStyles,
|
|
50
53
|
setIsNodeHovered: setIsNodeHovered,
|
|
51
54
|
isBodiedMacro: isBodiedMacro,
|
|
52
55
|
showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
|
|
53
56
|
showUpdatedLivePages1PBodiedExtensionUI: showUpdatedLivePages1PBodiedExtensionUI,
|
|
54
57
|
showBodiedExtensionRendererView: showBodiedExtensionRendererView,
|
|
55
|
-
pluginInjectionApi: pluginInjectionApi
|
|
58
|
+
pluginInjectionApi: pluginInjectionApi,
|
|
59
|
+
isMultiBodiedMacro: isMultiBodiedMacro
|
|
56
60
|
}), showLivePagesBodiedMacrosRendererView && isBodiedMacro && (0, _react2.jsx)(_EditToggle.EditToggle, {
|
|
57
61
|
isNodeHovered: isNodeHovered,
|
|
58
62
|
setIsNodeHovered: setIsNodeHovered,
|
|
@@ -59,7 +59,8 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
59
59
|
showUpdatedLivePages1PBodiedExtensionUI = _this$props.showUpdatedLivePages1PBodiedExtensionUI,
|
|
60
60
|
showBodiedExtensionRendererView = _this$props.showBodiedExtensionRendererView,
|
|
61
61
|
setShowBodiedExtensionRendererView = _this$props.setShowBodiedExtensionRendererView,
|
|
62
|
-
pluginInjectionApi = _this$props.pluginInjectionApi
|
|
62
|
+
pluginInjectionApi = _this$props.pluginInjectionApi,
|
|
63
|
+
isMultiBodiedMacro = _this$props.isMultiBodiedMacro;
|
|
63
64
|
var _this$props$node$attr = _this.props.node.attrs,
|
|
64
65
|
parameters = _this$props$node$attr.parameters,
|
|
65
66
|
extensionKey = _this$props$node$attr.extensionKey;
|
|
@@ -83,7 +84,8 @@ var ExtensionLozenge = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
83
84
|
showUpdatedLivePages1PBodiedExtensionUI: showUpdatedLivePages1PBodiedExtensionUI,
|
|
84
85
|
showBodiedExtensionRendererView: showBodiedExtensionRendererView,
|
|
85
86
|
setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView,
|
|
86
|
-
pluginInjectionApi: pluginInjectionApi
|
|
87
|
+
pluginInjectionApi: pluginInjectionApi,
|
|
88
|
+
isMultiBodiedMacro: isMultiBodiedMacro
|
|
87
89
|
});
|
|
88
90
|
});
|
|
89
91
|
return _this;
|
|
@@ -34,6 +34,7 @@ var Extension = exports.Extension = /*#__PURE__*/function (_Component) {
|
|
|
34
34
|
editorView = _this$props.editorView,
|
|
35
35
|
handleContentDOMRef = _this$props.handleContentDOMRef,
|
|
36
36
|
extensionHandlers = _this$props.extensionHandlers,
|
|
37
|
+
extensionLoadingHandlers = _this$props.extensionLoadingHandlers,
|
|
37
38
|
references = _this$props.references,
|
|
38
39
|
editorAppearance = _this$props.editorAppearance,
|
|
39
40
|
pluginInjectionApi = _this$props.pluginInjectionApi,
|
|
@@ -59,6 +60,7 @@ var Extension = exports.Extension = /*#__PURE__*/function (_Component) {
|
|
|
59
60
|
extensionProvider: extensionProvider,
|
|
60
61
|
handleContentDOMRef: handleContentDOMRef,
|
|
61
62
|
extensionHandlers: extensionHandlers,
|
|
63
|
+
extensionLoadingHandlers: extensionLoadingHandlers,
|
|
62
64
|
editorAppearance: editorAppearance,
|
|
63
65
|
pluginInjectionApi: pluginInjectionApi,
|
|
64
66
|
eventDispatcher: eventDispatcher,
|
|
@@ -149,6 +149,7 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component) {
|
|
|
149
149
|
var _pmNode$marks;
|
|
150
150
|
var _this$props = _this.props,
|
|
151
151
|
extensionHandlers = _this$props.extensionHandlers,
|
|
152
|
+
extensionLoadingHandlers = _this$props.extensionLoadingHandlers,
|
|
152
153
|
editorView = _this$props.editorView,
|
|
153
154
|
showBodiedExtensionRendererView = _this$props.showBodiedExtensionRendererView,
|
|
154
155
|
rendererExtensionHandlers = _this$props.rendererExtensionHandlers;
|
|
@@ -184,6 +185,7 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component) {
|
|
|
184
185
|
}
|
|
185
186
|
}
|
|
186
187
|
var result;
|
|
188
|
+
var loadingFallback = extensionLoadingHandlers !== null && extensionLoadingHandlers !== void 0 && extensionLoadingHandlers[extensionType] ? (0, _utils.getExtensionRenderer)(extensionLoadingHandlers[extensionType])(node, editorView.state.doc, actions) : undefined;
|
|
187
189
|
if (extensionHandlers && extensionHandlers[extensionType]) {
|
|
188
190
|
var render = (0, _utils.getExtensionRenderer)(extensionHandlers[extensionType]);
|
|
189
191
|
result = render(node, editorView.state.doc, actions);
|
|
@@ -196,18 +198,20 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component) {
|
|
|
196
198
|
return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
|
|
197
199
|
node: node,
|
|
198
200
|
references: _this.props.references,
|
|
199
|
-
actions: actions
|
|
201
|
+
actions: actions,
|
|
202
|
+
loadingFallback: loadingFallback
|
|
200
203
|
});
|
|
201
204
|
}
|
|
202
205
|
return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
|
|
203
206
|
node: node,
|
|
204
207
|
references: _this.props.references,
|
|
205
208
|
isSelected: isSelected,
|
|
209
|
+
loadingFallback: loadingFallback,
|
|
206
210
|
showUnknownMacroPlaceholder: (0, _platformFeatureFlags.fg)('tinymce_display_unknown_macro_body_content')
|
|
207
211
|
});
|
|
208
212
|
}
|
|
209
213
|
}
|
|
210
|
-
return result;
|
|
214
|
+
return result !== null && result !== void 0 ? result : loadingFallback;
|
|
211
215
|
});
|
|
212
216
|
return _this;
|
|
213
217
|
}
|
|
@@ -7,12 +7,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
15
|
var _react2 = require("@emotion/react");
|
|
16
|
+
var _bindEventListener = require("bind-event-listener");
|
|
16
17
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
18
|
var _file = _interopRequireDefault(require("@atlaskit/icon/core/file"));
|
|
18
19
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
@@ -63,6 +64,67 @@ var MultiBodiedExtensionFrames = function MultiBodiedExtensionFrames(_ref) {
|
|
|
63
64
|
ref: articleRef
|
|
64
65
|
});
|
|
65
66
|
};
|
|
67
|
+
var isSelectionInsideNode = function isSelectionInsideNode(selection, node, getPos) {
|
|
68
|
+
var nodeStartPosition = getPos();
|
|
69
|
+
if (typeof nodeStartPosition !== 'number' || !selection) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
var nodeEndPosition = nodeStartPosition + node.nodeSize;
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
selection starts within MBE ||
|
|
76
|
+
selection ends within MBE ||
|
|
77
|
+
selection includes MBE
|
|
78
|
+
*/
|
|
79
|
+
return nodeStartPosition < selection.from && selection.from < nodeEndPosition || nodeStartPosition < selection.to && selection.to < nodeEndPosition || nodeStartPosition >= selection.from && selection.to >= nodeEndPosition;
|
|
80
|
+
};
|
|
81
|
+
var useIsSelectionInsideNode = function useIsSelectionInsideNode(editorView, node, getPos, enabled) {
|
|
82
|
+
var nodeRef = (0, _react.useRef)(node);
|
|
83
|
+
var _useState = (0, _react.useState)(function () {
|
|
84
|
+
return enabled && isSelectionInsideNode(editorView.state.selection, node, getPos);
|
|
85
|
+
}),
|
|
86
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
87
|
+
isSelectionInside = _useState2[0],
|
|
88
|
+
setIsSelectionInside = _useState2[1];
|
|
89
|
+
nodeRef.current = node;
|
|
90
|
+
(0, _react.useEffect)(function () {
|
|
91
|
+
if (!enabled) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
var animationFrameId;
|
|
95
|
+
var updateSelectionInsideNode = function updateSelectionInsideNode() {
|
|
96
|
+
setIsSelectionInside(isSelectionInsideNode(editorView.state.selection, nodeRef.current, getPos));
|
|
97
|
+
};
|
|
98
|
+
var scheduleUpdateSelectionInsideNode = function scheduleUpdateSelectionInsideNode() {
|
|
99
|
+
if (animationFrameId !== undefined) {
|
|
100
|
+
cancelAnimationFrame(animationFrameId);
|
|
101
|
+
}
|
|
102
|
+
animationFrameId = requestAnimationFrame(updateSelectionInsideNode);
|
|
103
|
+
};
|
|
104
|
+
var ownerDocument = editorView.dom.ownerDocument;
|
|
105
|
+
var unbindSelectionChange = (0, _bindEventListener.bind)(ownerDocument, {
|
|
106
|
+
listener: scheduleUpdateSelectionInsideNode,
|
|
107
|
+
type: 'selectionchange'
|
|
108
|
+
});
|
|
109
|
+
var unbindKeyUp = (0, _bindEventListener.bind)(editorView.dom, {
|
|
110
|
+
listener: scheduleUpdateSelectionInsideNode,
|
|
111
|
+
type: 'keyup'
|
|
112
|
+
});
|
|
113
|
+
var unbindMouseUp = (0, _bindEventListener.bind)(editorView.dom, {
|
|
114
|
+
listener: scheduleUpdateSelectionInsideNode,
|
|
115
|
+
type: 'mouseup'
|
|
116
|
+
});
|
|
117
|
+
return function () {
|
|
118
|
+
if (animationFrameId !== undefined) {
|
|
119
|
+
cancelAnimationFrame(animationFrameId);
|
|
120
|
+
}
|
|
121
|
+
unbindSelectionChange();
|
|
122
|
+
unbindKeyUp();
|
|
123
|
+
unbindMouseUp();
|
|
124
|
+
};
|
|
125
|
+
}, [editorView, getPos, enabled]);
|
|
126
|
+
return enabled && isSelectionInside;
|
|
127
|
+
};
|
|
66
128
|
|
|
67
129
|
// Similar to the one in platform/packages/editor/editor-common/src/extensibility/Extension/Lozenge.tsx
|
|
68
130
|
var getWrapperTitleContent = function getWrapperTitleContent(imageData, title, showMacroInteractionDesignUpdates) {
|
|
@@ -122,10 +184,10 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
|
|
|
122
184
|
node: node,
|
|
123
185
|
type: 'image'
|
|
124
186
|
});
|
|
125
|
-
var
|
|
126
|
-
|
|
127
|
-
activeChildIndex =
|
|
128
|
-
setActiveChildIndex =
|
|
187
|
+
var _useState3 = (0, _react.useState)(0),
|
|
188
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
189
|
+
activeChildIndex = _useState4[0],
|
|
190
|
+
setActiveChildIndex = _useState4[1];
|
|
129
191
|
// Adding to avoid aliasing `this` for the callbacks
|
|
130
192
|
var updateActiveChild = _react.default.useCallback(function (index) {
|
|
131
193
|
if (typeof index !== 'number') {
|
|
@@ -175,8 +237,11 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
|
|
|
175
237
|
breakoutStyles = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_calculateBreakoutSty), _calculateBreakoutSty));
|
|
176
238
|
mbeWrapperStyles = breakoutStyles;
|
|
177
239
|
}
|
|
240
|
+
var shouldUseNativeTabsPresentation = (0, _platformFeatureFlags.fg)('confluence_frontend_native_tabs_extension');
|
|
241
|
+
var isSelectionInsideMultiBodiedExtension = useIsSelectionInsideNode(editorView, node, getPos, shouldUseNativeTabsPresentation);
|
|
242
|
+
var isMultiBodiedExtensionActive = isNodeSelected || isSelectionInsideMultiBodiedExtension;
|
|
178
243
|
var wrapperClassNames = (0, _classnames.default)('multiBodiedExtension--wrapper', 'extension-container', 'block', {
|
|
179
|
-
'with-border': showMacroInteractionDesignUpdates,
|
|
244
|
+
'with-border': showMacroInteractionDesignUpdates && (shouldUseNativeTabsPresentation ? isMultiBodiedExtensionActive : true),
|
|
180
245
|
'with-danger-overlay': showMacroInteractionDesignUpdates,
|
|
181
246
|
'with-padding-background-styles': showMacroInteractionDesignUpdates,
|
|
182
247
|
'with-margin-styles': showMacroInteractionDesignUpdates && !isNodeNested
|
|
@@ -198,7 +263,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
|
|
|
198
263
|
}
|
|
199
264
|
};
|
|
200
265
|
return (0, _react2.jsx)(_react.Fragment, null, showMacroInteractionDesignUpdates && !isLivePageViewMode && (0, _react2.jsx)(_Lozenge.default, {
|
|
201
|
-
isNodeSelected: isNodeSelected,
|
|
266
|
+
isNodeSelected: shouldUseNativeTabsPresentation ? isMultiBodiedExtensionActive : isNodeSelected,
|
|
202
267
|
node: node,
|
|
203
268
|
showMacroInteractionDesignUpdates: true,
|
|
204
269
|
customContainerStyles: mbeWrapperStyles,
|
|
@@ -206,12 +271,13 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
|
|
|
206
271
|
isNodeNested: isNodeNested,
|
|
207
272
|
setIsNodeHovered: setIsNodeHovered,
|
|
208
273
|
isBodiedMacro: true,
|
|
274
|
+
isMultiBodiedMacro: shouldUseNativeTabsPresentation,
|
|
209
275
|
pluginInjectionApi: pluginInjectionApi
|
|
210
276
|
}), (0, _react2.jsx)("div", {
|
|
211
277
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
212
278
|
className: wrapperClassNames,
|
|
213
279
|
css: [/* eslint-disable @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766 */
|
|
214
|
-
|
|
280
|
+
shouldUseNativeTabsPresentation ? _styles.mbeExtensionWrapperCSSStyles : _styles.mbeExtensionWrapperCSSStylesOld, /* eslint-enable @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage */
|
|
215
281
|
showMacroInteractionDesignUpdates && !isLivePageViewMode && hoverStyles],
|
|
216
282
|
"data-testid": "multiBodiedExtension--wrapper-editor",
|
|
217
283
|
"data-layout": node.attrs.layout
|
|
@@ -231,7 +297,7 @@ var MultiBodiedExtensionWithWidth = function MultiBodiedExtensionWithWidth(_ref2
|
|
|
231
297
|
onBlur: (0, _expValEquals.expValEquals)('editor_a11y__enghealth-46814_fy26', 'isEnabled', true) ? function () {} : undefined
|
|
232
298
|
}, (0, _react2.jsx)("div", {
|
|
233
299
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
|
|
234
|
-
css:
|
|
300
|
+
css: shouldUseNativeTabsPresentation ? _styles.overlayStyles : _styles.overlayStylesOld
|
|
235
301
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
236
302
|
,
|
|
237
303
|
className: overlayClassNames,
|
|
@@ -321,6 +321,7 @@ var ExtensionNode = exports.ExtensionNode = /*#__PURE__*/function (_ReactNodeVie
|
|
|
321
321
|
providerFactory: props.providerFactory,
|
|
322
322
|
handleContentDOMRef: forwardRef,
|
|
323
323
|
extensionHandlers: props.extensionHandlers,
|
|
324
|
+
extensionLoadingHandlers: props.extensionLoadingHandlers,
|
|
324
325
|
editorAppearance: (_props$extensionNodeV = props.extensionNodeViewOptions) === null || _props$extensionNodeV === void 0 ? void 0 : _props$extensionNodeV.appearance,
|
|
325
326
|
pluginInjectionApi: props.pluginInjectionApi,
|
|
326
327
|
macroInteractionDesignFeatureFlags: props.macroInteractionDesignFeatureFlags,
|
|
@@ -331,11 +332,12 @@ var ExtensionNode = exports.ExtensionNode = /*#__PURE__*/function (_ReactNodeVie
|
|
|
331
332
|
}
|
|
332
333
|
}]);
|
|
333
334
|
}(_reactNodeView.default); // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
|
|
334
|
-
function ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags, showLivePagesBodiedMacrosRendererView, showUpdatedLivePages1PBodiedExtensionUI, rendererExtensionHandlers, intl) {
|
|
335
|
+
function ExtensionNodeView(portalProviderAPI, eventDispatcher, providerFactory, extensionHandlers, extensionLoadingHandlers, extensionNodeViewOptions, pluginInjectionApi, macroInteractionDesignFeatureFlags, showLivePagesBodiedMacrosRendererView, showUpdatedLivePages1PBodiedExtensionUI, rendererExtensionHandlers, intl) {
|
|
335
336
|
return function (node, view, getPos) {
|
|
336
337
|
return new ExtensionNode(node, view, getPos, portalProviderAPI, eventDispatcher, {
|
|
337
338
|
providerFactory: providerFactory,
|
|
338
339
|
extensionHandlers: extensionHandlers,
|
|
340
|
+
extensionLoadingHandlers: extensionLoadingHandlers,
|
|
339
341
|
extensionNodeViewOptions: extensionNodeViewOptions,
|
|
340
342
|
pluginInjectionApi: pluginInjectionApi,
|
|
341
343
|
macroInteractionDesignFeatureFlags: macroInteractionDesignFeatureFlags,
|
|
@@ -124,6 +124,9 @@ function isUnknownConfluenceMacroWithBody(extensionNode) {
|
|
|
124
124
|
function ExtensionLoading(props) {
|
|
125
125
|
var intl = (0, _reactIntl.useIntl)();
|
|
126
126
|
var extensionNode = props.node;
|
|
127
|
+
if (!props.error && !props.timedOut && props.loadingFallback) {
|
|
128
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.loadingFallback);
|
|
129
|
+
}
|
|
127
130
|
if (props.error || props.timedOut) {
|
|
128
131
|
// eslint-disable-next-line no-console
|
|
129
132
|
console.error('Error rendering extension', props.error);
|
|
@@ -28,7 +28,7 @@ var NETWORK_FAILURE_REGEX = /^network failure/i;
|
|
|
28
28
|
var RESIZE_OBSERVER_LOOP_REGEX = /ResizeObserver loop completed with undelivered notifications/;
|
|
29
29
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
30
30
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
31
|
-
var packageVersion = "116.24.
|
|
31
|
+
var packageVersion = "116.24.4";
|
|
32
32
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
33
33
|
// Remove URL as it has UGC
|
|
34
34
|
// Ignored via go/ees007
|
|
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
24
24
|
* @jsx jsx
|
|
25
25
|
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
26
26
|
var packageName = "@atlaskit/editor-common";
|
|
27
|
-
var packageVersion = "116.24.
|
|
27
|
+
var packageVersion = "116.24.4";
|
|
28
28
|
var halfFocusRing = 1;
|
|
29
29
|
var dropOffset = '0, 8';
|
|
30
30
|
var fadeIn = (0, _react2.keyframes)({
|
|
@@ -10,6 +10,7 @@ import { css, jsx } from '@emotion/react';
|
|
|
10
10
|
import classnames from 'classnames';
|
|
11
11
|
import { FormattedMessage, defineMessages } from 'react-intl';
|
|
12
12
|
import CustomizeIcon from '@atlaskit/icon/core/customize';
|
|
13
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
13
14
|
// eslint-disable-next-line @atlaskit/design-system/no-emotion-primitives -- to be migrated to @atlaskit/primitives/compiled – go/akcss
|
|
14
15
|
import { Box, xcss } from '@atlaskit/primitives';
|
|
15
16
|
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
@@ -108,33 +109,26 @@ const i18n = defineMessages({
|
|
|
108
109
|
description: 'Text in tooltip that tells user they can configure the specific macro.'
|
|
109
110
|
}
|
|
110
111
|
});
|
|
111
|
-
export const getShouldShowBodiedMacroLabel = (isBodiedMacro, isNodeHovered, showLivePagesBodiedMacrosRendererView, showBodiedExtensionRendererView, showUpdatedLivePages1PBodiedExtensionUI) => {
|
|
112
|
-
// Bodied macros show the label by default except for the new live pages 1P bodied macro experience where we only show it on hover
|
|
113
|
-
if (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI) {
|
|
114
|
-
return isNodeHovered;
|
|
115
|
-
}
|
|
116
|
-
if (!showLivePagesBodiedMacrosRendererView) {
|
|
117
|
-
return true;
|
|
118
|
-
} // Keep showing labels as usual for default experience for bodied macros
|
|
119
|
-
return !!(isNodeHovered && !showBodiedExtensionRendererView); // For the new live pages bodied macro experience, we only show the label on hover in the "edit" view
|
|
120
|
-
};
|
|
121
112
|
// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
|
|
122
113
|
export const ExtensionLabel = ({
|
|
123
114
|
text,
|
|
124
115
|
extensionName,
|
|
125
116
|
customContainerStyles,
|
|
126
117
|
isNodeNested,
|
|
118
|
+
isNodeSelected,
|
|
127
119
|
setIsNodeHovered,
|
|
128
120
|
isBodiedMacro,
|
|
129
121
|
showUpdatedLivePages1PBodiedExtensionUI,
|
|
130
122
|
showLivePagesBodiedMacrosRendererView,
|
|
131
123
|
showBodiedExtensionRendererView,
|
|
132
|
-
pluginInjectionApi: _pluginInjectionApi
|
|
124
|
+
pluginInjectionApi: _pluginInjectionApi,
|
|
125
|
+
isMultiBodiedMacro
|
|
133
126
|
}) => {
|
|
134
127
|
const isInlineExtension = extensionName === 'inlineExtension';
|
|
135
128
|
const showDefaultBodiedStyles = isBodiedMacro;
|
|
129
|
+
const shouldUseMultiBodiedMacroPresentation = isMultiBodiedMacro && fg('confluence_frontend_native_tabs_extension');
|
|
136
130
|
const containerClassNames = classnames({
|
|
137
|
-
bodied: isBodiedMacro
|
|
131
|
+
bodied: isBodiedMacro && !shouldUseMultiBodiedMacroPresentation
|
|
138
132
|
});
|
|
139
133
|
const labelClassNames = classnames('extension-label', {
|
|
140
134
|
nested: isNodeNested,
|
|
@@ -145,8 +139,8 @@ export const ExtensionLabel = ({
|
|
|
145
139
|
'with-bodied-macro-live-page-styles': isBodiedMacro && showLivePagesBodiedMacrosRendererView,
|
|
146
140
|
'always-hide-label': isBodiedMacro && showBodiedExtensionRendererView,
|
|
147
141
|
// Need this separate class since we don't ever want to show the label during view mode
|
|
148
|
-
'remove-left-margin': !isBodiedMacro && !isInlineExtension && !isNodeNested,
|
|
149
|
-
'remove-nested-left-margin': isNodeNested && !isBodiedMacro && !isInlineExtension
|
|
142
|
+
'remove-left-margin': (!isBodiedMacro || shouldUseMultiBodiedMacroPresentation) && !isInlineExtension && !isNodeNested,
|
|
143
|
+
'remove-nested-left-margin': isNodeNested && (!isBodiedMacro || shouldUseMultiBodiedMacroPresentation) && !isInlineExtension
|
|
150
144
|
});
|
|
151
145
|
const iconClassNames = classnames({
|
|
152
146
|
'extension-icon': true
|
|
@@ -195,12 +189,12 @@ export const ExtensionLabel = ({
|
|
|
195
189
|
// Ignored via go/ees005
|
|
196
190
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
197
191
|
}, tooltipProps, {
|
|
198
|
-
css: [labelStyles, !showLivePagesBodiedMacrosRendererView && showLabelStyles, (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI) && hideLabelStyles]
|
|
192
|
+
css: [labelStyles, !showLivePagesBodiedMacrosRendererView && showLabelStyles, (!isBodiedMacro || showUpdatedLivePages1PBodiedExtensionUI || shouldUseMultiBodiedMacroPresentation && !isNodeSelected) && hideLabelStyles]
|
|
199
193
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
200
194
|
,
|
|
201
195
|
className: labelClassNames
|
|
202
196
|
}), text, jsx("span", {
|
|
203
|
-
css: [iconStyles, isBodiedMacro && bodiedMacroIconStyles]
|
|
197
|
+
css: [iconStyles, isBodiedMacro && !shouldUseMultiBodiedMacroPresentation && bodiedMacroIconStyles]
|
|
204
198
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
205
199
|
,
|
|
206
200
|
className: iconClassNames,
|
|
@@ -26,13 +26,15 @@ export const LozengeComponent = ({
|
|
|
26
26
|
customContainerStyles,
|
|
27
27
|
isNodeHovered,
|
|
28
28
|
isNodeNested,
|
|
29
|
+
isNodeSelected,
|
|
29
30
|
setIsNodeHovered,
|
|
30
31
|
isBodiedMacro,
|
|
31
32
|
showLivePagesBodiedMacrosRendererView,
|
|
32
33
|
showUpdatedLivePages1PBodiedExtensionUI,
|
|
33
34
|
showBodiedExtensionRendererView,
|
|
34
35
|
setShowBodiedExtensionRendererView,
|
|
35
|
-
pluginInjectionApi
|
|
36
|
+
pluginInjectionApi,
|
|
37
|
+
isMultiBodiedMacro
|
|
36
38
|
}) => {
|
|
37
39
|
const capitalizedTitle = capitalizeFirstLetter(title);
|
|
38
40
|
if (showMacroInteractionDesignUpdates) {
|
|
@@ -41,13 +43,15 @@ export const LozengeComponent = ({
|
|
|
41
43
|
extensionName: extensionName,
|
|
42
44
|
isNodeHovered: isNodeHovered,
|
|
43
45
|
isNodeNested: isNodeNested,
|
|
46
|
+
isNodeSelected: isNodeSelected,
|
|
44
47
|
customContainerStyles: customContainerStyles,
|
|
45
48
|
setIsNodeHovered: setIsNodeHovered,
|
|
46
49
|
isBodiedMacro: isBodiedMacro,
|
|
47
50
|
showLivePagesBodiedMacrosRendererView: showLivePagesBodiedMacrosRendererView,
|
|
48
51
|
showUpdatedLivePages1PBodiedExtensionUI: showUpdatedLivePages1PBodiedExtensionUI,
|
|
49
52
|
showBodiedExtensionRendererView: showBodiedExtensionRendererView,
|
|
50
|
-
pluginInjectionApi: pluginInjectionApi
|
|
53
|
+
pluginInjectionApi: pluginInjectionApi,
|
|
54
|
+
isMultiBodiedMacro: isMultiBodiedMacro
|
|
51
55
|
}), showLivePagesBodiedMacrosRendererView && isBodiedMacro && jsx(EditToggle, {
|
|
52
56
|
isNodeHovered: isNodeHovered,
|
|
53
57
|
setIsNodeHovered: setIsNodeHovered,
|
|
@@ -44,7 +44,8 @@ export default class ExtensionLozenge extends Component {
|
|
|
44
44
|
showUpdatedLivePages1PBodiedExtensionUI,
|
|
45
45
|
showBodiedExtensionRendererView,
|
|
46
46
|
setShowBodiedExtensionRendererView,
|
|
47
|
-
pluginInjectionApi
|
|
47
|
+
pluginInjectionApi,
|
|
48
|
+
isMultiBodiedMacro
|
|
48
49
|
} = this.props;
|
|
49
50
|
const {
|
|
50
51
|
parameters,
|
|
@@ -72,7 +73,8 @@ export default class ExtensionLozenge extends Component {
|
|
|
72
73
|
showUpdatedLivePages1PBodiedExtensionUI: showUpdatedLivePages1PBodiedExtensionUI,
|
|
73
74
|
showBodiedExtensionRendererView: showBodiedExtensionRendererView,
|
|
74
75
|
setShowBodiedExtensionRendererView: setShowBodiedExtensionRendererView,
|
|
75
|
-
pluginInjectionApi: pluginInjectionApi
|
|
76
|
+
pluginInjectionApi: pluginInjectionApi,
|
|
77
|
+
isMultiBodiedMacro: isMultiBodiedMacro
|
|
76
78
|
});
|
|
77
79
|
});
|
|
78
80
|
}
|
|
@@ -17,6 +17,7 @@ export class Extension extends Component {
|
|
|
17
17
|
editorView,
|
|
18
18
|
handleContentDOMRef,
|
|
19
19
|
extensionHandlers,
|
|
20
|
+
extensionLoadingHandlers,
|
|
20
21
|
references,
|
|
21
22
|
editorAppearance,
|
|
22
23
|
pluginInjectionApi,
|
|
@@ -44,6 +45,7 @@ export class Extension extends Component {
|
|
|
44
45
|
extensionProvider: extensionProvider,
|
|
45
46
|
handleContentDOMRef: handleContentDOMRef,
|
|
46
47
|
extensionHandlers: extensionHandlers,
|
|
48
|
+
extensionLoadingHandlers: extensionLoadingHandlers,
|
|
47
49
|
editorAppearance: editorAppearance,
|
|
48
50
|
pluginInjectionApi: pluginInjectionApi,
|
|
49
51
|
eventDispatcher: eventDispatcher,
|
|
@@ -102,9 +102,10 @@ class ExtensionComponentInner extends Component {
|
|
|
102
102
|
}
|
|
103
103
|
});
|
|
104
104
|
_defineProperty(this, "handleExtension", (pmNode, actions) => {
|
|
105
|
-
var _pmNode$marks, _pmNode$marks$find, _pmNode$marks$find$at;
|
|
105
|
+
var _pmNode$marks, _pmNode$marks$find, _pmNode$marks$find$at, _result;
|
|
106
106
|
const {
|
|
107
107
|
extensionHandlers,
|
|
108
|
+
extensionLoadingHandlers,
|
|
108
109
|
editorView,
|
|
109
110
|
showBodiedExtensionRendererView,
|
|
110
111
|
rendererExtensionHandlers
|
|
@@ -142,6 +143,7 @@ class ExtensionComponentInner extends Component {
|
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
let result;
|
|
146
|
+
const loadingFallback = extensionLoadingHandlers !== null && extensionLoadingHandlers !== void 0 && extensionLoadingHandlers[extensionType] ? getExtensionRenderer(extensionLoadingHandlers[extensionType])(node, editorView.state.doc, actions) : undefined;
|
|
145
147
|
if (extensionHandlers && extensionHandlers[extensionType]) {
|
|
146
148
|
const render = getExtensionRenderer(extensionHandlers[extensionType]);
|
|
147
149
|
result = render(node, editorView.state.doc, actions);
|
|
@@ -154,18 +156,20 @@ class ExtensionComponentInner extends Component {
|
|
|
154
156
|
return /*#__PURE__*/React.createElement(NodeRenderer, {
|
|
155
157
|
node: node,
|
|
156
158
|
references: this.props.references,
|
|
157
|
-
actions: actions
|
|
159
|
+
actions: actions,
|
|
160
|
+
loadingFallback: loadingFallback
|
|
158
161
|
});
|
|
159
162
|
}
|
|
160
163
|
return /*#__PURE__*/React.createElement(NodeRenderer, {
|
|
161
164
|
node: node,
|
|
162
165
|
references: this.props.references,
|
|
163
166
|
isSelected: isSelected,
|
|
167
|
+
loadingFallback: loadingFallback,
|
|
164
168
|
showUnknownMacroPlaceholder: fg('tinymce_display_unknown_macro_body_content')
|
|
165
169
|
});
|
|
166
170
|
}
|
|
167
171
|
}
|
|
168
|
-
return result;
|
|
172
|
+
return (_result = result) !== null && _result !== void 0 ? _result : loadingFallback;
|
|
169
173
|
});
|
|
170
174
|
}
|
|
171
175
|
componentDidUpdate() {
|