@atlaskit/editor-common 105.8.0 → 105.8.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 +12 -0
- package/afm-jira/tsconfig.json +3 -0
- package/dist/cjs/ai-messages/ai.js +5 -0
- package/dist/cjs/extensions/combine-extension-providers.js +57 -0
- package/dist/cjs/extensions/default-extension-provider.js +94 -33
- package/dist/cjs/extensions/extension-handlers.js +63 -29
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/es2019/ai-messages/ai.js +5 -0
- package/dist/es2019/extensions/combine-extension-providers.js +23 -0
- package/dist/es2019/extensions/default-extension-provider.js +27 -1
- package/dist/es2019/extensions/extension-handlers.js +38 -4
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/esm/ai-messages/ai.js +5 -0
- package/dist/esm/extensions/combine-extension-providers.js +56 -0
- package/dist/esm/extensions/default-extension-provider.js +94 -33
- package/dist/esm/extensions/extension-handlers.js +62 -30
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/types/ai-messages/ai.d.ts +5 -0
- package/dist/types/extensions/default-extension-provider.d.ts +4 -0
- package/dist/types/extensions/extension-handlers.d.ts +3 -2
- package/dist/types/extensions/types/extension-manifest.d.ts +4 -0
- package/dist/types/extensions/types/extension-provider.d.ts +2 -0
- package/dist/types/extensions.d.ts +2 -1
- package/dist/types-ts4.5/ai-messages/ai.d.ts +5 -0
- package/dist/types-ts4.5/extensions/default-extension-provider.d.ts +4 -0
- package/dist/types-ts4.5/extensions/extension-handlers.d.ts +3 -2
- package/dist/types-ts4.5/extensions/types/extension-manifest.d.ts +4 -0
- package/dist/types-ts4.5/extensions/types/extension-provider.d.ts +2 -0
- package/dist/types-ts4.5/extensions.d.ts +2 -1
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 105.8.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#159107](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159107)
|
|
8
|
+
[`d1effcf832537`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d1effcf832537) -
|
|
9
|
+
[EDITOR-786] Fixed placeholder text + added experimental tooltip + selection based opening the
|
|
10
|
+
- [#158624](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/158624)
|
|
11
|
+
[`8c86d5ce564ac`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8c86d5ce564ac) -
|
|
12
|
+
Allow extension provider and manifest node to be preloaded and called synchronously
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
3
15
|
## 105.8.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/afm-jira/tsconfig.json
CHANGED
|
@@ -43,6 +43,11 @@ var aiMessages = exports.aiMessages = (0, _reactIntlNext.defineMessages)({
|
|
|
43
43
|
defaultMessage: 'Open Atlassian Intelligence',
|
|
44
44
|
description: 'Tooltip text for an option to use Atlassian Intellgience'
|
|
45
45
|
},
|
|
46
|
+
askAIToolbarIconTooltipQuickCommand: {
|
|
47
|
+
id: 'fabric.editor.ai.toolbar.tryAI.tooltip.quickCommand',
|
|
48
|
+
defaultMessage: "Ask AI {key}+'",
|
|
49
|
+
description: 'Tooltip text for an option to use Atlassian Intellgience with quick command'
|
|
50
|
+
},
|
|
46
51
|
tryAIToolbarIconTitle: {
|
|
47
52
|
id: 'fabric.editor.ai.toolbar.tryAI.title',
|
|
48
53
|
defaultMessage: 'Try AI',
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
7
10
|
var _providerHelpers = require("../provider-helpers");
|
|
11
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
12
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
13
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
8
14
|
/**
|
|
9
15
|
* Allow to run methods from the `ExtensionProvider` interface across all providers seamlessly.
|
|
10
16
|
* This handles promise racing and discards rejected promises safely.
|
|
11
17
|
*/
|
|
12
18
|
var _default = exports.default = function _default(extensionProviders) {
|
|
19
|
+
var providersCache = [];
|
|
13
20
|
var _combineProviders = (0, _providerHelpers.combineProviders)(extensionProviders),
|
|
14
21
|
invokeSingle = _combineProviders.invokeSingle,
|
|
15
22
|
invokeList = _combineProviders.invokeList;
|
|
@@ -17,6 +24,56 @@ var _default = exports.default = function _default(extensionProviders) {
|
|
|
17
24
|
getExtensions: function getExtensions() {
|
|
18
25
|
return invokeList('getExtensions');
|
|
19
26
|
},
|
|
27
|
+
preload: function preload() {
|
|
28
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
29
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
30
|
+
while (1) switch (_context.prev = _context.next) {
|
|
31
|
+
case 0:
|
|
32
|
+
if (!(providersCache.length === 0)) {
|
|
33
|
+
_context.next = 4;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
_context.next = 3;
|
|
37
|
+
return Promise.all(extensionProviders.map(function (provider) {
|
|
38
|
+
return Promise.resolve(provider);
|
|
39
|
+
}));
|
|
40
|
+
case 3:
|
|
41
|
+
providersCache = _context.sent;
|
|
42
|
+
case 4:
|
|
43
|
+
_context.next = 6;
|
|
44
|
+
return Promise.all(providersCache.map(function (provider) {
|
|
45
|
+
var _provider$preload;
|
|
46
|
+
return provider === null || provider === void 0 || (_provider$preload = provider.preload) === null || _provider$preload === void 0 ? void 0 : _provider$preload.call(provider);
|
|
47
|
+
}));
|
|
48
|
+
case 6:
|
|
49
|
+
case "end":
|
|
50
|
+
return _context.stop();
|
|
51
|
+
}
|
|
52
|
+
}, _callee);
|
|
53
|
+
}))();
|
|
54
|
+
},
|
|
55
|
+
getPreloadedExtension: function getPreloadedExtension(type, key) {
|
|
56
|
+
if (providersCache.length === 0) {
|
|
57
|
+
// preload() has not been called yet
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
var _iterator = _createForOfIteratorHelper(providersCache),
|
|
61
|
+
_step;
|
|
62
|
+
try {
|
|
63
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
64
|
+
var _provider$getPreloade;
|
|
65
|
+
var provider = _step.value;
|
|
66
|
+
var result = provider === null || provider === void 0 || (_provider$getPreloade = provider.getPreloadedExtension) === null || _provider$getPreloade === void 0 ? void 0 : _provider$getPreloade.call(provider, type, key);
|
|
67
|
+
if (result) {
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
} catch (err) {
|
|
72
|
+
_iterator.e(err);
|
|
73
|
+
} finally {
|
|
74
|
+
_iterator.f();
|
|
75
|
+
}
|
|
76
|
+
},
|
|
20
77
|
getExtension: function getExtension(type, key) {
|
|
21
78
|
return invokeSingle('getExtension', [type, key]);
|
|
22
79
|
},
|
|
@@ -9,7 +9,11 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
13
|
var _moduleHelpers = require("./module-helpers");
|
|
14
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
15
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
16
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
13
17
|
var DefaultExtensionProvider = exports.default = /*#__PURE__*/function () {
|
|
14
18
|
function DefaultExtensionProvider(manifests,
|
|
15
19
|
/**
|
|
@@ -20,6 +24,7 @@ var DefaultExtensionProvider = exports.default = /*#__PURE__*/function () {
|
|
|
20
24
|
*/
|
|
21
25
|
autoConvertHandlers) {
|
|
22
26
|
(0, _classCallCheck2.default)(this, DefaultExtensionProvider);
|
|
27
|
+
(0, _defineProperty2.default)(this, "manifestsCache", []);
|
|
23
28
|
this.manifestsPromise = Promise.resolve(manifests);
|
|
24
29
|
this.autoConvertHandlers = autoConvertHandlers;
|
|
25
30
|
}
|
|
@@ -29,57 +34,113 @@ var DefaultExtensionProvider = exports.default = /*#__PURE__*/function () {
|
|
|
29
34
|
return this.manifestsPromise;
|
|
30
35
|
}
|
|
31
36
|
}, {
|
|
32
|
-
key: "
|
|
37
|
+
key: "preload",
|
|
33
38
|
value: function () {
|
|
34
|
-
var
|
|
35
|
-
var
|
|
39
|
+
var _preload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
40
|
+
var preloadCalls, _iterator, _step, _manifest$modules, manifest, nodes;
|
|
36
41
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
37
42
|
while (1) switch (_context.prev = _context.next) {
|
|
38
43
|
case 0:
|
|
39
44
|
_context.next = 2;
|
|
40
45
|
return this.manifestsPromise;
|
|
41
46
|
case 2:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
this.manifestsCache = _context.sent;
|
|
48
|
+
preloadCalls = [];
|
|
49
|
+
_iterator = _createForOfIteratorHelper(this.manifestsCache);
|
|
50
|
+
try {
|
|
51
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
52
|
+
manifest = _step.value;
|
|
53
|
+
nodes = manifest === null || manifest === void 0 || (_manifest$modules = manifest.modules) === null || _manifest$modules === void 0 ? void 0 : _manifest$modules.nodes;
|
|
54
|
+
if (nodes) {
|
|
55
|
+
Object.values(nodes).forEach(function (node) {
|
|
56
|
+
var _preloadRender, _ref;
|
|
57
|
+
preloadCalls.push(node === null || node === void 0 || (_preloadRender = (_ref = node).preloadRender) === null || _preloadRender === void 0 ? void 0 : _preloadRender.call(_ref));
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
} catch (err) {
|
|
62
|
+
_iterator.e(err);
|
|
63
|
+
} finally {
|
|
64
|
+
_iterator.f();
|
|
48
65
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
case 6:
|
|
66
|
+
_context.next = 8;
|
|
67
|
+
return Promise.allSettled(preloadCalls);
|
|
68
|
+
case 8:
|
|
53
69
|
case "end":
|
|
54
70
|
return _context.stop();
|
|
55
71
|
}
|
|
56
72
|
}, _callee, this);
|
|
57
73
|
}));
|
|
74
|
+
function preload() {
|
|
75
|
+
return _preload.apply(this, arguments);
|
|
76
|
+
}
|
|
77
|
+
return preload;
|
|
78
|
+
}()
|
|
79
|
+
}, {
|
|
80
|
+
key: "getPreloadedExtension",
|
|
81
|
+
value: function getPreloadedExtension(type, key) {
|
|
82
|
+
if (!this.manifestsCache) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
return this.getExtensionFromManifest(this.manifestsCache, type, key);
|
|
86
|
+
}
|
|
87
|
+
}, {
|
|
88
|
+
key: "getExtension",
|
|
89
|
+
value: function () {
|
|
90
|
+
var _getExtension = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(type, key) {
|
|
91
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
92
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
93
|
+
case 0:
|
|
94
|
+
_context2.t0 = this;
|
|
95
|
+
_context2.next = 3;
|
|
96
|
+
return this.manifestsPromise;
|
|
97
|
+
case 3:
|
|
98
|
+
_context2.t1 = _context2.sent;
|
|
99
|
+
_context2.t2 = type;
|
|
100
|
+
_context2.t3 = key;
|
|
101
|
+
return _context2.abrupt("return", _context2.t0.getExtensionFromManifest.call(_context2.t0, _context2.t1, _context2.t2, _context2.t3));
|
|
102
|
+
case 7:
|
|
103
|
+
case "end":
|
|
104
|
+
return _context2.stop();
|
|
105
|
+
}
|
|
106
|
+
}, _callee2, this);
|
|
107
|
+
}));
|
|
58
108
|
function getExtension(_x, _x2) {
|
|
59
109
|
return _getExtension.apply(this, arguments);
|
|
60
110
|
}
|
|
61
111
|
return getExtension;
|
|
62
112
|
}()
|
|
113
|
+
}, {
|
|
114
|
+
key: "getExtensionFromManifest",
|
|
115
|
+
value: function getExtensionFromManifest(manifests, type, key) {
|
|
116
|
+
var extension = manifests.find(function (manifest) {
|
|
117
|
+
return manifest.type === type && manifest.key === key;
|
|
118
|
+
});
|
|
119
|
+
if (!extension) {
|
|
120
|
+
throw new Error("Extension with type \"".concat(type, "\" and key \"").concat(key, "\" not found!"));
|
|
121
|
+
}
|
|
122
|
+
return extension;
|
|
123
|
+
}
|
|
63
124
|
}, {
|
|
64
125
|
key: "search",
|
|
65
126
|
value: function () {
|
|
66
|
-
var _search = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
127
|
+
var _search = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(keyword) {
|
|
67
128
|
var extensions;
|
|
68
|
-
return _regenerator.default.wrap(function
|
|
69
|
-
while (1) switch (
|
|
129
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
130
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
70
131
|
case 0:
|
|
71
|
-
|
|
132
|
+
_context3.next = 2;
|
|
72
133
|
return this.manifestsPromise;
|
|
73
134
|
case 2:
|
|
74
|
-
extensions =
|
|
135
|
+
extensions = _context3.sent.filter(function (manifest) {
|
|
75
136
|
return manifest.title.toLowerCase().includes(keyword.toLowerCase());
|
|
76
137
|
});
|
|
77
|
-
return
|
|
138
|
+
return _context3.abrupt("return", extensions);
|
|
78
139
|
case 4:
|
|
79
140
|
case "end":
|
|
80
|
-
return
|
|
141
|
+
return _context3.stop();
|
|
81
142
|
}
|
|
82
|
-
},
|
|
143
|
+
}, _callee3, this);
|
|
83
144
|
}));
|
|
84
145
|
function search(_x3) {
|
|
85
146
|
return _search.apply(this, arguments);
|
|
@@ -89,29 +150,29 @@ var DefaultExtensionProvider = exports.default = /*#__PURE__*/function () {
|
|
|
89
150
|
}, {
|
|
90
151
|
key: "getAutoConverter",
|
|
91
152
|
value: function () {
|
|
92
|
-
var _getAutoConverter = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
153
|
+
var _getAutoConverter = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
93
154
|
var autoConverters;
|
|
94
|
-
return _regenerator.default.wrap(function
|
|
95
|
-
while (1) switch (
|
|
155
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
156
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
96
157
|
case 0:
|
|
97
158
|
if (!this.autoConvertHandlers) {
|
|
98
|
-
|
|
159
|
+
_context4.next = 2;
|
|
99
160
|
break;
|
|
100
161
|
}
|
|
101
|
-
return
|
|
162
|
+
return _context4.abrupt("return", this.autoConvertHandlers);
|
|
102
163
|
case 2:
|
|
103
|
-
|
|
104
|
-
|
|
164
|
+
_context4.t0 = _moduleHelpers.getAutoConvertPatternsFromModule;
|
|
165
|
+
_context4.next = 5;
|
|
105
166
|
return this.manifestsPromise;
|
|
106
167
|
case 5:
|
|
107
|
-
|
|
108
|
-
autoConverters = (0,
|
|
109
|
-
return
|
|
168
|
+
_context4.t1 = _context4.sent;
|
|
169
|
+
autoConverters = (0, _context4.t0)(_context4.t1);
|
|
170
|
+
return _context4.abrupt("return", autoConverters);
|
|
110
171
|
case 8:
|
|
111
172
|
case "end":
|
|
112
|
-
return
|
|
173
|
+
return _context4.stop();
|
|
113
174
|
}
|
|
114
|
-
},
|
|
175
|
+
}, _callee4, this);
|
|
115
176
|
}));
|
|
116
177
|
function getAutoConverter() {
|
|
117
178
|
return _getAutoConverter.apply(this, arguments);
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getExtensionModuleNode = getExtensionModuleNode;
|
|
8
|
+
exports.getExtensionModuleNodeMaybePreloaded = getExtensionModuleNodeMaybePreloaded;
|
|
8
9
|
exports.getExtensionModuleNodePrivateProps = getExtensionModuleNodePrivateProps;
|
|
9
10
|
exports.getNodeRenderer = getNodeRenderer;
|
|
10
11
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
@@ -12,45 +13,39 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
12
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
14
|
var _react = _interopRequireDefault(require("react"));
|
|
14
15
|
var _reactLoadable = _interopRequireDefault(require("react-loadable"));
|
|
16
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
17
|
var _manifestHelpers = require("./manifest-helpers");
|
|
18
|
+
function getNodeFromManifest(
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
manifest, extKey, nodeKey, extensionType, extensionKey) {
|
|
21
|
+
if (!manifest) {
|
|
22
|
+
throw new Error("Extension with key \"".concat(extKey, "\" and type \"").concat(extensionType, "\" not found!"));
|
|
23
|
+
}
|
|
24
|
+
if (!manifest.modules.nodes) {
|
|
25
|
+
throw new Error("Couldn't find any node for extension type \"".concat(extensionType, "\" and key \"").concat(extensionKey, "\"!"));
|
|
26
|
+
}
|
|
27
|
+
var node = manifest.modules.nodes[nodeKey];
|
|
28
|
+
if (!node) {
|
|
29
|
+
throw new Error("Node with key \"".concat(extensionKey, "\" not found on manifest for extension type \"").concat(extensionType, "\" and key \"").concat(extensionKey, "\"!"));
|
|
30
|
+
}
|
|
31
|
+
return node;
|
|
32
|
+
}
|
|
16
33
|
function getExtensionModuleNode(_x, _x2, _x3) {
|
|
17
34
|
return _getExtensionModuleNode.apply(this, arguments);
|
|
18
35
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Gets `__` prefixed properties from an extension node module definition
|
|
21
|
-
*/
|
|
22
36
|
function _getExtensionModuleNode() {
|
|
23
37
|
_getExtensionModuleNode = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(extensionProvider, extensionType, extensionKey) {
|
|
24
|
-
var
|
|
38
|
+
var _getExtensionKeyAndNo3, _getExtensionKeyAndNo4, extKey, nodeKey, manifest;
|
|
25
39
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
26
40
|
while (1) switch (_context.prev = _context.next) {
|
|
27
41
|
case 0:
|
|
28
|
-
|
|
42
|
+
_getExtensionKeyAndNo3 = (0, _manifestHelpers.getExtensionKeyAndNodeKey)(extensionKey, extensionType), _getExtensionKeyAndNo4 = (0, _slicedToArray2.default)(_getExtensionKeyAndNo3, 2), extKey = _getExtensionKeyAndNo4[0], nodeKey = _getExtensionKeyAndNo4[1];
|
|
29
43
|
_context.next = 3;
|
|
30
44
|
return extensionProvider.getExtension(extensionType, extKey);
|
|
31
45
|
case 3:
|
|
32
46
|
manifest = _context.sent;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
throw new Error("Extension with key \"".concat(extKey, "\" and type \"").concat(extensionType, "\" not found!"));
|
|
38
|
-
case 6:
|
|
39
|
-
if (manifest.modules.nodes) {
|
|
40
|
-
_context.next = 8;
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
throw new Error("Couldn't find any node for extension type \"".concat(extensionType, "\" and key \"").concat(extensionKey, "\"!"));
|
|
44
|
-
case 8:
|
|
45
|
-
node = manifest.modules.nodes[nodeKey];
|
|
46
|
-
if (node) {
|
|
47
|
-
_context.next = 11;
|
|
48
|
-
break;
|
|
49
|
-
}
|
|
50
|
-
throw new Error("Node with key \"".concat(extensionKey, "\" not found on manifest for extension type \"").concat(extensionType, "\" and key \"").concat(extensionKey, "\"!"));
|
|
51
|
-
case 11:
|
|
52
|
-
return _context.abrupt("return", node);
|
|
53
|
-
case 12:
|
|
47
|
+
return _context.abrupt("return", getNodeFromManifest(manifest, extKey, nodeKey, extensionType, extensionKey));
|
|
48
|
+
case 5:
|
|
54
49
|
case "end":
|
|
55
50
|
return _context.stop();
|
|
56
51
|
}
|
|
@@ -58,6 +53,27 @@ function _getExtensionModuleNode() {
|
|
|
58
53
|
}));
|
|
59
54
|
return _getExtensionModuleNode.apply(this, arguments);
|
|
60
55
|
}
|
|
56
|
+
function getExtensionModuleNodeMaybePreloaded(extensionProvider, extensionType, extensionKey
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
) {
|
|
59
|
+
var _extensionProvider$ge;
|
|
60
|
+
var _getExtensionKeyAndNo = (0, _manifestHelpers.getExtensionKeyAndNodeKey)(extensionKey, extensionType),
|
|
61
|
+
_getExtensionKeyAndNo2 = (0, _slicedToArray2.default)(_getExtensionKeyAndNo, 2),
|
|
62
|
+
extKey = _getExtensionKeyAndNo2[0],
|
|
63
|
+
nodeKey = _getExtensionKeyAndNo2[1];
|
|
64
|
+
var manifest = extensionProvider === null || extensionProvider === void 0 || (_extensionProvider$ge = extensionProvider.getPreloadedExtension) === null || _extensionProvider$ge === void 0 ? void 0 : _extensionProvider$ge.call(extensionProvider, extensionType, extKey);
|
|
65
|
+
if (manifest) {
|
|
66
|
+
return getNodeFromManifest(manifest, extKey, nodeKey, extensionType, extensionKey);
|
|
67
|
+
} else {
|
|
68
|
+
return extensionProvider.getExtension(extensionType, extKey).then(function (manifest) {
|
|
69
|
+
return getNodeFromManifest(manifest, extKey, nodeKey, extensionType, extensionKey);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Gets `__` prefixed properties from an extension node module definition
|
|
76
|
+
*/
|
|
61
77
|
function getExtensionModuleNodePrivateProps(_x4, _x5, _x6) {
|
|
62
78
|
return _getExtensionModuleNodePrivateProps.apply(this, arguments);
|
|
63
79
|
}
|
|
@@ -99,9 +115,27 @@ function ExtensionLoading(props) {
|
|
|
99
115
|
function getNodeRenderer(extensionProvider, extensionType, extensionKey) {
|
|
100
116
|
return (0, _reactLoadable.default)({
|
|
101
117
|
loader: function loader() {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
118
|
+
if ((0, _platformFeatureFlags.fg)('confluence_preload_extension_providers')) {
|
|
119
|
+
// Logic here is specific to Confluence because it doesn't use the original react-loadable.
|
|
120
|
+
// The library is replaced with a custom one that supports synchronous return value from loader.
|
|
121
|
+
var maybePromise = getExtensionModuleNodeMaybePreloaded(extensionProvider, extensionType, extensionKey);
|
|
122
|
+
if (maybePromise instanceof Promise) {
|
|
123
|
+
return maybePromise.then(function (node) {
|
|
124
|
+
return (0, _manifestHelpers.resolveImport)(node.render());
|
|
125
|
+
});
|
|
126
|
+
} else {
|
|
127
|
+
var _renderSync, _ref;
|
|
128
|
+
// maybePromise is sync here
|
|
129
|
+
var preloaded = maybePromise === null || maybePromise === void 0 || (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
|
|
130
|
+
// Note resolveImport is still async but we are not waiting on a already-fulfilled value.
|
|
131
|
+
// It is fast enough to not flip back to loading.
|
|
132
|
+
return (0, _manifestHelpers.resolveImport)(preloaded ? preloaded : maybePromise.render());
|
|
133
|
+
}
|
|
134
|
+
} else {
|
|
135
|
+
return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(function (node) {
|
|
136
|
+
return (0, _manifestHelpers.resolveImport)(node.render());
|
|
137
|
+
});
|
|
138
|
+
}
|
|
105
139
|
},
|
|
106
140
|
loading: ExtensionLoading
|
|
107
141
|
});
|
|
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
17
17
|
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; }
|
|
18
18
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
19
19
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
20
|
-
var packageVersion = "105.8.
|
|
20
|
+
var packageVersion = "105.8.1";
|
|
21
21
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
22
22
|
// Remove URL as it has UGC
|
|
23
23
|
// Ignored via go/ees007
|
|
@@ -23,7 +23,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
23
23
|
* @jsx jsx
|
|
24
24
|
*/ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
25
25
|
var packageName = "@atlaskit/editor-common";
|
|
26
|
-
var packageVersion = "105.8.
|
|
26
|
+
var packageVersion = "105.8.1";
|
|
27
27
|
var halfFocusRing = 1;
|
|
28
28
|
var dropOffset = '0, 8';
|
|
29
29
|
// Ignored via go/ees005
|
|
@@ -37,6 +37,11 @@ export const aiMessages = defineMessages({
|
|
|
37
37
|
defaultMessage: 'Open Atlassian Intelligence',
|
|
38
38
|
description: 'Tooltip text for an option to use Atlassian Intellgience'
|
|
39
39
|
},
|
|
40
|
+
askAIToolbarIconTooltipQuickCommand: {
|
|
41
|
+
id: 'fabric.editor.ai.toolbar.tryAI.tooltip.quickCommand',
|
|
42
|
+
defaultMessage: "Ask AI {key}+'",
|
|
43
|
+
description: 'Tooltip text for an option to use Atlassian Intellgience with quick command'
|
|
44
|
+
},
|
|
40
45
|
tryAIToolbarIconTitle: {
|
|
41
46
|
id: 'fabric.editor.ai.toolbar.tryAI.title',
|
|
42
47
|
defaultMessage: 'Try AI',
|
|
@@ -4,6 +4,7 @@ import { combineProviders } from '../provider-helpers';
|
|
|
4
4
|
* This handles promise racing and discards rejected promises safely.
|
|
5
5
|
*/
|
|
6
6
|
export default (extensionProviders => {
|
|
7
|
+
let providersCache = [];
|
|
7
8
|
const {
|
|
8
9
|
invokeSingle,
|
|
9
10
|
invokeList
|
|
@@ -12,6 +13,28 @@ export default (extensionProviders => {
|
|
|
12
13
|
getExtensions() {
|
|
13
14
|
return invokeList('getExtensions');
|
|
14
15
|
},
|
|
16
|
+
async preload() {
|
|
17
|
+
if (providersCache.length === 0) {
|
|
18
|
+
providersCache = await Promise.all(extensionProviders.map(provider => Promise.resolve(provider)));
|
|
19
|
+
}
|
|
20
|
+
await Promise.all(providersCache.map(provider => {
|
|
21
|
+
var _provider$preload;
|
|
22
|
+
return provider === null || provider === void 0 ? void 0 : (_provider$preload = provider.preload) === null || _provider$preload === void 0 ? void 0 : _provider$preload.call(provider);
|
|
23
|
+
}));
|
|
24
|
+
},
|
|
25
|
+
getPreloadedExtension(type, key) {
|
|
26
|
+
if (providersCache.length === 0) {
|
|
27
|
+
// preload() has not been called yet
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
for (const provider of providersCache) {
|
|
31
|
+
var _provider$getPreloade;
|
|
32
|
+
const result = provider === null || provider === void 0 ? void 0 : (_provider$getPreloade = provider.getPreloadedExtension) === null || _provider$getPreloade === void 0 ? void 0 : _provider$getPreloade.call(provider, type, key);
|
|
33
|
+
if (result) {
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
15
38
|
getExtension(type, key) {
|
|
16
39
|
return invokeSingle('getExtension', [type, key]);
|
|
17
40
|
},
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
1
2
|
import { getAutoConvertPatternsFromModule } from './module-helpers';
|
|
2
3
|
export default class DefaultExtensionProvider {
|
|
3
4
|
constructor(manifests,
|
|
@@ -8,14 +9,39 @@ export default class DefaultExtensionProvider {
|
|
|
8
9
|
* Warning: If this attribute is passed, this provider will ignore auto convert patterns from the manifests.
|
|
9
10
|
*/
|
|
10
11
|
autoConvertHandlers) {
|
|
12
|
+
_defineProperty(this, "manifestsCache", []);
|
|
11
13
|
this.manifestsPromise = Promise.resolve(manifests);
|
|
12
14
|
this.autoConvertHandlers = autoConvertHandlers;
|
|
13
15
|
}
|
|
14
16
|
getExtensions() {
|
|
15
17
|
return this.manifestsPromise;
|
|
16
18
|
}
|
|
19
|
+
async preload() {
|
|
20
|
+
this.manifestsCache = await this.manifestsPromise;
|
|
21
|
+
const preloadCalls = [];
|
|
22
|
+
for (const manifest of this.manifestsCache) {
|
|
23
|
+
var _manifest$modules;
|
|
24
|
+
const nodes = manifest === null || manifest === void 0 ? void 0 : (_manifest$modules = manifest.modules) === null || _manifest$modules === void 0 ? void 0 : _manifest$modules.nodes;
|
|
25
|
+
if (nodes) {
|
|
26
|
+
Object.values(nodes).forEach(node => {
|
|
27
|
+
var _preloadRender, _ref;
|
|
28
|
+
preloadCalls.push(node === null || node === void 0 ? void 0 : (_preloadRender = (_ref = node).preloadRender) === null || _preloadRender === void 0 ? void 0 : _preloadRender.call(_ref));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
await Promise.allSettled(preloadCalls);
|
|
33
|
+
}
|
|
34
|
+
getPreloadedExtension(type, key) {
|
|
35
|
+
if (!this.manifestsCache) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
return this.getExtensionFromManifest(this.manifestsCache, type, key);
|
|
39
|
+
}
|
|
17
40
|
async getExtension(type, key) {
|
|
18
|
-
|
|
41
|
+
return this.getExtensionFromManifest(await this.manifestsPromise, type, key);
|
|
42
|
+
}
|
|
43
|
+
getExtensionFromManifest(manifests, type, key) {
|
|
44
|
+
const extension = manifests.find(manifest => manifest.type === type && manifest.key === key);
|
|
19
45
|
if (!extension) {
|
|
20
46
|
throw new Error(`Extension with type "${type}" and key "${key}" not found!`);
|
|
21
47
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Loadable from 'react-loadable';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
4
|
import { getExtensionKeyAndNodeKey, resolveImport } from './manifest-helpers';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
function getNodeFromManifest(
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
+
manifest, extKey, nodeKey, extensionType, extensionKey) {
|
|
7
8
|
if (!manifest) {
|
|
8
9
|
throw new Error(`Extension with key "${extKey}" and type "${extensionType}" not found!`);
|
|
9
10
|
}
|
|
@@ -16,6 +17,23 @@ export async function getExtensionModuleNode(extensionProvider, extensionType, e
|
|
|
16
17
|
}
|
|
17
18
|
return node;
|
|
18
19
|
}
|
|
20
|
+
export async function getExtensionModuleNode(extensionProvider, extensionType, extensionKey) {
|
|
21
|
+
const [extKey, nodeKey] = getExtensionKeyAndNodeKey(extensionKey, extensionType);
|
|
22
|
+
const manifest = await extensionProvider.getExtension(extensionType, extKey);
|
|
23
|
+
return getNodeFromManifest(manifest, extKey, nodeKey, extensionType, extensionKey);
|
|
24
|
+
}
|
|
25
|
+
export function getExtensionModuleNodeMaybePreloaded(extensionProvider, extensionType, extensionKey
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
) {
|
|
28
|
+
var _extensionProvider$ge;
|
|
29
|
+
const [extKey, nodeKey] = getExtensionKeyAndNodeKey(extensionKey, extensionType);
|
|
30
|
+
const manifest = extensionProvider === null || extensionProvider === void 0 ? void 0 : (_extensionProvider$ge = extensionProvider.getPreloadedExtension) === null || _extensionProvider$ge === void 0 ? void 0 : _extensionProvider$ge.call(extensionProvider, extensionType, extKey);
|
|
31
|
+
if (manifest) {
|
|
32
|
+
return getNodeFromManifest(manifest, extKey, nodeKey, extensionType, extensionKey);
|
|
33
|
+
} else {
|
|
34
|
+
return extensionProvider.getExtension(extensionType, extKey).then(manifest => getNodeFromManifest(manifest, extKey, nodeKey, extensionType, extensionKey));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
19
37
|
|
|
20
38
|
/**
|
|
21
39
|
* Gets `__` prefixed properties from an extension node module definition
|
|
@@ -41,7 +59,23 @@ function ExtensionLoading(props) {
|
|
|
41
59
|
export function getNodeRenderer(extensionProvider, extensionType, extensionKey) {
|
|
42
60
|
return Loadable({
|
|
43
61
|
loader: () => {
|
|
44
|
-
|
|
62
|
+
if (fg('confluence_preload_extension_providers')) {
|
|
63
|
+
// Logic here is specific to Confluence because it doesn't use the original react-loadable.
|
|
64
|
+
// The library is replaced with a custom one that supports synchronous return value from loader.
|
|
65
|
+
const maybePromise = getExtensionModuleNodeMaybePreloaded(extensionProvider, extensionType, extensionKey);
|
|
66
|
+
if (maybePromise instanceof Promise) {
|
|
67
|
+
return maybePromise.then(node => resolveImport(node.render()));
|
|
68
|
+
} else {
|
|
69
|
+
var _renderSync, _ref;
|
|
70
|
+
// maybePromise is sync here
|
|
71
|
+
const preloaded = maybePromise === null || maybePromise === void 0 ? void 0 : (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
|
|
72
|
+
// Note resolveImport is still async but we are not waiting on a already-fulfilled value.
|
|
73
|
+
// It is fast enough to not flip back to loading.
|
|
74
|
+
return resolveImport(preloaded ? preloaded : maybePromise.render());
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(node => resolveImport(node.render()));
|
|
78
|
+
}
|
|
45
79
|
},
|
|
46
80
|
loading: ExtensionLoading
|
|
47
81
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isFedRamp } from './environment';
|
|
2
2
|
const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
3
3
|
const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
4
|
-
const packageVersion = "105.8.
|
|
4
|
+
const packageVersion = "105.8.1";
|
|
5
5
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
6
6
|
// Remove URL as it has UGC
|
|
7
7
|
// Ignored via go/ees007
|