@atlaskit/editor-common 111.34.1 → 111.35.1
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 +20 -0
- package/dist/cjs/ai-messages/ai-quick-prompt.js +14 -0
- package/dist/cjs/ai-messages/index.js +7 -0
- package/dist/cjs/extensibility/ExtensionComponent.js +6 -5
- package/dist/cjs/extensions/UnknownMacroPlaceholder.compiled.css +28 -0
- package/dist/cjs/extensions/UnknownMacroPlaceholder.js +70 -0
- package/dist/cjs/extensions/extension-fields-helpers.js +34 -133
- package/dist/cjs/extensions/extension-handlers.js +16 -0
- package/dist/cjs/extensions/messages.js +10 -0
- package/dist/cjs/extensions/module-helpers.js +25 -44
- package/dist/cjs/floating-toolbar/DropdownMenuExtensionItems.js +18 -50
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/styles/shared/table.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/es2019/ai-messages/ai-quick-prompt.js +8 -0
- package/dist/es2019/ai-messages/index.js +1 -0
- package/dist/es2019/extensibility/ExtensionComponent.js +6 -5
- package/dist/es2019/extensions/UnknownMacroPlaceholder.compiled.css +28 -0
- package/dist/es2019/extensions/UnknownMacroPlaceholder.js +46 -0
- package/dist/es2019/extensions/extension-fields-helpers.js +9 -11
- package/dist/es2019/extensions/extension-handlers.js +16 -0
- package/dist/es2019/extensions/messages.js +10 -0
- package/dist/es2019/extensions/module-helpers.js +1 -4
- package/dist/es2019/floating-toolbar/DropdownMenuExtensionItems.js +2 -6
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/styles/shared/table.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/esm/ai-messages/ai-quick-prompt.js +8 -0
- package/dist/esm/ai-messages/index.js +1 -0
- package/dist/esm/extensibility/ExtensionComponent.js +6 -5
- package/dist/esm/extensions/UnknownMacroPlaceholder.compiled.css +28 -0
- package/dist/esm/extensions/UnknownMacroPlaceholder.js +61 -0
- package/dist/esm/extensions/extension-fields-helpers.js +31 -132
- package/dist/esm/extensions/extension-handlers.js +16 -0
- package/dist/esm/extensions/messages.js +10 -0
- package/dist/esm/extensions/module-helpers.js +25 -44
- package/dist/esm/floating-toolbar/DropdownMenuExtensionItems.js +18 -50
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/styles/shared/table.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/types/ai-messages/ai-quick-prompt.d.ts +7 -0
- package/dist/types/ai-messages/index.d.ts +1 -0
- package/dist/types/experiences/ExperienceCheckDomMutation.d.ts +2 -2
- package/dist/types/extensions/UnknownMacroPlaceholder.d.ts +7 -0
- package/dist/types/extensions/extension-fields-helpers.d.ts +4 -4
- package/dist/types/extensions/extension-handlers.d.ts +1 -0
- package/dist/types/extensions/messages.d.ts +10 -0
- package/dist/types-ts4.5/ai-messages/ai-quick-prompt.d.ts +7 -0
- package/dist/types-ts4.5/ai-messages/index.d.ts +1 -0
- package/dist/types-ts4.5/experiences/ExperienceCheckDomMutation.d.ts +2 -2
- package/dist/types-ts4.5/extensions/UnknownMacroPlaceholder.d.ts +7 -0
- package/dist/types-ts4.5/extensions/extension-fields-helpers.d.ts +4 -4
- package/dist/types-ts4.5/extensions/extension-handlers.d.ts +1 -0
- package/dist/types-ts4.5/extensions/messages.d.ts +10 -0
- package/package.json +8 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 111.35.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`db3c50fa8f5c3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/db3c50fa8f5c3) -
|
|
8
|
+
[ux] Display unknown macro body content when an extension fails to load in the editor, showing the
|
|
9
|
+
macro title, parameters, and body content instead of a generic error message.
|
|
10
|
+
|
|
11
|
+
## 111.35.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- [`b5d357be83d54`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/b5d357be83d54) -
|
|
16
|
+
EDITOR-5728 Tab to Improve Writing: Update nudge decoration widget and i18n messages and only
|
|
17
|
+
support paragraph
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
|
|
3
23
|
## 111.34.1
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.aiQuickPromptMessages = void 0;
|
|
7
|
+
var _reactIntlNext = require("react-intl-next");
|
|
8
|
+
var aiQuickPromptMessages = exports.aiQuickPromptMessages = (0, _reactIntlNext.defineMessages)({
|
|
9
|
+
nudgeText: {
|
|
10
|
+
id: 'fabric.editor.ai.quickPrompt.nudge',
|
|
11
|
+
defaultMessage: '<code>Tab</code> to improve writing',
|
|
12
|
+
description: 'Nudge text shown inline after a paragraph to suggest the user ' + 'press Tab to trigger AI improve writing. <code> tags wrap the ' + 'key name and are rendered as styled code spans.'
|
|
13
|
+
}
|
|
14
|
+
});
|
|
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "aiProactiveTransformMessages", {
|
|
|
57
57
|
return _aiProactiveTransform.aiProactiveTransformMessages;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "aiQuickPromptMessages", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _aiQuickPrompt.aiQuickPromptMessages;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
60
66
|
Object.defineProperty(exports, "aiSuggestionsMessages", {
|
|
61
67
|
enumerable: true,
|
|
62
68
|
get: function get() {
|
|
@@ -72,4 +78,5 @@ var _aiProactive = require("./ai-proactive");
|
|
|
72
78
|
var _ai = require("./ai");
|
|
73
79
|
var _aiProactiveSetting = require("./ai-proactive-setting");
|
|
74
80
|
var _aiProactiveTransform = require("./ai-proactive-transform");
|
|
81
|
+
var _aiQuickPrompt = require("./ai-quick-prompt");
|
|
75
82
|
var _aiSuggestions = require("./ai-suggestions");
|
|
@@ -20,6 +20,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
20
20
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
21
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
22
22
|
var _state = require("@atlaskit/editor-prosemirror/state");
|
|
23
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
23
24
|
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
24
25
|
var _extensions = require("../extensions");
|
|
25
26
|
var _utils = require("../utils");
|
|
@@ -196,12 +197,12 @@ var ExtensionComponentInner = /*#__PURE__*/function (_Component) {
|
|
|
196
197
|
references: _this.props.references,
|
|
197
198
|
actions: actions
|
|
198
199
|
});
|
|
199
|
-
} else {
|
|
200
|
-
return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
|
|
201
|
-
node: node,
|
|
202
|
-
references: _this.props.references
|
|
203
|
-
});
|
|
204
200
|
}
|
|
201
|
+
return /*#__PURE__*/_react.default.createElement(NodeRenderer, {
|
|
202
|
+
node: node,
|
|
203
|
+
references: _this.props.references,
|
|
204
|
+
showUnknownMacroPlaceholder: (0, _platformFeatureFlags.fg)('tinymce_display_unknown_macro_body_content')
|
|
205
|
+
});
|
|
205
206
|
}
|
|
206
207
|
}
|
|
207
208
|
return result;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
._11c81a4x{font:var(--ds-font-body-small,9pt)}
|
|
2
|
+
._11c8fhey{font:var(--ds-font-body,normal 400 14px/20px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
|
|
3
|
+
._19it7tl1{border:var(--_98ihdp)}
|
|
4
|
+
._2rko12b0{border-radius:var(--ds-radius-small,4px)}
|
|
5
|
+
._2rko14xi{border-radius:var(--ds-radius-small,4px) var(--ds-radius-small,4px) 0 0}
|
|
6
|
+
._n7zl7tl1{border-bottom:var(--_98ihdp)}
|
|
7
|
+
._154i1n1a{top:-1px}
|
|
8
|
+
._18m915vq{overflow-y:hidden}
|
|
9
|
+
._18u0idpf{margin-left:0}
|
|
10
|
+
._19bvpxbi{padding-left:var(--ds-space-200,1pc)}
|
|
11
|
+
._19bvutpp{padding-left:var(--ds-space-150,9pt)}
|
|
12
|
+
._19pkidpf{margin-top:0}
|
|
13
|
+
._1nmz1hna{word-break:break-word}
|
|
14
|
+
._1reo15vq{overflow-x:hidden}
|
|
15
|
+
._2hwxidpf{margin-right:0}
|
|
16
|
+
._6z24egat{tab-size:4}
|
|
17
|
+
._bfhki8nm{background-color:var(--ds-background-neutral,#0515240f)}
|
|
18
|
+
._bfhkrnwa{background-color:var(--ds-surface-raised,#fffdf6)}
|
|
19
|
+
._bfhkvuon{background-color:var(--ds-surface,#fff)}
|
|
20
|
+
._ca0qu2gc{padding-top:var(--ds-space-100,8px)}
|
|
21
|
+
._ca0qutpp{padding-top:var(--ds-space-150,9pt)}
|
|
22
|
+
._kqswh2mm{position:relative}
|
|
23
|
+
._n3td1b66{padding-bottom:var(--ds-space-050,4px)}
|
|
24
|
+
._n3tdutpp{padding-bottom:var(--ds-space-150,9pt)}
|
|
25
|
+
._o5721jtm{white-space:pre-wrap}
|
|
26
|
+
._otyridpf{margin-bottom:0}
|
|
27
|
+
._u5f3pxbi{padding-right:var(--ds-space-200,1pc)}
|
|
28
|
+
._u5f3utpp{padding-right:var(--ds-space-150,9pt)}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/* UnknownMacroPlaceholder.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.UnknownMacroPlaceholder = UnknownMacroPlaceholder;
|
|
10
|
+
require("./UnknownMacroPlaceholder.compiled.css");
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _runtime = require("@compiled/react/runtime");
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
|
+
var _reactIntlNext = require("react-intl-next");
|
|
15
|
+
var _messages = require("./messages");
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
17
|
+
// Unknown macro placeholder styling aligned with Legacy Content Macro (LCM) for consistent look
|
|
18
|
+
var neutralBorder = "var(--ds-background-neutral, #0515240F)";
|
|
19
|
+
var unknownMacroContainerStyles = null;
|
|
20
|
+
|
|
21
|
+
// Match LCM header exactly: lcmHeaderStyles from LegacyContentHeader/index.tsx
|
|
22
|
+
var unknownMacroHeaderStyles = null;
|
|
23
|
+
|
|
24
|
+
// Match LCM content area: white surface, text color inherits
|
|
25
|
+
var unknownMacroBodyStyles = null;
|
|
26
|
+
var unknownMacroPreStyles = null;
|
|
27
|
+
function UnknownMacroPlaceholder(_ref) {
|
|
28
|
+
var _extensionNode$parame, _extensionNode$parame2, _extensionNode$parame3, _extensionNode$parame4;
|
|
29
|
+
var extensionNode = _ref.extensionNode;
|
|
30
|
+
var intl = (0, _reactIntlNext.useIntl)();
|
|
31
|
+
var macroTitle = ((_extensionNode$parame = extensionNode.parameters) === null || _extensionNode$parame === void 0 || (_extensionNode$parame = _extensionNode$parame.macroMetadata) === null || _extensionNode$parame === void 0 ? void 0 : _extensionNode$parame.title) || extensionNode.extensionKey;
|
|
32
|
+
var bodyContent = (_extensionNode$parame2 = extensionNode.parameters) === null || _extensionNode$parame2 === void 0 || (_extensionNode$parame2 = _extensionNode$parame2.macroParams) === null || _extensionNode$parame2 === void 0 || (_extensionNode$parame2 = _extensionNode$parame2.__bodyContent) === null || _extensionNode$parame2 === void 0 ? void 0 : _extensionNode$parame2.value;
|
|
33
|
+
var macroParams = (_extensionNode$parame3 = (_extensionNode$parame4 = extensionNode.parameters) === null || _extensionNode$parame4 === void 0 ? void 0 : _extensionNode$parame4.macroParams) !== null && _extensionNode$parame3 !== void 0 ? _extensionNode$parame3 : {};
|
|
34
|
+
var formatParam = function formatParam(key, param) {
|
|
35
|
+
var _param$value;
|
|
36
|
+
var value = String((_param$value = param === null || param === void 0 ? void 0 : param.value) !== null && _param$value !== void 0 ? _param$value : '').trim();
|
|
37
|
+
return "".concat(key, " = ").concat(value);
|
|
38
|
+
};
|
|
39
|
+
var visibleParams = Object.entries(macroParams).filter(function (_ref2) {
|
|
40
|
+
var _ref3 = (0, _slicedToArray2.default)(_ref2, 1),
|
|
41
|
+
key = _ref3[0];
|
|
42
|
+
return !key.startsWith('_');
|
|
43
|
+
}).map(function (_ref4) {
|
|
44
|
+
var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
|
|
45
|
+
key = _ref5[0],
|
|
46
|
+
param = _ref5[1];
|
|
47
|
+
return formatParam(key, param);
|
|
48
|
+
}).join(' | ');
|
|
49
|
+
var headerText = visibleParams ? "".concat(intl.formatMessage(_messages.messages.unknownMacroHeader, {
|
|
50
|
+
macroTitle: macroTitle
|
|
51
|
+
}), " | ").concat(visibleParams) : intl.formatMessage(_messages.messages.unknownMacroHeader, {
|
|
52
|
+
macroTitle: macroTitle
|
|
53
|
+
});
|
|
54
|
+
return /*#__PURE__*/React.createElement("section", {
|
|
55
|
+
"aria-label": intl.formatMessage(_messages.messages.unknownMacroPlaceholderAriaLabel),
|
|
56
|
+
className: (0, _runtime.ax)(["_19it7tl1 _2rko12b0 _1reo15vq _18m915vq _bfhkrnwa"]),
|
|
57
|
+
style: {
|
|
58
|
+
"--_98ihdp": (0, _runtime.ix)("1px solid ".concat(neutralBorder))
|
|
59
|
+
}
|
|
60
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
61
|
+
className: (0, _runtime.ax)(["_2rko14xi _11c81a4x _n7zl7tl1 _bfhki8nm _ca0qu2gc _u5f3pxbi _n3td1b66 _19bvpxbi _kqswh2mm _154i1n1a"]),
|
|
62
|
+
style: {
|
|
63
|
+
"--_98ihdp": (0, _runtime.ix)("1px solid ".concat(neutralBorder))
|
|
64
|
+
}
|
|
65
|
+
}, headerText), /*#__PURE__*/React.createElement("div", {
|
|
66
|
+
className: (0, _runtime.ax)(["_19pkidpf _2hwxidpf _otyridpf _18u0idpf _bfhkvuon _ca0qutpp _u5f3utpp _n3tdutpp _19bvutpp"])
|
|
67
|
+
}, /*#__PURE__*/React.createElement("pre", {
|
|
68
|
+
className: (0, _runtime.ax)(["_19pkidpf _2hwxidpf _otyridpf _18u0idpf _11c8fhey _o5721jtm _1nmz1hna _6z24egat"])
|
|
69
|
+
}, bodyContent)));
|
|
70
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -8,144 +7,46 @@ exports.getCustomFieldResolver = getCustomFieldResolver;
|
|
|
8
7
|
exports.getFieldDeserializer = getFieldDeserializer;
|
|
9
8
|
exports.getFieldSerializer = getFieldSerializer;
|
|
10
9
|
exports.getUserFieldContextProvider = getUserFieldContextProvider;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
function getExtensionModuleField(manifest, fieldType, handlerLink) {
|
|
11
|
+
if (!handlerLink.type) {
|
|
12
|
+
throw new Error("Missing type!");
|
|
13
|
+
}
|
|
14
|
+
if (!manifest.modules.fields) {
|
|
15
|
+
throw new Error("No definition of fields for extension type \"".concat(manifest.type, "\" and key \"").concat(manifest.key, "\""));
|
|
16
|
+
}
|
|
17
|
+
if (!manifest.modules.fields[fieldType]) {
|
|
18
|
+
throw new Error("No definition for field type \"".concat(fieldType, "\" on manifest for extension with type \"").concat(manifest.type, "\" and key \"").concat(manifest.key, "\""));
|
|
19
|
+
}
|
|
20
|
+
var type = handlerLink.type;
|
|
21
|
+
// Ignored via go/ees005
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
23
|
+
var handler = manifest.modules.fields[fieldType][type];
|
|
24
|
+
if (!handler) {
|
|
25
|
+
throw new Error("No handler of type \"".concat(type, "\" for extension type \"").concat(manifest.type, "\" and key \"").concat(manifest.key, "\""));
|
|
26
|
+
}
|
|
27
|
+
return handler;
|
|
17
28
|
}
|
|
29
|
+
|
|
18
30
|
/** attempt to get the custom resolver for this field, or throw */
|
|
19
|
-
function
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
23
|
-
while (1) switch (_context.prev = _context.next) {
|
|
24
|
-
case 0:
|
|
25
|
-
if (handlerLink.type) {
|
|
26
|
-
_context.next = 2;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
throw new Error("Missing type!");
|
|
30
|
-
case 2:
|
|
31
|
-
if (manifest.modules.fields) {
|
|
32
|
-
_context.next = 4;
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
throw new Error("No definition of fields for extension type \"".concat(manifest.type, "\" and key \"").concat(manifest.key, "\""));
|
|
36
|
-
case 4:
|
|
37
|
-
if (manifest.modules.fields[fieldType]) {
|
|
38
|
-
_context.next = 6;
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
throw new Error("No definition for field type \"".concat(fieldType, "\" on manifest for extension with type \"").concat(manifest.type, "\" and key \"").concat(manifest.key, "\""));
|
|
42
|
-
case 6:
|
|
43
|
-
type = handlerLink.type; // Ignored via go/ees005
|
|
44
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
45
|
-
handler = manifest.modules.fields[fieldType][type];
|
|
46
|
-
if (handler) {
|
|
47
|
-
_context.next = 10;
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
throw new Error("No handler of type \"".concat(type, "\" for extension type \"").concat(manifest.type, "\" and key \"").concat(manifest.key, "\""));
|
|
51
|
-
case 10:
|
|
52
|
-
return _context.abrupt("return", handler);
|
|
53
|
-
case 11:
|
|
54
|
-
case "end":
|
|
55
|
-
return _context.stop();
|
|
56
|
-
}
|
|
57
|
-
}, _callee);
|
|
58
|
-
}));
|
|
59
|
-
return _getExtensionModuleField.apply(this, arguments);
|
|
60
|
-
}
|
|
61
|
-
function getCustomFieldResolver(_x4, _x5) {
|
|
62
|
-
return _getCustomFieldResolver.apply(this, arguments);
|
|
31
|
+
function getCustomFieldResolver(manifest, handlerLink) {
|
|
32
|
+
var handler = getExtensionModuleField(manifest, 'custom', handlerLink);
|
|
33
|
+
return handler.resolver;
|
|
63
34
|
}
|
|
35
|
+
|
|
64
36
|
/** attempt to get the serializer for this field, or throw */
|
|
65
|
-
function
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
69
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
70
|
-
case 0:
|
|
71
|
-
_context2.next = 2;
|
|
72
|
-
return getExtensionModuleField(manifest, 'custom', handlerLink);
|
|
73
|
-
case 2:
|
|
74
|
-
handler = _context2.sent;
|
|
75
|
-
return _context2.abrupt("return", handler.resolver);
|
|
76
|
-
case 4:
|
|
77
|
-
case "end":
|
|
78
|
-
return _context2.stop();
|
|
79
|
-
}
|
|
80
|
-
}, _callee2);
|
|
81
|
-
}));
|
|
82
|
-
return _getCustomFieldResolver.apply(this, arguments);
|
|
83
|
-
}
|
|
84
|
-
function getFieldSerializer(_x6, _x7) {
|
|
85
|
-
return _getFieldSerializer.apply(this, arguments);
|
|
37
|
+
function getFieldSerializer(manifest, handlerLink) {
|
|
38
|
+
var handler = getExtensionModuleField(manifest, 'fieldset', handlerLink);
|
|
39
|
+
return handler.serializer;
|
|
86
40
|
}
|
|
41
|
+
|
|
87
42
|
/** attempt to get the deserializer for this field, or throw */
|
|
88
|
-
function
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
92
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
93
|
-
case 0:
|
|
94
|
-
_context3.next = 2;
|
|
95
|
-
return getExtensionModuleField(manifest, 'fieldset', handlerLink);
|
|
96
|
-
case 2:
|
|
97
|
-
handler = _context3.sent;
|
|
98
|
-
return _context3.abrupt("return", handler.serializer);
|
|
99
|
-
case 4:
|
|
100
|
-
case "end":
|
|
101
|
-
return _context3.stop();
|
|
102
|
-
}
|
|
103
|
-
}, _callee3);
|
|
104
|
-
}));
|
|
105
|
-
return _getFieldSerializer.apply(this, arguments);
|
|
106
|
-
}
|
|
107
|
-
function getFieldDeserializer(_x8, _x9) {
|
|
108
|
-
return _getFieldDeserializer.apply(this, arguments);
|
|
43
|
+
function getFieldDeserializer(manifest, handlerLink) {
|
|
44
|
+
var handler = getExtensionModuleField(manifest, 'fieldset', handlerLink);
|
|
45
|
+
return handler.deserializer;
|
|
109
46
|
}
|
|
47
|
+
|
|
110
48
|
/** attempt to get the user field context provider for this field, or throw */
|
|
111
|
-
function
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
115
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
116
|
-
case 0:
|
|
117
|
-
_context4.next = 2;
|
|
118
|
-
return getExtensionModuleField(manifest, 'fieldset', handlerLink);
|
|
119
|
-
case 2:
|
|
120
|
-
handler = _context4.sent;
|
|
121
|
-
return _context4.abrupt("return", handler.deserializer);
|
|
122
|
-
case 4:
|
|
123
|
-
case "end":
|
|
124
|
-
return _context4.stop();
|
|
125
|
-
}
|
|
126
|
-
}, _callee4);
|
|
127
|
-
}));
|
|
128
|
-
return _getFieldDeserializer.apply(this, arguments);
|
|
129
|
-
}
|
|
130
|
-
function getUserFieldContextProvider(_x0, _x1) {
|
|
131
|
-
return _getUserFieldContextProvider.apply(this, arguments);
|
|
132
|
-
}
|
|
133
|
-
function _getUserFieldContextProvider() {
|
|
134
|
-
_getUserFieldContextProvider = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(manifest, handlerLink) {
|
|
135
|
-
var handler;
|
|
136
|
-
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
137
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
138
|
-
case 0:
|
|
139
|
-
_context5.next = 2;
|
|
140
|
-
return getExtensionModuleField(manifest, 'user', handlerLink);
|
|
141
|
-
case 2:
|
|
142
|
-
handler = _context5.sent;
|
|
143
|
-
return _context5.abrupt("return", handler.provider);
|
|
144
|
-
case 4:
|
|
145
|
-
case "end":
|
|
146
|
-
return _context5.stop();
|
|
147
|
-
}
|
|
148
|
-
}, _callee5);
|
|
149
|
-
}));
|
|
150
|
-
return _getUserFieldContextProvider.apply(this, arguments);
|
|
49
|
+
function getUserFieldContextProvider(manifest, handlerLink) {
|
|
50
|
+
var handler = getExtensionModuleField(manifest, 'user', handlerLink);
|
|
51
|
+
return handler.provider;
|
|
151
52
|
}
|
|
@@ -15,8 +15,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
15
15
|
var _react = _interopRequireDefault(require("react"));
|
|
16
16
|
var _reactIntlNext = require("react-intl-next");
|
|
17
17
|
var _reactLoadable = _interopRequireDefault(require("react-loadable"));
|
|
18
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
19
|
var _manifestHelpers = require("./manifest-helpers");
|
|
19
20
|
var _messages = require("./messages");
|
|
21
|
+
var _UnknownMacroPlaceholder = require("./UnknownMacroPlaceholder");
|
|
20
22
|
function getNodeFromManifest(
|
|
21
23
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
24
|
manifest, extKey, nodeKey, extensionType, extensionKey) {
|
|
@@ -111,11 +113,21 @@ function _getExtensionModuleNodePrivateProps() {
|
|
|
111
113
|
}));
|
|
112
114
|
return _getExtensionModuleNodePrivateProps.apply(this, arguments);
|
|
113
115
|
}
|
|
116
|
+
function isUnknownConfluenceMacroWithBody(extensionNode) {
|
|
117
|
+
var _extensionNode$parame;
|
|
118
|
+
return extensionNode !== null && extensionNode.type === 'extension' && extensionNode.extensionType === 'com.atlassian.confluence.macro.core' && !!((_extensionNode$parame = extensionNode.parameters) !== null && _extensionNode$parame !== void 0 && (_extensionNode$parame = _extensionNode$parame.macroParams) !== null && _extensionNode$parame !== void 0 && (_extensionNode$parame = _extensionNode$parame.__bodyContent) !== null && _extensionNode$parame !== void 0 && _extensionNode$parame.value);
|
|
119
|
+
}
|
|
114
120
|
function ExtensionLoading(props) {
|
|
115
121
|
var intl = (0, _reactIntlNext.useIntl)();
|
|
122
|
+
var extensionNode = props.node;
|
|
116
123
|
if (props.error || props.timedOut) {
|
|
117
124
|
// eslint-disable-next-line no-console
|
|
118
125
|
console.error('Error rendering extension', props.error);
|
|
126
|
+
if (props.error && props.showUnknownMacroPlaceholder && extensionNode && isUnknownConfluenceMacroWithBody(extensionNode) && (0, _platformFeatureFlags.fg)('tinymce_display_unknown_macro_body_content')) {
|
|
127
|
+
return /*#__PURE__*/_react.default.createElement(_UnknownMacroPlaceholder.UnknownMacroPlaceholder, {
|
|
128
|
+
extensionNode: extensionNode
|
|
129
|
+
});
|
|
130
|
+
}
|
|
119
131
|
return /*#__PURE__*/_react.default.createElement("div", null, intl.formatMessage(_messages.messages.extensionLoadingError));
|
|
120
132
|
} else {
|
|
121
133
|
return null;
|
|
@@ -139,6 +151,10 @@ function getNodeRenderer(extensionProvider, extensionType, extensionKey) {
|
|
|
139
151
|
(0, _manifestHelpers.resolveImportSync)(preloaded) : (0, _manifestHelpers.resolveImport)(maybePromise.render());
|
|
140
152
|
}
|
|
141
153
|
},
|
|
154
|
+
// react-loadable passes all props from <NodeRenderer> to the loading component at runtime,
|
|
155
|
+
// but its TypeScript types only expect LoadingComponentProps. We cast here because
|
|
156
|
+
// ExtensionLoading accepts additional props (node, showUnknownMacroPlaceholder) that
|
|
157
|
+
// react-loadable will pass through but doesn't know about in its type definitions.
|
|
142
158
|
loading: ExtensionLoading
|
|
143
159
|
});
|
|
144
160
|
}
|
|
@@ -50,6 +50,16 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
|
|
|
50
50
|
id: 'fabric.editor.extension.loading-error',
|
|
51
51
|
defaultMessage: 'Error loading the extension!',
|
|
52
52
|
description: 'Error message displayed when an extension fails to load in the editor. Indicates a problem occurred during the extension initialization or rendering process.'
|
|
53
|
+
},
|
|
54
|
+
unknownMacroPlaceholderAriaLabel: {
|
|
55
|
+
id: 'fabric.editor.extension.unknownMacroPlaceholderAriaLabel',
|
|
56
|
+
defaultMessage: 'Unknown macro placeholder',
|
|
57
|
+
description: 'Accessible label for the unknown macro fallback block shown when a Confluence macro cannot be resolved.'
|
|
58
|
+
},
|
|
59
|
+
unknownMacroHeader: {
|
|
60
|
+
id: 'fabric.editor.extension.unknownMacroHeader',
|
|
61
|
+
defaultMessage: "Unknown macro: ''{macroTitle}''",
|
|
62
|
+
description: 'Header text for an unresolved Confluence macro placeholder.'
|
|
53
63
|
}
|
|
54
64
|
});
|
|
55
65
|
var configPanelMessages = exports.configPanelMessages = (0, _reactIntlNext.defineMessages)({
|
|
@@ -73,46 +73,27 @@ function getAutoConvertPatternsFromModule(_x) {
|
|
|
73
73
|
return _getAutoConvertPatternsFromModule.apply(this, arguments);
|
|
74
74
|
}
|
|
75
75
|
function _getAutoConvertPatternsFromModule() {
|
|
76
|
-
_getAutoConvertPatternsFromModule = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
77
|
-
var
|
|
76
|
+
_getAutoConvertPatternsFromModule = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(extensions) {
|
|
77
|
+
var _ref2;
|
|
78
78
|
var items;
|
|
79
|
-
return _regenerator.default.wrap(function
|
|
80
|
-
while (1) switch (
|
|
79
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
80
|
+
while (1) switch (_context.prev = _context.next) {
|
|
81
81
|
case 0:
|
|
82
|
-
|
|
83
|
-
return Promise.all(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
while (1) switch (_context.prev = _context.next) {
|
|
90
|
-
case 0:
|
|
91
|
-
if (!(manifest.modules.autoConvert && manifest.modules.autoConvert.url)) {
|
|
92
|
-
_context.next = 2;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
return _context.abrupt("return", manifest.modules.autoConvert.url);
|
|
96
|
-
case 2:
|
|
97
|
-
return _context.abrupt("return", []);
|
|
98
|
-
case 3:
|
|
99
|
-
case "end":
|
|
100
|
-
return _context.stop();
|
|
101
|
-
}
|
|
102
|
-
}, _callee);
|
|
103
|
-
}));
|
|
104
|
-
return function (_x3) {
|
|
105
|
-
return _ref2.apply(this, arguments);
|
|
106
|
-
};
|
|
107
|
-
}()));
|
|
82
|
+
_context.next = 2;
|
|
83
|
+
return Promise.all(extensions.map(function (manifest) {
|
|
84
|
+
if (manifest.modules.autoConvert && manifest.modules.autoConvert.url) {
|
|
85
|
+
return manifest.modules.autoConvert.url;
|
|
86
|
+
}
|
|
87
|
+
return [];
|
|
88
|
+
}));
|
|
108
89
|
case 2:
|
|
109
|
-
items =
|
|
110
|
-
return
|
|
90
|
+
items = _context.sent;
|
|
91
|
+
return _context.abrupt("return", (_ref2 = []).concat.apply(_ref2, (0, _toConsumableArray2.default)(items)));
|
|
111
92
|
case 4:
|
|
112
93
|
case "end":
|
|
113
|
-
return
|
|
94
|
+
return _context.stop();
|
|
114
95
|
}
|
|
115
|
-
},
|
|
96
|
+
}, _callee);
|
|
116
97
|
}));
|
|
117
98
|
return _getAutoConvertPatternsFromModule.apply(this, arguments);
|
|
118
99
|
}
|
|
@@ -140,25 +121,25 @@ function getExtensionAutoConvertersFromProvider(_x2) {
|
|
|
140
121
|
} // Ignored via go/ees005
|
|
141
122
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
142
123
|
function _getExtensionAutoConvertersFromProvider() {
|
|
143
|
-
_getExtensionAutoConvertersFromProvider = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
124
|
+
_getExtensionAutoConvertersFromProvider = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(extensionProviderPromise) {
|
|
144
125
|
var extensionProvider, extensionAutoConverters;
|
|
145
|
-
return _regenerator.default.wrap(function
|
|
146
|
-
while (1) switch (
|
|
126
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
127
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
147
128
|
case 0:
|
|
148
|
-
|
|
129
|
+
_context2.next = 2;
|
|
149
130
|
return extensionProviderPromise;
|
|
150
131
|
case 2:
|
|
151
|
-
extensionProvider =
|
|
152
|
-
|
|
132
|
+
extensionProvider = _context2.sent;
|
|
133
|
+
_context2.next = 5;
|
|
153
134
|
return extensionProvider.getAutoConverter();
|
|
154
135
|
case 5:
|
|
155
|
-
extensionAutoConverters =
|
|
156
|
-
return
|
|
136
|
+
extensionAutoConverters = _context2.sent;
|
|
137
|
+
return _context2.abrupt("return", createAutoConverterRunner(extensionAutoConverters));
|
|
157
138
|
case 7:
|
|
158
139
|
case "end":
|
|
159
|
-
return
|
|
140
|
+
return _context2.stop();
|
|
160
141
|
}
|
|
161
|
-
},
|
|
142
|
+
}, _callee2);
|
|
162
143
|
}));
|
|
163
144
|
return _getExtensionAutoConvertersFromProvider.apply(this, arguments);
|
|
164
145
|
}
|
|
@@ -60,25 +60,9 @@ var convertExtensionToDropdownMenuItem = function convertExtensionToDropdownMenu
|
|
|
60
60
|
extension = _ref2.extension,
|
|
61
61
|
IconComponent = _ref2.IconComponent;
|
|
62
62
|
var ButtonIcon = item.icon ? (0, _reactLoadable.default)({
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
var _loader = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
67
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
68
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
69
|
-
case 0:
|
|
70
|
-
return _context2.abrupt("return", resolveExtensionIcon(item.icon));
|
|
71
|
-
case 1:
|
|
72
|
-
case "end":
|
|
73
|
-
return _context2.stop();
|
|
74
|
-
}
|
|
75
|
-
}, _callee2);
|
|
76
|
-
}));
|
|
77
|
-
function loader() {
|
|
78
|
-
return _loader.apply(this, arguments);
|
|
79
|
-
}
|
|
80
|
-
return loader;
|
|
81
|
-
}(),
|
|
63
|
+
loader: function loader() {
|
|
64
|
+
return resolveExtensionIcon(item.icon);
|
|
65
|
+
},
|
|
82
66
|
loading: noop
|
|
83
67
|
}) : undefined;
|
|
84
68
|
var title = '';
|
|
@@ -127,25 +111,9 @@ var DropdownMenuExtensionItem = function DropdownMenuExtensionItem(_ref3) {
|
|
|
127
111
|
var iconRef = (0, _react.useRef)(null);
|
|
128
112
|
if (!iconRef.current && item.icon && (0, _expValEquals.expValEquals)('platform_editor_table_toolbar_icon_ext_fix_exp', 'isEnabled', true)) {
|
|
129
113
|
iconRef.current = (0, _reactLoadable.default)({
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
var _loader2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
134
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
135
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
136
|
-
case 0:
|
|
137
|
-
return _context3.abrupt("return", resolveExtensionIcon(item.icon));
|
|
138
|
-
case 1:
|
|
139
|
-
case "end":
|
|
140
|
-
return _context3.stop();
|
|
141
|
-
}
|
|
142
|
-
}, _callee3);
|
|
143
|
-
}));
|
|
144
|
-
function loader() {
|
|
145
|
-
return _loader2.apply(this, arguments);
|
|
146
|
-
}
|
|
147
|
-
return loader;
|
|
148
|
-
}(),
|
|
114
|
+
loader: function loader() {
|
|
115
|
+
return resolveExtensionIcon(item.icon);
|
|
116
|
+
},
|
|
149
117
|
loading: noop
|
|
150
118
|
});
|
|
151
119
|
}
|
|
@@ -190,30 +158,30 @@ var DropdownMenuExtensionItems = exports.DropdownMenuExtensionItems = function D
|
|
|
190
158
|
return _getExtensions.apply(this, arguments);
|
|
191
159
|
}
|
|
192
160
|
function _getExtensions() {
|
|
193
|
-
_getExtensions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
161
|
+
_getExtensions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
194
162
|
var provider;
|
|
195
|
-
return _regenerator.default.wrap(function
|
|
196
|
-
while (1) switch (
|
|
163
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
164
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
197
165
|
case 0:
|
|
198
|
-
|
|
166
|
+
_context2.next = 2;
|
|
199
167
|
return extension.extensionProvider;
|
|
200
168
|
case 2:
|
|
201
|
-
provider =
|
|
169
|
+
provider = _context2.sent;
|
|
202
170
|
if (!provider) {
|
|
203
|
-
|
|
171
|
+
_context2.next = 9;
|
|
204
172
|
break;
|
|
205
173
|
}
|
|
206
|
-
|
|
207
|
-
|
|
174
|
+
_context2.t0 = setExtensions;
|
|
175
|
+
_context2.next = 7;
|
|
208
176
|
return provider.getExtensions();
|
|
209
177
|
case 7:
|
|
210
|
-
|
|
211
|
-
(0,
|
|
178
|
+
_context2.t1 = _context2.sent;
|
|
179
|
+
(0, _context2.t0)(_context2.t1);
|
|
212
180
|
case 9:
|
|
213
181
|
case "end":
|
|
214
|
-
return
|
|
182
|
+
return _context2.stop();
|
|
215
183
|
}
|
|
216
|
-
},
|
|
184
|
+
}, _callee2);
|
|
217
185
|
}));
|
|
218
186
|
return _getExtensions.apply(this, arguments);
|
|
219
187
|
}
|
|
@@ -19,7 +19,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
19
19
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
20
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
21
21
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
22
|
-
var packageVersion = "
|
|
22
|
+
var packageVersion = "0.0.0-development";
|
|
23
23
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
24
24
|
// Remove URL as it has UGC
|
|
25
25
|
// Ignored via go/ees007
|