@atlaskit/editor-common 105.8.5 → 105.9.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 +28 -0
- package/dist/cjs/element-browser/components/ElementSearch.js +4 -1
- package/dist/cjs/element-browser/components/StatelessElementBrowser.js +2 -1
- package/dist/cjs/extensions/extension-handlers.js +5 -6
- package/dist/cjs/extensions/manifest-helpers.js +10 -7
- package/dist/cjs/monitoring/error.js +1 -1
- package/dist/cjs/styles/shared/resizer.js +1 -1
- package/dist/cjs/ui/DropList/index.js +1 -1
- package/dist/cjs/utils/validate-using-spec.js +23 -4
- package/dist/es2019/element-browser/components/ElementSearch.js +4 -1
- package/dist/es2019/element-browser/components/StatelessElementBrowser.js +2 -1
- package/dist/es2019/extensions/extension-handlers.js +6 -7
- package/dist/es2019/extensions/manifest-helpers.js +4 -2
- package/dist/es2019/monitoring/error.js +1 -1
- package/dist/es2019/styles/shared/resizer.js +1 -0
- package/dist/es2019/ui/DropList/index.js +1 -1
- package/dist/es2019/utils/validate-using-spec.js +20 -4
- package/dist/esm/element-browser/components/ElementSearch.js +4 -1
- package/dist/esm/element-browser/components/StatelessElementBrowser.js +2 -1
- package/dist/esm/extensions/extension-handlers.js +6 -7
- package/dist/esm/extensions/manifest-helpers.js +9 -6
- package/dist/esm/monitoring/error.js +1 -1
- package/dist/esm/styles/shared/resizer.js +1 -1
- package/dist/esm/ui/DropList/index.js +1 -1
- package/dist/esm/utils/validate-using-spec.js +22 -4
- package/dist/types/element-browser/components/ElementSearch.d.ts +1 -0
- package/dist/types/extensions/manifest-helpers.d.ts +2 -1
- package/dist/types/utils/validate-using-spec.d.ts +3 -1
- package/dist/types-ts4.5/element-browser/components/ElementSearch.d.ts +1 -0
- package/dist/types-ts4.5/extensions/manifest-helpers.d.ts +2 -1
- package/dist/types-ts4.5/utils/validate-using-spec.d.ts +3 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @atlaskit/editor-common
|
|
2
2
|
|
|
3
|
+
## 105.9.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#159910](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159910)
|
|
8
|
+
[`795f5ed29ca14`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/795f5ed29ca14) -
|
|
9
|
+
Make getNodeRenderer synchronous so loading state never appear in Confluence
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
12
|
+
## 105.9.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- [#160422](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/160422)
|
|
17
|
+
[`83606959c73cd`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/83606959c73cd) -
|
|
18
|
+
EDITOR-719 Overrides adf validation of nested tables for nested renderers inside bodied extensions
|
|
19
|
+
and reverts a previous change to transformNestedTablesIncomingDocument which prevented nested
|
|
20
|
+
tables inside bodied extensions from being transformed by their parent renderer. This was due to a
|
|
21
|
+
bug with comment positions of nested tables inside bodied extensions which meant their positions
|
|
22
|
+
were not being calculated correctly due to not being transformed in the parent renderer.
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- [#159390](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/159390)
|
|
27
|
+
[`cc1d530fb6ed2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/cc1d530fb6ed2) -
|
|
28
|
+
[ux] [ED-28074] Fix media selection state and remove css-based targeting
|
|
29
|
+
- Updated dependencies
|
|
30
|
+
|
|
3
31
|
## 105.8.5
|
|
4
32
|
|
|
5
33
|
### Patch Changes
|
|
@@ -37,7 +37,8 @@ function ElementSearch(_ref) {
|
|
|
37
37
|
onKeyDown = _ref.onKeyDown,
|
|
38
38
|
searchTerm = _ref.searchTerm,
|
|
39
39
|
items = _ref.items,
|
|
40
|
-
selectedItemIndex = _ref.selectedItemIndex
|
|
40
|
+
selectedItemIndex = _ref.selectedItemIndex,
|
|
41
|
+
ariaControlsId = _ref.ariaControlsId;
|
|
41
42
|
var ref = (0, _useFocus.default)(focus);
|
|
42
43
|
var assistiveTextRef = (0, _react.useRef)(null);
|
|
43
44
|
var _useState = (0, _react.useState)(false),
|
|
@@ -120,6 +121,8 @@ function ElementSearch(_ref) {
|
|
|
120
121
|
,
|
|
121
122
|
className: "js-search-input",
|
|
122
123
|
role: "combobox",
|
|
124
|
+
"aria-expanded": "true",
|
|
125
|
+
"aria-controls": ariaControlsId,
|
|
123
126
|
"aria-activedescendant": ariaActiveDescendant,
|
|
124
127
|
value: searchTerm
|
|
125
128
|
}), (0, _react2.jsx)("span", {
|
|
@@ -424,7 +424,8 @@ function DesktopBrowser(_ref2) {
|
|
|
424
424
|
onClick: setFocusOnSearch,
|
|
425
425
|
searchTerm: searchTerm,
|
|
426
426
|
items: items,
|
|
427
|
-
selectedItemIndex: selectedItemIndex
|
|
427
|
+
selectedItemIndex: selectedItemIndex,
|
|
428
|
+
ariaControlsId: selectedCategory ? "browse-category-".concat(selectedCategory, "-tab") : 'browse-category-tab'
|
|
428
429
|
})), (0, _react2.jsx)(_ElementList.default, {
|
|
429
430
|
items: items,
|
|
430
431
|
mode: mode,
|
|
@@ -116,8 +116,6 @@ function getNodeRenderer(extensionProvider, extensionType, extensionKey) {
|
|
|
116
116
|
return (0, _reactLoadable.default)({
|
|
117
117
|
loader: function loader() {
|
|
118
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
119
|
var maybePromise = getExtensionModuleNodeMaybePreloaded(extensionProvider, extensionType, extensionKey);
|
|
122
120
|
if (maybePromise instanceof Promise) {
|
|
123
121
|
return maybePromise.then(function (node) {
|
|
@@ -125,11 +123,12 @@ function getNodeRenderer(extensionProvider, extensionType, extensionKey) {
|
|
|
125
123
|
});
|
|
126
124
|
} else {
|
|
127
125
|
var _renderSync, _ref;
|
|
128
|
-
// maybePromise is sync here
|
|
129
126
|
var preloaded = maybePromise === null || maybePromise === void 0 || (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
|
|
130
|
-
//
|
|
131
|
-
//
|
|
132
|
-
return
|
|
127
|
+
// Only product implemented preloading will return sync result
|
|
128
|
+
// However the out-of-box won't handle this. Confluence uses a custom implementation
|
|
129
|
+
return preloaded
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
131
|
+
? (0, _manifestHelpers.resolveImportSync)(preloaded) : (0, _manifestHelpers.resolveImport)(maybePromise.render());
|
|
133
132
|
}
|
|
134
133
|
} else {
|
|
135
134
|
return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(function (node) {
|
|
@@ -8,7 +8,7 @@ exports.FORGE_EXTENSION_TYPE = void 0;
|
|
|
8
8
|
exports.buildAction = buildAction;
|
|
9
9
|
exports.buildExtensionKeyAndNodeKey = void 0;
|
|
10
10
|
exports.buildNode = buildNode;
|
|
11
|
-
exports.resolveImport = exports.getExtensionKeyAndNodeKey = void 0;
|
|
11
|
+
exports.resolveImportSync = exports.resolveImport = exports.getExtensionKeyAndNodeKey = void 0;
|
|
12
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
14
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
@@ -44,18 +44,21 @@ function buildAction(action, manifest) {
|
|
|
44
44
|
return buildNode(action, manifest);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
var resolveImportSync = exports.resolveImportSync = function resolveImportSync(importedModule) {
|
|
48
|
+
return importedModule && importedModule.__esModule ? importedModule.default : importedModule;
|
|
49
|
+
};
|
|
47
50
|
var resolveImport = exports.resolveImport = /*#__PURE__*/function () {
|
|
48
51
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(importPromise) {
|
|
49
|
-
var importedModule;
|
|
50
52
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
51
53
|
while (1) switch (_context.prev = _context.next) {
|
|
52
54
|
case 0:
|
|
53
|
-
_context.
|
|
55
|
+
_context.t0 = resolveImportSync;
|
|
56
|
+
_context.next = 3;
|
|
54
57
|
return importPromise;
|
|
55
|
-
case
|
|
56
|
-
|
|
57
|
-
return _context.abrupt("return",
|
|
58
|
-
case
|
|
58
|
+
case 3:
|
|
59
|
+
_context.t1 = _context.sent;
|
|
60
|
+
return _context.abrupt("return", (0, _context.t0)(_context.t1));
|
|
61
|
+
case 5:
|
|
59
62
|
case "end":
|
|
60
63
|
return _context.stop();
|
|
61
64
|
}
|
|
@@ -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.
|
|
20
|
+
var packageVersion = "105.9.1";
|
|
21
21
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
22
22
|
// Remove URL as it has UGC
|
|
23
23
|
// Ignored via go/ees007
|
|
@@ -28,7 +28,7 @@ var handleWrapperClass = exports.handleWrapperClass = 'resizer-handle-wrapper';
|
|
|
28
28
|
var resizerHandleZIndex = exports.resizerHandleZIndex = 1;
|
|
29
29
|
|
|
30
30
|
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression, @atlaskit/ui-styling-standard/no-exported-styles -- Ignored via go/DSP-18766, Seems perfectly safe to autofix, but comments would be lost…
|
|
31
|
-
var resizerStyles = exports.resizerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t.", " {\n\t\twill-change: width;\n\n\t\t&:hover,\n\t\t&.display-handle {\n\t\t\t& > .", " > .", " {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&.is-resizing {\n\t\t\t& .", " {\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\n\t\t&.", " {\n\t\t\t& .", " {\n\t\t\t\ttransition: none;\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tdisplay: flex;\n\t\tvisibility: hidden;\n\t\topacity: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 7px;\n\t\ttransition:\n\t\t\tvisibility 0.2s,\n\t\t\topacity 0.2s;\n\n\t\t/*\n NOTE: The below style is targeted at the div element added by the tooltip. We don't have any means of injecting styles\n into the tooltip\n */\n\t\t& div[role='presentation'] {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tmargin-top: ", ";\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t/*\n Handle Positions\n */\n\t\t&.left {\n\t\t\talign-items: flex-start;\n\t\t}\n\t\t&.right {\n\t\t\talign-items: flex-end;\n\t\t}\n\n\t\t/*\n Handle Sizing\n */\n\t\t&.small {\n\t\t\t& .", " {\n\t\t\t\theight: 43px;\n\t\t\t}\n\t\t}\n\t\t&.medium {\n\t\t\t& .", " {\n\t\t\t\theight: 64px;\n\t\t\t}\n\t\t}\n\t\t&.large {\n\t\t\t& .", " {\n\t\t\t\theight: 96px;\n\t\t\t}\n\t\t}\n\t\t&.clamped {\n\t\t\t& .", " {\n\t\t\t\theight: clamp(43px, calc(100% - 32px), 96px);\n\t\t\t}\n\t\t}\n\n\t\t/*\n Handle Alignment\n */\n\t\t&.sticky {\n\t\t\t& .", " {\n\t\t\t\tposition: sticky;\n\t\t\t\ttop: ", ";\n\t\t\t\tbottom: ", ";\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t& .", " {\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\n\t\t\t& .", " {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 0.5;\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tcontent: ' ';\n\t\tdisplay: flex;\n\t\twidth: 3px;\n\t\tmargin: 0 ", ";\n\t\theight: 64px;\n\t\ttransition: background-color 0.2s;\n\t\tborder-radius: 6px;\n\t\tborder: 0;\n\t\tpadding: 0;\n\t\tz-index: 2;\n\t\toutline: none;\n\t\tmin-height: 24px;\n\t\tbackground: ", ";\n\n\t\t&:hover {\n\t\t\tcursor: col-resize;\n\t\t}\n\n\t\t&:focus {\n\t\t\tbackground: ", ";\n\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ", ";\n\t\t\t\tright: ", ";\n\t\t\t\tbottom: ", ";\n\t\t\t\tleft: ", ";\n\t\t\t\tborder: 2px solid ", ";\n\t\t\t\tborder-radius: inherit;\n\t\t\t\tz-index: -1;\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tvisibility: hidden;\n\t\tposition: absolute;\n\t\twidth: 7px;\n\t\theight: calc(100% - 40px);\n\t\tborder-radius: 4px;\n\t\topacity: 0;\n\t\ttransition:\n\t\t\tbackground-color 0.2s,\n\t\t\tvisibility 0.2s,\n\t\t\topacity 0.2s;\n\n\t\t&.none {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&.shadow {\n\t\t\tbackground: ", ";\n\t\t}\n\n\t\t&.full-height {\n\t\t\tbackground: ", ";\n\t\t\theight: 100%;\n\t\t\tmin-height: 36px;\n\t\t}\n\t}\n\n\t.", " {\n\t\t& .", " {\n\t\t\tbackground: ", ";\n\t\t}\n\t}\n\n\t.ak-editor-no-interaction\n\t\t.", "\n\t\t.", ":not(:hover)\n\t\t.", " {\n\t\tbackground: ", ";\n\t}\n\n\t.", " {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\n\t\t&.", " {\n\t\t\tpadding: 0 ", ";\n\t\t\tleft: ", ";\n\t\t}\n\t}\n\n\t/* This below style is here to make sure the image width is correct when nested in a table */\n\ttable .", ", table .", ".", " {\n\t\tpadding: unset;\n\t\tleft: unset;\n\t}\n"])), resizerItemClassName, handleWrapperClass, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", resizerDangerClassName, resizerHandleThumbClassName, "var(--ds-icon-danger, ".concat(_editorSharedStyles.akEditorDeleteIconColor, ")"), resizerHandleClassName, "var(--ds-space-negative-200, -16px)", resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, resizerHandleThumbClassName, "var(--ds-space-025, 2px)", "var(--ds-border, #091E4224)", "var(--ds-border-selected, #0C66E4)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, "var(--ds-background-selected, #E9F2FF)", "var(--ds-background-selected, #E9F2FF)", akEditorSelectedNodeClassName, resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", akEditorSelectedNodeClassName, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border, #091E4224)", resizerHoverZoneClassName, resizerExtendedZone, "var(--ds-space-150, 12px)", "var(--ds-space-negative-150, -12px)", resizerHoverZoneClassName, resizerHoverZoneClassName, resizerExtendedZone);
|
|
31
|
+
var resizerStyles = exports.resizerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t.", " {\n\t\twill-change: width;\n\n\t\t&:hover,\n\t\t&.display-handle {\n\t\t\t& > .", " > .", " {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&.is-resizing {\n\t\t\t& .", " {\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\n\t\t&.", " {\n\t\t\t& .", " {\n\t\t\t\ttransition: none;\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tdisplay: flex;\n\t\tvisibility: hidden;\n\t\topacity: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 7px;\n\t\ttransition:\n\t\t\tvisibility 0.2s,\n\t\t\topacity 0.2s;\n\n\t\t/*\n NOTE: The below style is targeted at the div element added by the tooltip. We don't have any means of injecting styles\n into the tooltip\n */\n\t\t& div[role='presentation'] {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tmargin-top: ", ";\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t/*\n Handle Positions\n */\n\t\t&.left {\n\t\t\talign-items: flex-start;\n\t\t}\n\t\t&.right {\n\t\t\talign-items: flex-end;\n\t\t}\n\n\t\t/*\n Handle Sizing\n */\n\t\t&.small {\n\t\t\t& .", " {\n\t\t\t\theight: 43px;\n\t\t\t}\n\t\t}\n\t\t&.medium {\n\t\t\t& .", " {\n\t\t\t\theight: 64px;\n\t\t\t}\n\t\t}\n\t\t&.large {\n\t\t\t& .", " {\n\t\t\t\theight: 96px;\n\t\t\t}\n\t\t}\n\t\t&.clamped {\n\t\t\t& .", " {\n\t\t\t\theight: clamp(43px, calc(100% - 32px), 96px);\n\t\t\t}\n\t\t}\n\n\t\t/*\n Handle Alignment\n */\n\t\t&.sticky {\n\t\t\t& .", " {\n\t\t\t\tposition: sticky;\n\t\t\t\ttop: ", ";\n\t\t\t\tbottom: ", ";\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t& .", " {\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\n\t\t\t& .", " {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 0.5;\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tcontent: ' ';\n\t\tdisplay: flex;\n\t\twidth: 3px;\n\t\tmargin: 0 ", ";\n\t\theight: 64px;\n\t\ttransition: background-color 0.2s;\n\t\tborder-radius: 6px;\n\t\tborder: 0;\n\t\tpadding: 0;\n\t\tz-index: 2;\n\t\toutline: none;\n\t\tmin-height: 24px;\n\t\tbackground: ", ";\n\n\t\t&:hover {\n\t\t\tcursor: col-resize;\n\t\t}\n\n\t\t&:focus {\n\t\t\tbackground: ", ";\n\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ", ";\n\t\t\t\tright: ", ";\n\t\t\t\tbottom: ", ";\n\t\t\t\tleft: ", ";\n\t\t\t\tborder: 2px solid ", ";\n\t\t\t\tborder-radius: inherit;\n\t\t\t\tz-index: -1;\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tvisibility: hidden;\n\t\tposition: absolute;\n\t\twidth: 7px;\n\t\theight: calc(100% - 40px);\n\t\tborder-radius: 4px;\n\t\topacity: 0;\n\t\ttransition:\n\t\t\tbackground-color 0.2s,\n\t\t\tvisibility 0.2s,\n\t\t\topacity 0.2s;\n\n\t\t&.none {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&.shadow {\n\t\t\tbackground: ", ";\n\t\t}\n\n\t\t&.full-height {\n\t\t\tbackground: ", ";\n\t\t\theight: 100%;\n\t\t\tmin-height: 36px;\n\t\t}\n\t}\n\n\t.", " {\n\t\t& .", " {\n\t\t\tbackground: ", ";\n\t\t}\n\t}\n\n\t// Remove when cleaning up platform_editor_interaction_api_refactor\n\t.ak-editor-no-interaction\n\t\t.", "\n\t\t.", ":not(:hover)\n\t\t.", " {\n\t\tbackground: ", ";\n\t}\n\n\t.", " {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\n\t\t&.", " {\n\t\t\tpadding: 0 ", ";\n\t\t\tleft: ", ";\n\t\t}\n\t}\n\n\t/* This below style is here to make sure the image width is correct when nested in a table */\n\ttable .", ", table .", ".", " {\n\t\tpadding: unset;\n\t\tleft: unset;\n\t}\n"])), resizerItemClassName, handleWrapperClass, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", resizerDangerClassName, resizerHandleThumbClassName, "var(--ds-icon-danger, ".concat(_editorSharedStyles.akEditorDeleteIconColor, ")"), resizerHandleClassName, "var(--ds-space-negative-200, -16px)", resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, resizerHandleThumbClassName, "var(--ds-space-025, 2px)", "var(--ds-border, #091E4224)", "var(--ds-border-selected, #0C66E4)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, "var(--ds-background-selected, #E9F2FF)", "var(--ds-background-selected, #E9F2FF)", akEditorSelectedNodeClassName, resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", akEditorSelectedNodeClassName, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border, #091E4224)", resizerHoverZoneClassName, resizerExtendedZone, "var(--ds-space-150, 12px)", "var(--ds-space-negative-150, -12px)", resizerHoverZoneClassName, resizerHoverZoneClassName, resizerExtendedZone);
|
|
32
32
|
|
|
33
33
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles
|
|
34
34
|
var pragmaticResizerStyles = exports.pragmaticResizerStyles = function pragmaticResizerStyles() {
|
|
@@ -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.
|
|
26
|
+
var packageVersion = "105.9.1";
|
|
27
27
|
var halfFocusRing = 1;
|
|
28
28
|
var dropOffset = '0, 8';
|
|
29
29
|
// Ignored via go/ees005
|
|
@@ -1,17 +1,23 @@
|
|
|
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.validationErrorHandler = exports.validateADFEntity = exports.UNSUPPORTED_NODE_ATTRIBUTE = void 0;
|
|
7
8
|
exports.wrapWithUnsupported = wrapWithUnsupported;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
10
|
var _validator = require("@atlaskit/adf-utils/validator");
|
|
9
11
|
var _analytics = require("../analytics");
|
|
10
12
|
var _trackUnsupportedContent = require("./track-unsupported-content");
|
|
13
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
15
|
var UNSUPPORTED_NODE_ATTRIBUTE = exports.UNSUPPORTED_NODE_ATTRIBUTE = 'unsupportedNodeAttribute';
|
|
12
|
-
var errorCallbackFor = function errorCallbackFor(marks, validate, dispatchAnalyticsEvent) {
|
|
16
|
+
var errorCallbackFor = function errorCallbackFor(marks, validate, dispatchAnalyticsEvent, validationOverrides) {
|
|
13
17
|
return function (entity, error, options) {
|
|
14
|
-
return validationErrorHandler(entity, error,
|
|
18
|
+
return validationErrorHandler(entity, error, _objectSpread(_objectSpread({}, options), {}, {
|
|
19
|
+
allowNestedTables: validationOverrides === null || validationOverrides === void 0 ? void 0 : validationOverrides.allowNestedTables
|
|
20
|
+
}), marks, validate, dispatchAnalyticsEvent);
|
|
15
21
|
};
|
|
16
22
|
};
|
|
17
23
|
var validationErrorHandler = exports.validationErrorHandler = function validationErrorHandler(entity, error, options, marks, validate, dispatchAnalyticsEvent) {
|
|
@@ -62,6 +68,19 @@ var validationErrorHandler = exports.validationErrorHandler = function validatio
|
|
|
62
68
|
}
|
|
63
69
|
}
|
|
64
70
|
}
|
|
71
|
+
|
|
72
|
+
// Nested tables don't actually exist in ADF. In ADF they are stored as an `extension` node with the nested table content serialized in a property of that extension.
|
|
73
|
+
// Usually when we validate ADF we are validating this `extension` and then later transforming it into nested tables for usage by ProseMirror.
|
|
74
|
+
// Under certain circumstances however, ADF validation is performed on this already transformed extension and since nested tables aren't allowed by ADF this
|
|
75
|
+
// produces an error. For example, nested renderers in Confluence `bodiedExtension`'s. The nested renderer receives the already transformed nested tables that originated from the
|
|
76
|
+
// `extension` node and validates it. This is invalid ADF so an error is thrown.
|
|
77
|
+
// This override allows an exception to be made for nested tables in the validator in this circumstance.
|
|
78
|
+
if (options.allowNestedTables) {
|
|
79
|
+
var meta = error.meta;
|
|
80
|
+
if (options.allowNestedTables && meta !== null && meta !== void 0 && meta.parentType && ['tableCell', 'tableHeader'].includes(meta === null || meta === void 0 ? void 0 : meta.parentType) && error.code === 'INVALID_CONTENT' && entity.type === 'table') {
|
|
81
|
+
return entity;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
65
84
|
if (options.allowUnsupportedBlock) {
|
|
66
85
|
return wrapWithUnsupported(entity);
|
|
67
86
|
}
|
|
@@ -112,7 +131,7 @@ function trackValidationError(dispatchAnalyticsEvent, error, entity) {
|
|
|
112
131
|
attrs: entity.attrs || {}
|
|
113
132
|
}, error.code);
|
|
114
133
|
}
|
|
115
|
-
var validateADFEntity = exports.validateADFEntity = function validateADFEntity(schema, node, dispatchAnalyticsEvent) {
|
|
134
|
+
var validateADFEntity = exports.validateADFEntity = function validateADFEntity(schema, node, dispatchAnalyticsEvent, validationOverrides) {
|
|
116
135
|
var nodes = Object.keys(schema.nodes);
|
|
117
136
|
var marks = Object.keys(schema.marks);
|
|
118
137
|
var validate = (0, _validator.validator)(nodes, marks, {
|
|
@@ -122,7 +141,7 @@ var validateADFEntity = exports.validateADFEntity = function validateADFEntity(s
|
|
|
122
141
|
type: 'doc',
|
|
123
142
|
content: []
|
|
124
143
|
};
|
|
125
|
-
var _validate = validate(node, errorCallbackFor(marks, validate, dispatchAnalyticsEvent)),
|
|
144
|
+
var _validate = validate(node, errorCallbackFor(marks, validate, dispatchAnalyticsEvent, validationOverrides)),
|
|
126
145
|
_validate$entity = _validate.entity,
|
|
127
146
|
entity = _validate$entity === void 0 ? emptyDoc : _validate$entity;
|
|
128
147
|
return entity;
|
|
@@ -27,7 +27,8 @@ function ElementSearch({
|
|
|
27
27
|
onKeyDown,
|
|
28
28
|
searchTerm,
|
|
29
29
|
items,
|
|
30
|
-
selectedItemIndex
|
|
30
|
+
selectedItemIndex,
|
|
31
|
+
ariaControlsId
|
|
31
32
|
}) {
|
|
32
33
|
const ref = useFocus(focus);
|
|
33
34
|
const assistiveTextRef = useRef(null);
|
|
@@ -111,6 +112,8 @@ function ElementSearch({
|
|
|
111
112
|
,
|
|
112
113
|
className: "js-search-input",
|
|
113
114
|
role: "combobox",
|
|
115
|
+
"aria-expanded": "true",
|
|
116
|
+
"aria-controls": ariaControlsId,
|
|
114
117
|
"aria-activedescendant": ariaActiveDescendant,
|
|
115
118
|
value: searchTerm
|
|
116
119
|
}), jsx("span", {
|
|
@@ -415,7 +415,8 @@ function DesktopBrowser({
|
|
|
415
415
|
onClick: setFocusOnSearch,
|
|
416
416
|
searchTerm: searchTerm,
|
|
417
417
|
items: items,
|
|
418
|
-
selectedItemIndex: selectedItemIndex
|
|
418
|
+
selectedItemIndex: selectedItemIndex,
|
|
419
|
+
ariaControlsId: selectedCategory ? `browse-category-${selectedCategory}-tab` : 'browse-category-tab'
|
|
419
420
|
})), jsx(ElementList, {
|
|
420
421
|
items: items,
|
|
421
422
|
mode: mode,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Loadable from 'react-loadable';
|
|
3
3
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
|
-
import { getExtensionKeyAndNodeKey, resolveImport } from './manifest-helpers';
|
|
4
|
+
import { getExtensionKeyAndNodeKey, resolveImport, resolveImportSync } from './manifest-helpers';
|
|
5
5
|
function getNodeFromManifest(
|
|
6
6
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
7
|
manifest, extKey, nodeKey, extensionType, extensionKey) {
|
|
@@ -60,18 +60,17 @@ export function getNodeRenderer(extensionProvider, extensionType, extensionKey)
|
|
|
60
60
|
return Loadable({
|
|
61
61
|
loader: () => {
|
|
62
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
63
|
const maybePromise = getExtensionModuleNodeMaybePreloaded(extensionProvider, extensionType, extensionKey);
|
|
66
64
|
if (maybePromise instanceof Promise) {
|
|
67
65
|
return maybePromise.then(node => resolveImport(node.render()));
|
|
68
66
|
} else {
|
|
69
67
|
var _renderSync, _ref;
|
|
70
|
-
// maybePromise is sync here
|
|
71
68
|
const preloaded = maybePromise === null || maybePromise === void 0 ? void 0 : (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
|
|
72
|
-
//
|
|
73
|
-
//
|
|
74
|
-
return
|
|
69
|
+
// Only product implemented preloading will return sync result
|
|
70
|
+
// However the out-of-box won't handle this. Confluence uses a custom implementation
|
|
71
|
+
return preloaded
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
73
|
+
? resolveImportSync(preloaded) : resolveImport(maybePromise.render());
|
|
75
74
|
}
|
|
76
75
|
} else {
|
|
77
76
|
return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(node => resolveImport(node.render()));
|
|
@@ -23,10 +23,12 @@ export function buildAction(action, manifest) {
|
|
|
23
23
|
return buildNode(action, manifest);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
export const
|
|
27
|
-
const importedModule = await importPromise;
|
|
26
|
+
export const resolveImportSync = importedModule => {
|
|
28
27
|
return importedModule && importedModule.__esModule ? importedModule.default : importedModule;
|
|
29
28
|
};
|
|
29
|
+
export const resolveImport = async importPromise => {
|
|
30
|
+
return resolveImportSync(await importPromise);
|
|
31
|
+
};
|
|
30
32
|
export function buildNode(action, manifest) {
|
|
31
33
|
if (!manifest.modules.nodes) {
|
|
32
34
|
return;
|
|
@@ -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.
|
|
4
|
+
const packageVersion = "105.9.1";
|
|
5
5
|
const sanitiseSentryEvents = (data, _hint) => {
|
|
6
6
|
// Remove URL as it has UGC
|
|
7
7
|
// Ignored via go/ees007
|
|
@@ -13,7 +13,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
|
|
|
13
13
|
import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
14
14
|
import Layer from '../Layer';
|
|
15
15
|
const packageName = "@atlaskit/editor-common";
|
|
16
|
-
const packageVersion = "105.
|
|
16
|
+
const packageVersion = "105.9.1";
|
|
17
17
|
const halfFocusRing = 1;
|
|
18
18
|
const dropOffset = '0, 8';
|
|
19
19
|
// Ignored via go/ees005
|
|
@@ -2,9 +2,12 @@ import { validator } from '@atlaskit/adf-utils/validator';
|
|
|
2
2
|
import { ACTION_SUBJECT_ID } from '../analytics';
|
|
3
3
|
export const UNSUPPORTED_NODE_ATTRIBUTE = 'unsupportedNodeAttribute';
|
|
4
4
|
import { fireUnsupportedEvent } from './track-unsupported-content';
|
|
5
|
-
const errorCallbackFor = (marks, validate, dispatchAnalyticsEvent) => {
|
|
5
|
+
const errorCallbackFor = (marks, validate, dispatchAnalyticsEvent, validationOverrides) => {
|
|
6
6
|
return (entity, error, options) => {
|
|
7
|
-
return validationErrorHandler(entity, error,
|
|
7
|
+
return validationErrorHandler(entity, error, {
|
|
8
|
+
...options,
|
|
9
|
+
allowNestedTables: validationOverrides === null || validationOverrides === void 0 ? void 0 : validationOverrides.allowNestedTables
|
|
10
|
+
}, marks, validate, dispatchAnalyticsEvent);
|
|
8
11
|
};
|
|
9
12
|
};
|
|
10
13
|
export const validationErrorHandler = (entity, error, options, marks, validate, dispatchAnalyticsEvent) => {
|
|
@@ -55,6 +58,19 @@ export const validationErrorHandler = (entity, error, options, marks, validate,
|
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
}
|
|
61
|
+
|
|
62
|
+
// Nested tables don't actually exist in ADF. In ADF they are stored as an `extension` node with the nested table content serialized in a property of that extension.
|
|
63
|
+
// Usually when we validate ADF we are validating this `extension` and then later transforming it into nested tables for usage by ProseMirror.
|
|
64
|
+
// Under certain circumstances however, ADF validation is performed on this already transformed extension and since nested tables aren't allowed by ADF this
|
|
65
|
+
// produces an error. For example, nested renderers in Confluence `bodiedExtension`'s. The nested renderer receives the already transformed nested tables that originated from the
|
|
66
|
+
// `extension` node and validates it. This is invalid ADF so an error is thrown.
|
|
67
|
+
// This override allows an exception to be made for nested tables in the validator in this circumstance.
|
|
68
|
+
if (options.allowNestedTables) {
|
|
69
|
+
const meta = error.meta;
|
|
70
|
+
if (options.allowNestedTables && meta !== null && meta !== void 0 && meta.parentType && ['tableCell', 'tableHeader'].includes(meta === null || meta === void 0 ? void 0 : meta.parentType) && error.code === 'INVALID_CONTENT' && entity.type === 'table') {
|
|
71
|
+
return entity;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
58
74
|
if (options.allowUnsupportedBlock) {
|
|
59
75
|
return wrapWithUnsupported(entity);
|
|
60
76
|
}
|
|
@@ -101,7 +117,7 @@ function trackValidationError(dispatchAnalyticsEvent, error, entity) {
|
|
|
101
117
|
attrs: entity.attrs || {}
|
|
102
118
|
}, error.code);
|
|
103
119
|
}
|
|
104
|
-
export const validateADFEntity = (schema, node, dispatchAnalyticsEvent) => {
|
|
120
|
+
export const validateADFEntity = (schema, node, dispatchAnalyticsEvent, validationOverrides) => {
|
|
105
121
|
const nodes = Object.keys(schema.nodes);
|
|
106
122
|
const marks = Object.keys(schema.marks);
|
|
107
123
|
const validate = validator(nodes, marks, {
|
|
@@ -113,7 +129,7 @@ export const validateADFEntity = (schema, node, dispatchAnalyticsEvent) => {
|
|
|
113
129
|
};
|
|
114
130
|
const {
|
|
115
131
|
entity = emptyDoc
|
|
116
|
-
} = validate(node, errorCallbackFor(marks, validate, dispatchAnalyticsEvent));
|
|
132
|
+
} = validate(node, errorCallbackFor(marks, validate, dispatchAnalyticsEvent, validationOverrides));
|
|
117
133
|
return entity;
|
|
118
134
|
};
|
|
119
135
|
export function wrapWithUnsupported(originalValue, type = 'block') {
|
|
@@ -26,7 +26,8 @@ function ElementSearch(_ref) {
|
|
|
26
26
|
onKeyDown = _ref.onKeyDown,
|
|
27
27
|
searchTerm = _ref.searchTerm,
|
|
28
28
|
items = _ref.items,
|
|
29
|
-
selectedItemIndex = _ref.selectedItemIndex
|
|
29
|
+
selectedItemIndex = _ref.selectedItemIndex,
|
|
30
|
+
ariaControlsId = _ref.ariaControlsId;
|
|
30
31
|
var ref = useFocus(focus);
|
|
31
32
|
var assistiveTextRef = useRef(null);
|
|
32
33
|
var _useState = useState(false),
|
|
@@ -109,6 +110,8 @@ function ElementSearch(_ref) {
|
|
|
109
110
|
,
|
|
110
111
|
className: "js-search-input",
|
|
111
112
|
role: "combobox",
|
|
113
|
+
"aria-expanded": "true",
|
|
114
|
+
"aria-controls": ariaControlsId,
|
|
112
115
|
"aria-activedescendant": ariaActiveDescendant,
|
|
113
116
|
value: searchTerm
|
|
114
117
|
}), jsx("span", {
|
|
@@ -413,7 +413,8 @@ function DesktopBrowser(_ref2) {
|
|
|
413
413
|
onClick: setFocusOnSearch,
|
|
414
414
|
searchTerm: searchTerm,
|
|
415
415
|
items: items,
|
|
416
|
-
selectedItemIndex: selectedItemIndex
|
|
416
|
+
selectedItemIndex: selectedItemIndex,
|
|
417
|
+
ariaControlsId: selectedCategory ? "browse-category-".concat(selectedCategory, "-tab") : 'browse-category-tab'
|
|
417
418
|
})), jsx(ElementList, {
|
|
418
419
|
items: items,
|
|
419
420
|
mode: mode,
|
|
@@ -4,7 +4,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import Loadable from 'react-loadable';
|
|
6
6
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
|
-
import { getExtensionKeyAndNodeKey, resolveImport } from './manifest-helpers';
|
|
7
|
+
import { getExtensionKeyAndNodeKey, resolveImport, resolveImportSync } from './manifest-helpers';
|
|
8
8
|
function getNodeFromManifest(
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
10
|
manifest, extKey, nodeKey, extensionType, extensionKey) {
|
|
@@ -106,8 +106,6 @@ export function getNodeRenderer(extensionProvider, extensionType, extensionKey)
|
|
|
106
106
|
return Loadable({
|
|
107
107
|
loader: function loader() {
|
|
108
108
|
if (fg('confluence_preload_extension_providers')) {
|
|
109
|
-
// Logic here is specific to Confluence because it doesn't use the original react-loadable.
|
|
110
|
-
// The library is replaced with a custom one that supports synchronous return value from loader.
|
|
111
109
|
var maybePromise = getExtensionModuleNodeMaybePreloaded(extensionProvider, extensionType, extensionKey);
|
|
112
110
|
if (maybePromise instanceof Promise) {
|
|
113
111
|
return maybePromise.then(function (node) {
|
|
@@ -115,11 +113,12 @@ export function getNodeRenderer(extensionProvider, extensionType, extensionKey)
|
|
|
115
113
|
});
|
|
116
114
|
} else {
|
|
117
115
|
var _renderSync, _ref;
|
|
118
|
-
// maybePromise is sync here
|
|
119
116
|
var preloaded = maybePromise === null || maybePromise === void 0 || (_renderSync = (_ref = maybePromise).renderSync) === null || _renderSync === void 0 ? void 0 : _renderSync.call(_ref);
|
|
120
|
-
//
|
|
121
|
-
//
|
|
122
|
-
return
|
|
117
|
+
// Only product implemented preloading will return sync result
|
|
118
|
+
// However the out-of-box won't handle this. Confluence uses a custom implementation
|
|
119
|
+
return preloaded
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
121
|
+
? resolveImportSync(preloaded) : resolveImport(maybePromise.render());
|
|
123
122
|
}
|
|
124
123
|
} else {
|
|
125
124
|
return getExtensionModuleNode(extensionProvider, extensionType, extensionKey).then(function (node) {
|
|
@@ -33,18 +33,21 @@ export function buildAction(action, manifest) {
|
|
|
33
33
|
return buildNode(action, manifest);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
+
export var resolveImportSync = function resolveImportSync(importedModule) {
|
|
37
|
+
return importedModule && importedModule.__esModule ? importedModule.default : importedModule;
|
|
38
|
+
};
|
|
36
39
|
export var resolveImport = /*#__PURE__*/function () {
|
|
37
40
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(importPromise) {
|
|
38
|
-
var importedModule;
|
|
39
41
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
40
42
|
while (1) switch (_context.prev = _context.next) {
|
|
41
43
|
case 0:
|
|
42
|
-
_context.
|
|
44
|
+
_context.t0 = resolveImportSync;
|
|
45
|
+
_context.next = 3;
|
|
43
46
|
return importPromise;
|
|
44
|
-
case
|
|
45
|
-
|
|
46
|
-
return _context.abrupt("return",
|
|
47
|
-
case
|
|
47
|
+
case 3:
|
|
48
|
+
_context.t1 = _context.sent;
|
|
49
|
+
return _context.abrupt("return", (0, _context.t0)(_context.t1));
|
|
50
|
+
case 5:
|
|
48
51
|
case "end":
|
|
49
52
|
return _context.stop();
|
|
50
53
|
}
|
|
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
7
7
|
import { isFedRamp } from './environment';
|
|
8
8
|
var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
|
|
9
9
|
var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
|
|
10
|
-
var packageVersion = "105.
|
|
10
|
+
var packageVersion = "105.9.1";
|
|
11
11
|
var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
|
|
12
12
|
// Remove URL as it has UGC
|
|
13
13
|
// Ignored via go/ees007
|
|
@@ -22,7 +22,7 @@ export var handleWrapperClass = 'resizer-handle-wrapper';
|
|
|
22
22
|
export var resizerHandleZIndex = 1;
|
|
23
23
|
|
|
24
24
|
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression, @atlaskit/ui-styling-standard/no-exported-styles -- Ignored via go/DSP-18766, Seems perfectly safe to autofix, but comments would be lost…
|
|
25
|
-
export var resizerStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t.", " {\n\t\twill-change: width;\n\n\t\t&:hover,\n\t\t&.display-handle {\n\t\t\t& > .", " > .", " {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&.is-resizing {\n\t\t\t& .", " {\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\n\t\t&.", " {\n\t\t\t& .", " {\n\t\t\t\ttransition: none;\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tdisplay: flex;\n\t\tvisibility: hidden;\n\t\topacity: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 7px;\n\t\ttransition:\n\t\t\tvisibility 0.2s,\n\t\t\topacity 0.2s;\n\n\t\t/*\n NOTE: The below style is targeted at the div element added by the tooltip. We don't have any means of injecting styles\n into the tooltip\n */\n\t\t& div[role='presentation'] {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tmargin-top: ", ";\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t/*\n Handle Positions\n */\n\t\t&.left {\n\t\t\talign-items: flex-start;\n\t\t}\n\t\t&.right {\n\t\t\talign-items: flex-end;\n\t\t}\n\n\t\t/*\n Handle Sizing\n */\n\t\t&.small {\n\t\t\t& .", " {\n\t\t\t\theight: 43px;\n\t\t\t}\n\t\t}\n\t\t&.medium {\n\t\t\t& .", " {\n\t\t\t\theight: 64px;\n\t\t\t}\n\t\t}\n\t\t&.large {\n\t\t\t& .", " {\n\t\t\t\theight: 96px;\n\t\t\t}\n\t\t}\n\t\t&.clamped {\n\t\t\t& .", " {\n\t\t\t\theight: clamp(43px, calc(100% - 32px), 96px);\n\t\t\t}\n\t\t}\n\n\t\t/*\n Handle Alignment\n */\n\t\t&.sticky {\n\t\t\t& .", " {\n\t\t\t\tposition: sticky;\n\t\t\t\ttop: ", ";\n\t\t\t\tbottom: ", ";\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t& .", " {\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\n\t\t\t& .", " {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 0.5;\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tcontent: ' ';\n\t\tdisplay: flex;\n\t\twidth: 3px;\n\t\tmargin: 0 ", ";\n\t\theight: 64px;\n\t\ttransition: background-color 0.2s;\n\t\tborder-radius: 6px;\n\t\tborder: 0;\n\t\tpadding: 0;\n\t\tz-index: 2;\n\t\toutline: none;\n\t\tmin-height: 24px;\n\t\tbackground: ", ";\n\n\t\t&:hover {\n\t\t\tcursor: col-resize;\n\t\t}\n\n\t\t&:focus {\n\t\t\tbackground: ", ";\n\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ", ";\n\t\t\t\tright: ", ";\n\t\t\t\tbottom: ", ";\n\t\t\t\tleft: ", ";\n\t\t\t\tborder: 2px solid ", ";\n\t\t\t\tborder-radius: inherit;\n\t\t\t\tz-index: -1;\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tvisibility: hidden;\n\t\tposition: absolute;\n\t\twidth: 7px;\n\t\theight: calc(100% - 40px);\n\t\tborder-radius: 4px;\n\t\topacity: 0;\n\t\ttransition:\n\t\t\tbackground-color 0.2s,\n\t\t\tvisibility 0.2s,\n\t\t\topacity 0.2s;\n\n\t\t&.none {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&.shadow {\n\t\t\tbackground: ", ";\n\t\t}\n\n\t\t&.full-height {\n\t\t\tbackground: ", ";\n\t\t\theight: 100%;\n\t\t\tmin-height: 36px;\n\t\t}\n\t}\n\n\t.", " {\n\t\t& .", " {\n\t\t\tbackground: ", ";\n\t\t}\n\t}\n\n\t.ak-editor-no-interaction\n\t\t.", "\n\t\t.", ":not(:hover)\n\t\t.", " {\n\t\tbackground: ", ";\n\t}\n\n\t.", " {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\n\t\t&.", " {\n\t\t\tpadding: 0 ", ";\n\t\t\tleft: ", ";\n\t\t}\n\t}\n\n\t/* This below style is here to make sure the image width is correct when nested in a table */\n\ttable .", ", table .", ".", " {\n\t\tpadding: unset;\n\t\tleft: unset;\n\t}\n"])), resizerItemClassName, handleWrapperClass, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", resizerDangerClassName, resizerHandleThumbClassName, "var(--ds-icon-danger, ".concat(akEditorDeleteIconColor, ")"), resizerHandleClassName, "var(--ds-space-negative-200, -16px)", resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, resizerHandleThumbClassName, "var(--ds-space-025, 2px)", "var(--ds-border, #091E4224)", "var(--ds-border-selected, #0C66E4)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, "var(--ds-background-selected, #E9F2FF)", "var(--ds-background-selected, #E9F2FF)", akEditorSelectedNodeClassName, resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", akEditorSelectedNodeClassName, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border, #091E4224)", resizerHoverZoneClassName, resizerExtendedZone, "var(--ds-space-150, 12px)", "var(--ds-space-negative-150, -12px)", resizerHoverZoneClassName, resizerHoverZoneClassName, resizerExtendedZone);
|
|
25
|
+
export var resizerStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t.", " {\n\t\twill-change: width;\n\n\t\t&:hover,\n\t\t&.display-handle {\n\t\t\t& > .", " > .", " {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&.is-resizing {\n\t\t\t& .", " {\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\n\t\t&.", " {\n\t\t\t& .", " {\n\t\t\t\ttransition: none;\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tdisplay: flex;\n\t\tvisibility: hidden;\n\t\topacity: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 7px;\n\t\ttransition:\n\t\t\tvisibility 0.2s,\n\t\t\topacity 0.2s;\n\n\t\t/*\n NOTE: The below style is targeted at the div element added by the tooltip. We don't have any means of injecting styles\n into the tooltip\n */\n\t\t& div[role='presentation'] {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tmargin-top: ", ";\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t/*\n Handle Positions\n */\n\t\t&.left {\n\t\t\talign-items: flex-start;\n\t\t}\n\t\t&.right {\n\t\t\talign-items: flex-end;\n\t\t}\n\n\t\t/*\n Handle Sizing\n */\n\t\t&.small {\n\t\t\t& .", " {\n\t\t\t\theight: 43px;\n\t\t\t}\n\t\t}\n\t\t&.medium {\n\t\t\t& .", " {\n\t\t\t\theight: 64px;\n\t\t\t}\n\t\t}\n\t\t&.large {\n\t\t\t& .", " {\n\t\t\t\theight: 96px;\n\t\t\t}\n\t\t}\n\t\t&.clamped {\n\t\t\t& .", " {\n\t\t\t\theight: clamp(43px, calc(100% - 32px), 96px);\n\t\t\t}\n\t\t}\n\n\t\t/*\n Handle Alignment\n */\n\t\t&.sticky {\n\t\t\t& .", " {\n\t\t\t\tposition: sticky;\n\t\t\t\ttop: ", ";\n\t\t\t\tbottom: ", ";\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t& .", " {\n\t\t\t\tbackground: ", ";\n\t\t\t}\n\n\t\t\t& .", " {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 0.5;\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tcontent: ' ';\n\t\tdisplay: flex;\n\t\twidth: 3px;\n\t\tmargin: 0 ", ";\n\t\theight: 64px;\n\t\ttransition: background-color 0.2s;\n\t\tborder-radius: 6px;\n\t\tborder: 0;\n\t\tpadding: 0;\n\t\tz-index: 2;\n\t\toutline: none;\n\t\tmin-height: 24px;\n\t\tbackground: ", ";\n\n\t\t&:hover {\n\t\t\tcursor: col-resize;\n\t\t}\n\n\t\t&:focus {\n\t\t\tbackground: ", ";\n\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ", ";\n\t\t\t\tright: ", ";\n\t\t\t\tbottom: ", ";\n\t\t\t\tleft: ", ";\n\t\t\t\tborder: 2px solid ", ";\n\t\t\t\tborder-radius: inherit;\n\t\t\t\tz-index: -1;\n\t\t\t}\n\t\t}\n\t}\n\n\t.", " {\n\t\tvisibility: hidden;\n\t\tposition: absolute;\n\t\twidth: 7px;\n\t\theight: calc(100% - 40px);\n\t\tborder-radius: 4px;\n\t\topacity: 0;\n\t\ttransition:\n\t\t\tbackground-color 0.2s,\n\t\t\tvisibility 0.2s,\n\t\t\topacity 0.2s;\n\n\t\t&.none {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&.shadow {\n\t\t\tbackground: ", ";\n\t\t}\n\n\t\t&.full-height {\n\t\t\tbackground: ", ";\n\t\t\theight: 100%;\n\t\t\tmin-height: 36px;\n\t\t}\n\t}\n\n\t.", " {\n\t\t& .", " {\n\t\t\tbackground: ", ";\n\t\t}\n\t}\n\n\t// Remove when cleaning up platform_editor_interaction_api_refactor\n\t.ak-editor-no-interaction\n\t\t.", "\n\t\t.", ":not(:hover)\n\t\t.", " {\n\t\tbackground: ", ";\n\t}\n\n\t.", " {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\twidth: 100%;\n\n\t\t&.", " {\n\t\t\tpadding: 0 ", ";\n\t\t\tleft: ", ";\n\t\t}\n\t}\n\n\t/* This below style is here to make sure the image width is correct when nested in a table */\n\ttable .", ", table .", ".", " {\n\t\tpadding: unset;\n\t\tleft: unset;\n\t}\n"])), resizerItemClassName, handleWrapperClass, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", resizerDangerClassName, resizerHandleThumbClassName, "var(--ds-icon-danger, ".concat(akEditorDeleteIconColor, ")"), resizerHandleClassName, "var(--ds-space-negative-200, -16px)", resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, resizerHandleThumbClassName, "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, resizerHandleThumbClassName, "var(--ds-space-025, 2px)", "var(--ds-border, #091E4224)", "var(--ds-border-selected, #0C66E4)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-space-negative-050, -4px)", "var(--ds-border-focused, #388BFF)", resizerHandleTrackClassName, "var(--ds-background-selected, #E9F2FF)", "var(--ds-background-selected, #E9F2FF)", akEditorSelectedNodeClassName, resizerHandleThumbClassName, "var(--ds-border-focused, #388BFF)", akEditorSelectedNodeClassName, resizerHandleClassName, resizerHandleThumbClassName, "var(--ds-border, #091E4224)", resizerHoverZoneClassName, resizerExtendedZone, "var(--ds-space-150, 12px)", "var(--ds-space-negative-150, -12px)", resizerHoverZoneClassName, resizerHoverZoneClassName, resizerExtendedZone);
|
|
26
26
|
|
|
27
27
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles
|
|
28
28
|
export var pragmaticResizerStyles = function pragmaticResizerStyles() {
|
|
@@ -20,7 +20,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
|
|
|
20
20
|
import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
|
|
21
21
|
import Layer from '../Layer';
|
|
22
22
|
var packageName = "@atlaskit/editor-common";
|
|
23
|
-
var packageVersion = "105.
|
|
23
|
+
var packageVersion = "105.9.1";
|
|
24
24
|
var halfFocusRing = 1;
|
|
25
25
|
var dropOffset = '0, 8';
|
|
26
26
|
// Ignored via go/ees005
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1
4
|
import { validator } from '@atlaskit/adf-utils/validator';
|
|
2
5
|
import { ACTION_SUBJECT_ID } from '../analytics';
|
|
3
6
|
export var UNSUPPORTED_NODE_ATTRIBUTE = 'unsupportedNodeAttribute';
|
|
4
7
|
import { fireUnsupportedEvent } from './track-unsupported-content';
|
|
5
|
-
var errorCallbackFor = function errorCallbackFor(marks, validate, dispatchAnalyticsEvent) {
|
|
8
|
+
var errorCallbackFor = function errorCallbackFor(marks, validate, dispatchAnalyticsEvent, validationOverrides) {
|
|
6
9
|
return function (entity, error, options) {
|
|
7
|
-
return validationErrorHandler(entity, error,
|
|
10
|
+
return validationErrorHandler(entity, error, _objectSpread(_objectSpread({}, options), {}, {
|
|
11
|
+
allowNestedTables: validationOverrides === null || validationOverrides === void 0 ? void 0 : validationOverrides.allowNestedTables
|
|
12
|
+
}), marks, validate, dispatchAnalyticsEvent);
|
|
8
13
|
};
|
|
9
14
|
};
|
|
10
15
|
export var validationErrorHandler = function validationErrorHandler(entity, error, options, marks, validate, dispatchAnalyticsEvent) {
|
|
@@ -55,6 +60,19 @@ export var validationErrorHandler = function validationErrorHandler(entity, erro
|
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
62
|
}
|
|
63
|
+
|
|
64
|
+
// Nested tables don't actually exist in ADF. In ADF they are stored as an `extension` node with the nested table content serialized in a property of that extension.
|
|
65
|
+
// Usually when we validate ADF we are validating this `extension` and then later transforming it into nested tables for usage by ProseMirror.
|
|
66
|
+
// Under certain circumstances however, ADF validation is performed on this already transformed extension and since nested tables aren't allowed by ADF this
|
|
67
|
+
// produces an error. For example, nested renderers in Confluence `bodiedExtension`'s. The nested renderer receives the already transformed nested tables that originated from the
|
|
68
|
+
// `extension` node and validates it. This is invalid ADF so an error is thrown.
|
|
69
|
+
// This override allows an exception to be made for nested tables in the validator in this circumstance.
|
|
70
|
+
if (options.allowNestedTables) {
|
|
71
|
+
var meta = error.meta;
|
|
72
|
+
if (options.allowNestedTables && meta !== null && meta !== void 0 && meta.parentType && ['tableCell', 'tableHeader'].includes(meta === null || meta === void 0 ? void 0 : meta.parentType) && error.code === 'INVALID_CONTENT' && entity.type === 'table') {
|
|
73
|
+
return entity;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
58
76
|
if (options.allowUnsupportedBlock) {
|
|
59
77
|
return wrapWithUnsupported(entity);
|
|
60
78
|
}
|
|
@@ -105,7 +123,7 @@ function trackValidationError(dispatchAnalyticsEvent, error, entity) {
|
|
|
105
123
|
attrs: entity.attrs || {}
|
|
106
124
|
}, error.code);
|
|
107
125
|
}
|
|
108
|
-
export var validateADFEntity = function validateADFEntity(schema, node, dispatchAnalyticsEvent) {
|
|
126
|
+
export var validateADFEntity = function validateADFEntity(schema, node, dispatchAnalyticsEvent, validationOverrides) {
|
|
109
127
|
var nodes = Object.keys(schema.nodes);
|
|
110
128
|
var marks = Object.keys(schema.marks);
|
|
111
129
|
var validate = validator(nodes, marks, {
|
|
@@ -115,7 +133,7 @@ export var validateADFEntity = function validateADFEntity(schema, node, dispatch
|
|
|
115
133
|
type: 'doc',
|
|
116
134
|
content: []
|
|
117
135
|
};
|
|
118
|
-
var _validate = validate(node, errorCallbackFor(marks, validate, dispatchAnalyticsEvent)),
|
|
136
|
+
var _validate = validate(node, errorCallbackFor(marks, validate, dispatchAnalyticsEvent, validationOverrides)),
|
|
119
137
|
_validate$entity = _validate.entity,
|
|
120
138
|
entity = _validate$entity === void 0 ? emptyDoc : _validate$entity;
|
|
121
139
|
return entity;
|
|
@@ -15,6 +15,7 @@ interface Props {
|
|
|
15
15
|
searchTerm?: string;
|
|
16
16
|
items: QuickInsertItem[];
|
|
17
17
|
selectedItemIndex?: number;
|
|
18
|
+
ariaControlsId?: string;
|
|
18
19
|
}
|
|
19
20
|
declare const MemoizedElementSearchWithAnalytics: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<Props & WrappedComponentProps, "intl"> & {
|
|
20
21
|
forwardedRef?: React.Ref<any> | undefined;
|
|
@@ -5,5 +5,6 @@ export declare const FORGE_EXTENSION_TYPE = "com.atlassian.ecosystem";
|
|
|
5
5
|
export declare const getExtensionKeyAndNodeKey: (extensionKey: ExtensionKey, extensionType: ExtensionType) => string[];
|
|
6
6
|
export declare const buildExtensionKeyAndNodeKey: (extensionKey: ExtensionKey, nodeKey?: ExtensionModuleKey) => string;
|
|
7
7
|
export declare function buildAction<T extends Parameters>(action: ExtensionModuleAction<T>, manifest: ExtensionManifest<T>): ADFEntity | import("./types/extension-manifest").ExtensionModuleActionHandler | undefined;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const resolveImportSync: <T extends Parameters>(importedModule: Module<T>) => T;
|
|
9
|
+
export declare const resolveImport: <T extends Parameters>(importPromise: Promise<Module<T>> | Module<T>) => Promise<T>;
|
|
9
10
|
export declare function buildNode<T extends Parameters>(action: ExtensionModuleActionObject<T>, manifest: ExtensionManifest<T>): ADFEntity | undefined;
|
|
@@ -10,7 +10,9 @@ export declare const validationErrorHandler: (entity: ADFEntity, error: Validati
|
|
|
10
10
|
originalValue: ADFEntity;
|
|
11
11
|
};
|
|
12
12
|
} | undefined;
|
|
13
|
-
export declare const validateADFEntity: (schema: Schema, node: ADFEntity, dispatchAnalyticsEvent?: DispatchAnalyticsEvent
|
|
13
|
+
export declare const validateADFEntity: (schema: Schema, node: ADFEntity, dispatchAnalyticsEvent?: DispatchAnalyticsEvent, validationOverrides?: {
|
|
14
|
+
allowNestedTables?: boolean;
|
|
15
|
+
}) => ADFEntity;
|
|
14
16
|
export declare function wrapWithUnsupported(originalValue: ADFEntity, type?: 'block' | 'inline' | 'mark'): {
|
|
15
17
|
type: string;
|
|
16
18
|
attrs: {
|
|
@@ -15,6 +15,7 @@ interface Props {
|
|
|
15
15
|
searchTerm?: string;
|
|
16
16
|
items: QuickInsertItem[];
|
|
17
17
|
selectedItemIndex?: number;
|
|
18
|
+
ariaControlsId?: string;
|
|
18
19
|
}
|
|
19
20
|
declare const MemoizedElementSearchWithAnalytics: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<Props & WrappedComponentProps, "intl"> & {
|
|
20
21
|
forwardedRef?: React.Ref<any> | undefined;
|
|
@@ -5,5 +5,6 @@ export declare const FORGE_EXTENSION_TYPE = "com.atlassian.ecosystem";
|
|
|
5
5
|
export declare const getExtensionKeyAndNodeKey: (extensionKey: ExtensionKey, extensionType: ExtensionType) => string[];
|
|
6
6
|
export declare const buildExtensionKeyAndNodeKey: (extensionKey: ExtensionKey, nodeKey?: ExtensionModuleKey) => string;
|
|
7
7
|
export declare function buildAction<T extends Parameters>(action: ExtensionModuleAction<T>, manifest: ExtensionManifest<T>): ADFEntity | import("./types/extension-manifest").ExtensionModuleActionHandler | undefined;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const resolveImportSync: <T extends Parameters>(importedModule: Module<T>) => T;
|
|
9
|
+
export declare const resolveImport: <T extends Parameters>(importPromise: Promise<Module<T>> | Module<T>) => Promise<T>;
|
|
9
10
|
export declare function buildNode<T extends Parameters>(action: ExtensionModuleActionObject<T>, manifest: ExtensionManifest<T>): ADFEntity | undefined;
|
|
@@ -10,7 +10,9 @@ export declare const validationErrorHandler: (entity: ADFEntity, error: Validati
|
|
|
10
10
|
originalValue: ADFEntity;
|
|
11
11
|
};
|
|
12
12
|
} | undefined;
|
|
13
|
-
export declare const validateADFEntity: (schema: Schema, node: ADFEntity, dispatchAnalyticsEvent?: DispatchAnalyticsEvent
|
|
13
|
+
export declare const validateADFEntity: (schema: Schema, node: ADFEntity, dispatchAnalyticsEvent?: DispatchAnalyticsEvent, validationOverrides?: {
|
|
14
|
+
allowNestedTables?: boolean;
|
|
15
|
+
}) => ADFEntity;
|
|
14
16
|
export declare function wrapWithUnsupported(originalValue: ADFEntity, type?: 'block' | 'inline' | 'mark'): {
|
|
15
17
|
type: string;
|
|
16
18
|
attrs: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-common",
|
|
3
|
-
"version": "105.
|
|
3
|
+
"version": "105.9.1",
|
|
4
4
|
"description": "A package that contains common classes and components for editor and renderer",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
"dependencies": {
|
|
123
123
|
"@atlaskit/activity-provider": "^2.5.0",
|
|
124
124
|
"@atlaskit/adf-schema": "^47.6.0",
|
|
125
|
-
"@atlaskit/adf-utils": "^19.
|
|
125
|
+
"@atlaskit/adf-utils": "^19.20.0",
|
|
126
126
|
"@atlaskit/analytics-listeners": "^9.0.0",
|
|
127
127
|
"@atlaskit/analytics-namespaced-context": "^7.0.0",
|
|
128
128
|
"@atlaskit/analytics-next": "^11.0.0",
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
"@atlaskit/editor-shared-styles": "^3.4.0",
|
|
140
140
|
"@atlaskit/editor-tables": "^2.9.0",
|
|
141
141
|
"@atlaskit/emoji": "^69.2.0",
|
|
142
|
-
"@atlaskit/icon": "^26.
|
|
142
|
+
"@atlaskit/icon": "^26.2.0",
|
|
143
143
|
"@atlaskit/icon-object": "^7.1.0",
|
|
144
144
|
"@atlaskit/link": "^3.2.0",
|
|
145
145
|
"@atlaskit/link-datasource": "^4.11.0",
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
"@atlaskit/task-decision": "^19.2.0",
|
|
169
169
|
"@atlaskit/textfield": "^8.0.0",
|
|
170
170
|
"@atlaskit/theme": "^18.0.0",
|
|
171
|
-
"@atlaskit/tmp-editor-statsig": "^4.
|
|
171
|
+
"@atlaskit/tmp-editor-statsig": "^4.25.0",
|
|
172
172
|
"@atlaskit/tokens": "^4.9.0",
|
|
173
173
|
"@atlaskit/tooltip": "^20.0.0",
|
|
174
174
|
"@atlaskit/width-detector": "^5.0.0",
|