@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.
Files changed (55) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/ai-messages/ai-quick-prompt.js +14 -0
  3. package/dist/cjs/ai-messages/index.js +7 -0
  4. package/dist/cjs/extensibility/ExtensionComponent.js +6 -5
  5. package/dist/cjs/extensions/UnknownMacroPlaceholder.compiled.css +28 -0
  6. package/dist/cjs/extensions/UnknownMacroPlaceholder.js +70 -0
  7. package/dist/cjs/extensions/extension-fields-helpers.js +34 -133
  8. package/dist/cjs/extensions/extension-handlers.js +16 -0
  9. package/dist/cjs/extensions/messages.js +10 -0
  10. package/dist/cjs/extensions/module-helpers.js +25 -44
  11. package/dist/cjs/floating-toolbar/DropdownMenuExtensionItems.js +18 -50
  12. package/dist/cjs/monitoring/error.js +1 -1
  13. package/dist/cjs/styles/shared/table.js +1 -1
  14. package/dist/cjs/ui/DropList/index.js +1 -1
  15. package/dist/es2019/ai-messages/ai-quick-prompt.js +8 -0
  16. package/dist/es2019/ai-messages/index.js +1 -0
  17. package/dist/es2019/extensibility/ExtensionComponent.js +6 -5
  18. package/dist/es2019/extensions/UnknownMacroPlaceholder.compiled.css +28 -0
  19. package/dist/es2019/extensions/UnknownMacroPlaceholder.js +46 -0
  20. package/dist/es2019/extensions/extension-fields-helpers.js +9 -11
  21. package/dist/es2019/extensions/extension-handlers.js +16 -0
  22. package/dist/es2019/extensions/messages.js +10 -0
  23. package/dist/es2019/extensions/module-helpers.js +1 -4
  24. package/dist/es2019/floating-toolbar/DropdownMenuExtensionItems.js +2 -6
  25. package/dist/es2019/monitoring/error.js +1 -1
  26. package/dist/es2019/styles/shared/table.js +1 -1
  27. package/dist/es2019/ui/DropList/index.js +1 -1
  28. package/dist/esm/ai-messages/ai-quick-prompt.js +8 -0
  29. package/dist/esm/ai-messages/index.js +1 -0
  30. package/dist/esm/extensibility/ExtensionComponent.js +6 -5
  31. package/dist/esm/extensions/UnknownMacroPlaceholder.compiled.css +28 -0
  32. package/dist/esm/extensions/UnknownMacroPlaceholder.js +61 -0
  33. package/dist/esm/extensions/extension-fields-helpers.js +31 -132
  34. package/dist/esm/extensions/extension-handlers.js +16 -0
  35. package/dist/esm/extensions/messages.js +10 -0
  36. package/dist/esm/extensions/module-helpers.js +25 -44
  37. package/dist/esm/floating-toolbar/DropdownMenuExtensionItems.js +18 -50
  38. package/dist/esm/monitoring/error.js +1 -1
  39. package/dist/esm/styles/shared/table.js +1 -1
  40. package/dist/esm/ui/DropList/index.js +1 -1
  41. package/dist/types/ai-messages/ai-quick-prompt.d.ts +7 -0
  42. package/dist/types/ai-messages/index.d.ts +1 -0
  43. package/dist/types/experiences/ExperienceCheckDomMutation.d.ts +2 -2
  44. package/dist/types/extensions/UnknownMacroPlaceholder.d.ts +7 -0
  45. package/dist/types/extensions/extension-fields-helpers.d.ts +4 -4
  46. package/dist/types/extensions/extension-handlers.d.ts +1 -0
  47. package/dist/types/extensions/messages.d.ts +10 -0
  48. package/dist/types-ts4.5/ai-messages/ai-quick-prompt.d.ts +7 -0
  49. package/dist/types-ts4.5/ai-messages/index.d.ts +1 -0
  50. package/dist/types-ts4.5/experiences/ExperienceCheckDomMutation.d.ts +2 -2
  51. package/dist/types-ts4.5/extensions/UnknownMacroPlaceholder.d.ts +7 -0
  52. package/dist/types-ts4.5/extensions/extension-fields-helpers.d.ts +4 -4
  53. package/dist/types-ts4.5/extensions/extension-handlers.d.ts +1 -0
  54. package/dist/types-ts4.5/extensions/messages.d.ts +10 -0
  55. 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
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
- // Ignored via go/ees005
14
- // eslint-disable-next-line require-await
15
- function getExtensionModuleField(_x, _x2, _x3) {
16
- return _getExtensionModuleField.apply(this, arguments);
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 _getExtensionModuleField() {
20
- _getExtensionModuleField = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(manifest, fieldType, handlerLink) {
21
- var type, handler;
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 _getCustomFieldResolver() {
66
- _getCustomFieldResolver = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(manifest, handlerLink) {
67
- var handler;
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 _getFieldSerializer() {
89
- _getFieldSerializer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(manifest, handlerLink) {
90
- var handler;
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 _getFieldDeserializer() {
112
- _getFieldDeserializer = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(manifest, handlerLink) {
113
- var handler;
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 _callee2(extensions) {
77
- var _ref3;
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 _callee2$(_context2) {
80
- while (1) switch (_context2.prev = _context2.next) {
79
+ return _regenerator.default.wrap(function _callee$(_context) {
80
+ while (1) switch (_context.prev = _context.next) {
81
81
  case 0:
82
- _context2.next = 2;
83
- return Promise.all(
84
- // Ignored via go/ees005
85
- // eslint-disable-next-line require-await
86
- extensions.map( /*#__PURE__*/function () {
87
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(manifest) {
88
- return _regenerator.default.wrap(function _callee$(_context) {
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 = _context2.sent;
110
- return _context2.abrupt("return", (_ref3 = []).concat.apply(_ref3, (0, _toConsumableArray2.default)(items)));
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 _context2.stop();
94
+ return _context.stop();
114
95
  }
115
- }, _callee2);
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 _callee3(extensionProviderPromise) {
124
+ _getExtensionAutoConvertersFromProvider = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(extensionProviderPromise) {
144
125
  var extensionProvider, extensionAutoConverters;
145
- return _regenerator.default.wrap(function _callee3$(_context3) {
146
- while (1) switch (_context3.prev = _context3.next) {
126
+ return _regenerator.default.wrap(function _callee2$(_context2) {
127
+ while (1) switch (_context2.prev = _context2.next) {
147
128
  case 0:
148
- _context3.next = 2;
129
+ _context2.next = 2;
149
130
  return extensionProviderPromise;
150
131
  case 2:
151
- extensionProvider = _context3.sent;
152
- _context3.next = 5;
132
+ extensionProvider = _context2.sent;
133
+ _context2.next = 5;
153
134
  return extensionProvider.getAutoConverter();
154
135
  case 5:
155
- extensionAutoConverters = _context3.sent;
156
- return _context3.abrupt("return", createAutoConverterRunner(extensionAutoConverters));
136
+ extensionAutoConverters = _context2.sent;
137
+ return _context2.abrupt("return", createAutoConverterRunner(extensionAutoConverters));
157
138
  case 7:
158
139
  case "end":
159
- return _context3.stop();
140
+ return _context2.stop();
160
141
  }
161
- }, _callee3);
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
- // Ignored via go/ees005
64
- // eslint-disable-next-line require-await
65
- loader: function () {
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
- // Ignored via go/ees005
131
- // eslint-disable-next-line require-await
132
- loader: function () {
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 _callee4() {
161
+ _getExtensions = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
194
162
  var provider;
195
- return _regenerator.default.wrap(function _callee4$(_context4) {
196
- while (1) switch (_context4.prev = _context4.next) {
163
+ return _regenerator.default.wrap(function _callee2$(_context2) {
164
+ while (1) switch (_context2.prev = _context2.next) {
197
165
  case 0:
198
- _context4.next = 2;
166
+ _context2.next = 2;
199
167
  return extension.extensionProvider;
200
168
  case 2:
201
- provider = _context4.sent;
169
+ provider = _context2.sent;
202
170
  if (!provider) {
203
- _context4.next = 9;
171
+ _context2.next = 9;
204
172
  break;
205
173
  }
206
- _context4.t0 = setExtensions;
207
- _context4.next = 7;
174
+ _context2.t0 = setExtensions;
175
+ _context2.next = 7;
208
176
  return provider.getExtensions();
209
177
  case 7:
210
- _context4.t1 = _context4.sent;
211
- (0, _context4.t0)(_context4.t1);
178
+ _context2.t1 = _context2.sent;
179
+ (0, _context2.t0)(_context2.t1);
212
180
  case 9:
213
181
  case "end":
214
- return _context4.stop();
182
+ return _context2.stop();
215
183
  }
216
- }, _callee4);
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 = "111.34.0";
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