@atlaskit/editor-plugin-extension 4.1.1 → 5.0.0
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 +23 -0
- package/dist/cjs/extensionPlugin.js +16 -4
- package/dist/cjs/pm-plugins/toolbar.js +23 -7
- package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +9 -1
- package/dist/cjs/ui/ConfigPanel/DescriptionSummary.js +50 -0
- package/dist/cjs/ui/ConfigPanel/Header/HeaderAfterIconElement.js +50 -0
- package/dist/cjs/ui/ConfigPanel/Header/HeaderIcon.js +49 -0
- package/dist/cjs/ui/ConfigPanel/Header.js +3 -12
- package/dist/cjs/ui/ConfigPanel/HelpLink.js +22 -0
- package/dist/cjs/ui/ConfigPanel/constants.js +4 -2
- package/dist/cjs/ui/ConfigPanel/withExtensionManifest.js +33 -0
- package/dist/cjs/ui/useConfigPanelPluginHook.js +250 -0
- package/dist/es2019/extensionPlugin.js +16 -4
- package/dist/es2019/pm-plugins/toolbar.js +22 -1
- package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +9 -1
- package/dist/es2019/ui/ConfigPanel/DescriptionSummary.js +45 -0
- package/dist/es2019/ui/ConfigPanel/Header/HeaderAfterIconElement.js +44 -0
- package/dist/es2019/ui/ConfigPanel/Header/HeaderIcon.js +39 -0
- package/dist/es2019/ui/ConfigPanel/Header.js +1 -11
- package/dist/es2019/ui/ConfigPanel/HelpLink.js +16 -0
- package/dist/es2019/ui/ConfigPanel/constants.js +3 -1
- package/dist/es2019/ui/ConfigPanel/withExtensionManifest.js +21 -0
- package/dist/es2019/ui/useConfigPanelPluginHook.js +201 -0
- package/dist/esm/extensionPlugin.js +15 -4
- package/dist/esm/pm-plugins/toolbar.js +23 -7
- package/dist/esm/ui/ConfigPanel/ConfigPanel.js +9 -1
- package/dist/esm/ui/ConfigPanel/DescriptionSummary.js +41 -0
- package/dist/esm/ui/ConfigPanel/Header/HeaderAfterIconElement.js +43 -0
- package/dist/esm/ui/ConfigPanel/Header/HeaderIcon.js +40 -0
- package/dist/esm/ui/ConfigPanel/Header.js +1 -10
- package/dist/esm/ui/ConfigPanel/HelpLink.js +15 -0
- package/dist/esm/ui/ConfigPanel/constants.js +3 -1
- package/dist/esm/ui/ConfigPanel/withExtensionManifest.js +26 -0
- package/dist/esm/ui/useConfigPanelPluginHook.js +236 -0
- package/dist/types/extensionPluginType.d.ts +2 -0
- package/dist/types/ui/ConfigPanel/DescriptionSummary.d.ts +7 -0
- package/dist/types/ui/ConfigPanel/Header/HeaderAfterIconElement.d.ts +7 -0
- package/dist/types/ui/ConfigPanel/Header/HeaderIcon.d.ts +7 -0
- package/dist/types/ui/ConfigPanel/HelpLink.d.ts +7 -0
- package/dist/types/ui/ConfigPanel/constants.d.ts +2 -0
- package/dist/types/ui/ConfigPanel/withExtensionManifest.d.ts +9 -0
- package/dist/types/ui/useConfigPanelPluginHook.d.ts +27 -0
- package/dist/types-ts4.5/extensionPluginType.d.ts +2 -0
- package/dist/types-ts4.5/ui/ConfigPanel/DescriptionSummary.d.ts +7 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Header/HeaderAfterIconElement.d.ts +7 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Header/HeaderIcon.d.ts +7 -0
- package/dist/types-ts4.5/ui/ConfigPanel/HelpLink.d.ts +7 -0
- package/dist/types-ts4.5/ui/ConfigPanel/constants.d.ts +2 -0
- package/dist/types-ts4.5/ui/ConfigPanel/withExtensionManifest.d.ts +9 -0
- package/dist/types-ts4.5/ui/useConfigPanelPluginHook.d.ts +27 -0
- package/package.json +8 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-extension
|
|
2
2
|
|
|
3
|
+
## 5.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#122281](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/122281)
|
|
8
|
+
[`8c84e6db9b94f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8c84e6db9b94f) -
|
|
9
|
+
EDF-2539 Integrated object sidebar api through context-panel plugin in extensions to show panel.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 4.1.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [#121993](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/121993)
|
|
20
|
+
[`296e666dbaca2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/296e666dbaca2) -
|
|
21
|
+
[ux] [ED-26819] This change removes the breakout options from the floating toolbar for non-bodied
|
|
22
|
+
macros that are nested inside blockquotes, lists and panels. This change is behind an experiment
|
|
23
|
+
flag.
|
|
24
|
+
- Updated dependencies
|
|
25
|
+
|
|
3
26
|
## 4.1.1
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
|
@@ -20,6 +20,9 @@ var _bodiedExtension = require("./pm-plugins/toDOM-fixes/bodiedExtension");
|
|
|
20
20
|
var _toolbar = require("./pm-plugins/toolbar");
|
|
21
21
|
var _uniqueId = require("./pm-plugins/unique-id");
|
|
22
22
|
var _contextPanel = require("./ui/context-panel");
|
|
23
|
+
var _useConfigPanelPluginHook = require("./ui/useConfigPanelPluginHook");
|
|
24
|
+
// Remove below line when cleaning up platform_editor_ai_object_sidebar_injection feature flag
|
|
25
|
+
|
|
23
26
|
var extensionPlugin = exports.extensionPlugin = function extensionPlugin(_ref) {
|
|
24
27
|
var _api$featureFlags, _api$analytics2, _api$analytics3, _api$contextPanel3, _api$decorations, _api$contextPanel4, _api$analytics4;
|
|
25
28
|
var _ref$config = _ref.config,
|
|
@@ -58,7 +61,9 @@ var extensionPlugin = exports.extensionPlugin = function extensionPlugin(_ref) {
|
|
|
58
61
|
}
|
|
59
62
|
var pluginState = _pluginKey.pluginKey.getState(state);
|
|
60
63
|
return {
|
|
61
|
-
showContextPanel: pluginState === null || pluginState === void 0 ? void 0 : pluginState.showContextPanel
|
|
64
|
+
showContextPanel: pluginState === null || pluginState === void 0 ? void 0 : pluginState.showContextPanel,
|
|
65
|
+
extensionProvider: pluginState === null || pluginState === void 0 ? void 0 : pluginState.extensionProvider,
|
|
66
|
+
processParametersAfter: pluginState === null || pluginState === void 0 ? void 0 : pluginState.processParametersAfter
|
|
62
67
|
};
|
|
63
68
|
},
|
|
64
69
|
pmPlugins: function pmPlugins() {
|
|
@@ -176,10 +181,17 @@ var extensionPlugin = exports.extensionPlugin = function extensionPlugin(_ref) {
|
|
|
176
181
|
applyChangeToContextPanel: _api === null || _api === void 0 || (_api$contextPanel4 = _api.contextPanel) === null || _api$contextPanel4 === void 0 ? void 0 : _api$contextPanel4.actions.applyChange,
|
|
177
182
|
editorAnalyticsAPI: _api === null || _api === void 0 || (_api$analytics4 = _api.analytics) === null || _api$analytics4 === void 0 ? void 0 : _api$analytics4.actions
|
|
178
183
|
}),
|
|
179
|
-
contextPanel: (0, _contextPanel.getContextPanel)(function () {
|
|
184
|
+
contextPanel: !(0, _platformFeatureFlags.fg)('platform_editor_ai_object_sidebar_injection') ? (0, _contextPanel.getContextPanel)(function () {
|
|
180
185
|
var _editorViewRef$curren;
|
|
181
186
|
return (_editorViewRef$curren = editorViewRef.current) !== null && _editorViewRef$curren !== void 0 ? _editorViewRef$curren : undefined;
|
|
182
|
-
})(_api, featureFlags)
|
|
183
|
-
}
|
|
187
|
+
})(_api, featureFlags) : undefined
|
|
188
|
+
},
|
|
189
|
+
usePluginHook: (0, _platformFeatureFlags.fg)('platform_editor_ai_object_sidebar_injection') ? function (_ref6) {
|
|
190
|
+
var editorView = _ref6.editorView;
|
|
191
|
+
(0, _useConfigPanelPluginHook.useConfigPanelPluginHook)({
|
|
192
|
+
editorView: editorView,
|
|
193
|
+
api: _api
|
|
194
|
+
});
|
|
195
|
+
} : undefined
|
|
184
196
|
};
|
|
185
197
|
};
|
|
@@ -28,14 +28,30 @@ var _commands = require("../editor-commands/commands");
|
|
|
28
28
|
var _pluginKey = require("./macro/plugin-key");
|
|
29
29
|
var _pluginFactory = require("./plugin-factory");
|
|
30
30
|
var _utils3 = require("./utils");
|
|
31
|
-
|
|
31
|
+
// non-bodied extensions nested inside panels, blockquotes and lists do not support layouts
|
|
32
|
+
var isNestedNBM = function isNestedNBM(state, selectedExtNode) {
|
|
32
33
|
var _state$schema$nodes = state.schema.nodes,
|
|
33
|
-
bodiedExtension = _state$schema$nodes.bodiedExtension,
|
|
34
34
|
extension = _state$schema$nodes.extension,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
panel = _state$schema$nodes.panel,
|
|
36
|
+
blockquote = _state$schema$nodes.blockquote,
|
|
37
|
+
listItem = _state$schema$nodes.listItem,
|
|
38
|
+
selection = state.selection;
|
|
39
|
+
if (!(0, _experiments.editorExperiment)('platform_editor_nested_non_bodied_macros', 'test')) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if (!selectedExtNode) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return selectedExtNode.node.type === extension && (0, _utils2.hasParentNodeOfType)([panel, blockquote, listItem].filter(Boolean))(selection);
|
|
46
|
+
};
|
|
47
|
+
var isLayoutSupported = function isLayoutSupported(state, selectedExtNode) {
|
|
48
|
+
var _state$schema$nodes2 = state.schema.nodes,
|
|
49
|
+
bodiedExtension = _state$schema$nodes2.bodiedExtension,
|
|
50
|
+
extension = _state$schema$nodes2.extension,
|
|
51
|
+
layoutSection = _state$schema$nodes2.layoutSection,
|
|
52
|
+
table = _state$schema$nodes2.table,
|
|
53
|
+
expand = _state$schema$nodes2.expand,
|
|
54
|
+
multiBodiedExtension = _state$schema$nodes2.multiBodiedExtension,
|
|
39
55
|
selection = state.selection;
|
|
40
56
|
if (!selectedExtNode) {
|
|
41
57
|
return false;
|
|
@@ -52,7 +68,7 @@ var breakoutOptions = function breakoutOptions(state, formatMessage, extensionSt
|
|
|
52
68
|
var nodeWithPos = (0, _utils3.getSelectedExtension)(state, true);
|
|
53
69
|
|
|
54
70
|
// we should only return breakout options when breakouts are enabled and the node supports them
|
|
55
|
-
if (nodeWithPos && breakoutEnabled && isLayoutSupported(state, nodeWithPos)) {
|
|
71
|
+
if (nodeWithPos && breakoutEnabled && isLayoutSupported(state, nodeWithPos) && !isNestedNBM(state, nodeWithPos)) {
|
|
56
72
|
var layout = nodeWithPos.node.attrs.layout;
|
|
57
73
|
return [{
|
|
58
74
|
type: 'button',
|
|
@@ -27,7 +27,9 @@ var _analytics = require("@atlaskit/editor-common/analytics");
|
|
|
27
27
|
var _extensions = require("@atlaskit/editor-common/extensions");
|
|
28
28
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
29
29
|
var _form = _interopRequireWildcard(require("@atlaskit/form"));
|
|
30
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
30
31
|
var _constants = require("./constants");
|
|
32
|
+
var _DescriptionSummary = require("./DescriptionSummary");
|
|
31
33
|
var _ErrorMessage = _interopRequireDefault(require("./ErrorMessage"));
|
|
32
34
|
var _FormContent = _interopRequireDefault(require("./FormContent"));
|
|
33
35
|
var _FormErrorBoundary = require("./FormErrorBoundary");
|
|
@@ -270,6 +272,10 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
|
|
|
270
272
|
}());
|
|
271
273
|
// memoized to prevent rerender on new parameters
|
|
272
274
|
(0, _defineProperty2.default)(_this, "renderHeader", (0, _memoizeOne.default)(function (extensionManifest) {
|
|
275
|
+
// If below FG is true then Header will be rendered separately
|
|
276
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_ai_object_sidebar_injection')) {
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
273
279
|
var _this$props2 = _this.props,
|
|
274
280
|
onCancel = _this$props2.onCancel,
|
|
275
281
|
showHeader = _this$props2.showHeader;
|
|
@@ -436,7 +442,9 @@ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
|
|
|
436
442
|
noValidate: true,
|
|
437
443
|
onKeyDown: handleKeyDown,
|
|
438
444
|
"data-testid": "extension-config-panel"
|
|
439
|
-
}), _this2.renderHeader(extensionManifest), /*#__PURE__*/_react.default.createElement(
|
|
445
|
+
}), _this2.renderHeader(extensionManifest), (0, _platformFeatureFlags.fg)('platform_editor_ai_object_sidebar_injection') && /*#__PURE__*/_react.default.createElement(_DescriptionSummary.DescriptionSummary, {
|
|
446
|
+
extensionManifest: extensionManifest
|
|
447
|
+
}), /*#__PURE__*/_react.default.createElement(ConfigFormIntlWithBoundary, {
|
|
440
448
|
api: api,
|
|
441
449
|
canSave: false,
|
|
442
450
|
errorMessage: errorMessage,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.DescriptionSummary = DescriptionSummary;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactIntlNext = require("react-intl-next");
|
|
10
|
+
var _extensions = require("@atlaskit/editor-common/extensions");
|
|
11
|
+
var _primitives = require("@atlaskit/primitives");
|
|
12
|
+
var _HelpLink = require("./HelpLink");
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
var descriptionStyles = (0, _primitives.xcss)({
|
|
16
|
+
marginBottom: 'space.300'
|
|
17
|
+
});
|
|
18
|
+
var helpLinkStyles = (0, _primitives.xcss)({
|
|
19
|
+
paddingTop: 'space.150'
|
|
20
|
+
});
|
|
21
|
+
function DescriptionSummary(_ref) {
|
|
22
|
+
var extensionManifest = _ref.extensionManifest;
|
|
23
|
+
var _useIntl = (0, _reactIntlNext.useIntl)(),
|
|
24
|
+
formatMessage = _useIntl.formatMessage;
|
|
25
|
+
var description = extensionManifest.description,
|
|
26
|
+
documentationUrl = extensionManifest.documentationUrl;
|
|
27
|
+
// Use a temporary allowlist of top 3 macros to test out a new "Documentation" CTA ("Need help?")
|
|
28
|
+
// This will be removed when Top 5 Modernized Macros updates are rolled out
|
|
29
|
+
var modernizedMacrosList = ['children', 'recently-updated', 'excerpt'];
|
|
30
|
+
var enableHelpCTA = modernizedMacrosList.includes(extensionManifest.key);
|
|
31
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, (description || documentationUrl) && /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
32
|
+
xcss: descriptionStyles
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
34
|
+
as: "p",
|
|
35
|
+
testId: "config-panel-header-description"
|
|
36
|
+
}, description && /*#__PURE__*/_react.default.createElement(_react.Fragment, null,
|
|
37
|
+
// Ignored via go/ees005
|
|
38
|
+
// eslint-disable-next-line require-unicode-regexp
|
|
39
|
+
description.replace(/([^.])$/, '$1.'), ' '), documentationUrl && (enableHelpCTA ? /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
40
|
+
xcss: helpLinkStyles
|
|
41
|
+
}, /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
42
|
+
as: "p"
|
|
43
|
+
}, /*#__PURE__*/_react.default.createElement(_HelpLink.HelpLink, {
|
|
44
|
+
documentationUrl: documentationUrl,
|
|
45
|
+
label: formatMessage(_extensions.configPanelMessages.help)
|
|
46
|
+
}))) : /*#__PURE__*/_react.default.createElement(_HelpLink.HelpLink, {
|
|
47
|
+
documentationUrl: documentationUrl,
|
|
48
|
+
label: formatMessage(_extensions.configPanelMessages.documentation)
|
|
49
|
+
})))));
|
|
50
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _primitives = require("@atlaskit/primitives");
|
|
10
|
+
var _withExtensionManifest = require("../withExtensionManifest");
|
|
11
|
+
var itemBodyStyles = (0, _primitives.xcss)({
|
|
12
|
+
display: 'flex',
|
|
13
|
+
flexDirection: 'row',
|
|
14
|
+
flexWrap: 'nowrap',
|
|
15
|
+
justifyContent: 'space-between',
|
|
16
|
+
margin: 'space.200',
|
|
17
|
+
flexGrow: 3
|
|
18
|
+
});
|
|
19
|
+
var itemTextStyles = (0, _primitives.xcss)({
|
|
20
|
+
maxWidth: '100%',
|
|
21
|
+
whiteSpace: 'initial'
|
|
22
|
+
});
|
|
23
|
+
var summaryStyles = (0, _primitives.xcss)({
|
|
24
|
+
font: "var(--ds-font-body-small, normal 400 11px/16px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
|
|
25
|
+
color: 'color.text.subtlest',
|
|
26
|
+
marginTop: 'space.050',
|
|
27
|
+
whiteSpace: 'nowrap',
|
|
28
|
+
overflow: 'hidden',
|
|
29
|
+
textOverflow: 'ellipsis'
|
|
30
|
+
});
|
|
31
|
+
function HeaderAfterIconElement(_ref) {
|
|
32
|
+
var extensionManifest = _ref.extensionManifest;
|
|
33
|
+
var title = extensionManifest.title;
|
|
34
|
+
var summary = extensionManifest.summary;
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
36
|
+
xcss: itemBodyStyles
|
|
37
|
+
}, summary ? /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
38
|
+
xcss: itemTextStyles
|
|
39
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
40
|
+
id: "context-panel-title",
|
|
41
|
+
"data-testid": "context-panel-title"
|
|
42
|
+
}, title), /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
43
|
+
xcss: summaryStyles
|
|
44
|
+
}, summary)) : /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
|
|
45
|
+
direction: "column",
|
|
46
|
+
alignItems: "center",
|
|
47
|
+
testId: "context-panel-title"
|
|
48
|
+
}, title));
|
|
49
|
+
}
|
|
50
|
+
var _default = exports.default = (0, _withExtensionManifest.withExtensionManifest)(HeaderAfterIconElement);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _primitives = require("@atlaskit/primitives");
|
|
10
|
+
var _withExtensionManifest = require("../withExtensionManifest");
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
var iconWidth = '40px';
|
|
14
|
+
var itemIconStyles = (0, _primitives.xcss)({
|
|
15
|
+
width: iconWidth,
|
|
16
|
+
height: iconWidth,
|
|
17
|
+
overflow: 'hidden',
|
|
18
|
+
border: "1px solid ".concat("var(--ds-border, rgba(223, 225, 229, 0.5))"),
|
|
19
|
+
borderRadius: "var(--ds-border-radius, 3px)",
|
|
20
|
+
boxSizing: 'border-box',
|
|
21
|
+
display: 'flex',
|
|
22
|
+
justifyContent: 'center',
|
|
23
|
+
alignItems: 'center'
|
|
24
|
+
});
|
|
25
|
+
function HeaderIcon(_ref) {
|
|
26
|
+
var extensionManifest = _ref.extensionManifest;
|
|
27
|
+
var icon = extensionManifest.icons['48'];
|
|
28
|
+
var title = extensionManifest.title;
|
|
29
|
+
var ResolvedIcon = (0, _react.useMemo)(function () {
|
|
30
|
+
return /*#__PURE__*/(0, _react.lazy)(function () {
|
|
31
|
+
return icon().then(function (Cmp) {
|
|
32
|
+
if ('default' in Cmp) {
|
|
33
|
+
return Cmp;
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
default: Cmp
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}, [icon]);
|
|
41
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
42
|
+
xcss: itemIconStyles
|
|
43
|
+
}, /*#__PURE__*/_react.default.createElement(_react.Suspense, {
|
|
44
|
+
fallback: null
|
|
45
|
+
}, /*#__PURE__*/_react.default.createElement(ResolvedIcon, {
|
|
46
|
+
label: title
|
|
47
|
+
})));
|
|
48
|
+
}
|
|
49
|
+
var _default = exports.default = (0, _withExtensionManifest.withExtensionManifest)(HeaderIcon);
|
|
@@ -15,6 +15,7 @@ var _closeCross = _interopRequireDefault(require("@atlaskit/icon/core/migration/
|
|
|
15
15
|
var _primitives = require("@atlaskit/primitives");
|
|
16
16
|
var _colors = require("@atlaskit/theme/colors");
|
|
17
17
|
var _constants = require("@atlaskit/theme/constants");
|
|
18
|
+
var _HelpLink = require("./HelpLink");
|
|
18
19
|
/**
|
|
19
20
|
* @jsxRuntime classic
|
|
20
21
|
* @jsx jsx
|
|
@@ -152,22 +153,12 @@ var Header = function Header(_ref) {
|
|
|
152
153
|
xcss: helpLinkStyles
|
|
153
154
|
}, (0, _react2.jsx)(_primitives.Text, {
|
|
154
155
|
as: "p"
|
|
155
|
-
}, (0, _react2.jsx)(HelpLink, {
|
|
156
|
+
}, (0, _react2.jsx)(_HelpLink.HelpLink, {
|
|
156
157
|
documentationUrl: documentationUrl,
|
|
157
158
|
label: intl.formatMessage(_extensions.configPanelMessages.help)
|
|
158
|
-
}))) : (0, _react2.jsx)(HelpLink, {
|
|
159
|
+
}))) : (0, _react2.jsx)(_HelpLink.HelpLink, {
|
|
159
160
|
documentationUrl: documentationUrl,
|
|
160
161
|
label: intl.formatMessage(_extensions.configPanelMessages.documentation)
|
|
161
162
|
})))));
|
|
162
163
|
};
|
|
163
|
-
var HelpLink = function HelpLink(_ref2) {
|
|
164
|
-
var documentationUrl = _ref2.documentationUrl,
|
|
165
|
-
label = _ref2.label;
|
|
166
|
-
return (0, _react2.jsx)("a", {
|
|
167
|
-
target: "_blank",
|
|
168
|
-
rel: "noopener noreferrer",
|
|
169
|
-
href: documentationUrl,
|
|
170
|
-
"data-testid": "config-panel-header-documentation-link"
|
|
171
|
-
}, label);
|
|
172
|
-
};
|
|
173
164
|
var _default = exports.default = (0, _reactIntlNext.injectIntl)(Header);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.HelpLink = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var HelpLink = exports.HelpLink = function HelpLink(_ref) {
|
|
10
|
+
var documentationUrl = _ref.documentationUrl,
|
|
11
|
+
label = _ref.label;
|
|
12
|
+
return (
|
|
13
|
+
/*#__PURE__*/
|
|
14
|
+
// eslint-disable-next-line @atlaskit/design-system/no-html-anchor
|
|
15
|
+
_react.default.createElement("a", {
|
|
16
|
+
target: "_blank",
|
|
17
|
+
rel: "noopener noreferrer",
|
|
18
|
+
href: documentationUrl,
|
|
19
|
+
"data-testid": "config-panel-header-documentation-link"
|
|
20
|
+
}, label)
|
|
21
|
+
);
|
|
22
|
+
};
|
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ALLOWED_PARAM_TYPES = exports.ALLOWED_LOGGED_MACRO_PARAMS = void 0;
|
|
6
|
+
exports.CONFIG_PANEL_WIDTH = exports.CONFIG_PANEL_ID = exports.ALLOWED_PARAM_TYPES = exports.ALLOWED_LOGGED_MACRO_PARAMS = void 0;
|
|
7
7
|
// Allowlist of { macroKey: parameterName[] } for analytics logging
|
|
8
8
|
var ALLOWED_LOGGED_MACRO_PARAMS = exports.ALLOWED_LOGGED_MACRO_PARAMS = {
|
|
9
9
|
children: ['all', 'first', 'depth', 'style', 'excerptType', 'sort', 'reverse'],
|
|
10
10
|
'recently-updated': ['width', 'types', 'max', 'theme', 'showProfilePic', 'hideHeading'],
|
|
11
11
|
excerpt: ['hidden']
|
|
12
12
|
};
|
|
13
|
-
var ALLOWED_PARAM_TYPES = exports.ALLOWED_PARAM_TYPES = ['enum', 'number', 'boolean'];
|
|
13
|
+
var ALLOWED_PARAM_TYPES = exports.ALLOWED_PARAM_TYPES = ['enum', 'number', 'boolean'];
|
|
14
|
+
var CONFIG_PANEL_WIDTH = exports.CONFIG_PANEL_WIDTH = 320;
|
|
15
|
+
var CONFIG_PANEL_ID = exports.CONFIG_PANEL_ID = 'extensions-panel';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.withExtensionManifest = withExtensionManifest;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _useStateFromPromise3 = require("./use-state-from-promise");
|
|
13
|
+
var _excluded = ["extensionKey", "extensionProvider", "extensionType"];
|
|
14
|
+
function withExtensionManifest(WrappedComponent) {
|
|
15
|
+
return function WithExtensionManifest(props) {
|
|
16
|
+
var extensionKey = props.extensionKey,
|
|
17
|
+
extensionProvider = props.extensionProvider,
|
|
18
|
+
extensionType = props.extensionType,
|
|
19
|
+
restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
20
|
+
var _useStateFromPromise = (0, _useStateFromPromise3.useStateFromPromise)(function () {
|
|
21
|
+
return extensionProvider.getExtension(extensionType, extensionKey);
|
|
22
|
+
}, [extensionProvider, extensionType, extensionKey]),
|
|
23
|
+
_useStateFromPromise2 = (0, _slicedToArray2.default)(_useStateFromPromise, 1),
|
|
24
|
+
extensionManifest = _useStateFromPromise2[0];
|
|
25
|
+
return extensionManifest ?
|
|
26
|
+
/*#__PURE__*/
|
|
27
|
+
// Ignored via go/ees005
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, react/jsx-props-no-spreading
|
|
29
|
+
_react.default.createElement(WrappedComponent, (0, _extends2.default)({
|
|
30
|
+
extensionManifest: extensionManifest
|
|
31
|
+
}, restProps)) : null;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.getContextPanelBodyComponent = void 0;
|
|
9
|
+
exports.hideConfigPanel = hideConfigPanel;
|
|
10
|
+
exports.showConfigPanel = showConfigPanel;
|
|
11
|
+
exports.startClosingConfigPanel = startClosingConfigPanel;
|
|
12
|
+
exports.useConfigPanelPluginHook = useConfigPanelPluginHook;
|
|
13
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
var _extensions = require("@atlaskit/editor-common/extensions");
|
|
18
|
+
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
19
|
+
var _primitives = require("@atlaskit/primitives");
|
|
20
|
+
var _commands = require("../editor-commands/commands");
|
|
21
|
+
var _pluginFactory = require("../pm-plugins/plugin-factory");
|
|
22
|
+
var _utils = require("../pm-plugins/utils");
|
|
23
|
+
var _ConfigPanelLoader = _interopRequireDefault(require("./ConfigPanel/ConfigPanelLoader"));
|
|
24
|
+
var _constants = require("./ConfigPanel/constants");
|
|
25
|
+
var _HeaderAfterIconElement = _interopRequireDefault(require("./ConfigPanel/Header/HeaderAfterIconElement"));
|
|
26
|
+
var _HeaderIcon = _interopRequireDefault(require("./ConfigPanel/Header/HeaderIcon"));
|
|
27
|
+
var _contextPanel = require("./context-panel");
|
|
28
|
+
var _SaveIndicator = require("./SaveIndicator/SaveIndicator");
|
|
29
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
30
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
31
|
+
function useConfigPanelPluginHook(_ref) {
|
|
32
|
+
var editorView = _ref.editorView,
|
|
33
|
+
api = _ref.api;
|
|
34
|
+
var editorState = editorView.state;
|
|
35
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['extension']),
|
|
36
|
+
extensionState = _useSharedPluginState.extensionState;
|
|
37
|
+
(0, _react.useEffect)(function () {
|
|
38
|
+
var nodeWithPos = (0, _utils.getSelectedExtension)(editorState, true);
|
|
39
|
+
// Adding checks to bail out early
|
|
40
|
+
if (!nodeWithPos || !extensionState) {
|
|
41
|
+
hideConfigPanel(api);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (extensionState) {
|
|
45
|
+
var showContextPanel = extensionState.showContextPanel,
|
|
46
|
+
extensionProvider = extensionState.extensionProvider,
|
|
47
|
+
processParametersAfter = extensionState.processParametersAfter;
|
|
48
|
+
if (showContextPanel && extensionProvider && processParametersAfter) {
|
|
49
|
+
showConfigPanel({
|
|
50
|
+
api: api,
|
|
51
|
+
editorView: editorView,
|
|
52
|
+
extensionProvider: extensionProvider,
|
|
53
|
+
nodeWithPos: nodeWithPos
|
|
54
|
+
});
|
|
55
|
+
} else {
|
|
56
|
+
hideConfigPanel(api);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}, [api, editorState, editorView, extensionState]);
|
|
60
|
+
}
|
|
61
|
+
function hideConfigPanel(api) {
|
|
62
|
+
var _api$contextPanel;
|
|
63
|
+
var closePanelById = api === null || api === void 0 || (_api$contextPanel = api.contextPanel) === null || _api$contextPanel === void 0 || (_api$contextPanel = _api$contextPanel.actions) === null || _api$contextPanel === void 0 ? void 0 : _api$contextPanel.closePanelById;
|
|
64
|
+
if (closePanelById) {
|
|
65
|
+
closePanelById(_constants.CONFIG_PANEL_ID);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function showConfigPanel(_ref2) {
|
|
69
|
+
var _api$contextPanel2;
|
|
70
|
+
var api = _ref2.api,
|
|
71
|
+
editorView = _ref2.editorView,
|
|
72
|
+
extensionProvider = _ref2.extensionProvider,
|
|
73
|
+
nodeWithPos = _ref2.nodeWithPos;
|
|
74
|
+
var showContextPanel = api === null || api === void 0 || (_api$contextPanel2 = api.contextPanel) === null || _api$contextPanel2 === void 0 || (_api$contextPanel2 = _api$contextPanel2.actions) === null || _api$contextPanel2 === void 0 ? void 0 : _api$contextPanel2.showPanel;
|
|
75
|
+
if (showContextPanel) {
|
|
76
|
+
var nodeAttrs = nodeWithPos === null || nodeWithPos === void 0 ? void 0 : nodeWithPos.node.attrs;
|
|
77
|
+
var extensionType = nodeAttrs === null || nodeAttrs === void 0 ? void 0 : nodeAttrs.extensionType;
|
|
78
|
+
var extensionKey = nodeAttrs === null || nodeAttrs === void 0 ? void 0 : nodeAttrs.extensionKey;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Loading extension manifest fails when using
|
|
82
|
+
* extensionKey directly from nodeAttrs.
|
|
83
|
+
* Always get extensionKey from getExtensionKeyAndNodeKey to load
|
|
84
|
+
* extension manifest successfully.
|
|
85
|
+
*/
|
|
86
|
+
var _getExtensionKeyAndNo = (0, _extensions.getExtensionKeyAndNodeKey)(extensionKey, extensionType),
|
|
87
|
+
_getExtensionKeyAndNo2 = (0, _slicedToArray2.default)(_getExtensionKeyAndNo, 2),
|
|
88
|
+
extKey = _getExtensionKeyAndNo2[0],
|
|
89
|
+
_ = _getExtensionKeyAndNo2[1];
|
|
90
|
+
var HeadeIconWrapper = function HeadeIconWrapper() {
|
|
91
|
+
return /*#__PURE__*/_react.default.createElement(_HeaderIcon.default, {
|
|
92
|
+
extensionProvider: extensionProvider,
|
|
93
|
+
extensionKey: extKey,
|
|
94
|
+
extensionType: extensionType
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
var HeaderAfterIconElementWrapper = function HeaderAfterIconElementWrapper() {
|
|
98
|
+
return /*#__PURE__*/_react.default.createElement(_HeaderAfterIconElement.default, {
|
|
99
|
+
extensionProvider: extensionProvider,
|
|
100
|
+
extensionKey: extKey,
|
|
101
|
+
extensionType: extensionType
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
var BodyComponent = getContextPanelBodyComponent({
|
|
105
|
+
api: api,
|
|
106
|
+
editorView: editorView,
|
|
107
|
+
extensionProvider: extensionProvider,
|
|
108
|
+
nodeWithPos: nodeWithPos
|
|
109
|
+
});
|
|
110
|
+
showContextPanel({
|
|
111
|
+
id: _constants.CONFIG_PANEL_ID,
|
|
112
|
+
headerComponentElements: {
|
|
113
|
+
HeaderIcon: HeadeIconWrapper,
|
|
114
|
+
headerLabel: _extensions.configPanelMessages.objectSidebarPanelHeaderLabel,
|
|
115
|
+
HeaderAfterIconElement: HeaderAfterIconElementWrapper
|
|
116
|
+
},
|
|
117
|
+
BodyComponent: BodyComponent,
|
|
118
|
+
closeOptions: {
|
|
119
|
+
canClosePanel: function canClosePanel() {
|
|
120
|
+
var extensionState = (0, _pluginFactory.getPluginState)(editorView.state);
|
|
121
|
+
/**
|
|
122
|
+
* If context panel is open, then first update extension plugin state.
|
|
123
|
+
* Updating extension plugin state will trigger useEffect in useConfigPanelPluginHook,
|
|
124
|
+
* which will call hideConfigPanel.
|
|
125
|
+
*/
|
|
126
|
+
if (extensionState !== null && extensionState !== void 0 && extensionState.showContextPanel) {
|
|
127
|
+
startClosingConfigPanel({
|
|
128
|
+
api: api,
|
|
129
|
+
editorView: editorView
|
|
130
|
+
});
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Return true if extension plugin state has been updated and hideConfigPanel has been called.
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}, 'push', _constants.CONFIG_PANEL_WIDTH);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function startClosingConfigPanel(_x) {
|
|
142
|
+
return _startClosingConfigPanel.apply(this, arguments);
|
|
143
|
+
}
|
|
144
|
+
function _startClosingConfigPanel() {
|
|
145
|
+
_startClosingConfigPanel = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref3) {
|
|
146
|
+
var _api$contextPanel3;
|
|
147
|
+
var api, editorView, applyChange;
|
|
148
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
149
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
150
|
+
case 0:
|
|
151
|
+
api = _ref3.api, editorView = _ref3.editorView;
|
|
152
|
+
applyChange = api === null || api === void 0 || (_api$contextPanel3 = api.contextPanel) === null || _api$contextPanel3 === void 0 ? void 0 : _api$contextPanel3.actions.applyChange; // Even if the save failed, we should proceed with closing the panel
|
|
153
|
+
(0, _commands.clearEditingContext)(applyChange)(editorView.state, editorView.dispatch);
|
|
154
|
+
_context2.prev = 3;
|
|
155
|
+
_context2.next = 6;
|
|
156
|
+
return new Promise(function (resolve, reject) {
|
|
157
|
+
(0, _commands.forceAutoSave)(applyChange)(resolve, reject)(editorView.state, editorView.dispatch);
|
|
158
|
+
});
|
|
159
|
+
case 6:
|
|
160
|
+
_context2.next = 11;
|
|
161
|
+
break;
|
|
162
|
+
case 8:
|
|
163
|
+
_context2.prev = 8;
|
|
164
|
+
_context2.t0 = _context2["catch"](3);
|
|
165
|
+
// Even if the save failed, we should proceed with closing the panel
|
|
166
|
+
// eslint-disable-next-line no-console
|
|
167
|
+
console.error("Autosave failed with error", _context2.t0);
|
|
168
|
+
case 11:
|
|
169
|
+
case "end":
|
|
170
|
+
return _context2.stop();
|
|
171
|
+
}
|
|
172
|
+
}, _callee2, null, [[3, 8]]);
|
|
173
|
+
}));
|
|
174
|
+
return _startClosingConfigPanel.apply(this, arguments);
|
|
175
|
+
}
|
|
176
|
+
var getContextPanelBodyComponent = exports.getContextPanelBodyComponent = function getContextPanelBodyComponent(_ref4) {
|
|
177
|
+
var _api$featureFlags;
|
|
178
|
+
var api = _ref4.api,
|
|
179
|
+
editorView = _ref4.editorView,
|
|
180
|
+
extensionProvider = _ref4.extensionProvider,
|
|
181
|
+
nodeWithPos = _ref4.nodeWithPos;
|
|
182
|
+
var featureFlags = (api === null || api === void 0 || (_api$featureFlags = api.featureFlags) === null || _api$featureFlags === void 0 ? void 0 : _api$featureFlags.sharedState.currentState()) || {};
|
|
183
|
+
var editorState = editorView.state;
|
|
184
|
+
var extensionState = (0, _pluginFactory.getPluginState)(editorState);
|
|
185
|
+
var autoSaveResolve = extensionState.autoSaveResolve,
|
|
186
|
+
autoSaveReject = extensionState.autoSaveReject,
|
|
187
|
+
processParametersBefore = extensionState.processParametersBefore;
|
|
188
|
+
var _nodeWithPos$node$att = nodeWithPos.node.attrs,
|
|
189
|
+
extensionType = _nodeWithPos$node$att.extensionType,
|
|
190
|
+
extensionKey = _nodeWithPos$node$att.extensionKey,
|
|
191
|
+
parameters = _nodeWithPos$node$att.parameters;
|
|
192
|
+
var _getExtensionKeyAndNo3 = (0, _extensions.getExtensionKeyAndNodeKey)(extensionKey, extensionType),
|
|
193
|
+
_getExtensionKeyAndNo4 = (0, _slicedToArray2.default)(_getExtensionKeyAndNo3, 2),
|
|
194
|
+
extKey = _getExtensionKeyAndNo4[0],
|
|
195
|
+
nodeKey = _getExtensionKeyAndNo4[1];
|
|
196
|
+
var configParams = processParametersBefore ? processParametersBefore(parameters || {}) : parameters;
|
|
197
|
+
return function () {
|
|
198
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
199
|
+
padding: "space.200"
|
|
200
|
+
}, /*#__PURE__*/_react.default.createElement(_SaveIndicator.SaveIndicator, {
|
|
201
|
+
duration: 5000,
|
|
202
|
+
visible: true
|
|
203
|
+
}, function (_ref5) {
|
|
204
|
+
var onSaveStarted = _ref5.onSaveStarted,
|
|
205
|
+
onSaveEnded = _ref5.onSaveEnded;
|
|
206
|
+
return /*#__PURE__*/_react.default.createElement(_ConfigPanelLoader.default, {
|
|
207
|
+
api: api,
|
|
208
|
+
showHeader: true,
|
|
209
|
+
closeOnEsc: true,
|
|
210
|
+
extensionType: extensionType,
|
|
211
|
+
extensionKey: extKey,
|
|
212
|
+
nodeKey: nodeKey,
|
|
213
|
+
extensionParameters: parameters,
|
|
214
|
+
parameters: configParams,
|
|
215
|
+
extensionProvider: extensionProvider,
|
|
216
|
+
autoSaveTrigger: autoSaveResolve,
|
|
217
|
+
autoSaveReject: autoSaveReject,
|
|
218
|
+
onChange: ( /*#__PURE__*/function () {
|
|
219
|
+
var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(updatedParameters) {
|
|
220
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
221
|
+
while (1) switch (_context.prev = _context.next) {
|
|
222
|
+
case 0:
|
|
223
|
+
_context.next = 2;
|
|
224
|
+
return (0, _contextPanel.onChangeAction)(editorView, updatedParameters, parameters, nodeWithPos, onSaveStarted);
|
|
225
|
+
case 2:
|
|
226
|
+
onSaveEnded();
|
|
227
|
+
if (autoSaveResolve) {
|
|
228
|
+
autoSaveResolve();
|
|
229
|
+
}
|
|
230
|
+
case 4:
|
|
231
|
+
case "end":
|
|
232
|
+
return _context.stop();
|
|
233
|
+
}
|
|
234
|
+
}, _callee);
|
|
235
|
+
}));
|
|
236
|
+
return function (_x2) {
|
|
237
|
+
return _ref6.apply(this, arguments);
|
|
238
|
+
};
|
|
239
|
+
}()),
|
|
240
|
+
onCancel: function onCancel() {
|
|
241
|
+
return startClosingConfigPanel({
|
|
242
|
+
api: api,
|
|
243
|
+
editorView: editorView
|
|
244
|
+
});
|
|
245
|
+
},
|
|
246
|
+
featureFlags: featureFlags
|
|
247
|
+
});
|
|
248
|
+
}));
|
|
249
|
+
};
|
|
250
|
+
};
|