@atlaskit/renderer 113.1.2 → 113.2.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 +16 -0
- package/dist/cjs/react/index.js +12 -0
- package/dist/cjs/react/nodes/TableStickyScrollbar.js +3 -4
- package/dist/cjs/react/nodes/bodiedExtension.js +5 -3
- package/dist/cjs/react/nodes/extension.js +31 -5
- package/dist/cjs/ui/Renderer/index.js +3 -1
- package/dist/es2019/react/index.js +10 -0
- package/dist/es2019/react/nodes/TableStickyScrollbar.js +3 -4
- package/dist/es2019/react/nodes/bodiedExtension.js +5 -3
- package/dist/es2019/react/nodes/extension.js +28 -6
- package/dist/es2019/ui/Renderer/index.js +3 -1
- package/dist/esm/react/index.js +12 -0
- package/dist/esm/react/nodes/TableStickyScrollbar.js +3 -4
- package/dist/esm/react/nodes/bodiedExtension.js +5 -3
- package/dist/esm/react/nodes/extension.js +31 -5
- package/dist/esm/ui/Renderer/index.js +3 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/react/index.d.ts +4 -1
- package/dist/types/react/nodes/bodiedExtension.d.ts +2 -1
- package/dist/types/react/nodes/extension.d.ts +4 -3
- package/dist/types/react/types.d.ts +4 -0
- package/dist/types/ui/renderer-props.d.ts +2 -1
- package/dist/types-ts4.5/index.d.ts +1 -1
- package/dist/types-ts4.5/react/index.d.ts +4 -1
- package/dist/types-ts4.5/react/nodes/bodiedExtension.d.ts +2 -1
- package/dist/types-ts4.5/react/nodes/extension.d.ts +4 -3
- package/dist/types-ts4.5/react/types.d.ts +4 -0
- package/dist/types-ts4.5/ui/renderer-props.d.ts +2 -1
- package/package.json +4 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/renderer
|
|
2
2
|
|
|
3
|
+
## 113.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#112653](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/112653)
|
|
8
|
+
[`73371f1e55712`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/73371f1e55712) -
|
|
9
|
+
Accepts extension viewport size list as a prop from confluence FE in order to render this size on
|
|
10
|
+
SSR.
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [#122260](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/122260)
|
|
15
|
+
[`10eabde04f773`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/10eabde04f773) -
|
|
16
|
+
FD-80149: cleans up platform_editor_react18_phase2_v2 from with_editor_actions
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 113.1.2
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/dist/cjs/react/index.js
CHANGED
|
@@ -197,6 +197,7 @@ var ReactSerializer = exports.default = /*#__PURE__*/function () {
|
|
|
197
197
|
this.media = init.media;
|
|
198
198
|
this.emojiResourceConfig = init.emojiResourceConfig;
|
|
199
199
|
this.smartLinks = init.smartLinks;
|
|
200
|
+
this.extensionViewportSizes = init.extensionViewportSizes;
|
|
200
201
|
this.allowSelectAllTrap = init.allowSelectAllTrap;
|
|
201
202
|
this.nodeComponents = init.nodeComponents;
|
|
202
203
|
this.allowWindowedCodeBlock = init.allowWindowedCodeBlock;
|
|
@@ -227,6 +228,9 @@ var ReactSerializer = exports.default = /*#__PURE__*/function () {
|
|
|
227
228
|
return this.getMediaProps(node, path);
|
|
228
229
|
case 'emoji':
|
|
229
230
|
return this.getEmojiProps(node);
|
|
231
|
+
case 'extension':
|
|
232
|
+
case 'bodiedExtension':
|
|
233
|
+
return this.getExtensionProps(node, path);
|
|
230
234
|
case 'mediaGroup':
|
|
231
235
|
return this.getMediaGroupProps(node);
|
|
232
236
|
case 'mediaInline':
|
|
@@ -488,6 +492,14 @@ var ReactSerializer = exports.default = /*#__PURE__*/function () {
|
|
|
488
492
|
allowAnnotationsDraftMode: this.surroundTextNodesWithTextWrapper
|
|
489
493
|
});
|
|
490
494
|
}
|
|
495
|
+
}, {
|
|
496
|
+
key: "getExtensionProps",
|
|
497
|
+
value: function getExtensionProps(node) {
|
|
498
|
+
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
499
|
+
return _objectSpread(_objectSpread({}, this.getProps(node, path)), {}, {
|
|
500
|
+
extensionViewportSizes: this.extensionViewportSizes
|
|
501
|
+
});
|
|
502
|
+
}
|
|
491
503
|
}, {
|
|
492
504
|
key: "getEmojiProps",
|
|
493
505
|
value: function getEmojiProps(node) {
|
|
@@ -91,10 +91,9 @@ var TableStickyScrollbar = exports.TableStickyScrollbar = /*#__PURE__*/function
|
|
|
91
91
|
root: this.rendererScrollableElement
|
|
92
92
|
});
|
|
93
93
|
var bottomSentinels = (_this$wrapper = this.wrapper) === null || _this$wrapper === void 0 || (_this$wrapper = _this$wrapper.parentElement) === null || _this$wrapper === void 0 ? void 0 : _this$wrapper.getElementsByClassName(_styles.TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM);
|
|
94
|
-
this.sentinels.bottom = (0, _platformFeatureFlags.fg)('platform_editor_querySelector_fix_table_renderer')
|
|
95
|
-
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
96
|
-
|
|
97
|
-
: (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.parentElement) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.getElementsByClassName(_styles.TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.item(0);
|
|
94
|
+
this.sentinels.bottom = (0, _platformFeatureFlags.fg)('platform_editor_querySelector_fix_table_renderer') ? // eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
95
|
+
bottomSentinels === null || bottomSentinels === void 0 ? void 0 : bottomSentinels.item(bottomSentinels.length - 1) : // eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
96
|
+
(_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.parentElement) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.getElementsByClassName(_styles.TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.item(0);
|
|
98
97
|
|
|
99
98
|
// Ignored via go/ees005
|
|
100
99
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
@@ -21,7 +21,9 @@ var BodiedExtension = function BodiedExtension(props) {
|
|
|
21
21
|
_props$path = props.path,
|
|
22
22
|
path = _props$path === void 0 ? [] : _props$path,
|
|
23
23
|
extensionKey = props.extensionKey,
|
|
24
|
-
extensionType = props.extensionType
|
|
24
|
+
extensionType = props.extensionType,
|
|
25
|
+
parameters = props.parameters,
|
|
26
|
+
extensionViewportSizes = props.extensionViewportSizes;
|
|
25
27
|
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
26
28
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
27
29
|
var removeOverflow = _react.default.Children.toArray(children)
|
|
@@ -51,7 +53,7 @@ var BodiedExtension = function BodiedExtension(props) {
|
|
|
51
53
|
// Return the content directly if it's a valid JSX.Element
|
|
52
54
|
return (0, _extension.renderExtension)(result, layout, {
|
|
53
55
|
isTopLevel: path.length < 1
|
|
54
|
-
}, removeOverflow);
|
|
56
|
+
}, removeOverflow, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
55
57
|
}
|
|
56
58
|
} catch (e) {
|
|
57
59
|
/** We don't want this error to block renderer */
|
|
@@ -61,7 +63,7 @@ var BodiedExtension = function BodiedExtension(props) {
|
|
|
61
63
|
// Always return default content if anything goes wrong
|
|
62
64
|
return (0, _extension.renderExtension)(children, layout, {
|
|
63
65
|
isTopLevel: path.length < 1
|
|
64
|
-
}, removeOverflow);
|
|
66
|
+
}, removeOverflow, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
65
67
|
})));
|
|
66
68
|
};
|
|
67
69
|
var _default = exports.default = BodiedExtension;
|
|
@@ -11,9 +11,32 @@ var _ExtensionRenderer = _interopRequireDefault(require("../../ui/ExtensionRende
|
|
|
11
11
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
12
12
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
13
13
|
var _consts = require("../../consts");
|
|
14
|
+
var viewportSizes = ['small', 'medium', 'default', 'large', 'xlarge'];
|
|
15
|
+
// Mirrors sizes from https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/forge/xen-editor-provider/src/render/renderers/ForgeUIExtension.tsx
|
|
16
|
+
var macroHeights = {
|
|
17
|
+
small: '112px',
|
|
18
|
+
medium: '262px',
|
|
19
|
+
default: '262px',
|
|
20
|
+
large: '524px',
|
|
21
|
+
xlarge: '1048px'
|
|
22
|
+
};
|
|
23
|
+
var getViewportSize = function getViewportSize(extensionId, extensionViewportSizes) {
|
|
24
|
+
if (!Array.isArray(extensionViewportSizes) || !extensionId) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
var extension = extensionViewportSizes.find(function (extension) {
|
|
28
|
+
return extension.extensionId === extensionId;
|
|
29
|
+
});
|
|
30
|
+
if (extension) {
|
|
31
|
+
var viewportSize = extension.viewportSize && viewportSizes.includes(extension.viewportSize) ? extension.viewportSize : 'default';
|
|
32
|
+
return macroHeights[viewportSize];
|
|
33
|
+
}
|
|
34
|
+
};
|
|
14
35
|
var renderExtension = exports.renderExtension = function renderExtension(content, layout) {
|
|
15
36
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
16
37
|
var removeOverflow = arguments.length > 3 ? arguments[3] : undefined;
|
|
38
|
+
var extensionId = arguments.length > 4 ? arguments[4] : undefined;
|
|
39
|
+
var extensionViewportSizes = arguments.length > 5 ? arguments[5] : undefined;
|
|
17
40
|
var overflowContainerClass = !removeOverflow ? _consts.RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER : '';
|
|
18
41
|
|
|
19
42
|
// by default, we assume the extension is at top level, (direct child of doc node)
|
|
@@ -21,6 +44,7 @@ var renderExtension = exports.renderExtension = function renderExtension(content
|
|
|
21
44
|
_ref$isTopLevel = _ref.isTopLevel,
|
|
22
45
|
isTopLevel = _ref$isTopLevel === void 0 ? true : _ref$isTopLevel;
|
|
23
46
|
var centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? _consts.RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
|
|
47
|
+
var viewportSize = getViewportSize(extensionId, extensionViewportSizes);
|
|
24
48
|
return /*#__PURE__*/_react.default.createElement(_ui.WidthConsumer, null, function (_ref2) {
|
|
25
49
|
var width = _ref2.width;
|
|
26
50
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -30,7 +54,8 @@ var renderExtension = exports.renderExtension = function renderExtension(content
|
|
|
30
54
|
className: "".concat(_consts.RendererCssClassName.EXTENSION, " ").concat(options.shadowClassNames, " ").concat(centerAlignClass),
|
|
31
55
|
style: {
|
|
32
56
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
33
|
-
width: isTopLevel ? (0, _utils.calcBreakoutWidth)(layout, width) : '100%'
|
|
57
|
+
width: isTopLevel ? (0, _utils.calcBreakoutWidth)(layout, width) : '100%',
|
|
58
|
+
minHeight: viewportSize
|
|
34
59
|
},
|
|
35
60
|
"data-layout": layout
|
|
36
61
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -45,7 +70,9 @@ var Extension = function Extension(props) {
|
|
|
45
70
|
handleRef = props.handleRef,
|
|
46
71
|
shadowClassNames = props.shadowClassNames,
|
|
47
72
|
_props$path = props.path,
|
|
48
|
-
path = _props$path === void 0 ? [] : _props$path
|
|
73
|
+
path = _props$path === void 0 ? [] : _props$path,
|
|
74
|
+
extensionViewportSizes = props.extensionViewportSizes,
|
|
75
|
+
parameters = props.parameters;
|
|
49
76
|
return /*#__PURE__*/_react.default.createElement(_ExtensionRenderer.default
|
|
50
77
|
// Ignored via go/ees005
|
|
51
78
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
@@ -60,19 +87,18 @@ var Extension = function Extension(props) {
|
|
|
60
87
|
isTopLevel: path.length < 1,
|
|
61
88
|
handleRef: handleRef,
|
|
62
89
|
shadowClassNames: shadowClassNames
|
|
63
|
-
});
|
|
90
|
+
}, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
64
91
|
}
|
|
65
92
|
} catch (e) {
|
|
66
93
|
/** We don't want this error to block renderer */
|
|
67
94
|
/** We keep rendering the default content */
|
|
68
95
|
}
|
|
69
|
-
|
|
70
96
|
// Always return default content if anything goes wrong
|
|
71
97
|
return renderExtension(text || 'extension', layout, {
|
|
72
98
|
isTopLevel: path.length < 1,
|
|
73
99
|
handleRef: handleRef,
|
|
74
100
|
shadowClassNames: shadowClassNames
|
|
75
|
-
});
|
|
101
|
+
}, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
76
102
|
});
|
|
77
103
|
};
|
|
78
104
|
var _default = exports.default = (0, _ui.overflowShadow)(Extension, {
|
|
@@ -65,7 +65,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
65
65
|
var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
66
66
|
var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
67
67
|
var packageName = "@atlaskit/renderer";
|
|
68
|
-
var packageVersion = "113.
|
|
68
|
+
var packageVersion = "113.2.0";
|
|
69
69
|
var setAsQueryContainerStyles = (0, _react2.css)({
|
|
70
70
|
containerName: 'ak-renderer-wrapper',
|
|
71
71
|
containerType: 'inline-size',
|
|
@@ -293,6 +293,7 @@ var __RendererClassComponent = exports.__RendererClassComponent = /*#__PURE__*/f
|
|
|
293
293
|
media: props.media,
|
|
294
294
|
emojiResourceConfig: props.emojiResourceConfig,
|
|
295
295
|
smartLinks: props.smartLinks,
|
|
296
|
+
extensionViewportSizes: props.extensionViewportSizes,
|
|
296
297
|
allowCopyToClipboard: props.allowCopyToClipboard,
|
|
297
298
|
allowWrapCodeBlock: props.allowWrapCodeBlock,
|
|
298
299
|
allowCustomPanels: props.allowCustomPanels,
|
|
@@ -628,6 +629,7 @@ var RendererFunctionalComponent = function RendererFunctionalComponent(props) {
|
|
|
628
629
|
media: props.media,
|
|
629
630
|
emojiResourceConfig: props.emojiResourceConfig,
|
|
630
631
|
smartLinks: props.smartLinks,
|
|
632
|
+
extensionViewportSizes: props.extensionViewportSizes,
|
|
631
633
|
allowCopyToClipboard: props.allowCopyToClipboard,
|
|
632
634
|
allowWrapCodeBlock: props.allowWrapCodeBlock,
|
|
633
635
|
allowCustomPanels: props.allowCustomPanels,
|
|
@@ -183,6 +183,7 @@ export default class ReactSerializer {
|
|
|
183
183
|
this.media = init.media;
|
|
184
184
|
this.emojiResourceConfig = init.emojiResourceConfig;
|
|
185
185
|
this.smartLinks = init.smartLinks;
|
|
186
|
+
this.extensionViewportSizes = init.extensionViewportSizes;
|
|
186
187
|
this.allowSelectAllTrap = init.allowSelectAllTrap;
|
|
187
188
|
this.nodeComponents = init.nodeComponents;
|
|
188
189
|
this.allowWindowedCodeBlock = init.allowWindowedCodeBlock;
|
|
@@ -209,6 +210,9 @@ export default class ReactSerializer {
|
|
|
209
210
|
return this.getMediaProps(node, path);
|
|
210
211
|
case 'emoji':
|
|
211
212
|
return this.getEmojiProps(node);
|
|
213
|
+
case 'extension':
|
|
214
|
+
case 'bodiedExtension':
|
|
215
|
+
return this.getExtensionProps(node, path);
|
|
212
216
|
case 'mediaGroup':
|
|
213
217
|
return this.getMediaGroupProps(node);
|
|
214
218
|
case 'mediaInline':
|
|
@@ -442,6 +446,12 @@ export default class ReactSerializer {
|
|
|
442
446
|
allowAnnotationsDraftMode: this.surroundTextNodesWithTextWrapper
|
|
443
447
|
};
|
|
444
448
|
}
|
|
449
|
+
getExtensionProps(node, path = []) {
|
|
450
|
+
return {
|
|
451
|
+
...this.getProps(node, path),
|
|
452
|
+
extensionViewportSizes: this.extensionViewportSizes
|
|
453
|
+
};
|
|
454
|
+
}
|
|
445
455
|
getEmojiProps(node) {
|
|
446
456
|
return {
|
|
447
457
|
...this.getProps(node),
|
|
@@ -69,10 +69,9 @@ export class TableStickyScrollbar {
|
|
|
69
69
|
root: this.rendererScrollableElement
|
|
70
70
|
});
|
|
71
71
|
const bottomSentinels = (_this$wrapper = this.wrapper) === null || _this$wrapper === void 0 ? void 0 : (_this$wrapper$parentE3 = _this$wrapper.parentElement) === null || _this$wrapper$parentE3 === void 0 ? void 0 : _this$wrapper$parentE3.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM);
|
|
72
|
-
this.sentinels.bottom = fg('platform_editor_querySelector_fix_table_renderer')
|
|
73
|
-
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
74
|
-
?
|
|
75
|
-
: (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 ? void 0 : (_this$wrapper2$parent = _this$wrapper2.parentElement) === null || _this$wrapper2$parent === void 0 ? void 0 : (_this$wrapper2$parent2 = _this$wrapper2$parent.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2$parent2 === void 0 ? void 0 : _this$wrapper2$parent2.item(0);
|
|
72
|
+
this.sentinels.bottom = fg('platform_editor_querySelector_fix_table_renderer') ? // eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
73
|
+
bottomSentinels === null || bottomSentinels === void 0 ? void 0 : bottomSentinels.item(bottomSentinels.length - 1) : // eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
74
|
+
(_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 ? void 0 : (_this$wrapper2$parent = _this$wrapper2.parentElement) === null || _this$wrapper2$parent === void 0 ? void 0 : (_this$wrapper2$parent2 = _this$wrapper2$parent.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2$parent2 === void 0 ? void 0 : _this$wrapper2$parent2.item(0);
|
|
76
75
|
|
|
77
76
|
// Ignored via go/ees005
|
|
78
77
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
@@ -13,7 +13,9 @@ const BodiedExtension = props => {
|
|
|
13
13
|
layout = 'default',
|
|
14
14
|
path = [],
|
|
15
15
|
extensionKey,
|
|
16
|
-
extensionType
|
|
16
|
+
extensionType,
|
|
17
|
+
parameters,
|
|
18
|
+
extensionViewportSizes
|
|
17
19
|
} = props;
|
|
18
20
|
const {
|
|
19
21
|
createAnalyticsEvent
|
|
@@ -44,7 +46,7 @@ const BodiedExtension = props => {
|
|
|
44
46
|
// Return the content directly if it's a valid JSX.Element
|
|
45
47
|
return renderExtension(result, layout, {
|
|
46
48
|
isTopLevel: path.length < 1
|
|
47
|
-
}, removeOverflow);
|
|
49
|
+
}, removeOverflow, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
48
50
|
}
|
|
49
51
|
} catch (e) {
|
|
50
52
|
/** We don't want this error to block renderer */
|
|
@@ -54,7 +56,7 @@ const BodiedExtension = props => {
|
|
|
54
56
|
// Always return default content if anything goes wrong
|
|
55
57
|
return renderExtension(children, layout, {
|
|
56
58
|
isTopLevel: path.length < 1
|
|
57
|
-
}, removeOverflow);
|
|
59
|
+
}, removeOverflow, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
58
60
|
})));
|
|
59
61
|
};
|
|
60
62
|
export default BodiedExtension;
|
|
@@ -4,7 +4,26 @@ import ExtensionRenderer from '../../ui/ExtensionRenderer';
|
|
|
4
4
|
import { overflowShadow, WidthConsumer } from '@atlaskit/editor-common/ui';
|
|
5
5
|
import { calcBreakoutWidth } from '@atlaskit/editor-common/utils';
|
|
6
6
|
import { RendererCssClassName } from '../../consts';
|
|
7
|
-
|
|
7
|
+
const viewportSizes = ['small', 'medium', 'default', 'large', 'xlarge'];
|
|
8
|
+
// Mirrors sizes from https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/forge/xen-editor-provider/src/render/renderers/ForgeUIExtension.tsx
|
|
9
|
+
const macroHeights = {
|
|
10
|
+
small: '112px',
|
|
11
|
+
medium: '262px',
|
|
12
|
+
default: '262px',
|
|
13
|
+
large: '524px',
|
|
14
|
+
xlarge: '1048px'
|
|
15
|
+
};
|
|
16
|
+
const getViewportSize = (extensionId, extensionViewportSizes) => {
|
|
17
|
+
if (!Array.isArray(extensionViewportSizes) || !extensionId) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const extension = extensionViewportSizes.find(extension => extension.extensionId === extensionId);
|
|
21
|
+
if (extension) {
|
|
22
|
+
const viewportSize = extension.viewportSize && viewportSizes.includes(extension.viewportSize) ? extension.viewportSize : 'default';
|
|
23
|
+
return macroHeights[viewportSize];
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export const renderExtension = (content, layout, options = {}, removeOverflow, extensionId, extensionViewportSizes) => {
|
|
8
27
|
const overflowContainerClass = !removeOverflow ? RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER : '';
|
|
9
28
|
|
|
10
29
|
// by default, we assume the extension is at top level, (direct child of doc node)
|
|
@@ -12,6 +31,7 @@ export const renderExtension = (content, layout, options = {}, removeOverflow) =
|
|
|
12
31
|
isTopLevel = true
|
|
13
32
|
} = options || {};
|
|
14
33
|
const centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
|
|
34
|
+
const viewportSize = getViewportSize(extensionId, extensionViewportSizes);
|
|
15
35
|
return /*#__PURE__*/React.createElement(WidthConsumer, null, ({
|
|
16
36
|
width
|
|
17
37
|
}) => /*#__PURE__*/React.createElement("div", {
|
|
@@ -21,7 +41,8 @@ export const renderExtension = (content, layout, options = {}, removeOverflow) =
|
|
|
21
41
|
className: `${RendererCssClassName.EXTENSION} ${options.shadowClassNames} ${centerAlignClass}`,
|
|
22
42
|
style: {
|
|
23
43
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
24
|
-
width: isTopLevel ? calcBreakoutWidth(layout, width) : '100%'
|
|
44
|
+
width: isTopLevel ? calcBreakoutWidth(layout, width) : '100%',
|
|
45
|
+
minHeight: viewportSize
|
|
25
46
|
},
|
|
26
47
|
"data-layout": layout
|
|
27
48
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -34,7 +55,9 @@ const Extension = props => {
|
|
|
34
55
|
layout = 'default',
|
|
35
56
|
handleRef,
|
|
36
57
|
shadowClassNames,
|
|
37
|
-
path = []
|
|
58
|
+
path = [],
|
|
59
|
+
extensionViewportSizes,
|
|
60
|
+
parameters
|
|
38
61
|
} = props;
|
|
39
62
|
return /*#__PURE__*/React.createElement(ExtensionRenderer
|
|
40
63
|
// Ignored via go/ees005
|
|
@@ -51,19 +74,18 @@ const Extension = props => {
|
|
|
51
74
|
isTopLevel: path.length < 1,
|
|
52
75
|
handleRef,
|
|
53
76
|
shadowClassNames
|
|
54
|
-
});
|
|
77
|
+
}, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
55
78
|
}
|
|
56
79
|
} catch (e) {
|
|
57
80
|
/** We don't want this error to block renderer */
|
|
58
81
|
/** We keep rendering the default content */
|
|
59
82
|
}
|
|
60
|
-
|
|
61
83
|
// Always return default content if anything goes wrong
|
|
62
84
|
return renderExtension(text || 'extension', layout, {
|
|
63
85
|
isTopLevel: path.length < 1,
|
|
64
86
|
handleRef,
|
|
65
87
|
shadowClassNames
|
|
66
|
-
});
|
|
88
|
+
}, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
67
89
|
});
|
|
68
90
|
};
|
|
69
91
|
export default overflowShadow(Extension, {
|
|
@@ -46,7 +46,7 @@ import { ValidationContext } from './ValidationContext';
|
|
|
46
46
|
export const NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
47
47
|
export const DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
48
48
|
const packageName = "@atlaskit/renderer";
|
|
49
|
-
const packageVersion = "113.
|
|
49
|
+
const packageVersion = "113.2.0";
|
|
50
50
|
const setAsQueryContainerStyles = css({
|
|
51
51
|
containerName: 'ak-renderer-wrapper',
|
|
52
52
|
containerType: 'inline-size',
|
|
@@ -273,6 +273,7 @@ export class __RendererClassComponent extends PureComponent {
|
|
|
273
273
|
media: props.media,
|
|
274
274
|
emojiResourceConfig: props.emojiResourceConfig,
|
|
275
275
|
smartLinks: props.smartLinks,
|
|
276
|
+
extensionViewportSizes: props.extensionViewportSizes,
|
|
276
277
|
allowCopyToClipboard: props.allowCopyToClipboard,
|
|
277
278
|
allowWrapCodeBlock: props.allowWrapCodeBlock,
|
|
278
279
|
allowCustomPanels: props.allowCustomPanels,
|
|
@@ -608,6 +609,7 @@ const RendererFunctionalComponent = props => {
|
|
|
608
609
|
media: props.media,
|
|
609
610
|
emojiResourceConfig: props.emojiResourceConfig,
|
|
610
611
|
smartLinks: props.smartLinks,
|
|
612
|
+
extensionViewportSizes: props.extensionViewportSizes,
|
|
611
613
|
allowCopyToClipboard: props.allowCopyToClipboard,
|
|
612
614
|
allowWrapCodeBlock: props.allowWrapCodeBlock,
|
|
613
615
|
allowCustomPanels: props.allowCustomPanels,
|
package/dist/esm/react/index.js
CHANGED
|
@@ -190,6 +190,7 @@ var ReactSerializer = /*#__PURE__*/function () {
|
|
|
190
190
|
this.media = init.media;
|
|
191
191
|
this.emojiResourceConfig = init.emojiResourceConfig;
|
|
192
192
|
this.smartLinks = init.smartLinks;
|
|
193
|
+
this.extensionViewportSizes = init.extensionViewportSizes;
|
|
193
194
|
this.allowSelectAllTrap = init.allowSelectAllTrap;
|
|
194
195
|
this.nodeComponents = init.nodeComponents;
|
|
195
196
|
this.allowWindowedCodeBlock = init.allowWindowedCodeBlock;
|
|
@@ -220,6 +221,9 @@ var ReactSerializer = /*#__PURE__*/function () {
|
|
|
220
221
|
return this.getMediaProps(node, path);
|
|
221
222
|
case 'emoji':
|
|
222
223
|
return this.getEmojiProps(node);
|
|
224
|
+
case 'extension':
|
|
225
|
+
case 'bodiedExtension':
|
|
226
|
+
return this.getExtensionProps(node, path);
|
|
223
227
|
case 'mediaGroup':
|
|
224
228
|
return this.getMediaGroupProps(node);
|
|
225
229
|
case 'mediaInline':
|
|
@@ -481,6 +485,14 @@ var ReactSerializer = /*#__PURE__*/function () {
|
|
|
481
485
|
allowAnnotationsDraftMode: this.surroundTextNodesWithTextWrapper
|
|
482
486
|
});
|
|
483
487
|
}
|
|
488
|
+
}, {
|
|
489
|
+
key: "getExtensionProps",
|
|
490
|
+
value: function getExtensionProps(node) {
|
|
491
|
+
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
492
|
+
return _objectSpread(_objectSpread({}, this.getProps(node, path)), {}, {
|
|
493
|
+
extensionViewportSizes: this.extensionViewportSizes
|
|
494
|
+
});
|
|
495
|
+
}
|
|
484
496
|
}, {
|
|
485
497
|
key: "getEmojiProps",
|
|
486
498
|
value: function getEmojiProps(node) {
|
|
@@ -84,10 +84,9 @@ export var TableStickyScrollbar = /*#__PURE__*/function () {
|
|
|
84
84
|
root: this.rendererScrollableElement
|
|
85
85
|
});
|
|
86
86
|
var bottomSentinels = (_this$wrapper = this.wrapper) === null || _this$wrapper === void 0 || (_this$wrapper = _this$wrapper.parentElement) === null || _this$wrapper === void 0 ? void 0 : _this$wrapper.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM);
|
|
87
|
-
this.sentinels.bottom = fg('platform_editor_querySelector_fix_table_renderer')
|
|
88
|
-
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
89
|
-
|
|
90
|
-
: (_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.parentElement) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.item(0);
|
|
87
|
+
this.sentinels.bottom = fg('platform_editor_querySelector_fix_table_renderer') ? // eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
88
|
+
bottomSentinels === null || bottomSentinels === void 0 ? void 0 : bottomSentinels.item(bottomSentinels.length - 1) : // eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
89
|
+
(_this$wrapper2 = this.wrapper) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.parentElement) === null || _this$wrapper2 === void 0 || (_this$wrapper2 = _this$wrapper2.getElementsByClassName(TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM)) === null || _this$wrapper2 === void 0 ? void 0 : _this$wrapper2.item(0);
|
|
91
90
|
|
|
92
91
|
// Ignored via go/ees005
|
|
93
92
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
@@ -14,7 +14,9 @@ var BodiedExtension = function BodiedExtension(props) {
|
|
|
14
14
|
_props$path = props.path,
|
|
15
15
|
path = _props$path === void 0 ? [] : _props$path,
|
|
16
16
|
extensionKey = props.extensionKey,
|
|
17
|
-
extensionType = props.extensionType
|
|
17
|
+
extensionType = props.extensionType,
|
|
18
|
+
parameters = props.parameters,
|
|
19
|
+
extensionViewportSizes = props.extensionViewportSizes;
|
|
18
20
|
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
19
21
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
20
22
|
var removeOverflow = React.Children.toArray(children)
|
|
@@ -44,7 +46,7 @@ var BodiedExtension = function BodiedExtension(props) {
|
|
|
44
46
|
// Return the content directly if it's a valid JSX.Element
|
|
45
47
|
return renderExtension(result, layout, {
|
|
46
48
|
isTopLevel: path.length < 1
|
|
47
|
-
}, removeOverflow);
|
|
49
|
+
}, removeOverflow, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
48
50
|
}
|
|
49
51
|
} catch (e) {
|
|
50
52
|
/** We don't want this error to block renderer */
|
|
@@ -54,7 +56,7 @@ var BodiedExtension = function BodiedExtension(props) {
|
|
|
54
56
|
// Always return default content if anything goes wrong
|
|
55
57
|
return renderExtension(children, layout, {
|
|
56
58
|
isTopLevel: path.length < 1
|
|
57
|
-
}, removeOverflow);
|
|
59
|
+
}, removeOverflow, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
58
60
|
})));
|
|
59
61
|
};
|
|
60
62
|
export default BodiedExtension;
|
|
@@ -4,9 +4,32 @@ import ExtensionRenderer from '../../ui/ExtensionRenderer';
|
|
|
4
4
|
import { overflowShadow, WidthConsumer } from '@atlaskit/editor-common/ui';
|
|
5
5
|
import { calcBreakoutWidth } from '@atlaskit/editor-common/utils';
|
|
6
6
|
import { RendererCssClassName } from '../../consts';
|
|
7
|
+
var viewportSizes = ['small', 'medium', 'default', 'large', 'xlarge'];
|
|
8
|
+
// Mirrors sizes from https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/forge/xen-editor-provider/src/render/renderers/ForgeUIExtension.tsx
|
|
9
|
+
var macroHeights = {
|
|
10
|
+
small: '112px',
|
|
11
|
+
medium: '262px',
|
|
12
|
+
default: '262px',
|
|
13
|
+
large: '524px',
|
|
14
|
+
xlarge: '1048px'
|
|
15
|
+
};
|
|
16
|
+
var getViewportSize = function getViewportSize(extensionId, extensionViewportSizes) {
|
|
17
|
+
if (!Array.isArray(extensionViewportSizes) || !extensionId) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
var extension = extensionViewportSizes.find(function (extension) {
|
|
21
|
+
return extension.extensionId === extensionId;
|
|
22
|
+
});
|
|
23
|
+
if (extension) {
|
|
24
|
+
var viewportSize = extension.viewportSize && viewportSizes.includes(extension.viewportSize) ? extension.viewportSize : 'default';
|
|
25
|
+
return macroHeights[viewportSize];
|
|
26
|
+
}
|
|
27
|
+
};
|
|
7
28
|
export var renderExtension = function renderExtension(content, layout) {
|
|
8
29
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
9
30
|
var removeOverflow = arguments.length > 3 ? arguments[3] : undefined;
|
|
31
|
+
var extensionId = arguments.length > 4 ? arguments[4] : undefined;
|
|
32
|
+
var extensionViewportSizes = arguments.length > 5 ? arguments[5] : undefined;
|
|
10
33
|
var overflowContainerClass = !removeOverflow ? RendererCssClassName.EXTENSION_OVERFLOW_CONTAINER : '';
|
|
11
34
|
|
|
12
35
|
// by default, we assume the extension is at top level, (direct child of doc node)
|
|
@@ -14,6 +37,7 @@ export var renderExtension = function renderExtension(content, layout) {
|
|
|
14
37
|
_ref$isTopLevel = _ref.isTopLevel,
|
|
15
38
|
isTopLevel = _ref$isTopLevel === void 0 ? true : _ref$isTopLevel;
|
|
16
39
|
var centerAlignClass = isTopLevel && ['wide', 'full-width'].includes(layout) ? RendererCssClassName.EXTENSION_CENTER_ALIGN : '';
|
|
40
|
+
var viewportSize = getViewportSize(extensionId, extensionViewportSizes);
|
|
17
41
|
return /*#__PURE__*/React.createElement(WidthConsumer, null, function (_ref2) {
|
|
18
42
|
var width = _ref2.width;
|
|
19
43
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -23,7 +47,8 @@ export var renderExtension = function renderExtension(content, layout) {
|
|
|
23
47
|
className: "".concat(RendererCssClassName.EXTENSION, " ").concat(options.shadowClassNames, " ").concat(centerAlignClass),
|
|
24
48
|
style: {
|
|
25
49
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
|
|
26
|
-
width: isTopLevel ? calcBreakoutWidth(layout, width) : '100%'
|
|
50
|
+
width: isTopLevel ? calcBreakoutWidth(layout, width) : '100%',
|
|
51
|
+
minHeight: viewportSize
|
|
27
52
|
},
|
|
28
53
|
"data-layout": layout
|
|
29
54
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -38,7 +63,9 @@ var Extension = function Extension(props) {
|
|
|
38
63
|
handleRef = props.handleRef,
|
|
39
64
|
shadowClassNames = props.shadowClassNames,
|
|
40
65
|
_props$path = props.path,
|
|
41
|
-
path = _props$path === void 0 ? [] : _props$path
|
|
66
|
+
path = _props$path === void 0 ? [] : _props$path,
|
|
67
|
+
extensionViewportSizes = props.extensionViewportSizes,
|
|
68
|
+
parameters = props.parameters;
|
|
42
69
|
return /*#__PURE__*/React.createElement(ExtensionRenderer
|
|
43
70
|
// Ignored via go/ees005
|
|
44
71
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
@@ -53,19 +80,18 @@ var Extension = function Extension(props) {
|
|
|
53
80
|
isTopLevel: path.length < 1,
|
|
54
81
|
handleRef: handleRef,
|
|
55
82
|
shadowClassNames: shadowClassNames
|
|
56
|
-
});
|
|
83
|
+
}, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
57
84
|
}
|
|
58
85
|
} catch (e) {
|
|
59
86
|
/** We don't want this error to block renderer */
|
|
60
87
|
/** We keep rendering the default content */
|
|
61
88
|
}
|
|
62
|
-
|
|
63
89
|
// Always return default content if anything goes wrong
|
|
64
90
|
return renderExtension(text || 'extension', layout, {
|
|
65
91
|
isTopLevel: path.length < 1,
|
|
66
92
|
handleRef: handleRef,
|
|
67
93
|
shadowClassNames: shadowClassNames
|
|
68
|
-
});
|
|
94
|
+
}, undefined, parameters === null || parameters === void 0 ? void 0 : parameters.extensionId, extensionViewportSizes);
|
|
69
95
|
});
|
|
70
96
|
};
|
|
71
97
|
export default overflowShadow(Extension, {
|
|
@@ -55,7 +55,7 @@ import { ValidationContext } from './ValidationContext';
|
|
|
55
55
|
export var NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
56
56
|
export var DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
57
57
|
var packageName = "@atlaskit/renderer";
|
|
58
|
-
var packageVersion = "113.
|
|
58
|
+
var packageVersion = "113.2.0";
|
|
59
59
|
var setAsQueryContainerStyles = css({
|
|
60
60
|
containerName: 'ak-renderer-wrapper',
|
|
61
61
|
containerType: 'inline-size',
|
|
@@ -283,6 +283,7 @@ export var __RendererClassComponent = /*#__PURE__*/function (_PureComponent) {
|
|
|
283
283
|
media: props.media,
|
|
284
284
|
emojiResourceConfig: props.emojiResourceConfig,
|
|
285
285
|
smartLinks: props.smartLinks,
|
|
286
|
+
extensionViewportSizes: props.extensionViewportSizes,
|
|
286
287
|
allowCopyToClipboard: props.allowCopyToClipboard,
|
|
287
288
|
allowWrapCodeBlock: props.allowWrapCodeBlock,
|
|
288
289
|
allowCustomPanels: props.allowCustomPanels,
|
|
@@ -618,6 +619,7 @@ var RendererFunctionalComponent = function RendererFunctionalComponent(props) {
|
|
|
618
619
|
media: props.media,
|
|
619
620
|
emojiResourceConfig: props.emojiResourceConfig,
|
|
620
621
|
smartLinks: props.smartLinks,
|
|
622
|
+
extensionViewportSizes: props.extensionViewportSizes,
|
|
621
623
|
allowCopyToClipboard: props.allowCopyToClipboard,
|
|
622
624
|
allowWrapCodeBlock: props.allowWrapCodeBlock,
|
|
623
625
|
allowCustomPanels: props.allowCustomPanels,
|
package/dist/types/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { ValidationContextProvider } from './ui/Renderer/ValidationContext';
|
|
|
7
7
|
export type { Serializer } from './serializer';
|
|
8
8
|
export type { HeadingAnchorLinksProps, RendererAppearance, StickyHeaderProps, NodeComponentsProps, } from './ui/Renderer/types';
|
|
9
9
|
export type { RendererProps } from './ui/renderer-props';
|
|
10
|
-
export type { RendererContext, NodeProps } from './react/types';
|
|
10
|
+
export type { RendererContext, NodeProps, ExtensionViewportSize } from './react/types';
|
|
11
11
|
export { ADFEncoder } from './utils';
|
|
12
12
|
export { renderDocument } from './render-document';
|
|
13
13
|
export type { RenderOutputStat } from './render-document';
|
|
@@ -7,7 +7,7 @@ import type { TextWrapper } from './nodes';
|
|
|
7
7
|
import type { ExtensionHandlers } from '@atlaskit/editor-common/extensions';
|
|
8
8
|
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
9
9
|
import type { EventHandlers } from '@atlaskit/editor-common/ui';
|
|
10
|
-
import type { RendererContext, TextHighlighter } from './types';
|
|
10
|
+
import type { RendererContext, TextHighlighter, ExtensionViewportSize } from './types';
|
|
11
11
|
import type { MediaOptions } from '../types/mediaOptions';
|
|
12
12
|
import type { SmartLinksOptions } from '../types/smartLinksOptions';
|
|
13
13
|
import type { EmojiResourceConfig } from '@atlaskit/emoji/resource';
|
|
@@ -37,6 +37,7 @@ export interface ReactSerializerInit {
|
|
|
37
37
|
media?: MediaOptions;
|
|
38
38
|
emojiResourceConfig?: EmojiResourceConfig;
|
|
39
39
|
smartLinks?: SmartLinksOptions;
|
|
40
|
+
extensionViewportSizes?: ExtensionViewportSize[];
|
|
40
41
|
allowCopyToClipboard?: boolean;
|
|
41
42
|
allowWrapCodeBlock?: boolean;
|
|
42
43
|
allowPlaceholderText?: boolean;
|
|
@@ -91,6 +92,7 @@ export default class ReactSerializer implements Serializer<JSX.Element> {
|
|
|
91
92
|
private media?;
|
|
92
93
|
private emojiResourceConfig?;
|
|
93
94
|
private smartLinks?;
|
|
95
|
+
private extensionViewportSizes?;
|
|
94
96
|
private allowAnnotations;
|
|
95
97
|
private allowSelectAllTrap?;
|
|
96
98
|
private nodeComponents?;
|
|
@@ -114,6 +116,7 @@ export default class ReactSerializer implements Serializer<JSX.Element> {
|
|
|
114
116
|
private getDateProps;
|
|
115
117
|
private getMediaSingleProps;
|
|
116
118
|
private getMediaProps;
|
|
119
|
+
private getExtensionProps;
|
|
117
120
|
private getEmojiProps;
|
|
118
121
|
private getEmbedCardProps;
|
|
119
122
|
private getBlockCardProps;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Mark as PMMark, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
3
|
-
import type { RendererContext } from '../types';
|
|
3
|
+
import type { RendererContext, ExtensionViewportSize } from '../types';
|
|
4
4
|
import type { Serializer } from '../../serializer';
|
|
5
5
|
import type { ExtensionLayout } from '@atlaskit/adf-schema';
|
|
6
6
|
import type { ExtensionHandlers } from '@atlaskit/editor-common/extensions';
|
|
@@ -20,6 +20,7 @@ interface Props {
|
|
|
20
20
|
localId?: string;
|
|
21
21
|
marks?: PMMark[];
|
|
22
22
|
startPos: number;
|
|
23
|
+
extensionViewportSizes?: ExtensionViewportSize[];
|
|
23
24
|
}
|
|
24
25
|
declare const BodiedExtension: (props: React.PropsWithChildren<Props>) => React.JSX.Element;
|
|
25
26
|
export default BodiedExtension;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type Mark as PMMark, type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
3
|
-
import { type RendererContext } from '../types';
|
|
3
|
+
import { type RendererContext, type ExtensionViewportSize } from '../types';
|
|
4
4
|
import { type ExtensionLayout } from '@atlaskit/adf-schema';
|
|
5
5
|
import type { ExtensionHandlers } from '@atlaskit/editor-common/extensions';
|
|
6
6
|
import { type ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
@@ -17,6 +17,7 @@ interface Props {
|
|
|
17
17
|
layout?: ExtensionLayout;
|
|
18
18
|
localId?: string;
|
|
19
19
|
marks?: PMMark[];
|
|
20
|
+
extensionViewportSizes?: ExtensionViewportSize[];
|
|
20
21
|
}
|
|
21
22
|
type AllOrNone<T> = T | {
|
|
22
23
|
[K in keyof T]?: never;
|
|
@@ -24,7 +25,7 @@ type AllOrNone<T> = T | {
|
|
|
24
25
|
type RenderExtensionOptions = {
|
|
25
26
|
isTopLevel?: boolean;
|
|
26
27
|
} & AllOrNone<OverflowShadowProps>;
|
|
27
|
-
export declare const renderExtension: (content: any, layout: string, options?: RenderExtensionOptions, removeOverflow?: boolean) => React.JSX.Element;
|
|
28
|
+
export declare const renderExtension: (content: any, layout: string, options?: RenderExtensionOptions, removeOverflow?: boolean, extensionId?: string, extensionViewportSizes?: ExtensionViewportSize[]) => React.JSX.Element;
|
|
28
29
|
declare const _default: {
|
|
29
30
|
new (props: Props | Readonly<Props>): {
|
|
30
31
|
overflowContainer?: HTMLElement | null | undefined;
|
|
@@ -75,7 +76,7 @@ declare const _default: {
|
|
|
75
76
|
state: {
|
|
76
77
|
showLeftShadow: boolean;
|
|
77
78
|
showRightShadow: boolean;
|
|
78
|
-
};
|
|
79
|
+
};
|
|
79
80
|
componentWillUnmount(): void;
|
|
80
81
|
componentDidUpdate(): void;
|
|
81
82
|
handleScroll: (event: Event) => void;
|
|
@@ -10,7 +10,7 @@ import type { ADFStage } from '@atlaskit/editor-common/validator';
|
|
|
10
10
|
import type { Schema } from '@atlaskit/editor-prosemirror/model';
|
|
11
11
|
import type { EmojiResourceConfig } from '@atlaskit/emoji/resource';
|
|
12
12
|
import type { RendererContext } from '../';
|
|
13
|
-
import type { TextHighlighter } from '../react/types';
|
|
13
|
+
import type { TextHighlighter, ExtensionViewportSize } from '../react/types';
|
|
14
14
|
import type { RenderOutputStat } from '../render-document';
|
|
15
15
|
import type { MediaOptions } from '../types/mediaOptions';
|
|
16
16
|
import type { SmartLinksOptions } from '../types/smartLinksOptions';
|
|
@@ -47,6 +47,7 @@ export interface RendererProps {
|
|
|
47
47
|
media?: MediaOptions;
|
|
48
48
|
emojiResourceConfig?: EmojiResourceConfig;
|
|
49
49
|
smartLinks?: SmartLinksOptions;
|
|
50
|
+
extensionViewportSizes?: ExtensionViewportSize[];
|
|
50
51
|
allowAnnotations?: boolean;
|
|
51
52
|
annotationProvider?: AnnotationProviders | null;
|
|
52
53
|
innerRef?: React.RefObject<HTMLDivElement>;
|
|
@@ -7,7 +7,7 @@ export { ValidationContextProvider } from './ui/Renderer/ValidationContext';
|
|
|
7
7
|
export type { Serializer } from './serializer';
|
|
8
8
|
export type { HeadingAnchorLinksProps, RendererAppearance, StickyHeaderProps, NodeComponentsProps, } from './ui/Renderer/types';
|
|
9
9
|
export type { RendererProps } from './ui/renderer-props';
|
|
10
|
-
export type { RendererContext, NodeProps } from './react/types';
|
|
10
|
+
export type { RendererContext, NodeProps, ExtensionViewportSize } from './react/types';
|
|
11
11
|
export { ADFEncoder } from './utils';
|
|
12
12
|
export { renderDocument } from './render-document';
|
|
13
13
|
export type { RenderOutputStat } from './render-document';
|
|
@@ -7,7 +7,7 @@ import type { TextWrapper } from './nodes';
|
|
|
7
7
|
import type { ExtensionHandlers } from '@atlaskit/editor-common/extensions';
|
|
8
8
|
import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
9
9
|
import type { EventHandlers } from '@atlaskit/editor-common/ui';
|
|
10
|
-
import type { RendererContext, TextHighlighter } from './types';
|
|
10
|
+
import type { RendererContext, TextHighlighter, ExtensionViewportSize } from './types';
|
|
11
11
|
import type { MediaOptions } from '../types/mediaOptions';
|
|
12
12
|
import type { SmartLinksOptions } from '../types/smartLinksOptions';
|
|
13
13
|
import type { EmojiResourceConfig } from '@atlaskit/emoji/resource';
|
|
@@ -37,6 +37,7 @@ export interface ReactSerializerInit {
|
|
|
37
37
|
media?: MediaOptions;
|
|
38
38
|
emojiResourceConfig?: EmojiResourceConfig;
|
|
39
39
|
smartLinks?: SmartLinksOptions;
|
|
40
|
+
extensionViewportSizes?: ExtensionViewportSize[];
|
|
40
41
|
allowCopyToClipboard?: boolean;
|
|
41
42
|
allowWrapCodeBlock?: boolean;
|
|
42
43
|
allowPlaceholderText?: boolean;
|
|
@@ -91,6 +92,7 @@ export default class ReactSerializer implements Serializer<JSX.Element> {
|
|
|
91
92
|
private media?;
|
|
92
93
|
private emojiResourceConfig?;
|
|
93
94
|
private smartLinks?;
|
|
95
|
+
private extensionViewportSizes?;
|
|
94
96
|
private allowAnnotations;
|
|
95
97
|
private allowSelectAllTrap?;
|
|
96
98
|
private nodeComponents?;
|
|
@@ -114,6 +116,7 @@ export default class ReactSerializer implements Serializer<JSX.Element> {
|
|
|
114
116
|
private getDateProps;
|
|
115
117
|
private getMediaSingleProps;
|
|
116
118
|
private getMediaProps;
|
|
119
|
+
private getExtensionProps;
|
|
117
120
|
private getEmojiProps;
|
|
118
121
|
private getEmbedCardProps;
|
|
119
122
|
private getBlockCardProps;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Mark as PMMark, Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
3
|
-
import type { RendererContext } from '../types';
|
|
3
|
+
import type { RendererContext, ExtensionViewportSize } from '../types';
|
|
4
4
|
import type { Serializer } from '../../serializer';
|
|
5
5
|
import type { ExtensionLayout } from '@atlaskit/adf-schema';
|
|
6
6
|
import type { ExtensionHandlers } from '@atlaskit/editor-common/extensions';
|
|
@@ -20,6 +20,7 @@ interface Props {
|
|
|
20
20
|
localId?: string;
|
|
21
21
|
marks?: PMMark[];
|
|
22
22
|
startPos: number;
|
|
23
|
+
extensionViewportSizes?: ExtensionViewportSize[];
|
|
23
24
|
}
|
|
24
25
|
declare const BodiedExtension: (props: React.PropsWithChildren<Props>) => React.JSX.Element;
|
|
25
26
|
export default BodiedExtension;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type Mark as PMMark, type Node as PMNode } from '@atlaskit/editor-prosemirror/model';
|
|
3
|
-
import { type RendererContext } from '../types';
|
|
3
|
+
import { type RendererContext, type ExtensionViewportSize } from '../types';
|
|
4
4
|
import { type ExtensionLayout } from '@atlaskit/adf-schema';
|
|
5
5
|
import type { ExtensionHandlers } from '@atlaskit/editor-common/extensions';
|
|
6
6
|
import { type ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
@@ -17,6 +17,7 @@ interface Props {
|
|
|
17
17
|
layout?: ExtensionLayout;
|
|
18
18
|
localId?: string;
|
|
19
19
|
marks?: PMMark[];
|
|
20
|
+
extensionViewportSizes?: ExtensionViewportSize[];
|
|
20
21
|
}
|
|
21
22
|
type AllOrNone<T> = T | {
|
|
22
23
|
[K in keyof T]?: never;
|
|
@@ -24,7 +25,7 @@ type AllOrNone<T> = T | {
|
|
|
24
25
|
type RenderExtensionOptions = {
|
|
25
26
|
isTopLevel?: boolean;
|
|
26
27
|
} & AllOrNone<OverflowShadowProps>;
|
|
27
|
-
export declare const renderExtension: (content: any, layout: string, options?: RenderExtensionOptions, removeOverflow?: boolean) => React.JSX.Element;
|
|
28
|
+
export declare const renderExtension: (content: any, layout: string, options?: RenderExtensionOptions, removeOverflow?: boolean, extensionId?: string, extensionViewportSizes?: ExtensionViewportSize[]) => React.JSX.Element;
|
|
28
29
|
declare const _default: {
|
|
29
30
|
new (props: Props | Readonly<Props>): {
|
|
30
31
|
overflowContainer?: HTMLElement | null | undefined;
|
|
@@ -75,7 +76,7 @@ declare const _default: {
|
|
|
75
76
|
state: {
|
|
76
77
|
showLeftShadow: boolean;
|
|
77
78
|
showRightShadow: boolean;
|
|
78
|
-
};
|
|
79
|
+
};
|
|
79
80
|
componentWillUnmount(): void;
|
|
80
81
|
componentDidUpdate(): void;
|
|
81
82
|
handleScroll: (event: Event) => void;
|
|
@@ -10,7 +10,7 @@ import type { ADFStage } from '@atlaskit/editor-common/validator';
|
|
|
10
10
|
import type { Schema } from '@atlaskit/editor-prosemirror/model';
|
|
11
11
|
import type { EmojiResourceConfig } from '@atlaskit/emoji/resource';
|
|
12
12
|
import type { RendererContext } from '../';
|
|
13
|
-
import type { TextHighlighter } from '../react/types';
|
|
13
|
+
import type { TextHighlighter, ExtensionViewportSize } from '../react/types';
|
|
14
14
|
import type { RenderOutputStat } from '../render-document';
|
|
15
15
|
import type { MediaOptions } from '../types/mediaOptions';
|
|
16
16
|
import type { SmartLinksOptions } from '../types/smartLinksOptions';
|
|
@@ -47,6 +47,7 @@ export interface RendererProps {
|
|
|
47
47
|
media?: MediaOptions;
|
|
48
48
|
emojiResourceConfig?: EmojiResourceConfig;
|
|
49
49
|
smartLinks?: SmartLinksOptions;
|
|
50
|
+
extensionViewportSizes?: ExtensionViewportSize[];
|
|
50
51
|
allowAnnotations?: boolean;
|
|
51
52
|
annotationProvider?: AnnotationProviders | null;
|
|
52
53
|
innerRef?: React.RefObject<HTMLDivElement>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/renderer",
|
|
3
|
-
"version": "113.
|
|
3
|
+
"version": "113.2.0",
|
|
4
4
|
"description": "Renderer component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@atlaskit/analytics-next": "^11.0.0",
|
|
32
32
|
"@atlaskit/button": "^21.1.0",
|
|
33
33
|
"@atlaskit/code": "^16.0.0",
|
|
34
|
-
"@atlaskit/editor-common": "^101.
|
|
34
|
+
"@atlaskit/editor-common": "^101.1.0",
|
|
35
35
|
"@atlaskit/editor-json-transformer": "^8.24.0",
|
|
36
36
|
"@atlaskit/editor-palette": "2.0.0",
|
|
37
37
|
"@atlaskit/editor-prosemirror": "7.0.0",
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
"@atlaskit/media-ui": "^28.0.0",
|
|
49
49
|
"@atlaskit/media-viewer": "^52.0.0",
|
|
50
50
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
51
|
-
"@atlaskit/smart-card": "^35.
|
|
51
|
+
"@atlaskit/smart-card": "^35.2.0",
|
|
52
52
|
"@atlaskit/status": "^3.0.0",
|
|
53
53
|
"@atlaskit/task-decision": "^19.0.0",
|
|
54
|
-
"@atlaskit/theme": "^
|
|
54
|
+
"@atlaskit/theme": "^18.0.0",
|
|
55
55
|
"@atlaskit/tmp-editor-statsig": "^3.4.0",
|
|
56
56
|
"@atlaskit/tokens": "^4.3.0",
|
|
57
57
|
"@atlaskit/tooltip": "^20.0.0",
|
|
@@ -133,9 +133,6 @@
|
|
|
133
133
|
"annotations_align_editor_and_renderer_styles": {
|
|
134
134
|
"type": "boolean"
|
|
135
135
|
},
|
|
136
|
-
"platform_editor_react18_phase2_v2": {
|
|
137
|
-
"type": "boolean"
|
|
138
|
-
},
|
|
139
136
|
"platform-fix-table-ssr-resizing": {
|
|
140
137
|
"type": "boolean"
|
|
141
138
|
},
|