@atlaskit/renderer 114.2.0 → 114.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/cjs/react/nodes/extensionFrame.js +8 -6
- package/dist/cjs/react/nodes/index.js +4 -1
- package/dist/cjs/react/nodes/multiBodiedExtension/actions.js +43 -0
- package/dist/cjs/react/nodes/multiBodiedExtension/context.js +71 -0
- package/dist/cjs/react/nodes/multiBodiedExtension.js +109 -102
- package/dist/cjs/react/nodes/multiBodiedExtensionOld.js +157 -0
- package/dist/cjs/ui/Renderer/RendererStyleContainer.js +8 -1
- package/dist/cjs/ui/Renderer/index.js +1 -1
- package/dist/cjs/ui/Renderer/style.js +1 -1
- package/dist/es2019/react/nodes/extensionFrame.js +8 -6
- package/dist/es2019/react/nodes/index.js +4 -1
- package/dist/es2019/react/nodes/multiBodiedExtension/actions.js +37 -0
- package/dist/es2019/react/nodes/multiBodiedExtension/context.js +56 -0
- package/dist/es2019/react/nodes/multiBodiedExtension.js +127 -118
- package/dist/es2019/react/nodes/multiBodiedExtensionOld.js +168 -0
- package/dist/es2019/ui/Renderer/RendererStyleContainer.js +10 -1
- package/dist/es2019/ui/Renderer/index.js +1 -1
- package/dist/es2019/ui/Renderer/style.js +2 -2
- package/dist/esm/react/nodes/extensionFrame.js +8 -6
- package/dist/esm/react/nodes/index.js +4 -1
- package/dist/esm/react/nodes/multiBodiedExtension/actions.js +36 -0
- package/dist/esm/react/nodes/multiBodiedExtension/context.js +64 -0
- package/dist/esm/react/nodes/multiBodiedExtension.js +108 -101
- package/dist/esm/react/nodes/multiBodiedExtensionOld.js +148 -0
- package/dist/esm/ui/Renderer/RendererStyleContainer.js +8 -1
- package/dist/esm/ui/Renderer/index.js +1 -1
- package/dist/esm/ui/Renderer/style.js +2 -2
- package/dist/types/react/nodes/multiBodiedExtension/actions.d.ts +10 -0
- package/dist/types/react/nodes/multiBodiedExtension/context.d.ts +17 -0
- package/dist/types/react/nodes/multiBodiedExtension.d.ts +1 -0
- package/dist/types/react/nodes/multiBodiedExtensionOld.d.ts +29 -0
- package/dist/types-ts4.5/react/nodes/multiBodiedExtension/actions.d.ts +10 -0
- package/dist/types-ts4.5/react/nodes/multiBodiedExtension/context.d.ts +17 -0
- package/dist/types-ts4.5/react/nodes/multiBodiedExtension.d.ts +1 -0
- package/dist/types-ts4.5/react/nodes/multiBodiedExtensionOld.d.ts +29 -0
- package/package.json +12 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @atlaskit/renderer
|
|
2
2
|
|
|
3
|
+
## 114.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#124569](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/124569)
|
|
8
|
+
[`d88099abc9365`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d88099abc9365) -
|
|
9
|
+
Support Renderer to override bodies for multiBodiedExtensions
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 114.2.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [#125487](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/125487)
|
|
20
|
+
[`e435eea47c743`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e435eea47c743) -
|
|
21
|
+
[ux] EDM-11991: Fix smart links avatar group padding inside editor and renderer
|
|
22
|
+
- Updated dependencies
|
|
23
|
+
|
|
3
24
|
## 114.2.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = require("@emotion/react");
|
|
8
|
+
var _ui = require("@atlaskit/editor-common/ui");
|
|
9
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
8
10
|
/**
|
|
9
11
|
* @jsxRuntime classic
|
|
10
12
|
* @jsx jsx
|
|
@@ -13,15 +15,15 @@ var _react = require("@emotion/react");
|
|
|
13
15
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
14
16
|
|
|
15
17
|
var containerCSS = (0, _react.css)({
|
|
16
|
-
minHeight: '100px'
|
|
18
|
+
minHeight: '100px',
|
|
19
|
+
flexBasis: '100%'
|
|
17
20
|
});
|
|
18
21
|
var ExtensionFrame = function ExtensionFrame(props) {
|
|
19
22
|
return (0, _react.jsx)("div", {
|
|
20
|
-
css: containerCSS,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
23
|
+
css: [containerCSS, (0, _platformFeatureFlags.fg)('platform_editor_multi_body_extension_extensibility') &&
|
|
24
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
25
|
+
_ui.sharedMultiBodiedExtensionStyles.extensionFrameContent],
|
|
26
|
+
"data-extension-frame": "true"
|
|
25
27
|
}, props.children);
|
|
26
28
|
};
|
|
27
29
|
var _default = exports.default = ExtensionFrame;
|
|
@@ -156,8 +156,11 @@ exports.toReact = exports.nodeToReact = exports.mergeTextNodes = exports.isTextW
|
|
|
156
156
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
157
157
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
158
158
|
var _reactLoadable = _interopRequireDefault(require("react-loadable"));
|
|
159
|
+
var _ui = require("@atlaskit/editor-common/ui");
|
|
160
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
159
161
|
var _blockquote = _interopRequireDefault(require("./blockquote"));
|
|
160
162
|
var _bodiedExtension = _interopRequireDefault(require("./bodiedExtension"));
|
|
163
|
+
var _multiBodiedExtensionOld = _interopRequireDefault(require("./multiBodiedExtensionOld"));
|
|
161
164
|
var _multiBodiedExtension = _interopRequireDefault(require("./multiBodiedExtension"));
|
|
162
165
|
var _extensionFrame = _interopRequireDefault(require("./extensionFrame"));
|
|
163
166
|
var _bulletList = _interopRequireDefault(require("./bulletList"));
|
|
@@ -178,7 +181,6 @@ var _table = _interopRequireDefault(require("./table"));
|
|
|
178
181
|
var _tableCell = require("./tableCell");
|
|
179
182
|
var _tableRow = _interopRequireDefault(require("./tableRow"));
|
|
180
183
|
var _unknownBlock = _interopRequireDefault(require("./unknownBlock"));
|
|
181
|
-
var _ui = require("@atlaskit/editor-common/ui");
|
|
182
184
|
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; }
|
|
183
185
|
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; }
|
|
184
186
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -494,6 +496,7 @@ var toReact = exports.toReact = function toReact(node, flags, nodeComponents
|
|
|
494
496
|
|
|
495
497
|
// Allowing custom components to override those provided in nodeToReact
|
|
496
498
|
var nodes = _objectSpread(_objectSpread({}, nodeToReact), nodeComponents);
|
|
499
|
+
nodes['multiBodiedExtension'] = (0, _platformFeatureFlags.fg)('platform_editor_multi_body_extension_extensibility') ? _multiBodiedExtension.default : _multiBodiedExtensionOld.default;
|
|
497
500
|
return nodes[node.type.name];
|
|
498
501
|
};
|
|
499
502
|
/*
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useMultiBodiedExtensionActions = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var useMultiBodiedExtensionActions = exports.useMultiBodiedExtensionActions = function useMultiBodiedExtensionActions(_ref) {
|
|
10
|
+
var updateActiveChild = _ref.updateActiveChild,
|
|
11
|
+
children = _ref.children,
|
|
12
|
+
allowBodiedOverride = _ref.allowBodiedOverride,
|
|
13
|
+
childrenContainer = _ref.childrenContainer;
|
|
14
|
+
return _react.default.useMemo(function () {
|
|
15
|
+
return {
|
|
16
|
+
changeActive: function changeActive(index) {
|
|
17
|
+
if (!Number.isInteger(index)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
updateActiveChild(index);
|
|
21
|
+
return true;
|
|
22
|
+
},
|
|
23
|
+
addChild: function addChild() {
|
|
24
|
+
return false;
|
|
25
|
+
},
|
|
26
|
+
getChildrenCount: function getChildrenCount() {
|
|
27
|
+
return children && Array.isArray(children) ? children.length : 0;
|
|
28
|
+
},
|
|
29
|
+
removeChild: function removeChild(_index) {
|
|
30
|
+
return false;
|
|
31
|
+
},
|
|
32
|
+
updateParameters: function updateParameters(_parameters) {
|
|
33
|
+
return false;
|
|
34
|
+
},
|
|
35
|
+
getChildren: function getChildren() {
|
|
36
|
+
return [];
|
|
37
|
+
},
|
|
38
|
+
getChildrenContainer: function getChildrenContainer() {
|
|
39
|
+
return allowBodiedOverride ? childrenContainer : null;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}, [updateActiveChild, children, allowBodiedOverride, childrenContainer]);
|
|
43
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useMultiBodiedExtensionContext = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
11
|
+
var _extensions = require("@atlaskit/editor-common/extensions");
|
|
12
|
+
var _providerFactory = require("@atlaskit/editor-common/provider-factory");
|
|
13
|
+
var useMultiBodiedExtensionContext = exports.useMultiBodiedExtensionContext = function useMultiBodiedExtensionContext(_ref) {
|
|
14
|
+
var extensionType = _ref.extensionType,
|
|
15
|
+
extensionKey = _ref.extensionKey;
|
|
16
|
+
var isMounted = _react.default.useRef(true);
|
|
17
|
+
var localGetNodeRenderer = _react.default.useMemo(function () {
|
|
18
|
+
return (0, _memoizeOne.default)(_extensions.getNodeRenderer);
|
|
19
|
+
}, []);
|
|
20
|
+
var _React$useState = _react.default.useState(),
|
|
21
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
22
|
+
provider = _React$useState2[0],
|
|
23
|
+
setProvider = _React$useState2[1];
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
var _React$useState3 = _react.default.useState(),
|
|
26
|
+
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
|
|
27
|
+
privateProps = _React$useState4[0],
|
|
28
|
+
setPrivateProps = _React$useState4[1];
|
|
29
|
+
var providerPromise = (0, _providerFactory.useProvider)('extensionProvider');
|
|
30
|
+
_react.default.useEffect(function () {
|
|
31
|
+
if (providerPromise) {
|
|
32
|
+
providerPromise.then(function (p) {
|
|
33
|
+
if (isMounted.current) {
|
|
34
|
+
setProvider(p);
|
|
35
|
+
}
|
|
36
|
+
return (0, _extensions.getExtensionModuleNodePrivateProps)(p, extensionType, extensionKey);
|
|
37
|
+
}).then(function (pr) {
|
|
38
|
+
if (isMounted.current) {
|
|
39
|
+
setPrivateProps(pr);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}, [providerPromise, extensionType, extensionKey]);
|
|
44
|
+
var NodeRenderer = _react.default.useMemo(function () {
|
|
45
|
+
if (!provider) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return localGetNodeRenderer(provider, extensionType, extensionKey);
|
|
49
|
+
}, [provider, extensionType, extensionKey, localGetNodeRenderer]);
|
|
50
|
+
_react.default.useEffect(function () {
|
|
51
|
+
isMounted.current = true;
|
|
52
|
+
return function () {
|
|
53
|
+
isMounted.current = false;
|
|
54
|
+
};
|
|
55
|
+
}, []);
|
|
56
|
+
return _react.default.useMemo(function () {
|
|
57
|
+
if (!provider || !NodeRenderer || !privateProps) {
|
|
58
|
+
return {
|
|
59
|
+
extensionContext: null,
|
|
60
|
+
loading: true
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
extensionContext: {
|
|
65
|
+
NodeRenderer: NodeRenderer,
|
|
66
|
+
privateProps: privateProps
|
|
67
|
+
},
|
|
68
|
+
loading: false
|
|
69
|
+
};
|
|
70
|
+
}, [provider, NodeRenderer, privateProps]);
|
|
71
|
+
};
|
|
@@ -6,123 +6,125 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
12
11
|
var _react = require("@emotion/react");
|
|
13
12
|
var _colors = require("@atlaskit/theme/colors");
|
|
14
13
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
15
14
|
var _extension = require("./extension");
|
|
16
|
-
var _ExtensionRenderer = _interopRequireDefault(require("../../ui/ExtensionRenderer"));
|
|
17
15
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
18
16
|
var _consts = require("../../consts");
|
|
19
17
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
20
|
-
var
|
|
21
|
-
|
|
18
|
+
var _actions = require("./multiBodiedExtension/actions");
|
|
19
|
+
var _context = require("./multiBodiedExtension/context");
|
|
20
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
21
|
+
/* eslint-disable @atlaskit/design-system/prefer-primitives, @atlaskit/design-system/consistent-css-prop-usage */
|
|
22
22
|
/**
|
|
23
23
|
* @jsxRuntime classic
|
|
24
24
|
* @jsx jsx
|
|
25
|
+
* @jsxFrag
|
|
25
26
|
*/
|
|
26
27
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
27
28
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
28
29
|
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; }
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
children = _ref.children;
|
|
32
|
-
var actions = _react2.default.useMemo(function () {
|
|
33
|
-
return {
|
|
34
|
-
changeActive: function changeActive(index) {
|
|
35
|
-
return updateActiveChild(index);
|
|
36
|
-
},
|
|
37
|
-
addChild: function addChild() {
|
|
38
|
-
return false;
|
|
39
|
-
},
|
|
40
|
-
getChildrenCount: function getChildrenCount() {
|
|
41
|
-
return children ? children === null || children === void 0 ? void 0 : children.length : 0;
|
|
42
|
-
},
|
|
43
|
-
removeChild: function removeChild(index) {
|
|
44
|
-
return false;
|
|
45
|
-
},
|
|
46
|
-
updateParameters: function updateParameters(parameters) {
|
|
47
|
-
return false;
|
|
48
|
-
},
|
|
49
|
-
// Ignored via go/ees005
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
-
getChildren: function getChildren() {
|
|
52
|
-
return [];
|
|
53
|
-
},
|
|
54
|
-
getChildrenContainer: function getChildrenContainer() {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
}, [updateActiveChild, children]);
|
|
59
|
-
return actions;
|
|
60
|
-
};
|
|
30
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Ignored via go/DSP-18766
|
|
31
|
+
var navigationStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t", ";\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\t.mbe-add-tab-button,\n\t.mbe-remove-tab {\n\t\tdisplay: none;\n\t}\n"])), _ui.sharedMultiBodiedExtensionStyles.mbeNavigation);
|
|
61
32
|
|
|
62
|
-
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression
|
|
63
|
-
var
|
|
33
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
|
|
34
|
+
var containerStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n\t", ";\n\t.ak-renderer-extension {\n\t\tmargin-top: 0 !important;\n\t}\n\n\t[data-layout='full-width'],\n\t[data-layout='wide'] {\n\t\t.multiBodiedExtension-navigation {\n\t\t\tborder-right: 3px solid ", " !important;\n\t\t}\n\t}\n"])), _ui.sharedMultiBodiedExtensionStyles.mbeExtensionContainer, "var(--ds-border, ".concat(_colors.N40, ")"));
|
|
35
|
+
var MultiBodiedExtensionChildrenContainer = function MultiBodiedExtensionChildrenContainer(_ref) {
|
|
36
|
+
var children = _ref.children;
|
|
37
|
+
return (0, _react.jsx)("article", {
|
|
38
|
+
"data-testid": "multiBodiedExtension--frames"
|
|
39
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
40
|
+
,
|
|
41
|
+
className: "multiBodiedExtension--frames"
|
|
42
|
+
}, children);
|
|
43
|
+
};
|
|
44
|
+
var MultiBodiedExtensionNavigation = function MultiBodiedExtensionNavigation(_ref2) {
|
|
45
|
+
var children = _ref2.children;
|
|
46
|
+
return (0, _react.jsx)("nav", {
|
|
47
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
48
|
+
className: "multiBodiedExtension-navigation",
|
|
49
|
+
css: navigationStyles,
|
|
50
|
+
"data-testid": "multiBodiedExtension-navigation"
|
|
51
|
+
}, children);
|
|
52
|
+
};
|
|
53
|
+
var MultiBodiedExtensionWrapper = function MultiBodiedExtensionWrapper(_ref3) {
|
|
54
|
+
var width = _ref3.width,
|
|
55
|
+
path = _ref3.path,
|
|
56
|
+
layout = _ref3.layout,
|
|
57
|
+
children = _ref3.children;
|
|
58
|
+
var isTopLevel = path.length < 1;
|
|
59
|
+
var centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? _consts.RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
|
|
60
|
+
return (0, _react.jsx)("div", {
|
|
61
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
62
|
+
className: "".concat(_consts.RendererCssClassName.EXTENSION, " ").concat(centerAlignClass, " ").concat(_consts.RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER),
|
|
63
|
+
style: {
|
|
64
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
65
|
+
width: isTopLevel ? (0, _utils.calcBreakoutWidth)(layout, width) : '100%'
|
|
66
|
+
},
|
|
67
|
+
"data-layout": layout,
|
|
68
|
+
"data-testid": "multiBodiedExtension--wrapper"
|
|
69
|
+
}, children);
|
|
70
|
+
};
|
|
64
71
|
var MultiBodiedExtension = function MultiBodiedExtension(props) {
|
|
72
|
+
var _extensionContext$pri;
|
|
65
73
|
var children = props.children,
|
|
66
74
|
_props$layout = props.layout,
|
|
67
75
|
layout = _props$layout === void 0 ? 'default' : _props$layout,
|
|
68
76
|
_props$path = props.path,
|
|
69
|
-
path = _props$path === void 0 ? [] : _props$path
|
|
77
|
+
path = _props$path === void 0 ? [] : _props$path,
|
|
78
|
+
parameters = props.parameters,
|
|
79
|
+
extensionType = props.extensionType,
|
|
80
|
+
extensionKey = props.extensionKey,
|
|
81
|
+
content = props.content,
|
|
82
|
+
marks = props.marks,
|
|
83
|
+
localId = props.localId;
|
|
70
84
|
var _useState = (0, _react2.useState)(0),
|
|
71
85
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
72
86
|
activeChildIndex = _useState2[0],
|
|
73
87
|
setActiveChildIndex = _useState2[1];
|
|
74
|
-
var
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
var
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
// TODO: Make sure we log this somewhere if this happens
|
|
86
|
-
setActiveChildIndex(0);
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
setActiveChildIndex(index);
|
|
90
|
-
return true;
|
|
91
|
-
}, [setActiveChildIndex]);
|
|
92
|
-
var actions = useMultiBodiedExtensionActions({
|
|
93
|
-
updateActiveChild: updateActiveChild,
|
|
94
|
-
children: children
|
|
88
|
+
var _useMultiBodiedExtens = (0, _context.useMultiBodiedExtensionContext)({
|
|
89
|
+
extensionType: extensionType,
|
|
90
|
+
extensionKey: extensionKey
|
|
91
|
+
}),
|
|
92
|
+
loading = _useMultiBodiedExtens.loading,
|
|
93
|
+
extensionContext = _useMultiBodiedExtens.extensionContext;
|
|
94
|
+
var actions = (0, _actions.useMultiBodiedExtensionActions)({
|
|
95
|
+
updateActiveChild: setActiveChildIndex,
|
|
96
|
+
children: children,
|
|
97
|
+
childrenContainer: (0, _react.jsx)(MultiBodiedExtensionChildrenContainer, null, children),
|
|
98
|
+
allowBodiedOverride: extensionContext === null || extensionContext === void 0 || (_extensionContext$pri = extensionContext.privateProps) === null || _extensionContext$pri === void 0 ? void 0 : _extensionContext$pri.__allowBodiedOverride
|
|
95
99
|
});
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}), function (_ref2) {
|
|
121
|
-
var result = _ref2.result;
|
|
100
|
+
var renderContent = _react2.default.useCallback(function () {
|
|
101
|
+
var _marks$find;
|
|
102
|
+
if (loading || !extensionContext) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
var NodeRenderer = extensionContext.NodeRenderer,
|
|
106
|
+
privateProps = extensionContext.privateProps;
|
|
107
|
+
var fragmentLocalId = marks === null || marks === void 0 || (_marks$find = marks.find(function (m) {
|
|
108
|
+
return m.type.name === 'fragment';
|
|
109
|
+
})) === null || _marks$find === void 0 || (_marks$find = _marks$find.attrs) === null || _marks$find === void 0 ? void 0 : _marks$find.localId;
|
|
110
|
+
var node = {
|
|
111
|
+
type: 'multiBodiedExtension',
|
|
112
|
+
extensionKey: extensionKey,
|
|
113
|
+
extensionType: extensionType,
|
|
114
|
+
parameters: parameters,
|
|
115
|
+
content: content,
|
|
116
|
+
localId: localId,
|
|
117
|
+
fragmentLocalId: fragmentLocalId
|
|
118
|
+
};
|
|
119
|
+
var renderMultiBodiedExtension = function renderMultiBodiedExtension() {
|
|
120
|
+
var MultiBodiedExtensionNodeRenderer = (0, _react.jsx)(NodeRenderer, {
|
|
121
|
+
node: node,
|
|
122
|
+
actions: actions
|
|
123
|
+
});
|
|
122
124
|
try {
|
|
123
|
-
if (
|
|
125
|
+
if ( /*#__PURE__*/_react2.default.isValidElement(MultiBodiedExtensionNodeRenderer)) {
|
|
124
126
|
// Return the content directly if it's a valid JSX.Element
|
|
125
|
-
return (0, _extension.renderExtension)(
|
|
127
|
+
return (0, _extension.renderExtension)(MultiBodiedExtensionNodeRenderer, layout, {
|
|
126
128
|
isTopLevel: path.length < 1
|
|
127
129
|
});
|
|
128
130
|
}
|
|
@@ -135,25 +137,30 @@ var MultiBodiedExtension = function MultiBodiedExtension(props) {
|
|
|
135
137
|
return (0, _extension.renderExtension)(children, layout, {
|
|
136
138
|
isTopLevel: path.length < 1
|
|
137
139
|
});
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
}
|
|
140
|
+
};
|
|
141
|
+
if (privateProps.__allowBodiedOverride) {
|
|
142
|
+
return renderMultiBodiedExtension();
|
|
143
|
+
} else {
|
|
144
|
+
return (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)(MultiBodiedExtensionNavigation, null, renderMultiBodiedExtension()), (0, _react.jsx)(MultiBodiedExtensionChildrenContainer, null, children));
|
|
145
|
+
}
|
|
146
|
+
}, [loading, extensionContext, layout, path, marks, extensionKey, extensionType, parameters, content, localId, actions, children]);
|
|
147
|
+
|
|
148
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression
|
|
149
|
+
var containerActiveFrameStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n\t\t.multiBodiedExtension--frames\n\t\t\t> [data-extension-frame='true']:nth-of-type(", ") {\n\t\t\tdisplay: block;\n\t\t}\n\t"])), activeChildIndex + 1);
|
|
145
150
|
return (0, _react.jsx)("section", {
|
|
146
151
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
147
|
-
className: "multiBodiedExtension--container"
|
|
148
|
-
|
|
149
|
-
,
|
|
150
|
-
css: containerCssExtended,
|
|
152
|
+
className: "multiBodiedExtension--container",
|
|
153
|
+
css: [containerStyles, containerActiveFrameStyles],
|
|
151
154
|
"data-testid": "multiBodiedExtension--container",
|
|
152
155
|
"data-active-child-index": activeChildIndex,
|
|
153
156
|
"data-layout": layout
|
|
154
|
-
}, (0, _react.jsx)(_ui.WidthConsumer, null, function (
|
|
155
|
-
var width =
|
|
156
|
-
return
|
|
157
|
+
}, (0, _react.jsx)(_ui.WidthConsumer, null, function (_ref4) {
|
|
158
|
+
var width = _ref4.width;
|
|
159
|
+
return (0, _react.jsx)(MultiBodiedExtensionWrapper, {
|
|
160
|
+
layout: layout,
|
|
161
|
+
width: width,
|
|
162
|
+
path: path
|
|
163
|
+
}, renderContent());
|
|
157
164
|
}));
|
|
158
165
|
};
|
|
159
166
|
var _default = exports.default = MultiBodiedExtension;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
12
|
+
var _react = require("@emotion/react");
|
|
13
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
14
|
+
var _react2 = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _extension = require("./extension");
|
|
16
|
+
var _ExtensionRenderer = _interopRequireDefault(require("../../ui/ExtensionRenderer"));
|
|
17
|
+
var _ui = require("@atlaskit/editor-common/ui");
|
|
18
|
+
var _consts = require("../../consts");
|
|
19
|
+
var _utils = require("@atlaskit/editor-common/utils");
|
|
20
|
+
var _templateObject, _templateObject2;
|
|
21
|
+
/* eslint-disable @atlaskit/design-system/prefer-primitives, @atlaskit/design-system/consistent-css-prop-usage */
|
|
22
|
+
/**
|
|
23
|
+
* @jsxRuntime classic
|
|
24
|
+
* @jsx jsx
|
|
25
|
+
*/
|
|
26
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
27
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
28
|
+
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; }
|
|
29
|
+
var useMultiBodiedExtensionActions = function useMultiBodiedExtensionActions(_ref) {
|
|
30
|
+
var updateActiveChild = _ref.updateActiveChild,
|
|
31
|
+
children = _ref.children;
|
|
32
|
+
var actions = _react2.default.useMemo(function () {
|
|
33
|
+
return {
|
|
34
|
+
changeActive: function changeActive(index) {
|
|
35
|
+
return updateActiveChild(index);
|
|
36
|
+
},
|
|
37
|
+
addChild: function addChild() {
|
|
38
|
+
return false;
|
|
39
|
+
},
|
|
40
|
+
getChildrenCount: function getChildrenCount() {
|
|
41
|
+
return children ? children === null || children === void 0 ? void 0 : children.length : 0;
|
|
42
|
+
},
|
|
43
|
+
removeChild: function removeChild(index) {
|
|
44
|
+
return false;
|
|
45
|
+
},
|
|
46
|
+
updateParameters: function updateParameters(parameters) {
|
|
47
|
+
return false;
|
|
48
|
+
},
|
|
49
|
+
// Ignored via go/ees005
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
+
getChildren: function getChildren() {
|
|
52
|
+
return [];
|
|
53
|
+
},
|
|
54
|
+
getChildrenContainer: function getChildrenContainer() {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}, [updateActiveChild, children]);
|
|
59
|
+
return actions;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- Ignored via go/DSP-18766
|
|
63
|
+
var navigationCssExtended = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t", ";\n\tmargin-left: 0 !important;\n\tmargin-right: 0 !important;\n\t.mbe-add-tab-button,\n\t.mbe-remove-tab {\n\t\tdisplay: none;\n\t}\n"])), _ui.sharedMultiBodiedExtensionStyles.mbeNavigation);
|
|
64
|
+
var MultiBodiedExtension = function MultiBodiedExtension(props) {
|
|
65
|
+
var children = props.children,
|
|
66
|
+
_props$layout = props.layout,
|
|
67
|
+
layout = _props$layout === void 0 ? 'default' : _props$layout,
|
|
68
|
+
_props$path = props.path,
|
|
69
|
+
path = _props$path === void 0 ? [] : _props$path;
|
|
70
|
+
var _useState = (0, _react2.useState)(0),
|
|
71
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
72
|
+
activeChildIndex = _useState2[0],
|
|
73
|
+
setActiveChildIndex = _useState2[1];
|
|
74
|
+
var removeOverflow = _react2.default.Children.toArray(children)
|
|
75
|
+
// Ignored via go/ees005
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
77
|
+
.map(function (child) {
|
|
78
|
+
return /*#__PURE__*/_react2.default.isValidElement(child) ? child.props.nodeType === 'table' : false;
|
|
79
|
+
}).every(Boolean);
|
|
80
|
+
var overflowContainerClass = !removeOverflow ? _consts.RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER : '';
|
|
81
|
+
var updateActiveChild = _react2.default.useCallback(function (index) {
|
|
82
|
+
if (typeof index !== 'number') {
|
|
83
|
+
// Ignored via go/ees007
|
|
84
|
+
// eslint-disable-next-line @atlaskit/editor/enforce-todo-comment-format
|
|
85
|
+
// TODO: Make sure we log this somewhere if this happens
|
|
86
|
+
setActiveChildIndex(0);
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
setActiveChildIndex(index);
|
|
90
|
+
return true;
|
|
91
|
+
}, [setActiveChildIndex]);
|
|
92
|
+
var actions = useMultiBodiedExtensionActions({
|
|
93
|
+
updateActiveChild: updateActiveChild,
|
|
94
|
+
children: children
|
|
95
|
+
});
|
|
96
|
+
// eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
|
|
97
|
+
var containerCssExtended = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n\t\t", ";\n\t\t.ak-renderer-extension {\n\t\t\tmargin-top: 0 !important;\n\t\t}\n\n\t\t[data-layout='full-width'],\n\t\t[data-layout='wide'] {\n\t\t\t.multiBodiedExtension-navigation {\n\t\t\t\tborder-right: 3px solid ", " !important;\n\t\t\t}\n\t\t}\n\n\t\t.multiBodiedExtension--frames\n\t\t\t> [data-extension-frame='true']:nth-of-type(", ") {\n\t\t\t", "\n\t\t\tmargin-left: 0;\n\t\t\tmargin-right: 0;\n\t\t}\n\t"])), _ui.sharedMultiBodiedExtensionStyles.mbeExtensionContainer, "var(--ds-border, ".concat(_colors.N40, ")"), activeChildIndex + 1, _ui.sharedMultiBodiedExtensionStyles.extensionFrameContent);
|
|
98
|
+
var isTopLevel = path.length < 1;
|
|
99
|
+
var centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? _consts.RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
|
|
100
|
+
function renderMbeContent(width) {
|
|
101
|
+
return (0, _react.jsx)("div", {
|
|
102
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
103
|
+
className: "".concat(_consts.RendererCssClassName.EXTENSION, " ").concat(centerAlignClass, " ").concat(overflowContainerClass),
|
|
104
|
+
style: {
|
|
105
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
106
|
+
width: isTopLevel ? (0, _utils.calcBreakoutWidth)(layout, width) : '100%'
|
|
107
|
+
},
|
|
108
|
+
"data-layout": layout
|
|
109
|
+
}, (0, _react.jsx)("nav", {
|
|
110
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
111
|
+
className: "multiBodiedExtension-navigation",
|
|
112
|
+
css: navigationCssExtended,
|
|
113
|
+
"data-testid": "multiBodiedExtension-navigation"
|
|
114
|
+
}, (0, _react.jsx)(_ExtensionRenderer.default
|
|
115
|
+
// Ignored via go/ees005
|
|
116
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
117
|
+
, (0, _extends2.default)({}, props, {
|
|
118
|
+
actions: actions,
|
|
119
|
+
type: "multiBodiedExtension"
|
|
120
|
+
}), function (_ref2) {
|
|
121
|
+
var result = _ref2.result;
|
|
122
|
+
try {
|
|
123
|
+
if (result && /*#__PURE__*/_react2.default.isValidElement(result)) {
|
|
124
|
+
// Return the content directly if it's a valid JSX.Element
|
|
125
|
+
return (0, _extension.renderExtension)(result, layout, {
|
|
126
|
+
isTopLevel: path.length < 1
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
} catch (e) {
|
|
130
|
+
/** We don't want this error to block renderer */
|
|
131
|
+
/** We keep rendering the default content */
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Always return default content if anything goes wrong
|
|
135
|
+
return (0, _extension.renderExtension)(children, layout, {
|
|
136
|
+
isTopLevel: path.length < 1
|
|
137
|
+
});
|
|
138
|
+
})), (0, _react.jsx)("article", {
|
|
139
|
+
"data-testid": "multiBodiedExtension--frames"
|
|
140
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
141
|
+
,
|
|
142
|
+
className: "multiBodiedExtension--frames"
|
|
143
|
+
}, children));
|
|
144
|
+
}
|
|
145
|
+
return (0, _react.jsx)("section", {
|
|
146
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
|
|
147
|
+
className: "multiBodiedExtension--container",
|
|
148
|
+
css: containerCssExtended,
|
|
149
|
+
"data-testid": "multiBodiedExtension--container",
|
|
150
|
+
"data-active-child-index": activeChildIndex,
|
|
151
|
+
"data-layout": layout
|
|
152
|
+
}, (0, _react.jsx)(_ui.WidthConsumer, null, function (_ref3) {
|
|
153
|
+
var width = _ref3.width;
|
|
154
|
+
return renderMbeContent(width);
|
|
155
|
+
}));
|
|
156
|
+
};
|
|
157
|
+
var _default = exports.default = MultiBodiedExtension;
|